summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-09 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2022-06-09 03:01:00 +0000
commit16559ce13a74c7a182875559b379cac00b07efda (patch)
tree6ee63e6aadfabf9a7334e6667fa32646fd812667
parentb3aac3ae7b628835121d1f485fd49998308170e7 (diff)
CTAN sync 202206090300
-rw-r--r--FILES.byname1671
-rw-r--r--FILES.byname.gzbin2437642 -> 2437882 bytes
-rw-r--r--FILES.last07days998
-rw-r--r--graphics/pgf/contrib/xebaposter/README6
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/docs-boxshape.pdf (renamed from graphics/pgf/contrib/xebaposter/images/docs-boxshape.pdf)bin12002 -> 12002 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/docs-headerborder.pdf (renamed from graphics/pgf/contrib/xebaposter/images/docs-headerborder.pdf)bin6050 -> 6050 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/docs-headershape.pdf (renamed from graphics/pgf/contrib/xebaposter/images/docs-headershape.pdf)bin8472 -> 8472 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/docs-shade.pdf (renamed from graphics/pgf/contrib/xebaposter/images/docs-shade.pdf)bin19321 -> 19321 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig1.pdfbin0 -> 20509 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig2.pngbin0 -> 45660 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig3.pdf (renamed from graphics/pgf/contrib/xebaposter/images/fig3.pdf)bin128455 -> 128455 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig4.pdf (renamed from graphics/pgf/contrib/xebaposter/images/fig4.pdf)bin10658 -> 10658 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig5.pdf (renamed from graphics/pgf/contrib/xebaposter/images/fig5.pdf)bin11325 -> 11325 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/fig6.pdf (renamed from graphics/pgf/contrib/xebaposter/images/fig6.pdf)bin5862 -> 5862 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/logo.png (renamed from graphics/pgf/contrib/xebaposter/images/logo.png)bin9330 -> 9330 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/images/shariflogo.png (renamed from graphics/pgf/contrib/xebaposter/images/shariflogo.png)bin21735 -> 21735 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/poster-fa.pdf (renamed from graphics/pgf/contrib/xebaposter/poster-fa.pdf)bin222077 -> 229793 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/poster-fa.tex (renamed from graphics/pgf/contrib/xebaposter/poster-fa.tex)4
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/poster.pdfbin0 -> 273936 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/poster.tex349
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdfbin0 -> 139663 bytes
-rw-r--r--graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.tex (renamed from graphics/pgf/contrib/xebaposter/xebaposter-doc.tex)184
-rw-r--r--graphics/pgf/contrib/xebaposter/tex/xebaposter.cls (renamed from graphics/pgf/contrib/xebaposter/xebaposter.cls)370
-rw-r--r--graphics/pgf/contrib/xebaposter/xebaposter-doc.pdfbin139796 -> 0 bytes
-rw-r--r--language/arabic/arabtex/alocal.sty40
-rw-r--r--language/arabic/arabtex/announce.txt100
-rw-r--r--[l---------]language/arabic/arabtex/apatch.sty2398
-rw-r--r--language/arabic/arabtex/arabtex.htm534
-rw-r--r--[l---------]language/arabic/arabtex/arabtex.tex134
-rw-r--r--language/arabic/arabtex/changes.txt4876
-rw-r--r--language/arabic/arabtex/doc/html/arabtex.htm436
-rw-r--r--language/arabic/arabtex/doc/html/changes.htm186
-rw-r--r--language/arabic/arabtex/doc/html/chg311.htm168
-rw-r--r--language/arabic/arabtex/doc/html/chg311a.htm158
-rw-r--r--language/arabic/arabtex/doc/html/chg311b.htm150
-rw-r--r--language/arabic/arabtex/doc/html/chg311c.htm144
-rw-r--r--language/arabic/arabtex/doc/html/chg311d.htm164
-rw-r--r--language/arabic/arabtex/doc/html/miktex.htm358
-rw-r--r--language/arabic/arabtex/doc/html/refer.htm218
-rw-r--r--language/arabic/arabtex/doc/txt/announce.txt100
-rw-r--r--language/arabic/arabtex/doc/txt/arabtex.doc1046
-rw-r--r--language/arabic/arabtex/doc/txt/arabtex.faq120
-rw-r--r--language/arabic/arabtex/doc/txt/arwindoc.tex236
-rw-r--r--language/arabic/arabtex/doc/txt/changes.txt4148
-rw-r--r--language/arabic/arabtex/doc/txt/changes2.txt756
-rw-r--r--language/arabic/arabtex/doc/txt/hebrew.305342
-rw-r--r--language/arabic/arabtex/doc/txt/install.txt352
-rw-r--r--language/arabic/arabtex/doc/txt/kashmiri.tex246
-rw-r--r--language/arabic/arabtex/doc/txt/lppl.txt636
-rw-r--r--language/arabic/arabtex/doc/txt/malay.tex122
-rw-r--r--language/arabic/arabtex/doc/txt/miktex.mai186
-rw-r--r--language/arabic/arabtex/doc/txt/readme.305310
-rw-r--r--language/arabic/arabtex/doc/txt/readme.txt184
-rw-r--r--language/arabic/arabtex/doc/txt/sindhi.tex312
-rw-r--r--language/arabic/arabtex/doc/txt/uighur.tex242
-rw-r--r--language/arabic/arabtex/examples/guha.ps2088
-rw-r--r--language/arabic/arabtex/examples/guha.tex118
-rw-r--r--language/arabic/arabtex/examples/ligtable.tex344
-rw-r--r--language/arabic/arabtex/examples/malay.ps774
-rw-r--r--language/arabic/arabtex/examples/omar.tex74
-rw-r--r--language/arabic/arabtex/examples/sindhi.ps2626
-rw-r--r--language/arabic/arabtex/examples/uighur.ps1358
-rw-r--r--[l---------]language/arabic/arabtex/hebtex.tex123
-rw-r--r--[l---------]language/arabic/arabtex/hepatch.sty38
-rw-r--r--language/arabic/arabtex/mfinput/hcaption.mf20
-rw-r--r--language/arabic/arabtex/mfinput/hcbase.mf22
-rw-r--r--language/arabic/arabtex/mfinput/hclassic.mf19
-rw-r--r--language/arabic/arabtex/readme.txt184
-rw-r--r--language/arabic/arabtex/saw.sty86
-rw-r--r--language/arabic/arabtex/texinput/abidir.sty480
-rw-r--r--language/arabic/arabtex/texinput/abjad.sty136
-rw-r--r--language/arabic/arabtex/texinput/aboxes.sty802
-rw-r--r--language/arabic/arabtex/texinput/acjk.sty66
-rw-r--r--language/arabic/arabtex/texinput/acmd.sty670
-rw-r--r--language/arabic/arabtex/texinput/aconfig.sty190
-rw-r--r--language/arabic/arabtex/texinput/aedpatch.sty440
-rw-r--r--language/arabic/arabtex/texinput/afonts.sty104
-rw-r--r--language/arabic/arabtex/texinput/afonts0.sty120
-rw-r--r--language/arabic/arabtex/texinput/afonts1.sty122
-rw-r--r--language/arabic/arabtex/texinput/afonts2.sty108
-rw-r--r--language/arabic/arabtex/texinput/afoot.sty200
-rw-r--r--language/arabic/arabtex/texinput/alatex.sty328
-rw-r--r--language/arabic/arabtex/texinput/aligs.sty1270
-rw-r--r--language/arabic/arabtex/texinput/alists.sty422
-rw-r--r--language/arabic/arabtex/texinput/alocal.sty40
-rw-r--r--language/arabic/arabtex/texinput/altxext.sty202
-rw-r--r--language/arabic/arabtex/texinput/amac.sty328
-rw-r--r--language/arabic/arabtex/texinput/aoutput.sty346
-rw-r--r--language/arabic/arabtex/texinput/aparse.sty2246
-rw-r--r--language/arabic/arabtex/texinput/apatch.sty4794
-rw-r--r--language/arabic/arabtex/texinput/arababel.sty78
-rw-r--r--language/arabic/arabtex/texinput/arabart.cls48
-rw-r--r--language/arabic/arabtex/texinput/arabaux.sty268
-rw-r--r--language/arabic/arabtex/texinput/arabbook.cls46
-rw-r--r--language/arabic/arabtex/texinput/arabchrs.sty154
-rw-r--r--language/arabic/arabtex/texinput/arabext.sty206
-rw-r--r--language/arabic/arabtex/texinput/arabrep.cls2152
-rw-r--r--language/arabic/arabtex/texinput/arabrep1.cls1828
-rw-r--r--language/arabic/arabtex/texinput/arabskel.sty370
-rw-r--r--language/arabic/arabtex/texinput/arabsymb.sty384
-rw-r--r--language/arabic/arabtex/texinput/arabtex.sty1268
-rw-r--r--language/arabic/arabtex/texinput/arabtex.tex266
-rw-r--r--language/arabic/arabtex/texinput/arabtoks.sty292
-rw-r--r--language/arabic/arabtex/texinput/ascan.sty1004
-rw-r--r--language/arabic/arabtex/texinput/asect.sty780
-rw-r--r--language/arabic/arabtex/texinput/asize10.clo80
-rw-r--r--language/arabic/arabtex/texinput/asize11.clo80
-rw-r--r--language/arabic/arabtex/texinput/asize12.clo80
-rw-r--r--language/arabic/arabtex/texinput/asmo449.sty244
-rw-r--r--language/arabic/arabtex/texinput/atabg.sty258
-rw-r--r--language/arabic/arabtex/texinput/atrans.sty864
-rw-r--r--language/arabic/arabtex/texinput/awrite.sty794
-rw-r--r--language/arabic/arabtex/texinput/bhs.sty426
-rw-r--r--language/arabic/arabtex/texinput/bhslabel.sty298
-rw-r--r--language/arabic/arabtex/texinput/buck.sty458
-rw-r--r--language/arabic/arabtex/texinput/captions.def152
-rw-r--r--language/arabic/arabtex/texinput/cp1256.sty346
-rw-r--r--language/arabic/arabtex/texinput/etrans.sty18
-rw-r--r--language/arabic/arabtex/texinput/gedalin.sty224
-rw-r--r--language/arabic/arabtex/texinput/hebchrs.sty210
-rw-r--r--language/arabic/arabtex/texinput/hebsymb.sty118
-rw-r--r--language/arabic/arabtex/texinput/hebtex.sty174
-rw-r--r--language/arabic/arabtex/texinput/hebtex.tex244
-rw-r--r--language/arabic/arabtex/texinput/hefonts.sty112
-rw-r--r--language/arabic/arabtex/texinput/hefonts0.sty84
-rw-r--r--language/arabic/arabtex/texinput/hefonts1.sty88
-rw-r--r--language/arabic/arabtex/texinput/hefonts2.sty144
-rw-r--r--language/arabic/arabtex/texinput/heparse.sty582
-rw-r--r--language/arabic/arabtex/texinput/hepatch.sty74
-rw-r--r--language/arabic/arabtex/texinput/hescan.sty432
-rw-r--r--language/arabic/arabtex/texinput/hetrans.sty174
-rw-r--r--language/arabic/arabtex/texinput/hewrite.sty1178
-rw-r--r--language/arabic/arabtex/texinput/hmac.sty312
-rw-r--r--language/arabic/arabtex/texinput/isiri.sty450
-rw-r--r--language/arabic/arabtex/texinput/iso88596.sty46
-rw-r--r--language/arabic/arabtex/texinput/manifest.txt160
-rw-r--r--language/arabic/arabtex/texinput/nashbf.sty18
-rw-r--r--language/arabic/arabtex/texinput/raw.sty82
-rw-r--r--language/arabic/arabtex/texinput/saw.sty86
-rw-r--r--language/arabic/arabtex/texinput/sotoku.sty94
-rw-r--r--language/arabic/arabtex/texinput/twoblks.sty208
-rw-r--r--language/arabic/arabtex/texinput/uheb.fd244
-rw-r--r--language/arabic/arabtex/texinput/utf8.sty84
-rw-r--r--language/arabic/arabtex/texinput/utfcode.sty558
-rw-r--r--language/arabic/arabtex/texinput/verses.sty212
-rw-r--r--language/arabic/arabtex/texinput/witbhs.sty418
-rw-r--r--language/arabic/arabtex/texinput/xarbskel.sty252
-rw-r--r--language/arabic/arabtex/texinput/xarbsymb.sty426
-rw-r--r--language/arabic/arabtex/texinput/yiddish.sty390
-rw-r--r--language/arabic/arabtex/verses.sty212
-rw-r--r--macros/latex/base/README.md13
-rw-r--r--macros/latex/base/alltt.dtx4
-rw-r--r--macros/latex/base/alltt.ins4
-rw-r--r--macros/latex/base/alltt.pdfbin214860 -> 223831 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin242895 -> 242888 bytes
-rw-r--r--macros/latex/base/cfgguide.tex2
-rw-r--r--macros/latex/base/changes.txt333
-rw-r--r--macros/latex/base/classes.dtx4
-rw-r--r--macros/latex/base/classes.ins4
-rw-r--r--macros/latex/base/classes.pdfbin550870 -> 560350 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin402787 -> 402780 bytes
-rw-r--r--macros/latex/base/clsguide.tex2
-rw-r--r--macros/latex/base/cmextra.ins4
-rw-r--r--macros/latex/base/cmfonts.ins4
-rw-r--r--macros/latex/base/cmfonts.pdfbin292376 -> 292376 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin239688 -> 239689 bytes
-rw-r--r--macros/latex/base/cyrguide.tex2
-rw-r--r--macros/latex/base/doc-2016-02-15.sty826
-rw-r--r--macros/latex/base/doc-2021-06-01.sty (renamed from macros/latex/base/doc-v3beta.sty)801
-rw-r--r--macros/latex/base/doc-code.pdfbin0 -> 1081719 bytes
-rw-r--r--macros/latex/base/doc-code.tex4
-rw-r--r--macros/latex/base/doc.dtx4725
-rw-r--r--macros/latex/base/doc.pdfbin677451 -> 755165 bytes
-rw-r--r--macros/latex/base/docstrip.dtx4
-rw-r--r--macros/latex/base/docstrip.ins5
-rw-r--r--macros/latex/base/docstrip.pdfbin503607 -> 503620 bytes
-rw-r--r--macros/latex/base/ec.ins4
-rw-r--r--macros/latex/base/encguide.pdfbin1309999 -> 1318126 bytes
-rw-r--r--macros/latex/base/encguide.tex2
-rw-r--r--macros/latex/base/exscale.dtx4
-rw-r--r--macros/latex/base/exscale.ins4
-rw-r--r--macros/latex/base/exscale.pdfbin204716 -> 204711 bytes
-rw-r--r--macros/latex/base/fix-cm.dtx4
-rw-r--r--macros/latex/base/fix-cm.ins4
-rw-r--r--macros/latex/base/fix-cm.pdfbin287729 -> 288328 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin493966 -> 502880 bytes
-rw-r--r--macros/latex/base/fntguide.tex510
-rw-r--r--macros/latex/base/fontdef.dtx4
-rw-r--r--macros/latex/base/format.ins11
-rw-r--r--macros/latex/base/graphpap.dtx4
-rw-r--r--macros/latex/base/graphpap.ins4
-rw-r--r--macros/latex/base/graphpap.pdfbin161721 -> 161713 bytes
-rw-r--r--macros/latex/base/idx.tex2
-rw-r--r--macros/latex/base/ifthen.dtx19
-rw-r--r--macros/latex/base/ifthen.ins4
-rw-r--r--macros/latex/base/ifthen.pdfbin220540 -> 221211 bytes
-rw-r--r--macros/latex/base/inputenc.dtx6
-rw-r--r--macros/latex/base/inputenc.ins4
-rw-r--r--macros/latex/base/inputenc.pdfbin318171 -> 318204 bytes
-rw-r--r--macros/latex/base/lablst.tex2
-rw-r--r--macros/latex/base/lamport-manual.pdfbin170882 -> 170878 bytes
-rw-r--r--macros/latex/base/latex209.dtx4
-rw-r--r--macros/latex/base/latex209.ins4
-rw-r--r--macros/latex/base/latexchanges.pdfbin469973 -> 0 bytes
-rw-r--r--macros/latex/base/latexchanges.tex1025
-rw-r--r--macros/latex/base/latexrelease.dtx42
-rw-r--r--macros/latex/base/latexrelease.ins8
-rw-r--r--macros/latex/base/latexrelease.pdfbin281880 -> 281906 bytes
-rw-r--r--macros/latex/base/latexsym.dtx4
-rw-r--r--macros/latex/base/latexsym.ins6
-rw-r--r--macros/latex/base/latexsym.pdfbin200762 -> 200760 bytes
-rw-r--r--macros/latex/base/lb2.err2
-rw-r--r--macros/latex/base/lb2.pdfbin252163 -> 252140 bytes
-rw-r--r--macros/latex/base/letter.dtx6
-rw-r--r--macros/latex/base/letter.ins4
-rw-r--r--macros/latex/base/letter.pdfbin328903 -> 337544 bytes
-rw-r--r--macros/latex/base/lgc2.err10
-rw-r--r--macros/latex/base/lgc2.pdfbin215099 -> 215684 bytes
-rw-r--r--macros/latex/base/lppl.pdfbin132380 -> 132382 bytes
-rw-r--r--macros/latex/base/ltalloc.dtx4
-rw-r--r--macros/latex/base/ltbibl.dtx41
-rw-r--r--macros/latex/base/ltboxes.dtx8
-rw-r--r--macros/latex/base/ltclass.dtx79
-rw-r--r--macros/latex/base/ltcmd.dtx76
-rw-r--r--macros/latex/base/ltcmdhooks-code.pdfbin717887 -> 720048 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.pdfbin479214 -> 478890 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.tex1
-rw-r--r--macros/latex/base/ltcmdhooks.dtx11
-rw-r--r--macros/latex/base/ltcntrl.dtx4
-rw-r--r--macros/latex/base/ltcounts.dtx4
-rw-r--r--macros/latex/base/ltdefns.dtx8
-rw-r--r--macros/latex/base/ltdirchk.dtx21
-rw-r--r--macros/latex/base/lterror.dtx4
-rw-r--r--macros/latex/base/ltexpl.dtx135
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin795179 -> 802835 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin547018 -> 548523 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.tex1
-rw-r--r--macros/latex/base/ltfilehook.dtx129
-rw-r--r--macros/latex/base/ltfiles.dtx83
-rw-r--r--macros/latex/base/ltfinal.dtx89
-rw-r--r--macros/latex/base/ltfloat.dtx4
-rw-r--r--macros/latex/base/ltfntcmd.dtx4
-rw-r--r--macros/latex/base/ltfssaxes.dtx4
-rw-r--r--macros/latex/base/ltfssbas.dtx14
-rw-r--r--macros/latex/base/ltfsscmp.dtx4
-rw-r--r--macros/latex/base/ltfssdcl.dtx4
-rw-r--r--macros/latex/base/ltfssini.dtx4
-rw-r--r--macros/latex/base/ltfsstrc.dtx4
-rw-r--r--macros/latex/base/lthooks-code.pdfbin1083186 -> 1096906 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin703644 -> 703813 bytes
-rw-r--r--macros/latex/base/lthooks-doc.tex1
-rw-r--r--macros/latex/base/lthooks.dtx165
-rw-r--r--macros/latex/base/lthyphen.dtx4
-rw-r--r--macros/latex/base/ltidxglo.dtx4
-rw-r--r--macros/latex/base/ltkeys.dtx518
-rw-r--r--macros/latex/base/ltlength.dtx4
-rw-r--r--macros/latex/base/ltlists.dtx4
-rw-r--r--macros/latex/base/ltlogos.dtx4
-rw-r--r--macros/latex/base/ltluatex.dtx58
-rw-r--r--macros/latex/base/ltluatex.pdfbin317601 -> 317700 bytes
-rw-r--r--macros/latex/base/ltmarks-code.pdfbin0 -> 715490 bytes
-rw-r--r--macros/latex/base/ltmarks-code.tex5
-rw-r--r--macros/latex/base/ltmarks-doc.pdfbin0 -> 586925 bytes
-rw-r--r--macros/latex/base/ltmarks-doc.tex8
-rw-r--r--macros/latex/base/ltmarks.dtx1649
-rw-r--r--macros/latex/base/ltmath.dtx21
-rw-r--r--macros/latex/base/ltmeta.dtx216
-rw-r--r--macros/latex/base/ltmiscen.dtx4
-rw-r--r--macros/latex/base/ltnews.pdfbin1120381 -> 1180993 bytes
-rw-r--r--macros/latex/base/ltnews.tex10
-rw-r--r--macros/latex/base/ltnews01.pdfbin161527 -> 161518 bytes
-rw-r--r--macros/latex/base/ltnews01.tex2
-rw-r--r--macros/latex/base/ltnews02.pdfbin159800 -> 159792 bytes
-rw-r--r--macros/latex/base/ltnews02.tex2
-rw-r--r--macros/latex/base/ltnews03.pdfbin159341 -> 159332 bytes
-rw-r--r--macros/latex/base/ltnews03.tex2
-rw-r--r--macros/latex/base/ltnews04.pdfbin152535 -> 152525 bytes
-rw-r--r--macros/latex/base/ltnews04.tex2
-rw-r--r--macros/latex/base/ltnews05.pdfbin174508 -> 174494 bytes
-rw-r--r--macros/latex/base/ltnews05.tex2
-rw-r--r--macros/latex/base/ltnews06.pdfbin142860 -> 142849 bytes
-rw-r--r--macros/latex/base/ltnews06.tex2
-rw-r--r--macros/latex/base/ltnews07.pdfbin137821 -> 137811 bytes
-rw-r--r--macros/latex/base/ltnews07.tex2
-rw-r--r--macros/latex/base/ltnews08.pdfbin155062 -> 155053 bytes
-rw-r--r--macros/latex/base/ltnews08.tex2
-rw-r--r--macros/latex/base/ltnews09.pdfbin129581 -> 129570 bytes
-rw-r--r--macros/latex/base/ltnews09.tex2
-rw-r--r--macros/latex/base/ltnews10.pdfbin169419 -> 169416 bytes
-rw-r--r--macros/latex/base/ltnews10.tex2
-rw-r--r--macros/latex/base/ltnews11.pdfbin111963 -> 111948 bytes
-rw-r--r--macros/latex/base/ltnews11.tex2
-rw-r--r--macros/latex/base/ltnews12.pdfbin156565 -> 156551 bytes
-rw-r--r--macros/latex/base/ltnews12.tex2
-rw-r--r--macros/latex/base/ltnews13.pdfbin182229 -> 182225 bytes
-rw-r--r--macros/latex/base/ltnews13.tex2
-rw-r--r--macros/latex/base/ltnews14.pdfbin170481 -> 170473 bytes
-rw-r--r--macros/latex/base/ltnews14.tex2
-rw-r--r--macros/latex/base/ltnews15.pdfbin130318 -> 130309 bytes
-rw-r--r--macros/latex/base/ltnews15.tex2
-rw-r--r--macros/latex/base/ltnews16.pdfbin138088 -> 138073 bytes
-rw-r--r--macros/latex/base/ltnews16.tex2
-rw-r--r--macros/latex/base/ltnews17.pdfbin166242 -> 166228 bytes
-rw-r--r--macros/latex/base/ltnews17.tex2
-rw-r--r--macros/latex/base/ltnews18.pdfbin38039 -> 38033 bytes
-rw-r--r--macros/latex/base/ltnews18.tex2
-rw-r--r--macros/latex/base/ltnews19.pdfbin230035 -> 230028 bytes
-rw-r--r--macros/latex/base/ltnews19.tex2
-rw-r--r--macros/latex/base/ltnews20.pdfbin318554 -> 318548 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin244869 -> 244867 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin317774 -> 317773 bytes
-rw-r--r--macros/latex/base/ltnews22.tex2
-rw-r--r--macros/latex/base/ltnews23.pdfbin286599 -> 286591 bytes
-rw-r--r--macros/latex/base/ltnews23.tex2
-rw-r--r--macros/latex/base/ltnews24.pdfbin265291 -> 265279 bytes
-rw-r--r--macros/latex/base/ltnews24.tex2
-rw-r--r--macros/latex/base/ltnews25.pdfbin204941 -> 204935 bytes
-rw-r--r--macros/latex/base/ltnews25.tex2
-rw-r--r--macros/latex/base/ltnews26.pdfbin379468 -> 379462 bytes
-rw-r--r--macros/latex/base/ltnews26.tex2
-rw-r--r--macros/latex/base/ltnews27.pdfbin250601 -> 250592 bytes
-rw-r--r--macros/latex/base/ltnews27.tex2
-rw-r--r--macros/latex/base/ltnews28.pdfbin376655 -> 376643 bytes
-rw-r--r--macros/latex/base/ltnews28.tex2
-rw-r--r--macros/latex/base/ltnews29.pdfbin455108 -> 455107 bytes
-rw-r--r--macros/latex/base/ltnews29.tex2
-rw-r--r--macros/latex/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin526324 -> 526323 bytes
-rw-r--r--macros/latex/base/ltnews32.pdfbin546175 -> 546160 bytes
-rw-r--r--macros/latex/base/ltnews32.tex2
-rw-r--r--macros/latex/base/ltnews33.pdfbin522421 -> 522412 bytes
-rw-r--r--macros/latex/base/ltnews34.pdfbin507763 -> 508044 bytes
-rw-r--r--macros/latex/base/ltnews34.tex9
-rw-r--r--macros/latex/base/ltnews35.pdfbin0 -> 563513 bytes
-rw-r--r--macros/latex/base/ltnews35.tex987
-rw-r--r--macros/latex/base/ltoutenc.dtx390
-rw-r--r--macros/latex/base/ltoutenc.ins4
-rw-r--r--macros/latex/base/ltoutput.dtx16
-rw-r--r--macros/latex/base/ltpage.dtx65
-rw-r--r--macros/latex/base/ltpageno.dtx4
-rw-r--r--macros/latex/base/ltpar.dtx4
-rw-r--r--macros/latex/base/ltpara-code.pdfbin666698 -> 666944 bytes
-rw-r--r--macros/latex/base/ltpara-doc.pdfbin560208 -> 560439 bytes
-rw-r--r--macros/latex/base/ltpara-doc.tex1
-rw-r--r--macros/latex/base/ltpara.dtx8
-rw-r--r--macros/latex/base/ltpictur.dtx4
-rw-r--r--macros/latex/base/ltplain.dtx149
-rw-r--r--macros/latex/base/ltsect.dtx4
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin817756 -> 820689 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin564767 -> 564986 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.tex1
-rw-r--r--macros/latex/base/ltshipout.dtx88
-rw-r--r--macros/latex/base/ltspace.dtx4
-rw-r--r--macros/latex/base/lttab.dtx4
-rw-r--r--macros/latex/base/lttextcomp.dtx40
-rw-r--r--macros/latex/base/ltthm.dtx4
-rw-r--r--macros/latex/base/ltvers.dtx30
-rw-r--r--macros/latex/base/ltx3info.pdfbin219360 -> 219349 bytes
-rw-r--r--macros/latex/base/ltx3info.tex2
-rw-r--r--macros/latex/base/ltxcheck.tex2
-rw-r--r--macros/latex/base/ltxdoc.dtx132
-rw-r--r--macros/latex/base/ltxdoc.pdfbin230966 -> 242822 bytes
-rw-r--r--macros/latex/base/ltxref.dtx87
-rw-r--r--macros/latex/base/makeindx.dtx4
-rw-r--r--macros/latex/base/makeindx.ins4
-rw-r--r--macros/latex/base/makeindx.pdfbin165836 -> 165821 bytes
-rw-r--r--macros/latex/base/manifest.txt14
-rw-r--r--macros/latex/base/modguide.pdfbin243610 -> 243605 bytes
-rw-r--r--macros/latex/base/modguide.tex2
-rw-r--r--macros/latex/base/newdc.ins4
-rw-r--r--macros/latex/base/newlfont.dtx4
-rw-r--r--macros/latex/base/nfssfont.dtx4
-rw-r--r--macros/latex/base/nfssfont.ins4
-rw-r--r--macros/latex/base/nfssfont.pdfbin211186 -> 211180 bytes
-rw-r--r--macros/latex/base/olddc.ins4
-rw-r--r--macros/latex/base/oldlfont.dtx4
-rw-r--r--macros/latex/base/preload.dtx4
-rw-r--r--macros/latex/base/proc.dtx20
-rw-r--r--macros/latex/base/proc.ins4
-rw-r--r--macros/latex/base/proc.pdfbin226371 -> 227059 bytes
-rw-r--r--macros/latex/base/slides.dtx9
-rw-r--r--macros/latex/base/slides.ins8
-rw-r--r--macros/latex/base/slides.pdfbin374232 -> 375518 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin234186 -> 234191 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin5461272 -> 5761047 bytes
-rw-r--r--macros/latex/base/source2e.tex8
-rw-r--r--macros/latex/base/source2edoc.cls17
-rw-r--r--macros/latex/base/syntonly.dtx4
-rw-r--r--macros/latex/base/syntonly.ins4
-rw-r--r--macros/latex/base/syntonly.pdfbin189946 -> 189644 bytes
-rw-r--r--macros/latex/base/testpage.tex2
-rw-r--r--macros/latex/base/tex2.txt83
-rw-r--r--macros/latex/base/texpert.txt210
-rw-r--r--macros/latex/base/tlc2.err22
-rw-r--r--macros/latex/base/tlc2.pdfbin289525 -> 290615 bytes
-rw-r--r--macros/latex/base/tulm.ins4
-rw-r--r--macros/latex/base/tulm.pdfbin162776 -> 162772 bytes
-rw-r--r--macros/latex/base/unpack.ins2
-rw-r--r--macros/latex/base/usrguide.pdfbin431002 -> 430994 bytes
-rw-r--r--macros/latex/base/usrguide.tex2
-rw-r--r--macros/latex/base/usrguide3.pdfbin325735 -> 403394 bytes
-rw-r--r--macros/latex/base/usrguide3.tex370
-rw-r--r--macros/latex/base/utf8ienc.dtx80
-rw-r--r--macros/latex/base/utf8ienc.pdfbin352793 -> 353574 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin146209 -> 146198 bytes
-rw-r--r--macros/latex/contrib/pxcjkcat/README-ja.md7
-rw-r--r--macros/latex/contrib/pxcjkcat/README.md6
-rw-r--r--macros/latex/contrib/pxcjkcat/pxcjkcat.pdfbin163412 -> 197668 bytes
-rw-r--r--macros/latex/contrib/pxcjkcat/pxcjkcat.sty397
-rw-r--r--macros/latex/contrib/pxcjkcat/pxcjkcat.tex420
-rw-r--r--macros/latex/required/amsmath/README.md5
-rw-r--r--macros/latex/required/amsmath/amsbsy.dtx2
-rw-r--r--macros/latex/required/amsmath/amsbsy.ins2
-rw-r--r--macros/latex/required/amsmath/amsbsy.pdfbin173746 -> 174944 bytes
-rw-r--r--macros/latex/required/amsmath/amscd.dtx4
-rw-r--r--macros/latex/required/amsmath/amscd.ins4
-rw-r--r--macros/latex/required/amsmath/amscd.pdfbin178672 -> 179945 bytes
-rw-r--r--macros/latex/required/amsmath/amsgen.dtx4
-rw-r--r--macros/latex/required/amsmath/amsgen.ins2
-rw-r--r--macros/latex/required/amsmath/amsgen.pdfbin176740 -> 178187 bytes
-rw-r--r--macros/latex/required/amsmath/amsldoc.pdfbin508199 -> 508210 bytes
-rw-r--r--macros/latex/required/amsmath/amsldoc.tex2
-rw-r--r--macros/latex/required/amsmath/amsmath.dtx155
-rw-r--r--macros/latex/required/amsmath/amsmath.ins4
-rw-r--r--macros/latex/required/amsmath/amsmath.pdfbin399735 -> 419913 bytes
-rw-r--r--macros/latex/required/amsmath/amsopn.dtx96
-rw-r--r--macros/latex/required/amsmath/amsopn.ins4
-rw-r--r--macros/latex/required/amsmath/amsopn.pdfbin138783 -> 140095 bytes
-rw-r--r--macros/latex/required/amsmath/amstext.dtx4
-rw-r--r--macros/latex/required/amsmath/amstext.ins4
-rw-r--r--macros/latex/required/amsmath/amstext.pdfbin215810 -> 217498 bytes
-rw-r--r--macros/latex/required/amsmath/amsxtra.dtx4
-rw-r--r--macros/latex/required/amsmath/amsxtra.ins4
-rw-r--r--macros/latex/required/amsmath/amsxtra.pdfbin112556 -> 113561 bytes
-rw-r--r--macros/latex/required/amsmath/changes.txt29
-rw-r--r--macros/latex/required/amsmath/subeqn.pdfbin109737 -> 109731 bytes
-rw-r--r--macros/latex/required/amsmath/technote.pdfbin145610 -> 147462 bytes
-rw-r--r--macros/latex/required/amsmath/testmath.pdfbin454662 -> 454511 bytes
-rw-r--r--macros/latex/required/firstaid/changes.txt9
-rw-r--r--macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx61
-rw-r--r--macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdfbin238410 -> 256609 bytes
-rw-r--r--macros/latex/required/graphics/README.md4
-rw-r--r--macros/latex/required/graphics/changes.txt20
-rw-r--r--macros/latex/required/graphics/color.dtx13
-rw-r--r--macros/latex/required/graphics/color.pdfbin208054 -> 212223 bytes
-rw-r--r--macros/latex/required/graphics/drivers.dtx4
-rw-r--r--macros/latex/required/graphics/drivers.pdfbin286458 -> 286459 bytes
-rw-r--r--macros/latex/required/graphics/epsfig.dtx4
-rw-r--r--macros/latex/required/graphics/epsfig.pdfbin160073 -> 159997 bytes
-rw-r--r--macros/latex/required/graphics/graphics.dtx57
-rw-r--r--macros/latex/required/graphics/graphics.ins2
-rw-r--r--macros/latex/required/graphics/graphics.pdfbin303029 -> 303464 bytes
-rw-r--r--macros/latex/required/graphics/graphicx.dtx4
-rw-r--r--macros/latex/required/graphics/graphicx.pdfbin240629 -> 240623 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.pdfbin330070 -> 330978 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.tex17
-rw-r--r--macros/latex/required/graphics/keyval.dtx8
-rw-r--r--macros/latex/required/graphics/keyval.pdfbin239821 -> 239589 bytes
-rw-r--r--macros/latex/required/graphics/lscape.dtx4
-rw-r--r--macros/latex/required/graphics/lscape.pdfbin155981 -> 155986 bytes
-rw-r--r--macros/latex/required/graphics/mathcolor.dtx431
-rw-r--r--macros/latex/required/graphics/mathcolor.pdfbin0 -> 475986 bytes
-rw-r--r--macros/latex/required/graphics/rotating.dtx4
-rw-r--r--macros/latex/required/graphics/rotating.pdfbin269553 -> 278253 bytes
-rw-r--r--macros/latex/required/graphics/rotex.pdfbin172230 -> 172227 bytes
-rw-r--r--macros/latex/required/graphics/trig.dtx4
-rw-r--r--macros/latex/required/graphics/trig.pdfbin199269 -> 199266 bytes
-rw-r--r--macros/latex/required/latex-lab/README.md42
-rw-r--r--macros/latex/required/latex-lab/changes.txt27
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-code.pdfbin0 -> 512020 bytes
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-code.tex4
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-doc.pdfbin0 -> 375907 bytes
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-doc.tex6
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support.dtx418
-rw-r--r--macros/latex/required/latex-lab/latex-lab-footnotes.dtx1822
-rw-r--r--macros/latex/required/latex-lab/latex-lab-footnotes.pdfbin0 -> 614594 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or.dtx545
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or.pdfbin0 -> 529091 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-testphase.dtx84
-rw-r--r--macros/latex/required/latex-lab/latex-lab-testphase.pdfbin0 -> 290879 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab.ins82
-rw-r--r--macros/latex/required/latex-lab/usage-of-@footnotemark.txt186
-rw-r--r--macros/latex/required/latex-lab/usage-of-@footnotetext.txt842
-rw-r--r--macros/latex/required/latex-lab/usage-of-kern-kern.txt80
-rw-r--r--macros/latex/required/tools/README.md4
-rw-r--r--macros/latex/required/tools/afterpage.dtx4
-rw-r--r--macros/latex/required/tools/afterpage.ins4
-rw-r--r--macros/latex/required/tools/afterpage.pdfbin205344 -> 197738 bytes
-rw-r--r--macros/latex/required/tools/array.dtx16
-rw-r--r--macros/latex/required/tools/array.pdfbin517114 -> 516458 bytes
-rw-r--r--macros/latex/required/tools/bm.dtx13
-rw-r--r--macros/latex/required/tools/bm.ins4
-rw-r--r--macros/latex/required/tools/bm.pdfbin331424 -> 323432 bytes
-rw-r--r--macros/latex/required/tools/calc.dtx4
-rw-r--r--macros/latex/required/tools/calc.pdfbin370414 -> 370657 bytes
-rw-r--r--macros/latex/required/tools/changes.txt29
-rw-r--r--macros/latex/required/tools/dcolumn.dtx4
-rw-r--r--macros/latex/required/tools/dcolumn.pdfbin220689 -> 220834 bytes
-rw-r--r--macros/latex/required/tools/delarray.dtx4
-rw-r--r--macros/latex/required/tools/delarray.pdfbin198647 -> 191064 bytes
-rw-r--r--macros/latex/required/tools/enumerate.dtx4
-rw-r--r--macros/latex/required/tools/enumerate.pdfbin215355 -> 215498 bytes
-rw-r--r--macros/latex/required/tools/fileerr.dtx4
-rw-r--r--macros/latex/required/tools/fileerr.pdfbin195578 -> 187495 bytes
-rw-r--r--macros/latex/required/tools/fontsmpl.dtx4
-rw-r--r--macros/latex/required/tools/fontsmpl.pdfbin154034 -> 146446 bytes
-rw-r--r--macros/latex/required/tools/ftnright.dtx4
-rw-r--r--macros/latex/required/tools/ftnright.pdfbin370277 -> 386995 bytes
-rw-r--r--macros/latex/required/tools/hhline.dtx4
-rw-r--r--macros/latex/required/tools/hhline.pdfbin189538 -> 189679 bytes
-rw-r--r--macros/latex/required/tools/indentfirst.dtx4
-rw-r--r--macros/latex/required/tools/indentfirst.pdfbin157803 -> 157954 bytes
-rw-r--r--macros/latex/required/tools/layout.dtx4
-rw-r--r--macros/latex/required/tools/layout.pdfbin267761 -> 259969 bytes
-rw-r--r--macros/latex/required/tools/longtable.dtx4
-rw-r--r--macros/latex/required/tools/longtable.ins4
-rw-r--r--macros/latex/required/tools/longtable.pdfbin382155 -> 391313 bytes
-rw-r--r--macros/latex/required/tools/multicol-2019-10-01.sty1105
-rw-r--r--macros/latex/required/tools/multicol.dtx14
-rw-r--r--macros/latex/required/tools/multicol.ins4
-rw-r--r--macros/latex/required/tools/multicol.pdfbin518295 -> 521223 bytes
-rw-r--r--macros/latex/required/tools/rawfonts.dtx4
-rw-r--r--macros/latex/required/tools/rawfonts.pdfbin146534 -> 138963 bytes
-rw-r--r--macros/latex/required/tools/shellesc.dtx2
-rw-r--r--macros/latex/required/tools/shellesc.pdfbin183532 -> 175929 bytes
-rw-r--r--macros/latex/required/tools/showkeys-2014-10-28.sty272
-rw-r--r--macros/latex/required/tools/showkeys.dtx52
-rw-r--r--macros/latex/required/tools/showkeys.pdfbin260624 -> 251782 bytes
-rw-r--r--macros/latex/required/tools/somedefs.dtx4
-rw-r--r--macros/latex/required/tools/somedefs.pdfbin175169 -> 167572 bytes
-rw-r--r--macros/latex/required/tools/tabularx.dtx4
-rw-r--r--macros/latex/required/tools/tabularx.ins4
-rw-r--r--macros/latex/required/tools/tabularx.pdfbin278041 -> 287073 bytes
-rw-r--r--macros/latex/required/tools/theorem.dtx4
-rw-r--r--macros/latex/required/tools/theorem.pdfbin351794 -> 351471 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.pdfbin73674 -> 73672 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.tex2
-rw-r--r--macros/latex/required/tools/tools.ins4
-rw-r--r--macros/latex/required/tools/trace.dtx4
-rw-r--r--macros/latex/required/tools/trace.pdfbin229713 -> 222076 bytes
-rw-r--r--macros/latex/required/tools/varioref.dtx54
-rw-r--r--macros/latex/required/tools/varioref.ins4
-rw-r--r--macros/latex/required/tools/varioref.pdfbin383524 -> 398985 bytes
-rw-r--r--macros/latex/required/tools/verbatim.dtx4
-rw-r--r--macros/latex/required/tools/verbatim.pdfbin330815 -> 330963 bytes
-rw-r--r--macros/latex/required/tools/xr.dtx4
-rw-r--r--macros/latex/required/tools/xr.pdfbin177595 -> 169986 bytes
-rw-r--r--macros/latex/required/tools/xspace.dtx4
-rw-r--r--macros/latex/required/tools/xspace.pdfbin256897 -> 257018 bytes
-rw-r--r--support/TeX4ht/source/ChangeLog8
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex16
-rw-r--r--systems/doc/pdftex/samplepdftex/README24
-rw-r--r--systems/doc/pdftex/samplepdftex/efcode.tex89
-rw-r--r--systems/doc/pdftex/samplepdftex/pdfcolor.tex2
-rw-r--r--systems/doc/pdftex/samplepdftex/protcode.tex93
-rw-r--r--systems/doc/pdftex/samplepdftex/samplepdf.mp1
-rw-r--r--systems/doc/pdftex/samplepdftex/samplepdf.pdf8632
-rw-r--r--systems/doc/pdftex/samplepdftex/supp-mis.tex695
-rw-r--r--systems/doc/pdftex/samplepdftex/supp-pdf.tex2191
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
562 files changed, 60920 insertions, 38926 deletions
diff --git a/FILES.byname b/FILES.byname
index 8407405cb5..7de3699c50 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5228,7 +5228,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/06/07 | 80836 | FILES.last07days
+2022/06/08 | 80416 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -161720,23 +161720,27 @@
2021/05/02 | 403 | graphics/pgf/contrib/worldflags/tex/worldflag_Z.tex
2021/05/02 | 41557 | graphics/pgf/contrib/worldflags/tex/worldflag_ZW.tex
2021/05/12 | 4793907 | graphics/pgf/contrib/worldflags.zip
-2011/09/16 | 12002 | graphics/pgf/contrib/xebaposter/images/docs-boxshape.pdf
-2011/09/16 | 6050 | graphics/pgf/contrib/xebaposter/images/docs-headerborder.pdf
-2011/09/16 | 8472 | graphics/pgf/contrib/xebaposter/images/docs-headershape.pdf
-2016/09/11 | 19321 | graphics/pgf/contrib/xebaposter/images/docs-shade.pdf
-2010/08/26 | 128455 | graphics/pgf/contrib/xebaposter/images/fig3.pdf
-2010/08/26 | 10658 | graphics/pgf/contrib/xebaposter/images/fig4.pdf
-2010/08/26 | 11325 | graphics/pgf/contrib/xebaposter/images/fig5.pdf
-2010/08/22 | 5862 | graphics/pgf/contrib/xebaposter/images/fig6.pdf
-2015/08/25 | 9330 | graphics/pgf/contrib/xebaposter/images/logo.png
-2010/08/23 | 21735 | graphics/pgf/contrib/xebaposter/images/shariflogo.png
-2016/02/09 | 222077 | graphics/pgf/contrib/xebaposter/poster-fa.pdf
-2016/02/09 | 10603 | graphics/pgf/contrib/xebaposter/poster-fa.tex
-2016/09/12 | 778 | graphics/pgf/contrib/xebaposter/README
-2016/09/12 | 56318 | graphics/pgf/contrib/xebaposter/xebaposter.cls
-2016/09/12 | 139796 | graphics/pgf/contrib/xebaposter/xebaposter-doc.pdf
-2016/09/12 | 27760 | graphics/pgf/contrib/xebaposter/xebaposter-doc.tex
-2016/09/12 | 422607 | graphics/pgf/contrib/xebaposter.zip
+2022/06/08 | 12002 | graphics/pgf/contrib/xebaposter/doc/images/docs-boxshape.pdf
+2022/06/08 | 6050 | graphics/pgf/contrib/xebaposter/doc/images/docs-headerborder.pdf
+2022/06/08 | 8472 | graphics/pgf/contrib/xebaposter/doc/images/docs-headershape.pdf
+2022/06/08 | 19321 | graphics/pgf/contrib/xebaposter/doc/images/docs-shade.pdf
+2022/06/08 | 20509 | graphics/pgf/contrib/xebaposter/doc/images/fig1.pdf
+2022/06/08 | 45660 | graphics/pgf/contrib/xebaposter/doc/images/fig2.png
+2022/06/08 | 128455 | graphics/pgf/contrib/xebaposter/doc/images/fig3.pdf
+2022/06/08 | 10658 | graphics/pgf/contrib/xebaposter/doc/images/fig4.pdf
+2022/06/08 | 11325 | graphics/pgf/contrib/xebaposter/doc/images/fig5.pdf
+2022/06/08 | 5862 | graphics/pgf/contrib/xebaposter/doc/images/fig6.pdf
+2022/06/08 | 9330 | graphics/pgf/contrib/xebaposter/doc/images/logo.png
+2022/06/08 | 21735 | graphics/pgf/contrib/xebaposter/doc/images/shariflogo.png
+2022/06/08 | 229793 | graphics/pgf/contrib/xebaposter/doc/poster-fa.pdf
+2022/06/08 | 10568 | graphics/pgf/contrib/xebaposter/doc/poster-fa.tex
+2022/06/08 | 273936 | graphics/pgf/contrib/xebaposter/doc/poster.pdf
+2022/06/08 | 16856 | graphics/pgf/contrib/xebaposter/doc/poster.tex
+2022/06/08 | 139663 | graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdf
+2022/06/08 | 27414 | graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.tex
+2022/06/08 | 778 | graphics/pgf/contrib/xebaposter/README
+2022/06/08 | 49430 | graphics/pgf/contrib/xebaposter/tex/xebaposter.cls
+2022/06/08 | 686506 | graphics/pgf/contrib/xebaposter.zip
2021/12/20 | 1284 | graphics/pgf/contrib/xistercian/README.md
2021/12/20 | 64621 | graphics/pgf/contrib/xistercian/xistercian.dtx
2021/12/20 | 351990 | graphics/pgf/contrib/xistercian/xistercian.pdf
@@ -189109,15 +189113,16 @@
2022/05/19 | 3111178 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip
2022/05/19 | 2829818 | install/macros/latex-dev/required/latex-lab-dev.tds.zip
2022/05/19 | 7324176 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
-2021/12/06 | 35260885 | install/macros/latex/latex-base.tds.zip
+2022/06/08 | 38298583 | install/macros/latex/latex-base.tds.zip
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
2022/06/06 | 2977564 | install/macros/latex/required/babel-base.tds.zip
-2021/11/12 | 2766926 | install/macros/latex/required/latex-amsmath.tds.zip
+2022/06/08 | 2794804 | install/macros/latex/required/latex-amsmath.tds.zip
2021/09/25 | 223228 | install/macros/latex/required/latexbug.tds.zip
2018/04/06 | 1324669 | install/macros/latex/required/latex-cyrillic.tds.zip
-2021/11/12 | 244211 | install/macros/latex/required/latex-firstaid.tds.zip
-2021/12/14 | 2628408 | install/macros/latex/required/latex-graphics.tds.zip
-2021/11/12 | 7359617 | install/macros/latex/required/latex-tools.tds.zip
+2022/06/08 | 262641 | install/macros/latex/required/latex-firstaid.tds.zip
+2022/06/08 | 3110069 | install/macros/latex/required/latex-graphics.tds.zip
+2022/06/08 | 2302616 | install/macros/latex/required/latex-lab.tds.zip
+2022/06/08 | 7337240 | install/macros/latex/required/latex-tools.tds.zip
2016/09/02 | 108688 | install/macros/luatex/generic/cstypo.tds.zip
2015/10/01 | 154538 | install/macros/luatex/generic/ctablestack.tds.zip
2021/05/21 | 273734 | install/macros/luatex/generic/lualibs.tds.zip
@@ -189430,56 +189435,60 @@
2006/07/20 | 24 | language/arabic/arabi/arabi/texmf/latex/arabi/updmap.cfg
2006/12/16 | 3001 | language/arabic/arabi/README
2012/01/13 | 5341677 | language/arabic/arabi.zip
-2006/03/02 | 643 | language/arabic/arabtex/alocal.sty
-2003/10/23 | 2328 | language/arabic/arabtex/announce.txt
+2006/03/03 | 623 | language/arabic/arabtex/alocal.sty
+2003/10/24 | 2278 | language/arabic/arabtex/announce.txt
+2006/07/06 | 85175 | language/arabic/arabtex/apatch.sty
2003/10/24 | 582121 | language/arabic/arabtex/arab311.tgz
-2010/02/14 | 270366 | language/arabic/arabtex/arabtex-doc.pdf
-2010/02/14 | 24079 | language/arabic/arabtex/arabtex-doc.tex
+2010/02/15 | 270366 | language/arabic/arabtex/arabtex-doc.pdf
+2010/02/15 | 24079 | language/arabic/arabtex/arabtex-doc.tex
2001/08/11 | 9046 | language/arabic/arabtex/arabtex.gif
-2006/07/20 | 8177 | language/arabic/arabtex/arabtex.htm
-2006/07/06 | 83181 | language/arabic/arabtex/changes.txt
+2006/07/21 | 7910 | language/arabic/arabtex/arabtex.htm
+2003/10/24 | 4534 | language/arabic/arabtex/arabtex.tex
+2006/07/06 | 80743 | language/arabic/arabtex/changes.txt
2001/08/11 | 9046 | language/arabic/arabtex/doc/html/arabtex.gif
-2003/10/23 | 7297 | language/arabic/arabtex/doc/html/arabtex.htm
-2003/10/23 | 3351 | language/arabic/arabtex/doc/html/changes.htm
-2003/10/23 | 2032 | language/arabic/arabtex/doc/html/chg311a.htm
-2003/10/23 | 1956 | language/arabic/arabtex/doc/html/chg311b.htm
-2003/10/23 | 2073 | language/arabic/arabtex/doc/html/chg311c.htm
-2003/10/23 | 2259 | language/arabic/arabtex/doc/html/chg311d.htm
-2003/10/23 | 2430 | language/arabic/arabtex/doc/html/chg311.htm
-2003/10/23 | 10928 | language/arabic/arabtex/doc/html/miktex.htm
+2003/10/24 | 7079 | language/arabic/arabtex/doc/html/arabtex.htm
+2003/10/24 | 3258 | language/arabic/arabtex/doc/html/changes.htm
+2003/10/24 | 1953 | language/arabic/arabtex/doc/html/chg311a.htm
+2003/10/24 | 1881 | language/arabic/arabtex/doc/html/chg311b.htm
+2003/10/24 | 2001 | language/arabic/arabtex/doc/html/chg311c.htm
+2003/10/24 | 2177 | language/arabic/arabtex/doc/html/chg311d.htm
+2003/10/24 | 2346 | language/arabic/arabtex/doc/html/chg311.htm
+2003/10/24 | 10749 | language/arabic/arabtex/doc/html/miktex.htm
2001/08/11 | 147 | language/arabic/arabtex/doc/html/new1.gif
2001/08/11 | 116 | language/arabic/arabtex/doc/html/new2.gif
-2003/10/23 | 3518 | language/arabic/arabtex/doc/html/refer.htm
-2003/10/23 | 2328 | language/arabic/arabtex/doc/txt/announce.txt
-2003/10/23 | 20980 | language/arabic/arabtex/doc/txt/arabtex.doc
-2003/10/23 | 3150 | language/arabic/arabtex/doc/txt/arabtex.faq
+2003/10/24 | 3409 | language/arabic/arabtex/doc/html/refer.htm
+2003/10/24 | 2278 | language/arabic/arabtex/doc/txt/announce.txt
+2003/10/24 | 20457 | language/arabic/arabtex/doc/txt/arabtex.doc
+2022/06/08 | 2568 | language/arabic/arabtex/doc/txt/arabtex.faq
2004/10/21 | 7725 | language/arabic/arabtex/doc/txt/arabtex.htm
-2003/10/23 | 4521 | language/arabic/arabtex/doc/txt/arwindoc.tex
-2003/10/23 | 15624 | language/arabic/arabtex/doc/txt/changes2.txt
-2003/10/23 | 71561 | language/arabic/arabtex/doc/txt/changes.txt
-2003/10/23 | 7756 | language/arabic/arabtex/doc/txt/hebrew.305
-2003/10/23 | 6139 | language/arabic/arabtex/doc/txt/install.txt
-2003/10/23 | 3678 | language/arabic/arabtex/doc/txt/kashmiri.tex
-2003/10/23 | 14757 | language/arabic/arabtex/doc/txt/lppl.txt
-2003/10/23 | 1273 | language/arabic/arabtex/doc/txt/malay.tex
-2003/10/23 | 3899 | language/arabic/arabtex/doc/txt/miktex.mai
-2003/10/23 | 7971 | language/arabic/arabtex/doc/txt/readme.305
-2003/10/23 | 4582 | language/arabic/arabtex/doc/txt/readme.txt
-2003/10/23 | 4510 | language/arabic/arabtex/doc/txt/sindhi.tex
-2003/10/23 | 19968 | language/arabic/arabtex/doc/txt/tetex.txt
-2003/10/23 | 3458 | language/arabic/arabtex/doc/txt/uighur.tex
+2003/10/24 | 4403 | language/arabic/arabtex/doc/txt/arwindoc.tex
+2003/10/24 | 15246 | language/arabic/arabtex/doc/txt/changes2.txt
+2003/10/24 | 69487 | language/arabic/arabtex/doc/txt/changes.txt
+2003/10/24 | 7585 | language/arabic/arabtex/doc/txt/hebrew.305
+2003/10/24 | 5963 | language/arabic/arabtex/doc/txt/install.txt
+2003/10/24 | 3555 | language/arabic/arabtex/doc/txt/kashmiri.tex
+2003/10/24 | 14439 | language/arabic/arabtex/doc/txt/lppl.txt
+2003/10/24 | 1212 | language/arabic/arabtex/doc/txt/malay.tex
+2003/10/24 | 3806 | language/arabic/arabtex/doc/txt/miktex.mai
+2003/10/24 | 7816 | language/arabic/arabtex/doc/txt/readme.305
+2003/10/24 | 4490 | language/arabic/arabtex/doc/txt/readme.txt
+2003/10/24 | 4354 | language/arabic/arabtex/doc/txt/sindhi.tex
+2003/10/24 | 19968 | language/arabic/arabtex/doc/txt/tetex.txt
+2003/10/24 | 3337 | language/arabic/arabtex/doc/txt/uighur.tex
1998/12/01 | 9352 | language/arabic/arabtex/examples/guha.dvi
-1998/12/01 | 61524 | language/arabic/arabtex/examples/guha.ps
-1994/07/15 | 1142 | language/arabic/arabtex/examples/guha.tex
-1993/11/22 | 3847 | language/arabic/arabtex/examples/ligtable.tex
+1998/12/01 | 60480 | language/arabic/arabtex/examples/guha.ps
+1994/07/15 | 1083 | language/arabic/arabtex/examples/guha.tex
+1993/11/22 | 3675 | language/arabic/arabtex/examples/ligtable.tex
1998/02/03 | 2048 | language/arabic/arabtex/examples/malay.dvi
-1998/02/03 | 26485 | language/arabic/arabtex/examples/malay.ps
-1993/11/22 | 1059 | language/arabic/arabtex/examples/omar.tex
+1998/02/03 | 26098 | language/arabic/arabtex/examples/malay.ps
+1993/11/22 | 1022 | language/arabic/arabtex/examples/omar.tex
1997/09/30 | 18792 | language/arabic/arabtex/examples/sindhi.dvi
-1998/02/03 | 89323 | language/arabic/arabtex/examples/sindhi.ps
+1998/02/03 | 88010 | language/arabic/arabtex/examples/sindhi.ps
1997/09/30 | 7912 | language/arabic/arabtex/examples/uighur.dvi
-1998/02/03 | 46084 | language/arabic/arabtex/examples/uighur.ps
-2001/09/17 | 5963 | language/arabic/arabtex/install.txt
+1998/02/03 | 45405 | language/arabic/arabtex/examples/uighur.ps
+2003/10/24 | 4127 | language/arabic/arabtex/hebtex.tex
+2003/10/24 | 1252 | language/arabic/arabtex/hepatch.sty
+2001/09/18 | 5963 | language/arabic/arabtex/install.txt
1998/07/16 | 2360 | language/arabic/arabtex/laser.pk/hcaption.300pk
1998/07/16 | 2632 | language/arabic/arabtex/laser.pk/hcaption.329pk
1998/07/16 | 2816 | language/arabic/arabtex/laser.pk/hcaption.360pk
@@ -189531,9 +189540,9 @@
1992/05/06 | 436 | language/arabic/arabtex/laser.pk/yarborn.746pk
2001/09/16 | 14439 | language/arabic/arabtex/lppl.txt
1998/10/19 | 7482 | language/arabic/arabtex/mfinput/arabsymb.mf
-1999/04/13 | 6323 | language/arabic/arabtex/mfinput/hcaption.mf
-1999/04/13 | 22715 | language/arabic/arabtex/mfinput/hcbase.mf
-1999/04/13 | 6415 | language/arabic/arabtex/mfinput/hclassic.mf
+2022/06/08 | 5914 | language/arabic/arabtex/mfinput/hcaption.mf
+2022/06/08 | 22343 | language/arabic/arabtex/mfinput/hcbase.mf
+2022/06/08 | 6003 | language/arabic/arabtex/mfinput/hclassic.mf
1996/03/20 | 935 | language/arabic/arabtex/mfinput/nash14bf.mf
1998/01/27 | 947 | language/arabic/arabtex/mfinput/nash14.mf
1997/05/21 | 12801 | language/arabic/arabtex/mfinput/nashbase.mf
@@ -189556,99 +189565,99 @@
1998/07/20 | 4755 | language/arabic/arabtex/mfinput/xnshspec.mf
2001/08/11 | 147 | language/arabic/arabtex/new1.gif
2001/08/11 | 116 | language/arabic/arabtex/new2.gif
-2002/04/15 | 136 | language/arabic/arabtex/psfonts/arabtex.map
+2002/04/16 | 136 | language/arabic/arabtex/psfonts/arabtex.map
2009/04/01 | 17198 | language/arabic/arabtex/psfonts/hcaption-4.pfb
2009/04/01 | 16785 | language/arabic/arabtex/psfonts/hclassic-4.pfb
1998/08/01 | 47014 | language/arabic/arabtex/psfonts/xnsh14bf.pfb
1998/08/01 | 46148 | language/arabic/arabtex/psfonts/xnsh14.pfb
-2003/10/23 | 4582 | language/arabic/arabtex/readme.txt
-2006/07/06 | 1376 | language/arabic/arabtex/saw.sty
-2006/07/06 | 143597 | language/arabic/arabtex/tex311.tgz
-2006/07/06 | 126558 | language/arabic/arabtex/tex312.tgz
-2003/10/23 | 9728 | language/arabic/arabtex/texinput/abidir.sty
-2003/10/23 | 2304 | language/arabic/arabtex/texinput/abjad.sty
-2003/10/23 | 16786 | language/arabic/arabtex/texinput/aboxes.sty
-2003/10/23 | 928 | language/arabic/arabtex/texinput/acjk.sty
-2003/10/23 | 11818 | language/arabic/arabtex/texinput/acmd.sty
-2003/10/23 | 3490 | language/arabic/arabtex/texinput/aconfig.sty
-2003/10/23 | 7133 | language/arabic/arabtex/texinput/aedpatch.sty
-2003/10/23 | 2348 | language/arabic/arabtex/texinput/afonts0.sty
-2003/10/23 | 1851 | language/arabic/arabtex/texinput/afonts1.sty
-2003/10/23 | 1964 | language/arabic/arabtex/texinput/afonts2.sty
-2003/10/23 | 1722 | language/arabic/arabtex/texinput/afonts.sty
-2003/10/23 | 3487 | language/arabic/arabtex/texinput/afoot.sty
-2003/10/23 | 5841 | language/arabic/arabtex/texinput/alatex.sty
-2003/10/23 | 21207 | language/arabic/arabtex/texinput/aligs.sty
-2003/10/23 | 6845 | language/arabic/arabtex/texinput/alists.sty
-2006/03/26 | 643 | language/arabic/arabtex/texinput/alocal.sty
-2003/10/23 | 3592 | language/arabic/arabtex/texinput/altxext.sty
-2003/10/23 | 7246 | language/arabic/arabtex/texinput/amac.sty
-2003/10/23 | 6072 | language/arabic/arabtex/texinput/aoutput.sty
-2003/10/23 | 36270 | language/arabic/arabtex/texinput/aparse.sty
-2006/07/06 | 87572 | language/arabic/arabtex/texinput/apatch.sty
-2003/10/23 | 1165 | language/arabic/arabtex/texinput/arababel.sty
-2003/10/23 | 802 | language/arabic/arabtex/texinput/arabart.cls
-2003/10/23 | 4081 | language/arabic/arabtex/texinput/arabaux.sty
-2003/10/23 | 794 | language/arabic/arabtex/texinput/arabbook.cls
-2003/10/23 | 3041 | language/arabic/arabtex/texinput/arabchrs.sty
-2003/10/23 | 3557 | language/arabic/arabtex/texinput/arabext.sty
-2003/10/23 | 27966 | language/arabic/arabtex/texinput/arabrep1.cls
-2003/10/23 | 33077 | language/arabic/arabtex/texinput/arabrep.cls
-2003/10/23 | 9136 | language/arabic/arabtex/texinput/arabskel.sty
-2003/10/23 | 8917 | language/arabic/arabtex/texinput/arabsymb.sty
-2003/10/23 | 24732 | language/arabic/arabtex/texinput/arabtex.sty
-2003/10/23 | 4667 | language/arabic/arabtex/texinput/arabtex.tex
-2003/10/23 | 6772 | language/arabic/arabtex/texinput/arabtoks.sty
-2003/10/23 | 15805 | language/arabic/arabtex/texinput/ascan.sty
-2003/10/23 | 13520 | language/arabic/arabtex/texinput/asect.sty
-2003/10/23 | 1222 | language/arabic/arabtex/texinput/asize10.clo
-2003/10/23 | 1222 | language/arabic/arabtex/texinput/asize11.clo
-2003/10/23 | 1222 | language/arabic/arabtex/texinput/asize12.clo
-1998/11/01 | 4948 | language/arabic/arabtex/texinput/asmo449a.sty
-2003/10/23 | 4460 | language/arabic/arabtex/texinput/asmo449.sty
-2003/10/23 | 4676 | language/arabic/arabtex/texinput/atabg.sty
-2003/10/23 | 19349 | language/arabic/arabtex/texinput/atrans.sty
-2003/10/23 | 12656 | language/arabic/arabtex/texinput/awrite.sty
-2003/10/23 | 4631 | language/arabic/arabtex/texinput/bhslabel.sty
-2003/10/23 | 7441 | language/arabic/arabtex/texinput/bhs.sty
-2003/10/23 | 8522 | language/arabic/arabtex/texinput/buck.sty
-2003/10/23 | 1984 | language/arabic/arabtex/texinput/captions.def
-2003/10/23 | 7146 | language/arabic/arabtex/texinput/cp1256.sty
-2003/10/23 | 172 | language/arabic/arabtex/texinput/etrans.sty
-2003/10/23 | 4480 | language/arabic/arabtex/texinput/gedalin.sty
-2003/10/23 | 5316 | language/arabic/arabtex/texinput/hebchrs.sty
-2003/10/23 | 1715 | language/arabic/arabtex/texinput/hebsymb.sty
-2003/10/23 | 2747 | language/arabic/arabtex/texinput/hebtex.sty
-2003/10/23 | 4249 | language/arabic/arabtex/texinput/hebtex.tex
+2003/10/24 | 4490 | language/arabic/arabtex/readme.txt
+2006/07/06 | 1333 | language/arabic/arabtex/saw.sty
+2006/07/07 | 143597 | language/arabic/arabtex/tex311.tgz
+2006/07/07 | 126558 | language/arabic/arabtex/tex312.tgz
+2003/10/24 | 9488 | language/arabic/arabtex/texinput/abidir.sty
+2003/10/24 | 2236 | language/arabic/arabtex/texinput/abjad.sty
+2003/10/24 | 16385 | language/arabic/arabtex/texinput/aboxes.sty
+2003/10/24 | 895 | language/arabic/arabtex/texinput/acjk.sty
+2003/10/24 | 11483 | language/arabic/arabtex/texinput/acmd.sty
+2003/10/24 | 3395 | language/arabic/arabtex/texinput/aconfig.sty
+2003/10/24 | 6913 | language/arabic/arabtex/texinput/aedpatch.sty
+2003/10/24 | 2288 | language/arabic/arabtex/texinput/afonts0.sty
+2003/10/24 | 1790 | language/arabic/arabtex/texinput/afonts1.sty
+2003/10/24 | 1910 | language/arabic/arabtex/texinput/afonts2.sty
+2003/10/24 | 1670 | language/arabic/arabtex/texinput/afonts.sty
+2003/10/24 | 3387 | language/arabic/arabtex/texinput/afoot.sty
+2003/10/24 | 5677 | language/arabic/arabtex/texinput/alatex.sty
+2003/10/24 | 20572 | language/arabic/arabtex/texinput/aligs.sty
+2003/10/24 | 6634 | language/arabic/arabtex/texinput/alists.sty
+2006/03/27 | 623 | language/arabic/arabtex/texinput/alocal.sty
+2003/10/24 | 3491 | language/arabic/arabtex/texinput/altxext.sty
+2003/10/24 | 7082 | language/arabic/arabtex/texinput/amac.sty
+2003/10/24 | 5899 | language/arabic/arabtex/texinput/aoutput.sty
+2003/10/24 | 35147 | language/arabic/arabtex/texinput/aparse.sty
+2006/07/06 | 85175 | language/arabic/arabtex/texinput/apatch.sty
+2003/10/24 | 1126 | language/arabic/arabtex/texinput/arababel.sty
+2003/10/24 | 778 | language/arabic/arabtex/texinput/arabart.cls
+2003/10/24 | 3947 | language/arabic/arabtex/texinput/arabaux.sty
+2003/10/24 | 771 | language/arabic/arabtex/texinput/arabbook.cls
+2003/10/24 | 2964 | language/arabic/arabtex/texinput/arabchrs.sty
+2003/10/24 | 3454 | language/arabic/arabtex/texinput/arabext.sty
+2003/10/24 | 27052 | language/arabic/arabtex/texinput/arabrep1.cls
+2003/10/24 | 32001 | language/arabic/arabtex/texinput/arabrep.cls
+2003/10/24 | 8951 | language/arabic/arabtex/texinput/arabskel.sty
+2003/10/24 | 8725 | language/arabic/arabtex/texinput/arabsymb.sty
+2003/10/24 | 24098 | language/arabic/arabtex/texinput/arabtex.sty
+2003/10/24 | 4534 | language/arabic/arabtex/texinput/arabtex.tex
+2003/10/24 | 6626 | language/arabic/arabtex/texinput/arabtoks.sty
+2003/10/24 | 15303 | language/arabic/arabtex/texinput/ascan.sty
+2003/10/24 | 13130 | language/arabic/arabtex/texinput/asect.sty
+2003/10/24 | 1182 | language/arabic/arabtex/texinput/asize10.clo
+2003/10/24 | 1182 | language/arabic/arabtex/texinput/asize11.clo
+2003/10/24 | 1182 | language/arabic/arabtex/texinput/asize12.clo
+1998/11/02 | 4948 | language/arabic/arabtex/texinput/asmo449a.sty
+2003/10/24 | 4338 | language/arabic/arabtex/texinput/asmo449.sty
+2003/10/24 | 4547 | language/arabic/arabtex/texinput/atabg.sty
+2003/10/24 | 18917 | language/arabic/arabtex/texinput/atrans.sty
+2003/10/24 | 12259 | language/arabic/arabtex/texinput/awrite.sty
+2003/10/24 | 4482 | language/arabic/arabtex/texinput/bhslabel.sty
+2003/10/24 | 7228 | language/arabic/arabtex/texinput/bhs.sty
+2003/10/24 | 8293 | language/arabic/arabtex/texinput/buck.sty
+2003/10/24 | 1908 | language/arabic/arabtex/texinput/captions.def
+2003/10/24 | 6973 | language/arabic/arabtex/texinput/cp1256.sty
+2003/10/24 | 163 | language/arabic/arabtex/texinput/etrans.sty
+2003/10/24 | 4368 | language/arabic/arabtex/texinput/gedalin.sty
+2003/10/24 | 5211 | language/arabic/arabtex/texinput/hebchrs.sty
+2003/10/24 | 1656 | language/arabic/arabtex/texinput/hebsymb.sty
+2003/10/24 | 2660 | language/arabic/arabtex/texinput/hebtex.sty
+2003/10/24 | 4127 | language/arabic/arabtex/texinput/hebtex.tex
2012/03/20 | 5495 | language/arabic/arabtex/texinput/hecmd.sty
-2003/10/23 | 1499 | language/arabic/arabtex/texinput/hefonts0.sty
-2003/10/23 | 1256 | language/arabic/arabtex/texinput/hefonts1.sty
-2003/10/23 | 1901 | language/arabic/arabtex/texinput/hefonts2.sty
-2003/10/23 | 1723 | language/arabic/arabtex/texinput/hefonts.sty
-2003/10/23 | 8814 | language/arabic/arabtex/texinput/heparse.sty
-2003/10/23 | 1289 | language/arabic/arabtex/texinput/hepatch.sty
-2003/10/23 | 8827 | language/arabic/arabtex/texinput/hescan.sty
-2003/10/23 | 3494 | language/arabic/arabtex/texinput/hetrans.sty
-2003/10/23 | 22763 | language/arabic/arabtex/texinput/hewrite.sty
-2003/10/23 | 6606 | language/arabic/arabtex/texinput/hmac.sty
-2003/10/23 | 8381 | language/arabic/arabtex/texinput/isiri.sty
-2003/10/23 | 919 | language/arabic/arabtex/texinput/iso88596.sty
-2003/10/23 | 4093 | language/arabic/arabtex/texinput/manifest.txt
-2003/10/23 | 165 | language/arabic/arabtex/texinput/nashbf.sty
-2003/10/23 | 1530 | language/arabic/arabtex/texinput/raw.sty
-2006/07/06 | 1376 | language/arabic/arabtex/texinput/saw.sty
-2003/10/23 | 1636 | language/arabic/arabtex/texinput/sotoku.sty
-2003/10/23 | 4199 | language/arabic/arabtex/texinput/twoblks.sty
-2003/10/23 | 3678 | language/arabic/arabtex/texinput/uheb.fd
+2003/10/24 | 1457 | language/arabic/arabtex/texinput/hefonts0.sty
+2003/10/24 | 1212 | language/arabic/arabtex/texinput/hefonts1.sty
+2003/10/24 | 1829 | language/arabic/arabtex/texinput/hefonts2.sty
+2003/10/24 | 1667 | language/arabic/arabtex/texinput/hefonts.sty
+2003/10/24 | 8523 | language/arabic/arabtex/texinput/heparse.sty
+2003/10/24 | 1252 | language/arabic/arabtex/texinput/hepatch.sty
+2003/10/24 | 8611 | language/arabic/arabtex/texinput/hescan.sty
+2003/10/24 | 3407 | language/arabic/arabtex/texinput/hetrans.sty
+2003/10/24 | 22174 | language/arabic/arabtex/texinput/hewrite.sty
+2003/10/24 | 6450 | language/arabic/arabtex/texinput/hmac.sty
+2003/10/24 | 8156 | language/arabic/arabtex/texinput/isiri.sty
+2003/10/24 | 896 | language/arabic/arabtex/texinput/iso88596.sty
+2003/10/24 | 4013 | language/arabic/arabtex/texinput/manifest.txt
+2003/10/24 | 156 | language/arabic/arabtex/texinput/nashbf.sty
+2003/10/24 | 1489 | language/arabic/arabtex/texinput/raw.sty
+2006/07/07 | 1333 | language/arabic/arabtex/texinput/saw.sty
+2003/10/24 | 1589 | language/arabic/arabtex/texinput/sotoku.sty
+2003/10/24 | 4095 | language/arabic/arabtex/texinput/twoblks.sty
+2003/10/24 | 3556 | language/arabic/arabtex/texinput/uheb.fd
1999/05/23 | 1449 | language/arabic/arabtex/texinput/unash.fd
-2003/10/23 | 1351 | language/arabic/arabtex/texinput/utf8.sty
-2003/10/23 | 11213 | language/arabic/arabtex/texinput/utfcode.sty
+2003/10/24 | 1309 | language/arabic/arabtex/texinput/utf8.sty
+2003/10/24 | 10934 | language/arabic/arabtex/texinput/utfcode.sty
2010/02/19 | 2052 | language/arabic/arabtex/texinput/Uxnsh.fd
-2006/03/26 | 3737 | language/arabic/arabtex/texinput/verses.sty
-2003/10/23 | 7481 | language/arabic/arabtex/texinput/witbhs.sty
-2003/10/23 | 7481 | language/arabic/arabtex/texinput/xarbskel.sty
-2003/10/23 | 9655 | language/arabic/arabtex/texinput/xarbsymb.sty
-2003/10/23 | 6446 | language/arabic/arabtex/texinput/yiddish.sty
+2006/03/27 | 3631 | language/arabic/arabtex/texinput/verses.sty
+2003/10/24 | 7272 | language/arabic/arabtex/texinput/witbhs.sty
+2003/10/24 | 7355 | language/arabic/arabtex/texinput/xarbskel.sty
+2003/10/24 | 9442 | language/arabic/arabtex/texinput/xarbsymb.sty
+2003/10/24 | 6251 | language/arabic/arabtex/texinput/yiddish.sty
1998/01/27 | 852 | language/arabic/arabtex/tfm/hcaption.tfm
1998/01/27 | 852 | language/arabic/arabtex/tfm/hclassic.tfm
1998/01/27 | 1368 | language/arabic/arabtex/tfm/nash14bf.tfm
@@ -189656,8 +189665,8 @@
1998/07/16 | 1364 | language/arabic/arabtex/tfm/xnsh14bf.tfm
1998/07/16 | 1364 | language/arabic/arabtex/tfm/xnsh14.tfm
1998/07/23 | 104 | language/arabic/arabtex/tfm/yarborn.tfm
-2006/02/09 | 3737 | language/arabic/arabtex/verses.sty
-2012/03/20 | 2169527 | language/arabic/arabtex.zip
+2006/02/09 | 3631 | language/arabic/arabtex/verses.sty
+2022/06/08 | 2164751 | language/arabic/arabtex.zip
2018/03/19 | 12131 | language/arabic/dad/dad.adjust
2018/03/19 | 13504 | language/arabic/dad/Dad.afm
2018/03/19 | 12132 | language/arabic/dad/dadbold.adjust
@@ -205098,278 +205107,286 @@
1993/11/08 | 1691 | macros/latex209/contrib/zero/zero-test.tex
2006/09/21 | 3505 | macros/latex209/contrib/zero.zip
1997/01/22 | 274 | macros/latex209/distribs/README.obsolete
-2021/12/06 | 7109 | macros/latex/base/alltt.dtx
-2021/12/06 | 2890 | macros/latex/base/alltt.ins
-2021/12/06 | 214860 | macros/latex/base/alltt.pdf
-2021/12/06 | 3282 | macros/latex/base/bugs.txt
-2021/12/06 | 242895 | macros/latex/base/cfgguide.pdf
-2021/12/06 | 22456 | macros/latex/base/cfgguide.tex
-2021/12/06 | 42708 | macros/latex/base/changes.old.txt
-2021/12/06 | 385981 | macros/latex/base/changes.txt
-2021/12/06 | 156240 | macros/latex/base/classes.dtx
-2021/12/06 | 4087 | macros/latex/base/classes.ins
-2021/12/06 | 550870 | macros/latex/base/classes.pdf
-2021/12/06 | 402787 | macros/latex/base/clsguide.pdf
-2021/12/06 | 69050 | macros/latex/base/clsguide.tex
-2021/12/06 | 5273 | macros/latex/base/cmextra.ins
-2021/12/06 | 43636 | macros/latex/base/cmfonts.fdd
-2021/12/06 | 4324 | macros/latex/base/cmfonts.ins
-2021/12/06 | 292376 | macros/latex/base/cmfonts.pdf
-2021/12/06 | 239688 | macros/latex/base/cyrguide.pdf
-2021/12/06 | 17495 | macros/latex/base/cyrguide.tex
-2021/12/06 | 204107 | macros/latex/base/doc.dtx
-2021/12/06 | 677451 | macros/latex/base/doc.pdf
-2021/12/06 | 170214 | macros/latex/base/docstrip.dtx
-2021/12/06 | 4221 | macros/latex/base/docstrip.ins
-2021/12/06 | 503607 | macros/latex/base/docstrip.pdf
-2021/12/06 | 41831 | macros/latex/base/doc-v3beta.sty
-2021/12/06 | 4390 | macros/latex/base/ec.ins
-2021/12/06 | 1309999 | macros/latex/base/encguide.pdf
-2021/12/06 | 52813 | macros/latex/base/encguide.tex
-2021/12/06 | 7221 | macros/latex/base/exscale.dtx
-2021/12/06 | 3338 | macros/latex/base/exscale.ins
-2021/12/06 | 204716 | macros/latex/base/exscale.pdf
-2021/12/06 | 23521 | macros/latex/base/fix-cm.dtx
-2021/12/06 | 2892 | macros/latex/base/fix-cm.ins
-2021/12/06 | 287729 | macros/latex/base/fix-cm.pdf
-2021/12/06 | 493966 | macros/latex/base/fntguide.pdf
-2021/12/06 | 90917 | macros/latex/base/fntguide.tex
-2021/12/06 | 60326 | macros/latex/base/fontdef.dtx
-2021/12/06 | 9583 | macros/latex/base/format.ins
-2021/12/06 | 5514 | macros/latex/base/graphpap.dtx
-2021/12/06 | 2892 | macros/latex/base/graphpap.ins
-2021/12/06 | 161721 | macros/latex/base/graphpap.pdf
-2021/12/06 | 2705 | macros/latex/base/idx.tex
-2021/12/06 | 18303 | macros/latex/base/ifthen.dtx
-2021/12/06 | 2888 | macros/latex/base/ifthen.ins
-2021/12/06 | 220540 | macros/latex/base/ifthen.pdf
-2021/12/06 | 106908 | macros/latex/base/inputenc.dtx
-2021/12/06 | 5714 | macros/latex/base/inputenc.ins
-2021/12/06 | 318171 | macros/latex/base/inputenc.pdf
-2021/12/06 | 4079 | macros/latex/base/lablst.tex
-2021/12/06 | 13759 | macros/latex/base/lamport-manual.err
-2021/12/06 | 170882 | macros/latex/base/lamport-manual.pdf
-2021/12/06 | 38735 | macros/latex/base/latex209.dtx
-2021/12/06 | 4219 | macros/latex/base/latex209.ins
-2021/12/06 | 469973 | macros/latex/base/latexchanges.pdf
-2021/12/06 | 41848 | macros/latex/base/latexchanges.tex
-2021/12/06 | 44409 | macros/latex/base/latexrelease.dtx
-2021/12/06 | 5917 | macros/latex/base/latexrelease.ins
-2021/12/06 | 281880 | macros/latex/base/latexrelease.pdf
-2021/12/06 | 6714 | macros/latex/base/latexsym.dtx
-2021/12/06 | 5041 | macros/latex/base/latexsym.ins
-2021/12/06 | 200762 | macros/latex/base/latexsym.pdf
-2021/12/06 | 52724 | macros/latex/base/lb2.err
-2021/12/06 | 252163 | macros/latex/base/lb2.pdf
-2021/12/06 | 1279 | macros/latex/base/legal.txt
-2021/12/06 | 63283 | macros/latex/base/letter.dtx
-2021/12/06 | 3372 | macros/latex/base/letter.ins
-2021/12/06 | 328903 | macros/latex/base/letter.pdf
-2021/12/06 | 20632 | macros/latex/base/lgc2.err
-2021/12/06 | 215099 | macros/latex/base/lgc2.pdf
-2021/12/06 | 9068 | macros/latex/base/lppl-1-0.txt
-2021/12/06 | 14341 | macros/latex/base/lppl-1-1.txt
-2021/12/06 | 14421 | macros/latex/base/lppl-1-2.txt
-2021/12/06 | 132380 | macros/latex/base/lppl.pdf
-2021/12/06 | 23386 | macros/latex/base/lppl.tex
-2021/12/06 | 19040 | macros/latex/base/lppl.txt
-2021/12/06 | 4303 | macros/latex/base/ltalloc.dtx
-2021/12/06 | 16105 | macros/latex/base/ltbibl.dtx
-2021/12/06 | 44776 | macros/latex/base/ltboxes.dtx
-2021/12/06 | 141971 | macros/latex/base/ltclass.dtx
-2021/12/06 | 171309 | macros/latex/base/ltcmd.dtx
-2021/12/06 | 717887 | macros/latex/base/ltcmdhooks-code.pdf
-2021/12/06 | 103 | macros/latex/base/ltcmdhooks-code.tex
-2021/12/06 | 479214 | macros/latex/base/ltcmdhooks-doc.pdf
-2021/12/06 | 177 | macros/latex/base/ltcmdhooks-doc.tex
-2021/12/06 | 52872 | macros/latex/base/ltcmdhooks.dtx
-2021/12/06 | 9562 | macros/latex/base/ltcntrl.dtx
-2021/12/06 | 24291 | macros/latex/base/ltcounts.dtx
-2021/12/06 | 85862 | macros/latex/base/ltdefns.dtx
-2021/12/06 | 35302 | macros/latex/base/ltdirchk.dtx
-2021/12/06 | 27074 | macros/latex/base/lterror.dtx
-2021/12/06 | 13917 | macros/latex/base/ltexpl.dtx
-2021/12/06 | 795179 | macros/latex/base/ltfilehook-code.pdf
-2021/12/06 | 105 | macros/latex/base/ltfilehook-code.tex
-2021/12/06 | 547018 | macros/latex/base/ltfilehook-doc.pdf
-2021/12/06 | 180 | macros/latex/base/ltfilehook-doc.tex
-2021/12/06 | 64242 | macros/latex/base/ltfilehook.dtx
-2021/12/06 | 55987 | macros/latex/base/ltfiles.dtx
-2021/12/06 | 46385 | macros/latex/base/ltfinal.dtx
-2021/12/06 | 55692 | macros/latex/base/ltfloat.dtx
-2021/12/06 | 29272 | macros/latex/base/ltfntcmd.dtx
-2021/12/06 | 58556 | macros/latex/base/ltfssaxes.dtx
-2021/12/06 | 80726 | macros/latex/base/ltfssbas.dtx
-2021/12/06 | 10375 | macros/latex/base/ltfsscmp.dtx
-2021/12/06 | 70650 | macros/latex/base/ltfssdcl.dtx
-2021/12/06 | 84220 | macros/latex/base/ltfssini.dtx
-2021/12/06 | 72480 | macros/latex/base/ltfsstrc.dtx
-2021/12/06 | 1083186 | macros/latex/base/lthooks-code.pdf
-2021/12/06 | 102 | macros/latex/base/lthooks-code.tex
-2021/12/06 | 703644 | macros/latex/base/lthooks-doc.pdf
-2021/12/06 | 177 | macros/latex/base/lthooks-doc.tex
-2021/12/06 | 209265 | macros/latex/base/lthooks.dtx
-2021/12/06 | 4950 | macros/latex/base/lthyphen.dtx
-2021/12/06 | 5864 | macros/latex/base/ltidxglo.dtx
-2021/12/06 | 4762 | macros/latex/base/ltlength.dtx
-2021/12/06 | 36157 | macros/latex/base/ltlists.dtx
-2021/12/06 | 3730 | macros/latex/base/ltlogos.dtx
-2021/12/06 | 64958 | macros/latex/base/ltluatex.dtx
-2021/12/06 | 317601 | macros/latex/base/ltluatex.pdf
-2021/12/06 | 39676 | macros/latex/base/ltmath.dtx
-2021/12/06 | 58750 | macros/latex/base/ltmiscen.dtx
-2021/12/06 | 161527 | macros/latex/base/ltnews01.pdf
-2021/12/06 | 5246 | macros/latex/base/ltnews01.tex
-2021/12/06 | 159800 | macros/latex/base/ltnews02.pdf
-2021/12/06 | 5462 | macros/latex/base/ltnews02.tex
-2021/12/06 | 159341 | macros/latex/base/ltnews03.pdf
-2021/12/06 | 5369 | macros/latex/base/ltnews03.tex
-2021/12/06 | 152535 | macros/latex/base/ltnews04.pdf
-2021/12/06 | 5678 | macros/latex/base/ltnews04.tex
-2021/12/06 | 174508 | macros/latex/base/ltnews05.pdf
-2021/12/06 | 5699 | macros/latex/base/ltnews05.tex
-2021/12/06 | 142860 | macros/latex/base/ltnews06.pdf
-2021/12/06 | 5544 | macros/latex/base/ltnews06.tex
-2021/12/06 | 137821 | macros/latex/base/ltnews07.pdf
-2021/12/06 | 5576 | macros/latex/base/ltnews07.tex
-2021/12/06 | 155062 | macros/latex/base/ltnews08.pdf
-2021/12/06 | 5732 | macros/latex/base/ltnews08.tex
-2021/12/06 | 129581 | macros/latex/base/ltnews09.pdf
-2021/12/06 | 5451 | macros/latex/base/ltnews09.tex
-2021/12/06 | 169419 | macros/latex/base/ltnews10.pdf
-2021/12/06 | 5825 | macros/latex/base/ltnews10.tex
-2021/12/06 | 111963 | macros/latex/base/ltnews11.pdf
-2021/12/06 | 5529 | macros/latex/base/ltnews11.tex
-2021/12/06 | 156565 | macros/latex/base/ltnews12.pdf
-2021/12/06 | 5574 | macros/latex/base/ltnews12.tex
-2021/12/06 | 182229 | macros/latex/base/ltnews13.pdf
-2021/12/06 | 7029 | macros/latex/base/ltnews13.tex
-2021/12/06 | 170481 | macros/latex/base/ltnews14.pdf
-2021/12/06 | 6424 | macros/latex/base/ltnews14.tex
-2021/12/06 | 130318 | macros/latex/base/ltnews15.pdf
-2021/12/06 | 5986 | macros/latex/base/ltnews15.tex
-2021/12/06 | 138088 | macros/latex/base/ltnews16.pdf
-2021/12/06 | 5775 | macros/latex/base/ltnews16.tex
-2021/12/06 | 166242 | macros/latex/base/ltnews17.pdf
-2021/12/06 | 8970 | macros/latex/base/ltnews17.tex
-2021/12/06 | 38039 | macros/latex/base/ltnews18.pdf
-2021/12/06 | 1341 | macros/latex/base/ltnews18.tex
-2021/12/06 | 230035 | macros/latex/base/ltnews19.pdf
-2021/12/06 | 4170 | macros/latex/base/ltnews19.tex
-2021/12/06 | 318554 | macros/latex/base/ltnews20.pdf
-2021/12/06 | 7221 | macros/latex/base/ltnews20.tex
-2021/12/06 | 244869 | macros/latex/base/ltnews21.pdf
-2021/12/06 | 9926 | macros/latex/base/ltnews21.tex
-2021/12/06 | 317774 | macros/latex/base/ltnews22.pdf
-2021/12/06 | 10792 | macros/latex/base/ltnews22.tex
-2021/12/06 | 286599 | macros/latex/base/ltnews23.pdf
-2021/12/06 | 10791 | macros/latex/base/ltnews23.tex
-2021/12/06 | 265291 | macros/latex/base/ltnews24.pdf
-2021/12/06 | 12334 | macros/latex/base/ltnews24.tex
-2021/12/06 | 204941 | macros/latex/base/ltnews25.pdf
-2021/12/06 | 5588 | macros/latex/base/ltnews25.tex
-2021/12/06 | 379468 | macros/latex/base/ltnews26.pdf
-2021/12/06 | 10798 | macros/latex/base/ltnews26.tex
-2021/12/06 | 250601 | macros/latex/base/ltnews27.pdf
-2021/12/06 | 5671 | macros/latex/base/ltnews27.tex
-2021/12/06 | 376655 | macros/latex/base/ltnews28.pdf
-2021/12/06 | 15047 | macros/latex/base/ltnews28.tex
-2021/12/06 | 455108 | macros/latex/base/ltnews29.pdf
-2021/12/06 | 18944 | macros/latex/base/ltnews29.tex
-2021/12/06 | 511909 | macros/latex/base/ltnews30.pdf
-2021/12/06 | 23637 | macros/latex/base/ltnews30.tex
-2021/12/06 | 526324 | macros/latex/base/ltnews31.pdf
-2021/12/06 | 30428 | macros/latex/base/ltnews31.tex
-2021/12/06 | 546175 | macros/latex/base/ltnews32.pdf
-2021/12/06 | 33239 | macros/latex/base/ltnews32.tex
-2021/12/06 | 522421 | macros/latex/base/ltnews33.pdf
-2021/12/06 | 33907 | macros/latex/base/ltnews33.tex
-2021/12/06 | 507763 | macros/latex/base/ltnews34.pdf
-2021/12/06 | 32200 | macros/latex/base/ltnews34.tex
-2021/12/06 | 20469 | macros/latex/base/ltnews.cls
-2021/12/06 | 1120381 | macros/latex/base/ltnews.pdf
-2021/12/06 | 8259 | macros/latex/base/ltnews.tex
-2021/12/06 | 149411 | macros/latex/base/ltoutenc.dtx
-2021/12/06 | 3367 | macros/latex/base/ltoutenc.ins
-2021/12/06 | 177935 | macros/latex/base/ltoutput.dtx
-2021/12/06 | 11590 | macros/latex/base/ltpage.dtx
-2021/12/06 | 2733 | macros/latex/base/ltpageno.dtx
-2021/12/06 | 666698 | macros/latex/base/ltpara-code.pdf
-2021/12/06 | 99 | macros/latex/base/ltpara-code.tex
-2021/12/06 | 560208 | macros/latex/base/ltpara-doc.pdf
-2021/12/06 | 173 | macros/latex/base/ltpara-doc.tex
-2021/12/06 | 51612 | macros/latex/base/ltpara.dtx
-2021/12/06 | 6160 | macros/latex/base/ltpar.dtx
-2021/12/06 | 69007 | macros/latex/base/ltpictur.dtx
-2021/12/06 | 54088 | macros/latex/base/ltplain.dtx
-2021/12/06 | 33951 | macros/latex/base/ltsect.dtx
-2021/12/06 | 817756 | macros/latex/base/ltshipout-code.pdf
-2021/12/06 | 104 | macros/latex/base/ltshipout-code.tex
-2021/12/06 | 564767 | macros/latex/base/ltshipout-doc.pdf
-2021/12/06 | 179 | macros/latex/base/ltshipout-doc.tex
-2021/12/06 | 78325 | macros/latex/base/ltshipout.dtx
-2021/12/06 | 45245 | macros/latex/base/ltspace.dtx
-2021/12/06 | 47901 | macros/latex/base/lttab.dtx
-2021/12/06 | 90126 | macros/latex/base/lttextcomp.dtx
-2021/12/06 | 8736 | macros/latex/base/ltthm.dtx
-2021/12/06 | 14255 | macros/latex/base/ltvers.dtx
-2021/12/06 | 219360 | macros/latex/base/ltx3info.pdf
-2021/12/06 | 18299 | macros/latex/base/ltx3info.tex
-2021/12/06 | 27122 | macros/latex/base/ltxcheck.tex
-2021/12/06 | 19064 | macros/latex/base/ltxdoc.dtx
-2021/12/06 | 230966 | macros/latex/base/ltxdoc.pdf
-2021/12/06 | 7524 | macros/latex/base/ltxguide.cls
-2021/12/06 | 15625 | macros/latex/base/ltxref.dtx
-2021/12/06 | 10606 | macros/latex/base/makeindx.dtx
-2021/12/06 | 3434 | macros/latex/base/makeindx.ins
-2021/12/06 | 165836 | macros/latex/base/makeindx.pdf
-2021/12/06 | 10896 | macros/latex/base/manifest.txt
-2021/12/06 | 1937 | macros/latex/base/minimal.cls
-2021/12/06 | 243610 | macros/latex/base/modguide.pdf
-2021/12/06 | 16233 | macros/latex/base/modguide.tex
-2021/12/06 | 4254 | macros/latex/base/newdc.ins
-2021/12/06 | 6362 | macros/latex/base/newlfont.dtx
-2021/12/06 | 18404 | macros/latex/base/nfssfont.dtx
-2021/12/06 | 2893 | macros/latex/base/nfssfont.ins
-2021/12/06 | 211186 | macros/latex/base/nfssfont.pdf
-2021/12/06 | 3960 | macros/latex/base/olddc.ins
-2021/12/06 | 8631 | macros/latex/base/oldlfont.dtx
-2021/12/06 | 9350 | macros/latex/base/preload.dtx
-2021/12/06 | 13301 | macros/latex/base/proc.dtx
-2021/12/06 | 3401 | macros/latex/base/proc.ins
-2021/12/06 | 226371 | macros/latex/base/proc.pdf
-2021/12/06 | 3514 | macros/latex/base/README.md
-2021/12/06 | 7200 | macros/latex/base/sample2e.tex
-2021/12/06 | 89727 | macros/latex/base/slides.dtx
-2021/12/06 | 6760 | macros/latex/base/slides.ins
-2021/12/06 | 374232 | macros/latex/base/slides.pdf
-2021/12/06 | 15699 | macros/latex/base/slifonts.fdd
-2021/12/06 | 234186 | macros/latex/base/slifonts.pdf
-2021/12/06 | 1694 | macros/latex/base/small2e.tex
-2021/12/06 | 9168 | macros/latex/base/source2edoc.cls
-2021/12/06 | 5461272 | macros/latex/base/source2e.pdf
-2021/12/06 | 15104 | macros/latex/base/source2e.tex
-2021/12/06 | 9400 | macros/latex/base/syntonly.dtx
-2021/12/06 | 2896 | macros/latex/base/syntonly.ins
-2021/12/06 | 189946 | macros/latex/base/syntonly.pdf
-2021/12/06 | 12520 | macros/latex/base/testpage.tex
-2021/12/06 | 2738 | macros/latex/base/tex2.txt
-2021/12/06 | 8496 | macros/latex/base/texpert.txt
-2021/12/06 | 172409 | macros/latex/base/tlc2.err
-2021/12/06 | 289525 | macros/latex/base/tlc2.pdf
-2021/12/06 | 12242 | macros/latex/base/tulm.fdd
-2021/12/06 | 3781 | macros/latex/base/tulm.ins
-2021/12/06 | 162776 | macros/latex/base/tulm.pdf
-2021/12/06 | 3181 | macros/latex/base/unpack.ins
-2021/12/06 | 325735 | macros/latex/base/usrguide3.pdf
-2021/12/06 | 30453 | macros/latex/base/usrguide3.tex
-2021/12/06 | 431002 | macros/latex/base/usrguide.pdf
-2021/12/06 | 68435 | macros/latex/base/usrguide.tex
-2021/12/06 | 90560 | macros/latex/base/utf8ienc.dtx
-2021/12/06 | 352793 | macros/latex/base/utf8ienc.pdf
-2021/12/06 | 10251 | macros/latex/base/webcomp.err
-2021/12/06 | 146209 | macros/latex/base/webcomp.pdf
-2021/12/06 | 34732969 | macros/latex/base.zip
+2022/06/08 | 7104 | macros/latex/base/alltt.dtx
+2022/06/08 | 2890 | macros/latex/base/alltt.ins
+2022/06/08 | 223831 | macros/latex/base/alltt.pdf
+2022/06/08 | 3282 | macros/latex/base/bugs.txt
+2022/06/08 | 242888 | macros/latex/base/cfgguide.pdf
+2022/06/08 | 22456 | macros/latex/base/cfgguide.tex
+2022/06/08 | 42708 | macros/latex/base/changes.old.txt
+2022/06/08 | 396793 | macros/latex/base/changes.txt
+2022/06/08 | 156235 | macros/latex/base/classes.dtx
+2022/06/08 | 4087 | macros/latex/base/classes.ins
+2022/06/08 | 560350 | macros/latex/base/classes.pdf
+2022/06/08 | 402780 | macros/latex/base/clsguide.pdf
+2022/06/08 | 69050 | macros/latex/base/clsguide.tex
+2022/06/08 | 5273 | macros/latex/base/cmextra.ins
+2022/06/08 | 43636 | macros/latex/base/cmfonts.fdd
+2022/06/08 | 4324 | macros/latex/base/cmfonts.ins
+2022/06/08 | 292376 | macros/latex/base/cmfonts.pdf
+2022/06/08 | 239689 | macros/latex/base/cyrguide.pdf
+2022/06/08 | 17495 | macros/latex/base/cyrguide.tex
+2022/06/08 | 29965 | macros/latex/base/doc-2016-02-15.sty
+2022/06/08 | 30499 | macros/latex/base/doc-2021-06-01.sty
+2022/06/08 | 1081719 | macros/latex/base/doc-code.pdf
+2022/06/08 | 96 | macros/latex/base/doc-code.tex
+2022/06/08 | 244287 | macros/latex/base/doc.dtx
+2022/06/08 | 755165 | macros/latex/base/doc.pdf
+2022/06/08 | 170209 | macros/latex/base/docstrip.dtx
+2022/06/08 | 4273 | macros/latex/base/docstrip.ins
+2022/06/08 | 503620 | macros/latex/base/docstrip.pdf
+2022/06/08 | 4390 | macros/latex/base/ec.ins
+2022/06/08 | 1318126 | macros/latex/base/encguide.pdf
+2022/06/08 | 52813 | macros/latex/base/encguide.tex
+2022/06/08 | 7216 | macros/latex/base/exscale.dtx
+2022/06/08 | 3338 | macros/latex/base/exscale.ins
+2022/06/08 | 204711 | macros/latex/base/exscale.pdf
+2022/06/08 | 23516 | macros/latex/base/fix-cm.dtx
+2022/06/08 | 2892 | macros/latex/base/fix-cm.ins
+2022/06/08 | 288328 | macros/latex/base/fix-cm.pdf
+2022/06/08 | 502880 | macros/latex/base/fntguide.pdf
+2022/06/08 | 106880 | macros/latex/base/fntguide.tex
+2022/06/08 | 60321 | macros/latex/base/fontdef.dtx
+2022/06/08 | 9779 | macros/latex/base/format.ins
+2022/06/08 | 5509 | macros/latex/base/graphpap.dtx
+2022/06/08 | 2892 | macros/latex/base/graphpap.ins
+2022/06/08 | 161713 | macros/latex/base/graphpap.pdf
+2022/06/08 | 2705 | macros/latex/base/idx.tex
+2022/06/08 | 18753 | macros/latex/base/ifthen.dtx
+2022/06/08 | 2888 | macros/latex/base/ifthen.ins
+2022/06/08 | 221211 | macros/latex/base/ifthen.pdf
+2022/06/08 | 106904 | macros/latex/base/inputenc.dtx
+2022/06/08 | 5714 | macros/latex/base/inputenc.ins
+2022/06/08 | 318204 | macros/latex/base/inputenc.pdf
+2022/06/08 | 4079 | macros/latex/base/lablst.tex
+2022/06/08 | 13759 | macros/latex/base/lamport-manual.err
+2022/06/08 | 170878 | macros/latex/base/lamport-manual.pdf
+2022/06/08 | 38730 | macros/latex/base/latex209.dtx
+2022/06/08 | 4219 | macros/latex/base/latex209.ins
+2022/06/08 | 44976 | macros/latex/base/latexrelease.dtx
+2022/06/08 | 6047 | macros/latex/base/latexrelease.ins
+2022/06/08 | 281906 | macros/latex/base/latexrelease.pdf
+2022/06/08 | 6709 | macros/latex/base/latexsym.dtx
+2022/06/08 | 5041 | macros/latex/base/latexsym.ins
+2022/06/08 | 200760 | macros/latex/base/latexsym.pdf
+2022/06/08 | 52710 | macros/latex/base/lb2.err
+2022/06/08 | 252140 | macros/latex/base/lb2.pdf
+2022/06/08 | 1279 | macros/latex/base/legal.txt
+2022/06/08 | 63280 | macros/latex/base/letter.dtx
+2022/06/08 | 3372 | macros/latex/base/letter.ins
+2022/06/08 | 337544 | macros/latex/base/letter.pdf
+2022/06/08 | 20652 | macros/latex/base/lgc2.err
+2022/06/08 | 215684 | macros/latex/base/lgc2.pdf
+2022/06/08 | 9068 | macros/latex/base/lppl-1-0.txt
+2022/06/08 | 14341 | macros/latex/base/lppl-1-1.txt
+2022/06/08 | 14421 | macros/latex/base/lppl-1-2.txt
+2022/06/08 | 132382 | macros/latex/base/lppl.pdf
+2022/06/08 | 23386 | macros/latex/base/lppl.tex
+2022/06/08 | 19040 | macros/latex/base/lppl.txt
+2022/06/08 | 4298 | macros/latex/base/ltalloc.dtx
+2022/06/08 | 17389 | macros/latex/base/ltbibl.dtx
+2022/06/08 | 44772 | macros/latex/base/ltboxes.dtx
+2022/06/08 | 142877 | macros/latex/base/ltclass.dtx
+2022/06/08 | 172373 | macros/latex/base/ltcmd.dtx
+2022/06/08 | 720048 | macros/latex/base/ltcmdhooks-code.pdf
+2022/06/08 | 103 | macros/latex/base/ltcmdhooks-code.tex
+2022/06/08 | 478890 | macros/latex/base/ltcmdhooks-doc.pdf
+2022/06/08 | 238 | macros/latex/base/ltcmdhooks-doc.tex
+2022/06/08 | 53025 | macros/latex/base/ltcmdhooks.dtx
+2022/06/08 | 9557 | macros/latex/base/ltcntrl.dtx
+2022/06/08 | 24286 | macros/latex/base/ltcounts.dtx
+2022/06/08 | 85858 | macros/latex/base/ltdefns.dtx
+2022/06/08 | 35984 | macros/latex/base/ltdirchk.dtx
+2022/06/08 | 27069 | macros/latex/base/lterror.dtx
+2022/06/08 | 18711 | macros/latex/base/ltexpl.dtx
+2022/06/08 | 802835 | macros/latex/base/ltfilehook-code.pdf
+2022/06/08 | 105 | macros/latex/base/ltfilehook-code.tex
+2022/06/08 | 548523 | macros/latex/base/ltfilehook-doc.pdf
+2022/06/08 | 241 | macros/latex/base/ltfilehook-doc.tex
+2022/06/08 | 66541 | macros/latex/base/ltfilehook.dtx
+2022/06/08 | 58933 | macros/latex/base/ltfiles.dtx
+2022/06/08 | 48230 | macros/latex/base/ltfinal.dtx
+2022/06/08 | 55687 | macros/latex/base/ltfloat.dtx
+2022/06/08 | 29267 | macros/latex/base/ltfntcmd.dtx
+2022/06/08 | 58551 | macros/latex/base/ltfssaxes.dtx
+2022/06/08 | 80881 | macros/latex/base/ltfssbas.dtx
+2022/06/08 | 10370 | macros/latex/base/ltfsscmp.dtx
+2022/06/08 | 70645 | macros/latex/base/ltfssdcl.dtx
+2022/06/08 | 84215 | macros/latex/base/ltfssini.dtx
+2022/06/08 | 72475 | macros/latex/base/ltfsstrc.dtx
+2022/06/08 | 1096906 | macros/latex/base/lthooks-code.pdf
+2022/06/08 | 102 | macros/latex/base/lthooks-code.tex
+2022/06/08 | 703813 | macros/latex/base/lthooks-doc.pdf
+2022/06/08 | 238 | macros/latex/base/lthooks-doc.tex
+2022/06/08 | 211482 | macros/latex/base/lthooks.dtx
+2022/06/08 | 4945 | macros/latex/base/lthyphen.dtx
+2022/06/08 | 5859 | macros/latex/base/ltidxglo.dtx
+2022/06/08 | 17643 | macros/latex/base/ltkeys.dtx
+2022/06/08 | 4757 | macros/latex/base/ltlength.dtx
+2022/06/08 | 36152 | macros/latex/base/ltlists.dtx
+2022/06/08 | 3725 | macros/latex/base/ltlogos.dtx
+2022/06/08 | 65782 | macros/latex/base/ltluatex.dtx
+2022/06/08 | 317700 | macros/latex/base/ltluatex.pdf
+2022/06/08 | 715490 | macros/latex/base/ltmarks-code.pdf
+2022/06/08 | 102 | macros/latex/base/ltmarks-code.tex
+2022/06/08 | 586925 | macros/latex/base/ltmarks-doc.pdf
+2022/06/08 | 238 | macros/latex/base/ltmarks-doc.tex
+2022/06/08 | 63132 | macros/latex/base/ltmarks.dtx
+2022/06/08 | 40234 | macros/latex/base/ltmath.dtx
+2022/06/08 | 6213 | macros/latex/base/ltmeta.dtx
+2022/06/08 | 58745 | macros/latex/base/ltmiscen.dtx
+2022/06/08 | 161518 | macros/latex/base/ltnews01.pdf
+2022/06/08 | 5246 | macros/latex/base/ltnews01.tex
+2022/06/08 | 159792 | macros/latex/base/ltnews02.pdf
+2022/06/08 | 5462 | macros/latex/base/ltnews02.tex
+2022/06/08 | 159332 | macros/latex/base/ltnews03.pdf
+2022/06/08 | 5369 | macros/latex/base/ltnews03.tex
+2022/06/08 | 152525 | macros/latex/base/ltnews04.pdf
+2022/06/08 | 5678 | macros/latex/base/ltnews04.tex
+2022/06/08 | 174494 | macros/latex/base/ltnews05.pdf
+2022/06/08 | 5699 | macros/latex/base/ltnews05.tex
+2022/06/08 | 142849 | macros/latex/base/ltnews06.pdf
+2022/06/08 | 5544 | macros/latex/base/ltnews06.tex
+2022/06/08 | 137811 | macros/latex/base/ltnews07.pdf
+2022/06/08 | 5576 | macros/latex/base/ltnews07.tex
+2022/06/08 | 155053 | macros/latex/base/ltnews08.pdf
+2022/06/08 | 5732 | macros/latex/base/ltnews08.tex
+2022/06/08 | 129570 | macros/latex/base/ltnews09.pdf
+2022/06/08 | 5451 | macros/latex/base/ltnews09.tex
+2022/06/08 | 169416 | macros/latex/base/ltnews10.pdf
+2022/06/08 | 5825 | macros/latex/base/ltnews10.tex
+2022/06/08 | 111948 | macros/latex/base/ltnews11.pdf
+2022/06/08 | 5529 | macros/latex/base/ltnews11.tex
+2022/06/08 | 156551 | macros/latex/base/ltnews12.pdf
+2022/06/08 | 5574 | macros/latex/base/ltnews12.tex
+2022/06/08 | 182225 | macros/latex/base/ltnews13.pdf
+2022/06/08 | 7029 | macros/latex/base/ltnews13.tex
+2022/06/08 | 170473 | macros/latex/base/ltnews14.pdf
+2022/06/08 | 6424 | macros/latex/base/ltnews14.tex
+2022/06/08 | 130309 | macros/latex/base/ltnews15.pdf
+2022/06/08 | 5986 | macros/latex/base/ltnews15.tex
+2022/06/08 | 138073 | macros/latex/base/ltnews16.pdf
+2022/06/08 | 5775 | macros/latex/base/ltnews16.tex
+2022/06/08 | 166228 | macros/latex/base/ltnews17.pdf
+2022/06/08 | 8970 | macros/latex/base/ltnews17.tex
+2022/06/08 | 38033 | macros/latex/base/ltnews18.pdf
+2022/06/08 | 1341 | macros/latex/base/ltnews18.tex
+2022/06/08 | 230028 | macros/latex/base/ltnews19.pdf
+2022/06/08 | 4170 | macros/latex/base/ltnews19.tex
+2022/06/08 | 318548 | macros/latex/base/ltnews20.pdf
+2022/06/08 | 7221 | macros/latex/base/ltnews20.tex
+2022/06/08 | 244867 | macros/latex/base/ltnews21.pdf
+2022/06/08 | 9926 | macros/latex/base/ltnews21.tex
+2022/06/08 | 317773 | macros/latex/base/ltnews22.pdf
+2022/06/08 | 10792 | macros/latex/base/ltnews22.tex
+2022/06/08 | 286591 | macros/latex/base/ltnews23.pdf
+2022/06/08 | 10791 | macros/latex/base/ltnews23.tex
+2022/06/08 | 265279 | macros/latex/base/ltnews24.pdf
+2022/06/08 | 12334 | macros/latex/base/ltnews24.tex
+2022/06/08 | 204935 | macros/latex/base/ltnews25.pdf
+2022/06/08 | 5588 | macros/latex/base/ltnews25.tex
+2022/06/08 | 379462 | macros/latex/base/ltnews26.pdf
+2022/06/08 | 10798 | macros/latex/base/ltnews26.tex
+2022/06/08 | 250592 | macros/latex/base/ltnews27.pdf
+2022/06/08 | 5671 | macros/latex/base/ltnews27.tex
+2022/06/08 | 376643 | macros/latex/base/ltnews28.pdf
+2022/06/08 | 15047 | macros/latex/base/ltnews28.tex
+2022/06/08 | 455107 | macros/latex/base/ltnews29.pdf
+2022/06/08 | 18944 | macros/latex/base/ltnews29.tex
+2022/06/08 | 511909 | macros/latex/base/ltnews30.pdf
+2022/06/08 | 23637 | macros/latex/base/ltnews30.tex
+2022/06/08 | 526323 | macros/latex/base/ltnews31.pdf
+2022/06/08 | 30428 | macros/latex/base/ltnews31.tex
+2022/06/08 | 546160 | macros/latex/base/ltnews32.pdf
+2022/06/08 | 33239 | macros/latex/base/ltnews32.tex
+2022/06/08 | 522412 | macros/latex/base/ltnews33.pdf
+2022/06/08 | 33907 | macros/latex/base/ltnews33.tex
+2022/06/08 | 508044 | macros/latex/base/ltnews34.pdf
+2022/06/08 | 32307 | macros/latex/base/ltnews34.tex
+2022/06/08 | 563513 | macros/latex/base/ltnews35.pdf
+2022/06/08 | 38946 | macros/latex/base/ltnews35.tex
+2022/06/08 | 20469 | macros/latex/base/ltnews.cls
+2022/06/08 | 1180993 | macros/latex/base/ltnews.pdf
+2022/06/08 | 8368 | macros/latex/base/ltnews.tex
+2022/06/08 | 148294 | macros/latex/base/ltoutenc.dtx
+2022/06/08 | 3367 | macros/latex/base/ltoutenc.ins
+2022/06/08 | 178421 | macros/latex/base/ltoutput.dtx
+2022/06/08 | 14091 | macros/latex/base/ltpage.dtx
+2022/06/08 | 2728 | macros/latex/base/ltpageno.dtx
+2022/06/08 | 666944 | macros/latex/base/ltpara-code.pdf
+2022/06/08 | 99 | macros/latex/base/ltpara-code.tex
+2022/06/08 | 560439 | macros/latex/base/ltpara-doc.pdf
+2022/06/08 | 234 | macros/latex/base/ltpara-doc.tex
+2022/06/08 | 51606 | macros/latex/base/ltpara.dtx
+2022/06/08 | 6155 | macros/latex/base/ltpar.dtx
+2022/06/08 | 69002 | macros/latex/base/ltpictur.dtx
+2022/06/08 | 59499 | macros/latex/base/ltplain.dtx
+2022/06/08 | 33946 | macros/latex/base/ltsect.dtx
+2022/06/08 | 820689 | macros/latex/base/ltshipout-code.pdf
+2022/06/08 | 104 | macros/latex/base/ltshipout-code.tex
+2022/06/08 | 564986 | macros/latex/base/ltshipout-doc.pdf
+2022/06/08 | 240 | macros/latex/base/ltshipout-doc.tex
+2022/06/08 | 80053 | macros/latex/base/ltshipout.dtx
+2022/06/08 | 45240 | macros/latex/base/ltspace.dtx
+2022/06/08 | 47896 | macros/latex/base/lttab.dtx
+2022/06/08 | 90370 | macros/latex/base/lttextcomp.dtx
+2022/06/08 | 8731 | macros/latex/base/ltthm.dtx
+2022/06/08 | 14785 | macros/latex/base/ltvers.dtx
+2022/06/08 | 219349 | macros/latex/base/ltx3info.pdf
+2022/06/08 | 18299 | macros/latex/base/ltx3info.tex
+2022/06/08 | 27122 | macros/latex/base/ltxcheck.tex
+2022/06/08 | 22067 | macros/latex/base/ltxdoc.dtx
+2022/06/08 | 242822 | macros/latex/base/ltxdoc.pdf
+2022/06/08 | 7524 | macros/latex/base/ltxguide.cls
+2022/06/08 | 18363 | macros/latex/base/ltxref.dtx
+2022/06/08 | 10601 | macros/latex/base/makeindx.dtx
+2022/06/08 | 3434 | macros/latex/base/makeindx.ins
+2022/06/08 | 165821 | macros/latex/base/makeindx.pdf
+2022/06/08 | 11103 | macros/latex/base/manifest.txt
+2022/06/08 | 1937 | macros/latex/base/minimal.cls
+2022/06/08 | 243605 | macros/latex/base/modguide.pdf
+2022/06/08 | 16233 | macros/latex/base/modguide.tex
+2022/06/08 | 4254 | macros/latex/base/newdc.ins
+2022/06/08 | 6357 | macros/latex/base/newlfont.dtx
+2022/06/08 | 18399 | macros/latex/base/nfssfont.dtx
+2022/06/08 | 2893 | macros/latex/base/nfssfont.ins
+2022/06/08 | 211180 | macros/latex/base/nfssfont.pdf
+2022/06/08 | 3960 | macros/latex/base/olddc.ins
+2022/06/08 | 8626 | macros/latex/base/oldlfont.dtx
+2022/06/08 | 9345 | macros/latex/base/preload.dtx
+2022/06/08 | 13589 | macros/latex/base/proc.dtx
+2022/06/08 | 3401 | macros/latex/base/proc.ins
+2022/06/08 | 227059 | macros/latex/base/proc.pdf
+2022/06/08 | 3463 | macros/latex/base/README.md
+2022/06/08 | 7200 | macros/latex/base/sample2e.tex
+2022/06/08 | 89727 | macros/latex/base/slides.dtx
+2022/06/08 | 6760 | macros/latex/base/slides.ins
+2022/06/08 | 375518 | macros/latex/base/slides.pdf
+2022/06/08 | 15699 | macros/latex/base/slifonts.fdd
+2022/06/08 | 234191 | macros/latex/base/slifonts.pdf
+2022/06/08 | 1694 | macros/latex/base/small2e.tex
+2022/06/08 | 9401 | macros/latex/base/source2edoc.cls
+2022/06/08 | 5761047 | macros/latex/base/source2e.pdf
+2022/06/08 | 15306 | macros/latex/base/source2e.tex
+2022/06/08 | 9395 | macros/latex/base/syntonly.dtx
+2022/06/08 | 2896 | macros/latex/base/syntonly.ins
+2022/06/08 | 189644 | macros/latex/base/syntonly.pdf
+2022/06/08 | 12520 | macros/latex/base/testpage.tex
+2022/06/08 | 172867 | macros/latex/base/tlc2.err
+2022/06/08 | 290615 | macros/latex/base/tlc2.pdf
+2022/06/08 | 12242 | macros/latex/base/tulm.fdd
+2022/06/08 | 3781 | macros/latex/base/tulm.ins
+2022/06/08 | 162772 | macros/latex/base/tulm.pdf
+2022/06/08 | 3181 | macros/latex/base/unpack.ins
+2022/06/08 | 403394 | macros/latex/base/usrguide3.pdf
+2022/06/08 | 44166 | macros/latex/base/usrguide3.tex
+2022/06/08 | 430994 | macros/latex/base/usrguide.pdf
+2022/06/08 | 68435 | macros/latex/base/usrguide.tex
+2022/06/08 | 92280 | macros/latex/base/utf8ienc.dtx
+2022/06/08 | 353574 | macros/latex/base/utf8ienc.pdf
+2022/06/08 | 10251 | macros/latex/base/webcomp.err
+2022/06/08 | 146198 | macros/latex/base/webcomp.pdf
+2022/06/08 | 37754109 | macros/latex/base.zip
2005/04/09 | 16501 | macros/latex/contrib/12many/12many.dtx
2005/04/09 | 1219 | macros/latex/contrib/12many/12many.ins
2005/04/09 | 393999 | macros/latex/contrib/12many/12many.pdf
@@ -226473,12 +226490,12 @@
2006/01/25 | 493 | macros/latex/contrib/punk-latex/README
2006/09/23 | 151193 | macros/latex/contrib/punk-latex.zip
2022/05/25 | 1091 | macros/latex/contrib/pxcjkcat/LICENSE
-2022/05/28 | 163412 | macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
-2022/05/28 | 32503 | macros/latex/contrib/pxcjkcat/pxcjkcat.sty
-2022/05/28 | 41213 | macros/latex/contrib/pxcjkcat/pxcjkcat.tex
-2022/05/28 | 1355 | macros/latex/contrib/pxcjkcat/README-ja.md
-2022/05/28 | 3130 | macros/latex/contrib/pxcjkcat/README.md
-2022/05/28 | 185421 | macros/latex/contrib/pxcjkcat.zip
+2022/06/03 | 197668 | macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
+2022/06/03 | 40123 | macros/latex/contrib/pxcjkcat/pxcjkcat.sty
+2022/06/03 | 50755 | macros/latex/contrib/pxcjkcat/pxcjkcat.tex
+2022/06/03 | 1658 | macros/latex/contrib/pxcjkcat/README-ja.md
+2022/06/03 | 3204 | macros/latex/contrib/pxcjkcat/README.md
+2022/06/08 | 223926 | macros/latex/contrib/pxcjkcat.zip
2011/03/16 | 11907 | macros/latex/contrib/pxgreeks/pxgreeks.dtx
2011/03/16 | 2216 | macros/latex/contrib/pxgreeks/pxgreeks.ins
2011/03/16 | 68222 | macros/latex/contrib/pxgreeks/pxgreeks.pdf
@@ -235737,44 +235754,44 @@
2020/06/01 | 5281 | macros/latex/required/amscls/upref.dtx
2020/06/01 | 1999 | macros/latex/required/amscls/upref.ins
2020/06/01 | 1208335 | macros/latex/required/amscls.zip
-2021/11/12 | 8668 | macros/latex/required/amsmath/amsbsy.dtx
-2021/11/12 | 1505 | macros/latex/required/amsmath/amsbsy.ins
-2021/11/12 | 173746 | macros/latex/required/amsmath/amsbsy.pdf
-2021/11/12 | 11289 | macros/latex/required/amsmath/amscd.dtx
-2021/11/12 | 1487 | macros/latex/required/amsmath/amscd.ins
-2021/11/12 | 178672 | macros/latex/required/amsmath/amscd.pdf
-2021/11/12 | 5323 | macros/latex/required/amsmath/ams-external.txt
-2021/11/12 | 13447 | macros/latex/required/amsmath/amsgen.dtx
-2021/11/12 | 1484 | macros/latex/required/amsmath/amsgen.ins
-2021/11/12 | 176740 | macros/latex/required/amsmath/amsgen.pdf
-2021/11/12 | 5860 | macros/latex/required/amsmath/ams-internal.txt
-2021/11/12 | 508199 | macros/latex/required/amsmath/amsldoc.pdf
-2021/11/12 | 104792 | macros/latex/required/amsmath/amsldoc.tex
-2021/11/12 | 85099 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
-2021/11/12 | 227267 | macros/latex/required/amsmath/amsmath.dtx
-2021/11/12 | 1504 | macros/latex/required/amsmath/amsmath.ins
-2021/11/12 | 399735 | macros/latex/required/amsmath/amsmath.pdf
-2021/11/12 | 9200 | macros/latex/required/amsmath/amsopn.dtx
-2021/11/12 | 1490 | macros/latex/required/amsmath/amsopn.ins
-2021/11/12 | 138783 | macros/latex/required/amsmath/amsopn.pdf
-2021/11/12 | 69732 | macros/latex/required/amsmath/amstex.sty
-2021/11/12 | 11403 | macros/latex/required/amsmath/amstext.dtx
-2021/11/12 | 1492 | macros/latex/required/amsmath/amstext.ins
-2021/11/12 | 215810 | macros/latex/required/amsmath/amstext.pdf
-2021/11/12 | 4341 | macros/latex/required/amsmath/amsxtra.dtx
-2021/11/12 | 1492 | macros/latex/required/amsmath/amsxtra.ins
-2021/11/12 | 112556 | macros/latex/required/amsmath/amsxtra.pdf
-2021/11/12 | 7234 | macros/latex/required/amsmath/changes.txt
-2021/11/12 | 22605 | macros/latex/required/amsmath/diffs-m.txt
-2021/11/12 | 369 | macros/latex/required/amsmath/manifest.txt
-2021/11/12 | 2708 | macros/latex/required/amsmath/README.md
-2021/11/12 | 109737 | macros/latex/required/amsmath/subeqn.pdf
-2021/11/12 | 6440 | macros/latex/required/amsmath/subeqn.tex
-2021/11/12 | 145610 | macros/latex/required/amsmath/technote.pdf
-2021/11/12 | 12005 | macros/latex/required/amsmath/technote.tex
-2021/11/12 | 454662 | macros/latex/required/amsmath/testmath.pdf
-2021/11/12 | 82371 | macros/latex/required/amsmath/testmath.tex
-2021/11/12 | 2734832 | macros/latex/required/amsmath.zip
+2022/06/08 | 8663 | macros/latex/required/amsmath/amsbsy.dtx
+2022/06/08 | 1505 | macros/latex/required/amsmath/amsbsy.ins
+2022/06/08 | 174944 | macros/latex/required/amsmath/amsbsy.pdf
+2022/06/08 | 11284 | macros/latex/required/amsmath/amscd.dtx
+2022/06/08 | 1487 | macros/latex/required/amsmath/amscd.ins
+2022/06/08 | 179945 | macros/latex/required/amsmath/amscd.pdf
+2022/06/08 | 5323 | macros/latex/required/amsmath/ams-external.txt
+2022/06/08 | 13442 | macros/latex/required/amsmath/amsgen.dtx
+2022/06/08 | 1484 | macros/latex/required/amsmath/amsgen.ins
+2022/06/08 | 178187 | macros/latex/required/amsmath/amsgen.pdf
+2022/06/08 | 5860 | macros/latex/required/amsmath/ams-internal.txt
+2022/06/08 | 508210 | macros/latex/required/amsmath/amsldoc.pdf
+2022/06/08 | 104792 | macros/latex/required/amsmath/amsldoc.tex
+2022/06/08 | 85099 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
+2022/06/08 | 230317 | macros/latex/required/amsmath/amsmath.dtx
+2022/06/08 | 1504 | macros/latex/required/amsmath/amsmath.ins
+2022/06/08 | 419913 | macros/latex/required/amsmath/amsmath.pdf
+2022/06/08 | 10199 | macros/latex/required/amsmath/amsopn.dtx
+2022/06/08 | 1490 | macros/latex/required/amsmath/amsopn.ins
+2022/06/08 | 140095 | macros/latex/required/amsmath/amsopn.pdf
+2022/06/08 | 69732 | macros/latex/required/amsmath/amstex.sty
+2022/06/08 | 11398 | macros/latex/required/amsmath/amstext.dtx
+2022/06/08 | 1492 | macros/latex/required/amsmath/amstext.ins
+2022/06/08 | 217498 | macros/latex/required/amsmath/amstext.pdf
+2022/06/08 | 4336 | macros/latex/required/amsmath/amsxtra.dtx
+2022/06/08 | 1492 | macros/latex/required/amsmath/amsxtra.ins
+2022/06/08 | 113561 | macros/latex/required/amsmath/amsxtra.pdf
+2022/06/08 | 8046 | macros/latex/required/amsmath/changes.txt
+2022/06/08 | 22605 | macros/latex/required/amsmath/diffs-m.txt
+2022/06/08 | 369 | macros/latex/required/amsmath/manifest.txt
+2022/06/08 | 2709 | macros/latex/required/amsmath/README.md
+2022/06/08 | 109731 | macros/latex/required/amsmath/subeqn.pdf
+2022/06/08 | 6440 | macros/latex/required/amsmath/subeqn.tex
+2022/06/08 | 147462 | macros/latex/required/amsmath/technote.pdf
+2022/06/08 | 12005 | macros/latex/required/amsmath/technote.tex
+2022/06/08 | 454511 | macros/latex/required/amsmath/testmath.pdf
+2022/06/08 | 82371 | macros/latex/required/amsmath/testmath.tex
+2022/06/08 | 2762704 | macros/latex/required/amsmath.zip
2022/06/06 | 747280 | macros/latex/required/babel/base/babel.dtx
2022/06/06 | 7663 | macros/latex/required/babel/base/babel.ins
2022/06/06 | 882541 | macros/latex/required/babel/base/babel.pdf
@@ -235804,47 +235821,67 @@
2018/04/06 | 27640 | macros/latex/required/cyrillic/t2lhfnt.fdd
2018/04/06 | 135567 | macros/latex/required/cyrillic/t2lhfnt.pdf
2018/04/06 | 1179110 | macros/latex/required/cyrillic.zip
-2021/11/12 | 3403 | macros/latex/required/firstaid/changes.txt
-2021/11/12 | 2740 | macros/latex/required/firstaid/firstaid.ins
-2021/11/12 | 20716 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
-2021/11/12 | 238410 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
-2021/11/12 | 474 | macros/latex/required/firstaid/README.md
-2021/11/12 | 239516 | macros/latex/required/firstaid.zip
-2021/12/14 | 15737 | macros/latex/required/graphics/cat.eps
-2021/12/14 | 34776 | macros/latex/required/graphics/changes.txt
-2021/12/14 | 32011 | macros/latex/required/graphics/color.dtx
-2021/12/14 | 208054 | macros/latex/required/graphics/color.pdf
-2021/12/14 | 50810 | macros/latex/required/graphics/drivers.dtx
-2021/12/14 | 286458 | macros/latex/required/graphics/drivers.pdf
-2021/12/14 | 4113 | macros/latex/required/graphics/epsfig.dtx
-2021/12/14 | 160073 | macros/latex/required/graphics/epsfig.pdf
-2021/12/14 | 15429 | macros/latex/required/graphics/graphics-2017-06-25.sty
-2021/12/14 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
-2021/12/14 | 70177 | macros/latex/required/graphics/graphics.dtx
-2021/12/14 | 1128 | macros/latex/required/graphics/graphics.ins
-2021/12/14 | 303029 | macros/latex/required/graphics/graphics.pdf
-2021/12/14 | 30455 | macros/latex/required/graphics/graphicx.dtx
-2021/12/14 | 240629 | macros/latex/required/graphics/graphicx.pdf
-2021/12/14 | 330070 | macros/latex/required/graphics/grfguide.pdf
-2021/12/14 | 37089 | macros/latex/required/graphics/grfguide.tex
-2021/12/14 | 13880 | macros/latex/required/graphics/keyval.dtx
-2021/12/14 | 239821 | macros/latex/required/graphics/keyval.pdf
-2021/12/14 | 3937 | macros/latex/required/graphics/lscape.dtx
-2021/12/14 | 155981 | macros/latex/required/graphics/lscape.pdf
-2021/12/14 | 2076 | macros/latex/required/graphics/README.md
-2021/12/14 | 21072 | macros/latex/required/graphics/rotating.dtx
-2021/12/14 | 269553 | macros/latex/required/graphics/rotating.pdf
-2021/12/14 | 172230 | macros/latex/required/graphics/rotex.pdf
-2021/12/14 | 14575 | macros/latex/required/graphics/rotex.tex
-2021/12/14 | 10744 | macros/latex/required/graphics/trig.dtx
-2021/12/14 | 199269 | macros/latex/required/graphics/trig.pdf
-2021/12/14 | 2593441 | macros/latex/required/graphics.zip
+2022/06/08 | 3700 | macros/latex/required/firstaid/changes.txt
+2022/06/08 | 2740 | macros/latex/required/firstaid/firstaid.ins
+2022/06/08 | 21465 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
+2022/06/08 | 256609 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
+2022/06/08 | 474 | macros/latex/required/firstaid/README.md
+2022/06/08 | 257934 | macros/latex/required/firstaid.zip
+2022/06/08 | 15737 | macros/latex/required/graphics/cat.eps
+2022/06/08 | 35381 | macros/latex/required/graphics/changes.txt
+2022/06/08 | 32194 | macros/latex/required/graphics/color.dtx
+2022/06/08 | 212223 | macros/latex/required/graphics/color.pdf
+2022/06/08 | 50819 | macros/latex/required/graphics/drivers.dtx
+2022/06/08 | 286459 | macros/latex/required/graphics/drivers.pdf
+2022/06/08 | 4122 | macros/latex/required/graphics/epsfig.dtx
+2022/06/08 | 159997 | macros/latex/required/graphics/epsfig.pdf
+2022/06/08 | 15429 | macros/latex/required/graphics/graphics-2017-06-25.sty
+2022/06/08 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
+2022/06/08 | 70951 | macros/latex/required/graphics/graphics.dtx
+2022/06/08 | 1189 | macros/latex/required/graphics/graphics.ins
+2022/06/08 | 303464 | macros/latex/required/graphics/graphics.pdf
+2022/06/08 | 30464 | macros/latex/required/graphics/graphicx.dtx
+2022/06/08 | 240623 | macros/latex/required/graphics/graphicx.pdf
+2022/06/08 | 330978 | macros/latex/required/graphics/grfguide.pdf
+2022/06/08 | 37572 | macros/latex/required/graphics/grfguide.tex
+2022/06/08 | 13875 | macros/latex/required/graphics/keyval.dtx
+2022/06/08 | 239589 | macros/latex/required/graphics/keyval.pdf
+2022/06/08 | 3946 | macros/latex/required/graphics/lscape.dtx
+2022/06/08 | 155986 | macros/latex/required/graphics/lscape.pdf
+2022/06/08 | 15715 | macros/latex/required/graphics/mathcolor.dtx
+2022/06/08 | 475986 | macros/latex/required/graphics/mathcolor.pdf
+2022/06/08 | 2076 | macros/latex/required/graphics/README.md
+2022/06/08 | 21067 | macros/latex/required/graphics/rotating.dtx
+2022/06/08 | 278253 | macros/latex/required/graphics/rotating.pdf
+2022/06/08 | 172227 | macros/latex/required/graphics/rotex.pdf
+2022/06/08 | 14575 | macros/latex/required/graphics/rotex.tex
+2022/06/08 | 10753 | macros/latex/required/graphics/trig.dtx
+2022/06/08 | 199266 | macros/latex/required/graphics/trig.pdf
+2022/06/08 | 3073492 | macros/latex/required/graphics.zip
2021/09/25 | 1021 | macros/latex/required/latexbug/changes.txt
2021/09/25 | 36311 | macros/latex/required/latexbug/latexbug.dtx
2021/09/25 | 1963 | macros/latex/required/latexbug/latexbug.ins
2021/09/25 | 211648 | macros/latex/required/latexbug/latexbug.pdf
2021/09/25 | 83 | macros/latex/required/latexbug/README.md
2021/09/25 | 216931 | macros/latex/required/latexbug.zip
+2022/06/08 | 734 | macros/latex/required/latex-lab/changes.txt
+2022/06/08 | 512020 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
+2022/06/08 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
+2022/06/08 | 375907 | macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
+2022/06/08 | 191 | macros/latex/required/latex-lab/documentmetadata-support-doc.tex
+2022/06/08 | 14019 | macros/latex/required/latex-lab/documentmetadata-support.dtx
+2022/06/08 | 52966 | macros/latex/required/latex-lab/latex-lab-footnotes.dtx
+2022/06/08 | 614594 | macros/latex/required/latex-lab/latex-lab-footnotes.pdf
+2022/06/08 | 2823 | macros/latex/required/latex-lab/latex-lab.ins
+2022/06/08 | 16134 | macros/latex/required/latex-lab/latex-lab-new-or.dtx
+2022/06/08 | 529091 | macros/latex/required/latex-lab/latex-lab-new-or.pdf
+2022/06/08 | 2293 | macros/latex/required/latex-lab/latex-lab-testphase.dtx
+2022/06/08 | 290879 | macros/latex/required/latex-lab/latex-lab-testphase.pdf
+2022/06/08 | 1156 | macros/latex/required/latex-lab/README.md
+2022/06/08 | 4396 | macros/latex/required/latex-lab/usage-of-@footnotemark.txt
+2022/06/08 | 22370 | macros/latex/required/latex-lab/usage-of-@footnotetext.txt
+2022/06/08 | 1594 | macros/latex/required/latex-lab/usage-of-kern-kern.txt
+2022/06/08 | 2286379 | macros/latex/required/latex-lab.zip
2020/04/01 | 4858 | macros/latex/required/psnfss/8r.enc
2020/04/01 | 8765 | macros/latex/required/psnfss/changes.txt
2020/04/01 | 503 | macros/latex/required/psnfss/charter.map
@@ -235867,76 +235904,78 @@
2020/04/01 | 1004 | macros/latex/required/psnfss/test3.tex
2020/04/01 | 489 | macros/latex/required/psnfss/utopia.map
2020/04/01 | 1211157 | macros/latex/required/psnfss.zip
-2021/11/12 | 14077 | macros/latex/required/tools/afterpage.dtx
-2021/11/12 | 2538 | macros/latex/required/tools/afterpage.ins
-2021/11/12 | 205344 | macros/latex/required/tools/afterpage.pdf
-2021/11/12 | 11749 | macros/latex/required/tools/array-2016-10-06.sty
-2021/11/12 | 12559 | macros/latex/required/tools/array-2020-02-10.sty
-2021/11/12 | 128189 | macros/latex/required/tools/array.dtx
-2021/11/12 | 517114 | macros/latex/required/tools/array.pdf
-2021/11/12 | 61460 | macros/latex/required/tools/bm.dtx
-2021/11/12 | 2524 | macros/latex/required/tools/bm.ins
-2021/11/12 | 331424 | macros/latex/required/tools/bm.pdf
-2021/11/12 | 53172 | macros/latex/required/tools/calc.dtx
-2021/11/12 | 370414 | macros/latex/required/tools/calc.pdf
-2021/11/12 | 61331 | macros/latex/required/tools/changes.txt
-2021/11/12 | 12714 | macros/latex/required/tools/dcolumn.dtx
-2021/11/12 | 220689 | macros/latex/required/tools/dcolumn.pdf
-2021/11/12 | 6794 | macros/latex/required/tools/delarray.dtx
-2021/11/12 | 198647 | macros/latex/required/tools/delarray.pdf
-2021/11/12 | 10649 | macros/latex/required/tools/enumerate.dtx
-2021/11/12 | 215355 | macros/latex/required/tools/enumerate.pdf
-2021/11/12 | 4964 | macros/latex/required/tools/fileerr.dtx
-2021/11/12 | 195578 | macros/latex/required/tools/fileerr.pdf
-2021/11/12 | 10776 | macros/latex/required/tools/fontsmpl.dtx
-2021/11/12 | 154034 | macros/latex/required/tools/fontsmpl.pdf
-2021/11/12 | 39701 | macros/latex/required/tools/ftnright.dtx
-2021/11/12 | 370277 | macros/latex/required/tools/ftnright.pdf
-2021/11/12 | 11153 | macros/latex/required/tools/hhline.dtx
-2021/11/12 | 189538 | macros/latex/required/tools/hhline.pdf
-2021/11/12 | 2225 | macros/latex/required/tools/indentfirst.dtx
-2021/11/12 | 157803 | macros/latex/required/tools/indentfirst.pdf
-2021/11/12 | 32034 | macros/latex/required/tools/layout.dtx
-2021/11/12 | 267761 | macros/latex/required/tools/layout.pdf
-2021/11/12 | 12133 | macros/latex/required/tools/longtable-2020-01-07.sty
-2021/11/12 | 76402 | macros/latex/required/tools/longtable.dtx
-2021/11/12 | 2538 | macros/latex/required/tools/longtable.ins
-2021/11/12 | 382155 | macros/latex/required/tools/longtable.pdf
-2021/11/12 | 3284 | macros/latex/required/tools/manifest.txt
-2021/11/12 | 29712 | macros/latex/required/tools/multicol-2017-04-11.sty
-2021/11/12 | 184258 | macros/latex/required/tools/multicol.dtx
-2021/11/12 | 2576 | macros/latex/required/tools/multicol.ins
-2021/11/12 | 518295 | macros/latex/required/tools/multicol.pdf
-2021/11/12 | 8981 | macros/latex/required/tools/rawfonts.dtx
-2021/11/12 | 146534 | macros/latex/required/tools/rawfonts.pdf
-2021/11/12 | 1650 | macros/latex/required/tools/README.md
-2021/11/12 | 9493 | macros/latex/required/tools/shellesc.dtx
-2021/11/12 | 183532 | macros/latex/required/tools/shellesc.pdf
-2021/11/12 | 29569 | macros/latex/required/tools/showkeys.dtx
-2021/11/12 | 260624 | macros/latex/required/tools/showkeys.pdf
-2021/11/12 | 5796 | macros/latex/required/tools/somedefs.dtx
-2021/11/12 | 175169 | macros/latex/required/tools/somedefs.pdf
-2021/11/12 | 35880 | macros/latex/required/tools/tabularx.dtx
-2021/11/12 | 2535 | macros/latex/required/tools/tabularx.ins
-2021/11/12 | 278041 | macros/latex/required/tools/tabularx.pdf
-2021/11/12 | 43453 | macros/latex/required/tools/theorem.dtx
-2021/11/12 | 351794 | macros/latex/required/tools/theorem.pdf
-2021/11/12 | 5680 | macros/latex/required/tools/tools.ins
-2021/11/12 | 73674 | macros/latex/required/tools/tools-overview.pdf
-2021/11/12 | 5211 | macros/latex/required/tools/tools-overview.tex
-2021/11/12 | 25151 | macros/latex/required/tools/trace.dtx
-2021/11/12 | 229713 | macros/latex/required/tools/trace.pdf
-2021/11/12 | 33863 | macros/latex/required/tools/varioref-2016-02-16.sty
-2021/11/12 | 114351 | macros/latex/required/tools/varioref.dtx
-2021/11/12 | 2531 | macros/latex/required/tools/varioref.ins
-2021/11/12 | 383524 | macros/latex/required/tools/varioref.pdf
-2021/11/12 | 72141 | macros/latex/required/tools/verbatim.dtx
-2021/11/12 | 330815 | macros/latex/required/tools/verbatim.pdf
-2021/11/12 | 6223 | macros/latex/required/tools/xr.dtx
-2021/11/12 | 177595 | macros/latex/required/tools/xr.pdf
-2021/11/12 | 17861 | macros/latex/required/tools/xspace.dtx
-2021/11/12 | 256897 | macros/latex/required/tools/xspace.pdf
-2021/11/12 | 7271162 | macros/latex/required/tools.zip
+2022/06/08 | 14072 | macros/latex/required/tools/afterpage.dtx
+2022/06/08 | 2538 | macros/latex/required/tools/afterpage.ins
+2022/06/08 | 197738 | macros/latex/required/tools/afterpage.pdf
+2022/06/08 | 11749 | macros/latex/required/tools/array-2016-10-06.sty
+2022/06/08 | 12559 | macros/latex/required/tools/array-2020-02-10.sty
+2022/06/08 | 128179 | macros/latex/required/tools/array.dtx
+2022/06/08 | 516458 | macros/latex/required/tools/array.pdf
+2022/06/08 | 61565 | macros/latex/required/tools/bm.dtx
+2022/06/08 | 2524 | macros/latex/required/tools/bm.ins
+2022/06/08 | 323432 | macros/latex/required/tools/bm.pdf
+2022/06/08 | 53167 | macros/latex/required/tools/calc.dtx
+2022/06/08 | 370657 | macros/latex/required/tools/calc.pdf
+2022/06/08 | 62156 | macros/latex/required/tools/changes.txt
+2022/06/08 | 12709 | macros/latex/required/tools/dcolumn.dtx
+2022/06/08 | 220834 | macros/latex/required/tools/dcolumn.pdf
+2022/06/08 | 6789 | macros/latex/required/tools/delarray.dtx
+2022/06/08 | 191064 | macros/latex/required/tools/delarray.pdf
+2022/06/08 | 10644 | macros/latex/required/tools/enumerate.dtx
+2022/06/08 | 215498 | macros/latex/required/tools/enumerate.pdf
+2022/06/08 | 4959 | macros/latex/required/tools/fileerr.dtx
+2022/06/08 | 187495 | macros/latex/required/tools/fileerr.pdf
+2022/06/08 | 10771 | macros/latex/required/tools/fontsmpl.dtx
+2022/06/08 | 146446 | macros/latex/required/tools/fontsmpl.pdf
+2022/06/08 | 39696 | macros/latex/required/tools/ftnright.dtx
+2022/06/08 | 386995 | macros/latex/required/tools/ftnright.pdf
+2022/06/08 | 11148 | macros/latex/required/tools/hhline.dtx
+2022/06/08 | 189679 | macros/latex/required/tools/hhline.pdf
+2022/06/08 | 2220 | macros/latex/required/tools/indentfirst.dtx
+2022/06/08 | 157954 | macros/latex/required/tools/indentfirst.pdf
+2022/06/08 | 32029 | macros/latex/required/tools/layout.dtx
+2022/06/08 | 259969 | macros/latex/required/tools/layout.pdf
+2022/06/08 | 12133 | macros/latex/required/tools/longtable-2020-01-07.sty
+2022/06/08 | 76397 | macros/latex/required/tools/longtable.dtx
+2022/06/08 | 2538 | macros/latex/required/tools/longtable.ins
+2022/06/08 | 391313 | macros/latex/required/tools/longtable.pdf
+2022/06/08 | 3284 | macros/latex/required/tools/manifest.txt
+2022/06/08 | 29712 | macros/latex/required/tools/multicol-2017-04-11.sty
+2022/06/08 | 31646 | macros/latex/required/tools/multicol-2019-10-01.sty
+2022/06/08 | 184548 | macros/latex/required/tools/multicol.dtx
+2022/06/08 | 2576 | macros/latex/required/tools/multicol.ins
+2022/06/08 | 521223 | macros/latex/required/tools/multicol.pdf
+2022/06/08 | 8976 | macros/latex/required/tools/rawfonts.dtx
+2022/06/08 | 138963 | macros/latex/required/tools/rawfonts.pdf
+2022/06/08 | 1650 | macros/latex/required/tools/README.md
+2022/06/08 | 9493 | macros/latex/required/tools/shellesc.dtx
+2022/06/08 | 175929 | macros/latex/required/tools/shellesc.pdf
+2022/06/08 | 8632 | macros/latex/required/tools/showkeys-2014-10-28.sty
+2022/06/08 | 30107 | macros/latex/required/tools/showkeys.dtx
+2022/06/08 | 251782 | macros/latex/required/tools/showkeys.pdf
+2022/06/08 | 5791 | macros/latex/required/tools/somedefs.dtx
+2022/06/08 | 167572 | macros/latex/required/tools/somedefs.pdf
+2022/06/08 | 35875 | macros/latex/required/tools/tabularx.dtx
+2022/06/08 | 2535 | macros/latex/required/tools/tabularx.ins
+2022/06/08 | 287073 | macros/latex/required/tools/tabularx.pdf
+2022/06/08 | 43448 | macros/latex/required/tools/theorem.dtx
+2022/06/08 | 351471 | macros/latex/required/tools/theorem.pdf
+2022/06/08 | 5680 | macros/latex/required/tools/tools.ins
+2022/06/08 | 73672 | macros/latex/required/tools/tools-overview.pdf
+2022/06/08 | 5211 | macros/latex/required/tools/tools-overview.tex
+2022/06/08 | 25146 | macros/latex/required/tools/trace.dtx
+2022/06/08 | 222076 | macros/latex/required/tools/trace.pdf
+2022/06/08 | 33863 | macros/latex/required/tools/varioref-2016-02-16.sty
+2022/06/08 | 114350 | macros/latex/required/tools/varioref.dtx
+2022/06/08 | 2531 | macros/latex/required/tools/varioref.ins
+2022/06/08 | 398985 | macros/latex/required/tools/varioref.pdf
+2022/06/08 | 72136 | macros/latex/required/tools/verbatim.dtx
+2022/06/08 | 330963 | macros/latex/required/tools/verbatim.pdf
+2022/06/08 | 6218 | macros/latex/required/tools/xr.dtx
+2022/06/08 | 169986 | macros/latex/required/tools/xr.pdf
+2022/06/08 | 17856 | macros/latex/required/tools/xspace.dtx
+2022/06/08 | 257018 | macros/latex/required/tools/xspace.pdf
+2022/06/08 | 7248878 | macros/latex/required/tools.zip
2016/05/20 | 847 | macros/lollipop/config/lollipop.ini
2016/05/20 | 5871 | macros/lollipop/doc/manual/address.tex
2016/05/20 | 2705 | macros/lollipop/doc/manual/appendix.tex
@@ -280994,8 +281033,8 @@
2021/12/30 | 6024 | systems/texlive/tlnet/archive/biblatex-spbasic.r61439.tar.xz
2019/02/28 | 70196 | systems/texlive/tlnet/archive/biblatex-subseries.doc.r43330.tar.xz
2019/02/28 | 1384 | systems/texlive/tlnet/archive/biblatex-subseries.r43330.tar.xz
-2022/05/24 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r63386.tar.xz
-2022/05/24 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r63386.tar.xz
+2022/06/08 | 513440 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r63509.tar.xz
+2022/06/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r63509.tar.xz
2021/03/07 | 469432 | systems/texlive/tlnet/archive/biblatex-trad.doc.r58169.tar.xz
2021/03/07 | 4192 | systems/texlive/tlnet/archive/biblatex-trad.r58169.tar.xz
2019/02/28 | 70876 | systems/texlive/tlnet/archive/biblatex-true-citepages-omit.doc.r44653.tar.xz
@@ -281092,17 +281131,17 @@
2022/02/14 | 1388 | systems/texlive/tlnet/archive/bidi-atbegshi.r62009.tar.xz
2019/02/28 | 30508 | systems/texlive/tlnet/archive/bidicontour.doc.r34631.tar.xz
2019/02/28 | 1848 | systems/texlive/tlnet/archive/bidicontour.r34631.tar.xz
-2022/06/07 | 3908320 | systems/texlive/tlnet/archive/bidi.doc.r63499.tar.xz
+2022/06/08 | 3917128 | systems/texlive/tlnet/archive/bidi.doc.r63509.tar.xz
2019/02/28 | 43416 | systems/texlive/tlnet/archive/bidihl.doc.r37795.tar.xz
2019/02/28 | 2356 | systems/texlive/tlnet/archive/bidihl.r37795.tar.xz
2019/02/28 | 25800 | systems/texlive/tlnet/archive/bidipagegrid.doc.r34632.tar.xz
2019/02/28 | 3264 | systems/texlive/tlnet/archive/bidipagegrid.r34632.tar.xz
2019/02/28 | 75456 | systems/texlive/tlnet/archive/bidipresentation.doc.r35267.tar.xz
2019/02/28 | 28048 | systems/texlive/tlnet/archive/bidipresentation.r35267.tar.xz
-2022/06/07 | 124368 | systems/texlive/tlnet/archive/bidi.r63499.tar.xz
+2022/06/08 | 124704 | systems/texlive/tlnet/archive/bidi.r63509.tar.xz
2019/02/28 | 120564 | systems/texlive/tlnet/archive/bidishadowtext.doc.r34633.tar.xz
2019/02/28 | 1312 | systems/texlive/tlnet/archive/bidishadowtext.r34633.tar.xz
-2022/06/07 | 141572 | systems/texlive/tlnet/archive/bidi.source.r63499.tar.xz
+2022/06/08 | 141860 | systems/texlive/tlnet/archive/bidi.source.r63509.tar.xz
2019/02/28 | 736348 | systems/texlive/tlnet/archive/bigfoot.doc.r38248.tar.xz
2019/02/28 | 11372 | systems/texlive/tlnet/archive/bigfoot.r38248.tar.xz
2019/02/28 | 43760 | systems/texlive/tlnet/archive/bigfoot.source.r38248.tar.xz
@@ -282248,9 +282287,9 @@
2019/02/28 | 378876 | systems/texlive/tlnet/archive/cookingsymbols.doc.r35929.tar.xz
2019/02/28 | 3584 | systems/texlive/tlnet/archive/cookingsymbols.r35929.tar.xz
2019/02/28 | 5616 | systems/texlive/tlnet/archive/cookingsymbols.source.r35929.tar.xz
-2022/04/06 | 716856 | systems/texlive/tlnet/archive/cooking-units.doc.r62938.tar.xz
-2022/04/06 | 20920 | systems/texlive/tlnet/archive/cooking-units.r62938.tar.xz
-2022/04/06 | 68016 | systems/texlive/tlnet/archive/cooking-units.source.r62938.tar.xz
+2022/06/08 | 721036 | systems/texlive/tlnet/archive/cooking-units.doc.r63509.tar.xz
+2022/06/08 | 21280 | systems/texlive/tlnet/archive/cooking-units.r63509.tar.xz
+2022/06/08 | 69780 | systems/texlive/tlnet/archive/cooking-units.source.r63509.tar.xz
2019/02/28 | 412164 | systems/texlive/tlnet/archive/cool.doc.r15878.tar.xz
2019/02/28 | 110360 | systems/texlive/tlnet/archive/coollist.doc.r15878.tar.xz
2019/02/28 | 2360 | systems/texlive/tlnet/archive/coollist.r15878.tar.xz
@@ -282297,9 +282336,9 @@
2019/02/28 | 3444 | systems/texlive/tlnet/archive/courseoutline.r15878.tar.xz
2019/02/28 | 1924 | systems/texlive/tlnet/archive/coursepaper.doc.r15878.tar.xz
2019/02/28 | 4532 | systems/texlive/tlnet/archive/coursepaper.r15878.tar.xz
-2022/01/24 | 280964 | systems/texlive/tlnet/archive/coverpage.doc.r61719.tar.xz
-2022/01/24 | 3696 | systems/texlive/tlnet/archive/coverpage.r61719.tar.xz
-2022/01/24 | 10320 | systems/texlive/tlnet/archive/coverpage.source.r61719.tar.xz
+2022/06/08 | 280968 | systems/texlive/tlnet/archive/coverpage.doc.r63509.tar.xz
+2022/06/08 | 3712 | systems/texlive/tlnet/archive/coverpage.r63509.tar.xz
+2022/06/08 | 10324 | systems/texlive/tlnet/archive/coverpage.source.r63509.tar.xz
2021/09/02 | 509468 | systems/texlive/tlnet/archive/covington.doc.r60388.tar.xz
2021/09/02 | 8684 | systems/texlive/tlnet/archive/covington.r60388.tar.xz
2019/02/28 | 5548 | systems/texlive/tlnet/archive/c-pascal.doc.r18337.tar.xz
@@ -285887,9 +285926,9 @@
2022/06/03 | 11616896 | systems/texlive/tlnet/archive/l3kernel.doc.r63476.tar.xz
2022/06/03 | 172088 | systems/texlive/tlnet/archive/l3kernel.r63476.tar.xz
2022/06/03 | 590912 | systems/texlive/tlnet/archive/l3kernel.source.r63476.tar.xz
-2022/05/31 | 1818628 | systems/texlive/tlnet/archive/l3packages.doc.r63449.tar.xz
-2022/05/31 | 21888 | systems/texlive/tlnet/archive/l3packages.r63449.tar.xz
-2022/05/31 | 45508 | systems/texlive/tlnet/archive/l3packages.source.r63449.tar.xz
+2022/06/08 | 1818788 | systems/texlive/tlnet/archive/l3packages.doc.r63505.tar.xz
+2022/06/08 | 21936 | systems/texlive/tlnet/archive/l3packages.r63505.tar.xz
+2022/06/08 | 45504 | systems/texlive/tlnet/archive/l3packages.source.r63505.tar.xz
2019/02/28 | 210236 | systems/texlive/tlnet/archive/labbook.doc.r15878.tar.xz
2019/02/28 | 4180 | systems/texlive/tlnet/archive/labbook.r15878.tar.xz
2019/02/28 | 23192 | systems/texlive/tlnet/archive/labbook.source.r15878.tar.xz
@@ -288317,8 +288356,8 @@
2021/05/24 | 2392 | systems/texlive/tlnet/archive/ot-tableau.r59318.tar.xz
2019/02/28 | 60352 | systems/texlive/tlnet/archive/oubraces.doc.r21833.tar.xz
2019/02/28 | 1660 | systems/texlive/tlnet/archive/oubraces.r21833.tar.xz
-2022/05/24 | 322100 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r63386.tar.xz
-2022/05/24 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r63386.tar.xz
+2022/06/08 | 322096 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r63509.tar.xz
+2022/06/08 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r63509.tar.xz
2020/03/13 | 1596 | systems/texlive/tlnet/archive/outerhbox.r54254.tar.xz
2019/02/28 | 234580 | systems/texlive/tlnet/archive/outline.doc.r18360.tar.xz
2019/02/28 | 1528 | systems/texlive/tlnet/archive/outline.r18360.tar.xz
@@ -288454,14 +288493,14 @@
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.amd64-freebsd.r16472.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.amd64-netbsd.r30191.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.armhf-linux.r30015.tar.xz
-2020/03/24 | 3012 | systems/texlive/tlnet/archive/pax.doc.r54512.tar.xz
+2022/06/08 | 3064 | systems/texlive/tlnet/archive/pax.doc.r63509.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.i386-cygwin.r13717.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.i386-freebsd.r16472.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.i386-linux.r10843.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.i386-netbsd.r30191.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/pax.i386-solaris.r10843.tar.xz
-2020/03/24 | 18120 | systems/texlive/tlnet/archive/pax.r54512.tar.xz
-2020/03/24 | 18776 | systems/texlive/tlnet/archive/pax.source.r54512.tar.xz
+2022/06/08 | 5264960 | systems/texlive/tlnet/archive/pax.r63509.tar.xz
+2022/06/08 | 5267156 | systems/texlive/tlnet/archive/pax.source.r63509.tar.xz
2021/02/25 | 352 | systems/texlive/tlnet/archive/pax.universal-darwin.r57908.tar.xz
2019/02/28 | 688 | systems/texlive/tlnet/archive/pax.win32.r15404.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/pax.x86_64-cygwin.r33557.tar.xz
@@ -290383,9 +290422,9 @@
2021/06/26 | 250232 | systems/texlive/tlnet/archive/siunits.doc.r59702.tar.xz
2021/06/26 | 6040 | systems/texlive/tlnet/archive/siunits.r59702.tar.xz
2021/06/26 | 34532 | systems/texlive/tlnet/archive/siunits.source.r59702.tar.xz
-2022/06/01 | 1239608 | systems/texlive/tlnet/archive/siunitx.doc.r63459.tar.xz
-2022/06/01 | 65492 | systems/texlive/tlnet/archive/siunitx.r63459.tar.xz
-2022/06/01 | 116448 | systems/texlive/tlnet/archive/siunitx.source.r63459.tar.xz
+2022/06/08 | 1239716 | systems/texlive/tlnet/archive/siunitx.doc.r63509.tar.xz
+2022/06/08 | 65460 | systems/texlive/tlnet/archive/siunitx.r63509.tar.xz
+2022/06/08 | 116444 | systems/texlive/tlnet/archive/siunitx.source.r63509.tar.xz
2022/01/24 | 200108 | systems/texlive/tlnet/archive/skak.doc.r61719.tar.xz
2019/02/28 | 316212 | systems/texlive/tlnet/archive/skaknew.doc.r20031.tar.xz
2019/02/28 | 160064 | systems/texlive/tlnet/archive/skaknew.r20031.tar.xz
@@ -291266,7 +291305,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/06/07 | 406928 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63494.tar.xz
+2022/06/08 | 406932 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63503.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -291290,7 +291329,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/06/07 | 109736 | systems/texlive/tlnet/archive/texlive-scripts.r63494.tar.xz
+2022/06/08 | 109748 | systems/texlive/tlnet/archive/texlive-scripts.r63503.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2022/04/19 | 36296 | systems/texlive/tlnet/archive/texlive-scripts.win32.r63068.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -292357,21 +292396,21 @@
2022/04/19 | 1889696 | systems/texlive/tlnet/archive/utfsym.r63076.tar.xz
2019/02/28 | 2820 | systems/texlive/tlnet/archive/utopia.doc.r15878.tar.xz
2019/02/28 | 205556 | systems/texlive/tlnet/archive/utopia.r15878.tar.xz
-2022/05/24 | 138164 | systems/texlive/tlnet/archive/ut-thesis.doc.r63386.tar.xz
-2022/05/24 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r63386.tar.xz
-2022/05/24 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r63386.tar.xz
+2022/06/08 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r63509.tar.xz
+2022/06/08 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r63509.tar.xz
+2022/06/08 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r63509.tar.xz
2021/09/07 | 127872 | systems/texlive/tlnet/archive/uwa-colours.doc.r60443.tar.xz
2021/09/07 | 1228 | systems/texlive/tlnet/archive/uwa-colours.r60443.tar.xz
2021/09/07 | 3016 | systems/texlive/tlnet/archive/uwa-colours.source.r60443.tar.xz
-2022/05/24 | 57656 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r63386.tar.xz
-2022/05/24 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r63386.tar.xz
-2022/05/24 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r63386.tar.xz
-2022/05/24 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r63386.tar.xz
-2022/05/24 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r63386.tar.xz
-2022/05/24 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r63386.tar.xz
-2022/05/24 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r63386.tar.xz
-2022/05/24 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r63386.tar.xz
-2022/05/24 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r63386.tar.xz
+2022/06/08 | 57656 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r63509.tar.xz
+2022/06/08 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r63509.tar.xz
+2022/06/08 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r63509.tar.xz
+2022/06/08 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r63509.tar.xz
+2022/06/08 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r63509.tar.xz
+2022/06/08 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r63509.tar.xz
+2022/06/08 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r63509.tar.xz
+2022/06/08 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r63509.tar.xz
+2022/06/08 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r63509.tar.xz
2019/02/28 | 11764 | systems/texlive/tlnet/archive/uwmslide.doc.r27354.tar.xz
2019/02/28 | 3916 | systems/texlive/tlnet/archive/uwmslide.r27354.tar.xz
2019/02/28 | 137544 | systems/texlive/tlnet/archive/uwthesis.doc.r15878.tar.xz
@@ -293103,16 +293142,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/04/18 | 108451 | systems/texlive/tlnet/install-tl
-2022/06/07 | 5800020 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/06/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/06/08 | 5800452 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/06/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/06/07 | 20463156 | systems/texlive/tlnet/install-tl-windows.exe
-2022/06/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/06/07 | 25483949 | systems/texlive/tlnet/install-tl.zip
-2022/06/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/06/08 | 20462722 | systems/texlive/tlnet/install-tl-windows.exe
+2022/06/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/06/08 | 25483960 | systems/texlive/tlnet/install-tl.zip
+2022/06/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -293122,7 +293161,7 @@
2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/05/27 | 49794 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/06/06 | 7313 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/06/07 | 7360 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/04/27 | 215352 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -293164,12 +293203,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/06/07 | 17500252 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/06/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/06/08 | 17500938 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/06/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/06/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/06/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/06/07 | 2381632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/06/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/06/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/06/08 | 2381692 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/04/18 | 42116 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -298380,7 +298419,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/06/07 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/06/08 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -299984,9 +300023,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/03/12 | 39680 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/03/29 | 43240 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/07 | 278709 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/06/07 | 1457336 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/06/07 | 1344509 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/06/08 | 278704 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/06/08 | 1456975 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/06/08 | 1343689 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/03/12 | 13516 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/03/29 | 14391 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -300212,191 +300251,191 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/06/07 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/06/07 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/06/07 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/06/07 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/06/07 | 1156465 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/06/07 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/06/07 | 31518 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/06/07 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/06/07 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/06/07 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/06/07 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/06/07 | 86757 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/06/07 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/06/07 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/06/07 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/06/07 | 27246 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/06/07 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/06/07 | 332413 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/06/07 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/06/07 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/06/07 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/06/07 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/06/07 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/06/07 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/06/07 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/06/07 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/06/07 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/06/07 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/06/07 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/06/07 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/06/07 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/06/07 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/06/07 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/06/07 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/06/07 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/06/07 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/06/07 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/06/07 | 45826 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/06/07 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/06/07 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/06/07 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/06/07 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/06/07 | 99817 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/06/07 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/06/07 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/06/07 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/06/07 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/06/07 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/06/07 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/06/07 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/06/07 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/06/07 | 155498 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/06/07 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/06/07 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/06/07 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/06/07 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/06/07 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/06/07 | 296038 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/06/07 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/06/07 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/06/07 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/06/07 | 112589 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/06/07 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/06/07 | 73149 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/06/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/06/07 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/06/07 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/06/07 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/06/07 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/06/07 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/06/07 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/06/07 | 247333 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/06/07 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/06/07 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/06/07 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/06/07 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/06/07 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/06/07 | 18369 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/06/07 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/06/07 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/06/07 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/06/07 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/06/07 | 532452 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/06/07 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/06/07 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/06/07 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/06/07 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/06/07 | 103335 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/06/07 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/06/07 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/06/07 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/06/07 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/06/07 | 27590 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/06/07 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/06/07 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/06/07 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/06/07 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/06/07 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/06/07 | 251130 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/06/07 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/06/07 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/06/07 | 104557 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/06/07 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/06/07 | 139103 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/06/07 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/06/07 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/06/07 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/06/07 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/06/07 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/06/07 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/06/07 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/06/07 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/06/07 | 38559 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/06/07 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/06/07 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/06/07 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/06/07 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/06/07 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/06/07 | 197036 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/06/07 | 213279 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/06/07 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/06/07 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/06/07 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/06/07 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/06/07 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/06/07 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/06/07 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/06/07 | 245095 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/06/07 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/06/07 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/06/07 | 1181125 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/06/07 | 1322743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/06/07 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/06/07 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/06/07 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/06/07 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/06/07 | 64709 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/06/07 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/06/07 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/06/07 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/06/07 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/06/07 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/06/07 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/06/07 | 1501238 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/06/07 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/06/07 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/06/07 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/06/07 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/06/07 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/06/07 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/06/07 | 16560 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/06/07 | 18491 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/06/07 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/06/07 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/06/07 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/06/07 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/06/07 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/06/07 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/06/07 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/06/07 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/06/07 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/06/07 | 2820685 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/06/07 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/06/07 | 62382 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/06/07 | 37114 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/06/07 | 41204 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/06/07 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/06/07 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/06/07 | 67706 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/06/07 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/06/07 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/06/07 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/06/07 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/06/07 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/06/07 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/06/07 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/06/07 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/06/07 | 43226 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/07 | 278734 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/06/07 | 1457090 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/06/07 | 1344358 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/06/07 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/06/07 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/06/08 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/06/08 | 51556 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/06/08 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/06/08 | 1021844 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/06/08 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/06/08 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/06/08 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/06/08 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/06/08 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/06/08 | 56618 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/06/08 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/06/08 | 86756 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/06/08 | 95286 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/06/08 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/06/08 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/06/08 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/06/08 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/06/08 | 332415 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/06/08 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/06/08 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/06/08 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/06/08 | 51486 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/06/08 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/06/08 | 244962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/06/08 | 270299 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/06/08 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/06/08 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/06/08 | 92920 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/06/08 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/06/08 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/06/08 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/06/08 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/06/08 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/06/08 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/06/08 | 285713 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/06/08 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/06/08 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/06/08 | 45822 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/06/08 | 120618 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/06/08 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/06/08 | 1302485 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/06/08 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/06/08 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/06/08 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/06/08 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/06/08 | 48823 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/06/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/06/08 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/06/08 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/06/08 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/06/08 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/06/08 | 155498 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/06/08 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/06/08 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/06/08 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/06/08 | 81462 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/06/08 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/06/08 | 296040 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/06/08 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/06/08 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/06/08 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/06/08 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/06/08 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/06/08 | 73149 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/06/08 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/06/08 | 115658 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/06/08 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/06/08 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/06/08 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/06/08 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/06/08 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/06/08 | 247335 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/06/08 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/06/08 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/06/08 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/06/08 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/06/08 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/06/08 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/06/08 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/06/08 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/06/08 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/06/08 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/06/08 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/06/08 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/06/08 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/06/08 | 528019 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/06/08 | 93960 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/06/08 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/06/08 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/06/08 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/06/08 | 68010 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/06/08 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/06/08 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/06/08 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/06/08 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/06/08 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/06/08 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/06/08 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/06/08 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/06/08 | 286411 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/06/08 | 99257 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/06/08 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/06/08 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/06/08 | 139099 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/06/08 | 288201 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/06/08 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/06/08 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/06/08 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/06/08 | 49771 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/06/08 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/06/08 | 31414 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/06/08 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/06/08 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/06/08 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/06/08 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/06/08 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/06/08 | 45744 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/06/08 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/06/08 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/06/08 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/06/08 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/06/08 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/06/08 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/06/08 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/06/08 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/06/08 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/06/08 | 210276 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/06/08 | 245098 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/06/08 | 79027 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/06/08 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/06/08 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/06/08 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/06/08 | 20185 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/06/08 | 23946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/06/08 | 31589 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/06/08 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/06/08 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/06/08 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/06/08 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/06/08 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/06/08 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/06/08 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/06/08 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/06/08 | 1501238 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/06/08 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/06/08 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/06/08 | 57618 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/06/08 | 63738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/06/08 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/06/08 | 27636 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/06/08 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/06/08 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/06/08 | 64490 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/06/08 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/06/08 | 156965 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/06/08 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/06/08 | 58667 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/06/08 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/06/08 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/06/08 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/06/08 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/06/08 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/06/08 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/06/08 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/06/08 | 37117 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/06/08 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/06/08 | 28688 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/06/08 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/06/08 | 67706 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/06/08 | 73531 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/06/08 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/06/08 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/06/08 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/06/08 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/06/08 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/06/08 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/06/08 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/06/08 | 43225 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/06/08 | 278707 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/06/08 | 1457136 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/06/08 | 1345086 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/06/08 | 13515 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/06/08 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/06/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/06/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -300867,7 +300906,7 @@
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/06/07 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/06/08 | 937 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -302729,7 +302768,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/06/08 | 186 | timestamp
+2022/06/09 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index fa6ad6789b..54e1107751 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 3ec228d8d9..b89f56f68e 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,316 +1,826 @@
-2022/06/07 | 99817 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/06/08 | 99 | macros/latex/base/ltpara-code.tex
+2022/06/08 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/06/08 | 9926 | macros/latex/base/ltnews21.tex
+2022/06/08 | 99257 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/06/08 | 9779 | macros/latex/base/format.ins
+2022/06/08 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/06/08 | 96 | macros/latex/base/doc-code.tex
+2022/06/08 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/06/08 | 9557 | macros/latex/base/ltcntrl.dtx
+2022/06/08 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/06/08 | 95286 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/06/08 | 9493 | macros/latex/required/tools/shellesc.dtx
+2022/06/08 | 9401 | macros/latex/base/source2edoc.cls
+2022/06/08 | 93960 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/06/08 | 9395 | macros/latex/base/syntonly.dtx
+2022/06/08 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/06/08 | 9345 | macros/latex/base/preload.dtx
+2022/06/08 | 9330 | graphics/pgf/contrib/xebaposter/doc/images/logo.png
+2022/06/08 | 92920 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/06/08 | 92280 | macros/latex/base/utf8ienc.dtx
+2022/06/08 | 9068 | macros/latex/base/lppl-1-0.txt
+2022/06/08 | 90370 | macros/latex/base/lttextcomp.dtx
+2022/06/08 | 8976 | macros/latex/required/tools/rawfonts.dtx
+2022/06/08 | 89727 | macros/latex/base/slides.dtx
+2022/06/08 | 8970 | macros/latex/base/ltnews17.tex
+2022/06/08 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/06/08 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/06/08 | 8731 | macros/latex/base/ltthm.dtx
+2022/06/08 | 86756 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/06/08 | 8663 | macros/latex/required/amsmath/amsbsy.dtx
+2022/06/08 | 8632 | macros/latex/required/tools/showkeys-2014-10-28.sty
+2022/06/08 | 8626 | macros/latex/base/oldlfont.dtx
+2022/06/08 | 85858 | macros/latex/base/ltdefns.dtx
+2022/06/08 | 85099 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
+2022/06/08 | 8472 | graphics/pgf/contrib/xebaposter/doc/images/docs-headershape.pdf
+2022/06/08 | 84215 | macros/latex/base/ltfssini.dtx
+2022/06/08 | 8368 | macros/latex/base/ltnews.tex
+2022/06/08 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/06/08 | 82371 | macros/latex/required/amsmath/testmath.tex
+2022/06/08 | 820689 | macros/latex/base/ltshipout-code.pdf
+2022/06/08 | 81462 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/06/08 | 80881 | macros/latex/base/ltfssbas.dtx
+2022/06/08 | 8046 | macros/latex/required/amsmath/changes.txt
+2022/06/08 | 802835 | macros/latex/base/ltfilehook-code.pdf
+2022/06/08 | 80053 | macros/latex/base/ltshipout.dtx
+2022/06/08 | 79027 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/06/08 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/06/08 | 778 | graphics/pgf/contrib/xebaposter/README
+2022/06/08 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/06/08 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/06/08 | 76397 | macros/latex/required/tools/longtable.dtx
+2022/06/08 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/06/08 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/06/08 | 755165 | macros/latex/base/doc.pdf
+2022/06/08 | 7524 | macros/latex/base/ltxguide.cls
+2022/06/08 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/06/08 | 73672 | macros/latex/required/tools/tools-overview.pdf
+2022/06/08 | 73531 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/06/08 | 734 | macros/latex/required/latex-lab/changes.txt
+2022/06/08 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/06/08 | 7337240 | install/macros/latex/required/latex-tools.tds.zip
+2022/06/08 | 73149 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/06/08 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/06/08 | 7248878 | macros/latex/required/tools.zip
+2022/06/08 | 72475 | macros/latex/base/ltfsstrc.dtx
+2022/06/08 | 7221 | macros/latex/base/ltnews20.tex
+2022/06/08 | 7216 | macros/latex/base/exscale.dtx
+2022/06/08 | 72136 | macros/latex/required/tools/verbatim.dtx
+2022/06/08 | 721036 | systems/texlive/tlnet/archive/cooking-units.doc.r63509.tar.xz
+2022/06/08 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/06/08 | 7200 | macros/latex/base/sample2e.tex
+2022/06/08 | 720048 | macros/latex/base/ltcmdhooks-code.pdf
+2022/06/08 | 715490 | macros/latex/base/ltmarks-code.pdf
+2022/06/08 | 7104 | macros/latex/base/alltt.dtx
+2022/06/08 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/06/08 | 70951 | macros/latex/required/graphics/graphics.dtx
+2022/06/08 | 70645 | macros/latex/base/ltfssdcl.dtx
+2022/06/08 | 703813 | macros/latex/base/lthooks-doc.pdf
+2022/06/08 | 7029 | macros/latex/base/ltnews13.tex
+2022/06/08 | 69780 | systems/texlive/tlnet/archive/cooking-units.source.r63509.tar.xz
+2022/06/08 | 69732 | macros/latex/required/amsmath/amstex.sty
+2022/06/08 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/06/08 | 69050 | macros/latex/base/clsguide.tex
+2022/06/08 | 69002 | macros/latex/base/ltpictur.dtx
+2022/06/08 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/06/08 | 686506 | graphics/pgf/contrib/xebaposter.zip
+2022/06/08 | 68435 | macros/latex/base/usrguide.tex
+2022/06/08 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/06/08 | 68010 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/06/08 | 6789 | macros/latex/required/tools/delarray.dtx
+2022/06/08 | 67706 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/06/08 | 6760 | macros/latex/base/slides.ins
+2022/06/08 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/06/08 | 6709 | macros/latex/base/latexsym.dtx
+2022/06/08 | 666944 | macros/latex/base/ltpara-code.pdf
+2022/06/08 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r63509.tar.xz
+2022/06/08 | 66541 | macros/latex/base/ltfilehook.dtx
+2022/06/08 | 65782 | macros/latex/base/ltluatex.dtx
+2022/06/08 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r63509.tar.xz
+2022/06/08 | 65460 | systems/texlive/tlnet/archive/siunitx.r63509.tar.xz
+2022/06/08 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/06/08 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/06/08 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/06/08 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/06/08 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/06/08 | 64490 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/06/08 | 6440 | macros/latex/required/amsmath/subeqn.tex
+2022/06/08 | 6424 | macros/latex/base/ltnews14.tex
+2022/06/08 | 63738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/06/08 | 6357 | macros/latex/base/newlfont.dtx
+2022/06/08 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/06/08 | 63280 | macros/latex/base/letter.dtx
+2022/06/08 | 63132 | macros/latex/base/ltmarks.dtx
+2022/06/08 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/06/08 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/06/08 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/06/08 | 6218 | macros/latex/required/tools/xr.dtx
+2022/06/08 | 62156 | macros/latex/required/tools/changes.txt
+2022/06/08 | 6213 | macros/latex/base/ltmeta.dtx
+2022/06/08 | 61565 | macros/latex/required/tools/bm.dtx
+2022/06/08 | 6155 | macros/latex/base/ltpar.dtx
+2022/06/08 | 614594 | macros/latex/required/latex-lab/latex-lab-footnotes.pdf
+2022/06/08 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r63509.tar.xz
+2022/06/08 | 6050 | graphics/pgf/contrib/xebaposter/doc/images/docs-headerborder.pdf
+2022/06/08 | 6047 | macros/latex/base/latexrelease.ins
+2022/06/08 | 60321 | macros/latex/base/fontdef.dtx
+2022/06/08 | 6003 | language/arabic/arabtex/mfinput/hclassic.mf
+2022/06/08 | 5986 | macros/latex/base/ltnews15.tex
+2022/06/08 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/06/08 | 59499 | macros/latex/base/ltplain.dtx
+2022/06/08 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/06/08 | 5914 | language/arabic/arabtex/mfinput/hcaption.mf
+2022/06/08 | 58933 | macros/latex/base/ltfiles.dtx
+2022/06/08 | 58745 | macros/latex/base/ltmiscen.dtx
+2022/06/08 | 586925 | macros/latex/base/ltmarks-doc.pdf
+2022/06/08 | 58667 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/06/08 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/06/08 | 5862 | graphics/pgf/contrib/xebaposter/doc/images/fig6.pdf
+2022/06/08 | 5860 | macros/latex/required/amsmath/ams-internal.txt
+2022/06/08 | 5859 | macros/latex/base/ltidxglo.dtx
+2022/06/08 | 58551 | macros/latex/base/ltfssaxes.dtx
+2022/06/08 | 5825 | macros/latex/base/ltnews10.tex
+2022/06/08 | 5800452 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/06/08 | 5791 | macros/latex/required/tools/somedefs.dtx
+2022/06/08 | 5775 | macros/latex/base/ltnews16.tex
+2022/06/08 | 57656 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r63509.tar.xz
+2022/06/08 | 57618 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/06/08 | 5761047 | macros/latex/base/source2e.pdf
+2022/06/08 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/06/08 | 5732 | macros/latex/base/ltnews08.tex
+2022/06/08 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/06/08 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/06/08 | 5714 | macros/latex/base/inputenc.ins
+2022/06/08 | 5699 | macros/latex/base/ltnews05.tex
+2022/06/08 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/06/08 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r63509.tar.xz
+2022/06/08 | 5680 | macros/latex/required/tools/tools.ins
+2022/06/08 | 5678 | macros/latex/base/ltnews04.tex
+2022/06/08 | 5671 | macros/latex/base/ltnews27.tex
+2022/06/08 | 56618 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/06/08 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/06/08 | 564986 | macros/latex/base/ltshipout-doc.pdf
+2022/06/08 | 563513 | macros/latex/base/ltnews35.pdf
+2022/06/08 | 560439 | macros/latex/base/ltpara-doc.pdf
+2022/06/08 | 560350 | macros/latex/base/classes.pdf
+2022/06/08 | 5588 | macros/latex/base/ltnews25.tex
+2022/06/08 | 5576 | macros/latex/base/ltnews07.tex
+2022/06/08 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/06/08 | 5574 | macros/latex/base/ltnews12.tex
+2022/06/08 | 55687 | macros/latex/base/ltfloat.dtx
+2022/06/08 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/06/08 | 5544 | macros/latex/base/ltnews06.tex
+2022/06/08 | 5529 | macros/latex/base/ltnews11.tex
+2022/06/08 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/06/08 | 5509 | macros/latex/base/graphpap.dtx
+2022/06/08 | 548523 | macros/latex/base/ltfilehook-doc.pdf
+2022/06/08 | 5462 | macros/latex/base/ltnews02.tex
+2022/06/08 | 546160 | macros/latex/base/ltnews32.pdf
+2022/06/08 | 5451 | macros/latex/base/ltnews09.tex
+2022/06/08 | 5369 | macros/latex/base/ltnews03.tex
+2022/06/08 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/06/08 | 5323 | macros/latex/required/amsmath/ams-external.txt
+2022/06/08 | 53167 | macros/latex/required/tools/calc.dtx
+2022/06/08 | 53025 | macros/latex/base/ltcmdhooks.dtx
+2022/06/08 | 52966 | macros/latex/required/latex-lab/latex-lab-footnotes.dtx
+2022/06/08 | 529091 | macros/latex/required/latex-lab/latex-lab-new-or.pdf
+2022/06/08 | 52813 | macros/latex/base/encguide.tex
+2022/06/08 | 528019 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/06/08 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r63509.tar.xz
+2022/06/08 | 5273 | macros/latex/base/cmextra.ins
+2022/06/08 | 52710 | macros/latex/base/lb2.err
+2022/06/08 | 5267156 | systems/texlive/tlnet/archive/pax.source.r63509.tar.xz
+2022/06/08 | 5264960 | systems/texlive/tlnet/archive/pax.r63509.tar.xz
+2022/06/08 | 526323 | macros/latex/base/ltnews31.pdf
+2022/06/08 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/06/08 | 5246 | macros/latex/base/ltnews01.tex
+2022/06/08 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/06/08 | 522412 | macros/latex/base/ltnews33.pdf
+2022/06/08 | 521223 | macros/latex/required/tools/multicol.pdf
+2022/06/08 | 5211 | macros/latex/required/tools/tools-overview.tex
+2022/06/08 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/06/08 | 516458 | macros/latex/required/tools/array.pdf
+2022/06/08 | 51606 | macros/latex/base/ltpara.dtx
+2022/06/08 | 51556 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/06/08 | 51486 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/06/08 | 513440 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r63509.tar.xz
+2022/06/08 | 512020 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
+2022/06/08 | 511909 | macros/latex/base/ltnews30.pdf
+2022/06/08 | 508210 | macros/latex/required/amsmath/amsldoc.pdf
+2022/06/08 | 50819 | macros/latex/required/graphics/drivers.dtx
+2022/06/08 | 508044 | macros/latex/base/ltnews34.pdf
+2022/06/08 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/06/08 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r63509.tar.xz
+2022/06/08 | 5041 | macros/latex/base/latexsym.ins
+2022/06/08 | 503620 | macros/latex/base/docstrip.pdf
+2022/06/08 | 502880 | macros/latex/base/fntguide.pdf
+2022/06/08 | 49771 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/06/08 | 4959 | macros/latex/required/tools/fileerr.dtx
+2022/06/08 | 4945 | macros/latex/base/lthyphen.dtx
+2022/06/08 | 49430 | graphics/pgf/contrib/xebaposter/tex/xebaposter.cls
+2022/06/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/06/08 | 48823 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/06/08 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/06/08 | 48230 | macros/latex/base/ltfinal.dtx
+2022/06/08 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/06/08 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/06/08 | 47896 | macros/latex/base/lttab.dtx
+2022/06/08 | 478890 | macros/latex/base/ltcmdhooks-doc.pdf
+2022/06/08 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/06/08 | 475986 | macros/latex/required/graphics/mathcolor.pdf
+2022/06/08 | 4757 | macros/latex/base/ltlength.dtx
+2022/06/08 | 474 | macros/latex/required/firstaid/README.md
+2022/06/08 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/06/08 | 45822 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/06/08 | 45744 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/06/08 | 45660 | graphics/pgf/contrib/xebaposter/doc/images/fig2.png
+2022/06/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/06/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/06/08 | 455107 | macros/latex/base/ltnews29.pdf
+2022/06/08 | 45504 | systems/texlive/tlnet/archive/l3packages.source.r63505.tar.xz
+2022/06/08 | 454511 | macros/latex/required/amsmath/testmath.pdf
+2022/06/08 | 45240 | macros/latex/base/ltspace.dtx
+2022/06/08 | 44976 | macros/latex/base/latexrelease.dtx
+2022/06/08 | 44772 | macros/latex/base/ltboxes.dtx
+2022/06/08 | 44166 | macros/latex/base/usrguide3.tex
+2022/06/08 | 4396 | macros/latex/required/latex-lab/usage-of-@footnotemark.txt
+2022/06/08 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/06/08 | 4390 | macros/latex/base/ec.ins
+2022/06/08 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/06/08 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/06/08 | 43636 | macros/latex/base/cmfonts.fdd
+2022/06/08 | 43448 | macros/latex/required/tools/theorem.dtx
+2022/06/08 | 4336 | macros/latex/required/amsmath/amsxtra.dtx
+2022/06/08 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/06/08 | 4324 | macros/latex/base/cmfonts.ins
+2022/06/08 | 43225 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/06/08 | 430994 | macros/latex/base/usrguide.pdf
+2022/06/08 | 4298 | macros/latex/base/ltalloc.dtx
+2022/06/08 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/06/08 | 4273 | macros/latex/base/docstrip.ins
+2022/06/08 | 42708 | macros/latex/base/changes.old.txt
+2022/06/08 | 4254 | macros/latex/base/newdc.ins
+2022/06/08 | 4219 | macros/latex/base/latex209.ins
+2022/06/08 | 419913 | macros/latex/required/amsmath/amsmath.pdf
+2022/06/08 | 4170 | macros/latex/base/ltnews19.tex
+2022/06/08 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/06/08 | 4122 | macros/latex/required/graphics/epsfig.dtx
+2022/06/08 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/06/08 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/06/08 | 4087 | macros/latex/base/classes.ins
+2022/06/08 | 4079 | macros/latex/base/lablst.tex
+2022/06/08 | 406932 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63503.tar.xz
+2022/06/08 | 403394 | macros/latex/base/usrguide3.pdf
+2022/06/08 | 402780 | macros/latex/base/clsguide.pdf
+2022/06/08 | 40234 | macros/latex/base/ltmath.dtx
+2022/06/08 | 398985 | macros/latex/required/tools/varioref.pdf
+2022/06/08 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/06/08 | 39696 | macros/latex/required/tools/ftnright.dtx
+2022/06/08 | 396793 | macros/latex/base/changes.txt
+2022/06/08 | 3960 | macros/latex/base/olddc.ins
+2022/06/08 | 3946 | macros/latex/required/graphics/lscape.dtx
+2022/06/08 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/06/08 | 3917128 | systems/texlive/tlnet/archive/bidi.doc.r63509.tar.xz
+2022/06/08 | 391313 | macros/latex/required/tools/longtable.pdf
+2022/06/08 | 38946 | macros/latex/base/ltnews35.tex
+2022/06/08 | 38730 | macros/latex/base/latex209.dtx
+2022/06/08 | 386995 | macros/latex/required/tools/ftnright.pdf
+2022/06/08 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/06/08 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/06/08 | 38298583 | install/macros/latex/latex-base.tds.zip
+2022/06/08 | 38033 | macros/latex/base/ltnews18.pdf
+2022/06/08 | 379462 | macros/latex/base/ltnews26.pdf
+2022/06/08 | 3781 | macros/latex/base/tulm.ins
+2022/06/08 | 37754109 | macros/latex/base.zip
+2022/06/08 | 376643 | macros/latex/base/ltnews28.pdf
+2022/06/08 | 375907 | macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
+2022/06/08 | 37572 | macros/latex/required/graphics/grfguide.tex
+2022/06/08 | 375518 | macros/latex/base/slides.pdf
+2022/06/08 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/06/08 | 3725 | macros/latex/base/ltlogos.dtx
+2022/06/08 | 3712 | systems/texlive/tlnet/archive/coverpage.r63509.tar.xz
+2022/06/08 | 37117 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/06/08 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/06/08 | 370657 | macros/latex/required/tools/calc.pdf
+2022/06/08 | 3700 | macros/latex/required/firstaid/changes.txt
+2022/06/08 | 369 | macros/latex/required/amsmath/manifest.txt
+2022/06/08 | 36152 | macros/latex/base/ltlists.dtx
+2022/06/08 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/06/08 | 35984 | macros/latex/base/ltdirchk.dtx
+2022/06/08 | 35875 | macros/latex/required/tools/tabularx.dtx
+2022/06/08 | 35381 | macros/latex/required/graphics/changes.txt
+2022/06/08 | 353574 | macros/latex/base/utf8ienc.pdf
+2022/06/08 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/06/08 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/06/08 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/06/08 | 351471 | macros/latex/required/tools/theorem.pdf
+2022/06/08 | 3463 | macros/latex/base/README.md
+2022/06/08 | 3434 | macros/latex/base/makeindx.ins
+2022/06/08 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/06/08 | 3401 | macros/latex/base/proc.ins
+2022/06/08 | 33946 | macros/latex/base/ltsect.dtx
+2022/06/08 | 33907 | macros/latex/base/ltnews33.tex
+2022/06/08 | 33863 | macros/latex/required/tools/varioref-2016-02-16.sty
+2022/06/08 | 337544 | macros/latex/base/letter.pdf
+2022/06/08 | 3372 | macros/latex/base/letter.ins
+2022/06/08 | 3367 | macros/latex/base/ltoutenc.ins
+2022/06/08 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r63509.tar.xz
+2022/06/08 | 3338 | macros/latex/base/exscale.ins
+2022/06/08 | 332415 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/06/08 | 33239 | macros/latex/base/ltnews32.tex
+2022/06/08 | 330978 | macros/latex/required/graphics/grfguide.pdf
+2022/06/08 | 330963 | macros/latex/required/tools/verbatim.pdf
+2022/06/08 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/06/08 | 3284 | macros/latex/required/tools/manifest.txt
+2022/06/08 | 3282 | macros/latex/base/bugs.txt
+2022/06/08 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/06/08 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/06/08 | 323432 | macros/latex/required/tools/bm.pdf
+2022/06/08 | 32307 | macros/latex/base/ltnews34.tex
+2022/06/08 | 322096 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r63509.tar.xz
+2022/06/08 | 32194 | macros/latex/required/graphics/color.dtx
+2022/06/08 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/06/08 | 32029 | macros/latex/required/tools/layout.dtx
+2022/06/08 | 318548 | macros/latex/base/ltnews20.pdf
+2022/06/08 | 318204 | macros/latex/base/inputenc.pdf
+2022/06/08 | 3181 | macros/latex/base/unpack.ins
+2022/06/08 | 317773 | macros/latex/base/ltnews22.pdf
+2022/06/08 | 317700 | macros/latex/base/ltluatex.pdf
+2022/06/08 | 31646 | macros/latex/required/tools/multicol-2019-10-01.sty
+2022/06/08 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/06/08 | 31589 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/06/08 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/06/08 | 31414 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/06/08 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/06/08 | 3110069 | install/macros/latex/required/latex-graphics.tds.zip
+2022/06/08 | 3073492 | macros/latex/required/graphics.zip
+2022/06/08 | 3064 | systems/texlive/tlnet/archive/pax.doc.r63509.tar.xz
+2022/06/08 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/06/08 | 30499 | macros/latex/base/doc-2021-06-01.sty
+2022/06/08 | 30464 | macros/latex/required/graphics/graphicx.dtx
+2022/06/08 | 30428 | macros/latex/base/ltnews31.tex
+2022/06/08 | 303464 | macros/latex/required/graphics/graphics.pdf
+2022/06/08 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/06/08 | 30107 | macros/latex/required/tools/showkeys.dtx
+2022/06/08 | 29965 | macros/latex/base/doc-2016-02-15.sty
+2022/06/08 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
+2022/06/08 | 29712 | macros/latex/required/tools/multicol-2017-04-11.sty
+2022/06/08 | 296040 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/06/08 | 29267 | macros/latex/base/ltfntcmd.dtx
+2022/06/08 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r63509.tar.xz
+2022/06/08 | 292376 | macros/latex/base/cmfonts.pdf
+2022/06/08 | 290879 | macros/latex/required/latex-lab/latex-lab-testphase.pdf
+2022/06/08 | 290615 | macros/latex/base/tlc2.pdf
+2022/06/08 | 2896 | macros/latex/base/syntonly.ins
+2022/06/08 | 2893 | macros/latex/base/nfssfont.ins
+2022/06/08 | 2892 | macros/latex/base/graphpap.ins
+2022/06/08 | 2892 | macros/latex/base/fix-cm.ins
+2022/06/08 | 2890 | macros/latex/base/alltt.ins
+2022/06/08 | 2888 | macros/latex/base/ifthen.ins
+2022/06/08 | 288328 | macros/latex/base/fix-cm.pdf
+2022/06/08 | 288201 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/06/08 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/06/08 | 287073 | macros/latex/required/tools/tabularx.pdf
+2022/06/08 | 28688 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/06/08 | 286591 | macros/latex/base/ltnews23.pdf
+2022/06/08 | 286459 | macros/latex/required/graphics/drivers.pdf
+2022/06/08 | 286411 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/06/08 | 285713 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/06/08 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/06/08 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/06/08 | 2823 | macros/latex/required/latex-lab/latex-lab.ins
+2022/06/08 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/06/08 | 281906 | macros/latex/base/latexrelease.pdf
+2022/06/08 | 280968 | systems/texlive/tlnet/archive/coverpage.doc.r63509.tar.xz
+2022/06/08 | 2794804 | install/macros/latex/required/latex-amsmath.tds.zip
+2022/06/08 | 278707 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/06/08 | 278704 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/06/08 | 278253 | macros/latex/required/graphics/rotating.pdf
+2022/06/08 | 27636 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/06/08 | 2762704 | macros/latex/required/amsmath.zip
+2022/06/08 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/06/08 | 27414 | graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.tex
+2022/06/08 | 2740 | macros/latex/required/firstaid/firstaid.ins
+2022/06/08 | 273936 | graphics/pgf/contrib/xebaposter/doc/poster.pdf
+2022/06/08 | 2728 | macros/latex/base/ltpageno.dtx
+2022/06/08 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/06/08 | 27122 | macros/latex/base/ltxcheck.tex
+2022/06/08 | 2709 | macros/latex/required/amsmath/README.md
+2022/06/08 | 27069 | macros/latex/base/lterror.dtx
+2022/06/08 | 2705 | macros/latex/base/idx.tex
+2022/06/08 | 270299 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/06/08 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/06/08 | 265279 | macros/latex/base/ltnews24.pdf
+2022/06/08 | 262641 | install/macros/latex/required/latex-firstaid.tds.zip
+2022/06/08 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r63509.tar.xz
+2022/06/08 | 259969 | macros/latex/required/tools/layout.pdf
+2022/06/08 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r63509.tar.xz
+2022/06/08 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/06/08 | 257934 | macros/latex/required/firstaid.zip
+2022/06/08 | 2576 | macros/latex/required/tools/multicol.ins
+2022/06/08 | 257018 | macros/latex/required/tools/xspace.pdf
+2022/06/08 | 2568 | language/arabic/arabtex/doc/txt/arabtex.faq
+2022/06/08 | 256609 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
+2022/06/08 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/06/08 | 25483960 | systems/texlive/tlnet/install-tl.zip
+2022/06/08 | 2538 | macros/latex/required/tools/longtable.ins
+2022/06/08 | 2538 | macros/latex/required/tools/afterpage.ins
+2022/06/08 | 2535 | macros/latex/required/tools/tabularx.ins
+2022/06/08 | 2531 | macros/latex/required/tools/varioref.ins
+2022/06/08 | 2524 | macros/latex/required/tools/bm.ins
+2022/06/08 | 252140 | macros/latex/base/lb2.pdf
+2022/06/08 | 251782 | macros/latex/required/tools/showkeys.pdf
+2022/06/08 | 25146 | macros/latex/required/tools/trace.dtx
+2022/06/08 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/06/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/06/08 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/06/08 | 250592 | macros/latex/base/ltnews27.pdf
+2022/06/08 | 247335 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/06/08 | 245098 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/06/08 | 244962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/06/08 | 244867 | macros/latex/base/ltnews21.pdf
+2022/06/08 | 244287 | macros/latex/base/doc.dtx
+2022/06/08 | 243605 | macros/latex/base/modguide.pdf
+2022/06/08 | 242888 | macros/latex/base/cfgguide.pdf
+2022/06/08 | 24286 | macros/latex/base/ltcounts.dtx
+2022/06/08 | 242822 | macros/latex/base/ltxdoc.pdf
+2022/06/08 | 241 | macros/latex/base/ltfilehook-doc.tex
+2022/06/08 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/06/08 | 240 | macros/latex/base/ltshipout-doc.tex
+2022/06/08 | 240623 | macros/latex/required/graphics/graphicx.pdf
+2022/06/08 | 239689 | macros/latex/base/cyrguide.pdf
+2022/06/08 | 239589 | macros/latex/required/graphics/keyval.pdf
+2022/06/08 | 23946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/06/08 | 238 | macros/latex/base/ltmarks-doc.tex
+2022/06/08 | 238 | macros/latex/base/lthooks-doc.tex
+2022/06/08 | 238 | macros/latex/base/ltcmdhooks-doc.tex
+2022/06/08 | 2381692 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/06/08 | 23637 | macros/latex/base/ltnews30.tex
+2022/06/08 | 23516 | macros/latex/base/fix-cm.dtx
+2022/06/08 | 234 | macros/latex/base/ltpara-doc.tex
+2022/06/08 | 234191 | macros/latex/base/slifonts.pdf
+2022/06/08 | 23386 | macros/latex/base/lppl.tex
+2022/06/08 | 230317 | macros/latex/required/amsmath/amsmath.dtx
+2022/06/08 | 2302616 | install/macros/latex/required/latex-lab.tds.zip
+2022/06/08 | 230028 | macros/latex/base/ltnews19.pdf
+2022/06/08 | 229793 | graphics/pgf/contrib/xebaposter/doc/poster-fa.pdf
+2022/06/08 | 2293 | macros/latex/required/latex-lab/latex-lab-testphase.dtx
+2022/06/08 | 2286379 | macros/latex/required/latex-lab.zip
+2022/06/08 | 227059 | macros/latex/base/proc.pdf
+2022/06/08 | 22605 | macros/latex/required/amsmath/diffs-m.txt
+2022/06/08 | 22456 | macros/latex/base/cfgguide.tex
+2022/06/08 | 223926 | macros/latex/contrib/pxcjkcat.zip
+2022/06/08 | 223831 | macros/latex/base/alltt.pdf
+2022/06/08 | 22370 | macros/latex/required/latex-lab/usage-of-@footnotetext.txt
+2022/06/08 | 22343 | language/arabic/arabtex/mfinput/hcbase.mf
+2022/06/08 | 2220 | macros/latex/required/tools/indentfirst.dtx
+2022/06/08 | 222076 | macros/latex/required/tools/trace.pdf
+2022/06/08 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/06/08 | 221211 | macros/latex/base/ifthen.pdf
+2022/06/08 | 220834 | macros/latex/required/tools/dcolumn.pdf
+2022/06/08 | 22067 | macros/latex/base/ltxdoc.dtx
+2022/06/08 | 21936 | systems/texlive/tlnet/archive/l3packages.r63505.tar.xz
+2022/06/08 | 219349 | macros/latex/base/ltx3info.pdf
+2022/06/08 | 217498 | macros/latex/required/amsmath/amstext.pdf
+2022/06/08 | 21735 | graphics/pgf/contrib/xebaposter/doc/images/shariflogo.png
+2022/06/08 | 2164751 | language/arabic/arabtex.zip
+2022/06/08 | 215684 | macros/latex/base/lgc2.pdf
+2022/06/08 | 215498 | macros/latex/required/tools/enumerate.pdf
+2022/06/08 | 21465 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
+2022/06/08 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/06/08 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/06/08 | 21280 | systems/texlive/tlnet/archive/cooking-units.r63509.tar.xz
+2022/06/08 | 212223 | macros/latex/required/graphics/color.pdf
+2022/06/08 | 211482 | macros/latex/base/lthooks.dtx
+2022/06/08 | 211180 | macros/latex/base/nfssfont.pdf
+2022/06/08 | 21067 | macros/latex/required/graphics/rotating.dtx
+2022/06/08 | 210276 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/06/08 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/06/08 | 2076 | macros/latex/required/graphics/README.md
+2022/06/08 | 20652 | macros/latex/base/lgc2.err
+2022/06/08 | 20509 | graphics/pgf/contrib/xebaposter/doc/images/fig1.pdf
+2022/06/08 | 204935 | macros/latex/base/ltnews25.pdf
+2022/06/08 | 204711 | macros/latex/base/exscale.pdf
+2022/06/08 | 20469 | macros/latex/base/ltnews.cls
+2022/06/08 | 20462722 | systems/texlive/tlnet/install-tl-windows.exe
+2022/06/08 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/06/08 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/06/08 | 20185 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/06/08 | 200760 | macros/latex/base/latexsym.pdf
+2022/06/08 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/06/08 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/06/08 | 199266 | macros/latex/required/graphics/trig.pdf
+2022/06/08 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/06/08 | 197738 | macros/latex/required/tools/afterpage.pdf
+2022/06/08 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/06/08 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/06/08 | 1937 | macros/latex/base/minimal.cls
+2022/06/08 | 19321 | graphics/pgf/contrib/xebaposter/doc/images/docs-shade.pdf
+2022/06/08 | 191 | macros/latex/required/latex-lab/documentmetadata-support-doc.tex
+2022/06/08 | 191064 | macros/latex/required/tools/delarray.pdf
+2022/06/08 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/06/08 | 19040 | macros/latex/base/lppl.txt
+2022/06/08 | 189679 | macros/latex/required/tools/hhline.pdf
+2022/06/08 | 189644 | macros/latex/base/syntonly.pdf
+2022/06/08 | 18944 | macros/latex/base/ltnews29.tex
+2022/06/08 | 18753 | macros/latex/base/ifthen.dtx
+2022/06/08 | 187495 | macros/latex/required/tools/fileerr.pdf
+2022/06/08 | 18711 | macros/latex/base/ltexpl.dtx
+2022/06/08 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/06/08 | 184548 | macros/latex/required/tools/multicol.dtx
+2022/06/08 | 18399 | macros/latex/base/nfssfont.dtx
+2022/06/08 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/06/08 | 18363 | macros/latex/base/ltxref.dtx
+2022/06/08 | 18299 | macros/latex/base/ltx3info.tex
+2022/06/08 | 182225 | macros/latex/base/ltnews13.pdf
+2022/06/08 | 1818788 | systems/texlive/tlnet/archive/l3packages.doc.r63505.tar.xz
+2022/06/08 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/06/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r63509.tar.xz
+2022/06/08 | 179945 | macros/latex/required/amsmath/amscd.pdf
+2022/06/08 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/06/08 | 17856 | macros/latex/required/tools/xspace.dtx
+2022/06/08 | 178421 | macros/latex/base/ltoutput.dtx
+2022/06/08 | 178187 | macros/latex/required/amsmath/amsgen.pdf
+2022/06/08 | 17643 | macros/latex/base/ltkeys.dtx
+2022/06/08 | 175929 | macros/latex/required/tools/shellesc.pdf
+2022/06/08 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/06/08 | 17500938 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/06/08 | 17495 | macros/latex/base/cyrguide.tex
+2022/06/08 | 174944 | macros/latex/required/amsmath/amsbsy.pdf
+2022/06/08 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r63509.tar.xz
+2022/06/08 | 174494 | macros/latex/base/ltnews05.pdf
+2022/06/08 | 17389 | macros/latex/base/ltbibl.dtx
+2022/06/08 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/06/08 | 172867 | macros/latex/base/tlc2.err
+2022/06/08 | 172373 | macros/latex/base/ltcmd.dtx
+2022/06/08 | 172227 | macros/latex/required/graphics/rotex.pdf
+2022/06/08 | 170878 | macros/latex/base/lamport-manual.pdf
+2022/06/08 | 170473 | macros/latex/base/ltnews14.pdf
+2022/06/08 | 170209 | macros/latex/base/docstrip.dtx
+2022/06/08 | 169986 | macros/latex/required/tools/xr.pdf
+2022/06/08 | 1694 | macros/latex/base/small2e.tex
+2022/06/08 | 169416 | macros/latex/base/ltnews10.pdf
+2022/06/08 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/06/08 | 16856 | graphics/pgf/contrib/xebaposter/doc/poster.tex
+2022/06/08 | 167572 | macros/latex/required/tools/somedefs.pdf
+2022/06/08 | 166228 | macros/latex/base/ltnews17.pdf
+2022/06/08 | 165821 | macros/latex/base/makeindx.pdf
+2022/06/08 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/06/08 | 1650 | macros/latex/required/tools/README.md
+2022/06/08 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/06/08 | 162772 | macros/latex/base/tulm.pdf
+2022/06/08 | 16233 | macros/latex/base/modguide.tex
+2022/06/08 | 161713 | macros/latex/base/graphpap.pdf
+2022/06/08 | 161518 | macros/latex/base/ltnews01.pdf
+2022/06/08 | 16134 | macros/latex/required/latex-lab/latex-lab-new-or.dtx
+2022/06/08 | 159997 | macros/latex/required/graphics/epsfig.pdf
+2022/06/08 | 159792 | macros/latex/base/ltnews02.pdf
+2022/06/08 | 1594 | macros/latex/required/latex-lab/usage-of-kern-kern.txt
+2022/06/08 | 159332 | macros/latex/base/ltnews03.pdf
+2022/06/08 | 157954 | macros/latex/required/tools/indentfirst.pdf
+2022/06/08 | 15737 | macros/latex/required/graphics/cat.eps
+2022/06/08 | 15715 | macros/latex/required/graphics/mathcolor.dtx
+2022/06/08 | 15699 | macros/latex/base/slifonts.fdd
+2022/06/08 | 156965 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/06/08 | 156551 | macros/latex/base/ltnews12.pdf
+2022/06/08 | 156235 | macros/latex/base/classes.dtx
+2022/06/08 | 155986 | macros/latex/required/graphics/lscape.pdf
+2022/06/08 | 155498 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/06/08 | 155053 | macros/latex/base/ltnews08.pdf
+2022/06/08 | 15429 | macros/latex/required/graphics/graphics-2017-06-25.sty
+2022/06/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/06/08 | 15306 | macros/latex/base/source2e.tex
+2022/06/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/06/08 | 152525 | macros/latex/base/ltnews04.pdf
+2022/06/08 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/06/08 | 1505 | macros/latex/required/amsmath/amsbsy.ins
+2022/06/08 | 1504 | macros/latex/required/amsmath/amsmath.ins
+2022/06/08 | 15047 | macros/latex/base/ltnews28.tex
+2022/06/08 | 1501238 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/06/08 | 1492 | macros/latex/required/amsmath/amsxtra.ins
+2022/06/08 | 1492 | macros/latex/required/amsmath/amstext.ins
+2022/06/08 | 1490 | macros/latex/required/amsmath/amsopn.ins
+2022/06/08 | 1487 | macros/latex/required/amsmath/amscd.ins
+2022/06/08 | 1484 | macros/latex/required/amsmath/amsgen.ins
+2022/06/08 | 148294 | macros/latex/base/ltoutenc.dtx
+2022/06/08 | 14785 | macros/latex/base/ltvers.dtx
+2022/06/08 | 147462 | macros/latex/required/amsmath/technote.pdf
+2022/06/08 | 146446 | macros/latex/required/tools/fontsmpl.pdf
+2022/06/08 | 146198 | macros/latex/base/webcomp.pdf
+2022/06/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/06/08 | 14575 | macros/latex/required/graphics/rotex.tex
+2022/06/08 | 1457136 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/06/08 | 1456975 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/06/08 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/06/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/06/08 | 14421 | macros/latex/base/lppl-1-2.txt
+2022/06/08 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/06/08 | 14341 | macros/latex/base/lppl-1-1.txt
+2022/06/08 | 142877 | macros/latex/base/ltclass.dtx
+2022/06/08 | 142849 | macros/latex/base/ltnews06.pdf
+2022/06/08 | 141860 | systems/texlive/tlnet/archive/bidi.source.r63509.tar.xz
+2022/06/08 | 14091 | macros/latex/base/ltpage.dtx
+2022/06/08 | 14072 | macros/latex/required/tools/afterpage.dtx
+2022/06/08 | 14019 | macros/latex/required/latex-lab/documentmetadata-support.dtx
+2022/06/08 | 140095 | macros/latex/required/amsmath/amsopn.pdf
+2022/06/08 | 139663 | graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdf
+2022/06/08 | 139099 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/06/08 | 138963 | macros/latex/required/tools/rawfonts.pdf
+2022/06/08 | 13875 | macros/latex/required/graphics/keyval.dtx
+2022/06/08 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r63509.tar.xz
+2022/06/08 | 138073 | macros/latex/base/ltnews16.pdf
+2022/06/08 | 137811 | macros/latex/base/ltnews07.pdf
+2022/06/08 | 13759 | macros/latex/base/lamport-manual.err
+2022/06/08 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/06/08 | 13589 | macros/latex/base/proc.dtx
+2022/06/08 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/06/08 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/06/08 | 13515 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/06/08 | 1345086 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/06/08 | 13442 | macros/latex/required/amsmath/amsgen.dtx
+2022/06/08 | 1343689 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/06/08 | 1341 | macros/latex/base/ltnews18.tex
+2022/06/08 | 132382 | macros/latex/base/lppl.pdf
+2022/06/08 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/06/08 | 1318126 | macros/latex/base/encguide.pdf
+2022/06/08 | 130309 | macros/latex/base/ltnews15.pdf
+2022/06/08 | 1302485 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/06/08 | 129570 | macros/latex/base/ltnews09.pdf
+2022/06/08 | 128455 | graphics/pgf/contrib/xebaposter/doc/images/fig3.pdf
+2022/06/08 | 128179 | macros/latex/required/tools/array.dtx
+2022/06/08 | 1279 | macros/latex/base/legal.txt
+2022/06/08 | 12709 | macros/latex/required/tools/dcolumn.dtx
+2022/06/08 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/06/08 | 12559 | macros/latex/required/tools/array-2020-02-10.sty
+2022/06/08 | 12520 | macros/latex/base/testpage.tex
+2022/06/08 | 124704 | systems/texlive/tlnet/archive/bidi.r63509.tar.xz
+2022/06/08 | 1239716 | systems/texlive/tlnet/archive/siunitx.doc.r63509.tar.xz
+2022/06/08 | 12334 | macros/latex/base/ltnews24.tex
+2022/06/08 | 12242 | macros/latex/base/tulm.fdd
+2022/06/08 | 12133 | macros/latex/required/tools/longtable-2020-01-07.sty
+2022/06/08 | 120618 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/06/08 | 12005 | macros/latex/required/amsmath/technote.tex
+2022/06/08 | 12002 | graphics/pgf/contrib/xebaposter/doc/images/docs-boxshape.pdf
+2022/06/08 | 1189 | macros/latex/required/graphics/graphics.ins
+2022/06/08 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/06/08 | 1180993 | macros/latex/base/ltnews.pdf
+2022/06/08 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
+2022/06/08 | 11749 | macros/latex/required/tools/array-2016-10-06.sty
+2022/06/08 | 116444 | systems/texlive/tlnet/archive/siunitx.source.r63509.tar.xz
+2022/06/08 | 1156 | macros/latex/required/latex-lab/README.md
+2022/06/08 | 115658 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/06/08 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/06/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/06/08 | 114350 | macros/latex/required/tools/varioref.dtx
+2022/06/08 | 11398 | macros/latex/required/amsmath/amstext.dtx
+2022/06/08 | 113561 | macros/latex/required/amsmath/amsxtra.pdf
+2022/06/08 | 11325 | graphics/pgf/contrib/xebaposter/doc/images/fig5.pdf
+2022/06/08 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/06/08 | 11284 | macros/latex/required/amsmath/amscd.dtx
+2022/06/08 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/06/08 | 111948 | macros/latex/base/ltnews11.pdf
+2022/06/08 | 11148 | macros/latex/required/tools/hhline.dtx
+2022/06/08 | 11103 | macros/latex/base/manifest.txt
+2022/06/08 | 109748 | systems/texlive/tlnet/archive/texlive-scripts.r63503.tar.xz
+2022/06/08 | 109731 | macros/latex/required/amsmath/subeqn.pdf
+2022/06/08 | 1096906 | macros/latex/base/lthooks-code.pdf
+2022/06/08 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/06/08 | 1081719 | macros/latex/base/doc-code.pdf
+2022/06/08 | 10798 | macros/latex/base/ltnews26.tex
+2022/06/08 | 10792 | macros/latex/base/ltnews22.tex
+2022/06/08 | 10791 | macros/latex/base/ltnews23.tex
+2022/06/08 | 10771 | macros/latex/required/tools/fontsmpl.dtx
+2022/06/08 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/06/08 | 10753 | macros/latex/required/graphics/trig.dtx
+2022/06/08 | 106904 | macros/latex/base/inputenc.dtx
+2022/06/08 | 106880 | macros/latex/base/fntguide.tex
+2022/06/08 | 10658 | graphics/pgf/contrib/xebaposter/doc/images/fig4.pdf
+2022/06/08 | 10644 | macros/latex/required/tools/enumerate.dtx
+2022/06/08 | 10601 | macros/latex/base/makeindx.dtx
+2022/06/08 | 105 | macros/latex/base/ltfilehook-code.tex
+2022/06/08 | 10568 | graphics/pgf/contrib/xebaposter/doc/poster-fa.tex
+2022/06/08 | 104 | macros/latex/base/ltshipout-code.tex
+2022/06/08 | 104792 | macros/latex/required/amsmath/amsldoc.tex
+2022/06/08 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/06/08 | 103 | macros/latex/base/ltcmdhooks-code.tex
+2022/06/08 | 10370 | macros/latex/base/ltfsscmp.dtx
+2022/06/08 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/06/08 | 10324 | systems/texlive/tlnet/archive/coverpage.source.r63509.tar.xz
+2022/06/08 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/06/08 | 102 | macros/latex/base/ltmarks-code.tex
+2022/06/08 | 102 | macros/latex/base/lthooks-code.tex
+2022/06/08 | 10251 | macros/latex/base/webcomp.err
+2022/06/08 | 1021844 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/06/08 | 10199 | macros/latex/required/amsmath/amsopn.dtx
+2022/06/08 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/06/07 | 996 | macros/latex/contrib/siunitx/README.md
-2022/06/07 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
2022/06/07 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
-2022/06/07 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/06/07 | 968277 | macros/xetex/latex/bidi/bidi.dtx
-2022/06/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2022/06/07 | 963 | macros/latex/contrib/pax/source/src/EntryWriteException.java
-2022/06/07 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/06/07 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/06/07 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/06/07 | 937 | systems/win32/miktex/tm/packages/pr.ini
-2022/06/07 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/06/07 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2022/06/07 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
-2022/06/07 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/06/07 | 869308 | systems/texlive/tlnet/archive/babel.doc.r63498.tar.xz
-2022/06/07 | 86757 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2022/06/07 | 8648 | systems/texlive/tlnet/archive/pwebmac.r63501.tar.xz
2022/06/07 | 84537 | macros/latex/contrib/l3packages/xparse-2018-04-12.sty
2022/06/07 | 83 | macros/latex/contrib/pax/source/src/MANIFEST.MF
-2022/06/07 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/06/07 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/06/07 | 80215 | macros/latex/contrib/l3packages/xparse-generic.tex
-2022/06/07 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/06/07 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/06/07 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/06/07 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/06/07 | 76428 | systems/texlive/tlnet/archive/cweb.doc.r63495.tar.xz
2022/06/07 | 761651 | macros/xetex/latex/bidi/gull.jpg
-2022/06/07 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/06/07 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/06/07 | 75324 | systems/texlive/tlnet/archive/xepersian.source.r63500.tar.xz
-2022/06/07 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2022/06/07 | 7374 | macros/latex/contrib/l3packages/xfp.dtx
-2022/06/07 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/06/07 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/06/07 | 73149 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/06/07 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/06/07 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/06/07 | 7360 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/06/07 | 718640 | systems/texlive/tlnet/archive/babel.source.r63498.tar.xz
-2022/06/07 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/06/07 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/06/07 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/06/07 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/06/07 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2022/06/07 | 67981 | macros/latex/contrib/siunitx/CHANGELOG.md
-2022/06/07 | 67706 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/06/07 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/06/07 | 663088 | macros/latex/contrib/siunitx/siunitx.pdf
2022/06/07 | 6588 | macros/latex/contrib/pax/README
-2022/06/07 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/06/07 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/06/07 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/06/07 | 64709 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/06/07 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/06/07 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/06/07 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/06/07 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/06/07 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/06/07 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2022/06/07 | 6248 | systems/texlive/tlnet/archive/hvextern.r63497.tar.xz
-2022/06/07 | 62382 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/06/07 | 6195 | macros/latex/contrib/l3packages/xparse-2020-10-01.sty
2022/06/07 | 617944 | macros/latex/contrib/siunitx/siunitx-code.pdf
2022/06/07 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
2022/06/07 | 6087 | macros/latex/contrib/l3packages/CHANGELOG.md
2022/06/07 | 60116 | systems/texlive/tlnet/archive/xepersian.r63500.tar.xz
-2022/06/07 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/06/07 | 5939 | macros/xetex/latex/bidi/bidi-doc-plain-basics.ltx
-2022/06/07 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/06/07 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/06/07 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/06/07 | 5800020 | systems/texlive/tlnet/install-tl-unx.tar.gz
2022/06/07 | 57930 | macros/latex/contrib/pax/source/lib/commons-logging.jar
-2022/06/07 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/06/07 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/06/07 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/06/07 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/06/07 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/06/07 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/06/07 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/06/07 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/06/07 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/06/07 | 55460 | macros/latex/contrib/l3packages/xparse.dtx
-2022/06/07 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/06/07 | 5518276 | macros/latex/contrib/pax/scripts/pax.jar
2022/06/07 | 5481 | macros/latex/contrib/siunitx/siunitx-locale.dtx
2022/06/07 | 5449162 | macros/latex/contrib/pax/source/lib/pdfbox.jar
2022/06/07 | 534 | macros/xetex/latex/bidi/bidi-doc.ltx
2022/06/07 | 534282 | macros/latex/contrib/l3packages/xparse.pdf
-2022/06/07 | 532452 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/06/07 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/06/07 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/06/07 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/06/07 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/06/07 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/06/07 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/06/07 | 50961 | macros/latex/contrib/siunitx/siunitx-table.dtx
-2022/06/07 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/06/07 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/06/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/06/07 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2022/06/07 | 484863 | macros/latex/contrib/l3packages/xfrac.pdf
-2022/06/07 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2022/06/07 | 4829 | macros/latex/contrib/pax/scripts/pdfannotextractor.pl
-2022/06/07 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/06/07 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/06/07 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/06/07 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
-2022/06/07 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2022/06/07 | 4583 | macros/latex/contrib/pax/source/src/Entry.java
-2022/06/07 | 45826 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/06/07 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/06/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/06/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/06/07 | 4547 | macros/xetex/latex/bidi/bidi-doc-latex-pkgs.ltx
2022/06/07 | 4524052 | install/macros/xetex/latex/bidi.tds.zip
2022/06/07 | 450127 | macros/latex/contrib/l3packages/xtemplate.pdf
2022/06/07 | 4497 | macros/xetex/latex/bidi/bidi-doc-latex-programming.ltx
-2022/06/07 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/06/07 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/06/07 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/06/07 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/06/07 | 43226 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/07 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/06/07 | 4271 | macros/latex/contrib/pax/source/src/Constants.java
2022/06/07 | 4133900 | macros/xetex/latex/bidi.zip
-2022/06/07 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/06/07 | 41204 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/06/07 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/06/07 | 406928 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63494.tar.xz
-2022/06/07 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/06/07 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/06/07 | 39366 | macros/latex/contrib/l3packages/xfrac.dtx
-2022/06/07 | 3908320 | systems/texlive/tlnet/archive/bidi.doc.r63499.tar.xz
-2022/06/07 | 38559 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2022/06/07 | 3843 | macros/latex/contrib/l3packages/README.md
-2022/06/07 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/06/07 | 37954 | macros/latex/contrib/siunitx/siunitx-complex.dtx
-2022/06/07 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/06/07 | 37114 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/06/07 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/06/07 | 369332 | macros/latex/contrib/l3packages/l3keys2e.pdf
2022/06/07 | 3688 | macros/latex/contrib/pax/source/src/StringVisitor.java
2022/06/07 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
-2022/06/07 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2022/06/07 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
2022/06/07 | 35916 | macros/latex/contrib/siunitx/siunitx-print.dtx
-2022/06/07 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/06/07 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/06/07 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/06/07 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/06/07 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
-2022/06/07 | 332413 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/06/07 | 332067 | macros/latex/contrib/l3packages/xfp.pdf
2022/06/07 | 3314524 | macros/xetex/latex/bidi/bidi.pdf
-2022/06/07 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/06/07 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/06/07 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2022/06/07 | 32341 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
-2022/06/07 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/06/07 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
-2022/06/07 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/06/07 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/06/07 | 31518 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/06/07 | 31410 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/06/07 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/06/07 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/06/07 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/06/07 | 296038 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/06/07 | 2936 | macros/xetex/latex/bidi/bidi-bibitem.pdf
2022/06/07 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
-2022/06/07 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/06/07 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/06/07 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/06/07 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/06/07 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/06/07 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/06/07 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/06/07 | 2820685 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/06/07 | 279 | macros/latex/contrib/pax/source/Makefile
-2022/06/07 | 278734 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/06/07 | 278709 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/06/07 | 27733 | macros/latex/contrib/pax/source/src/PDFAnnotExtractor.java
-2022/06/07 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/06/07 | 27590 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2022/06/07 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
-2022/06/07 | 27246 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/06/07 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/06/07 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2022/06/07 | 2620 | macros/latex/contrib/siunitx/siunitx-code.tex
-2022/06/07 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/06/07 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/06/07 | 25483949 | systems/texlive/tlnet/install-tl.zip
2022/06/07 | 25234 | macros/latex/contrib/csassignments/csassignments.dtx
-2022/06/07 | 251130 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/06/07 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/06/07 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/06/07 | 247333 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/06/07 | 245095 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/06/07 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
2022/06/07 | 24320 | systems/texlive/tlnet/archive/cweb.r63495.tar.xz
-2022/06/07 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/06/07 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2022/06/07 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
-2022/06/07 | 2381632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2022/06/07 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/06/07 | 2213922 | install/macros/latex/contrib/l3packages.tds.zip
2022/06/07 | 2195733 | macros/latex/contrib/l3packages.zip
2022/06/07 | 21683 | macros/latex/contrib/siunitx/siunitx.dtx
2022/06/07 | 2150 | macros/latex/contrib/pax/source/build.xml
-2022/06/07 | 213279 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/06/07 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2022/06/07 | 2108 | macros/xetex/latex/bidi/bidi-doc-title.ltx
-2022/06/07 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/06/07 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/06/07 | 20463156 | systems/texlive/tlnet/install-tl-windows.exe
-2022/06/07 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/06/07 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/06/07 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/06/07 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/06/07 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/06/07 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/06/07 | 197036 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2022/06/07 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
-2022/06/07 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/06/07 | 19110 | macros/latex/contrib/pax/source/license/LaTeX/lppl.txt
-2022/06/07 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2022/06/07 | 189624 | systems/texlive/tlnet/archive/babel.r63498.tar.xz
2022/06/07 | 1883 | macros/latex/contrib/csassignments/csassignments.ins
-2022/06/07 | 18491 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/06/07 | 18369 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/06/07 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/06/07 | 17990 | macros/latex/contrib/pax/source/license/PDFAnnotExtractor/gpl.txt
-2022/06/07 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/06/07 | 178004 | macros/xetex/latex/bidi/bidi-doc.pdf
-2022/06/07 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/06/07 | 17500252 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/06/07 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2022/06/07 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
2022/06/07 | 1693 | macros/xetex/latex/bidi/picture.jpg
-2022/06/07 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/06/07 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
-2022/06/07 | 16560 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/06/07 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/06/07 | 158390 | macros/latex/contrib/siunitx/siunitx.tex
-2022/06/07 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2022/06/07 | 1561 | macros/latex/contrib/l3packages/xtemplate.ins
-2022/06/07 | 155498 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/06/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2022/06/07 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
-2022/06/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/06/07 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/06/07 | 15189 | macros/latex/contrib/pax/tex/pax.sty
2022/06/07 | 151780 | systems/texlive/tlnet/archive/fancyvrb.doc.r63496.tar.xz
2022/06/07 | 1510293 | install/macros/latex/contrib/siunitx.tds.zip
-2022/06/07 | 1501238 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/06/07 | 1466296 | macros/latex/contrib/siunitx.zip
-2022/06/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/06/07 | 1457336 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/06/07 | 1457090 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/06/07 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2022/06/07 | 145405 | macros/latex/contrib/siunitx/siunitx-number.dtx
-2022/06/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2022/06/07 | 1444 | macros/latex/contrib/l3packages/l3keys2e-demo.tex
-2022/06/07 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/06/07 | 141572 | systems/texlive/tlnet/archive/bidi.source.r63499.tar.xz
2022/06/07 | 1396 | macros/xetex/latex/bidi/bidi-doc-intro.ltx
-2022/06/07 | 139103 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/06/07 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/06/07 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/06/07 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/06/07 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2022/06/07 | 134810 | macros/latex/contrib/csassignments/csassignments.pdf
-2022/06/07 | 1344509 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/06/07 | 1344358 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2022/06/07 | 1323 | macros/xetex/latex/bidi/README
-2022/06/07 | 1322743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2022/06/07 | 1306 | macros/latex/contrib/l3packages/xfrac.ins
-2022/06/07 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/06/07 | 1272 | macros/latex/contrib/l3packages/xparse.ins
-2022/06/07 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/06/07 | 124368 | systems/texlive/tlnet/archive/bidi.r63499.tar.xz
2022/06/07 | 1228 | macros/latex/contrib/l3packages/l3keys2e.ins
-2022/06/07 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/06/07 | 1205 | macros/latex/contrib/csassignments/README.md
2022/06/07 | 1191 | macros/latex/contrib/l3packages/xfp.ins
2022/06/07 | 11876 | systems/texlive/tlnet/archive/fancyvrb.r63496.tar.xz
-2022/06/07 | 1181125 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/06/07 | 11761 | macros/latex/contrib/l3packages/l3keys2e.dtx
2022/06/07 | 117242 | macros/latex/contrib/csassignments.zip
-2022/06/07 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/06/07 | 1156465 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/06/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/06/07 | 1130824 | systems/texlive/tlnet/archive/hvextern.doc.r63497.tar.xz
-2022/06/07 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/06/07 | 112589 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2022/06/07 | 11144 | systems/texlive/tlnet/archive/pwebmac.doc.r63501.tar.xz
-2022/06/07 | 109736 | systems/texlive/tlnet/archive/texlive-scripts.r63494.tar.xz
-2022/06/07 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/06/07 | 10812 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
-2022/06/07 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/06/07 | 104557 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/06/07 | 103660 | macros/latex/contrib/siunitx/siunitx-unit.dtx
-2022/06/07 | 103335 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/06/07 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/06/07 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2022/06/07 | 1010644 | systems/texlive/tlnet/archive/xepersian.doc.r63500.tar.xz
2022/06/07 | 100964 | macros/latex/contrib/l3packages/xtemplate.dtx
-2022/06/07 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/06/06 | 948348 | systems/texlive/tlnet/archive/tex4ht.r63489.tar.xz
2022/06/06 | 882541 | macros/latex/required/babel/base/babel.pdf
2022/06/06 | 822759 | macros/latex/required/babel/base/locale.zip
@@ -319,7 +829,6 @@
2022/06/06 | 7663 | macros/latex/required/babel/base/babel.ins
2022/06/06 | 747280 | macros/latex/required/babel/base/babel.dtx
2022/06/06 | 742764 | macros/latex/contrib/cooking-units/cooking-units.pdf
-2022/06/06 | 7313 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/06/06 | 7256 | systems/texlive/tlnet/archive/pyluatex.r63491.tar.xz
2022/06/06 | 71644 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
2022/06/06 | 69720 | systems/texlive/tlnet/archive/latexindent.r63492.tar.xz
@@ -570,9 +1079,14 @@
2022/06/04 | 1233164 | language/chinese/ctex.zip
2022/06/04 | 1154937 | language/chinese/ctex/ctex.pdf
2022/06/03 | 590912 | systems/texlive/tlnet/archive/l3kernel.source.r63476.tar.xz
+2022/06/03 | 50755 | macros/latex/contrib/pxcjkcat/pxcjkcat.tex
+2022/06/03 | 40123 | macros/latex/contrib/pxcjkcat/pxcjkcat.sty
+2022/06/03 | 3204 | macros/latex/contrib/pxcjkcat/README.md
2022/06/03 | 263988 | systems/texlive/tlnet/archive/thmtools.doc.r63477.tar.xz
2022/06/03 | 20660 | systems/texlive/tlnet/archive/thmtools.source.r63477.tar.xz
+2022/06/03 | 197668 | macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
2022/06/03 | 172088 | systems/texlive/tlnet/archive/l3kernel.r63476.tar.xz
+2022/06/03 | 1658 | macros/latex/contrib/pxcjkcat/README-ja.md
2022/06/03 | 13324 | systems/texlive/tlnet/archive/thmtools.r63477.tar.xz
2022/06/03 | 11616896 | systems/texlive/tlnet/archive/l3kernel.doc.r63476.tar.xz
2022/06/02 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
@@ -870,69 +1384,3 @@
2022/06/02 | 106428 | macros/latex/contrib/l3kernel/l3expan.dtx
2022/06/02 | 106052 | systems/texlive/tlnet/archive/lua-ul.doc.r63469.tar.xz
2022/06/02 | 105029 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
-2022/06/01 | 9520 | systems/texlive/tlnet/archive/sidenotesplus.source.r63458.tar.xz
-2022/06/01 | 95161 | macros/latex/contrib/tabularray/tabularray.tex
-2022/06/01 | 950 | macros/latex/contrib/thmtools/source/thmdef-mdframed.dtx
-2022/06/01 | 94017 | macros/latex/contrib/create-theorem/create-theorem.sty
-2022/06/01 | 8580 | macros/latex/contrib/thmtools/source/thm-patch.dtx
-2022/06/01 | 857939 | macros/latex/contrib/tabularray/tabularray.pdf
-2022/06/01 | 795566 | macros/generic/markdown/markdown.pdf
-2022/06/01 | 792362 | macros/latex/contrib/tabularray.zip
-2022/06/01 | 7911 | macros/latex/contrib/thmtools/source/thm-listof.dtx
-2022/06/01 | 7812 | systems/texlive/tlnet/archive/schwalbe-chess.r63457.tar.xz
-2022/06/01 | 75 | macros/generic/markdown/examples/scientists.csv
-2022/06/01 | 736 | macros/latex/contrib/thmtools/README.md
-2022/06/01 | 686787 | macros/generic/markdown/markdown.html
-2022/06/01 | 676 | macros/latex/contrib/create-theorem/README.md
-2022/06/01 | 6648 | systems/texlive/tlnet/archive/collection-latexextra.r63456.tar.xz
-2022/06/01 | 65492 | systems/texlive/tlnet/archive/siunitx.r63459.tar.xz
-2022/06/01 | 623407 | macros/generic/markdown/markdown.dtx
-2022/06/01 | 5639 | macros/latex/contrib/thmtools/source/unique.dtx
-2022/06/01 | 5520 | systems/texlive/tlnet/archive/sidenotesplus.r63458.tar.xz
-2022/06/01 | 4679 | macros/latex/contrib/thmtools/source/thm-amsthm.dtx
-2022/06/01 | 4534 | macros/latex/contrib/thmtools/source/thmdef-shaded.dtx
-2022/06/01 | 4530 | macros/generic/markdown/markdown.css
-2022/06/01 | 4485 | macros/generic/markdown/docstrip.cfg
-2022/06/01 | 4454 | macros/latex/contrib/thmtools/source/aliasctr.dtx
-2022/06/01 | 44526 | macros/latex/contrib/thmtools/doc/thmtools-manual.tex
-2022/06/01 | 401192 | systems/texlive/tlnet/archive/sidenotesplus.doc.r63458.tar.xz
-2022/06/01 | 3526 | macros/latex/contrib/thmtools/source/thm-ntheorem.dtx
-2022/06/01 | 3240 | macros/latex/contrib/thmtools/source/thm-autoref.dtx
-2022/06/01 | 31 | macros/latex/contrib/thmtools/doc/VERSION.tex
-2022/06/01 | 31 | macros/generic/markdown/VERSION
-2022/06/01 | 3129 | macros/generic/markdown/examples/example.md
-2022/06/01 | 296405 | macros/latex/contrib/thmtools.zip
-2022/06/01 | 2779 | macros/latex/contrib/thmtools/source/thm-llncs.dtx
-2022/06/01 | 25606 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
-2022/06/01 | 250299 | macros/latex/contrib/thmtools/doc/thmtools-manual.pdf
-2022/06/01 | 2500 | macros/latex/contrib/thmtools/source/thmtools.ins
-2022/06/01 | 243907 | macros/latex/contrib/tabularray/tabularray.sty
-2022/06/01 | 22371 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
-2022/06/01 | 2117 | macros/latex/contrib/thmtools/source/thmtools.dtx
-2022/06/01 | 2046 | macros/latex/contrib/thmtools/source/parseargs.dtx
-2022/06/01 | 201252 | systems/texlive/tlnet/archive/schwalbe-chess.doc.r63457.tar.xz
-2022/06/01 | 19106 | macros/latex/contrib/thmtools/doc/COPYING
-2022/06/01 | 19106 | macros/latex/contrib/create-theorem/LICENSE
-2022/06/01 | 1888 | systems/texlive/tlnet/archive/multifootnote.r63456.tar.xz
-2022/06/01 | 1682 | macros/generic/markdown/examples/context-mkiv.tex
-2022/06/01 | 16788 | macros/generic/markdown/README.md
-2022/06/01 | 1639 | macros/generic/markdown/examples/latex.tex
-2022/06/01 | 16383 | macros/latex/contrib/thmtools/source/thm-kv.dtx
-2022/06/01 | 16120 | systems/texlive/tlnet/archive/schwalbe-chess.source.r63457.tar.xz
-2022/06/01 | 1531 | macros/latex/contrib/thmtools/source/thm-beamer.dtx
-2022/06/01 | 1491 | macros/generic/markdown/examples/context-mkii.tex
-2022/06/01 | 147990 | macros/latex/contrib/create-theorem.zip
-2022/06/01 | 1435 | macros/latex/contrib/thmtools/doc/changes.txt
-2022/06/01 | 140951 | macros/generic/markdown/markdown.png
-2022/06/01 | 1382 | macros/latex/contrib/thmtools/source/thmdef-thmbox.dtx
-2022/06/01 | 13481144 | fonts/gentium-tug.zip
-2022/06/01 | 1333 | macros/generic/markdown/markdown.ins
-2022/06/01 | 12 | macros/latex/contrib/create-theorem/DEPENDS.txt
-2022/06/01 | 125733 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
-2022/06/01 | 1239608 | systems/texlive/tlnet/archive/siunitx.doc.r63459.tar.xz
-2022/06/01 | 12064 | macros/latex/contrib/thmtools/source/thm-restate.dtx
-2022/06/01 | 118242 | macros/luatex/latex/lua-ul.zip
-2022/06/01 | 116448 | systems/texlive/tlnet/archive/siunitx.source.r63459.tar.xz
-2022/06/01 | 1158886 | install/macros/generic/markdown.tds.zip
-2022/06/01 | 1098246 | macros/generic/markdown.zip
-2022/06/01 | 103052 | systems/texlive/tlnet/archive/multifootnote.doc.r63456.tar.xz
diff --git a/graphics/pgf/contrib/xebaposter/README b/graphics/pgf/contrib/xebaposter/README
index d9c3e16671..272437c0ad 100644
--- a/graphics/pgf/contrib/xebaposter/README
+++ b/graphics/pgf/contrib/xebaposter/README
@@ -1,6 +1,6 @@
_____________________
The xebaposter class
-v2.51
+v2.53
The class is designed for making an academic poster. This work is a fork of
baposter by Brian Amberg and Reinhold Kainhofer available at
@@ -9,12 +9,12 @@ http://www.brian-amberg.de/uni/poster/.
The class could be used with both latin and persian posters.
For more information, please see the documentation.
-Current version release date: 2016/09/12
+Current version release date: 2022/06/08
___________________
Seiied-Mohammad-Javad Razvian
javadr@gmail.com
-Copyright © 2015-2016
+Copyright © 2015-2022
It may be distributed and/or modified under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
this license is at: http://www.latex-project.org/lppl.txt
diff --git a/graphics/pgf/contrib/xebaposter/images/docs-boxshape.pdf b/graphics/pgf/contrib/xebaposter/doc/images/docs-boxshape.pdf
index c086e2fc70..c086e2fc70 100644
--- a/graphics/pgf/contrib/xebaposter/images/docs-boxshape.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/docs-boxshape.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/docs-headerborder.pdf b/graphics/pgf/contrib/xebaposter/doc/images/docs-headerborder.pdf
index d2225878a1..d2225878a1 100644
--- a/graphics/pgf/contrib/xebaposter/images/docs-headerborder.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/docs-headerborder.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/docs-headershape.pdf b/graphics/pgf/contrib/xebaposter/doc/images/docs-headershape.pdf
index cf58cdbe93..cf58cdbe93 100644
--- a/graphics/pgf/contrib/xebaposter/images/docs-headershape.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/docs-headershape.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/docs-shade.pdf b/graphics/pgf/contrib/xebaposter/doc/images/docs-shade.pdf
index 65809a982f..65809a982f 100644
--- a/graphics/pgf/contrib/xebaposter/images/docs-shade.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/docs-shade.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/doc/images/fig1.pdf b/graphics/pgf/contrib/xebaposter/doc/images/fig1.pdf
new file mode 100644
index 0000000000..51c3e9e4dd
--- /dev/null
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig1.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/doc/images/fig2.png b/graphics/pgf/contrib/xebaposter/doc/images/fig2.png
new file mode 100644
index 0000000000..2d4be8289a
--- /dev/null
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig2.png
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/fig3.pdf b/graphics/pgf/contrib/xebaposter/doc/images/fig3.pdf
index 30a883b7a3..30a883b7a3 100644
--- a/graphics/pgf/contrib/xebaposter/images/fig3.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/fig4.pdf b/graphics/pgf/contrib/xebaposter/doc/images/fig4.pdf
index d3f10233ad..d3f10233ad 100644
--- a/graphics/pgf/contrib/xebaposter/images/fig4.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig4.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/fig5.pdf b/graphics/pgf/contrib/xebaposter/doc/images/fig5.pdf
index 324dd181d3..324dd181d3 100644
--- a/graphics/pgf/contrib/xebaposter/images/fig5.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig5.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/fig6.pdf b/graphics/pgf/contrib/xebaposter/doc/images/fig6.pdf
index 5c9ab57864..5c9ab57864 100644
--- a/graphics/pgf/contrib/xebaposter/images/fig6.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/images/fig6.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/logo.png b/graphics/pgf/contrib/xebaposter/doc/images/logo.png
index 9dd5d04fbf..9dd5d04fbf 100644
--- a/graphics/pgf/contrib/xebaposter/images/logo.png
+++ b/graphics/pgf/contrib/xebaposter/doc/images/logo.png
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/images/shariflogo.png b/graphics/pgf/contrib/xebaposter/doc/images/shariflogo.png
index 1f8f80c827..1f8f80c827 100644
--- a/graphics/pgf/contrib/xebaposter/images/shariflogo.png
+++ b/graphics/pgf/contrib/xebaposter/doc/images/shariflogo.png
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/poster-fa.pdf b/graphics/pgf/contrib/xebaposter/doc/poster-fa.pdf
index 945facee04..139b4b069f 100644
--- a/graphics/pgf/contrib/xebaposter/poster-fa.pdf
+++ b/graphics/pgf/contrib/xebaposter/doc/poster-fa.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/poster-fa.tex b/graphics/pgf/contrib/xebaposter/doc/poster-fa.tex
index ab165791d4..abfad6cc88 100644
--- a/graphics/pgf/contrib/xebaposter/poster-fa.tex
+++ b/graphics/pgf/contrib/xebaposter/doc/poster-fa.tex
@@ -98,9 +98,7 @@
{\normalsize\texttt{\lr{name1@mail.org, name2@mail.edu, name3@mail.com}}}}
% University logo
{
-\begin{tabular}{r}
- \includegraphics[height=0.07 \textheight]{shariflogo}\\
-\end{tabular}
+ \includegraphics[height=0.07 \textheight]{shariflogo}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/graphics/pgf/contrib/xebaposter/doc/poster.pdf b/graphics/pgf/contrib/xebaposter/doc/poster.pdf
new file mode 100644
index 0000000000..106c657bcd
--- /dev/null
+++ b/graphics/pgf/contrib/xebaposter/doc/poster.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/doc/poster.tex b/graphics/pgf/contrib/xebaposter/doc/poster.tex
new file mode 100644
index 0000000000..fc7877d653
--- /dev/null
+++ b/graphics/pgf/contrib/xebaposter/doc/poster.tex
@@ -0,0 +1,349 @@
+\documentclass[portrait]{xebaposter}
+
+%\usepackage[vlined]{algorithm2e}
+\usepackage{times}
+\usepackage{calc}
+\usepackage{url}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{relsize}
+\usepackage{multirow}
+\usepackage{booktabs}
+\usepackage{graphicx}
+\usepackage{multicol}
+%\usepackage[T1]{fontenc}
+\usepackage{ae}
+\usepackage{wrapfig}
+\graphicspath{{images/}}
+
+%\usepackage{geometry}
+%\geometry{papersize={90cm,170cm},verbose=ture,reset}
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%% Some math symbols used in the text
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Format
+% \newcommand{\RotUP}[1]{\begin{sideways}#1\end{sideways}}
+
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Multicol Settings
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \setlength{\columnsep}{0.7em}
+% \setlength{\columnseprule}{0mm}
+
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % Save space in lists. Use this after the opening of the list
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \newcommand{\compresslist}{%
+ \setlength{\itemsep}{1pt}%
+ \setlength{\parskip}{0pt}%
+ \setlength{\parsep}{0pt}%
+ }
+
+%% Begin of Document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Here starts the poster
+%%---------------------------------------------------------------------------
+%% Format it to your taste with the options
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \definecolor{silver}{cmyk}{0,0,0,0.3}
+ \definecolor{yellow}{cmyk}{0,0,0.9,0.0}
+ \definecolor{reddishyellow}{cmyk}{0,0.22,1.0,0.0}
+ \definecolor{black}{cmyk}{0,0,0.0,1.0}
+ \definecolor{darkYellow}{cmyk}{0,0,1.0,0.5}
+ \definecolor{darkSilver}{cmyk}{0,0,0,0.1}
+
+ \definecolor{lightyellow}{cmyk}{0,0,0.3,0.0}
+ \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0}
+ \definecolor{lighteryellow}{cmyk}{0,0,0.1,0.0}
+ \definecolor{lightestyellow}{cmyk}{0,0,0.05,0.0}
+
+ \begin{poster}%
+ % Poster Options
+ {
+ eyecatcher=false,
+ % Color style
+ bgColorOne=darkSilver,
+ bgColorTwo=lighteryellow,
+ borderColor=reddishyellow,
+ headerColorOne=yellow,
+ headerColorTwo=reddishyellow,
+ headerFontColor=black,
+ boxColorOne=lightyellow,
+ boxColorTwo=darkSilver,
+ % Format of textbox
+ textborder=faded,
+ % Format of text header
+ headerborder=open,
+ headerheight=0.1\textheight,
+ headershape=rectangle,
+ headershade=shadetb,
+% headerfont=\Large, %Sans Serif
+ boxshade=shadeLR,
+% background=plain,
+ linewidth=2pt,
+% grid=true,
+ }
+ % Eye Catcher
+ {
+ \includegraphics[width=0.08\linewidth]{logo}
+% \includegraphics[width=0.08\linewidth]{track_frame_00450_06}
+% \includegraphics[width=0.08\linewidth]{track_frame_04999_06}
+ }
+ % Title
+ {Parallel Nonlinear Analysis of Weighted Brain's Gray and White Matter Images for Alzheimer's Dementia Diagnosis}
+ % Authors
+ {\large Seiied-Mohammad-Javad~Razavian, Meysam Torabi, and Kio Kim \\%[1em]
+ {\normalsize\texttt{javad@cs.sharif.edu, torabi@berkeley.edu, kio.kim@ucsf.edu}}}
+ % University logo
+ {
+\begin{tabular}{r}
+ \includegraphics[height=0.07 \textheight]{shariflogo}\\
+\end{tabular}
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Now define the boxes that make up the poster
+%%%---------------------------------------------------------------------------
+%%% Each box has a name and can be placed absolutely or relatively.
+%%% The only inconvenience is that you can only specify a relative position
+%%% towards an already declared box. So if you have a box attached to the
+%%% bottom, one to the top and a third one which should be inbetween, you
+%%% have to specify the top and bottom boxes before you specify the middle
+%%% box.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \headerbox{Abstract}{name=abstract,column=0,row=0,span=1}{
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%We are proposing a novel approach using T1-weighted and T2-weighted Magnetic Resonance Images (MRI's) of brain. Since T1-weighted images and T2-weighted images have inherent physical differences, we extracted some specific features from each. Then the variations of the relevant eigenvalues of the extracted features were tracked to pick up the most informative ones. The final features were assigned to two parallel systems to be nonlinearly categorized. The dataset includes 60 T1-weighted images and 60 T2-weighted images of normal and abnormal cases.
+% }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Introduction}{name=introduction,column=0,row=0}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%AD disease destroys the nervous system and defects the temporal lobe and parietal lobe of the brain.
+
+%\begin{wrapfigure}[10]{r}{.72\textwidth}
+%\centering
+%{\includegraphics[scale=.9]{Maghz}}
+%\end{wrapfigure}
+We introduce a novel method for Alzheimer's dementia diagnosis.
+Our focus is on analysis of MRI because of its high resolution in brain tissues.% which includes normal and abnormal cases.
+We believe that the tissue analysis can be a reliable tool to diagnose various diseases. The novelty of this work is using both T1 and T2 images simultaneously after they are optimally weighted.
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Phase II: core processing}{name=phase2,column=1,span=1}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+We extracted features which can capture the properties of the brain tissue using Gray-Level Co-occurrence Matrix (GLCM) which helps scan the tissue in order to give a sense of how the relationship between different pixels of an image is.% \cite{BeDeTo},
+%\textbf{Neighborhood definition and calculating GLC matrix}%
+
+\begin{wrapfigure}{r}{.6\textwidth}
+\centering
+ \vspace{-10pt}
+{\includegraphics[scale=.5]{fig3}}
+ \vspace{-20pt}
+%\caption{\scriptsize Right figure shows the definition of neighborhood for the central point in T1 images while the left figure shows the definition of the neighborhood for T2. As it can be obviously seen in the figure, the neighborhood defined for T1 covers more detail.}
+\label{fig3}
+\end{wrapfigure}
+
+Considering the fact that AD defects the white and gray regions of brain more than its black and marginal regions, and also since T1-weighted has more medical data of white and gray regions than T2-weighted images, we believe that T1 images have more data than T2 images, thus we define neighborhood of T1 and T2 differently.
+
+%\textbf{Extraction of statistical features from GLC matrices}
+The desired Statistical features are as follows:
+1) Energy,
+2) Contrast,
+3) Homogeneity, and
+4) Correlation
+
+%To calculate correlation, two following parameters initially are calculated:
+%in which elements of GLC matrix are shown with the symbol C(i, j) and the number of gray-levels with N.
+
+Correlation in the GLC matrix:
+\begin{align*}
+f_1 &= \frac{HXY-HXY1}{max\{HX,HY\}}\\
+f_2 &= \sqrt{1-\exp\{-2(HXY2-HXY)\}}
+\end{align*}
+%in which, $HX$ and $HY$ are entropy of $C_x$ and $C_y$ respectively, and $HXY$, $HXY1$ and $HXY2$ are defined as follows, respectively:
+{\scriptsize
+\centerline{\begin{minipage}{.95\textwidth}
+C(i, j) is an element of GLC matrix and N is number of gray-levels.
+\end{minipage}}
+\vspace{-.5mm}
+$$\begin{array}{l}
+ C_x(i) =\sum_{j=1}^N C(i,j), \quad C_y(i)=\sum_{i=1}^N C(i,j)\\
+ HXY = -\sum_{i=1}^N\sum_{j=1}^N C(i,j) \log\{C(i,j)\}\\
+ HXY1 = -\sum_{i=1}^N\sum_{j=1}^N C(i,j) \log\{C_x(i)\times C_y(j)\}\\
+ HXY2 = -\sum_{i=1}^N\sum_{j=1}^N C_x(i)\times C_y(j) \log\{C_x(i)\times C_y(j)\}\\
+\end{array}$$
+}
+
+4*16 features from T1 and 4*8 features from T2 are extracted.
+}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \headerbox{Phase III: Feature Analysis}{name=phase3,column=2,span=1,row=0}{
+ \headerbox{Feature Extraction}{name=phase3,column=2,span=1,row=0}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+We reduce two vectors, one for T1 images and another one for T2 images that using PCA. % for extracting the main components.
+%Our simulation results are demonstrated in Figure~\ref{fig4}, showing the last 20 eigenvalues of both T1 images and T2 images. Other eigenvalues are not displayed, since, as the figure implies, they are almost zero. Thus,
+We chose 19 first eigenvalues with the largest values for T1 image, and also 17 eigenvalues with the largest values for T2 images.
+
+%\centering
+\centerline{\includegraphics[scale=1.1,height=7cm]{fig4}}
+%\caption{Trends of changes in eigenvalues of two input vectors.}
+%\label{fig4}
+%\end{figure}
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \headerbox{Phase IV: Discrimination }{name=phase4,column=2,span=1,below=phase3}{
+ \headerbox{Discrimination }{name=phase4,column=2,span=1,below=phase3}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Two feed-forward neural networks are tuned and used with 19 and 17 inputs for analysis of T1 and T2 images respectively. Both networks have a hidden layer with 10 nodes equipped with Sigmoid transfer function.
+
+We multiply the first neural network's output by weighting factor 0.63, and also multiply the second neural network's output by weighting factor 0.37, that were initialized and determined during the training of the classifier system.
+
+
+}
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Results }{name=results,column=1,span=2,below=phase2}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{multicols}{2}
+In order to give a more clear measure of the performance of the classifier system, consisting of two parallel neural networks, the right-top figure illustrates an ROC graph.
+
+However, higher accuracies in separation of training data can cause a better result in our database, but this increases the number of layers and nodes of the neural networks which may lead to overtraining of the system and thus, it may reduce the classification accuracy of test images. Therefore, we believe that the response shown here is an optimal one.
+
+%We aware of similar works of other researchers (e.g. \cite{WaRoCoSpBaGaDoChSe,FrFo}) in which they obtained better results, but We try to increase the speed of process to have a real-time classifier system.
+
+In the future research, we try to, in addition
+to improving the diagnosis of AD, produce initially independent features in
+order to increase the speed of process to have a real-time
+classifier system.
+
+\centerline{\includegraphics[scale=.7]{fig6}}
+%\caption{An ROC graph corresponding to classifier's responses shows the accuracy of the proposed AD diagnosis system.}
+\centerline{\includegraphics[scale=.7]{fig5}}
+%\caption{The final result of the AD diagnosis system.}
+
+\end{multicols}
+}
+
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \headerbox{Related Works}{name=relatedworks,column=0,below=introduction}{
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%A review of the works done during the last 20 years :
+%\begin{itemize}
+%\compresslist
+% \item brain atrophy %\cite{WaRoCoSpBaGaDoChSe}
+% \item number and size of senile plaques in the brain %\cite{HaHoDe}
+% \item deformation of the brain structure %\cite{MaPe}
+% \item bio-signal processing %\cite{HaPeGaMo}.
+% \item medical image processing and analysis
+%\begin{itemize}
+% \compresslist
+% \item microscopic methods
+% \item macroscopic methods
+% \end{itemize}
+%\end{itemize}
+%{\scriptsize (see paper for references.)}
+%}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Brain Images Dataset}{name=imagedataset,column=0,span=1,below=introduction}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{itemize}
+\compresslist
+ \item 120 MRI's (including T1 and T2 images) for different cross-sections of the brain
+ \item 52 images belong to the normal control group while the rest belongs to AD patients.
+ \item Half of the images is T1 and the other half is T2.
+ \item 60 percent of the images is used for training, and the rest is reserved to test and control the algorithm.
+ \item Images dataset: The Whole Brain Atlas. Available on \url{http://www.med.harvard.edu/AANLIB/home.html}
+\end{itemize}
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Disease Diagnosis Method}{name=ddm,column=0,span=1,below=imagedataset}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\centerline{\includegraphics[scale=.7,width=.9\textwidth,height=6cm]{fig1}}
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Phase I: preprocessing}{name=phase1,column=0,span=1,below=ddm}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Removing irrelevant information:% that does not help the algorithm detect AD:
+\begin{enumerate}
+\compresslist
+ \item marginal parts of the images.
+ \item background.
+ \item other parts of brain, e.g. parts of eyes.
+\end{enumerate}
+%\subsubsection*{Registration}
+We registered each image on its corresponding image as precisely as possible using 10 landmarks. The landmarks are located and placed on those points of the brain which are geometrically and anatomically more important. %\cite{YuXiBeLiZhGuDeJuWo}.
+%\cite{ToMoVaRaDeRaTaFa}.
+%(Figure~\ref{fig2}).
+Registration includes %two stages of interpolation:
+1) pixel position interpolation and 2) gray-level interpolation. For performing interpolation process, radial basis function $r^2 \log r^2$ is used. %\cite{ToMoVaRaDeRaTaFa}.
+The affine terms have not been used in the proposed algorithm, since the results were already satisfactory.
+
+\centerline{\includegraphics[scale=.34]{fig2}}
+\centerline{\begin{minipage}{.8\textwidth}
+\scriptsize Two samples of cross-sections of brain which are marked with 10 landmarks.
+\end{minipage}}
+%{\scriptsize Two samples of cross-sections of brain which are marked with 10 landmarks.}
+%\label{fig2}
+
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \headerbox{Funding}{name=funding,column=1,span=2,above=bottom}{
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This work is entirely done at Sharif University of Technology, Tehran, Iran.
+% }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{References}{name=references,column=1,span=2,below=results}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \smaller
+
+ \bibliographystyle{ieee}
+ \renewcommand{\section}[2]{\vskip 0.05em}
+ \begin{thebibliography}{1}\itemsep=-0.01em
+ \setlength{\baselineskip}{0.4em}
+
+% \bibitem{amberg07:nicp}
+% B.~Amberg, A.~Blake, T.~Vetter
+% \newblock On Compositional Image Alignment with an Application to Activce Appearance Models
+% \newblock In {\em CVPR'09}, 2009.
+ \bibitem{}
+ M. Torabi, H. Moradzadeh, R. Vaziri, S. M. J. Razavian, R. Dehestani
+ Ardekani, M. Rahmandoost, A. Taalimi, and E. Fatemizadeh, ``Development
+ of Alzheimer's Disease Recognition Using Semiautomatic
+ Analysis of Statistical Parameters Based on Frequency Characteristics
+ of Medical Images,'' in \emph{Proc. of IEEE Int. Conf. Signal Proc. \&
+ Communication}, Nov 2007, pp. 868--871.
+ \bibitem{}
+ M. Torabi, R. Dehestani Ardekani, and E. Fatemizadeh, ``Discriminationnation
+ between Alzheimer's Disease and Control Group in MR-Images Based
+ on Texture Analysis Using Artificial Neural Network,''
+ in \emph{Proc. of Int. Conf. Bio. \& Pharm. Eng.}, Dec 2006, pp. 79--83.
+
+ \end{thebibliography}
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \headerbox{Acknowledgment}{name=ack,column=1,span=2,below=references}{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ The main concept of this work is inspired by the ideas of the philosopher Majid Jafari-Tabar.
+}
+
+\end{poster}%
+%
+\end{document}
diff --git a/graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdf b/graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdf
new file mode 100644
index 0000000000..23ee22f693
--- /dev/null
+++ b/graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/xebaposter/xebaposter-doc.tex b/graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.tex
index d70bdf1d8f..a6fdb2eb54 100644
--- a/graphics/pgf/contrib/xebaposter/xebaposter-doc.tex
+++ b/graphics/pgf/contrib/xebaposter/doc/xebaposter-doc.tex
@@ -28,7 +28,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Some math symbols used in the text
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Format
+ % Format
% \newcommand{\RotUP}[1]{\begin{sideways}#1\end{sideways}}
@@ -61,7 +61,7 @@
%% \end{bidi@tikzpicture}%
% \end{tikzpicture}%
% \makeatother
-%}
+%}
%\AtBeginShipoutInit
%\AtBeginShipout{\AtBeginShipoutAddToBox{\back}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -92,7 +92,7 @@
headerColorOne=yellow,
headerColorTwo=reddishyellow,
headerFontColor=cyan,
- boxColorOne=lightyellow,
+ boxColorOne=lightyellow,
boxColorTwo=lighteryellow,
% Format of textbox
textborder=rounded,
@@ -120,13 +120,11 @@
\\%[1em]
{\normalsize\texttt{\lr{javadr@parsilatex.com, reinhold@kainhofer.com, baposter@brian-amberg.de}}
\\
-نسخه $2.51$، $22$ شهریور $1395$، $12$ سپتامبر $2016$
+نسخه $2.53$، $18$ خرداد $1401$، $8$ ژوئن $2022$
}}
% University logo
{
-\begin{tabular}{r}
- \includegraphics[height=0.05 \textheight]{logo}\\
-\end{tabular}
+ \includegraphics[height=0.05\textheight]{logo}
}
% \end{poster}
% \end{document}
@@ -134,10 +132,10 @@
%%% Now define the boxes that make up the poster
%%%---------------------------------------------------------------------------
%%% Each box has a name and can be placed absolutely or relatively.
-%%% The only inconvenience is that you can only specify a relative position
-%%% towards an already declared box. So if you have a box attached to the
-%%% bottom, one to the top and a third one which should be inbetween, you
-%%% have to specify the top and bottom boxes before you specify the middle
+%%% The only inconvenience is that you can only specify a relative position
+%%% towards an already declared box. So if you have a box attached to the
+%%% bottom, one to the top and a third one which should be inbetween, you
+%%% have to specify the top and bottom boxes before you specify the middle
%%% box.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -146,27 +144,27 @@
headershade=plain]%
{\textxecolor{red}{مقدمه}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-همانطوری Ú©Ù‡ می‌دانید یکی از نیازهای جامعه علمی طراحی پوستر است زیرا Ú©Ù‡ در برخی Ú©Ù†Ùرانس‌ها نویسنده مقاله تنها مجاز به ارائه پوستر
+همانطوری Ú©Ù‡ می‌دانید یکی از نیازهای جامعه علمی طراحی پوستر است زیرا Ú©Ù‡ در برخی Ú©Ù†Ùرانس‌ها نویسنده مقاله تنها مجاز به ارائه پوستر
می‌گردد. در این راستا یک کلاس بسیار ساده به نام \texttt{a0poster} وجود دارد که در عین سادگی کار با آن، قابلیت‌های زیادی ندارد.
-از طرÙÛŒ دیگر کلاس‌های زیبایی برای تولید پوستر توسط اÙرادی دیگر طراحی شده است
+از طرÙÛŒ دیگر کلاس‌های زیبایی برای تولید پوستر توسط اÙرادی دیگر طراحی شده است
از جمله \texttt{baposter}\footnote{\url{http://www.brian-amberg.de/uni/poster/}}،
\texttt{beamerposter} Ùˆ \texttt{tikzposter}.
-متاسÙانه این کلاس‌ها با متون راست به چپ، خصوصاً Ùارسی کار نمی‌کنند لذا نیاز به کلاسی Ú©Ù‡ بتوان با آن پوستر Ùارسی تولید کرد
+متاسÙانه این کلاس‌ها با متون راست به چپ، خصوصاً Ùارسی کار نمی‌کنند لذا نیاز به کلاسی Ú©Ù‡ بتوان با آن پوستر Ùارسی تولید کرد
ضروری می‌نمود. کلاس \texttt{xebaposter}% --بخوانید زیباپوستر--%
-%از آنجایی که کلاس \texttt{baposter}
-%بر پایهٔ \texttt{tikz} طراحی شده است Ùˆ جناب آقای دکتر ÙˆÙا خلیقی خالق
-%بسته‌های \texttt{bidi} و \texttt{xepersian} امکان پشتیبانی از متون
-%راست به Ú†Ù¾ را در تصاویر تولیدی بسته \texttt{tikz} Ùراهم آورده‌اند پس بدین سبب به سراغ این کلاس رÙته Ùˆ با تغییراتی در آن،
+%از آنجایی که کلاس \texttt{baposter}
+%بر پایهٔ \texttt{tikz} طراحی شده است Ùˆ جناب آقای دکتر ÙˆÙا خلیقی خالق
+%بسته‌های \texttt{bidi} و \texttt{xepersian} امکان پشتیبانی از متون
+%راست به Ú†Ù¾ را در تصاویر تولیدی بسته \texttt{tikz} Ùراهم آورده‌اند پس بدین سبب به سراغ این کلاس رÙته Ùˆ با تغییراتی در آن،
%این کلاس را با متون راست به Ú†Ù¾ خصوصا Ùارسی سازگار نموده Ùˆ نام \texttt{xebaposter} را بر آن برگزیدیم%
%\footnote{نگارنده ابتدا نام \lr{baposterRL} را انتخاب کرده بود Ù„Ú©Ù† با پیشنهاد دکتر محمود امین‌طوسی نام Ùعلی را برگزید.}
--بخوانید زیباپوستر--
- بر پایهٔ کلاس \texttt{baposter} با اÙزودن
-امکاناتی بدین منظور بنا نهاده شده است.
-%البته ناگÙته نماند Ú©Ù‡ پوسترهای تولیدی با بسته \texttt{beamerposter} زیبایی زاید الوصوÙÛŒ دارند Ù„Ú©Ù† به سبب اینکه بسته‌های
-%بایدی Ùˆ زی‌پرشین Ùعلا از بسته \texttt{beamer} پشتیبانی نمی‌کنند --آنهم به سبب وجود باگ‌هایی در موتور زی‌تک-- امکان
+ بر پایهٔ کلاس \texttt{baposter} با اÙزودن
+امکاناتی بدین منظور بنا نهاده شده است.
+%البته ناگÙته نماند Ú©Ù‡ پوسترهای تولیدی با بسته \texttt{beamerposter} زیبایی زاید الوصوÙÛŒ دارند Ù„Ú©Ù† به سبب اینکه بسته‌های
+%بایدی Ùˆ زی‌پرشین Ùعلا از بسته \texttt{beamer} پشتیبانی نمی‌کنند --آنهم به سبب وجود باگ‌هایی در موتور زی‌تک-- امکان
%Ùارسی‌سازی این بسته وجود نداشت پس بدین سبب تنها انتخابمان همان بسته اولیه \texttt{baposter} شد.
-متاسÙانه به سبب وجود باگ‌\footnote{گزارش شده در \url{http://qa.parsilatex.com/10715}
-Ùˆ \url{http://tex.stackexchange.com/questions/262877}} در موتور زی‌لاتک Ùعلاً ویژگی محوشدگی رنگ را
+متاسÙانه به سبب وجود باگ‌\footnote{گزارش شده در \url{http://qa.parsilatex.com/10715}
+Ùˆ \url{http://tex.stackexchange.com/questions/262877}} در موتور زی‌لاتک Ùعلاً ویژگی محوشدگی رنگ را
در حالت Ùارسی نخواهیم داشت.%
%\footnote{برای مشاهده
%نمونه‌هایی از این بسته‌ها می‌توانید به \url{http://www.latextemplates.com/cat/conference-posters} مراجعه نمایید.}
@@ -175,16 +173,16 @@ headershade=plain]%
\begin{posterbox}[name=posterparts,column=0,span=1,below=introduction,textborder=roundedleft]
{\textxecolor{blue}{اجزاء تشکیل دهنده زیباپوستر}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-زیباپوستر صÙحه پوستر را به دو بخش سرآمد Ùˆ محتوی تقسیم می‌کند. خود سرآمد نیز از سه بخش آی‌کچر، عنوان Ùˆ لوگوی موسسه تشکیل
-شده است Ú©Ù‡ بهمین ترتیب نمایش داده می‌شود. بخش آی‌کچر اختیاری است Ùˆ می‌توان با گزینه \texttt{eyecatcher} آن را Ùعال یا غیرÙعال
-نمود(\texttt{true,false}). در صورت عدم وجود آی‌کچر، عنوان و نام نویسنده‌(ها) راست چین خواهد شد و در صورت وجود آن به صورت
+زیباپوستر صÙحه پوستر را به دو بخش سرآمد Ùˆ محتوی تقسیم می‌کند. خود سرآمد نیز از سه بخش آی‌کچر، عنوان Ùˆ لوگوی موسسه تشکیل
+شده است Ú©Ù‡ بهمین ترتیب نمایش داده می‌شود. بخش آی‌کچر اختیاری است Ùˆ می‌توان با گزینه \texttt{eyecatcher} آن را Ùعال یا غیرÙعال
+نمود(\texttt{true,false}). در صورت عدم وجود آی‌کچر، عنوان و نام نویسنده‌(ها) راست چین خواهد شد و در صورت وجود آن به صورت
وسط‌چین در خواهند آمد.
-بخش محتوای پوستر شامل تعدادی جعبه \texttt{tikz} است که حاوی مطالب پوستر خواهند بود. این جعبه‌ها از طریق
-محیط \texttt{posterbox} تعری٠می‌شوند. تمامی این جعبه‌ها باید درون محیط \lr{poster} تعری٠شده باشند.
-هر جعبه نیز از دو بخش عنوان و محتوی تشکیل شده است. و نهایتا پشت زمینه پوستر است که در حال حاضر تنها می‌تواند یک رنگ ساده
-باشد و یا اصلا چیزی نباشد و یا به اختیار کاربر قرار گیرد تا برای مثال در صورت تمایل یک تصویر پشت زمینه قرار دهد --البته همانطور که
-در بالا اشاره گردید برخی قابلیت‌های محیط \lr{tikz} از جمله محوشدگی قابل استÙاده نمی‌باشند--.
+بخش محتوای پوستر شامل تعدادی جعبه \texttt{tikz} است که حاوی مطالب پوستر خواهند بود. این جعبه‌ها از طریق
+محیط \texttt{posterbox} تعری٠می‌شوند. تمامی این جعبه‌ها باید درون محیط \lr{poster} تعری٠شده باشند.
+هر جعبه نیز از دو بخش عنوان و محتوی تشکیل شده است. و نهایتا پشت زمینه پوستر است که در حال حاضر تنها می‌تواند یک رنگ ساده
+باشد و یا اصلا چیزی نباشد و یا به اختیار کاربر قرار گیرد تا برای مثال در صورت تمایل یک تصویر پشت زمینه قرار دهد --البته همانطور که
+در بالا اشاره گردید برخی قابلیت‌های محیط \lr{tikz} از جمله محوشدگی قابل استÙاده نمی‌باشند--.
\end{posterbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{posterbox}[name=setting,column=0,span=1,below=posterparts%
@@ -192,9 +190,9 @@ headershade=plain]%
{\textxecolor{brown}{تنظیمـــــــــات (عمومی یا محلی؟!)}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
کاربر می‌توانید تنظیماتی را که برای رنگ و حالت جعبه‌ها تعری٠شده است را به کلی یا جزئی تغییر دهد. بدین معنی که برای یکبار همان
-ابتدای تعری٠محیط \lr{poster} که این تنظیمات تعری٠می‌شوند بر تمامی جعبه‌ها قابل اعمال هستند لکن این امکان نیز وجود دارد
-که هر جعبه را به طور خاص شخصی‌سازی نمود. در این پوستر سعی شده تا با اتخاذ
-شخصی‌سازی هر جعبه گزینه‌های مختل٠موجود تا آنجا که ممکن است نشان داده شود.
+ابتدای تعری٠محیط \lr{poster} که این تنظیمات تعری٠می‌شوند بر تمامی جعبه‌ها قابل اعمال هستند لکن این امکان نیز وجود دارد
+که هر جعبه را به طور خاص شخصی‌سازی نمود. در این پوستر سعی شده تا با اتخاذ
+شخصی‌سازی هر جعبه گزینه‌های مختل٠موجود تا آنجا که ممکن است نشان داده شود.
\end{posterbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{posterbox}[name=usage,column=1,span=1,headershape=rounded,textborder=rectangle
@@ -206,12 +204,12 @@ headershade=plain]%
%\begin{poster}
% { key=value options }
-% { Eye Catcher, empty
+% { Eye Catcher, empty
% if option eyecatcher=false}
% { Poster Title }
% { Poster Authors }
% { University Logo}
-%
+%
% Definition of the boxes
%\end{poster}
%\end{verbatim}
@@ -244,19 +242,19 @@ headershade=plain]%
\item \texttt{persian/latin}:
چینش پوستر Ùارسی/لاتین.% پیش‌Ùرض پوستر لاتین است.
\item \texttt{portrait/landscape}: طرح‌بندی صÙحه
- \item \lr{\texttt{a0paper, a1paper, a2paper, a3paper, a4paper, archE, ...}}:
- سایز صÙحات از پیش تعریÙ‌شده‌؛ تمامی اندازه‌های قابل پیشتیبانی توسط کلاس را در جدول زیر مشاهد نمایید.
- \item \lr{\small\texttt{paperwidth=length, paperheight=length}}: تنظیم عرض/ارتÙاع صÙحه.
+ \item \lr{\texttt{a0paper, a1paper, a2paper, a3paper, a4paper, archE, ...}}:
+ سایز صÙحات از پیش تعریÙ‌شده‌؛ تمامی اندازه‌های قابل پیشتیبانی توسط کلاس را در جدول زیر مشاهد نمایید.
+ \item \lr{\small\texttt{paperwidth=length, paperheight=length}}: تنظیم عرض/ارتÙاع صÙحه.
این گزینه‌ها را بهیچوجه با اندازه‌های از پیش‌تعری٠شده بکار نبرید.
\item \texttt{margin=length}: حاشیه صÙحه
\item \lr{\texttt{fontscale=real number}}:
- مقیاس‌پذیری پوستر. پوستر با اندازه Ùونت‌های استاندارد روی یک کاغذ
+ مقیاس‌پذیری پوستر. پوستر با اندازه Ùونت‌های استاندارد روی یک کاغذ
\lr{\Verb|fontscale| $\times$ \Verb|papersize|}
- حروÙچینی می‌شود Ùˆ سپس به مقدار \lr{1/\Verb|fontscale|} نسبت به اندازه صÙحه‌ٔ انتخاب شده تغییر اندازه می‌دهد.
- این کار سبب می‌شود تا اندازه Ùونت‌ها ظاهری مناسب داشته باشد لذا اگر نیاز دارید تا حجم بیشتری را در یک صÙحه جا دهید
- اندازه \Verb|fontscale| را اÙزایش دهید تا Ùونت کوچکتری بدست آورید.% Ù„Ú©Ù† مطمئن شوید Ú©Ù‡ اندازه‌های خیلی Ú©ÙˆÚ†Ú©ÛŒ
-% را بکار نمی‌برید زیرا که در این صورت پوستر ظاهر نازیبایی خواهد داشت.
- مقدار پیش‌Ùرض \lr{\Verb|2.92|}.
+ حروÙچینی می‌شود Ùˆ سپس به مقدار \lr{1/\Verb|fontscale|} نسبت به اندازه صÙحه‌ٔ انتخاب شده تغییر اندازه می‌دهد.
+ این کار سبب می‌شود تا اندازه Ùونت‌ها ظاهری مناسب داشته باشد لذا اگر نیاز دارید تا حجم بیشتری را در یک صÙحه جا دهید
+ اندازه \Verb|fontscale| را اÙزایش دهید تا Ùونت کوچکتری بدست آورید.% Ù„Ú©Ù† مطمئن شوید Ú©Ù‡ اندازه‌های خیلی Ú©ÙˆÚ†Ú©ÛŒ
+% را بکار نمی‌برید زیرا که در این صورت پوستر ظاهر نازیبایی خواهد داشت.
+ مقدار پیش‌Ùرض \lr{\Verb|2.92|}.
\item \texttt{debug}: چاپ اطلاعات مرتبط با جعبه‌ها در خروجی. این گزینه‌ در اشکال‌زدایی بکار می‌آید.
\end{itemize}
@@ -289,7 +287,7 @@ headershade=plain]%
b4paper & 250mm & 353mm \\\hline
b5paper & 176mm & 250mm \\\hline
b6paper & 125mm & 176mm \\\hline
- ansiapaper & 8.5in & 11in \\\hline
+ ansiapaper & 8.5in & 11in \\\hline
ansibpaper & 11in & 17in \\\hline
ansicpaper & 17in & 22in \\\hline
ansidpaper & 22in & 34in \\\hline
@@ -309,9 +307,9 @@ headershade=plain]%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{multicols}{2}
\begin{itemize}
- \item \texttt{grid={true,false}}:
+ \item \texttt{grid={true,false}}:
نمایش یک شبکه در پس‌زمینهٔ پوستر. این گزینه در Ùاز طرح‌بندی پوستر خیلی کاربردی Ùˆ Ù…Ùید است با مقدار پیش‌Ùرض \Verb|no|.
- \item \texttt{columns=4}: تعداد ستون‌ها.
+ \item \texttt{columns=4}: تعداد ستون‌ها.
(در حالت اÙÙ‚ÛŒ Û´ Ùˆ در حالت عمودی مقدار پیش‌Ùرض Û³ است Ùˆ حداکثر تعداد ستون‌ها Û¶ است.)
\item \texttt{colspacing=length}: Ùاصله بین‌ستون‌های پوستر.
\item \texttt{headerheight=length}: ارتÙاع بخش سرآمد پوستر. مقدار پیش‌Ùرض آن {\verb|0.1\textheight|} است.
@@ -328,16 +326,16 @@ headershade=plain]%
\item \lr{\Verb|shadeLR|}:
پس‌زمینه با رنگ مدرج اÙÙ‚ÛŒ (از \lr{\Verb|bgColorOne|} به \lr{\Verb|bgColorTwo|}).
\item \lr{\Verb|shadeTB|}:
- پس‌زمینه با رنگ مدرج عمودی (از \lr{\Verb|bgColorOne|} به \lr{\Verb|bgColorTwo|}).
- \item \lr{\Verb|user|}:
- با دستور
+ پس‌زمینه با رنگ مدرج عمودی (از \lr{\Verb|bgColorOne|} به \lr{\Verb|bgColorTwo|}).
+ \item \lr{\Verb|user|}:
+ با دستور
\lr{\Verb|\textbackslash{}background\{...\}|} پس‌زمینهٔ شخصی خودتان را می‌توانید طراحی نمایید.
- \item \lr{\Verb|none|}:
+ \item \lr{\Verb|none|}:
بدون هیچ پس‌زمینه‌ای.
\end{enumerate}
\item \lr{\texttt{bgColorOne=pgf color name}}: رنگ اول پس‌زمینه. در حالت \texttt{plain} تنها همین رنگ بکار می‌رود.
\item \lr{\texttt{bgColorTwo=pgf color name}}: رنگ دوم پس‌زمینه.
- \item \lr{\texttt{eyecatcher={true,false}}}: تعیین می‌کند که آیا آی‌کچر در سرآمد پوستر به نمایش درآید یا نه.
+ \item \lr{\texttt{eyecatcher={true,false}}}: تعیین می‌کند که آیا آی‌کچر در سرآمد پوستر به نمایش درآید یا نه.
این تصویر در سمت راست عنوان قرار خواهد گرÙت.
\end{itemize}
%\end{multicols}
@@ -364,15 +362,15 @@ textborder=none
\vspace{-4mm}
\begin{itemize}
\item \lr{\texttt{name=box name}}: نام جعبه را مشخص می‌کند. این نام در تعیین موقعیت دیگر جعبه‌ها نسبت به آن بکار آید.
- \item \lr{\texttt{column=column number}}: مشخص می‌کند که جعبه در کدام ستون قرار گیرد
+ \item \lr{\texttt{column=column number}}: مشخص می‌کند که جعبه در کدام ستون قرار گیرد
--شماره ستون‌ها از صÙر شروع می‌شود--.
\item \lr{\Verb|row=row position|}:
- مشخص می‌کند Ú©Ù‡ جعبه در کدام ردی٠از مختصات صÙحه قرار گیرد؛ این مختصات عددی در بازهٔ صÙر تا یک است Ú©Ù‡ شماره گذاری
- آن از زیر عنوان پوستر آغاز شده Ùˆ در پایان صÙحه یک خواهد شد.% این گزینه برای آدرس دهی دقیق یک جعبه در صÙحه بکار می‌رود.
- \item \lr{\texttt{span=column span}}:
- مشخص می‌کند Ú©Ù‡ جعبه شامل چند ستون از پوستر خواهد بود --مقدار پیش‌Ùرض عدد یک است--.
+ مشخص می‌کند Ú©Ù‡ جعبه در کدام ردی٠از مختصات صÙحه قرار گیرد؛ این مختصات عددی در بازهٔ صÙر تا یک است Ú©Ù‡ شماره گذاری
+ آن از زیر عنوان پوستر آغاز شده Ùˆ در پایان صÙحه یک خواهد شد.% این گزینه برای آدرس دهی دقیق یک جعبه در صÙحه بکار می‌رود.
+ \item \lr{\texttt{span=column span}}:
+ مشخص می‌کند Ú©Ù‡ جعبه شامل چند ستون از پوستر خواهد بود --مقدار پیش‌Ùرض عدد یک است--.
\item \lr{\texttt{borderColor=pgf color name}}:
- رنگ مورد استÙاده در حاشیه جعبه‌ها.
+ رنگ مورد استÙاده در حاشیه جعبه‌ها.
\item \lr{\texttt{headerColorOne=pgf color}}:
رنگ اول عنوان جعبه.
\item \lr{\texttt{headerColorTwo=pgf color name}}:
@@ -380,7 +378,7 @@ textborder=none
\item \lr{\texttt{textborder=border type}}:
نوع حاشیه پایین جعبه را تعیین می‌کند که خود شامل انواع زیر است:
% \begin{enumerate*}[label=\arabic*)]
-% \item\Verb|none|
+% \item\Verb|none|
% \item\Verb|bars|
% \item\Verb|faded|
% \item\Verb|rectangle|
@@ -390,56 +388,56 @@ textborder=none
% \item\Verb|roundedright|
% \item\Verb|triangles|
% \item\Verb|coils|
-% \end{enumerate*}
-
+% \end{enumerate*}
+
\centerline{\includegraphics[width=.8\textwidth, ]{docs-boxshape}}
\item \lr{\texttt{headerborder=header border type}}:
آن بخشی از جعبه که پیرامون عنوان قرار می گیرد را تعیین می‌کند:
-
+
\centerline{\includegraphics[width=.8\textwidth, ]{docs-headerborder}}
\item \lr{\texttt{headershape=header border shape}}:
نوع آرایش عنوان جعبه را مشخص می‌کند:
-
+
\centerline{\includegraphics[width=.8\textwidth, ]{docs-headershape}}
\item \lr{\texttt{headershade=type of header shading}}:
-
+
% \begin{enumerate*}[label=\arabic*)]
-% \item\texttt{plain}
-% \item\texttt{shadelr}
-% \item\texttt{shaderl}
+% \item\texttt{plain}
+% \item\texttt{shadelr}
+% \item\texttt{shaderl}
% \item\texttt{shadetb}
% \item\texttt{shadetbinverse}
% \end{enumerate*}
-
- \centerline{\includegraphics[width=.82\textwidth,
+
+ \centerline{\includegraphics[width=.82\textwidth,
trim={.4cm 5.1cm .4cm .6cm}, clip=true]{docs-shade.pdf}}
-
+
\item \lr{\texttt{boxshade}}:
-
+
% \begin{enumerate*}[label=\arabic*)]
-% \item\texttt{plain}
-% \item\texttt{shadelr}
+% \item\texttt{plain}
+% \item\texttt{shadelr}
% \item\texttt{shaderl}
-% \item\texttt{shadetb}
+% \item\texttt{shadetb}
% \item\texttt{none}
% \end{enumerate*}
-
- \centerline{\includegraphics[width=.82\textwidth,
+
+ \centerline{\includegraphics[width=.82\textwidth,
trim={.4cm .1cm .4cm 5.5cm}, clip=true]{docs-shade.pdf}}
-
+
\item \lr{\texttt{headerfont=font definition}}:
دستوری Ú©Ù‡ قبل از حروÙچینی عنوان جعبه قرار داده می‌شود.
\item \lr{\texttt{headerFontColor=pgf color name}}:
رنگ قلم عنوان جعبه.
\item \lr{\texttt{linewidth=length}}:
عرض خطوط مورد استÙاده در ترسیم پوستر
- \item \lr{\Verb|above=box name|}:
+ \item \lr{\Verb|above=box name|}:
نام جعبه‌ای را مشخص می‌کند که این جعبه باید در بالای جعبه مذکور ترازبندی شود.
- \item \lr{\Verb|below=box name|}:
+ \item \lr{\Verb|below=box name|}:
نام جعبه‌ای را مشخص می‌کند که این جعبه باید در پایین جعبه مذکور ترازبندی شود.
- \item \lr{\Verb|aligned=box name|}:
- نام جعبه‌ای را مشخص می‌کند که این جعبه باید به محاذات آن جعبه ترازبندی شود.
- \item \lr{\Verb|bottomaligned=box name|}:
+ \item \lr{\Verb|aligned=box name|}:
+ نام جعبه‌ای را مشخص می‌کند که این جعبه باید به محاذات آن جعبه ترازبندی شود.
+ \item \lr{\Verb|bottomaligned=box name|}:
نام جعبه‌ای را مشخص می‌کند که این جعبه باید نسبت به آن جعبه از پایین ترازبندی شود.
\end{itemize}
\end{posterbox}
@@ -447,25 +445,25 @@ textborder=none
\begin{posterbox}[name=absolute,column=0,span=2,below=setting,
,textborder=rectangle,headershape=rectangle,]{چینش جعبه‌ها}
%\small
- نکته‌ای که باید در چینش جعبه‌ها در نظر داشته باشید این است که مکان جعبه‌ها می‌توانند به صورت نسبی یا دقیق تعیین شود.
- اگر برای مثال جعبه ب قرار است دقیقاً بین جعبه‌های ال٠و ج قرار گیرد
- آنگاه این دو جعبه اخیر حتماً باید پیش از جعبه ب تعری٠شوند، در غیر اینصورت سبب تولید خطا می‌گردد. ضمناً می‌توانید بدون
+ نکته‌ای که باید در چینش جعبه‌ها در نظر داشته باشید این است که مکان جعبه‌ها می‌توانند به صورت نسبی یا دقیق تعیین شود.
+ اگر برای مثال جعبه ب قرار است دقیقاً بین جعبه‌های ال٠و ج قرار گیرد
+ آنگاه این دو جعبه اخیر حتماً باید پیش از جعبه ب تعری٠شوند، در غیر اینصورت سبب تولید خطا می‌گردد. ضمناً می‌توانید بدون
تعیین این پارامترها چینش جعبه‌ها را به صورت خودکار و بهمان ترتیب تعری٠به خود بسته واگذار نمایید.
-
- برای آدرس‌دهی دقیق یک جعبه، جایگاه دقیق آن‌ را با کمک \Verb|row| و \Verb|column|
- در تنظیمات جعبه‌پوستر مشخص نمایید.
+
+ برای آدرس‌دهی دقیق یک جعبه، جایگاه دقیق آن‌ را با کمک \Verb|row| و \Verb|column|
+ در تنظیمات جعبه‌پوستر مشخص نمایید.
\end{posterbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{posterbox}[name=ack,column=3,span=2,below=posterboxoption, bottomaligned=absolute,
+\begin{posterbox}[name=ack,column=3,span=2,below=posterboxoption, bottomaligned=absolute,
,textborder=triangles]{قدردانی}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
با تشکر از دکتر \lr{Brian} خالق کلاس پوستر Ùˆ تشکر ویژه از جناب آقای دکتر ÙˆÙا خلیقی بخاطر زحماتی Ú©Ù‡ برای Ùارسی‌نویسی در
-محیط زی‌لاتک انجام‌ داده‌اند %\footnote{بدون پشتیبانی زی‌پرشین از محیط \lr{tikzpicture} Ùارسی سازی این کلاس ممکن نبود.}
+محیط زی‌لاتک انجام‌ داده‌اند %\footnote{بدون پشتیبانی زی‌پرشین از محیط \lr{tikzpicture} Ùارسی سازی این کلاس ممکن نبود.}
و دکتر محمود امین‌طوسی به سبب پیشنهاد نام زیباپوستر و گروه پارسی‌لاتک برای تست این کلاس.
\footnotetext{
زیباپوستر از نسخهٔ $2.2$ به بعد بر خلا٠نسخه اولیّه هر دو نوع پوستر پارسی و لاتین را پشتیبانی می‌کند. }
-\end{posterbox}
+\end{posterbox}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{poster}
\end{document}
diff --git a/graphics/pgf/contrib/xebaposter/xebaposter.cls b/graphics/pgf/contrib/xebaposter/tex/xebaposter.cls
index 2ffed6a072..bf067f11f1 100644
--- a/graphics/pgf/contrib/xebaposter/xebaposter.cls
+++ b/graphics/pgf/contrib/xebaposter/tex/xebaposter.cls
@@ -1,7 +1,7 @@
%%
%% This is file `xebaposter.cls'
-%%
-%% Copyright © 2015-2016 by Seiied-Mohammad-Javad Razavian <javadr@gmail.com>
+%%
+%% Copyright © 2015-2022 by Seiied-Mohammad-Javad Razavian <javadr@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.
@@ -11,11 +11,11 @@
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
-%%
+%%
%% This work is “author-maintained†(as per LPPL maintenance status)
%% by Seiied-Mohammad-Javad Razavian.
%% The Current Maintainer of this work is Seiied-Mohammad-Javad Razavian
-%%
+%%
%% A relatively comfortable latex class to produce posters with a grid based
%% layout. It comes with a number of combinable styles and is (maybe only for
%% the writer) easy to extend, as all the graphics is based on pgf.
@@ -23,120 +23,9 @@
%%
%% Copyright (C) 2007-2011 Brian Amberg
%% Copyright (C) 2011 Reinhold Kainhofer <reinhold@kainhofer.com>
-%% Copyright (C) 2015-2016 Seiied-Mohammad-Javad Razavian <javadr@gmail.com>
-%%
-%% 12. September 2016: ver 2.51
-%% - typo in package inf.
-%% 1. September 2016: ver 2.5
-%% - In persian mode with gird enabled option, grid numbers set on left side of the sheet.
-%% -There is no need to set \setLTR before \shade or \fill command, it fixed in new version of bidi.
-%% 11. February 2015: ver 2.42
-%% - Correcting some other typos in the package's documentaion.
-%% 10. February 2015: ver 2.41
-%% - Correcting two typos in the package's documentaion.
-%% 9. February 2015: ver 2.4
-%% - bidi ver 18.2 and later has not provice bidi@tikzpicture environment anymore, istead Vafa Khalighi the creator and maintainer of xepersian have improved the tikzpicture environment in RTL mode, so the package just use tikzpicture in both ltr and rtl poster.
-%% 30. September 2015: ver 2.3
-%% -
-%% 1. September 2015: ver 2.21
-%% - if xebaposter's user didn't set persian/latin option, by default it will be set latin but in case xepersian package is being loaded the default will be persian unless the user set latin explicitly.
-%% 1. September 2015: ver 2.2
-%% - persian/latin options added to the class and default is latin. From now on, this class can be used for both latin and persian poster. The only thing that should be mentioned is the persian one must be compiled with xelatex but the latin one should be compiled with pdflatex or xelatex. For latin poster pdflatex is preferred because shading feature of tikz doesn't work properly with xelatex from TeXLive2013! the bug reported in http://tex.stackexchange.com/questions/262877.
-%% 28. August 2015:
-%% - A bidi@tikzpicture is used instead of tikzpicture because it causes some unwanted extra spaces in the poster.
-%% 21. August 2015:
-%% - The xebaposter is named after changing the baposter style to adapt with right to left text like persian.
-%% 29. September 2011:
-%% - Finally fixed confusion with paper size handling and landscape. This required seperate handling of papersizes
-%% known to the geometry package and other packages.
-%% 26. September 2011:
-%% - Reverted drawing of faded borders to manual method, as the current result does not work with evince,
-%% and produced spurious colored boxes with okular and acroread.
-%% - Added one more example due to popular request
-%% 16. September 2011:
-%% - Removed nag package, such that it compiles on older systems
-%% - Added more examples
-%% 15. September 2011:
-%% - Merged fork by (rk) back into mainline, essentially taking over all the great improvements that Reinhold Kainhofer coded.
-%% We call this version 2, as it breaks the interface in some small points. Essentially watch out for this:
-%% - no/yes keys are now false/true
-%% - the shade-lr etc. keys have the hypen removed, and are now called shadelr etc.
-% - Added more examples, which are all adapted to work with the current version
-%% 27. August 2011 (rk):
-%% - Completely factored out all drawing commands to handler functions, assigned via choice keys
-%% - Added cornerradius, boxheaderheight, boxpadding options
-%% - Added missing roundedright
-%% 26. August 2011 (rk):
-%% - Turned headerbox cmd into posterbox environment (allows verbatim)
-%% - pass several options to packages
-%% - added debug cls option to reduce default output
-%% - rewrote several loops and ifthenelse
-%% - Use boolean and choice keys for all options
-%% - Changed all choice options to set a global function to
-%% \baposter@OPTION@OPTIONVALUE, which are a functions that execute the
-%% option's setting (drawing routine, color setting for tikz, etc.)
-%% - Add a5paper
-%% 07. April 2011: Fixed paper size handling
-%% - Fixed Paper Size handling, you can now specify all page sizes using paperwidth=, paperheight= class options.
-%% - Added rudimentary documentation of the available keys.
-%% 11. December 2010: Fixed "Empty Second Page" bug
-%% - A second empty page was introduced when a document ended with
-%% \end{poster}
-%% \end{document}
-%% This was fixed thanks to a suggestion by Martin Aulbach
-%% - Added
-%% \thispagestyle{empty}%% to suppress page numbers, which became visible when the margins are large.
-%% The underlying problem of page-size handling has not yet been solved.
-%% 30. September 2010: Border Bugfixes
-%% - Correct background color with textborder=rounded-small, Thanks to Ke Chen for the bugreport and patch
-%% - Correctly draw rectangular text boxes, Thanks to abenkst for the bugreport and fix
-%% 10. June 2010: Added option to set the number of columns
-%% - added a class option to set the number of columns
-%% - columns=5: sets the number of columns to 5, possible values are 1..6, default is 3 in portrait and 4 in landscape format
-%% 29. April 2009: Incorporated Patches by Arne Henningsen
-%% - added some class options
-%% - a4shrink: shrink the paper to A4 size (for printing drafts or handouts)
-%% - movebody=Xpt: move the text/poster body Xpt to the right
-%% (or to the left if Xpt is negative),
-%% e.g. for manually centering the poster on the page
-%% - showframe: use the "showframe" option of the "geometry" package
-%% - a0paper (default): set paper size to A0
-%% - archE: set paper size to Arch E
-%% - setting "background" can be "none" now (otherwise the "showframe"
-%% option has no effect)
-%% - the page number has been removed (it was mostly not visible before)
-%% - the "margin=" option works now
-%% 04. December 2008
-%% - Mainly an update to the landscape example
-%% 14. November 2008
-%% - Actually center the title when eyecatcher is used.
-%% 04. November 2008
-%% - Fixed bug with eyecatcher not working.
-%% 26. June 2008
-%% - Fixed bug with plain background mode.
-%% 14. June 2008
-%% - Support for portrait/landscape switching.
-%% - Some smaller bugfixes.
-%% 01. June 2007
-%% - First version released.
-%%
-%% Use this class with xelatex
+%% Copyright (C) 2015-2022 Seiied-Mohammad-Javad Razavian <javadr@gmail.com>
%%
-%% I have confirmed that this package works with
-%% - texlive 2015
-%%
-%%
-%% TODO:
-%% -) Rename backgrounds back to shaded-tb shade-lr
-%% -) Rename textborder back to rounded-small (consistent naming needed!)
-%% -) Rename headershade back to shade-lr, shade-tb, shade-tb-inverse
-%% -) Rename headershape back to small-rounded
-%% -) Option value consistency (small-rounded vs. rounded-small; missing ones)
-%% -) Rename \xebaposterHeaderSetShade, \xebaposterHeaderDrawText to include @ and verb
-%%
-%%
-%% Licence: GPL
-\ProvidesClass{xebaposter}[2016/09/12 v2.51 xebaposter class]
+\ProvidesClass{xebaposter}[2022/06/08 v2.53 xebaposter class]
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\LoadClass{article}
\typeout{baposter: Brian Amberg, 2007, 2008, 2009, 2010, 2011 | http://www.brian-amberg.de/uni/poster/}
@@ -183,7 +72,7 @@
%\ifxetex
% \def\pdftexversion{140}%
% \def\pgfsysdriver{pgfsys-dvipdfm.def}%
-%\fi
+%\fi
\RequirePackage{tikz}%
\RequirePackage{pgf}%
%\makeatletter
@@ -220,24 +109,25 @@
\DeclareOptionX{portrait}{}%
%
\newcommand{\xebaposter@setfinalpapersize}[2]{%
-\if@geometryKnowsThisSize
+\if@geometryKnowsThisSize%
\setlength{\xebaposter@finalpaperwidth}{#1}%
\setlength{\xebaposter@finalpaperheight}{#2}%
-\else
-\if@landscape
+\else%
+\if@landscape%
% Transpose length, if geometry does not handle the papersize based on the key
\setlength{\xebaposter@finalpaperwidth}{#2}%
\setlength{\xebaposter@finalpaperheight}{#1}%
-\else
+\else%
\setlength{\xebaposter@finalpaperwidth}{#1}%
\setlength{\xebaposter@finalpaperheight}{#2}%
-\fi
-\fi
-}
+\fi%
+\fi%
+}%
%
% Default paperwidth and paperheight = a0paper
\DeclareOptionX{paperwidth}[841mm]{\setlength{\xebaposter@finalpaperwidth}{#1}}%
\DeclareOptionX{paperheight}[1189mm]{\setlength{\xebaposter@finalpaperheight}{#1}}%
+\xebaposter@setfinalpapersize{841mm}{1189mm}
\DeclareOptionX{archA} { \xebaposter@setfinalpapersize{9in}{12in}}%
\DeclareOptionX{archB} { \xebaposter@setfinalpapersize{12in}{18in}}%
\DeclareOptionX{archC} { \xebaposter@setfinalpapersize{18in}{24in}}%
@@ -287,31 +177,36 @@
\DeclareOptionX{table}{}%
\DeclareOptionX{showframe}{}%
%
-\newif\if@xebaposter@persian
-\newif\if@xebaposter@latin
-\DeclareOptionX{persian}{\@xebaposter@persiantrue}
-\DeclareOptionX{latin}{\@xebaposter@latintrue}
+\newif\if@xebaposter@persian%
+\newif\if@xebaposter@latin%
+\DeclareOptionX{persian}{\@xebaposter@persiantrue}%
+\DeclareOptionX{latin}{\@xebaposter@latintrue}%
+%
+%\ExecuteOptionsX{
+% portrait,
+% a0paper,
+%}
%
\ProcessOptionsX%
%
-\if@debug
+\if@debug%
\newcommand{\debug}[1]{\typeout{#1}}%
-\else
+\else%
\newcommand{\debug}[1]{}%
-\fi
-%
-%%% when user didn't set persian/latin option, if he/she uses xepersian the default will be persian, otherwise default will be latin.
-\if@xebaposter@latin
- \relax
-\else
- \if@xebaposter@persian
- \relax
- \else
- \AtBeginDocument{\@ifpackageloaded{xepersian}{\@xebaposter@persiantrue}{}}
- \fi
-\fi
+\fi%
+%
+%%% when user didn't set persian/latin option, if he/she uses xepersian the default will be persian, otherwise default will be latin.
+\if@xebaposter@latin%
+ \relax%
+\else%
+ \if@xebaposter@persian%
+ \relax%
+ \else%
+ \AtBeginDocument{\@ifpackageloaded{xepersian}{\@xebaposter@persiantrue}{}}%
+ \fi%
+\fi%
%
-\setlength{\xebaposter@basepaperwidth} {\xebaposter@fontscale\xebaposter@finalpaperwidth }%
+\setlength{\xebaposter@basepaperwidth} {\xebaposter@fontscale\xebaposter@finalpaperwidth}%
\setlength{\xebaposter@basepaperheight}{\xebaposter@fontscale\xebaposter@finalpaperheight}%
\setlength{\xebaposter@basemargin} {\xebaposter@fontscale\xebaposter@finalmargin}%
\newlength{\xebaposter@basemarginright}%
@@ -325,7 +220,7 @@
\typeout{Paperheight=\the\xebaposter@finalpaperheight}%
\typeout{BasePaperwidth=\the\xebaposter@basepaperwidth}%
\typeout{BasePaperheight=\the\xebaposter@basepaperheight}%
-\RequirePackage[
+\RequirePackage[%
paperwidth=\xebaposter@basepaperwidth,%
paperheight=\xebaposter@basepaperheight,%
tmargin=\xebaposter@basemargin,%
@@ -334,16 +229,16 @@
rmargin=\xebaposter@basemarginright,%
]{geometry}%
%
-\RequirePackage{pgfpages}
-\if@landscape
-\if@geometryKnowsThisSize
+\RequirePackage{pgfpages}%
+\if@landscape%
+\if@geometryKnowsThisSize%
\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperheight,physical paper height=\xebaposter@finalpaperwidth]%
-\else
+\else%
\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperwidth,physical paper height=\xebaposter@finalpaperheight]%
-\fi
-\else
+\fi%
+\else%
\pgfpagesuselayout{resize to}[physical paper width=\xebaposter@finalpaperwidth,physical paper height=\xebaposter@finalpaperheight]%
-\fi
+\fi%
%
%
%
@@ -355,19 +250,19 @@
%% particular, they will be set to \xebaposter@optionname@optionvalue, which
%% should do the actual work / setting for that particular optionvalue.
%
-\newcommand{\xebaposterPosterDrawBackground}[2]{} % Draw poster background
+\newcommand{\xebaposterPosterDrawBackground}[2]{}% % Draw poster background
%
-\newcommand{\xebaposterBoxGetShape}{} % Returns path of text box shape
-\newcommand{\xebaposterBoxDrawBackground}[2]{} % Draw bg of boxes
-\newcommand{\xebaposterBoxDrawBorder}[1]{} % Draw border of individual boxes
+\newcommand{\xebaposterBoxGetShape}{}% % Returns path of text box shape
+\newcommand{\xebaposterBoxDrawBackground}[2]{}% % Draw bg of boxes
+\newcommand{\xebaposterBoxDrawBorder}[1]{}% % Draw border of individual boxes
%
-\newcommand{\xebaposterHeaderGetShape}{} % Returns path of text box shape
-\newcommand{\xebaposterHeaderSetShade}[3]{} % Set bg style for box headers
-\newcommand{\xebaposterHeaderDrawBackground}[3]{} % Draw background of box header
-\newcommand{\xebaposterHeaderDrawBorder}[1]{} % Draw border of box header
-\newcommand{\xebaposterHeaderDrawText}[1]{} % Draw text inside box header
+\newcommand{\xebaposterHeaderGetShape}{}% % Returns path of text box shape
+\newcommand{\xebaposterHeaderSetShade}[3]{}% % Set bg style for box headers
+\newcommand{\xebaposterHeaderDrawBackground}[3]{}% % Draw background of box header
+\newcommand{\xebaposterHeaderDrawBorder}[1]{}% % Draw border of box header
+\newcommand{\xebaposterHeaderDrawText}[1]{}% % Draw text inside box header
%
-\newcommand{\@@previousbox}{notset} % stores the previously processed box for below=auto
+\newcommand{\@@previousbox}{notset}% % stores the previously processed box for below=auto
%
% Function to set a user-defined background
\newcommand{\xebaposter@backgroundCmd}{\error{No background command defined. Use \background{...} to define background}}%
@@ -407,7 +302,7 @@
\PackageWarning{xebaposter}{Unknown background `\xebaposter@background' (use
shadeLR, shadeTB, plain, none, or user). If user is used, you also
have to define \background{...}.}%
- \renewcommand{\xebaposterPosterDrawBackground}[2]{\xebaposter@background@none{##1}{##2}}
+ \renewcommand{\xebaposterPosterDrawBackground}[2]{\xebaposter@background@none{##1}{##2}}%
}%
%
%
@@ -747,7 +642,7 @@
\path (\xebaposter@box@name ne) +(0em,-0.5\xebaposter@box@@boxheaderheight) node[anchor=east,inner sep=0.4em] {#1};%
\else
\path (\xebaposter@box@name nw) +(0em,-0.5\xebaposter@box@@boxheaderheight) node[anchor=west,inner sep=0.4em] {#1};%
-\fi
+\fi
}%
\newcommand{\xebaposter@box@headerdrawtext@smallrounded}[1]{%
\path (\xebaposter@box@name nw) +(0.5\boxwidth,-0.5\xebaposter@box@@boxheaderheight) node[anchor=center] {#1};%
@@ -759,16 +654,16 @@
\else
\path (\xebaposter@box@name nw) +(0em,-0.5\xebaposter@box@@boxheaderheight)%
node[anchor=west,inner sep=0.4em,text depth=0.4em] {#1};%
-\fi
+\fi
}%
\newcommand{\xebaposter@box@headerdrawtext@roundedleft}[1]{%
\if@xebaposter@persian
\path (\xebaposter@box@name ne) +(0em,-0.5\xebaposter@box@@boxheaderheight)%
- node[anchor=east,inner sep=0.4em] {#1};
-\else
+ node[anchor=east,inner sep=0.4em] {#1};%
+\else
\path (\xebaposter@box@name nw) +(0em,-0.5\xebaposter@box@@boxheaderheight)%
- node[anchor=west,inner sep=0.4em] {#1};
-\fi
+ node[anchor=west,inner sep=0.4em] {#1};%
+\fi
}%
\newcommand{\xebaposter@box@headerdrawtext@rounded}[1]{%
\path (\xebaposter@box@name nw) +(0.5\boxwidth,-0.5\xebaposter@box@@boxheaderheight) node[anchor=center] {#1};%
@@ -935,9 +830,9 @@
%
\if@xebaposter@persian
\def\xebaposter@box@title{\rl{##2}}%
-\else
+\else
\def\xebaposter@box@title{{##2}}%
-\fi
+\fi
%
\colorlet{borderColor}{\xebaposter@box@borderColor}%
\colorlet{headerColorOne}{\xebaposter@box@headerColorOne}%
@@ -953,8 +848,8 @@
%
%% The columns is always given absolute
\if@xebaposter@persian
- % boxstartx = (columns-column-span) * colwidth + (columns-column-span) * colspacing
-% \setlength{\boxstartx}{(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\colwidth+(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\xebaposter@@colspacing}%
+ % boxstartx = (columns-column-span) * colwidth + (columns-column-span) * colspacing
+% \setlength{\boxstartx}{(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\colwidth+(\xebaposter@columns+-\xebaposter@box@column+-\xebaposter@box@span)*\xebaposter@@colspacing}%
\setlength{\boxstartx}{\xebaposter@columns\colwidth}%
\addtolength{\boxstartx}{-\xebaposter@box@column\colwidth}%
\addtolength{\boxstartx}{-\xebaposter@box@span\colwidth}%
@@ -964,18 +859,18 @@
\else
% boxstartx = column * colwidth + column * colspacing
\setlength{\boxstartx}{(\colwidth+\xebaposter@@colspacing)*\xebaposter@box@column}%
-\fi
+\fi
%
%% The width is gvien absolute
% Box Width = span * colwidth + (span-1) * colspacing
- \setlength{\boxwidth}{\xebaposter@box@span\colwidth} %
+ \setlength{\boxwidth}{\xebaposter@box@span\colwidth}%
\addtolength{\boxwidth}{\xebaposter@@colspacing*(\xebaposter@box@span-1)}%
%
%% Measure the content of the box%
\setbox\xebaposter@box@content=\hbox\bgroup%
\begin{pgfinterruptpicture}%
- \begin{minipage}[t]{\boxwidth-\xebaposter@box@@boxpadding*2}
-\if@xebaposter@persian
+ \begin{minipage}[t]{\boxwidth-\xebaposter@box@@boxpadding*2}%
+\if@xebaposter@persian%
\persian%
\fi
\xebaposter@box@textfont\bgroup%
@@ -988,8 +883,8 @@
\egroup%
\setlength{\boxheight}{\ht\xebaposter@box@content}%
\addtolength{\boxheight}{\dp\xebaposter@box@content}%
- \addtolength{\boxheight}{\xebaposter@box@@boxheaderheight} % Header%
- \addtolength{\boxheight}{2\xebaposter@box@@boxpadding} % Inner Sep
+ \addtolength{\boxheight}{\xebaposter@box@@boxheaderheight}% Header%
+ \addtolength{\boxheight}{2\xebaposter@box@@boxpadding}% Inner Sep
%
\ifthenelse{\equal{\xebaposter@box@height}{bottom}}{%
}{\ifthenelse{\equal{\xebaposter@box@height}{auto}}{%
@@ -1012,12 +907,12 @@
}{}%
\xdef\@@previousbox{\xebaposter@box@name}%
%
- \ifthenelse{\not\equal{\xebaposter@box@below}{notset} }{%
+ \ifthenelse{\not\equal{\xebaposter@box@below}{notset}}{%
%% Below%
\debug{Below}%
\path[shape=coordinate] (\boxstartx,0pt |- \xebaposter@box@below se) ++(0pt,-\xebaposter@@colspacing) coordinate(\xebaposter@box@name nw);%
}{%
- \ifthenelse{\not\equal{\xebaposter@box@aligned}{notset} }{%
+ \ifthenelse{\not\equal{\xebaposter@box@aligned}{notset}}{%
%% Aligned%
\debug{Aligned: \xebaposter@box@aligned}%
\path[shape=coordinate] (\boxstartx,0pt |- \xebaposter@box@aligned nw) coordinate(\xebaposter@box@name nw);%
@@ -1025,7 +920,7 @@
%% Fixed%
\debug{Fixed}%
\setlength{\boxstarty}{\xebaposter@box@row\colheight}%
- \path[shape=coordinate] (\boxstartx,\colheight-\boxstarty) coordinate(\xebaposter@box@name nw);%
+ \path[shape=coordinate] (\boxstartx,\colheight-\boxstarty) coordinate (\xebaposter@box@name nw);%
}}%
%
%% Lower Left Corner%
@@ -1034,11 +929,11 @@
%% Above = Bottom%
\debug{Above bottom}%
\ifthenelse{\equal{\xebaposter@box@below}{notset} \and \equal{\xebaposter@box@aligned}{notset}}{%
- \path[shape=coordinate] (\boxstartx,\boxheight) coordinate(\xebaposter@box@name nw);%
+ \path[shape=coordinate] (\boxstartx,\boxheight) coordinate (\xebaposter@box@name nw);%
}{}%
- \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\xebaposter@box@name se);%
+ \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate (\xebaposter@box@name se);%
}{\ifthenelse{\not \equal{\xebaposter@box@bottomaligned}{notset}}{%
- \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \xebaposter@box@bottomaligned se) coordinate(\xebaposter@box@name se);%
+ \path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \xebaposter@box@bottomaligned se) coordinate (\xebaposter@box@name se);%
}{{\ifthenelse{\not \equal{\xebaposter@box@above}{notset}}{%
%% Above = Node%
\path[shape=coordinate] (\boxstartx+\boxwidth,0pt |- \xebaposter@box@above nw) +(0pt,\xebaposter@@colspacing) coordinate(\xebaposter@box@name se);%
@@ -1048,36 +943,35 @@
\ifthenelse{\equal{\xebaposter@box@height}{bottom}}{%
%% height=bottom%
\debug{height=bottom}%
- \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\xebaposter@box@name se);%
+ \path[shape=coordinate] (\boxstartx+\boxwidth,0pt) coordinate(\xebaposter@box@name se);%
}{ %% height=auto or fixed%
\debug{height=auto or fixed}%
- \path[shape=coordinate] (\xebaposter@box@name nw) ++(\boxwidth,-\boxheight) coordinate(\xebaposter@box@name se);%
+ \path[shape=coordinate] (\xebaposter@box@name nw) ++(\boxwidth,-\boxheight) coordinate (\xebaposter@box@name se);%
}}}}}%
%
%
% Set coordinates relative to nw,se%
\debug{Fixing Coordinates}%
\path[shape=coordinate]%
- (\xebaposter@box@name nw) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tnw)%
- (\xebaposter@box@name nw |- \xebaposter@box@name se) coordinate(\xebaposter@box@name sw)%
- (\xebaposter@box@name se |- \xebaposter@box@name nw) coordinate(\xebaposter@box@name ne)%
- (\xebaposter@box@name ne) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tne)%
+ (\xebaposter@box@name nw) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tnw)%
+ (\xebaposter@box@name nw |- \xebaposter@box@name se) coordinate(\xebaposter@box@name sw)%
+ (\xebaposter@box@name se |- \xebaposter@box@name nw) coordinate(\xebaposter@box@name ne)%
+ (\xebaposter@box@name ne) +(0pt,-\xebaposter@box@@boxheaderheight) coordinate(\xebaposter@box@name tne)%
%
- (\xebaposter@box@name nw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer nw)%
- (\xebaposter@box@name tnw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer tnw)%
- (\xebaposter@box@name sw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer sw)%
+ (\xebaposter@box@name nw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer nw)%
+ (\xebaposter@box@name tnw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer tnw)%
+ (\xebaposter@box@name sw) +(-0.025em,0pt) coordinate(\xebaposter@box@name outer sw)%
%
- (\xebaposter@box@name ne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer ne)%
- (\xebaposter@box@name tne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer tne)%
- (\xebaposter@box@name se) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer se);%
+ (\xebaposter@box@name ne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer ne)%
+ (\xebaposter@box@name tne) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer tne)%
+ (\xebaposter@box@name se) +( 0.025em,0pt) coordinate(\xebaposter@box@name outer se);%
%
%% Setting the bg colors of the box header
\xebaposterHeaderSetShade{headerColorOne}{headerColorTwo}{borderColor}%
%
- \tikzstyle{rc}=[rounded corners=\xebaposter@box@@cornerradius];%
- \tikzstyle{src}=[rounded corners=0.5em];%
+ \tikzstyle{rc}=[rounded corners=\xebaposter@box@@cornerradius]%
+ \tikzstyle{src}=[rounded corners=0.5em]%
%
-
%% Now that everything is set up, draw the actual box, with bg and header
\begin{scope}[line width=\xebaposter@box@linewidth]%
%% Header%
@@ -1085,8 +979,8 @@
\debug{Header-Shape: \xebaposter@box@headershape, header-border: \xebaposter@box@headerborder (\xebaposter@box@headerbordernr)}%
% TODO: Also turn this last ifcase construct into a handler function
% We only need to determine (fill|shade)(draw|)...
- \xebaposterHeaderDrawBackground{bgColorOne}{bgColorTwo}{borderColor}
- \xebaposterHeaderDrawBorder{borderColor}
+ \xebaposterHeaderDrawBackground{bgColorOne}{bgColorTwo}{borderColor}%
+ \xebaposterHeaderDrawBorder{}%{borderColor}%
\ifcase\xebaposter@box@headerbordernr\relax%
% open
\ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{%
@@ -1094,26 +988,26 @@
}{%
\shadedraw [style=header colors] \xebaposterHeaderGetShape;%
}%
- \or
+ \or%
% closed
\ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{%
\filldraw [style=header colors] \xebaposterHeaderGetShape -- cycle;%
}{%
\shadedraw [style=header colors] \xebaposterHeaderGetShape -- cycle;%
}%
- \or
+ \or%
% none
\ifthenelse{\equal{\xebaposter@box@headershade}{plain}}{%
\fill [style=header colors] \xebaposterHeaderGetShape;%
}{%
\shade [style=header colors] \xebaposterHeaderGetShape;%
}%
- \fi
+ \fi%
%
%% Draw the text inside the box header:
- %%% %%% %%% %%% %%% buggy part because of color!! %%% %%% %%% %%% %%% %%%
+ %%% %%% %%% %%% %%% buggy part because of color!! %%% %%% %%% %%% %%% %%%
\xebaposterHeaderDrawText{\hbox{{\color{headerFontColor}\xebaposter@box@headerfont%
- {\xebaposter@box@title}}}};%
+ {\xebaposter@box@title}}}}%
%
%% Text borders (border around boxes)
\debug{Poster boxes}%
@@ -1159,47 +1053,47 @@
%
%
% % Draw Header%
- \draw (north west) +(0em,1em+0.5\headerheight) node(image)[anchor=west] { {\usebox{
-\if@xebaposter@persian
- \xebaposter@titleimage@right
-\else
- \xebaposter@titleimage@left
-\fi }} };%
- \draw (north east) +(0em,1em+0.5\headerheight) node(logo) [anchor=east] { {\usebox{
-\if@xebaposter@persian
- \xebaposter@titleimage@left
-\else
- \xebaposter@titleimage@right
-\fi }} };%
+ \draw (north west) +(0em,1em+0.5\headerheight) node(image)[anchor=west] {{\usebox{%
+\if@xebaposter@persian%
+ \xebaposter@titleimage@right%
+\else%
+ \xebaposter@titleimage@left%
+\fi}}};%
+ \draw (north east) +(0em,1em+0.5\headerheight) node(logo) [anchor=east] {{\usebox{%
+\if@xebaposter@persian%
+ \xebaposter@titleimage@left%
+\else%
+ \xebaposter@titleimage@right%
+\fi}}};%
%
\ifxebaposter@eyecatcher% Has eye catcher%
\draw (image.east) node(title)[anchor=west,text width=\xebaposter@titleimage@textwidth]{%
\begin{minipage}{\xebaposter@titleimage@textwidth}%
\begin{center}%
-\if@xebaposter@persian
- \textbf{\Huge \rl{#3}}\\%
- {\Large \rl{#4}}%
-\else
+\if@xebaposter@persian%
+ \textbf{\Huge\rl{#3}}\\%
+ {\Large\rl{#4}}%
+\else%
\textbf{\Huge #3}\\%
{\Large #4}%
-\fi
+\fi%
\end{center}%
\end{minipage}%
};%
\else% Has no eye catcher
- \draw (image.east) node(title)[anchor=west] { {\begin{minipage}{\xebaposter@titleimage@textwidth}
-\if@xebaposter@persian
- \persian{\bfseries\Huge\rl{#3}}\\{\Large\rl{#4}}
-\else
- {\bfseries\Huge #3}\\{\Large #4}
-\fi
- \end{minipage}} };%
- \fi
+ \draw (image.east) node(title)[anchor=west] {{\begin{minipage}{\xebaposter@titleimage@textwidth}
+\if@xebaposter@persian%
+ \persian{\bfseries\Huge\rl{#3}}\\{\Large\rl{#4}}%
+\else%
+ {\bfseries\Huge #3}\\{\Large #4}%
+\fi%
+ \end{minipage}}};%
+ \fi%
}% END poster begin
% The body
{% BEGIN poster end
% The end, draw gridlines if neccesary
- \ifxebaposter@grid
+ \ifxebaposter@grid%
\newdimen{\gridpos}%
\pgfmathsetmacro{\z}{\xebaposter@columns-1}%
\foreach \y in {0,...,\z}%
@@ -1212,15 +1106,15 @@
%% Explicitly list all percentages, because with {0.0, 0.1, ..., 1.0} we
%% get rounding errors in the displayed numbers!
\foreach \y in {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}%
- {\if@xebaposter@persian
+ {\if@xebaposter@persian%
\draw[draw=green,draw opacity=0.7] (\textwidth,\colheight-\y\colheight) --%
- (0pt,\colheight-\y\colheight) node[anchor=east] {\y};%
- \else
+ (0pt,\colheight-\y\colheight) node[anchor=east] {\y};%
+ \else%
\draw[draw=green,draw opacity=0.7] (0pt,\colheight-\y\colheight) --%
(\textwidth,\colheight-\y\colheight) node[anchor=west] {\y};%
- \fi|}%
+ \fi|}%
\fi%
\end{tikzpicture}%
% \xkvview{}
- \par
+ \par%
}% END poster end
diff --git a/graphics/pgf/contrib/xebaposter/xebaposter-doc.pdf b/graphics/pgf/contrib/xebaposter/xebaposter-doc.pdf
deleted file mode 100644
index b3dbace565..0000000000
--- a/graphics/pgf/contrib/xebaposter/xebaposter-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/language/arabic/arabtex/alocal.sty b/language/arabic/arabtex/alocal.sty
index 626d644581..c0e0ad3dc1 100644
--- a/language/arabic/arabtex/alocal.sty
+++ b/language/arabic/arabtex/alocal.sty
@@ -1,20 +1,20 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alocal.sty
-% ArabTeX
-% stub for local extensions
-% should normally be empty!
-% Version 26.02.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {3.11 local stub, 26.02.2006}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alocal.sty
+% ArabTeX
+% stub for local extensions
+% should normally be empty!
+% Version 26.02.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {3.11 local stub, 26.02.2006}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/language/arabic/arabtex/announce.txt b/language/arabic/arabtex/announce.txt
index f1217164e8..3b51bec425 100644
--- a/language/arabic/arabtex/announce.txt
+++ b/language/arabic/arabtex/announce.txt
@@ -1,50 +1,50 @@
-----------------------------------------------------------------------
- ArabTeX Version 3.11 is available
-----------------------------------------------------------------------
-As of today, Oct. 23, 2003, a new version 3.11 of ArabTeX is available
-by FTP from "ftp.informatik.uni-stuttgart.de" (129.69.211.2).
-The package resides in "/pub/arabtex/", see the file "arabtex.htm".
-
-This server always carries the current version; in case of doubt check
-the version number and the date of the file /pub/arabtex/apatch.sty.
-To receive a status report you may also send an empty Email message to
-"arabtex@informatik.uni-stuttgart.de".
-
-Please observe that we are *not* the same as the (old) "Stuttgart server"!
-
-The identical package is also available from the CTAN server network:
-
- ftp://ftp.tex.ac.uk/tex-archive/languages/arabtex/ (UK)
- ftp://ftp.dante.de/tex-archive/languages/arabtex/ (Germany)
- ftp://ctan.tug.org/tex-archive/languages/arabtex/ (USA)
-
-ArabTeX is a TeX macro package with associated Naskh fonts designed to
-generate the Arabic writing from texts coded in an ASCII transliteration
-as well as in some other popular encodings for Arabic and Hebrew, e.g.
-ASMO 449, ISO 8859-6 (ASMO 708), Arabic Windows encoding, and HED.
-It is compatible with Plain TeX, LaTeX, NFSS, and the EDMAC package.
-It also cooperates well with LaTeX 2e of June 1996 or later.
-There is some support for Persian, Urdu, Pashto, and Sindhi.
-Unicode Arabic and Hebrew support is present but not extensively tested.
-
-The version 3.11 supports vowelized and non-vowelized Hebrew, and
-bidirectional line-breaking within insertions. The former limitation
-that an insertion must fit on the current line no more exists.
-
-For information on updates, see the file "changes.txt".
-
-----------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Formale Methoden der Informatik
- Universitaet Stuttgart
- Universitaetsstrasse 38
- D-70569 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
- FAX: +49 - 711 - 7816 370
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2003, Klaus Lagally
---------------------------------------------------------------------------
-
-
+----------------------------------------------------------------------
+ ArabTeX Version 3.11 is available
+----------------------------------------------------------------------
+As of today, Oct. 23, 2003, a new version 3.11 of ArabTeX is available
+by FTP from "ftp.informatik.uni-stuttgart.de" (129.69.211.2).
+The package resides in "/pub/arabtex/", see the file "arabtex.htm".
+
+This server always carries the current version; in case of doubt check
+the version number and the date of the file /pub/arabtex/apatch.sty.
+To receive a status report you may also send an empty Email message to
+"arabtex@informatik.uni-stuttgart.de".
+
+Please observe that we are *not* the same as the (old) "Stuttgart server"!
+
+The identical package is also available from the CTAN server network:
+
+ ftp://ftp.tex.ac.uk/tex-archive/languages/arabtex/ (UK)
+ ftp://ftp.dante.de/tex-archive/languages/arabtex/ (Germany)
+ ftp://ctan.tug.org/tex-archive/languages/arabtex/ (USA)
+
+ArabTeX is a TeX macro package with associated Naskh fonts designed to
+generate the Arabic writing from texts coded in an ASCII transliteration
+as well as in some other popular encodings for Arabic and Hebrew, e.g.
+ASMO 449, ISO 8859-6 (ASMO 708), Arabic Windows encoding, and HED.
+It is compatible with Plain TeX, LaTeX, NFSS, and the EDMAC package.
+It also cooperates well with LaTeX 2e of June 1996 or later.
+There is some support for Persian, Urdu, Pashto, and Sindhi.
+Unicode Arabic and Hebrew support is present but not extensively tested.
+
+The version 3.11 supports vowelized and non-vowelized Hebrew, and
+bidirectional line-breaking within insertions. The former limitation
+that an insertion must fit on the current line no more exists.
+
+For information on updates, see the file "changes.txt".
+
+----------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Formale Methoden der Informatik
+ Universitaet Stuttgart
+ Universitaetsstrasse 38
+ D-70569 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+ FAX: +49 - 711 - 7816 370
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2003, Klaus Lagally
+--------------------------------------------------------------------------
+
+
diff --git a/language/arabic/arabtex/apatch.sty b/language/arabic/arabtex/apatch.sty
index 7b61c757be..cf3eb20933 120000..100644
--- a/language/arabic/arabtex/apatch.sty
+++ b/language/arabic/arabtex/apatch.sty
@@ -1 +1,2397 @@
-texinput/apatch.sty \ No newline at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% apatch.sty
+% last minute corrections
+% see \a@pdatum and \a@level at the end of the file
+% template: 22.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is just another *.sty file
+% you do not have to do any manual patching
+% just put this file onto the TEXINPUT path
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \patchatcode = \catcode`\@ \catcode`\@ = 11
+\chardef \patchdqcode = \catcode`\" \catcode`\" = 12
+
+\def \a@version {3.11} % compare to arabtex::theversion
+
+\ifx \a@version \theversion \else \edef \next {\errmessage
+{This patch file only works with ArabTeX version \a@version }}
+\next \def \a@patchlevel {-undefined-}
+\xpa \endinput
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% presently no patches
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% two passes with LaTeX; see: alatex.sty
+
+%\iffalse % no patches yet; otherwise: delete !
+\ifx \LaTeX \undefined \else
+\ifx \a@patchlevel \undefined % first patching run
+\let \a@@@document \a@document
+\a@extend \document {\setnone \input {apatch.sty}}
+\else % second pass after loading all modules
+\let \a@document \a@@@document
+\fi\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% patch patterns:
+
+\ifx \a@patchlevel \undefined % load only the first time
+% patches on first pass
+\else
+% patches on second pass
+\fi
+
+\ifx \a@hebr \undefined \else
+%\a@message {Hebrew mode patches}
+\fi
+
+\ifx \LaTeX \undefined \else
+%\a@message {LaTeX mode patches}
+\fi
+%\fi % no patches yet; otherwise: delete !
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {22.08.2003} \def \a@level {-}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifurd@ \ifm@lay
+ \else \set@act \sk@h@s \hah@urd #3% round h?
+ \fi
+ \ifx #1T\else
+ \ifx #3l\test@allah #4#6\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+\ifx #3l\test@allah #4#6\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi\fi\fi\fi\fi }
+
+\def \test@allah #1#2{% special ligature
+\ifx #2l\ifnum #1 = \c@shadda \set@chr\sk@l@w
+ % special short form of lam for the Name of God
+\fi\fi \put@tatwil }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\def \setarabfont #1{% define font switching
+ \def \the@arabfont {\tr@ceoff #1\tr@ceon }}
+
+\def \arab@output {\ifx \a@lang \a@arab \else
+\tr@ceoff % switch to Arabic output conventions
+\def@arabchars % define character macros for Arabic
+\def@arabaccent % define accent macros for Arabic
+\def@arabvoc % define vowel parsing routines for Arabic
+\def@arabstrut % define strut for Arabic
+\tr@zdmg % define standard transliteration
+\global\let \a@write \a@@write \global\let \a@write@hook \relax
+\def \set@arabfont {\the@arabfont }%
+\tr@ceon \let \a@lang \a@arab \fi }
+
+%\setnash
+
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\def \heb@output {\ifx \a@lang \a@hebr \else
+\tr@ceoff % switch to Hebrew output conventions
+\def@hebchars % define character macros for Hebrew
+\def@hebvoc % define vowel parsing routines for Hebrew
+\def@hebstrut % define strut for Hebrew
+\global\let \a@write \heb@write \global\let \a@write@hook \relax
+%\def \set@arabfont {\the@hebfont }%
+%\def \set@arabfont {\pheb }%
+\def \set@arabfont {\hebfont }%
+\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
+
+\def \sethebfont #1{% define font switching
+ \def \hebfont {\tr@ceoff #1\tr@ceon }}
+
+\pdef \sethebrew {% switch to hebrew writing
+\all@false \@ssimtrue \yahd@tstrue \heb@output }
+
+\let \setheb \sethebrew
+
+\ifx \LaTeX \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts2.sty
+
+\def \fdef #1#2#3#4{% define NFSS2 font command
+\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
+\fontseries {#3}\fontshape {#4}\selectfont }%
+\sethebfont \pheb }%
+\all@wcmd #1}
+
+\hdef \hc {m}{n}
+\hdef \hp {bx}{n}
+\hdef \Jm {m}{Jm}
+\hdef \jm {m}{jm}
+\hdef \ds {m}{ds}
+\hdef \oj {m}{oj}
+\hdef \ta {m}{ta}
+\hdef \shlmold {m}{so}
+\hdef \shlmscr {m}{sr}
+\hdef \shlmstk {m}{sk}
+\hdef \fr {m}{fr}
+\hdef \frbx {bx}{fr}
+\hdef \frsl {sl}{fr}
+\hdef \crml {m}{crml}
+\hdef \crmlsl {sl}{crml}
+
+\sethebfont \hc
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % LaTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {27.08.2003} \def \a@level {a}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \LaTeX \undefined
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.tex
+
+\def\smash{\relax % \relax, in case this comes first in \halign
+\ifmmode \xpa\mathpalette \xpa\mathsm@sh \else \xpa\makesm@sh
+\fi }
+
+\def \jm {\sethebfont {\jerusalem}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Plain
+
+\hc % default Hebrew font
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+\ifx \a@patchlevel \undefined % load only the first time
+\ifx \LaTeX \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.tex
+
+\UsePackage {alists} % load LaTeX extensions for Arabic lists
+\UsePackage {asect} % load LaTeX extensions for Arabic sections
+\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % LaTeX
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.09.2003} \def \a@level {b}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% heparse.sty
+
+\def \add@@shewa {% put shewa on final kaf
+\xpa\case \the\last@con \of
+%{ k R {\add@shewa }}
+{ k {\add@shewa }}
+\endcase }
+
+\let \sv@qameslongum \sv@qamesaleph
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\pdef \setjudarab {% switch to hebrew writing
+\all@false \@ssimtrue \yahd@tstrue \jud@output }
+
+\all@wcmd \setjudarab
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \jud@output {\ifx \a@lang \a@juda \else
+\heb@output \tr@ceoff % switch to Hebrew output conventions
+\def@judchars % define character macros for Judeo-Arabic
+\tr@zdmg % standard transliteration
+\tr@ceon \global\let \a@lang \a@juda \fi }
+
+\def \a@juda {JUDARAB}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@judchars {% define character macros for Judeo-Arabic
+\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
+\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
+\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
+\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
+\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
+\gdef \tc@R {\act@cd\hc@j \act@mod \j@@@d@t } % .g
+\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
+\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
+\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
+}}% end of dynamic definitions
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi %\a@hebr
+
+\ifx \setjudarab \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\chardef \j@d@t 5 \chardef \j@@d@t 6 \chardef \j@@@d@t 7
+
+\def \h@putmod #1{% deposit modifier
+\ifcase #1\relax
+\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe
+\or \j@dot \or \j@@dot \or \j@@@dot \fi }
+
+\def \the@dots {\the@dot \kern2\h@p \the@dot }
+
+\def \the@gim {\raise \h@p \hbox {\the@dot }%
+\the@dot \raise \h@p \hbox {\the@dot }}
+
+\def \j@dot {\j@put@dia {.5}{1.3}{\the@dot }}
+\def \j@@dot {\j@put@dia {.5}{1.3}{\the@dots }}
+\def \j@@@dot {\j@put@dia {.5}{1.3}{\the@gim}}
+
+\def \j@put@dia #1#2#3{% put diacritic #3 at (#1,#2)
+\setbox0 \hbox to \z@ {\hss #3\hss}\dimen@ #2\a@ht
+\dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi %\setjudarab
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {17.09.2003} \def \a@level {c}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% acmd.sty
+
+\let \a@c@emph \a@c@emphasize
+
+\def \arab@em #1{% overstrike group
+\def \next@command {\test@special}%
+\ifarab \setbox0 \hbox {\a@sequence {#1}}%
+ \putwordb@x {\vbox {\hrule \kern 1pt \box0}}%
+\fi
+\ifshow {\tt \string \emphasize \ }%
+\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
+\fi\fi
+\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
+\fi \test@token }
+
+\def \a@c@textbf #1{\a@c@bf #1\rm }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for LyX: spacing.sty
+
+\let \a@c@noun \test@token
+
+\def \a@spacing {\let \a@@restore@spacing \restore@spacing
+\let \restore@spacing \a@restore@spacing }
+
+\def \a@restore@spacing {\a@par \a@@restore@spacing }
+
+\def \a@c@singlespace {\a@par \a@spacing
+\def \endsinglespace {\a@par \par }%
+\singlespace \test@token }
+
+\def \a@c@onehalfspace {\a@par \a@spacing \onehalfspace \test@token }
+
+\def \a@c@doublespace {\a@par \a@spacing \doublespace \test@token }
+
+\def \a@c@spacing #1{\a@par \a@spacing \spacing {#1}\test@token }
+
+\xpa\def \csname a@c@singlespace*\endcsname
+{\a@par \a@spacing
+\xpa\let \xpa\a@endsinglespace \csname endsinglespace*\endcsname
+\xpa\def \csname endsinglespace*\endcsname
+{\a@par \a@endsinglespace \vskip -\baselineskip }%
+\csname singlespace*\endcsname \test@token }
+
+\let \a@c@textsf \test@token % these are preliminary
+\let \a@c@textsf \a@c@textbf
+
+\let \a@c@textit \test@token
+\let \a@c@textit \a@c@textbf
+\let \a@c@textit \a@c@emph
+
+\let \a@c@textsl \test@token
+\let \a@c@textsl \a@c@textbf
+
+\let \a@c@texttt \test@token
+\let \a@c@texttt \a@c@textbf
+
+\let \a@c@underbar \test@token
+\let \a@c@underbar \a@c@textbf
+
+\def \a@c@underbar {% get next token
+\def \next@command {\arab@ub }%
+\futurelet \next@token \test@space }
+
+\def \arab@ub #1 {% underbar
+\def \next@command {\test@special}%
+\ifarab \setbox0 \hbox {\a@sequence {#1}}%
+ \putwordb@x {\vtop {\box0 \kern -5pt \hrule }}%
+\fi
+\ifshow {\tt \string \underbar \ }%
+\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
+\fi\fi
+\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
+\fi \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\def \arab@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \a@font \else
+\ifnum \tracingarab > 0 \a@message{Arabic font \next selected.}\fi
+\global\let \a@font \next \a@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\def \heb@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \h@font \else
+\ifnum \tracingarab > 0 \a@message {Hebrew font \next selected.}\fi
+\global\let \h@font \next \h@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+
+\at@arabtext {%
+ \def\a@l@section{\@dottedtocline{1}{1.0em}{1.8em}}%
+ \def\a@l@subsection{\@dottedtocline{2}{2.8em}{2.1em}}%
+ \def\a@l@subsubsectiom{\@dottedtocline{3}{4.9}{2.8em}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\def \a@gextend #1#2{% global extend command definition, no pars!
+\xpa\gdef \xpa#1\xpa{#1#2}}
+
+\def \a@extend #1#2{% extend command definition, no pars!
+\xpa\def \xpa#1\xpa{#1#2}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \syl@@quote@beg #1{% start word with quote: " #1 #2
+\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel
+% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi
+ \if@wasla \v@ctrue \global\@waslafalse
+ \else \global\@waslatrue \togglev@c \fi
+\else \put@con a\togglev@c \add@wasla \put@syl % alif implied
+ \ifx #1"\def \next {\syl@con }% " " k: alif wasla
+ \else \def \next {\syl@con #1}% " k: alif wasla
+ \fi
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asect.sty
+
+\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno
+% for Arabic mode
+\ifnum #1>\c@tocdepth
+\else \vskip \z@ plus.2\p@
+ \begin{arabtext}
+% \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
+ \tocp@rs {#2}{#3}#4 \le@ders \thep@geno {#5}
+ \end{arabtext}
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aboxes.sty
+
+\def \fix@act@box {% fixup position and set tatwil
+\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi
+%\advance\a@min@dp \a@ic \advance\a@disp \a@ic
+\global\advance\a@min@dp \a@ic \advance\a@disp \a@ic
+\if@tat \put@tat \@tatfalse \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures
+% c1 m1 * c2 m2 * c3
+\ifcase \act@cls \lam@lig #3#5% % 0 l
+\or % 1 YntCbyp
+ \ifnum \act@cd = \a@yah \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi\fi\fi\fi
+\or \sin@lig #1#5% % 2 sxSD
+\or \gim@lig #1#3#5% % 3 GHXJ
+ \global\a@min 0
+\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR
+\or \kaf@end #3#5% % 5 kgM
+\or \fah@end #1% % 6 fqv
+\or \ttah@lig #1#5% % 7 VZ
+\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R
+\or % 9 \a@t \a@n
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi
+\else \global\@highfalse \@mod@acttrue % 10 ...
+ \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else
+ \ifnum \act@cd = \a@h@s \hah@urd #3\else
+ \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else
+ \put@tatwil
+ \ifnum \act@cd = \a@dal \gim@test #5\else
+ \ifnum \act@cd = \a@dal@p \gim@test #5\else
+ \fi\fi
+ \fi\fi\fi
+\fi \aw@lower #5}
+
+\def \act@gim #1{% deposit ligature
+\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0
+\else \set@act\sk@hh@s \@mod@acttrue
+%\fi \a@min 1 }
+\fi \global\a@min 1 }
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifurd@ \ifm@lay
+ \else \set@act \sk@h@s \hah@urd #3% round h?
+ \fi
+ \ifx #1T\else
+% \ifx #3l\test@allah #4#6\else
+ \ifx #3l\test@allah {#4}{#6}\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+%\ifx #3l\test@allah #4#6\else
+\ifx #3l\test@allah {#4}{#6}\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aoutput.sty
+
+\def \put@ab@x {% deposit line
+\ifhmode \unskip {\endgraf }\penalty \clubpenalty
+\parindent \z@ \parskip \z@ \else
+\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
+\fi\fi
+\begingroup \parfillskip 0pt plus 1fill
+ \leftskip \z@ \rightskip \z@ \noindent
+ \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
+ \box\a@tempb@x \endgraf
+%\endgroup \parindent \z@ \parskip \z@ \initlineb@x
+\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
+\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
+\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {23.10.2003} \def \a@level {d}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\newarabfont % as a side effect an Arabic font default is defined!
+%\setnash
+
+% wg. utfcode.sty und inputenc.sty:
+
+\long\def \test@special #1{% check for special cases
+\if \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+%\if \sp@ce \nxp \next@token % RTL space
+% \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+{\catcode `\< = \@other % better make sure
+\gdef \a@ins {% arabic insertion or 'less'
+\ifmmode \global\let \a@less <
+%\else \global\let \a@less \arab@insert \leavevmode
+\else \global\let \a@less \a@@insert \leavevmode
+ \bgroup \arab@codes \set@arabfont \global\@waslafalse \@wasfalse
+\fi \a@less }
+} % catcode <
+
+\def \a@@insert #1{% check for < >
+\ifx #1>\egroup \unskip \else \xpa \arab@insert \xpa #1\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+{\arab@codes % because of special characters
+
+\gdef \t@b@g #1{% start \ArabTeX scanner
+ \def \next {\sc@word {#1}}\def \sc@char {@}%
+\ifcat a\nxp #1\else % letter
+\apply \set@next \tocase #1\of
+{ \@{\sc@endscan } % finished
+ '{\t@rquote }
+ `{\t@lquote }
+ *{\t@star }
+\default {\sc@word {#1}}
+}\endcase
+\fi \next }
+
+\gdef \t@w@rd #1{% transform input into internal notation
+ \def \next {\sc@word }%
+\ifx #1\@\def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1a%
+ \ifx #1a\def \next {\t@aa }\else % test for aa -> A
+ \ifx #1n\def \next {\t@nn }\else % test for ng, ny
+ \edef \sc@char {\csname sc@#1\endcsname }% letter
+ \ifx \sc@char \relax \def \sc@char {#1}% undef letter
+ \fi
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
+ \fi
+ \fi\fi \else % other character
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\ifx #1'\def \next {\t@hamza }\else % hamza
+ \def \sc@char {#1}%
+\apply \set@next \tocase #1\of
+{~\@ldtie{\t@tie }
+ .{\t@dot }
+ ,{\t@comma }
+ -{\t@minus }
+ `{\t@ain }
+ "{\t@dquote }
+ :={\t@colon }
+ ^{\t@up }
+ _{\t@down }
+ |{\t@bar }
+ *{\t@shadda }
+\default {\t@w@@rd {#1}}
+}\endcase
+\fi\fi\fi\fi \next }
+
+} % \arab@codes
+
+\def \t@star {\sc@dep *}
+
+\let \sc@beg \t@b@g % apatch only
+\let \sc@word \t@w@rd % apatch only
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \test@allah #1#2{% special ligature
+\ifx #2l%
+%\ifnum #1 = \c@shadda
+\set@chr\sk@l@w
+ % special short form of lam for the Name of God
+%\fi
+\fi \put@tatwil }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \set@shadda {\advance \last@mod \c@shadda }
+
+\def \add@shadda {\ifcase \last@mod % set bit 1
+\set@shadda \or\or \set@shadda \or\or \set@shadda \or\or \set@shadda
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\ifx \a@hebr \undefined \else
+\iffalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\def \heb@output {\ifx \a@lang \a@hebr \else
+\tr@ceoff % switch to Hebrew output conventions
+\def@hebchars % define character macros for Hebrew
+\def@hebvoc % define vowel parsing routines for Hebrew
+\def@hebstrut % define strut for Hebrew
+\global\let \a@write \heb@write \global\let \a@write@hook \relax
+\def \set@arabfont {\the@hebfont }%
+\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
+
+\def \sethebfont #1{% define font switching
+ \def \the@hebfont {\tr@ceoff #1\tr@ceon }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts2.sty % apatch.sty only!
+
+\hdef \hc {m}{n}
+\sethebfont \hc
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x
+\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\a@normpen \widowpenalty \a@normpen \clubpenalty
+\leftskip \z@ \rightskip \z@
+\parfillskip \z@ plus 1fil \relax \parskip \z@
+\let \a@@kern \a@kern \let \a@@mkern \a@mkern
+\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}%
+\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000
+\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse
+\test@token #1 \end \unskip \unskip \vskip \a@vglue
+\hbox {\box\lineb@x \hfill }}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\gdef \h@putvowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\gdef \h@putvowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utfcode.sty
+
+\ifx \utfatcode \undefined \else
+
+{\catcode `\^ 7 \catcode `\^^M=13
+\gdef \utf@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\utf@end }\else % finished
+\ifx #1-\def \next {\utf@minus }\else %
+\ifx #1/\def \next {\sc@back #1}\else %
+\ifnum `#1="D6 \def \next {\utf@dvi }\else %
+\ifnum `#1="D7 \def \next {\utf@dvii }\else %
+\ifnum `#1="D8 \def \next {\utf@dviii }\else %
+\ifnum `#1="D9 \def \next {\utf@dix }\else %
+\ifnum `#1="DA \def \next {\utf@da }\else %
+\ifnum `#1="DB \def \next {\utf@db }\else %
+\ifnum `#1="E2 \def \next {\utf@eii }\else %
+ \def \next {\utf@asci #1}%
+\fi %
+\fi\fi\fi\fi\fi\fi %
+\fi\fi\fi \next }%
+} % catcode 13
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@eii #1#2{% segment E2
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq `#2\relax \advance \u@lq -128
+ \edef \sc@char {}%
+\ifnum \u@lb = 0
+\ifnum \u@lq = 12 % ZERO WIDTH NON-JOINER (U+200C)
+% \edef \sc@char {||}\else
+ \edef \sc@char {\n@xp\a@ba}\else
+\ifnum \u@lq = 13 % ZERO WIDTH JOINER (U+200D)
+ \edef \sc@char {-}\else
+% \edef \sc@char {\n@xp\a@bb}\else
+\fi\fi\fi \utf@next }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dix #1{% segment D9
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ B\or f\or q\or k\or l\or m\or n\or h\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or
+ "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \a@pc\or \f@sila\or
+ \f@sila\or *\or \n@xp\a@b\or \n@xp\a@bq\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or
+% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }%
+N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@db #1{% segment DB
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or
+ \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or
+ Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or
+ B\or \n@xp\a@H\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {}%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ \or \or \or \or
+ \or \or \n@xp\a@bd\or \n@xp\a@br\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or
+ 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or
+ \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or
+ \n@xp\a@ao"\n@xp\a@Zi\or \n@xp\a@bh-\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtoks.sty
+
+\def \a@br {\sk@r ,25 } % rah with roof
+\def \a@ba {\sk@W , 0 } % ZERO WIDTH NON-JOINER
+\def \a@bb {\sk@spc , 0 } % ZERO WIDTH JOINER
+\def \a@bb {\sk@N , 0 } % ZERO WIDTH JOINER
+\def \a@bd {\sk@d ,25 } % dal with roof
+\def \a@bh {\sk@h ,25 } % hah with roof
+\def \a@bq {\sk@q@s , 0 } % qaf without dots
+\def \a@br {\sk@r ,25 } % rah with roof
+
+\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
+\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@Wp {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@N {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@spcn {10 ,\a@smspc ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+\gdef \sk@skipn{10 ,\a@skip ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+
+\def \a@bc {\sk@@ , 0 } % empty
+%\def \a@bc {\sk@skipn , 0 } % empty
+\def \a@be {\sk@@ , 0 } % empty
+%\def \a@be {\sk@spc , 0 } % empty
+\def \a@bf {\sk@@ , 0 } % empty
+%\def \a@bf {\sk@spcn , 0 } % empty
+\def \a@bg {\sk@@ , 0 } % empty
+%\def \a@bg {\sk@skip , 0 } % empty
+\def \a@bi {\sk@@ , 0 } % empty
+%\def \a@bi {\sk@Wp , 0 } % empty
+\def \a@bj {\sk@@ , 0 } % empty
+\def \a@bk {\sk@@ , 0 } % empty
+\def \a@bl {\sk@@ , 0 } % empty
+\def \a@bm {\sk@@ , 0 } % empty
+\def \a@bn {\sk@@ , 0 } % empty
+\def \a@bo {\sk@@ , 0 } % empty
+\def \a@bp {\sk@@ , 0 } % empty
+\def \a@bs {\sk@@ , 0 } % empty
+\def \a@bt {\sk@@ , 0 } % empty
+\def \a@bu {\sk@@ , 0 } % empty
+\def \a@bv {\sk@@ , 0 } % empty
+\def \a@bw {\sk@@ , 0 } % empty
+\def \a@bx {\sk@@ , 0 } % empty
+\def \a@by {\sk@@ , 0 } % empty
+\def \a@bz {\sk@@ , 0 } % empty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+
+\let \tr@@zdmg \tr@zdmg
+
+\iffalse % inserted in 3.11f
+\def \tr@zdmg {% patches for Uzbek
+\tr@def \a@H {\"a}%
+\tr@def \a@ab {\"e}%
+}
+\fi % inserted in 3.11f
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+\def \setcode #1{% switch the input encoding
+\lowercase {\def \sc@code {#1}%
+\ifx \sc@code \sc@oldcode \else
+\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}%
+\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }%
+%\let \sc@oldcode \sc@code }
+\global\let \sc@oldcode \sc@code }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@urd #1{% wavy hah
+% c2
+\if\is@end@char #1\set@act\sk@h % isolated round h
+\fi
+\ifx #1\a@h
+\@mod@actfalse % no mark below
+\fi
+\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {16.11.2003} \def \a@level {d+UCS}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% witbhs.sty
+
+\if\AND{\isx\bhscode\undefined}{\isx\buckatcode\undefined}\else
+\def \test@@token {\iftest@command \tracingmacros 0 \fi
+\futurelet \next@token \test@space }
+
+\let \test@token \test@@token % get next token
+
+\xpa\def \xpa\kill@space \space {% gobble LTR space
+\futurelet \next@token \test@space }
+
+\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space
+\futurelet \next@token \test@space }
+
+\def \test@space {% check for LTR space
+\if \space \nxp\next@token \xpa\kill@space
+\else \xpa\test@sp@ce \fi }
+
+\def \test@sp@ce {% check for RTL space
+\if \sp@ce \nxp\next@token \xpa\kill@sp@ce
+\else \xpa\next@command \fi }
+
+\long\def \test@special #1{% check for special cases
+\ifcat \bgroup \nxp \next@token % arabic group
+ \def \next {\arab@group {#1}}\else
+\if\is@in@set #1\a@first % normal case
+ \def \next {\test@word #1}\else
+\if \relax \nxp #1% % command
+ \def \next {\test@command #1}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \let \next \test@math \else
+ \def \next {\test@word #1}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+{\catcode `\^^a0 12
+\gdef \test@word #1 {% process next RTL word
+\a@test@word #1^^a0\@@ }
+
+\gdef \a@test@word #1^^a0#2\@@ {% process next RTL word
+\ifarab \putwordb@x {\arab@item #1\@@ }\fi
+\a@spacetrue \a@showinput {#1}%
+\ifx \relax #2\relax \def \next {\test@token }\else
+\def \next {\test@token #2 }\fi
+\next }
+}% catcode ^^a0
+
+\fi % witbhs
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\def \tr@ceoff {% suspend temporarily, local, no nesting!
+\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros \relax }%
+\tracingmacros 0 }
+
+\def \notr@ce {% suspend temporarily, for NFSS only, no nesting!
+\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros \relax}%
+\tracingmacros 0 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.12.2003} \def \a@level {e}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aboxes.sty
+
+\def \put@tie {% deposit ties between characters
+\setbox0 \hbox {\char \the\act@tie }%
+\setbox2 \hbox {\char \the\act@tie \/}%
+\ifdim \a@disp = \z@ \unhcopy0
+\else \raise\a@disp \hbox {\unhcopy0 }\fi
+\global\advance\a@disp \wd2 \global\advance\a@disp -\wd0 }
+
+\def \set@high@act {% prepare raising of actual character
+\global\advance \a@disp \a@dsp \global\@high@acttrue }
+
+\def \set@low@act {% lower actual character
+\global\advance \a@disp -.25ex }
+
+\def \set@loww@act {% lower actual character
+\global\advance \a@disp -.50ex }
+
+\def \set@lowww@act {% lower actual character
+\global\advance \a@disp -.75ex }
+
+\def \fix@act@box {% fixup position and set tatwil
+\if@high@act \global\advance\a@disp -\a@dsp \global\@high@actfalse \fi
+\global\advance\a@min@dp \a@ic \global\advance\a@disp \a@ic
+\if@tat \put@tat \@tatfalse \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\ifx \a@patchlevel \undefined % load only the first time
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+
+\iffalse
+\def \tr@zdmg {% patches for Uzbek
+\tr@@zdmg
+\tr@def \a@H {\"a}%
+\tr@def \a@ab {\"e}%
+}
+\fi
+\let \tr@zdmg \tr@@zdmg % nullify problems in version 3.11d
+
+\gdef \tr@@aword #1{% transcribe rest of word
+\let \tr@old \tr@act \def \tr@act {#1}%
+\case #1\of
+{ >{\@gobble }
+ \cap {\c@ptrue \tr@aword }
+% |"^\a@e{\tr@aword }
+ |"^{\tr@aword }
+ -{-\tr@aword }
+% XlEeQ{\csname tr@@\string #1\endcsname }
+ TXlEeQ{\csname tr@@\string #1\endcsname }
+ \a@a NUW{\setc@p #1\kill@alif }
+ P{\tr@P \tr@aword }
+ aiu{\tr@wasla #1}
+ \a@Ze{\xpa\tr@aword \tr@old }
+\default {\@vocalfalse
+ \ifcat \nxp #1-#1\else \setc@p #1%
+ \fi \tr@aword }
+}\endcase }
+
+\gdef \tr@@T #1{\@vocalfalse
+\ifx #1|h\let \next \tr@aword \else
+t\def \next {\tr@aword #1}\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@judchars {% define character macros for Judeo-Arabic
+\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
+\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
+\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
+\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
+\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
+\gdef \tc@H {\act@cd \hc@hh } % .h
+\gdef \tc@R {\act@cd \hc@j } % .g
+\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
+\gdef \tc@V {\act@cd \hc@tt } % .t
+\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
+\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
+}}% end of dynamic definitions
+
+\fi % Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {12.02.2004} \def \a@level {f}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cp1256.sty
+
+\ifx \awinatcode \undefined \else
+
+\def \set@awin {% select the CP 1256 scanner
+\let \sc@beg \awin@beg \let \sc@word \awin@word
+\let \sc@back \sc@@back \let \sc@endscan \awin@endscan
+\global\let \a@scan \awin@scan \setawin@codes
+\awin@catcodes \yahdots
+\global \a@paren {}%
+\a@message {input encoding set to Windows CP 1256 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding
+arabwin\set@awin cp1256\set@awin }
+
+\gdef \awin@beg #1{% start CP 1256 scanner
+\h@mzafalse \iz@fetfalse \yahdots \@ssimfalse
+\novocalize % because of explicit quoting
+\ifx #1"\def \next {\awin@lquote}\else
+\ifx #1^^c7\def \next {\awin@alif}\else
+\def \next {\awin@word #1}\fi\fi \next }
+
+\gdef \awin@lquote {% initial quote
+\def \sc@char {`}\sc@put \awin@beg }
+
+\gdef \awin@dquote {% double quote, intermediate version
+%\def \sc@char {\a@dq}\sc@put \awin@word }
+\def \sc@char {\nxp\a@dq }\sc@put \awin@word }
+
+\gdef \awin@dquote {% right quote
+\def \sc@char {'}\sc@put \awin@word }
+
+\fi % cp1256
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\long\def \test@special #1{% check for special cases
+%\if \bgroup \nxp \next@token % arabic group
+\ifcat \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+%\if \sp@ce \nxp \next@token % RTL space
+% \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+{\arab@codes % because of special characters
+
+\gdef \t@b@g #1{% start \ArabTeX scanner
+ \def \next {\sc@word {#1}}\def \sc@char {@}%
+\ifcat a\nxp #1\else % letter
+\apply \set@next \tocase #1\of
+{ \@{\sc@endscan } % finished
+ '{\t@rquote }
+ `{\t@lquote }
+ *{\t@star }
+ +{\t@plus }
+ ={\t@equ }
+\default {\sc@word {#1}}
+}\endcase
+\fi \next }
+
+\gdef \t@w@rd #1{% transform input into internal notation
+ \def \next {\sc@word }%
+\ifx #1\@\def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1a%
+ \ifx #1a\def \next {\t@aa }\else % test for aa -> A
+ \ifx #1n\def \next {\t@nn }\else % test for ng, ny
+ \edef \sc@char {\csname sc@#1\endcsname }% letter
+ \ifx \sc@char \relax \def \sc@char {#1}% undef letter
+ \fi
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
+ \fi
+ \fi\fi \else % other character
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\ifx #1'\def \next {\t@hamza }\else % hamza
+ \def \sc@char {#1}%
+\apply \set@next \tocase #1\of
+{~\@ldtie{\t@tie }
+ .{\t@dot }
+ ,{\t@comma }
+ -{\t@minus }
+ `{\t@ain }
+ "{\t@dquote }
+ :{\t@colon }
+ ^{\t@up }
+ _{\t@down }
+ |{\t@bar }
+ *{\t@shadda }
+ +{\t@madda }
+ ={\t@sukun }
+\default {\t@w@@rd {#1}}
+}\endcase
+\fi\fi\fi\fi \next }
+
+} % \arab@codes
+
+\def \t@star {\sc@dep *}
+\def \t@plus {\sc@dep +}
+\def \t@equ {\sc@dep =}
+
+\let \sc@beg \t@b@g % apatch only
+\let \sc@word \t@w@rd % apatch only
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \a@parse #1>{% parse token sequence into syllables
+\iftest@parse \tracingmacros = 1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+\csname a@parse@hook\endcsname
+\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
+\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
+\iftest@parse \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@revwd )>\fi }
+
+\def \sv@@I #1{% long i
+\ifx #1N\def \next {\sv@Zi }\else
+\ifk@sh \put@syl \put@con y\add@kasraspec
+ \put@syl \def \next {\syl@con #1}%
+\else \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }%
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+
+\ifx \verseatcode \undefined \else
+
+% define some verse dimensions, verses will be centered
+\def \setversedim #1#2{% set length of half-verse, separation
+\a@hvlen #1\relax \a@hvsep #2\relax
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\advance \a@hvind -\a@hvsep
+\divide \a@hvind 2 \advance \a@hvind -\a@hvlen }
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\par \hfill }% first block
+{\noindent \hspace \a@hvind \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@hvlen {#3}% second block
+\par }
+
+\fi % verses.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\def \a@@write #1>{% Arabic output
+\iftest@write \tracingmacros 1
+\iftest@parse \else \a@verb (#1 )>\fi\fi
+\csname a@write@hook\endcsname
+\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi
+\iftest@write \tracingmacros 0 \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\ifx \a@hebr \undefined \else
+
+\def \heb@write #1>{% Hebrew output routine
+\iftest@write \tracingmacros = 1
+\iftest@parse \else \a@verb (#1)>\fi\fi
+\csname a@write@hook\endcsname
+\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
+\iftest@write \tracingmacros = 0
+\fi }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {26.02.2004} \def \a@level {g}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+\def \sc@restore {% restore scanner defaults
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\let \sc@beg \t@b@g \let \sc@word \t@w@rd
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\global\let \a@scan \a@@scan \seta@codes
+\let \arab@codes \a@arab@codes
+\let \unarab@codes \a@unarab@codes }
+
+\def \t@comma #1{% after ,
+\apply \set@char \tocase #1\of
+{ a{a\nxp \a@H }
+ A{\nxp \a@a \nxp \a@H }
+ c{\ift@rk J\else \nxp \a@c \fi }
+ d{\ifp@sht \nxp \a@aA \else
+ \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi }
+ e{e\nxp \a@H }
+ g{\nxp \a@L }
+ h{\nxp \a@h }
+% n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi }
+ n{\ifs@nd \nxp \a@an \else \nxp \a@m \fi }
+ r{\ifp@sht \nxp \a@q \else
+ \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi }
+ s{\ift@rk x\else \nxp \a@s \fi }
+ t{\ifp@sht \nxp \a@v \else
+ \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi }
+ z{\ift@rk D\else \nxp \a@z \fi }
+}\endcase \t@tail ,#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utf8.sty
+
+\ifx \utfatcode \undefined \else
+
+\gdef \set@utfc {% select the UTF-8 scanner
+\global\let \a@scan \utfc@scan
+\let \sc@beg \utf@beg
+\let \sc@word \utf@word
+\global\a@digits = {0123456789}%
+\global\a@first = {ÍÎÏ•’}%
+\catcode `á 11
+\a@message {input encoding set to UTF-8 conventions}}
+
+\fi % utf8.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bhs.sty
+
+\ifx \bhsatcode \undefined \else
+
+% dynamic definitions for BHS Hebrew coding
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\"=12 \catcode `\&=12 \catcode `\$ 12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbhs@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d}
+\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h}
+\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l}
+%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p}
+\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p}
+\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
+%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X}
+\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X}
+\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ}
+\a@digits = {0123456789} \a@paren = {[]}
+\a@first = {)+(##&$":.,*0123456789}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for BHS
+
+{\arab@codes
+\catcode `\& 12 \catcode `\$ 12
+
+\gdef \bhs@beg #1#2{% start BHS scanner
+\@ssimfalse \def \next {\bhs@word #1#2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #2\@\def \next {\bhs@testpara #1#2}\else
+\ifx #2?\def \next {\bhs@testpara #1#2}\else
+\fi\fi\fi \next }
+
+\gdef \bhs@word #1#2{% transform input into internal notation
+ \def \next {\bhs@word #2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #1]\def \next {\bhs@word }\else
+\ifx #10\def \next {\bhs@zero #2}\else
+\ifx #17\def \next {\bhs@seven #2}\else
+%
+\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
+\ifx #1?\def \next {\bhs@query #2}\else
+\ifx #1:\def \next {\bhs@colon #2}\else
+\ifx #1|\def \sc@char {|}\sc@put \else
+%
+\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else
+\ifx #1'\def \sc@char {'}\sc@put \else
+\ifx #1)\def \sc@char {Q}\sc@put \else
+\ifx #1+\def \sc@char {C}\sc@put \else
+%
+\ifx #1(\def \sc@char {P}\sc@put \else
+\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else
+\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else
+\ifx #1$\def \sc@char {x}\sc@put \else
+%
+\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else
+\ifx #1-\def \sc@char {B}\sc@put \else
+\ifx #1*\def \sc@char {*}\sc@put \else
+\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \sc@put
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\next }
+} % arabcodes
+
+\fi % bhs.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cp1255.sty
+
+\ifx \hwinatcode \undefined \else
+
+\def \hwin@catcodes {% assignments for CP 1255
+\countdef \is@m=2 \is@m = 192 \is@n = 64
+\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+{\hwin@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \sethwin@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I}
+\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O}
+\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E}
+\def \sc@^^c6 {"e} \def \sc@^^c7 {"a}
+\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o}
+\def \sc@^^ca {L} \def \sc@^^cb {"u}
+\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|}
+\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo}
+
+\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze}
+\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:}
+\def \sc@^^d4 {"\n@xp\a@Zi} \def \sc@^^d5 {w-w}
+\def \sc@^^d6 {wy} \def \sc@^^d7 {y-y}
+\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@}
+\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@}
+
+\def \sc@M {M} %\def \sc@N {N}
+\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
+\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
+\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
+\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
+
+\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
+\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
+\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@}
+\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@}
+\a@digits = {0123456789}
+\a@paren = {()[]}
+\a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\fi % cp1255.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hescan.sty
+
+\def \hwin@catcodes {% assignments for CP 1255
+\countdef \is@m=2 \is@m = 192 \is@n = 64
+\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% heparse.sty
+
+\def \sv@ay {% Yiddish ay
+\put@syl \put@con \a@h \v@ctrue \add@fatha \put@syl \test@patf }
+
+\def \sv@ey {% Yiddish ey
+\put@syl \put@con \a@h \put@syl \test@patf }
+
+\def \sv@oy {% Yiddish oy
+\put@syl \put@con \a@p \put@syl \test@patf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+\tc@def \a@h {\act@cd \hc@ey } % yod yod
+\tc@def \a@p {\act@cd \hc@oy } % waw yod
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+
+\ifx \verseatcode \undefined \else
+
+%\newdimen \a@@hvlen
+\csname newdimen\endcsname \a@@hvlen
+
+% define some verse dimensions, verses will be centered
+\def \setversedim #1#2{% set lengths of half-verse, separation
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
+\ifx [#2\def \next {\set@verseI [}\else
+\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
+
+\def \set@verseI [#1]{% optional parameter
+\a@@hvlen #1\relax \set@@verse }
+
+\def \set@@verse #1{% separation
+\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
+\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
+{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@@hvlen {#3}% second block
+\tracingmacros 0
+\par }
+
+\def \a@c@halfverses #1#2{% optional parameter?
+%\tracingmacros 1
+\cond{\ifx [#2}{\half@verses {#1}[}%
+{\half@verses {#1}[\hfill]{#2}}\fi }
+
+\def \half@verses #1[#2]#3{% first[mid]second
+\test@token \connverses {#1}{#2}{#3}}
+
+\fi % verses.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utfcode.sty
+
+\ifx \utfatcode \undefined \else
+
+\def \utf@dvii #1{% segment D7
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char
+ {\ifcase \u@lb
+ K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or
+ \fi }%
+\or \advance \u@lb -8 \edef \sc@char {}%
+\or \advance \u@lb -16 \edef \sc@char
+ {\ifcase \u@lb
+ Q\or b\or g\or d\or h\or w\or z\or X\or
+ \fi }%
+\or \advance \u@lb -24 \edef \sc@char
+ {\ifcase \u@lb
+ C\or y\or k\or k\or l\or m\or m\or n\or
+ \fi }%
+\or \advance \u@lb -32 \edef \sc@char
+ {\ifcase \u@lb
+ n\or s\or P\or p\or p\or S\or S\or q\or
+ \fi }%
+\or \advance \u@lb -40 \edef \sc@char
+ {\ifcase \u@lb
+ r\or \n@xp\a@S \or t\or \or \or \or \or \or
+ \fi }%
+\or \advance \u@lb -48 \edef \sc@char
+ {\ifcase \u@lb
+% w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or
+ \n@xp\a@w \or \n@xp\a@p \or \n@xp\a@h \or '\or
+ ''\or \or \or \or
+ \fi }%
+\or \advance \u@lb -56 \edef \sc@char
+ {\ifcase \u@lb
+ \or \or \or \or \or \or \or "|\or
+ \fi }%
+\fi \utf@next }
+
+\fi % utfcode.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% yiddish.sty
+
+\ifx \yidatcode \undefined \else
+
+\def \yid@t #1{% ts ?
+\ifx #1s\def \next {\yid@ts }\else
+\def \sc@char {C}\def \next {\yid@word #1}\sc@put
+\fi \next }
+
+\def \yid@ts #1{% tsh ?
+\ifx #1h\def \sc@char {C\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {S}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\fi % yiddish.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {15.03.2004} \def \a@level {h}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\ifx \a@patchlevel \undefined % first patching run
+
+\csname newtoks\endcsname \a@oldoutput
+\csname newbox\endcsname \a@oldbox
+\csname newbox\endcsname \a@newbox
+\csname newdimen\endcsname \a@prevdepth
+
+\def \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+\def \a@Rinsert #1{% put a sequence of RL words into Ltext
+%\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\def \a@box@aparm {% Arabic parameters for vbox
+\let \end \relax \def \next@command {\test@special}\transfalse
+\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
+\showfalse \spreadtrue \a@hsize \a@Lwidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\leftskip \z@ \rightskip \z@
+%\advance \a@hsize 20pt % TENTATIVE
+\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
+\def \tat@skip {0.04ex plus 0.5ex }}
+
+\def \a@box@rparm {% Roman parameters for vbox
+\hbadness 10000 \tolerance 5000
+\parskip \z@ \parfillskip \z@ plus 1fil \relax \vskip \a@vglue }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\tracingmacros 0
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \vskip -\parskip \prevdepth \a@prevdepth
+\ifvoid \a@oldbox
+\else \advance \a@lines -1 \setbox\a@oldbox \hbox
+{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+\putlineb@x {\copy\a@oldbox }\a@spacefalse
+\test@token #1 \end \unskip \unskip
+\vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines
+\ifdim \wd\a@newbox = 0pt \unhbox \tempb@x
+\else \unhbox \a@newbox
+\ifdim \wd\tempb@x = 0pt
+\else \space \ins@skip \unhbox \tempb@x
+\fi\fi \penalty -9999
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@back@line {% skip back
+\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
+\dimen2 \lastskip \unskip \unskip \unpenalty
+\global\setbox \a@oldbox \lastbox
+\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
+\advance\dimen0 -\ht\a@oldbox \fi
+\advance\dimen0 -\dimen2 \global\a@prevdepth \dimen0 \unskip }%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\showbox 255
+\setbox 255 \vbox {\unvbox 255 % put back to MVL
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % first run
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {29.04.2004} \def \a@level {i2}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% buck.sty
+
+\ifx \buckatcode \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbuck@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@}
+\def \sc@B {@} \def \sc@C {J} \def \sc@G {g} \def \sc@I {Qi}
+\def \sc@J {j} \def \sc@L {@} \def \sc@M {@} \def \sc@O {Qa}
+\def \sc@P {p} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {Qw}
+\def \sc@V {v} \def \sc@W {Qw} \def \sc@X {@}
+
+\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw}
+\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b}
+\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G}
+\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F}
+\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x}
+\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z}
+\def \sc@E {P} \def \sc@g {R} \sc@def _ {|B}
+\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w}
+\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN}
+\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i}
+%\sc@def ~ {@} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
+\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
+\sc@def ^ {"'}
+\sc@def = {"\n@xp \a@ZE }
+
+\a@digits = {0123456789} \a@paren = {()[]}
+\a@first = {"`}
+\setbuck@codes@hook
+\globaldefs=0 }
+\global\let \setbuck@codes@hook \relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\[ 1 \catcode `\{ 11
+\gdef \buck@beg #1[% start the TB scanner
+\h@mzafalse \iz@fetfalse \novocalize \@ssimfalse
+ \def \next [\buck@word #1}%
+\ifx #1\@ \def \next [\sc@endscan }\else % finished
+\ifx #1{\def \next [\buck@lbrace }\else
+\ifx #1"\def \next [\buck@lquote }\else
+\ifx #1A\def \next [\buck@alif }\else
+\fi\fi\fi\fi \next }
+} % catcodes 1 and 11
+
+{\catcode `\^^M=13 \catcode `\~ 11 %
+\gdef \buck@word #1#2{% transform input into internal notation
+ \def \next {\buck@word #2}%
+\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
+\ifx #1-\def \next {\buck@minus #2}\else %
+\ifx #1"\def \next {\buck@rquote #2}\else %
+\ifx #1y\def \next {\buck@yah #2}\else %
+\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character
+\ifx #1#2\def \next {\buck@two #1}\else %
+ \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+ \else \def \sc@char {\nxp #1}%
+ \fi %
+ \sc@put %
+\fi\fi\fi\fi\fi\fi \next }%
+} % catcodes 13 and 11
+
+\def \buck@alif #1{% specials?
+\def \next {\buck@word }%
+\if \nxp #1=\def \sc@char {QA}\sc@put \else
+\if \nxp #1@\def \sc@char {"}\sc@put \else
+\if \nxp #1^\def \sc@char {Qa}\sc@put \else
+\if \nxp #1_\def \sc@char {Qi}\sc@put \else
+\def \sc@char {A}\def \next {\buck@word #1}\sc@put
+\fi\fi \fi\fi \next }
+
+\def \buck@yah #1{% hamza?
+\def \next {\buck@word }%
+\if \nxp #1^\def \sc@char {Qy}\sc@put \else
+\def \sc@char {y}\def \next {\buck@word #1}\sc@put
+\fi \next }
+
+\def \set@buck {% substitute new scanner
+\let \sc@beg \buck@beg \let \sc@word \buck@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\global\let \a@scan \a@@scan \setbuck@codes
+\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes
+\let \test@special \buck@special
+\message {input coding set to Tim Buckwalter's encoding conventions}}
+
+\def \buck@cat {% change catcodes
+\catcode `\# 11 \catcode `\= 11 \catcode `\^ 11 \catcode `\~ 11
+\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11
+\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11
+\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 }
+
+\def \buck@recat {% change catcodes back
+\catcode `\# 6 \catcode `\= 12 \catcode `\^ 7 \catcode `\~ 13
+\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4
+\catcode `\< 12 \catcode `\} 2 \catcode `\* 12 \catcode `\$ 3
+\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
+\case #1\of
+{ |{\put@con Q}
+ A{\put@con a\add@madda \@sukfalse }
+ y{\put@con Y\add@hamza \ifqur@n \add@hamzalow \fi }
+ u{\put@con w\add@hamza }
+ i{\put@con a\add@hamza \add@hamzalow }
+\default {\put@con #1\add@hamza }
+}\endcase \syl@voctest }
+
+\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2
+\case #1\of
+{ B{\togglev@c \add@sukun \put@syl \syl@con #1}
+ "{\togglev@c \add@sukun \put@syl \syl@beg }
+ |{\syl@@quote@voc }
+ '{\add@hamza \syl@voctest }
+\default {\togglev@c \syl@voctest #1}% vowel: sukun
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\ifx \a@hebr \undefined \else
+
+\ifx \a@patchlevel \undefined % load only the first time
+\else
+\global\let \@@set@hcls \set@hcls
+
+\gdef \set@hcls {%
+\@@set@hcls
+\global\let \h@putvowel \h@put@@vowel
+}
+
+\fi
+
+\gdef \h@put@@vowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.80}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -1\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\fi % a@hebr
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {17.05.2004} \def \a@level {j}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@RL {% RTL insertion inside LRtext
+\ifaRL \else \aRLtrue
+ \let \a@RLpar \par % prepare for normal baselines
+ \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
+ \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
+\fi
+\ifhmode \lineskiplimit -.9\baselineskip
+\fi % enforce uniform baselines
+\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
+
+\def \a@Rinsert #1{% put a sequence of RL words into Ltext
+\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \vskip -\parskip \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else
+\advance \a@lines -1 \setbox\a@oldbox \hbox
+{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\copy\a@oldbox }\a@spacefalse
+ \test@token #1 \end \unskip \unskip
+ \vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else \space \ins@skip
+\fi\fi \unhbox \tempb@x \penalty -9999
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.sty
+
+\def \a@endx {\if@ignore \@ignorefalse \xpa\ignorespaces \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {24.05.2004} \def \a@level {k}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\def \all@false {% reset language code to default
+\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse
+\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse \k@shfalse
+\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\arab@output \catcode`\<=\active }
+
+\pdef \setuighur {% switch language specific processing
+\let \vocalize \novocalize \let \fullvocalize \novocalize
+\novocalize \all@false \@ssimfalse \h@mzafalse
+\u@ghtrue \def \a@defaultfont {\setnash }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@RL {% RTL insertion inside LRtext
+\ifaRL \else \aRLtrue
+ \let \a@RLpar \par % prepare for normal baselines
+ \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
+ \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
+\fi
+\lineskiplimit -.9\baselineskip % enforce uniform baselines
+\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@lines -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\showbox 255
+\setbox 255 \vbox {\unvbox 255 % put back to MVL
+\a@back@line }\unvbox 255 }
+
+\def \a@Runpack {% unpack all lines from the insertion
+\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
+\ifvbox \Rinsertb@x \repeat \unpenalty \RLskip }
+
+\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (right)
+\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (left)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@Linsert #1{% splice Ltext into RL paragraph
+\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
+\putwordb@x {\LRskip }\a@spacetrue \arab@codes
+\tracingmacros 0
+\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {22.06.2004} \def \a@level {l}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alists.sty
+
+\def \a@c@item
+{\@ifnextchar [{\a@@item }{\@noitemargtrue
+\expandafter \a@@item \expandafter [\@itemlabel ]}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\let \ac@high \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+
+\at@arabtext {% switch to Arabic terms
+ \def\labelenumi{\theenumi\nospace-}
+ \def\labelenumiii{\theenumiii\nospace)}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {23.01.2005} \def \a@level {m}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabext.sty
+
+\ifx \a@@figure \undefined \else
+
+\def \a@@figure {% figure within Arabic environment
+\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }%
+\a@par \figure }
+
+\def \a@@table {% table within Arabic environment
+\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }%
+\a@par \table }
+
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {06.04.2005} \def \a@level {n}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+% for use with abidir.sty version 3.12a:
+\csname newcount\endcsname \a@lines
+\csname newdimen\endcsname \a@Lwidth
+
+%\newdimen \a@prevdepth
+%\newdimen \a@displaywidth
+%\newcount \a@prevgraf
+%\newtoks \a@oldoutput
+
+\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (right)
+\def \LRskip {\hskip 1em plus 0.1em }% before RL insertion (left)
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@prevgraf -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\else \RLskip
+\fi
+\egroup }
+
+\gdef \a@back@line {% skip back over empty display
+\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
+\dimen2 \lastskip \unskip \unskip \unpenalty
+\global\setbox \a@oldbox \lastbox % last line
+\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
+\advance\dimen0 -\ht\a@oldbox \fi
+\advance\dimen0 -\dimen2 % compute \prevdepth
+\global\a@prevdepth \dimen0 \unskip }%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
+\setbox 255 \vbox {\unvbox 255 % put back into MVL
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+% because of an incompatible change in Plain 3.1415926
+
+\gdef \x@s #1{\oalign{#1\crcr\hidewidth \nsh@ft{34}% accent for _h
+ \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}}
+
+\gdef \x@x #1{\oalign{#1\crcr\hidewidth \nsh@ft{29}% accent for .s in Urdu
+ \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}}
+
+\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
+ \kern.0156\dimen\z@} % positive kern for slant
+
+\def \rsh@ft #1#2{\ish@ft{#1}#2\nsh@ft{#1}}
+
+\def \nsh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
+ \kern-.0156\dimen\z@} % compensate for slant in lowered accents
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {25.01.2006} \def \a@level {o}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% version 3.11i::abidir.sty
+
+%\csname newbox\endcsname for \newbox etc. (inner!)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifm@lay \else
+\ifurd@ \set@act \sk@h@s \hah@urd #3% round h?
+ \ifx #1T\else
+ \ifx #3l\test@allah {#4}{#6}\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+\ifx #3l\test@allah {#4}{#6}\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi
+\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.02.2006} \def \a@level {p}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\csname newdimen\endcsname \a@displaywidth
+
+\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (left)
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
+$${\par }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@prevgraf -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\else \RLskip
+\fi
+\egroup }
+
+\def \a@box@aparm {% Arabic parameters for vbox
+\let \end \relax \def \next@command {\test@special}\transfalse
+\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
+\showfalse \spreadtrue \a@hsize \a@displaywidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\leftskip \z@ \rightskip \z@
+%\advance \a@hsize 20pt % TENTATIVE
+\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
+\def \tat@skip {0.04ex plus 0.5ex }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aoutput.sty
+
+\def \put@ab@x {% deposit line
+\ifhmode \unskip {\par }\penalty \clubpenalty
+\parindent \z@ \parskip \z@ \else
+\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
+\fi\fi
+\begingroup \parfillskip 0pt plus 1fill
+ \leftskip \z@ \rightskip \z@ \noindent
+ \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
+ \box\a@tempb@x \par
+\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
+\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
+\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% altxext.sty
+
+\ifx \a@olddisp \undefined
+\let \a@olddisp \[ % for lineno.sty
+\ifx \linenumbers \undefined \else
+ \def \[{\par\nobreak\noindent \a@olddisp}
+ \all@w@ne \linelabel
+\fi
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for acmd.sty in version 3.11 only!
+
+\def \a@c@smallskip {\a@@par \smallskip \test@token }
+\def \a@c@medskip {\a@@par \medskip \test@token }
+\def \a@c@bigskip {\a@@par \bigskip \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+{\catcode `\< = \@other % better make sure
+\gdef \a@parse #1>{% parse token sequence into syllables
+\iftest@parse \tracingmacros = 1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+\csname a@parse@hook\endcsname
+\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
+\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
+\iftest@parse \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@revwd )>\fi }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {01.03.2006} \def \a@level {q}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.sty
+
+\ifx \linenumbers \undefined
+\global\let \linenumbers \relax \fi
+\global\let \ifLineNumbers \iffalse
+% CAUTION: must be in \outer context!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\gdef \a@Rinsert #1{% put a sequence of RL words into Ltext
+\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\gdef \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@back@line {% skip back over last line
+\ifLineNumbers % undo last linenumber
+ \unskip \unkern \unskip \unpenalty \setbox0 \lastbox
+ \ifvoid0 \else \global \advance \c@linenumber -1
+ \fi \unkern \unskip
+\fi \global\setbox \a@oldbox \lastbox % grab last text line
+\ifvoid \a@oldbox \prevdepth 0pt % start of paragraph
+\else \dimen0 \baselineskip \advance\dimen0 -\ht\a@oldbox
+ \advance\dimen0 -\lastskip \prevdepth \dimen0 % compute \prevdepth
+\fi \unskip }
+
+\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+\everypar {}%
+\par \global\a@prevgraf \prevgraf
+\ifinner \a@back@line \else
+ \global\output = {\a@newoutput }\break
+\fi
+\dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
+\ifvoid \a@oldbox \global \a@displaywidth \hsize
+\else \advance \a@prevgraf -1 \vskip -\parskip
+ \global \a@displaywidth \wd \a@oldbox
+ \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else \space \LRskip
+\fi\fi\fi
+\unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack \else \RLskip
+\fi \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
+%\showbox255
+\setbox 255 \vbox {\unvbox 255 % put back into MVL
+%\tracingmacros 1
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@Linsert #1{% splice Ltext into RL paragraph
+%\tracingmacros 1
+\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
+\putwordb@x {\LRskip }\a@spacetrue \arab@codes
+%\tracingmacros 0
+\test@token }
+
+\gdef \a@@Linsert #1{% splice Ltext into RL paragraph
+\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox
+{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne
+\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil
+\vskip \a@vglue \everypar {}\parskip \z@
+\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking
+\noindent \null #1\clubpenalty 0 \widowpenalty 0 \tolerance 10000
+\endgraf \fontdimen4\font \dimen2 }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\ifx \a@check@mathfonts \undefined
+\global\let \a@check@mathfonts \check@mathfonts
+\gdef\check@mathfonts{\tr@ceoff % dont trace fonts
+\a@check@mathfonts \tr@ceon }
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aedpatch.sty
+
+\let \ins@skip \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+%\long\def \test@@special #1{% check for special cases
+\long\gdef \test@special #1{% check for special cases
+\ifcat \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+\if \sp@ce \nxp \next@token % RTL space
+ \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {16.04.2006} \def \a@level {r}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\gdef \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\RLskip \egroup }
+
+\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+ \dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+ \skip0 \lastskip \everypar {}\par \global\a@prevgraf \prevgraf
+\ifinner \a@back@line \else \global\output = {\a@newoutput }\break
+\fi
+ \dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
+ \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \global \a@displaywidth \hsize
+\else \advance \a@prevgraf -1 \vskip -\parskip
+ \global \a@displaywidth \wd \a@oldbox
+ \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \ifdim \skip0 = 0pt \else \hskip \skip0
+ \fi \LRskip
+\fi\fi\fi
+\unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\fi \egroup }
+
+\def \a@Runpack {% unpack all lines from the insertion
+\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
+\ifvbox \Rinsertb@x \repeat \unpenalty }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {02.07.2006} \def \a@level {s}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\input alocal.sty % local patches!
+% must be idempotent!
+
+\ifx \a@patchlevel \undefined % first patching run
+\a@ident {apatch.sty}
+ {\a@version\a@level\space last minute patches } {\a@pdatum }
+ \edef \a@patchlevel {\a@version \a@level \space (\a@pdatum )}
+\else \a@message {version \a@patchlevel: second phase of patching}
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`\" = \patchdqcode \catcode`\@ = \patchatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/arabtex.htm b/language/arabic/arabtex/arabtex.htm
index 99cad67167..be97c69f04 100644
--- a/language/arabic/arabtex/arabtex.htm
+++ b/language/arabic/arabtex/arabtex.htm
@@ -1,267 +1,267 @@
-<html><head>
-<title>ArabTeX Version 3</title></head>
-<body>
-<center>
-<img src="arabtex.gif" alt="ArabTeX logo">
-<h1> ArabTeX Version 3 </h1>
-</center>
-
-<hr><!-- ================================================ -->
-
-<a href="http://129.69.218.213/arabtex/doc/arabtex/html/changes.htm">
- Last changes: Version 3.11s, July 02, 2006
-</a>
-<p>
-<img src="new1.gif" alt="new">
-There is also a prototype of
-<a href="http://129.69.218.213/arab312/doc/arabtex/html/changes.htm">
-Version 3.12, July 06, 2006
-</a>
-
-<hr><!-- ================================================ -->
-
-<img src="new1.gif" alt="new">
-There is a new version of the User Manual
-<a href="http://129.69.218.213/arabtex/doc/arabdoc.ps">
-(PS),</a>
-<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
-(PDF).</a>
-<br>
-This version is reasonably current, but still being updated.
-<p>
-Should you be an Orientalist, you might want to look at a small list of
-<a href="http://129.69.218.213/arabtex/doc/arabtex/html/refer.htm">applications</a>.
-
-</p><hr><!-- ================================================ -->
-
- The set of files, of which THIS file is supposed to be part of,
- contains a package extending the capabilities of TeX/LaTeX to
- generate the arabic writing from an ASCII transliteration for
- texts in several languages using the arabic script. Several
- other common encodings are also supported.
-<p>
-
-<img src="new1.gif" alt="new">
-The package is available in packed form as
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.zip">
-arab311.zip</a>
-<!--
-and <a href=ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtds.zip>arabtds.zip</a>
--->
-for PC users, and
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.tgz">
-arab311.tgz</a> or
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.tar.z">
-arab311.tar.Z</a> for *N*X users.
-<br>
-Note: we had to change the file names to avoid some server problems.
-<p>
-
-<img src="new1.gif" alt="new">
-The files
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/tex311.zip">
-tex311.zip</a> and
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/tex311.tgz">
-tex311.tgz</a>
-contain just the ArabTeX macros.
-For upgrading to the minor version (3.11), downloading these is sufficient
-if the fonts are already installed.
-<p>
-Depending on the server there may be also the unpacked files,
-or only these.
-</p>
-
-<p>
-In case of doubt, check for the latest version of
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>".
-<br>
-This file contains last minute corrections that possibly
-are not yet contained in the packed files.
-</p><p>
-
-The following ASCII files give more detailed information:
-
-<table>
-<!--
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.doc">
-arabtex.doc
- </td><td>
- a short introduction ( rather out of date)
-</td></tr>
--->
-
-<tbody><tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/txt/arabtex.faq">
-arabtex.faq</a>
-
-</td><td>answers to some Frequently Asked Questions
- (updated as necessary)
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
-changes.txt</a>
-
-</td><td>release history, new features, and known bugs
- (updated as necessary)
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/changes2.txt">
-changes2.txt</a>
-
-</td><td>release history up to version 3.00
-
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/install.txt">
-install.txt</a>
-
-</td><td>list of available files, and installation notes
-</td></tr>
-
-<tr><td valign="top">
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>
-
-</td><td>last minute corrections; put this file onto the TEXINPUT path;
-it will patch automatically (updated as necessary).
-</td></tr>
-</tbody></table>
-
-There are also various additional documentation files.
-</p><p>
-<img src="new1.gif" alt="new">
-The contents of a subdirectory "REPORT", if still present, are OBSOLETE.
-Refer to the (draft of the)
-<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
-user manual</a> instead.
-
-</p><hr><!-- ================================================ -->
-
-There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
-<br>
-
-Version 2 was the first complete release accompanied by a manual,
-but is no more being maintained.
-<br>
-
-Version 3 is an upward compatible extension of Version 2
-with many new features, e.g. the possibility to read input files
-in the ASMO 449, ISO 8859-6, and UTF-8 Codes,
-and a host of new commands for better formatting of Arabic text,
-or catering for historic writing styles.
-<br>
-
-Versions from 3.05 onward contain a package to process Hebrew,
-and provide long right-to-left insertions.
-
-For details, consult the manual.
-
-<hr><!-- ================================================ -->
-
-<img src="new1.gif" alt="new">
- ArabTeX is copyrighted by the author. If you use the system for
- scientific work please give appropriate credit to the software
- and the author (e.g. in the colophon of a monograph.) We also
- appreciate a complimentary copy of any scientific work produced
- with ArabTeX.
-<p>
-
-<img src="new1.gif" alt="new">
-ArabTeX may be redistributed and/or modified under the terms
-of the LaTeX Project Public License distributed
-from CTAN archives in the directory
-<a href="ftp://ftp.dante.de/tex-archive/macros/latex/base/lppl.txt">
-macros/latex/base/lppl.txt</a>;
-either version 1 of the License,
-or (at your option) any later version.
-
-</p><hr><!-- ================================================ -->
-
-ArabTeX is an experimental system and supposed to change without
-prior notice. Whoever will use it does so at her/his/its own risk.
-We cannot take any responsibility on correct function, suitability
-for whatever purpose, or correct documentation.
-
-If you have any complaints or suggestions, please forward them to
-<a href="mailto:lagally@informatik.uni-stuttgart.de">the author</a>.
-We shall consider any reasonable suggestion,
-but we will use our own judgment on changes,
-and our resources are severely limited.
-<p>
-
-If problems turn up while running ArabTeX, please
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
-check first</a>
-at "ftp.informatik.uni-stuttgart.de" whether there is a new version,
-or whether there are any new corrections in
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>".
-
-If the problem goes away with the new version, please inform the
-server you got ArabTeX from; otherwise
-<a href="mailto:lagally@informatik.uni-stuttgart.de">send a bug report</a>
-to the author.
-
-</p><hr><!-- ================================================ -->
-
-The reference site
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex">
-ftp.informatik.uni-stuttgart.de</a>"
-always holds the current version.
-<br>
-We know that the CTAN servers
-"<a href="ftp://ftp.tex.ac.uk/">ftp.tex.ac.uk</a>",
-"<a href="ftp://ftp.dante.de/">ftp.dante.de</a>",
-"<a href="ftp://ctan.tug.org/">ctan.tug.org</a>"
-mirror this site and update on a regular schedule.
-
-<hr><!-- ================================================ -->
-
-An empty E-Mail message to
-"<a href="mailto:arabtex@informatik.uni-stuttgart.de">
-arabtex@informatik.uni-stuttgart.de</a>"
-will produce a current status report.
-
-<hr><!-- ================================================ -->
-
-<blockquote>
- Prof. Klaus Lagally<br>
- Institut fuer Formale Konzepte der Informatik<br>
- Universitaet Stuttgart<br>
- Universitaetsstrasse 38<br>
- D-70569 Stuttgart<br>
- GERMANY<br>
- lagally@informatik.uni-stuttgart.de
-</blockquote>
-<hr>
- Copyright (c) 1990 - 2006,
-<a href="mailto:lagally@informatik.uni-stuttgart.de">
- Klaus Lagally </a>
-<hr>
-</body></html>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+<html><head>
+<title>ArabTeX Version 3</title></head>
+<body>
+<center>
+<img src="arabtex.gif" alt="ArabTeX logo">
+<h1> ArabTeX Version 3 </h1>
+</center>
+
+<hr><!-- ================================================ -->
+
+<a href="http://129.69.218.213/arabtex/doc/arabtex/html/changes.htm">
+ Last changes: Version 3.11s, July 02, 2006
+</a>
+<p>
+<img src="new1.gif" alt="new">
+There is also a prototype of
+<a href="http://129.69.218.213/arab312/doc/arabtex/html/changes.htm">
+Version 3.12, July 06, 2006
+</a>
+
+<hr><!-- ================================================ -->
+
+<img src="new1.gif" alt="new">
+There is a new version of the User Manual
+<a href="http://129.69.218.213/arabtex/doc/arabdoc.ps">
+(PS),</a>
+<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
+(PDF).</a>
+<br>
+This version is reasonably current, but still being updated.
+<p>
+Should you be an Orientalist, you might want to look at a small list of
+<a href="http://129.69.218.213/arabtex/doc/arabtex/html/refer.htm">applications</a>.
+
+</p><hr><!-- ================================================ -->
+
+ The set of files, of which THIS file is supposed to be part of,
+ contains a package extending the capabilities of TeX/LaTeX to
+ generate the arabic writing from an ASCII transliteration for
+ texts in several languages using the arabic script. Several
+ other common encodings are also supported.
+<p>
+
+<img src="new1.gif" alt="new">
+The package is available in packed form as
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.zip">
+arab311.zip</a>
+<!--
+and <a href=ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtds.zip>arabtds.zip</a>
+-->
+for PC users, and
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.tgz">
+arab311.tgz</a> or
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arab311.tar.z">
+arab311.tar.Z</a> for *N*X users.
+<br>
+Note: we had to change the file names to avoid some server problems.
+<p>
+
+<img src="new1.gif" alt="new">
+The files
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/tex311.zip">
+tex311.zip</a> and
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/tex311.tgz">
+tex311.tgz</a>
+contain just the ArabTeX macros.
+For upgrading to the minor version (3.11), downloading these is sufficient
+if the fonts are already installed.
+<p>
+Depending on the server there may be also the unpacked files,
+or only these.
+</p>
+
+<p>
+In case of doubt, check for the latest version of
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>".
+<br>
+This file contains last minute corrections that possibly
+are not yet contained in the packed files.
+</p><p>
+
+The following ASCII files give more detailed information:
+
+<table>
+<!--
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.doc">
+arabtex.doc
+ </td><td>
+ a short introduction ( rather out of date)
+</td></tr>
+-->
+
+<tbody><tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/txt/arabtex.faq">
+arabtex.faq</a>
+
+</td><td>answers to some Frequently Asked Questions
+ (updated as necessary)
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
+changes.txt</a>
+
+</td><td>release history, new features, and known bugs
+ (updated as necessary)
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/changes2.txt">
+changes2.txt</a>
+
+</td><td>release history up to version 3.00
+
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/install.txt">
+install.txt</a>
+
+</td><td>list of available files, and installation notes
+</td></tr>
+
+<tr><td valign="top">
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>
+
+</td><td>last minute corrections; put this file onto the TEXINPUT path;
+it will patch automatically (updated as necessary).
+</td></tr>
+</tbody></table>
+
+There are also various additional documentation files.
+</p><p>
+<img src="new1.gif" alt="new">
+The contents of a subdirectory "REPORT", if still present, are OBSOLETE.
+Refer to the (draft of the)
+<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
+user manual</a> instead.
+
+</p><hr><!-- ================================================ -->
+
+There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
+<br>
+
+Version 2 was the first complete release accompanied by a manual,
+but is no more being maintained.
+<br>
+
+Version 3 is an upward compatible extension of Version 2
+with many new features, e.g. the possibility to read input files
+in the ASMO 449, ISO 8859-6, and UTF-8 Codes,
+and a host of new commands for better formatting of Arabic text,
+or catering for historic writing styles.
+<br>
+
+Versions from 3.05 onward contain a package to process Hebrew,
+and provide long right-to-left insertions.
+
+For details, consult the manual.
+
+<hr><!-- ================================================ -->
+
+<img src="new1.gif" alt="new">
+ ArabTeX is copyrighted by the author. If you use the system for
+ scientific work please give appropriate credit to the software
+ and the author (e.g. in the colophon of a monograph.) We also
+ appreciate a complimentary copy of any scientific work produced
+ with ArabTeX.
+<p>
+
+<img src="new1.gif" alt="new">
+ArabTeX may be redistributed and/or modified under the terms
+of the LaTeX Project Public License distributed
+from CTAN archives in the directory
+<a href="ftp://ftp.dante.de/tex-archive/macros/latex/base/lppl.txt">
+macros/latex/base/lppl.txt</a>;
+either version 1 of the License,
+or (at your option) any later version.
+
+</p><hr><!-- ================================================ -->
+
+ArabTeX is an experimental system and supposed to change without
+prior notice. Whoever will use it does so at her/his/its own risk.
+We cannot take any responsibility on correct function, suitability
+for whatever purpose, or correct documentation.
+
+If you have any complaints or suggestions, please forward them to
+<a href="mailto:lagally@informatik.uni-stuttgart.de">the author</a>.
+We shall consider any reasonable suggestion,
+but we will use our own judgment on changes,
+and our resources are severely limited.
+<p>
+
+If problems turn up while running ArabTeX, please
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+check first</a>
+at "ftp.informatik.uni-stuttgart.de" whether there is a new version,
+or whether there are any new corrections in
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>".
+
+If the problem goes away with the new version, please inform the
+server you got ArabTeX from; otherwise
+<a href="mailto:lagally@informatik.uni-stuttgart.de">send a bug report</a>
+to the author.
+
+</p><hr><!-- ================================================ -->
+
+The reference site
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex">
+ftp.informatik.uni-stuttgart.de</a>"
+always holds the current version.
+<br>
+We know that the CTAN servers
+"<a href="ftp://ftp.tex.ac.uk/">ftp.tex.ac.uk</a>",
+"<a href="ftp://ftp.dante.de/">ftp.dante.de</a>",
+"<a href="ftp://ctan.tug.org/">ctan.tug.org</a>"
+mirror this site and update on a regular schedule.
+
+<hr><!-- ================================================ -->
+
+An empty E-Mail message to
+"<a href="mailto:arabtex@informatik.uni-stuttgart.de">
+arabtex@informatik.uni-stuttgart.de</a>"
+will produce a current status report.
+
+<hr><!-- ================================================ -->
+
+<blockquote>
+ Prof. Klaus Lagally<br>
+ Institut fuer Formale Konzepte der Informatik<br>
+ Universitaet Stuttgart<br>
+ Universitaetsstrasse 38<br>
+ D-70569 Stuttgart<br>
+ GERMANY<br>
+ lagally@informatik.uni-stuttgart.de
+</blockquote>
+<hr>
+ Copyright (c) 1990 - 2006,
+<a href="mailto:lagally@informatik.uni-stuttgart.de">
+ Klaus Lagally </a>
+<hr>
+</body></html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/language/arabic/arabtex/arabtex.tex b/language/arabic/arabtex/arabtex.tex
index df1c333d9f..5593ddfe02 120000..100644
--- a/language/arabic/arabtex/arabtex.tex
+++ b/language/arabic/arabtex/arabtex.tex
@@ -1 +1,133 @@
-texinput/arabtex.tex \ No newline at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.tex
+% version 3.10a
+% this is the Plain TeX driver module for the ArabTeX macro package
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally EMail: lagallyk@acm.org
+% Institut fuer Formale
+% Methoden der Informatik TEL: +49-711-7816-392
+% Universitaet Stuttgart FAX: +49-711-7816-370
+% Universitaetsstrasse 38
+% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % 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 (at your option) any later version.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \input this file at the beginning of an ArabTeX input file running
+% under Plain TeX. This is an adaptation by Tom Koornwinder of
+% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\message { Plain TeX setup for ArabTeX, 26.04.2003}
+
+\ifx \LaTeX \undefined \else
+\errmessage {^^JThis loader does not work with LaTeX!
+ ^^JUse Plain TeX instead.^^J}
+\expandafter \endinput
+\fi
+
+\def \makeatletter {\catcode `\@ = 11 }
+\def \makeatother {\catcode `\@ = 12 }
+
+\let \typeout \message \let \protect \relax
+\let \em \it
+
+\font \xnash =xnsh14
+\font \nash =xnsh14
+\font \tennash =xnsh14 % add fonts as needed.
+\font \nashx =xnsh14
+\font \nashxi =xnsh14 scaled \magstephalf
+\font \nashxii =xnsh14 scaled \magstep1
+\font \nashxiv =xnsh14 scaled \magstep2
+\font \nashxvii =xnsh14 scaled \magstep3
+\font \nashxx =xnsh14 scaled \magstep4
+\font \nashxxv =xnsh14 scaled \magstep5
+
+\font \xnashbf =xnsh14bf
+\font \nashbf =xnsh14bf
+\font \tennashbf=xnsh14bf % bold face fonts
+\font \nashbx =xnsh14bf
+\font \nashbxi =xnsh14bf scaled \magstephalf
+\font \nashbxii =xnsh14bf scaled \magstep1
+\font \nashbxiv =xnsh14bf scaled \magstep2
+\font \nashbxvii=xnsh14bf scaled \magstep3
+\font \nashbxx =xnsh14bf scaled \magstep4
+\font \nashbxxv =xnsh14bf scaled \magstep5
+
+\font \yorn =yarborn % simple ornaments by Y. Haralambous
+
+\def \pnash {\tennash } \def \pnashbf {\tennashbf }
+\def \nash {\protect\pnash } \def \nashbf {\protect\pnashbf }
+
+\def \strut {\vrule height 2ex depth .8ex width 0pt}
+
+\makeatletter
+
+\newif \if@ignore % ignore spaces after environment?
+\newif \if@endpe
+
+\def \begin #1{% small version without checks
+\begingroup
+ \long \def \end ##1{% local version for \end{arabtext} and \end \end
+ \ifx ##1\par \endarabtext \endgroup
+ \else \csname end\string ##1\endcsname \endgroup \fi
+ \if@ignore \global\@ignorefalse \expandafter \ignorespaces \fi }%
+\csname #1\endcsname }
+
+\expandafter \def \csname end\string\end\endcsname{% for \end \end
+\endgroup \end }
+
+{\catcode `\"=\active % simulate german.sty
+\gdef "#1{\ifx #1s\ss \else \"#1\fi }% umlaut and sharp s
+}
+
+\newdimen \marginparwidth \marginparwidth 72pt % adjust as required !
+\newdimen \marginparsep \marginparsep 10pt % adjust as required !
+
+\long \def \marginpar #1{% Plain TeX version
+ \dimen0 \baselineskip
+\setbox0 \vtop to \dimen0
+ {\hsize \marginparwidth \parskip 0pt \raggedright
+ \noindent \strut #1\vss }%
+\setbox0 \hbox to \hsize
+ {\hskip \hsize \hskip \marginparsep \box0 \hss }%
+\ifhmode \skip0 \lastskip \hskip 0pt \strut
+ \vadjust {\box0 \vskip -\dimen0 }%
+ \ifdim \skip0 = 0pt \else \expandafter \ignorespaces \fi
+\else \dimen2 \prevdepth \nointerlineskip \box0
+ \vskip -\dimen0 \prevdepth \dimen2
+\fi }
+
+\def \verb #1{% simple verbatim routine
+\def \endverb ##1#1{\a@@verb {##1}}\endverb }
+
+\def \\{\hfill \break } % utilities
+
+\def \newpage {\vfill \eject }
+
+\def \today {\number\day.\number\month.\number\year }
+
+\let \@@input \input
+\def \input #1 {\@@input #1 }
+\def \UsePackage #1{\input {#1.sty}}
+
+\let \document \relax \let \enddocument \end
+\let \a@enddocument \end
+
+\input arabtex.sty % here goes
+\a@ident {arabtex.tex} {3.11 Plain TeX loader for ArabTeX} {26.04.2003}
+
+\def \end {% report the configuration
+{\arab@stat \newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument }
+
+\makeatother
+\setarab
+
+\tracingstats=1
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/changes.txt b/language/arabic/arabtex/changes.txt
index 911e50b9f1..30fbf5ac8a 100644
--- a/language/arabic/arabtex/changes.txt
+++ b/language/arabic/arabtex/changes.txt
@@ -1,2438 +1,2438 @@
-CHANGES.TXT 02.07.2006
---------------------------------------------------------------------------
- ArabTeX Version 3
- =================
---------------------------------------------------------------------------
- NOTE: Version management:
-
- - We distinguish major versions "m.00", minor versions "m.nn-"
- with nn > 0, and patch versions "m.nnx" where "x" is a letter.
-
- - to update from an older major version: reinstall completely.
-
- - to update from an older minor version: replace the contents of
- "TEXINPUT" and, if so indicated, "REPORT". Replace the fonts
- only if so indicated explicitly.
-
- - to update to a newer patch version: replace the ASCII file
- "apatch.sty" and, if you use Hebrew, "hepatch.sty". These files
- are distributed as unpacked text files, and will be applied
- automatially whenever starting ArabTeX.
-
- - Patch versions within the same minor version are cumulative, so
- a newer patch will encompass all earlier versions.
-
- - To back out from a patch version, replace "apatch.sty" by an
- earlier version (within the same minor version only!) if still
- locally available, or else edit out the current additions from
- "apatch.sty" and, if applicable, "hepatch.sty" (save a copy
- first!). Also please inform the author why you backed out.
-
- - There is no provision to return gracefully to earlier minor or
- even major versions. We can make them available on request, but
- you should have good reasons, and there will be no support.
-
-==========================================================================
-02.07.2006: Version 3.11s
-
- Fixes:
-
- - In mixed paragraphs, the handling of horizontal spacing between
- Arabic insertions and Roman text, and vice versa, is determined
- by the spaces (if present) in the input text inside and outside
- of the RL{} commands.
-
- New features:
-
- - The experimental package "saw.sty" provides macros \SAW and \ALS
- for producing special glyph combinations for theological and
- religious texts (with the exception of the Holy Qur'an, which we
- do not support). These macros work inside and outside of Arabic
- mode; presently they are available in \normalsize only.
-
- Note:
-
- - We are informed of a project, within the Muslim world, to extend
- ArabTeX by special features for printing the Holy Qur'an. We
- know about the difficulties, and we wish them success.
-
- Installation:
-
- - download "apatch.sty" and, if required, "saw.sty".
-
---------------------------------------------------------------------------
-17.04.2006: Version 3.11r
-
- Fixes:
-
- - A glitch in EDMAC mode was fixed.
-
- - <Roman insertions> within Arabic text work again, also when the
- <shorthand> notation for Arabic insertions in Roman text is in
- force.
-
- New features:
-
- - Processing of bidirectional paragraphs has been reimplemented
- completely. Roman paragraphs with Arabic script insertions may
- have arbitrary, variable '\parshape's and even nested recursive
- insertions to arbitrary depth. This is rarely needed, but it is
- a strong torture test for the new algorithm.
-
- - With LaTeX, the package 'lineno.sty' for producing line numbers
- is now fully supported. The former restrictions no more apply.
-
- Installation:
-
- - download "apatch.sty" and also "alocal.sty".
-
---------------------------------------------------------------------------
-01.03.2006: Version 3.11q
-
- Fixes:
-
- - Some more incompatiblities with Plain TeX have been fixed.
-
- - Vertical spacing commands in LaTeX work better within Arabic
- environments.
-
- New features:
-
- - A new file "alocal.sty" was introduced in order to facilitate
- loading local extensions for individual users. Normally it
- does nothing, but must be present.
-
- - There is some limited support for users of "lineno.sty"; if
- that package is present, line numbers will work in the basic
- \linenumber mode within Arabic environments, and \linelabel
- can also be used. Other features have not been tested.
-
- CAUTION: The command \RL{} is presently not quite compatible
- with the "lineno.sty" package, and might break, both itself
- and the line numbers! In that case, try \< > for insertions.
-
- Installation:
-
- - download "apatch.sty" and also "alocal.sty".
-
---------------------------------------------------------------------------
-08.02.2006: Version 3.11p
-
- Fixes:
-
- - There was an incompatibility between the patching mechanism in
- "apatch.sty" and Plain TeX (only!).
-
- - Final "ha'" in Jawi had the wrong shape.
-
- New features:
-
- - There is an improved version of "verses.sty"; for documentation
- see the file itself.
-
- Installation:
-
- - download "apatch.sty" and, if required, "verses.sty".
-
---------------------------------------------------------------------------
-01.02.2006: Version 3.11o
-
- Fixes:
-
- - The lines of a bidirectional paragraph were sometimes mixed up
- when a page break interfered. This was neither easy to find nor
- to fix.
-
- - An incompatible (!) change in Plain TeX 3.1415926 had broken the
- transcription module. Use of ArabTeX with LaTeX was not affected.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-06.04.2005: Version 3.11n
-
- Fixes:
-
- - In the Arabic document classes the commands 'figure' and 'table'
- were broken. They work again.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-23.01.2005: Version 3.11m
-
- Fixes:
-
- - In the Arabic document classes the list environments were
- broken. Their labels work again.
-
- - Punctuation marks in the Arabic script have been moved down
- slightly.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-24.06.2004: Version 3.11l
-
- Fixes:
-
- - An incompatibility between Kashmiri mode and Hebrew mode was
- taken care of. A small glitch in Uighuric mode was fixed.
-
- - Arabic and Hebrew (right to left) insertions in a left-to-right
- paragraph now also work correctly within LaTeX table fields
- specified with the p{} qualifier.
-
- New features:
-
- - The skip values \LRskip {\hskip \z@ plus 0.1em } before a RTL
- insertion, and \RLskip {\hskip \z@ plus 0.1em } after a RTL
- insertion, may be adjusted by the user to tune the appearance
- of bidirectional paragraphs.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-24.05.2004: Version 3.11k
-
- Fixes:
-
- - Arabic and Hebrew (right to left) insertions in a left-to-right
- paragraph now also work correctly at the very beginning of the
- paragraph, and also in the context of nested LaTeX environments.
- There used to be spurious spaces and shifted baselines.
-
- Note:
-
- - the reading modules 'bhs.sty', 'witbhs.sty', and 'buck.sty'
- presently cannot coexist with other input encoding methods for
- Arabic and Hebrew, not even with the standard transliteration
- encoding. This restriction might go away in further versions.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.05.2004: Version 3.11j
-
- Fixes:
-
- - The unconditional placement of a 'hamza' mark on a character
- by the suffix < " ' > had been disabled for internal reasons.
- It is active again.
-
- - In Hebrew mode, the placement of diacritics within a final kaph
- letter was fixed again. This had already been corrected in the
- version 3.11d, but that patch did not work.
-
- New features:
-
- - The experimental reading module 'buck.sty' for the 'Buckwalter'
- encoding conventions has been upwards compatibly extended to
- cover XML compatible extensions, several Persian letters, and
- new encodings of diacritic marks as proposed by the Archimedes
- project. For details and open issues, enquire.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-26.04.2004: Version 3.11i
-
- Fixes:
-
- - The algorithm for bidirectional line-breaking in mixed Arabic-
- Roman paragraphs has been completely re-implemented. It is now
- shorter and faster, and hopefully, has fewer bugs.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-15.03.2004: Version 3.11h
-
- Fixes:
-
- - For Pashto and Sindhi modes, and also for special purposes,
- a few input encodings have been changed to conform with the
- new version of the user manual (still in preparation).
-
- New features:
-
- - For YIVO Yiddish, a few additional input encodings have been
- provided to write Hebrew words according to the conventions
- of the "Yiddishe Shraybmashinke" by Refoyl Finkel.
-
- - In 'verses.sty' the command \setversedim {length}{gap} to set
- the length of the halfverses and their separation, has been
- expanded to the format \setversedim {length1}[length2]{gap} by
- an optional second (!) argument to set the lengths of the
- two hemistichs independently. The old format still works.
- The command \halfverses {first}[conn]{second} is equivalent to
- \connverses {first}{conn}{second} (mind the brackets!)
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-26.02.2004: Version 3.11g
-
- Fixes:
-
- - When the Arabic Windows encoding is used, double quotes <">
- are interpreted as directional quotes <``> and <''> according
- to the context.
-
- - When using 'verses.sty' the text will be centered, both in
- Plain TeX mode and in LaTeX mode. Whenever this is not feasible
- due to the indicated verse dimensions, hemistichs will be put
- flush right and flush left in alternate lines. Connecting the
- hemistichs in that case is not possible; end the last word of
- the first hemistich, and start the first word of the second,
- by a dash <-> to get the connecting forms of the appropriate
- letters, if they exist.
-
- New features:
-
- - Within an Arabic word in transliteration encoding, a plus sign
- <+> will unconditionally place a 'sukun' or, after an initial
- 'alif', a 'wasla', on the preceding letter. As the first
- character, or isolated or after punctuation, the plus sign
- denotes itself.
-
- - In Sindhi mode, the special ending 'in' as in <min> and <'in>
- may also be coded <.mIN> and <'IN>.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-12.02.2004: Version 3.11f
-
- Fixes:
-
- - Some character assignments for Judeo-Arabic were corrected.
-
- - Various minor technical bugs were found and corrected.
-
- New features:
-
- - The file 'arabwin.sty' is obsolete and should no more be used;
- for the Arabic Windows encoding use 'cp1256.sty' instead. The
- encoding is set by '\setcode{cp1256}' or '\setcode{arabwin}'.
-
- - In pausal position, the feminine ending <aT> (tah marbuta) is
- now transcribed as 'ah'. The input encoding is unchanged.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-08.12.2003: Version 3.11e
-
- Fixes:
-
- - Bidirectional paragraphs are now handled correctly even within
- the LaTeX environments 'quote' and 'quotation'.
-
- - In Hebrew mode, the positioning of 'nikudot' on final 'kaph'
- was improved.
-
- - The handling of final 'Urdu wavy hah' was improved.
-
- - After switching the font size in LaTeX (also implicitly in
- section titles and such), an initial number sometimes was
- lost even outside of Arabic or Hebrew mode. This has been
- corrected.
-
- New features:
-
- - The font 'xnsh14' is the default for Arabic mode. In Hebrew
- mode, 'hclassic' is the default.
-
- - ArabTeX now seems to be compatible with 'inputenc.sty'.
-
- - In the Unicode mode, additional extended Arabic characters
- are now supported, so are ZWJ = ZERO WIDTH JOINER and ZWNJ
- = ZERO WIDTH NON-JOINER (see below).
-
- - 'dotless bah' and 'Uzbek ae' are supported in Unicode mode.
-
- - Within an Arabic word in transliteration encoding, a star <*>
- will unconditionally place a 'shadda' on the preceding letter.
- At the beginning of a word, or isolated or after punctuation,
- the star denotes itself.
-
- Notes:
-
- - Changes of input encoding are \global for technical reasons.
-
- - Private reading modules for individual users may be broken
- by the new reading strategy introduced for compatibility with
- 'inputenc.sty'. In case of problems, contact the author. New
- versions of 'buck.sty, 'bhs.sty', and 'witbhs.sty' have been
- prepared.
-
- Open issues:
-
- - The space introduced by ZWNJ = ZERO WIDTH NON-JOINER is still
- too wide. No fix is known.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-23.10.2003: Version 3.11d
-
- Fixes:
-
- - In the Arabic document classes, the formatting of the table
- of contents was improved. A strange bug was corrected.
-
- - A storage leak was found which prevented the formatting of
- longer documents, leading to 'save stack overflow'.
-
- - A bug in the ligatures module was found which used to produce
- bogus messages 'missing letter y in font xnsh14' and to
- slightly interfere with correct vowelization.
-
- - A bug in the output module was found which used to produce
- bogus messages 'underfull vbox while \output was active'.
- The fix might slightly influence page breaking.
-
- New features:
-
- - There is now limited support for Arabized LyX.
- Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
- available for ArabTeX, all special font variants are presently
- mapped into 'bold face'. This could be changed at the user's
- request; please send any suggestions to the author.
-
- - The messages in the LOG file are less verbose now.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.2003: Version 3.11c
-
- Fixes:
-
- - in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
-
- New features:
-
- - Hebrew mode provides a new command \setjudarab to activate
- an experimental Judaeo-Arabic mode. Input is supposed to be
- Arabic in the standard transliteration encoding (other modes
- might work by accident), output is an extended Hebrew writing
- in the chosen Hebrew font, and the standard transliteration
- when activated. Arabic vowels are presently not provided; the
- Hebrew vowels work but are presumably of no use.
-
- Caution: The new mode can be expected to contain errors. We
- do not know the exact writing conventions, and have no access
- to any relevant literature. Scholars in the field are urged
- to contact the author. Comments and suggestions are invited.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-08.09.2003: Version 3.11b
-
- Fixes:
-
- - the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Some of the remaining bugs have been fixed.
-
- - Hebrew Plain mode works again. To use it, download the new
- version of 'hebtex.tex'(!), the Hebrew Plain driver. The
- corrections cannot be handled by "apatch.sty" alone.
-
- New features:
-
- - ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
- mode.
-
- Installation:
-
- - download "apatch.sty".
-
- - in case you are using the Hebrew Plain mode (and only then)
- also download the new version of the driver module "hebtex.tex"
- (not "hebtex.sty"!)
-
---------------------------------------------------------------------------
-27.08.2003: Version 3.11a
-
- Fixes:
-
- - the 'hanging heh' in Urdu mode has been fixed.
-
- - the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Hopefully there are not too many new bugs.
-
- - Hebrew Plain mode should work again. If you are not directly
- concerned, forget it; tests are going on. The necessary
- corrections cannot be handled by "apatch.sty" alone, see the
- remarks below.
-
- Installation:
-
- - download "apatch.sty".
-
- - in case you are using the Hebrew Plain mode (and only then)
- also download the new version of the driver module "hebtex.tex"
- (not "hebtex.sty"!)
-
---------------------------------------------------------------------------
-22.08.2002: Version 3.11
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - Distribution and modification of ArabTeX is now governed by
- the Latex Project Public License (see LPPL.TXT).
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - In Hebrew mode, all standard fonts available on CTAN are now
- supported, including the possibility of generating vowel points
- in \vocalize mode.
-
- Bugs:
-
- - Hebrew Plain TeX mode is currently broken.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-23.04.2003: Version 3.10k
-
- Fixes:
-
- - some glitches in Farsi mode were fixed.
-
- - in Uighuric mode, some transcriptions were missing.
-
- - in Urdu mode, final 'wavy hah' is generated now.
-
- New features:
-
- - in Uighuric mode, <:s> produces 'sin' with three dots below.
- <A> produces 'alif' with 'madda', so does <^A>.
-
- - in Farsi mode and its descendants, 'kasra' on a double letter
- will be positioned below the letter instead of below the
- 'shadda' mark. This feature will later become an option.
-
- - the internal test mode is less verbose. This need not concern
- normal users.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-16.11.2002: Version 3.10j
-
- Fixes:
-
- - the handling of 'ayin' in Hebrew mode was improved.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-14.11.2002: Version 3.10i
-
- Fixes:
-
- - "matres lectionis" in Hebrew work better.
-
- - Version 3.10h was broken on some servers!
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-28.08.2002: Version 3.10h
-
- Fixes:
-
- - The math command \cap was broken.
-
- - Line breaking of Roman insertions within Arabic mode seems to
- work correctly now.
-
- New features:
-
- - There is formally a new language mode \setbalut for Balochy.
- Presently it is mapped to \setpashto but will be extended as
- soon as the exact writing rules are known.
-
- - The command \cond #1{#2}{#3}\fi will expand to either #2 or #3
- depending on the TeX conditional #1. It is nearly equivalent
- to #1 #2\else #3\fi but may also be used in Arabic mode. The
- command is skippable and fully expandable.
-
- - \endinput may occur in Arabic mode.
-
- - The input character <G> encodes Pashto 'gAf' with a ring. In
- Farsi and Pashto mode, <g> produces Farsi 'gAf' with a stroke.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-16.06.2002: Version 3.10g
-
- Fixes:
-
- - in Pashto mode, <.n> will produce 'noon' with a dot and a ring.
- Some further Pashto codes can be found in Table 4.2.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-11.05.2002: Version 3.10f
-
- Fixes:
-
- - in Persian mode, some bugs concerning 'hamze on he' were fixed.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-14.04.2002: Version 3.10e
-
- Fixes:
-
- - in the standard Hebrew transcription, 'shwa' was missing.
-
- - in Persian mode, 'hamze on he' is produced if required.
-
- - in Hebrew mode using the 'hclassic' and 'hcaption' fonts, the
- vowel points are generated differently to render better when
- using T1 fonts.
-
- - in CP1256 encoding, explicit 'shadda' works now correctly.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-07.03.2002: Version 3.10d
-
- Fixes:
-
- - In many of the non-standard encodings the handling of double
- letters (implicit shadda or not) has been corrected.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the handling of figure and table \captions has been improved.
-
- Hints:
-
- - When using a local addition to ArabTeX together with a patch
- version of ArabTeX, read the local addition by \input after
- the command \begin{document}, not by an \usepackage command.
- Otherwise a race condition occurs that could overwrite your
- local additions.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-03.03.2002: Version 3.10c
-
- Fixes:
-
- - The default language is Arabic again.
-
- - The LaTeX commands \footnote, \footnotemark, and \footnotetext
- in normal LTR LaTeX mode were broken in version 3.10b. Sorry!
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the environment 'tabular' works correctly.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the command \tableofcontents works correctly.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the commands \table and \figure may have a \caption.
-
- Hints:
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- and *also* in normal LTR mode, within the \tabular environment
- every row but the last must be terminated by \\, also if \hline
- follows. The text of the error message has been improved.
-
- New Features:
-
- - The Arabic document classes 'arabbook', 'arabrep', 'arabart'
- formerly required the use of the ArabTeX standard encoding for
- correct functioning of generated section heads and the like.
- This restriction was never noticed, and applies no more.
-
- - Abjad numbers now also work with other input encodings.
-
- - Within an Arabic environment the command \stdcode{some text}
- accepts Arabic text in the ArabTeX standard encoding even if
- otherwise some other encoding is in use. This may be useful
- for local corrections.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-12.02.2002: Version 3.10b
-
- Fixes:
-
- - The LaTeX commands \footnote, \footnotemark, and \footnotetext
- now work correctly within Arabic environments, even if only
- transliteration mode is active. The output mode (transliterate,
- Arabic writing, or both) of Arabic inserts in the footnote text
- is inherited from the main document if not explicitly switched
- locally within the footnote text.
-
- Hints:
-
- - Footnotes containing Arabic inserts might come out too high.
- This may be prevented, at the risk of lines overlapping, by
- \smash-ing the Arabic insert or even the complete footnote.
-
- - Within transliteration mode hyphenation is only performed after
- long vowels, thus \sloppy mode might be required. If the last
- word of a line ends with a long vowel, a spurious hyphen will
- appear. This is a bug; presently no fix is known!
-
- New Features:
-
- - The LaTeX footnote commands (see above) also work within the
- Arabic document classes 'arabart', 'arabrep', and 'arabbook'.
-
- - By default, or after the command \LRfootnotes, the footnotes
- are positioned as in a Roman document, and the footnote text
- is assumed to be Roman by default. Arabic inserts are produced
- by \RL{ }.
-
- - After the command \RLfootnotes, footnotes run from right to
- left and the default language mode is Arabic. Roman inserts
- are produced by \LR{ }.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-06.10.2001: Version 3.10a
-
- Fixes:
-
- - A few minor patches from 'v3.09' did not make it into 'v3.10'.
-
- - The transliteration of '_h' was improved.
-
- - Plain TeX mode now also uses fonts "xnash14" and "xnash14bf"
- as the default.
-
- - In Hebrew mode, 'cholem male' and vowels in contact now work
- correctly.
-
- - In Hebrew mode, footnotes containing Hebrew inserts now have
- uniform baselines again.
-
- New Features:
-
- - All patches are now handled by "apatch.sty".
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.2001: Version 3.10
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - Distribution and modification of ArabTeX is now governed by
- the Latex Project Public License (see LPPL.TXT).
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - In Hebrew mode, all standard fonts available on CTAN are now
- supported, including the possibility of generating vowel points
- in \vocalize mode.
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-13.05.2001: Version 3.09g
-
- Fixes:
-
- - Some spurious spaces in the transliteration were fixed.
-
- - \tabular within \center was broken by \RL{}.
-
- - Hamza and `Ayn were broken in a \tabbing environment.
-
- New Features:
-
- - The file "arabtds.zip" in the distribution, when available,
- contains the ArabTeX package repacked according to the TDS
- (TeX Directory Structure). To install the complete package,
- PC Users of MikTeX and several other TeX distributions that
- presuppose the TDS structure, should download this file only
- (in binary mode!) and unpack it at the top level of their
- local TEXMF tree. For other installations, moving around some
- files or adjusting some access path might be required.
-
- - Reminder: some TeX installations require a command "texhash"
- or "texconfig" to activate a newly installed package.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-27.05.2000: Version 3.09f
-
- Fixes:
-
- - The LaTeX command \cdot works again.
-
- - The LaTeX command \protect may appear in RL mode. It has no
- visible effect.
-
- - The vertical bar | has no function, but does no harm behind an
- Arabic character that does not connect to the left.
-
- - The behaviour of "wasla" in the transliteration was fixed.
-
- - The vertical spacing of footnotes is no more influenced by \RL
- insertions in the first line.
-
- New Features:
-
- - Brackets [ and ] and parentheses ( and ) may be used within an
- Arabic or Hebrew word to indicate optional parts; they do not
- change the connection behaviour of the adjacent characters.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-05.04.2000: Version 3.09e
-
- Fixes:
-
- - to switch the transcription font say, e.g., \settransfont{\rm}.
- \settransfont{rm} (forgetting the \) now also works, instead of
- producing impressive garbage.
-
- - an \RL{} insertion text may now begin with a space.
-
- - footnotes containing \RL{} insertions have uniform baselines.
-
- - the space command \ works within RL mode.
-
- - \bf and \rm (for returning to normal) work within RL mode.
-
- New Features:
-
- - within RL environments, \newcommand, \newenvironment, and \def
- and their relatives may be used to define new control sequences
- which have to expand to legal ArabTeX input; they will not be
- visible outside of the environment (even if \gdef or \xdef is
- used.) For a user defined command to be visible both outside
- and inside RL mode, define it in LR mode and announce it to the
- ArabTeX command processor by \allowarab.
-
- - the new commands \shadda, \madda, \sukun in Arabic mode and the
- commands \raphe, \dagesh, \mappiq in Hebrew mode will place the
- corresponding diacritic on the preceding letter. In Hebrew mode
- \maqqef will produce a connector, \abbr an abbreviation mark.
-
- - A single hyphen will be invisible in the RL writing, but will
- show up in the transcription; the adjacent letters will always
- assume the connecting form, if it exists, even at the beginning
- or the end of a word.
-
- - any paragraph containing \RL{} insertions will now have uniform
- baselines. The users might have to adjust \baselinestretch.
-
- - RL insertions now also work for encodings like MacOS Arabic and
- MacOS Hebrew that provide an RL space.
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-18.03.2000: Version 3.09d
-
- Fixes:
-
- - the transcription did not work correctly within a LaTeX tabbing
- environment since this environment mungles the accent commands.
- (We consider this a mis-feature in LaTeX!)
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-19.10.1999: Version 3.09c
-
- Fixes:
-
- - "\cap" for capitalisation of the transcription now works also
- within section titles and in the table of contents.
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-30.07.1999: Version 3.09b
-
- Note: version 3.09a did not work.
-
- Fixes:
-
- - In the Hebrew mode, "maqqef" now works with all fonts.
-
- Installation:
-
- - download "hepatch.sty"
-
---------------------------------------------------------------------------
-17.07.1999: Version 3.09
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - Many ArabTeX commands that used to be fragile in connection
- with LaTeX are now robust.
-
- - Within the LaTeX document classes "arabart", "arabrep", and
- "arabbook" nearly all LaTeX environments are allowed also
- within Arabic mode.
-
- Recommendations:
-
- - When typesetting Roman text with Arabic or Hebrew insertions, a
- better result can usually be obtained by typesetting on a grid;
- this can be accomplished by resetting the parameters \lineskip
- to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
- to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
- You may want to experiment with the factor quoted as "1.2".
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-24.06.99: Version 3.08i
-
- New Features:
-
- - there is an "abstract" environment in the Arabic classes.
- - mathematical displays bracketed by $$ $$ may be nested within an
- Arabic environment. Bracketing by $ $ was always there.
- - The LaTeX commands \( \), \[ \], and also the LaTeX environments
- "math", "displaymath", "equation", "eqnarray", and "eqnarray*"
- are supported within Arabic environments, also with the options
- "leqno" and "fleqn", if LaTeX is used.
-
- Upcoming Features:
-
- - a new edition of the User manual is in preparation.
-
- Installation:
-
- - download "apatch.sty", if you are interested.
-
---------------------------------------------------------------------------
-10.06.99: Version 3.08h
-
- Fixes:
-
- - there were a few glitches in Pashto and Kashmiri encoding
- - there were a few glitches in Pashto transliteration
- - the command \settrans #1 is allowed within Arabic mode
- - the command \tracingmacros #1 is allowed within Arabic mode
-
- New Features:
-
- - the environments "RLtext", "arabtext", and "hebtext" are now
- equivalent
- - the braces \< and > are admissible within Arabic mode but have
- no effect
- - the command \addcontentsline also works in the Arabic classes
- "arabrep", "arabart", "arabbook"
- - the title of the table of contents is context dependent in the
- Arabic document classes
-
- Upcoming Features:
-
- - a new edition of the User manual is in preparation
- - there is yet no "abstract" environment in the Arabic classes
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-16.05.99: Version 3.08g2
-
- Fixes:
-
- - In the transcription mode, capitalization (see version 3.08) can
- now also be used within a word, even several times.
- - In the transcription, the positioning of the marks for Hamza and
- Ayn was slightly improved.
- - in Urdu mode, Ta' marbuta works again.
- - in BHS mode, Shin works again.
- - in the Arabic document classes, some spurious font switches were
- fixed.
-
- New Features:
-
- - There is a new language mode: Kashmiri. See "kashmiri.tex" for a
- short description.
-
- Installation:
-
- - download "apatch.sty" (and "kashmiri.sty", "kashmiri.tex" and/or
- "bhs.sty" if required)
-
---------------------------------------------------------------------------
-10.05.99: Version 3.08f
-
- Fixes:
-
- - In the transcription mode, capitalization (see version 3.08) can
- now also be used in the English (Encyclopedia of Islam) style.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-22.04.99: Version 3.08e
-
- Fixes:
-
- - We found some grave errors in the Urdu mode; it seems to work
- again now. Observe that there are several forms of "heh":
- - the two-eyed form for aspiration: code <h>
- - the wavy form for other cases: code <,h>
- - the final closed form: code <H>
- For the Name of God, use <H> in Urdu mode, or switch to \setarab
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-10.04.99: Version 3.08d
-
- Fixes:
-
- - For use with EDMAC, the file "aedpatch.sty" has been updated to
- fix some spurious spaces.
- - For use with Hebrew, the files "hclassic.mf" and "hcaption.mf"
- have been slightly adjusted, and "hcbase_pc.mf" was renamed to
- "hcbase.mf" to fix an incompatibility in some operating systems
- preventing automatic font generation; the fonts themselves are
- unchanged.
-
- Installation:
-
- - download the indicated files, if you need them; otherwise you
- may safely ignore this version.
-
- Note: the version number of ArabTeX (in the LOG) is still 3.08c !
-
---------------------------------------------------------------------------
-25.03.99: Version 3.08c
-
- Fixes:
-
- - Most of the LaTeX renumbering commands introduced in the last
- version (3.08b) do NOT work and have been blocked off. LaTeX
- does not allow font changes within numbering commands, since
- these must be fully expandable within TeX's mouth.
-
- - "arabrep.cls" has been updated again.
-
- Old Features:
-
- - There is only one new numbering command, and it only can be
- used in the context of the Arabic document classes, also as a
- \pagenumbering style, and for renaming e.g. \thesection:
-
- \abj{ctr} "abjad" notation for counters.
-
- - \pagenumbering{abj} may also be written \pagenumbering{abjad}.
-
- - in the Arabic document classes, put \tableofcontents within
- an Arabic environment.
-
- Installation:
-
- - download "apatch.sty", and also "arabrep.cls" when required.
- The latter file is not contained within the packed versions!
-
---------------------------------------------------------------------------
-21.03.99: Version 3.08b1
-
- New Features:
-
- - For LaTeX there are additional numbering commands for counters
- (cf. Section C.8.4 "Numbering" in the LaTeX manual:)
-
- \arab{ctr} "Arabic" Arabic numerals
- \Arab{ctr} "Arabic" Arabic numerals, bold
- \abj{ctr} "abjad" notation
- \Abj{ctr} "abjad" notation, bold
- \Arabic{ctr} "European" Arabic numerals, bold (extension!)
-
- - There are also the corresponding \pagenumbering styles, e.g.:
- \pagenumbering{Abj} for bold "abjad" page numbers.
-
- Fixes:
-
- - Some of these commands were present in 3.07g but did not work.
-
- - isiri.sty had become incompatible and has been updated.
-
- - arabrep.cls had become incompatible and has been updated.
-
- Hints:
-
- - if your MFINPUT subdirectory of ArabTeX should contain a file
- "asymbols.mf", delete it. It is obsolete and may be in conflict
- with AMSTeX and/or AMSLaTeX.
-
- Installation:
-
- - download "apatch.sty", and "isiri.sty" or "arabrep.cls" when
- required. The latter two files are not contained within the
- packed versions!
-
---------------------------------------------------------------------------
-13.02.99: Version 3.08a
-
- Fixes:
-
- - The transliteration of "Quran alif" was in error.
-
- Installation:
-
- - download "apatch.sty" if required.
-
---------------------------------------------------------------------------
-01.12.98: Version 3.08
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- (and activating them) to obtain better quality of output.
-
- - ArabTeX is believed to be fully compatible with Babel; however,
- it does not use its features. Please report incompatibilities.
-
- - BHS mode is now also compatible with "german.sty".
-
- New features:
-
- - There are two new experimental fonts "xnash14" and "xnash14bf"
- which overcome some limitations inherent in the previously
- available versions "nash14" and "nash14bf". These fonts can be
- activated (if installed) by the new command "\newarabfont" and
- can be deactivated again by "\oldarabfont"; these commands
- change the meaning of the commands "\setnash" and "\setnashbf"
- to switch to the new versions, if required, and back.
-
- - In transcription mode, single characters may be capitalized by
- prefixing the command \cap in the input; the Arabic writing is
- not affected.
- - with ' (hamza) and ` (`ayn) the next visible letter will be
- capitalized.
- - this feature also works within words, after prefixes and after
- the article, even if written in the assimilated form.
-
- - In transcription mode, the representations of "hamza" and "ayin"
- have been changed slightly; this might influence line breaks.
-
- Recommendations:
-
- - When typesetting Roman text with Arabic or Hebrew insertions, a
- better result can usually be obtained by typesetting on a grid;
- this can be accomplished by resetting the parameters \lineskip
- to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
- to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
- You may want to experiment with the factor quoted as "1.2".
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-21.10.98: Version 3.07k
-
- Fixes:
-
- - A very obscure internal error has been corrected.
-
- - In Hebrew mode, the positioning of dagesh and also of some vowel
- points has been improved.
- - In Hebrew mode, "meteg" (and silluq) now also works with cholem.
- - In Hebrew mode, there now is a small space before sof pasuq.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-18.10.98: Version 3.07j
-
- Fixes:
-
- - In Hebrew mode, patach furtivum after cholem works now.
- - In Hebrew verbatim encodings (HED and ISO 8859-8), neither two
- identical letters nor a medial letter and its final form will be
- any more combined (erroneously) to a letter with dagesh.
-
- Open Problems:
-
- - On some servers, the font "nash14" seems to be broken. This does
- NOT concern current ArabTeX runs, but displaying older DVI files
- might be affected in that some characters, e.g., <^gim>, may be
- missing.
- - This will be fixed in the next minor version 3.08; for the time
- being there are two workarounds:
- - Reprocess the ArabTeX input file; the display will be correct.
- - If this is not possible or not wanted, download the ASCII file
- "arabsymb.mf" and regenerate the font as required.
- - The font "nash14bf" might have the same problem; the workarounds
- apply also.
- - Neither new ArabTeX runs nor the font "xnsh14" are affected.
-
- Hints:
-
- - With Hebrew and LaTeX, the LaTeX2e version should be 1996/12/01
- or newer; older versions have been reported to produce obscure
- errors. We can no more check this.
-
- Installation:
-
- - download "hepatch.sty", and "arabsymb.mf" if required.
-
---------------------------------------------------------------------------
-30.09.98: Version 3.07i
-
- Fixes:
-
- - ArabTeX and CJK are now fully compatible. The loading sequence
- of ArabTeX and CJK is arbitrary.
- - defective notation of fatha, kasra, damma works again.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.98: Version 3.07h
-
- Fixes:
-
- - The position of some more diacritic dots has been corrected.
- - several ligatures have been improved.
-
- New Features:
-
- - ArabTeX is now compatible with the package "fnpara.sty" IF this
- package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
- out about its presence.
- - ArabTeX is now compatible with the package "CJK.sty" IF this
- package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
- out about its presence.
-
- Special Features:
-
- - for users of "tustep.sty" (if any :-):
- ArabTeX is compatible again.
-
- Known bugs:
-
- - There is a problem concerning double consonants in Hebrew, only
- in the HED encoding.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-28.08.98: Version 3.07g
-
- Fixes:
-
- - The position of some diacritic dots has been corrected.
-
- New Features:
-
- - For LaTeX there are additional styles for page numbers:
- \pagenumbering{arab} will produce *real* Arabic page numbers
- \pagenumbering{Arab} will produce bold Arabic page numbers
- \pagenumbering{abjad} will produce "abjad" page numbers
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-06.08.98: Version 3.07f
-
- Fixes:
-
- - there was a small problem transliterating emphasized words.
-
- - separating words by || did not work.
-
- - the character for final "ny" in Malay was wrong.
- - the character for final "h" in Malay was wrong.
-
- New Features:
-
- - Arabic and Persian words may be separated by \, (small space)
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-31.07.98: Version 3.07e
-
- Fixes:
-
- - there were spurious characters in Hebrew output.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-28.07.98: Version 3.07d
-
- New Features:
-
- - there is a new directory "psfonts" that contains the Postscript
- Type 1 versions of the fonts "xnsh14" and "xnsh14bf". The files
- are called "xnsh14.pfb", "xnsh14bf.pfb", and "arabtex.map". The
- fonts use the original TFM files. They have been tested with
- dvips 5.76, ghostscript 5.10, a LaserJet 4+, and Acrobat Reader.
-
- These font files have been built and donated by Taco Hoekwater
- (taco.hoekwater@wkap.nl). Three cheers on him!
-
- Old Features:
-
- - the Arabic commands \lq (opening quotes), \rq (closing quotes),
- and \,(small non-breaking space) have been present for some time;
- we forgot to document this fact.
-
- Installation:
-
- - download and install the contents of the directory "psfonts"
- wherever appropriate on your system; this is system dependent.
-
- - "apatch.sty" was changed, but need not be downloaded except on
- special advice.
-
---------------------------------------------------------------------------
-27.07.98: Version 3.07c
-
- Fixes:
-
- - in Farsi mode ,a and ,e work again.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-23.07.98: Version 3.07b
-
- Fixes:
-
- - The letter SIN in Hebrew mode was broken.
- - The Sindhi abbreviations look better now.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-20.07.98: Version 3.07a
-
- Fixes:
-
- - After installing the version 3.07 on our local server we noticed
- an incompatibility with LaTeX2e; also by some new strategies the
- patching mechanism had been broken. To fix these effects we had
- to modify several source modules; we also found, and repaired,
- several minor bugs. This is in fact nearly a new minor version;
- on installation see below.
-
- - To our surprise we found, and repaired, a Y2000 problem.
-
- Changes:
-
- - Switch to the new font "xnsh14" by the command "\newarabfont";
- use "\oldarabfont" for switching back. The previous command
- "\newfont" collides with a command in LaTeX2e.
-
- Extensions:
-
- - The font "xnsh14" contains all character fragments necessary to
- build the characters in the extended Arabic segment of Unicode.
- There is as yet no reading module for Unicode or UTF-8 encoding;
- the present version of "utf8.sty" is still inconsistent.
-
- - There are new commands "\MIN" and "\IN" for two frequently used
- abbreviations in Sindhi.
-
- - The file "atrans.sty" is loaded automatically.
-
- - The file "etrans.sty" has been deleted. Use "\settrans{english}"
-
- - The file "nashbf.sty" has been deleted. Use "\setnashbf"
-
- Installation:
-
- - If you already have loaded version 3.07, unpack and replace the
- macro files in "tex307a.zip"; otherwise do a complete install as
- indicated below for version 3.07 first.
-
---------------------------------------------------------------------------
-16.07.98: Version 3.07
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are several new files!
-
- - We have rewritten substantial parts of the package in order to
- increase stability and also to ease maintenance and extensions;
- the modularisation is now different, and some of the internal
- interfaces have been modified. This need not concern the user;
- the functionality has not been changed, and apparently nothing
- was broken during the transition to the new structure.
- - The main reason for the changes was, apart from improving the
- overall structure, to prepare for the handling of the full
- Arabic segment of Unicode. This goal has not yet been attained,
- but it required substantial changes in the internal structures.
- - The positioning of diacritical marks has on the average been
- much improved. There are a few exceptions; affected users that
- need the maximum quality available could try their luck with
- the new fonts "xnash14" and "xnash14bf" (see below). Otherwise
- the user interface has not changed.
-
- Additions:
-
- - There are two new experimental fonts "xnash14" and "xnash14bf"
- which overcome some limitations inherent in the previously
- available versions "nash14" and "nash14bf". These fonts can be
- activated (if installed) by the new command "\newfont" and can
- be deactivated again by "\oldfont"; these commands change the
- meaning of the commands "\setnash" and "\setnashbf" to switch
- to the new versions, if required, and back. Normal users not
- requiring the new versions can safely ignore this feature; they
- need not now install these fonts.
-
- Bugs:
-
- - Presently none are known.
-
-==========================================================================
-24.03.98: Version 3.06h
-
- Fixes:
-
- - some ligatures had been broken by the Sindhi mode; these have
- been fixed.
- - kashida before alif maqsura works again.
-
- Problems:
-
- - verses produced via "verses.sty" will ruin the word spacing if
- they occur within an Arabic paragraph inside a footnote, and
- possibly in other circumstances. There is a workaround: put the
- command "\setspace{4.3pt plus 0.001fil}" after the last verse.
-
---------------------------------------------------------------------------
-11.03.98: Version 3.06g3
-
- Fixes:
-
- - bi-directional linebreaking has been improved; there were some
- spurious blank spaces.
-
- New features:
-
- - ArabTeX is now believed to be compatible with the BABEL system.
- We cannot test this locally; reports are welcome. We acknowledge
- useful hints by Olaf Kummer and Johannes Braams.
-
- - there is now less spurious information in the LOG file.
-
- - there are some preparations for processing the UTF-8 encoding
- and the extended Arabic character set provided in UNICODE. These
- features cannot yet be accessed from the user level.
-
---------------------------------------------------------------------------
-26.01.98: Version 3.06f
-
- Fixes:
-
- - the special handling of final "mim" has been restricted to the
- Sindhi mode.
- - the positioning of diacritics has been improved.
-
- - Hebrew and EDMAC users: the "\if@lodia effect" has been fixed.
-
- Note to users of EDMAC:
-
- - download the new version 3.06a of 22.01.98 of "aedpatch.sty".
- This fixes the format of footnote paragraphs. (This correction
- cannot technically be handled by a patch within "apatch.sty").
-
- Note to users of the Sindhi mode:
-
- - please download the fonts again to get all characters.
-
---------------------------------------------------------------------------
-15.12.97: Version 3.06e
-
- Fixes:
-
- - "alif maqsura" and isolated "hamza" take explicit vowel marks
- and also "tanwin" if required.
- - final "mim" in the Urdu mode again has the long shape. In the
- Sindhi mode a short form is simulated by a kashida if needed.
- - in Urdu the encoding <,d> produces "dal" with a "toi" accent,
- and initial <U> becomes "alif+damma" and "waw" as required.
- - some transcription errors in Urdu mode have been fixed.
- - some ligatures in Sindhi mode are improved.
-
- Problems:
-
- - medial "wavy hah" in Urdu has a mark below it (controversial).
-
---------------------------------------------------------------------------
-27.11.97: Version 3.06d
-
- Fixes:
-
- - the input letter <A> denotes alif also in initial position and
- after a prefix separated by a hyphen. It may take short vowels,
- and also sukun (only if quoted). This feature may be useful when
- copying corrupted texts.
- - the "lam" of the article carries "sukun" also if the following
- word starts with "`ayin", like with the other "moon letters".
- - the encodings <I> and <iy> are equivalent; also <Iy> and <iyy>,
- <U> and <uw>, <Uw> and <uww>.
- - <"> and <""> at the beginning of a word generate alif with wasla
- even after a prefix.
- - a prefix before hyphen no more needs a short vowel to work.
- - the invisible character <|> is legal in the initial or the final
- position (but makes no sense there). It never takes a vowel mark.
-
- New features:
-
- - the inflection endings <-a>, <-i>, <-u>, <-aN>, <-iN>, <-uN> may
- be separated by a hyphen, also if written <-aNA>. Otherwise the
- character after a hyphen will be considered to start a new word,
- but may be joined to the prefix if possible (e.g., in <al-i-ismu>
- where <-i-> is a connection vowel producing "kasra", and <ismu>
- starts with "alif" "wasla" combined with "lam" into "lam-alif"
- carrying both "wasla" and "kasra".)
- - if a ligature is separated by <|> or <--> (kashida), any vowel
- mark present will migrate to the appropriate character glyph. The
- same happens with the implicit vowel mark that is produced by the
- long vowels in the vowelizing modes.
- - a comma <,> between digits will no more break the digit sequence
- but will be recognized as a decimal separator. A hyphen <-> and a
- solidus </> will also not break a digit sequence. A "number" must
- still begin with a digit to be recognized.
-
- Problems:
-
- - the Urdu mode is still broken.
- - for the new language modes (see 3.06) there is yet no (correct)
- transcription.
-
- Hints:
-
- - users of the Sindhi mode should regenerate the fonts otherwise
- the "wide kaf" may be missing.
-
---------------------------------------------------------------------------
-23.11.97: Version 3.06c
-
- Fixes:
-
- - final "alif maqsura" carries no sukun.
- - in connection with EDMAC, an Arabic lemma bearing a footnote is
- spread out by the same factor as the rest of the line, (e.g. in
- verses) even if it contains spaces.
- - Arabic footnotes with EDMAC no more produce overfull boxes, and
- will no more let the page overflow.
-
- Known bugs:
-
- - prefixes separated by a hyphen must presently be given in the
- fully vowelized input form, otherwise the writing is wrong.
- - The Urdu mode is broken; also its transcription is wrong.
-
---------------------------------------------------------------------------
-25.09.97: Version 3.06b
-
- Fixes:
-
- - in Kurdish mode, kashida and breaking of ligatures work now
-
---------------------------------------------------------------------------
-18.09.97: Version 3.06a
-
- Fixes:
-
- - there were sometimes spurious newlines if the transliteration
- was generated via an Arabic insertion
- - ligatures can again be broken by inserting a bar |
- - the ligatures family lam-gim, ta-gim etc. works again
- - there were spurious spaces in bidirectional text under EDMAC
-
---------------------------------------------------------------------------
-06.08.97: Version 3.06
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files.
- - This doc file has been trimmed down; history information up to
- version 3.00 has been moved to "changes2.txt".
- - Several file names of the mini-documentation have been changed
- to lower case and carry the suffix ".txt", for the benefit of
- certain web-browsers. See also the file "arabtex.htm".
-
- Fixes:
-
- - some minor bugs have been fixed that had introduced spurious
- spaces or newlines when switching between Arabic and Hebrew.
- - "kashida" (--) between a consonant and a (long or short) vowel
- will no more split the vowel indicator from the consonant glyph.
-
- Additions:
-
- - the new command "\setsindhi" will switch to a language mode for
- Sindhi in an extended Arabic script. For details, process and
- read the file "sindhi.tex".
- - the new command "\setuighur" will switch to a language mode for
- Uighuric in an extended Arabic script. For details, process and
- read the file "uighur.tex".
- - the new command "\setmalay" will switch to a language mode for
- Old Malay (Jawi) in an extended Arabic script. For details,
- process and read the file "malay.tex".
- - These new language modes are strictly experimental and just a
- starting point. As the author speaks none of these languages,
- feedback and comments by interested users are badly needed.
-
-==========================================================================
-19.06.97: Version 3.05h
-
- Fixes:
-
- - some ligatures with "kaf" have been improved.
- - "quoting" of "wasla" works in all vowel modes.
- - "kashida" works also before long vowels.
- - breaking of ligatures works correctly also with long vowels
- and in combination with "quoting".
-
---------------------------------------------------------------------------
-12.06.97: Version 3.05g
-
- Fixes:
-
- - a bug fix for the new Sindhi module has been introduced (this
- mode is in alpha status and not yet publicly available; if you
- are interested in testing it: enquire)
-
---------------------------------------------------------------------------
-10.06.97: Version 3.05f
-
- Fixes:
-
- - a spurious error message about a "missing character" has been
- eliminated.
- - "\settrans{english}" switches again to the transliteration
- conventions of the Library of Congress.
- - ArabTeX will no more overwrite a user macro "\x".
-
- Additions:
-
- - the new command "\arabfootnotes" makes LaTeX footnotes run from
- right to left, and their text is considered Arabic by default.
- There is as yet no command to switch back to the default mode
- (left to right, Roman). With Plain TeX the new command is not
- yet available.
-
---------------------------------------------------------------------------
-28.05.97: Version 3.05e
-
- Fixes:
-
- - <U> in the Urdu mode works again.
- - some errors in the transliteration have been corrected.
- - some ligatures have been corrected.
-
---------------------------------------------------------------------------
-22.05.97: Version 3.05d
-
- Fixes:
-
- - \tabular structures within the Arabic document classes are now
- correctly aligned.
- - a few ligatures have been improved.
- - some internal routines have been updated preparing for some
- planned extensions. No visible effect.
- - a new test for version clashes has been introduced.
-
---------------------------------------------------------------------------
-14.05.97: Version 3.05c
-
- Fixes: The patching routine seems to work again.
-
---------------------------------------------------------------------------
-14.05.97: Version 3.05b
-
- Problems:
-
- - LaTeX is too clever and interferes with the patching routine.
- Therefore the existing patches for Hebrew have been moved to
- the file "hepatch.sty". Arabic mode is presently not affected.
-
---------------------------------------------------------------------------
-13.05.97: Version 3.05a
-
- Fixes:
-
- - in Hebrew mode when using HED encoding, Thet and Maqqef did
- not work correctly.
- - in EDMAC mode with Plain TeX the list of modules was missing.
- - some internal interfaces have been updated. This has no effect
- on the external operation but helps stability.
-
---------------------------------------------------------------------------
-07.05.97: Version 3.05
-
- Status:
-
- - The internal structure has changed extensively; this need not
- trouble the user.
- - Warning: NEVER MIX old and new files; they may be incompatible!
-
- Fixes:
-
- - A number of minor and some major bugs have been fixed.
-
- Modifications:
-
- - With EDMAC, the first argument of \text need not fit on the
- current line. All arguments are assumed to be Roman text; they
- may contain (or consist of) \<Arabic insertions>.
-
- Additions:
-
- - The ISIRI 3342 encoding is supported; load the reading module
- by \input isiri.sty or \usepackage {isiri}. Activate it by the
- command \setcode {isiri}.
- - Hebrew support has been expanded; read the file "hebrew.305".
- ArabTeX will try to use fonts locally available, irrespective
- of their encoding.
- - the file "verses.sty" supports typesetting poetry in two blocks.
- For a description, see the file itself.
- - See also the comments on Version 3.04 below.
-
- Hints:
-
- - If you want to process the manual "arabdoc.tex" under LaTeX 2e
- and get error messages, delete the *.aux, *.toc, and *.lot file
- and try again. These files depend on the LaTeX version used.
- - see also version 3.04.
-
- Complaints:
-
- - There is STILL no Nasta`liq font.
- - the user manual "arabdoc.tex" is outdated.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.05:
-
- - replace the contents of "TEXINPUT" and "REPORT".
- - read and/or print "README.305"
- - if interested, process the user manual "arabdoc.tex"; see the
- hints above.
-
-==========================================================================
-05.10.96: Version 3.04e
-
- Fixes:
-
- - removed many small bugs in Persian (thanks, Ivan Dershzanski!)
- - initial <alif> coded <A> in verbatim mode may carry a vowel
- - <yah> without dots coded <Y> acts like a consonant except at the
- end of a word
- - <aNy> denotes <fathatan> on <alif maqsura> erroneously written
- with dots
-
- Modifications:
-
- - removed quoted hamza ("') from verbatim mode (was ambiguous!)
-
---------------------------------------------------------------------------
-18.05.96: Version 3.04d
-10.05.96: Version 3.04c (not distributed)
-
- Fixes:
-
- - in "arabart.cls" (twocolumn) the right column is output first
- to get correct numbering of sectional units
- - corrected the vertical position of "marginpar"
- - a space is assumed after a new command defined via \allowarab
-
---------------------------------------------------------------------------
-08.04.96: Version 3.04b
-
- Fixes:
-
- - \footnote works again within an Arabic environment
-
- Known bugs:
-
- - \footnote is incompatible with "arabart.cls"
-
---------------------------------------------------------------------------
-21.03.96: Version 3.04a
-
- Fixes:
-
- - \baselineskip works correctly with EDMAC
- - \emphasize puts the overbar at uniform height in \novocalize
-
- Necessary action:
-
- If required, download the ASCII file "apatch.sty" again. This
- is a patch for version 3.04!
-
- See also version 3.04 below.
-
---------------------------------------------------------------------------
-19.03.96: Version 3.04
-
- Status:
-
- - ArabTeX now cooperates well with LaTeX 2e (June 1995 and later)
- and also still with Plain TeX and LaTeX 2.09. The configuration
- is determined automatically. With LaTeX 2e ArabTeX and all its
- suboptions are packages.
- - The internal structure has changed extensively; this need not
- trouble the user.
-
- Fixes:
-
- - \baselineskup, \parskip, \baselinestretch now work correctly
- in the Arabic modes.
- - The TeX special characters \#, \$, \%, \& can now be used (they
- just had been forgotten).
- - A number of minor bugs have been fixed.
-
- Modifications:
-
- - Digits and punctuation have been raised to the writing line.
- We feel this looks better.
- - The handling of numbers (= digit sequences) has been improved.
- Within a number, the decimal separator is the comma.
- - Bidirectional line-breaking has again been much improved. The
- command \goodpar still works but is rarely required.
- - The option "abidir" is no more necessary.
- - The option "nashbf" is no more necessary.
- - The option "abjad" is no more necessary.
-
- Additions:
-
- - User defined macros can be made known to ArabTeX by the
- declaration \allowarab {\macro_name} (previous to their use
- within an Arabic environment). The replacement text after
- substituting the parameters must be legal ArabTeX input and
- may contain further macro calls. The macro must be previously
- defined via \newcommand or \def.
-
- - The Arabic Windows encoding is supported; load the reading
- module by \input arabwin.sty, \usepackage {arabwin} or by
- adding the LaTeX 2.09 option "arabwin". Activate it by the
- command \setcode {arabwin}.
-
- - There are some additional transliteration modes for Persian
- and Urdu; in case of interest: inquire directly.
-
- - The package "raw.sty" defines the command \setraw to switch
- off all special processing for numbers, special characters
- and parentheses. This may be helpful for OCR work. Switch
- back by \unsetraw.
-
- - The (experimental) LaTeX 2e class file "arabart.cls" provides
- an Arabic article format. Within Arabic environments a number
- of LaTeX commands are enabled: sectioning, list environments,
- page headers and footers, table of contents, footnotes, quote,
- quotation, verse, center, twocolumn. All text arguments are
- considered to be Arabic text in the chosen encoding. Some of
- the LaTeX environments are missing, e.g., tabular and tabbing,
- minipages, pictures. They can usually be simulated by leaving
- the Arabic environment and reverting to the standard LaTeX
- commands.
-
- We are working on extensions to this format; suggestions and
- bug reports are welcome. We do not intend to supply a version
- for LaTeX 2.09.
-
- - See also the comments on Version 3.03 below.
- - The notes in README.303 still apply.
-
- Hints:
-
- - Uniform baselines may be obtained by setting \lineskiplimit
- to -\baselineskip and adjusting \baselinestretch to 1.4 (with
- LaTeX) or \baselineskip to 1.4\baselineskip with Plain TeX.
- Some experimenting is advised.
- - If you want to process the manual "arabdoc.tex" under LaTeX 2e
- first move the file "arabimax.tex" to the REPORT subdirectory.
- You will get some error messages on the first run. Forget them
- and process the file again; LaTeX 2e is to blame. Warning: the
- report is not quite up to date.
- - Put any local macro definitions into the LaTeX preamble or else
- precede them by \setnone; thus the < sign can be used in the
- normal meaning as a comparison operator. Activate short Arabic
- insertions again by \setarab or any other of the commands for
- language choice.
- - PiCTeX users may use Arabic labels within diagrams if and only
- if these are included in \< and > (NOT < and >).
- - If you use MlTeX and the output looks broken, note the version
- number of MlTeX and inform us.
-
- Complaints:
-
- - There is STILL no Nasta`liq font.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.04:
-
- - read and/or print "README.303"
-
-==========================================================================
-04.07.95: Version 3.03e
-
- Fixes:
-
- - Final yah before hamza works again
-
---------------------------------------------------------------------------
-24.05.95: Version 3.03d
-
- Fixes:
-
- - After switching to other encodings switching back to the
- standard encoding works again.
- - An empty \RL {} insertion will no more blow the system.
-
- Problems:
-
- - see version 3.03c
-
---------------------------------------------------------------------------
-02.05.95: Version 3.03c
-
- Fixes:
-
- - The METAFONT routines for the fonts "nash14" and "nash14bf"
- used a file "asymbols.mf" that conflicted with the AMS-Fonts.
- This file has been renamed to "arabsymb.mf". To use the new
- version, download "arabsymb.mf" and "nashbase.mf" from the
- subdirectory ARABTEX/MFINPUT and delete "asymbols.mf". This
- only concerns users who need to regenerate the fonts locally.
-
- Problems:
-
- - The font "dclassic" used by the Hebrew mode of ArabTeX has on
- the archive "noa.huji.ac.il" been replaced by a new version
- that is incompatible to the previous version while keeping the
- same name. We are working on a solution to resolve the ensuing
- compatibility problems. Users of the previous version are not
- affected.
-
- Acknowledgment:
-
- - The routines for building up punctuated Hebrew characters have
- profited from macros written by Joel Hoffmann and contained in
- his packages "dots.sty" and "hvowel1.sty". We apologize for not
- pointing out this fact clearly.
-
- Necessary action:
-
- - Normally none, except if indicated above.
-
---------------------------------------------------------------------------
-24.04.95: Version 3.03b
-
- Fixes:
-
- - The handling of single and double quotes, and of other special
- characters, in the ASMO 449 and ISO 8859-6 encodings has been
- improved.
- - After a punctuation character inside a word (usually an error)
- no space will be produced.
- - <tanwIn> on <'alif maqsUraT> works again.
- - In \setverb mode, a <harakaT> on <'alif> now works.
- - In \setverb mode, <A> may be used to produce <'alif>.
- - The ligature <lm|a> is produced instead of <l|ma>.
- - <ba'>, <ya'> etc. before <lAm> now have the short form.
-
- Known bugs in ArabTeX:
-
- - \begin{arabtext} inside a minipage will produce a spurious
- empty line; the reason is unknown.
-
- Hints:
-
- - Numbers after quotes will not be recognized as such and thus
- will be reversed; as a workaround, leave a space around the
- digits, e.g., <`` 1234 ''> or use a \nospace command, e.g.,
- <`` \nospace 1234 \nospace ''>.
- Mind the spaces before the \nospace commands in the example!
- - With LaTeX2e, load ArabTeX and its suboptions by the command
- \usepackage.
-
---------------------------------------------------------------------------
-28.03.95: Version 3.03a
-
- Fixes:
-
- - A workaround for an error in some versions of ML-TeX has
- been tentatively introduced. Non-ML-TeX users may safely
- ignore this.
-
---------------------------------------------------------------------------
-10.03.95: Version 3.03
-
- Fixes:
-
- - A number of minor bugs have been fixed, nothing dramatic.
- - The spacing of punctuation has been improved.
-
- Modifications:
-
- - Hebrew vowel points are provided. Hebrew mode now uses the font
- "dclassic". It can be downloaded e.g. from "noa.huji.ac.il".
-
- Additions:
-
- - The Hebrew encoding used in the machine readable version
- of BHS is supported. See README.303!
- - \obeylines and \obeyspaces also work for Arabic text. They
- however must be used in a group that contains the Arabic
- text AND this group must be followed by at least one space.
- - An <Arabic insertion> inside a \verbatim environment will be
- typeset in Arabic. Big TeX may be necessary.
- An Arabic environment will be typeset verbatim.
- - \vskip, \hskip, \vspace, \hspace, \newpage, \vfill are legal
- in Arabic mode.
- - A list of the loaded modules is put into the log file.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.03:
-
- - completely replace the contents of the subdirectory TEXINPUT
- - move the updated files "arabdoc?.tex" from the outermost level
- to the subdirectory "REPORT"
- - read and/or print "README.303"
-
-==========================================================================
-12.08.94: Version 3.02b
-
- Fixes:
-
- - \fullvocalize mode uses somewhat less TeX main memory than
- before but might still overflow; using \newpage explicitly
- could help
- - some ligatures have been improved
- - spacing has been improved in short insertions when the
- transliteration is also generated
- - in Hebrew mode, HED encoding, double letters work again
- - explicit spreading works again correctly
- - <hamza> in rare cases had the wrong carrier
- - if an Arabic word starts with a vowel, "quoting" toggles
- <wasla> if no vowel is given in the input
- - bidirectional line-breaking has been much improved. The
- command \goodpar is rarely necessary
-
- Hints:
-
- - etrans.sty is no more necessary; load atrans.sty
- - \settrans{english} switches to the romanization conventions
- of the Library of Congress
-
---------------------------------------------------------------------------
-19.07.94: Version 3.02a
-
- Fixes:
-
- - in Arabic, alif maqsura after tanwin works again
- - in Hebrew, before an apostrophe the medial form is used
- - in Hebrew, hyphen/maqqef works correctly
-
- Hints:
-
- - with Plain TeX (and/or EDMAC) only: load the ASCII file
- "apatch.sty" explicitly as the last file!
-
---------------------------------------------------------------------------
-14.07.94: Version 3.02
-
- Fixes:
-
- - some minor bugs have been corrected
- - the User Manual has been slightly updated, but is otherwise
- somewhat out of date.
-
- Modifications:
-
- - for storage reasons the transcription module is not loaded
- automatically; add the LaTeX option "atrans" if required,
- or say "\input atrans.sty".
-
- Additions:
-
- - EDMAC 3.00 and EDMAC 3.15 are both supported.
- - the LaTeX option "abidir" provides the new command \RL {text}
- for right-to-left insertions; it is used like <text> which is
- still provided, and which should be used wherever possible for
- reasons of efficiency.
- - the LaTeX option "hebtex" loads the modules for processing text
- in Hebrew. Switch to Hebrew by \sethebrew, and back to Arabic
- by \setarab. Hebrew text can be coded in the standard ArabTeX
- input notation, or in the encoding used by the editor HED; the
- latter coding is activated by \setcode {hed}. The reading module
- is supposed to also process texts in "newcode" (not tested!)
- - For using the Hebrew mode, the font "deadsea" must be available;
- it can be downloaded e.g. from "noa.huji.ac.il". Vowels are
- presently not provided.
- - For details see the ASCII file "readme.302".
-
- Hints:
-
- - only load the modules really required, or you might have to use
- a Big TeX!
-
- Known bugs:
-
- - None.
-
- How to move from earlier minor versions to version 3.02:
-
- - completely replace the contents of the subdirectory TEXINPUT
- - move the updated files "arabdoc?.tex" from the outermost level
- to the subdirectory "REPORT"
- - read and/or print "README.302"
-
-==========================================================================
-05.05.94: Version 3.01a
-
- Fixes:
-
- - \parskip now has effect also inside Arabic environments.
-
- Additions:
-
- - The EDMAC commands \pstart, \pend, \autopar are allowed
- inside an Arabic environment, IF properly nested.
-
---------------------------------------------------------------------------
-28.04.94: Version 3.01
-
- There has been extensive internal rewriting but the external
- effects are minor.
-
- - \setarab is the language default again. It will no more break
- the user's macro definitions IF these are put into the LaTeX
- preamble, or before "\input arabtex.sty" when using Plain TeX.
-
- Fixes:
-
- - Spaces are normally ignored after allowed control sequences
- inside Arabic text, (if not produced by the command itself.)
- - The spacing between a final silent <hah> in Persian and the
- next word has been improved.
-
- - An error in "twoblocks.sty" has been corrected that produced
- a spurious vertical space.
- - An error in "asmo449.sty" has been corrected that produced
- nonsense from the combination "Gdr" (article with an explicit
- <sukUn>)
- - In "abjad.sty", the <gIm> for the numeral 3 has no dot.
-
- Additions:
-
- - The commands \smallskip, \medskip, \bigskip, \newpage,
- \clearpage, \pagebreak, \hskip {glue}, \vskip {glue}, \today
- now work inside Arabic text.
- - there is a new language mode: \setturk for Ottoman.
- The input notation has been extended to cover both the standard
- and the modern Turkish transliteration.
- The documentation remains to be written :-(
- - there is a new language mode: \setkurdish for Kurdish.
- The documentation remains to be written :-(
- - "" produces an explicit <sukUn> except in \fullvocalize mode
- where it deletes a <sukUn> otherwise present.
- - The new commands \setarabfont {\nash} or \setarabfont {\nashbf}
- supersede \setnash and \setnashbf (which are still supported).
-
- Known bugs:
-
- - None.
-
- Hints:
-
- - The LaTeX style option "atrans" is redundant.
- - After changing the input coding, select the language mode and
- the vowelization mode anew (this is a feature :-).
-
- How to move from earlier minor versions to version 3.01:
-
- - completely replace the contents of the directory TEXINPUT
- - observe that there is a new file "acmd.sty"
-
-==========================================================================
-07.12.93: Version 3.00b
-
- Fixes:
-
- - corrected handling of <tanween fatha> in \setverb mode.
- - improved error handling for illegal commands.
- - ligature <geem>-<meem> also in spreading mode.
-
- Additions:
-
- - \setspace{rubber_length} changes the default for spaces in
- Arabic text; 3pt plus .5fil is recommended for \spreadbox.
-
- Known bugs:
-
- - arguments of boxing commands may not contain insertions.
- - in ASMO449, the combination Gdr (article with an explicit
- sukoon) will produce nonsense.
-
- Hints:
-
- - There is no language default. Do not forget \setarab etc.
- or otherwise you might get strange results.
- - After changing the input coding, select the language and
- the vowelization mode anew (this is a feature).
-
- These are in the manual but easily overlooked.
-
---------------------------------------------------------------------------
-26.11.93: Version 3.00a
-
- Fixes:
-
- - the <hamza> carrier is now <ya'> the before diphthong <ay>
-
- Additions:
-
- - more Qur'anic writing variants provided
- - \hfil is allowed in Arabic text
-
---------------------------------------------------------------------------
-20.11.93: Major Version 3.00
-
- Status:
-
- - large portions of the code have been rearranged and partly
- rewritten
- - The User Manual has been extensively updated and describes
- all (supported) ArabTeX features currently implemented
- - Version 3.00 seems to be compatible with Version 2 files
- - NFSS and NFSS2 can be used but are not required
- - all known bugs have been removed
- - Version 3.00 still can be run (slowly) on a standard PC XT
-
- Additions:
-
- - texts coded in ASMO 449 or ISO 8859-6 can now be processed
- - several historic writing variants are additionally supported
- - details of Farsi support are now described in the User Manual
- - many new commands are valid inside Arabic text; a complete
- list appears in the log file of each ArabTeX run, and also
- in the new User Manual
- - see also versions 2.00 - 2.08 below
-
-==========================================================================
-
- How to move from version 2.0x, 0 <= x <= 8, to version 3.00:
-
- - completely replace the contents of the directory TEXINPUT
- - completely replace the contents of the directory REPORT
- - process AND READ the new User Manual "arabdoc.tex"
- - leave the fonts alone
-
- How to move from version 1 (or none at all) to version 3.00:
-
- - Do as above; install the fonts "nash14" and "nash14bf" first
- according to local TeX conventions.
- - If the font "nash10" is still there, delete it.
-
-==========================================================================
- For information on older versions see the file "changes2.txt".
-==========================================================================
- Prof. Klaus Lagally
- Institut fuer Formale Methoden der Informatik
- Universitaet Stuttgart
- Universitaetsstrasse 38
- D-70569 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
- FAX: +49 - 711 - 7816 370
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2006, Klaus Lagally
---------------------------------------------------------------------------
-
+CHANGES.TXT 02.07.2006
+--------------------------------------------------------------------------
+ ArabTeX Version 3
+ =================
+--------------------------------------------------------------------------
+ NOTE: Version management:
+
+ - We distinguish major versions "m.00", minor versions "m.nn-"
+ with nn > 0, and patch versions "m.nnx" where "x" is a letter.
+
+ - to update from an older major version: reinstall completely.
+
+ - to update from an older minor version: replace the contents of
+ "TEXINPUT" and, if so indicated, "REPORT". Replace the fonts
+ only if so indicated explicitly.
+
+ - to update to a newer patch version: replace the ASCII file
+ "apatch.sty" and, if you use Hebrew, "hepatch.sty". These files
+ are distributed as unpacked text files, and will be applied
+ automatially whenever starting ArabTeX.
+
+ - Patch versions within the same minor version are cumulative, so
+ a newer patch will encompass all earlier versions.
+
+ - To back out from a patch version, replace "apatch.sty" by an
+ earlier version (within the same minor version only!) if still
+ locally available, or else edit out the current additions from
+ "apatch.sty" and, if applicable, "hepatch.sty" (save a copy
+ first!). Also please inform the author why you backed out.
+
+ - There is no provision to return gracefully to earlier minor or
+ even major versions. We can make them available on request, but
+ you should have good reasons, and there will be no support.
+
+==========================================================================
+02.07.2006: Version 3.11s
+
+ Fixes:
+
+ - In mixed paragraphs, the handling of horizontal spacing between
+ Arabic insertions and Roman text, and vice versa, is determined
+ by the spaces (if present) in the input text inside and outside
+ of the RL{} commands.
+
+ New features:
+
+ - The experimental package "saw.sty" provides macros \SAW and \ALS
+ for producing special glyph combinations for theological and
+ religious texts (with the exception of the Holy Qur'an, which we
+ do not support). These macros work inside and outside of Arabic
+ mode; presently they are available in \normalsize only.
+
+ Note:
+
+ - We are informed of a project, within the Muslim world, to extend
+ ArabTeX by special features for printing the Holy Qur'an. We
+ know about the difficulties, and we wish them success.
+
+ Installation:
+
+ - download "apatch.sty" and, if required, "saw.sty".
+
+--------------------------------------------------------------------------
+17.04.2006: Version 3.11r
+
+ Fixes:
+
+ - A glitch in EDMAC mode was fixed.
+
+ - <Roman insertions> within Arabic text work again, also when the
+ <shorthand> notation for Arabic insertions in Roman text is in
+ force.
+
+ New features:
+
+ - Processing of bidirectional paragraphs has been reimplemented
+ completely. Roman paragraphs with Arabic script insertions may
+ have arbitrary, variable '\parshape's and even nested recursive
+ insertions to arbitrary depth. This is rarely needed, but it is
+ a strong torture test for the new algorithm.
+
+ - With LaTeX, the package 'lineno.sty' for producing line numbers
+ is now fully supported. The former restrictions no more apply.
+
+ Installation:
+
+ - download "apatch.sty" and also "alocal.sty".
+
+--------------------------------------------------------------------------
+01.03.2006: Version 3.11q
+
+ Fixes:
+
+ - Some more incompatiblities with Plain TeX have been fixed.
+
+ - Vertical spacing commands in LaTeX work better within Arabic
+ environments.
+
+ New features:
+
+ - A new file "alocal.sty" was introduced in order to facilitate
+ loading local extensions for individual users. Normally it
+ does nothing, but must be present.
+
+ - There is some limited support for users of "lineno.sty"; if
+ that package is present, line numbers will work in the basic
+ \linenumber mode within Arabic environments, and \linelabel
+ can also be used. Other features have not been tested.
+
+ CAUTION: The command \RL{} is presently not quite compatible
+ with the "lineno.sty" package, and might break, both itself
+ and the line numbers! In that case, try \< > for insertions.
+
+ Installation:
+
+ - download "apatch.sty" and also "alocal.sty".
+
+--------------------------------------------------------------------------
+08.02.2006: Version 3.11p
+
+ Fixes:
+
+ - There was an incompatibility between the patching mechanism in
+ "apatch.sty" and Plain TeX (only!).
+
+ - Final "ha'" in Jawi had the wrong shape.
+
+ New features:
+
+ - There is an improved version of "verses.sty"; for documentation
+ see the file itself.
+
+ Installation:
+
+ - download "apatch.sty" and, if required, "verses.sty".
+
+--------------------------------------------------------------------------
+01.02.2006: Version 3.11o
+
+ Fixes:
+
+ - The lines of a bidirectional paragraph were sometimes mixed up
+ when a page break interfered. This was neither easy to find nor
+ to fix.
+
+ - An incompatible (!) change in Plain TeX 3.1415926 had broken the
+ transcription module. Use of ArabTeX with LaTeX was not affected.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+06.04.2005: Version 3.11n
+
+ Fixes:
+
+ - In the Arabic document classes the commands 'figure' and 'table'
+ were broken. They work again.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+23.01.2005: Version 3.11m
+
+ Fixes:
+
+ - In the Arabic document classes the list environments were
+ broken. Their labels work again.
+
+ - Punctuation marks in the Arabic script have been moved down
+ slightly.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+24.06.2004: Version 3.11l
+
+ Fixes:
+
+ - An incompatibility between Kashmiri mode and Hebrew mode was
+ taken care of. A small glitch in Uighuric mode was fixed.
+
+ - Arabic and Hebrew (right to left) insertions in a left-to-right
+ paragraph now also work correctly within LaTeX table fields
+ specified with the p{} qualifier.
+
+ New features:
+
+ - The skip values \LRskip {\hskip \z@ plus 0.1em } before a RTL
+ insertion, and \RLskip {\hskip \z@ plus 0.1em } after a RTL
+ insertion, may be adjusted by the user to tune the appearance
+ of bidirectional paragraphs.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+24.05.2004: Version 3.11k
+
+ Fixes:
+
+ - Arabic and Hebrew (right to left) insertions in a left-to-right
+ paragraph now also work correctly at the very beginning of the
+ paragraph, and also in the context of nested LaTeX environments.
+ There used to be spurious spaces and shifted baselines.
+
+ Note:
+
+ - the reading modules 'bhs.sty', 'witbhs.sty', and 'buck.sty'
+ presently cannot coexist with other input encoding methods for
+ Arabic and Hebrew, not even with the standard transliteration
+ encoding. This restriction might go away in further versions.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.05.2004: Version 3.11j
+
+ Fixes:
+
+ - The unconditional placement of a 'hamza' mark on a character
+ by the suffix < " ' > had been disabled for internal reasons.
+ It is active again.
+
+ - In Hebrew mode, the placement of diacritics within a final kaph
+ letter was fixed again. This had already been corrected in the
+ version 3.11d, but that patch did not work.
+
+ New features:
+
+ - The experimental reading module 'buck.sty' for the 'Buckwalter'
+ encoding conventions has been upwards compatibly extended to
+ cover XML compatible extensions, several Persian letters, and
+ new encodings of diacritic marks as proposed by the Archimedes
+ project. For details and open issues, enquire.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+26.04.2004: Version 3.11i
+
+ Fixes:
+
+ - The algorithm for bidirectional line-breaking in mixed Arabic-
+ Roman paragraphs has been completely re-implemented. It is now
+ shorter and faster, and hopefully, has fewer bugs.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+15.03.2004: Version 3.11h
+
+ Fixes:
+
+ - For Pashto and Sindhi modes, and also for special purposes,
+ a few input encodings have been changed to conform with the
+ new version of the user manual (still in preparation).
+
+ New features:
+
+ - For YIVO Yiddish, a few additional input encodings have been
+ provided to write Hebrew words according to the conventions
+ of the "Yiddishe Shraybmashinke" by Refoyl Finkel.
+
+ - In 'verses.sty' the command \setversedim {length}{gap} to set
+ the length of the halfverses and their separation, has been
+ expanded to the format \setversedim {length1}[length2]{gap} by
+ an optional second (!) argument to set the lengths of the
+ two hemistichs independently. The old format still works.
+ The command \halfverses {first}[conn]{second} is equivalent to
+ \connverses {first}{conn}{second} (mind the brackets!)
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+26.02.2004: Version 3.11g
+
+ Fixes:
+
+ - When the Arabic Windows encoding is used, double quotes <">
+ are interpreted as directional quotes <``> and <''> according
+ to the context.
+
+ - When using 'verses.sty' the text will be centered, both in
+ Plain TeX mode and in LaTeX mode. Whenever this is not feasible
+ due to the indicated verse dimensions, hemistichs will be put
+ flush right and flush left in alternate lines. Connecting the
+ hemistichs in that case is not possible; end the last word of
+ the first hemistich, and start the first word of the second,
+ by a dash <-> to get the connecting forms of the appropriate
+ letters, if they exist.
+
+ New features:
+
+ - Within an Arabic word in transliteration encoding, a plus sign
+ <+> will unconditionally place a 'sukun' or, after an initial
+ 'alif', a 'wasla', on the preceding letter. As the first
+ character, or isolated or after punctuation, the plus sign
+ denotes itself.
+
+ - In Sindhi mode, the special ending 'in' as in <min> and <'in>
+ may also be coded <.mIN> and <'IN>.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+12.02.2004: Version 3.11f
+
+ Fixes:
+
+ - Some character assignments for Judeo-Arabic were corrected.
+
+ - Various minor technical bugs were found and corrected.
+
+ New features:
+
+ - The file 'arabwin.sty' is obsolete and should no more be used;
+ for the Arabic Windows encoding use 'cp1256.sty' instead. The
+ encoding is set by '\setcode{cp1256}' or '\setcode{arabwin}'.
+
+ - In pausal position, the feminine ending <aT> (tah marbuta) is
+ now transcribed as 'ah'. The input encoding is unchanged.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+08.12.2003: Version 3.11e
+
+ Fixes:
+
+ - Bidirectional paragraphs are now handled correctly even within
+ the LaTeX environments 'quote' and 'quotation'.
+
+ - In Hebrew mode, the positioning of 'nikudot' on final 'kaph'
+ was improved.
+
+ - The handling of final 'Urdu wavy hah' was improved.
+
+ - After switching the font size in LaTeX (also implicitly in
+ section titles and such), an initial number sometimes was
+ lost even outside of Arabic or Hebrew mode. This has been
+ corrected.
+
+ New features:
+
+ - The font 'xnsh14' is the default for Arabic mode. In Hebrew
+ mode, 'hclassic' is the default.
+
+ - ArabTeX now seems to be compatible with 'inputenc.sty'.
+
+ - In the Unicode mode, additional extended Arabic characters
+ are now supported, so are ZWJ = ZERO WIDTH JOINER and ZWNJ
+ = ZERO WIDTH NON-JOINER (see below).
+
+ - 'dotless bah' and 'Uzbek ae' are supported in Unicode mode.
+
+ - Within an Arabic word in transliteration encoding, a star <*>
+ will unconditionally place a 'shadda' on the preceding letter.
+ At the beginning of a word, or isolated or after punctuation,
+ the star denotes itself.
+
+ Notes:
+
+ - Changes of input encoding are \global for technical reasons.
+
+ - Private reading modules for individual users may be broken
+ by the new reading strategy introduced for compatibility with
+ 'inputenc.sty'. In case of problems, contact the author. New
+ versions of 'buck.sty, 'bhs.sty', and 'witbhs.sty' have been
+ prepared.
+
+ Open issues:
+
+ - The space introduced by ZWNJ = ZERO WIDTH NON-JOINER is still
+ too wide. No fix is known.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+23.10.2003: Version 3.11d
+
+ Fixes:
+
+ - In the Arabic document classes, the formatting of the table
+ of contents was improved. A strange bug was corrected.
+
+ - A storage leak was found which prevented the formatting of
+ longer documents, leading to 'save stack overflow'.
+
+ - A bug in the ligatures module was found which used to produce
+ bogus messages 'missing letter y in font xnsh14' and to
+ slightly interfere with correct vowelization.
+
+ - A bug in the output module was found which used to produce
+ bogus messages 'underfull vbox while \output was active'.
+ The fix might slightly influence page breaking.
+
+ New features:
+
+ - There is now limited support for Arabized LyX.
+ Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
+ available for ArabTeX, all special font variants are presently
+ mapped into 'bold face'. This could be changed at the user's
+ request; please send any suggestions to the author.
+
+ - The messages in the LOG file are less verbose now.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.2003: Version 3.11c
+
+ Fixes:
+
+ - in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
+
+ New features:
+
+ - Hebrew mode provides a new command \setjudarab to activate
+ an experimental Judaeo-Arabic mode. Input is supposed to be
+ Arabic in the standard transliteration encoding (other modes
+ might work by accident), output is an extended Hebrew writing
+ in the chosen Hebrew font, and the standard transliteration
+ when activated. Arabic vowels are presently not provided; the
+ Hebrew vowels work but are presumably of no use.
+
+ Caution: The new mode can be expected to contain errors. We
+ do not know the exact writing conventions, and have no access
+ to any relevant literature. Scholars in the field are urged
+ to contact the author. Comments and suggestions are invited.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+08.09.2003: Version 3.11b
+
+ Fixes:
+
+ - the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Some of the remaining bugs have been fixed.
+
+ - Hebrew Plain mode works again. To use it, download the new
+ version of 'hebtex.tex'(!), the Hebrew Plain driver. The
+ corrections cannot be handled by "apatch.sty" alone.
+
+ New features:
+
+ - ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
+ mode.
+
+ Installation:
+
+ - download "apatch.sty".
+
+ - in case you are using the Hebrew Plain mode (and only then)
+ also download the new version of the driver module "hebtex.tex"
+ (not "hebtex.sty"!)
+
+--------------------------------------------------------------------------
+27.08.2003: Version 3.11a
+
+ Fixes:
+
+ - the 'hanging heh' in Urdu mode has been fixed.
+
+ - the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Hopefully there are not too many new bugs.
+
+ - Hebrew Plain mode should work again. If you are not directly
+ concerned, forget it; tests are going on. The necessary
+ corrections cannot be handled by "apatch.sty" alone, see the
+ remarks below.
+
+ Installation:
+
+ - download "apatch.sty".
+
+ - in case you are using the Hebrew Plain mode (and only then)
+ also download the new version of the driver module "hebtex.tex"
+ (not "hebtex.sty"!)
+
+--------------------------------------------------------------------------
+22.08.2002: Version 3.11
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - Distribution and modification of ArabTeX is now governed by
+ the Latex Project Public License (see LPPL.TXT).
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - In Hebrew mode, all standard fonts available on CTAN are now
+ supported, including the possibility of generating vowel points
+ in \vocalize mode.
+
+ Bugs:
+
+ - Hebrew Plain TeX mode is currently broken.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+23.04.2003: Version 3.10k
+
+ Fixes:
+
+ - some glitches in Farsi mode were fixed.
+
+ - in Uighuric mode, some transcriptions were missing.
+
+ - in Urdu mode, final 'wavy hah' is generated now.
+
+ New features:
+
+ - in Uighuric mode, <:s> produces 'sin' with three dots below.
+ <A> produces 'alif' with 'madda', so does <^A>.
+
+ - in Farsi mode and its descendants, 'kasra' on a double letter
+ will be positioned below the letter instead of below the
+ 'shadda' mark. This feature will later become an option.
+
+ - the internal test mode is less verbose. This need not concern
+ normal users.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+16.11.2002: Version 3.10j
+
+ Fixes:
+
+ - the handling of 'ayin' in Hebrew mode was improved.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+14.11.2002: Version 3.10i
+
+ Fixes:
+
+ - "matres lectionis" in Hebrew work better.
+
+ - Version 3.10h was broken on some servers!
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+28.08.2002: Version 3.10h
+
+ Fixes:
+
+ - The math command \cap was broken.
+
+ - Line breaking of Roman insertions within Arabic mode seems to
+ work correctly now.
+
+ New features:
+
+ - There is formally a new language mode \setbalut for Balochy.
+ Presently it is mapped to \setpashto but will be extended as
+ soon as the exact writing rules are known.
+
+ - The command \cond #1{#2}{#3}\fi will expand to either #2 or #3
+ depending on the TeX conditional #1. It is nearly equivalent
+ to #1 #2\else #3\fi but may also be used in Arabic mode. The
+ command is skippable and fully expandable.
+
+ - \endinput may occur in Arabic mode.
+
+ - The input character <G> encodes Pashto 'gAf' with a ring. In
+ Farsi and Pashto mode, <g> produces Farsi 'gAf' with a stroke.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+16.06.2002: Version 3.10g
+
+ Fixes:
+
+ - in Pashto mode, <.n> will produce 'noon' with a dot and a ring.
+ Some further Pashto codes can be found in Table 4.2.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+11.05.2002: Version 3.10f
+
+ Fixes:
+
+ - in Persian mode, some bugs concerning 'hamze on he' were fixed.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+14.04.2002: Version 3.10e
+
+ Fixes:
+
+ - in the standard Hebrew transcription, 'shwa' was missing.
+
+ - in Persian mode, 'hamze on he' is produced if required.
+
+ - in Hebrew mode using the 'hclassic' and 'hcaption' fonts, the
+ vowel points are generated differently to render better when
+ using T1 fonts.
+
+ - in CP1256 encoding, explicit 'shadda' works now correctly.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+07.03.2002: Version 3.10d
+
+ Fixes:
+
+ - In many of the non-standard encodings the handling of double
+ letters (implicit shadda or not) has been corrected.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the handling of figure and table \captions has been improved.
+
+ Hints:
+
+ - When using a local addition to ArabTeX together with a patch
+ version of ArabTeX, read the local addition by \input after
+ the command \begin{document}, not by an \usepackage command.
+ Otherwise a race condition occurs that could overwrite your
+ local additions.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+03.03.2002: Version 3.10c
+
+ Fixes:
+
+ - The default language is Arabic again.
+
+ - The LaTeX commands \footnote, \footnotemark, and \footnotetext
+ in normal LTR LaTeX mode were broken in version 3.10b. Sorry!
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the environment 'tabular' works correctly.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the command \tableofcontents works correctly.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the commands \table and \figure may have a \caption.
+
+ Hints:
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ and *also* in normal LTR mode, within the \tabular environment
+ every row but the last must be terminated by \\, also if \hline
+ follows. The text of the error message has been improved.
+
+ New Features:
+
+ - The Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ formerly required the use of the ArabTeX standard encoding for
+ correct functioning of generated section heads and the like.
+ This restriction was never noticed, and applies no more.
+
+ - Abjad numbers now also work with other input encodings.
+
+ - Within an Arabic environment the command \stdcode{some text}
+ accepts Arabic text in the ArabTeX standard encoding even if
+ otherwise some other encoding is in use. This may be useful
+ for local corrections.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+12.02.2002: Version 3.10b
+
+ Fixes:
+
+ - The LaTeX commands \footnote, \footnotemark, and \footnotetext
+ now work correctly within Arabic environments, even if only
+ transliteration mode is active. The output mode (transliterate,
+ Arabic writing, or both) of Arabic inserts in the footnote text
+ is inherited from the main document if not explicitly switched
+ locally within the footnote text.
+
+ Hints:
+
+ - Footnotes containing Arabic inserts might come out too high.
+ This may be prevented, at the risk of lines overlapping, by
+ \smash-ing the Arabic insert or even the complete footnote.
+
+ - Within transliteration mode hyphenation is only performed after
+ long vowels, thus \sloppy mode might be required. If the last
+ word of a line ends with a long vowel, a spurious hyphen will
+ appear. This is a bug; presently no fix is known!
+
+ New Features:
+
+ - The LaTeX footnote commands (see above) also work within the
+ Arabic document classes 'arabart', 'arabrep', and 'arabbook'.
+
+ - By default, or after the command \LRfootnotes, the footnotes
+ are positioned as in a Roman document, and the footnote text
+ is assumed to be Roman by default. Arabic inserts are produced
+ by \RL{ }.
+
+ - After the command \RLfootnotes, footnotes run from right to
+ left and the default language mode is Arabic. Roman inserts
+ are produced by \LR{ }.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+06.10.2001: Version 3.10a
+
+ Fixes:
+
+ - A few minor patches from 'v3.09' did not make it into 'v3.10'.
+
+ - The transliteration of '_h' was improved.
+
+ - Plain TeX mode now also uses fonts "xnash14" and "xnash14bf"
+ as the default.
+
+ - In Hebrew mode, 'cholem male' and vowels in contact now work
+ correctly.
+
+ - In Hebrew mode, footnotes containing Hebrew inserts now have
+ uniform baselines again.
+
+ New Features:
+
+ - All patches are now handled by "apatch.sty".
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.2001: Version 3.10
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - Distribution and modification of ArabTeX is now governed by
+ the Latex Project Public License (see LPPL.TXT).
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - In Hebrew mode, all standard fonts available on CTAN are now
+ supported, including the possibility of generating vowel points
+ in \vocalize mode.
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+13.05.2001: Version 3.09g
+
+ Fixes:
+
+ - Some spurious spaces in the transliteration were fixed.
+
+ - \tabular within \center was broken by \RL{}.
+
+ - Hamza and `Ayn were broken in a \tabbing environment.
+
+ New Features:
+
+ - The file "arabtds.zip" in the distribution, when available,
+ contains the ArabTeX package repacked according to the TDS
+ (TeX Directory Structure). To install the complete package,
+ PC Users of MikTeX and several other TeX distributions that
+ presuppose the TDS structure, should download this file only
+ (in binary mode!) and unpack it at the top level of their
+ local TEXMF tree. For other installations, moving around some
+ files or adjusting some access path might be required.
+
+ - Reminder: some TeX installations require a command "texhash"
+ or "texconfig" to activate a newly installed package.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+27.05.2000: Version 3.09f
+
+ Fixes:
+
+ - The LaTeX command \cdot works again.
+
+ - The LaTeX command \protect may appear in RL mode. It has no
+ visible effect.
+
+ - The vertical bar | has no function, but does no harm behind an
+ Arabic character that does not connect to the left.
+
+ - The behaviour of "wasla" in the transliteration was fixed.
+
+ - The vertical spacing of footnotes is no more influenced by \RL
+ insertions in the first line.
+
+ New Features:
+
+ - Brackets [ and ] and parentheses ( and ) may be used within an
+ Arabic or Hebrew word to indicate optional parts; they do not
+ change the connection behaviour of the adjacent characters.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+05.04.2000: Version 3.09e
+
+ Fixes:
+
+ - to switch the transcription font say, e.g., \settransfont{\rm}.
+ \settransfont{rm} (forgetting the \) now also works, instead of
+ producing impressive garbage.
+
+ - an \RL{} insertion text may now begin with a space.
+
+ - footnotes containing \RL{} insertions have uniform baselines.
+
+ - the space command \ works within RL mode.
+
+ - \bf and \rm (for returning to normal) work within RL mode.
+
+ New Features:
+
+ - within RL environments, \newcommand, \newenvironment, and \def
+ and their relatives may be used to define new control sequences
+ which have to expand to legal ArabTeX input; they will not be
+ visible outside of the environment (even if \gdef or \xdef is
+ used.) For a user defined command to be visible both outside
+ and inside RL mode, define it in LR mode and announce it to the
+ ArabTeX command processor by \allowarab.
+
+ - the new commands \shadda, \madda, \sukun in Arabic mode and the
+ commands \raphe, \dagesh, \mappiq in Hebrew mode will place the
+ corresponding diacritic on the preceding letter. In Hebrew mode
+ \maqqef will produce a connector, \abbr an abbreviation mark.
+
+ - A single hyphen will be invisible in the RL writing, but will
+ show up in the transcription; the adjacent letters will always
+ assume the connecting form, if it exists, even at the beginning
+ or the end of a word.
+
+ - any paragraph containing \RL{} insertions will now have uniform
+ baselines. The users might have to adjust \baselinestretch.
+
+ - RL insertions now also work for encodings like MacOS Arabic and
+ MacOS Hebrew that provide an RL space.
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+18.03.2000: Version 3.09d
+
+ Fixes:
+
+ - the transcription did not work correctly within a LaTeX tabbing
+ environment since this environment mungles the accent commands.
+ (We consider this a mis-feature in LaTeX!)
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+19.10.1999: Version 3.09c
+
+ Fixes:
+
+ - "\cap" for capitalisation of the transcription now works also
+ within section titles and in the table of contents.
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+30.07.1999: Version 3.09b
+
+ Note: version 3.09a did not work.
+
+ Fixes:
+
+ - In the Hebrew mode, "maqqef" now works with all fonts.
+
+ Installation:
+
+ - download "hepatch.sty"
+
+--------------------------------------------------------------------------
+17.07.1999: Version 3.09
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - Many ArabTeX commands that used to be fragile in connection
+ with LaTeX are now robust.
+
+ - Within the LaTeX document classes "arabart", "arabrep", and
+ "arabbook" nearly all LaTeX environments are allowed also
+ within Arabic mode.
+
+ Recommendations:
+
+ - When typesetting Roman text with Arabic or Hebrew insertions, a
+ better result can usually be obtained by typesetting on a grid;
+ this can be accomplished by resetting the parameters \lineskip
+ to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
+ to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
+ You may want to experiment with the factor quoted as "1.2".
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+24.06.99: Version 3.08i
+
+ New Features:
+
+ - there is an "abstract" environment in the Arabic classes.
+ - mathematical displays bracketed by $$ $$ may be nested within an
+ Arabic environment. Bracketing by $ $ was always there.
+ - The LaTeX commands \( \), \[ \], and also the LaTeX environments
+ "math", "displaymath", "equation", "eqnarray", and "eqnarray*"
+ are supported within Arabic environments, also with the options
+ "leqno" and "fleqn", if LaTeX is used.
+
+ Upcoming Features:
+
+ - a new edition of the User manual is in preparation.
+
+ Installation:
+
+ - download "apatch.sty", if you are interested.
+
+--------------------------------------------------------------------------
+10.06.99: Version 3.08h
+
+ Fixes:
+
+ - there were a few glitches in Pashto and Kashmiri encoding
+ - there were a few glitches in Pashto transliteration
+ - the command \settrans #1 is allowed within Arabic mode
+ - the command \tracingmacros #1 is allowed within Arabic mode
+
+ New Features:
+
+ - the environments "RLtext", "arabtext", and "hebtext" are now
+ equivalent
+ - the braces \< and > are admissible within Arabic mode but have
+ no effect
+ - the command \addcontentsline also works in the Arabic classes
+ "arabrep", "arabart", "arabbook"
+ - the title of the table of contents is context dependent in the
+ Arabic document classes
+
+ Upcoming Features:
+
+ - a new edition of the User manual is in preparation
+ - there is yet no "abstract" environment in the Arabic classes
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+16.05.99: Version 3.08g2
+
+ Fixes:
+
+ - In the transcription mode, capitalization (see version 3.08) can
+ now also be used within a word, even several times.
+ - In the transcription, the positioning of the marks for Hamza and
+ Ayn was slightly improved.
+ - in Urdu mode, Ta' marbuta works again.
+ - in BHS mode, Shin works again.
+ - in the Arabic document classes, some spurious font switches were
+ fixed.
+
+ New Features:
+
+ - There is a new language mode: Kashmiri. See "kashmiri.tex" for a
+ short description.
+
+ Installation:
+
+ - download "apatch.sty" (and "kashmiri.sty", "kashmiri.tex" and/or
+ "bhs.sty" if required)
+
+--------------------------------------------------------------------------
+10.05.99: Version 3.08f
+
+ Fixes:
+
+ - In the transcription mode, capitalization (see version 3.08) can
+ now also be used in the English (Encyclopedia of Islam) style.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+22.04.99: Version 3.08e
+
+ Fixes:
+
+ - We found some grave errors in the Urdu mode; it seems to work
+ again now. Observe that there are several forms of "heh":
+ - the two-eyed form for aspiration: code <h>
+ - the wavy form for other cases: code <,h>
+ - the final closed form: code <H>
+ For the Name of God, use <H> in Urdu mode, or switch to \setarab
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+10.04.99: Version 3.08d
+
+ Fixes:
+
+ - For use with EDMAC, the file "aedpatch.sty" has been updated to
+ fix some spurious spaces.
+ - For use with Hebrew, the files "hclassic.mf" and "hcaption.mf"
+ have been slightly adjusted, and "hcbase_pc.mf" was renamed to
+ "hcbase.mf" to fix an incompatibility in some operating systems
+ preventing automatic font generation; the fonts themselves are
+ unchanged.
+
+ Installation:
+
+ - download the indicated files, if you need them; otherwise you
+ may safely ignore this version.
+
+ Note: the version number of ArabTeX (in the LOG) is still 3.08c !
+
+--------------------------------------------------------------------------
+25.03.99: Version 3.08c
+
+ Fixes:
+
+ - Most of the LaTeX renumbering commands introduced in the last
+ version (3.08b) do NOT work and have been blocked off. LaTeX
+ does not allow font changes within numbering commands, since
+ these must be fully expandable within TeX's mouth.
+
+ - "arabrep.cls" has been updated again.
+
+ Old Features:
+
+ - There is only one new numbering command, and it only can be
+ used in the context of the Arabic document classes, also as a
+ \pagenumbering style, and for renaming e.g. \thesection:
+
+ \abj{ctr} "abjad" notation for counters.
+
+ - \pagenumbering{abj} may also be written \pagenumbering{abjad}.
+
+ - in the Arabic document classes, put \tableofcontents within
+ an Arabic environment.
+
+ Installation:
+
+ - download "apatch.sty", and also "arabrep.cls" when required.
+ The latter file is not contained within the packed versions!
+
+--------------------------------------------------------------------------
+21.03.99: Version 3.08b1
+
+ New Features:
+
+ - For LaTeX there are additional numbering commands for counters
+ (cf. Section C.8.4 "Numbering" in the LaTeX manual:)
+
+ \arab{ctr} "Arabic" Arabic numerals
+ \Arab{ctr} "Arabic" Arabic numerals, bold
+ \abj{ctr} "abjad" notation
+ \Abj{ctr} "abjad" notation, bold
+ \Arabic{ctr} "European" Arabic numerals, bold (extension!)
+
+ - There are also the corresponding \pagenumbering styles, e.g.:
+ \pagenumbering{Abj} for bold "abjad" page numbers.
+
+ Fixes:
+
+ - Some of these commands were present in 3.07g but did not work.
+
+ - isiri.sty had become incompatible and has been updated.
+
+ - arabrep.cls had become incompatible and has been updated.
+
+ Hints:
+
+ - if your MFINPUT subdirectory of ArabTeX should contain a file
+ "asymbols.mf", delete it. It is obsolete and may be in conflict
+ with AMSTeX and/or AMSLaTeX.
+
+ Installation:
+
+ - download "apatch.sty", and "isiri.sty" or "arabrep.cls" when
+ required. The latter two files are not contained within the
+ packed versions!
+
+--------------------------------------------------------------------------
+13.02.99: Version 3.08a
+
+ Fixes:
+
+ - The transliteration of "Quran alif" was in error.
+
+ Installation:
+
+ - download "apatch.sty" if required.
+
+--------------------------------------------------------------------------
+01.12.98: Version 3.08
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ (and activating them) to obtain better quality of output.
+
+ - ArabTeX is believed to be fully compatible with Babel; however,
+ it does not use its features. Please report incompatibilities.
+
+ - BHS mode is now also compatible with "german.sty".
+
+ New features:
+
+ - There are two new experimental fonts "xnash14" and "xnash14bf"
+ which overcome some limitations inherent in the previously
+ available versions "nash14" and "nash14bf". These fonts can be
+ activated (if installed) by the new command "\newarabfont" and
+ can be deactivated again by "\oldarabfont"; these commands
+ change the meaning of the commands "\setnash" and "\setnashbf"
+ to switch to the new versions, if required, and back.
+
+ - In transcription mode, single characters may be capitalized by
+ prefixing the command \cap in the input; the Arabic writing is
+ not affected.
+ - with ' (hamza) and ` (`ayn) the next visible letter will be
+ capitalized.
+ - this feature also works within words, after prefixes and after
+ the article, even if written in the assimilated form.
+
+ - In transcription mode, the representations of "hamza" and "ayin"
+ have been changed slightly; this might influence line breaks.
+
+ Recommendations:
+
+ - When typesetting Roman text with Arabic or Hebrew insertions, a
+ better result can usually be obtained by typesetting on a grid;
+ this can be accomplished by resetting the parameters \lineskip
+ to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
+ to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
+ You may want to experiment with the factor quoted as "1.2".
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+21.10.98: Version 3.07k
+
+ Fixes:
+
+ - A very obscure internal error has been corrected.
+
+ - In Hebrew mode, the positioning of dagesh and also of some vowel
+ points has been improved.
+ - In Hebrew mode, "meteg" (and silluq) now also works with cholem.
+ - In Hebrew mode, there now is a small space before sof pasuq.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+18.10.98: Version 3.07j
+
+ Fixes:
+
+ - In Hebrew mode, patach furtivum after cholem works now.
+ - In Hebrew verbatim encodings (HED and ISO 8859-8), neither two
+ identical letters nor a medial letter and its final form will be
+ any more combined (erroneously) to a letter with dagesh.
+
+ Open Problems:
+
+ - On some servers, the font "nash14" seems to be broken. This does
+ NOT concern current ArabTeX runs, but displaying older DVI files
+ might be affected in that some characters, e.g., <^gim>, may be
+ missing.
+ - This will be fixed in the next minor version 3.08; for the time
+ being there are two workarounds:
+ - Reprocess the ArabTeX input file; the display will be correct.
+ - If this is not possible or not wanted, download the ASCII file
+ "arabsymb.mf" and regenerate the font as required.
+ - The font "nash14bf" might have the same problem; the workarounds
+ apply also.
+ - Neither new ArabTeX runs nor the font "xnsh14" are affected.
+
+ Hints:
+
+ - With Hebrew and LaTeX, the LaTeX2e version should be 1996/12/01
+ or newer; older versions have been reported to produce obscure
+ errors. We can no more check this.
+
+ Installation:
+
+ - download "hepatch.sty", and "arabsymb.mf" if required.
+
+--------------------------------------------------------------------------
+30.09.98: Version 3.07i
+
+ Fixes:
+
+ - ArabTeX and CJK are now fully compatible. The loading sequence
+ of ArabTeX and CJK is arbitrary.
+ - defective notation of fatha, kasra, damma works again.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.98: Version 3.07h
+
+ Fixes:
+
+ - The position of some more diacritic dots has been corrected.
+ - several ligatures have been improved.
+
+ New Features:
+
+ - ArabTeX is now compatible with the package "fnpara.sty" IF this
+ package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
+ out about its presence.
+ - ArabTeX is now compatible with the package "CJK.sty" IF this
+ package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
+ out about its presence.
+
+ Special Features:
+
+ - for users of "tustep.sty" (if any :-):
+ ArabTeX is compatible again.
+
+ Known bugs:
+
+ - There is a problem concerning double consonants in Hebrew, only
+ in the HED encoding.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+28.08.98: Version 3.07g
+
+ Fixes:
+
+ - The position of some diacritic dots has been corrected.
+
+ New Features:
+
+ - For LaTeX there are additional styles for page numbers:
+ \pagenumbering{arab} will produce *real* Arabic page numbers
+ \pagenumbering{Arab} will produce bold Arabic page numbers
+ \pagenumbering{abjad} will produce "abjad" page numbers
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+06.08.98: Version 3.07f
+
+ Fixes:
+
+ - there was a small problem transliterating emphasized words.
+
+ - separating words by || did not work.
+
+ - the character for final "ny" in Malay was wrong.
+ - the character for final "h" in Malay was wrong.
+
+ New Features:
+
+ - Arabic and Persian words may be separated by \, (small space)
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+31.07.98: Version 3.07e
+
+ Fixes:
+
+ - there were spurious characters in Hebrew output.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+28.07.98: Version 3.07d
+
+ New Features:
+
+ - there is a new directory "psfonts" that contains the Postscript
+ Type 1 versions of the fonts "xnsh14" and "xnsh14bf". The files
+ are called "xnsh14.pfb", "xnsh14bf.pfb", and "arabtex.map". The
+ fonts use the original TFM files. They have been tested with
+ dvips 5.76, ghostscript 5.10, a LaserJet 4+, and Acrobat Reader.
+
+ These font files have been built and donated by Taco Hoekwater
+ (taco.hoekwater@wkap.nl). Three cheers on him!
+
+ Old Features:
+
+ - the Arabic commands \lq (opening quotes), \rq (closing quotes),
+ and \,(small non-breaking space) have been present for some time;
+ we forgot to document this fact.
+
+ Installation:
+
+ - download and install the contents of the directory "psfonts"
+ wherever appropriate on your system; this is system dependent.
+
+ - "apatch.sty" was changed, but need not be downloaded except on
+ special advice.
+
+--------------------------------------------------------------------------
+27.07.98: Version 3.07c
+
+ Fixes:
+
+ - in Farsi mode ,a and ,e work again.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+23.07.98: Version 3.07b
+
+ Fixes:
+
+ - The letter SIN in Hebrew mode was broken.
+ - The Sindhi abbreviations look better now.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+20.07.98: Version 3.07a
+
+ Fixes:
+
+ - After installing the version 3.07 on our local server we noticed
+ an incompatibility with LaTeX2e; also by some new strategies the
+ patching mechanism had been broken. To fix these effects we had
+ to modify several source modules; we also found, and repaired,
+ several minor bugs. This is in fact nearly a new minor version;
+ on installation see below.
+
+ - To our surprise we found, and repaired, a Y2000 problem.
+
+ Changes:
+
+ - Switch to the new font "xnsh14" by the command "\newarabfont";
+ use "\oldarabfont" for switching back. The previous command
+ "\newfont" collides with a command in LaTeX2e.
+
+ Extensions:
+
+ - The font "xnsh14" contains all character fragments necessary to
+ build the characters in the extended Arabic segment of Unicode.
+ There is as yet no reading module for Unicode or UTF-8 encoding;
+ the present version of "utf8.sty" is still inconsistent.
+
+ - There are new commands "\MIN" and "\IN" for two frequently used
+ abbreviations in Sindhi.
+
+ - The file "atrans.sty" is loaded automatically.
+
+ - The file "etrans.sty" has been deleted. Use "\settrans{english}"
+
+ - The file "nashbf.sty" has been deleted. Use "\setnashbf"
+
+ Installation:
+
+ - If you already have loaded version 3.07, unpack and replace the
+ macro files in "tex307a.zip"; otherwise do a complete install as
+ indicated below for version 3.07 first.
+
+--------------------------------------------------------------------------
+16.07.98: Version 3.07
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are several new files!
+
+ - We have rewritten substantial parts of the package in order to
+ increase stability and also to ease maintenance and extensions;
+ the modularisation is now different, and some of the internal
+ interfaces have been modified. This need not concern the user;
+ the functionality has not been changed, and apparently nothing
+ was broken during the transition to the new structure.
+ - The main reason for the changes was, apart from improving the
+ overall structure, to prepare for the handling of the full
+ Arabic segment of Unicode. This goal has not yet been attained,
+ but it required substantial changes in the internal structures.
+ - The positioning of diacritical marks has on the average been
+ much improved. There are a few exceptions; affected users that
+ need the maximum quality available could try their luck with
+ the new fonts "xnash14" and "xnash14bf" (see below). Otherwise
+ the user interface has not changed.
+
+ Additions:
+
+ - There are two new experimental fonts "xnash14" and "xnash14bf"
+ which overcome some limitations inherent in the previously
+ available versions "nash14" and "nash14bf". These fonts can be
+ activated (if installed) by the new command "\newfont" and can
+ be deactivated again by "\oldfont"; these commands change the
+ meaning of the commands "\setnash" and "\setnashbf" to switch
+ to the new versions, if required, and back. Normal users not
+ requiring the new versions can safely ignore this feature; they
+ need not now install these fonts.
+
+ Bugs:
+
+ - Presently none are known.
+
+==========================================================================
+24.03.98: Version 3.06h
+
+ Fixes:
+
+ - some ligatures had been broken by the Sindhi mode; these have
+ been fixed.
+ - kashida before alif maqsura works again.
+
+ Problems:
+
+ - verses produced via "verses.sty" will ruin the word spacing if
+ they occur within an Arabic paragraph inside a footnote, and
+ possibly in other circumstances. There is a workaround: put the
+ command "\setspace{4.3pt plus 0.001fil}" after the last verse.
+
+--------------------------------------------------------------------------
+11.03.98: Version 3.06g3
+
+ Fixes:
+
+ - bi-directional linebreaking has been improved; there were some
+ spurious blank spaces.
+
+ New features:
+
+ - ArabTeX is now believed to be compatible with the BABEL system.
+ We cannot test this locally; reports are welcome. We acknowledge
+ useful hints by Olaf Kummer and Johannes Braams.
+
+ - there is now less spurious information in the LOG file.
+
+ - there are some preparations for processing the UTF-8 encoding
+ and the extended Arabic character set provided in UNICODE. These
+ features cannot yet be accessed from the user level.
+
+--------------------------------------------------------------------------
+26.01.98: Version 3.06f
+
+ Fixes:
+
+ - the special handling of final "mim" has been restricted to the
+ Sindhi mode.
+ - the positioning of diacritics has been improved.
+
+ - Hebrew and EDMAC users: the "\if@lodia effect" has been fixed.
+
+ Note to users of EDMAC:
+
+ - download the new version 3.06a of 22.01.98 of "aedpatch.sty".
+ This fixes the format of footnote paragraphs. (This correction
+ cannot technically be handled by a patch within "apatch.sty").
+
+ Note to users of the Sindhi mode:
+
+ - please download the fonts again to get all characters.
+
+--------------------------------------------------------------------------
+15.12.97: Version 3.06e
+
+ Fixes:
+
+ - "alif maqsura" and isolated "hamza" take explicit vowel marks
+ and also "tanwin" if required.
+ - final "mim" in the Urdu mode again has the long shape. In the
+ Sindhi mode a short form is simulated by a kashida if needed.
+ - in Urdu the encoding <,d> produces "dal" with a "toi" accent,
+ and initial <U> becomes "alif+damma" and "waw" as required.
+ - some transcription errors in Urdu mode have been fixed.
+ - some ligatures in Sindhi mode are improved.
+
+ Problems:
+
+ - medial "wavy hah" in Urdu has a mark below it (controversial).
+
+--------------------------------------------------------------------------
+27.11.97: Version 3.06d
+
+ Fixes:
+
+ - the input letter <A> denotes alif also in initial position and
+ after a prefix separated by a hyphen. It may take short vowels,
+ and also sukun (only if quoted). This feature may be useful when
+ copying corrupted texts.
+ - the "lam" of the article carries "sukun" also if the following
+ word starts with "`ayin", like with the other "moon letters".
+ - the encodings <I> and <iy> are equivalent; also <Iy> and <iyy>,
+ <U> and <uw>, <Uw> and <uww>.
+ - <"> and <""> at the beginning of a word generate alif with wasla
+ even after a prefix.
+ - a prefix before hyphen no more needs a short vowel to work.
+ - the invisible character <|> is legal in the initial or the final
+ position (but makes no sense there). It never takes a vowel mark.
+
+ New features:
+
+ - the inflection endings <-a>, <-i>, <-u>, <-aN>, <-iN>, <-uN> may
+ be separated by a hyphen, also if written <-aNA>. Otherwise the
+ character after a hyphen will be considered to start a new word,
+ but may be joined to the prefix if possible (e.g., in <al-i-ismu>
+ where <-i-> is a connection vowel producing "kasra", and <ismu>
+ starts with "alif" "wasla" combined with "lam" into "lam-alif"
+ carrying both "wasla" and "kasra".)
+ - if a ligature is separated by <|> or <--> (kashida), any vowel
+ mark present will migrate to the appropriate character glyph. The
+ same happens with the implicit vowel mark that is produced by the
+ long vowels in the vowelizing modes.
+ - a comma <,> between digits will no more break the digit sequence
+ but will be recognized as a decimal separator. A hyphen <-> and a
+ solidus </> will also not break a digit sequence. A "number" must
+ still begin with a digit to be recognized.
+
+ Problems:
+
+ - the Urdu mode is still broken.
+ - for the new language modes (see 3.06) there is yet no (correct)
+ transcription.
+
+ Hints:
+
+ - users of the Sindhi mode should regenerate the fonts otherwise
+ the "wide kaf" may be missing.
+
+--------------------------------------------------------------------------
+23.11.97: Version 3.06c
+
+ Fixes:
+
+ - final "alif maqsura" carries no sukun.
+ - in connection with EDMAC, an Arabic lemma bearing a footnote is
+ spread out by the same factor as the rest of the line, (e.g. in
+ verses) even if it contains spaces.
+ - Arabic footnotes with EDMAC no more produce overfull boxes, and
+ will no more let the page overflow.
+
+ Known bugs:
+
+ - prefixes separated by a hyphen must presently be given in the
+ fully vowelized input form, otherwise the writing is wrong.
+ - The Urdu mode is broken; also its transcription is wrong.
+
+--------------------------------------------------------------------------
+25.09.97: Version 3.06b
+
+ Fixes:
+
+ - in Kurdish mode, kashida and breaking of ligatures work now
+
+--------------------------------------------------------------------------
+18.09.97: Version 3.06a
+
+ Fixes:
+
+ - there were sometimes spurious newlines if the transliteration
+ was generated via an Arabic insertion
+ - ligatures can again be broken by inserting a bar |
+ - the ligatures family lam-gim, ta-gim etc. works again
+ - there were spurious spaces in bidirectional text under EDMAC
+
+--------------------------------------------------------------------------
+06.08.97: Version 3.06
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files.
+ - This doc file has been trimmed down; history information up to
+ version 3.00 has been moved to "changes2.txt".
+ - Several file names of the mini-documentation have been changed
+ to lower case and carry the suffix ".txt", for the benefit of
+ certain web-browsers. See also the file "arabtex.htm".
+
+ Fixes:
+
+ - some minor bugs have been fixed that had introduced spurious
+ spaces or newlines when switching between Arabic and Hebrew.
+ - "kashida" (--) between a consonant and a (long or short) vowel
+ will no more split the vowel indicator from the consonant glyph.
+
+ Additions:
+
+ - the new command "\setsindhi" will switch to a language mode for
+ Sindhi in an extended Arabic script. For details, process and
+ read the file "sindhi.tex".
+ - the new command "\setuighur" will switch to a language mode for
+ Uighuric in an extended Arabic script. For details, process and
+ read the file "uighur.tex".
+ - the new command "\setmalay" will switch to a language mode for
+ Old Malay (Jawi) in an extended Arabic script. For details,
+ process and read the file "malay.tex".
+ - These new language modes are strictly experimental and just a
+ starting point. As the author speaks none of these languages,
+ feedback and comments by interested users are badly needed.
+
+==========================================================================
+19.06.97: Version 3.05h
+
+ Fixes:
+
+ - some ligatures with "kaf" have been improved.
+ - "quoting" of "wasla" works in all vowel modes.
+ - "kashida" works also before long vowels.
+ - breaking of ligatures works correctly also with long vowels
+ and in combination with "quoting".
+
+--------------------------------------------------------------------------
+12.06.97: Version 3.05g
+
+ Fixes:
+
+ - a bug fix for the new Sindhi module has been introduced (this
+ mode is in alpha status and not yet publicly available; if you
+ are interested in testing it: enquire)
+
+--------------------------------------------------------------------------
+10.06.97: Version 3.05f
+
+ Fixes:
+
+ - a spurious error message about a "missing character" has been
+ eliminated.
+ - "\settrans{english}" switches again to the transliteration
+ conventions of the Library of Congress.
+ - ArabTeX will no more overwrite a user macro "\x".
+
+ Additions:
+
+ - the new command "\arabfootnotes" makes LaTeX footnotes run from
+ right to left, and their text is considered Arabic by default.
+ There is as yet no command to switch back to the default mode
+ (left to right, Roman). With Plain TeX the new command is not
+ yet available.
+
+--------------------------------------------------------------------------
+28.05.97: Version 3.05e
+
+ Fixes:
+
+ - <U> in the Urdu mode works again.
+ - some errors in the transliteration have been corrected.
+ - some ligatures have been corrected.
+
+--------------------------------------------------------------------------
+22.05.97: Version 3.05d
+
+ Fixes:
+
+ - \tabular structures within the Arabic document classes are now
+ correctly aligned.
+ - a few ligatures have been improved.
+ - some internal routines have been updated preparing for some
+ planned extensions. No visible effect.
+ - a new test for version clashes has been introduced.
+
+--------------------------------------------------------------------------
+14.05.97: Version 3.05c
+
+ Fixes: The patching routine seems to work again.
+
+--------------------------------------------------------------------------
+14.05.97: Version 3.05b
+
+ Problems:
+
+ - LaTeX is too clever and interferes with the patching routine.
+ Therefore the existing patches for Hebrew have been moved to
+ the file "hepatch.sty". Arabic mode is presently not affected.
+
+--------------------------------------------------------------------------
+13.05.97: Version 3.05a
+
+ Fixes:
+
+ - in Hebrew mode when using HED encoding, Thet and Maqqef did
+ not work correctly.
+ - in EDMAC mode with Plain TeX the list of modules was missing.
+ - some internal interfaces have been updated. This has no effect
+ on the external operation but helps stability.
+
+--------------------------------------------------------------------------
+07.05.97: Version 3.05
+
+ Status:
+
+ - The internal structure has changed extensively; this need not
+ trouble the user.
+ - Warning: NEVER MIX old and new files; they may be incompatible!
+
+ Fixes:
+
+ - A number of minor and some major bugs have been fixed.
+
+ Modifications:
+
+ - With EDMAC, the first argument of \text need not fit on the
+ current line. All arguments are assumed to be Roman text; they
+ may contain (or consist of) \<Arabic insertions>.
+
+ Additions:
+
+ - The ISIRI 3342 encoding is supported; load the reading module
+ by \input isiri.sty or \usepackage {isiri}. Activate it by the
+ command \setcode {isiri}.
+ - Hebrew support has been expanded; read the file "hebrew.305".
+ ArabTeX will try to use fonts locally available, irrespective
+ of their encoding.
+ - the file "verses.sty" supports typesetting poetry in two blocks.
+ For a description, see the file itself.
+ - See also the comments on Version 3.04 below.
+
+ Hints:
+
+ - If you want to process the manual "arabdoc.tex" under LaTeX 2e
+ and get error messages, delete the *.aux, *.toc, and *.lot file
+ and try again. These files depend on the LaTeX version used.
+ - see also version 3.04.
+
+ Complaints:
+
+ - There is STILL no Nasta`liq font.
+ - the user manual "arabdoc.tex" is outdated.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.05:
+
+ - replace the contents of "TEXINPUT" and "REPORT".
+ - read and/or print "README.305"
+ - if interested, process the user manual "arabdoc.tex"; see the
+ hints above.
+
+==========================================================================
+05.10.96: Version 3.04e
+
+ Fixes:
+
+ - removed many small bugs in Persian (thanks, Ivan Dershzanski!)
+ - initial <alif> coded <A> in verbatim mode may carry a vowel
+ - <yah> without dots coded <Y> acts like a consonant except at the
+ end of a word
+ - <aNy> denotes <fathatan> on <alif maqsura> erroneously written
+ with dots
+
+ Modifications:
+
+ - removed quoted hamza ("') from verbatim mode (was ambiguous!)
+
+--------------------------------------------------------------------------
+18.05.96: Version 3.04d
+10.05.96: Version 3.04c (not distributed)
+
+ Fixes:
+
+ - in "arabart.cls" (twocolumn) the right column is output first
+ to get correct numbering of sectional units
+ - corrected the vertical position of "marginpar"
+ - a space is assumed after a new command defined via \allowarab
+
+--------------------------------------------------------------------------
+08.04.96: Version 3.04b
+
+ Fixes:
+
+ - \footnote works again within an Arabic environment
+
+ Known bugs:
+
+ - \footnote is incompatible with "arabart.cls"
+
+--------------------------------------------------------------------------
+21.03.96: Version 3.04a
+
+ Fixes:
+
+ - \baselineskip works correctly with EDMAC
+ - \emphasize puts the overbar at uniform height in \novocalize
+
+ Necessary action:
+
+ If required, download the ASCII file "apatch.sty" again. This
+ is a patch for version 3.04!
+
+ See also version 3.04 below.
+
+--------------------------------------------------------------------------
+19.03.96: Version 3.04
+
+ Status:
+
+ - ArabTeX now cooperates well with LaTeX 2e (June 1995 and later)
+ and also still with Plain TeX and LaTeX 2.09. The configuration
+ is determined automatically. With LaTeX 2e ArabTeX and all its
+ suboptions are packages.
+ - The internal structure has changed extensively; this need not
+ trouble the user.
+
+ Fixes:
+
+ - \baselineskup, \parskip, \baselinestretch now work correctly
+ in the Arabic modes.
+ - The TeX special characters \#, \$, \%, \& can now be used (they
+ just had been forgotten).
+ - A number of minor bugs have been fixed.
+
+ Modifications:
+
+ - Digits and punctuation have been raised to the writing line.
+ We feel this looks better.
+ - The handling of numbers (= digit sequences) has been improved.
+ Within a number, the decimal separator is the comma.
+ - Bidirectional line-breaking has again been much improved. The
+ command \goodpar still works but is rarely required.
+ - The option "abidir" is no more necessary.
+ - The option "nashbf" is no more necessary.
+ - The option "abjad" is no more necessary.
+
+ Additions:
+
+ - User defined macros can be made known to ArabTeX by the
+ declaration \allowarab {\macro_name} (previous to their use
+ within an Arabic environment). The replacement text after
+ substituting the parameters must be legal ArabTeX input and
+ may contain further macro calls. The macro must be previously
+ defined via \newcommand or \def.
+
+ - The Arabic Windows encoding is supported; load the reading
+ module by \input arabwin.sty, \usepackage {arabwin} or by
+ adding the LaTeX 2.09 option "arabwin". Activate it by the
+ command \setcode {arabwin}.
+
+ - There are some additional transliteration modes for Persian
+ and Urdu; in case of interest: inquire directly.
+
+ - The package "raw.sty" defines the command \setraw to switch
+ off all special processing for numbers, special characters
+ and parentheses. This may be helpful for OCR work. Switch
+ back by \unsetraw.
+
+ - The (experimental) LaTeX 2e class file "arabart.cls" provides
+ an Arabic article format. Within Arabic environments a number
+ of LaTeX commands are enabled: sectioning, list environments,
+ page headers and footers, table of contents, footnotes, quote,
+ quotation, verse, center, twocolumn. All text arguments are
+ considered to be Arabic text in the chosen encoding. Some of
+ the LaTeX environments are missing, e.g., tabular and tabbing,
+ minipages, pictures. They can usually be simulated by leaving
+ the Arabic environment and reverting to the standard LaTeX
+ commands.
+
+ We are working on extensions to this format; suggestions and
+ bug reports are welcome. We do not intend to supply a version
+ for LaTeX 2.09.
+
+ - See also the comments on Version 3.03 below.
+ - The notes in README.303 still apply.
+
+ Hints:
+
+ - Uniform baselines may be obtained by setting \lineskiplimit
+ to -\baselineskip and adjusting \baselinestretch to 1.4 (with
+ LaTeX) or \baselineskip to 1.4\baselineskip with Plain TeX.
+ Some experimenting is advised.
+ - If you want to process the manual "arabdoc.tex" under LaTeX 2e
+ first move the file "arabimax.tex" to the REPORT subdirectory.
+ You will get some error messages on the first run. Forget them
+ and process the file again; LaTeX 2e is to blame. Warning: the
+ report is not quite up to date.
+ - Put any local macro definitions into the LaTeX preamble or else
+ precede them by \setnone; thus the < sign can be used in the
+ normal meaning as a comparison operator. Activate short Arabic
+ insertions again by \setarab or any other of the commands for
+ language choice.
+ - PiCTeX users may use Arabic labels within diagrams if and only
+ if these are included in \< and > (NOT < and >).
+ - If you use MlTeX and the output looks broken, note the version
+ number of MlTeX and inform us.
+
+ Complaints:
+
+ - There is STILL no Nasta`liq font.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.04:
+
+ - read and/or print "README.303"
+
+==========================================================================
+04.07.95: Version 3.03e
+
+ Fixes:
+
+ - Final yah before hamza works again
+
+--------------------------------------------------------------------------
+24.05.95: Version 3.03d
+
+ Fixes:
+
+ - After switching to other encodings switching back to the
+ standard encoding works again.
+ - An empty \RL {} insertion will no more blow the system.
+
+ Problems:
+
+ - see version 3.03c
+
+--------------------------------------------------------------------------
+02.05.95: Version 3.03c
+
+ Fixes:
+
+ - The METAFONT routines for the fonts "nash14" and "nash14bf"
+ used a file "asymbols.mf" that conflicted with the AMS-Fonts.
+ This file has been renamed to "arabsymb.mf". To use the new
+ version, download "arabsymb.mf" and "nashbase.mf" from the
+ subdirectory ARABTEX/MFINPUT and delete "asymbols.mf". This
+ only concerns users who need to regenerate the fonts locally.
+
+ Problems:
+
+ - The font "dclassic" used by the Hebrew mode of ArabTeX has on
+ the archive "noa.huji.ac.il" been replaced by a new version
+ that is incompatible to the previous version while keeping the
+ same name. We are working on a solution to resolve the ensuing
+ compatibility problems. Users of the previous version are not
+ affected.
+
+ Acknowledgment:
+
+ - The routines for building up punctuated Hebrew characters have
+ profited from macros written by Joel Hoffmann and contained in
+ his packages "dots.sty" and "hvowel1.sty". We apologize for not
+ pointing out this fact clearly.
+
+ Necessary action:
+
+ - Normally none, except if indicated above.
+
+--------------------------------------------------------------------------
+24.04.95: Version 3.03b
+
+ Fixes:
+
+ - The handling of single and double quotes, and of other special
+ characters, in the ASMO 449 and ISO 8859-6 encodings has been
+ improved.
+ - After a punctuation character inside a word (usually an error)
+ no space will be produced.
+ - <tanwIn> on <'alif maqsUraT> works again.
+ - In \setverb mode, a <harakaT> on <'alif> now works.
+ - In \setverb mode, <A> may be used to produce <'alif>.
+ - The ligature <lm|a> is produced instead of <l|ma>.
+ - <ba'>, <ya'> etc. before <lAm> now have the short form.
+
+ Known bugs in ArabTeX:
+
+ - \begin{arabtext} inside a minipage will produce a spurious
+ empty line; the reason is unknown.
+
+ Hints:
+
+ - Numbers after quotes will not be recognized as such and thus
+ will be reversed; as a workaround, leave a space around the
+ digits, e.g., <`` 1234 ''> or use a \nospace command, e.g.,
+ <`` \nospace 1234 \nospace ''>.
+ Mind the spaces before the \nospace commands in the example!
+ - With LaTeX2e, load ArabTeX and its suboptions by the command
+ \usepackage.
+
+--------------------------------------------------------------------------
+28.03.95: Version 3.03a
+
+ Fixes:
+
+ - A workaround for an error in some versions of ML-TeX has
+ been tentatively introduced. Non-ML-TeX users may safely
+ ignore this.
+
+--------------------------------------------------------------------------
+10.03.95: Version 3.03
+
+ Fixes:
+
+ - A number of minor bugs have been fixed, nothing dramatic.
+ - The spacing of punctuation has been improved.
+
+ Modifications:
+
+ - Hebrew vowel points are provided. Hebrew mode now uses the font
+ "dclassic". It can be downloaded e.g. from "noa.huji.ac.il".
+
+ Additions:
+
+ - The Hebrew encoding used in the machine readable version
+ of BHS is supported. See README.303!
+ - \obeylines and \obeyspaces also work for Arabic text. They
+ however must be used in a group that contains the Arabic
+ text AND this group must be followed by at least one space.
+ - An <Arabic insertion> inside a \verbatim environment will be
+ typeset in Arabic. Big TeX may be necessary.
+ An Arabic environment will be typeset verbatim.
+ - \vskip, \hskip, \vspace, \hspace, \newpage, \vfill are legal
+ in Arabic mode.
+ - A list of the loaded modules is put into the log file.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.03:
+
+ - completely replace the contents of the subdirectory TEXINPUT
+ - move the updated files "arabdoc?.tex" from the outermost level
+ to the subdirectory "REPORT"
+ - read and/or print "README.303"
+
+==========================================================================
+12.08.94: Version 3.02b
+
+ Fixes:
+
+ - \fullvocalize mode uses somewhat less TeX main memory than
+ before but might still overflow; using \newpage explicitly
+ could help
+ - some ligatures have been improved
+ - spacing has been improved in short insertions when the
+ transliteration is also generated
+ - in Hebrew mode, HED encoding, double letters work again
+ - explicit spreading works again correctly
+ - <hamza> in rare cases had the wrong carrier
+ - if an Arabic word starts with a vowel, "quoting" toggles
+ <wasla> if no vowel is given in the input
+ - bidirectional line-breaking has been much improved. The
+ command \goodpar is rarely necessary
+
+ Hints:
+
+ - etrans.sty is no more necessary; load atrans.sty
+ - \settrans{english} switches to the romanization conventions
+ of the Library of Congress
+
+--------------------------------------------------------------------------
+19.07.94: Version 3.02a
+
+ Fixes:
+
+ - in Arabic, alif maqsura after tanwin works again
+ - in Hebrew, before an apostrophe the medial form is used
+ - in Hebrew, hyphen/maqqef works correctly
+
+ Hints:
+
+ - with Plain TeX (and/or EDMAC) only: load the ASCII file
+ "apatch.sty" explicitly as the last file!
+
+--------------------------------------------------------------------------
+14.07.94: Version 3.02
+
+ Fixes:
+
+ - some minor bugs have been corrected
+ - the User Manual has been slightly updated, but is otherwise
+ somewhat out of date.
+
+ Modifications:
+
+ - for storage reasons the transcription module is not loaded
+ automatically; add the LaTeX option "atrans" if required,
+ or say "\input atrans.sty".
+
+ Additions:
+
+ - EDMAC 3.00 and EDMAC 3.15 are both supported.
+ - the LaTeX option "abidir" provides the new command \RL {text}
+ for right-to-left insertions; it is used like <text> which is
+ still provided, and which should be used wherever possible for
+ reasons of efficiency.
+ - the LaTeX option "hebtex" loads the modules for processing text
+ in Hebrew. Switch to Hebrew by \sethebrew, and back to Arabic
+ by \setarab. Hebrew text can be coded in the standard ArabTeX
+ input notation, or in the encoding used by the editor HED; the
+ latter coding is activated by \setcode {hed}. The reading module
+ is supposed to also process texts in "newcode" (not tested!)
+ - For using the Hebrew mode, the font "deadsea" must be available;
+ it can be downloaded e.g. from "noa.huji.ac.il". Vowels are
+ presently not provided.
+ - For details see the ASCII file "readme.302".
+
+ Hints:
+
+ - only load the modules really required, or you might have to use
+ a Big TeX!
+
+ Known bugs:
+
+ - None.
+
+ How to move from earlier minor versions to version 3.02:
+
+ - completely replace the contents of the subdirectory TEXINPUT
+ - move the updated files "arabdoc?.tex" from the outermost level
+ to the subdirectory "REPORT"
+ - read and/or print "README.302"
+
+==========================================================================
+05.05.94: Version 3.01a
+
+ Fixes:
+
+ - \parskip now has effect also inside Arabic environments.
+
+ Additions:
+
+ - The EDMAC commands \pstart, \pend, \autopar are allowed
+ inside an Arabic environment, IF properly nested.
+
+--------------------------------------------------------------------------
+28.04.94: Version 3.01
+
+ There has been extensive internal rewriting but the external
+ effects are minor.
+
+ - \setarab is the language default again. It will no more break
+ the user's macro definitions IF these are put into the LaTeX
+ preamble, or before "\input arabtex.sty" when using Plain TeX.
+
+ Fixes:
+
+ - Spaces are normally ignored after allowed control sequences
+ inside Arabic text, (if not produced by the command itself.)
+ - The spacing between a final silent <hah> in Persian and the
+ next word has been improved.
+
+ - An error in "twoblocks.sty" has been corrected that produced
+ a spurious vertical space.
+ - An error in "asmo449.sty" has been corrected that produced
+ nonsense from the combination "Gdr" (article with an explicit
+ <sukUn>)
+ - In "abjad.sty", the <gIm> for the numeral 3 has no dot.
+
+ Additions:
+
+ - The commands \smallskip, \medskip, \bigskip, \newpage,
+ \clearpage, \pagebreak, \hskip {glue}, \vskip {glue}, \today
+ now work inside Arabic text.
+ - there is a new language mode: \setturk for Ottoman.
+ The input notation has been extended to cover both the standard
+ and the modern Turkish transliteration.
+ The documentation remains to be written :-(
+ - there is a new language mode: \setkurdish for Kurdish.
+ The documentation remains to be written :-(
+ - "" produces an explicit <sukUn> except in \fullvocalize mode
+ where it deletes a <sukUn> otherwise present.
+ - The new commands \setarabfont {\nash} or \setarabfont {\nashbf}
+ supersede \setnash and \setnashbf (which are still supported).
+
+ Known bugs:
+
+ - None.
+
+ Hints:
+
+ - The LaTeX style option "atrans" is redundant.
+ - After changing the input coding, select the language mode and
+ the vowelization mode anew (this is a feature :-).
+
+ How to move from earlier minor versions to version 3.01:
+
+ - completely replace the contents of the directory TEXINPUT
+ - observe that there is a new file "acmd.sty"
+
+==========================================================================
+07.12.93: Version 3.00b
+
+ Fixes:
+
+ - corrected handling of <tanween fatha> in \setverb mode.
+ - improved error handling for illegal commands.
+ - ligature <geem>-<meem> also in spreading mode.
+
+ Additions:
+
+ - \setspace{rubber_length} changes the default for spaces in
+ Arabic text; 3pt plus .5fil is recommended for \spreadbox.
+
+ Known bugs:
+
+ - arguments of boxing commands may not contain insertions.
+ - in ASMO449, the combination Gdr (article with an explicit
+ sukoon) will produce nonsense.
+
+ Hints:
+
+ - There is no language default. Do not forget \setarab etc.
+ or otherwise you might get strange results.
+ - After changing the input coding, select the language and
+ the vowelization mode anew (this is a feature).
+
+ These are in the manual but easily overlooked.
+
+--------------------------------------------------------------------------
+26.11.93: Version 3.00a
+
+ Fixes:
+
+ - the <hamza> carrier is now <ya'> the before diphthong <ay>
+
+ Additions:
+
+ - more Qur'anic writing variants provided
+ - \hfil is allowed in Arabic text
+
+--------------------------------------------------------------------------
+20.11.93: Major Version 3.00
+
+ Status:
+
+ - large portions of the code have been rearranged and partly
+ rewritten
+ - The User Manual has been extensively updated and describes
+ all (supported) ArabTeX features currently implemented
+ - Version 3.00 seems to be compatible with Version 2 files
+ - NFSS and NFSS2 can be used but are not required
+ - all known bugs have been removed
+ - Version 3.00 still can be run (slowly) on a standard PC XT
+
+ Additions:
+
+ - texts coded in ASMO 449 or ISO 8859-6 can now be processed
+ - several historic writing variants are additionally supported
+ - details of Farsi support are now described in the User Manual
+ - many new commands are valid inside Arabic text; a complete
+ list appears in the log file of each ArabTeX run, and also
+ in the new User Manual
+ - see also versions 2.00 - 2.08 below
+
+==========================================================================
+
+ How to move from version 2.0x, 0 <= x <= 8, to version 3.00:
+
+ - completely replace the contents of the directory TEXINPUT
+ - completely replace the contents of the directory REPORT
+ - process AND READ the new User Manual "arabdoc.tex"
+ - leave the fonts alone
+
+ How to move from version 1 (or none at all) to version 3.00:
+
+ - Do as above; install the fonts "nash14" and "nash14bf" first
+ according to local TeX conventions.
+ - If the font "nash10" is still there, delete it.
+
+==========================================================================
+ For information on older versions see the file "changes2.txt".
+==========================================================================
+ Prof. Klaus Lagally
+ Institut fuer Formale Methoden der Informatik
+ Universitaet Stuttgart
+ Universitaetsstrasse 38
+ D-70569 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+ FAX: +49 - 711 - 7816 370
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2006, Klaus Lagally
+--------------------------------------------------------------------------
+
diff --git a/language/arabic/arabtex/doc/html/arabtex.htm b/language/arabic/arabtex/doc/html/arabtex.htm
index b7d37b79b3..1de92936da 100644
--- a/language/arabic/arabtex/doc/html/arabtex.htm
+++ b/language/arabic/arabtex/doc/html/arabtex.htm
@@ -1,219 +1,219 @@
-<html><head>
-<title>ArabTeX Version 3</title></head>
-<body>
-<center>
-<img src="arabtex.gif" alt="ArabTeX logo">
-<h1> ArabTeX Version 3 </h1>
-</center>
-
-<hr><!-- ================================================ -->
-
-<a href="http://129.69.218.213/arabtex/doc/html/changes.htm">
- Last changes: Version 3.11d, October 23, 2003
-</a>
-
-<hr><!-- ================================================ -->
-
-<img src="new1.gif" alt="new">
-There is a draft version of the new
-<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
-user manual.</a>
-<br>
-Please note that this version is incomplete and still being updated.
-<p>
-Should you be an Orientalist, you might want to look at a small list of
-<a href="http://129.69.218.213/arabtex/doc/html/refer.htm">applications</a>.
-
-</p><hr><!-- ================================================ -->
-
- The set of files, of which THIS file is supposed to be part of,
- contains a package extending the capabilities of TeX/LaTeX to
- generate the arabic writing from an ASCII transliteration for
- texts in several languages using the arabic script. Several
- other common encodings are also supported.
-<p>
-The package is available in packed form as
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.zip">
-arabtex.zip</a>
-<!--
-and <a href=ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtds.zip>arabtds.zip</a>
--->
-for PC users and
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.tar.z">
-arabtex.tar.Z</a> for *N*X users.
-<br>
-Depending on the server there may be also the unpacked files,
-or only these.
-</p><p>
-In case of doubt, check for the latest version of
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>".
-<br>
-This file contains last minute corrections that possibly
-are not yet contained in the packed files.
-</p><p>
-
-The following ASCII files give more detailed information:
-
-<table>
-<!--
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.doc">
-arabtex.doc
- </td><td>
- a short introduction ( rather out of date)
-</td></tr>
--->
-
-<tbody><tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.faq">
-arabtex.faq</a>
-
-</td><td>answers to some Frequently Asked Questions
- (updated as necessary)
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
-changes.txt</a>
-
-</td><td>release history, new features, and known bugs
- (updated as necessary)
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/changes2.txt">
-changes2.txt</a>
-
-</td><td>release history up to version 3.00
-
-</td></tr>
-
-<tr><td>
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/install.txt">
-install.txt</a>
-
-</td><td>list of available files, and installation notes
-</td></tr>
-
-<tr><td valign="top">
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>
-
-</td><td>last minute corrections; put this file onto the TEXINPUT path;
-it will patch automatically (updated as necessary).
-</td></tr>
-</tbody></table>
-
-There are also various additional documentation files.
-</p><p>
-<img src="new1.gif" alt="new">
-The contents of a subdirectory "REPORT", if still present, are OBSOLETE.
-Refer to the (draft of the)
-<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
-user manual</a> instead.
-
-</p><hr><!-- ================================================ -->
-
-There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
-<br>
-
-Version 2 was the first complete release accompanied by a manual,
-but is no more being maintained.
-<br>
-
-Version 3 is an upward compatible extension of Version 2
-with many new features, e.g. the possibility to read input files
-in the ASMO 449, ISO 8859-6, and UTF-8 Codes,
-and a host of new commands for better formatting of Arabic text,
-or catering for historic writing styles.
-<br>
-
-Versions from 3.05 onward contain a package to process Hebrew,
-and provide long right-to-left insertions.
-
-For details, consult the manual.
-
-<hr><!-- ================================================ -->
-
-<img src="new1.gif" alt="new">
- ArabTeX is copyrighted by the author. If you use the system for
- scientific work please give appropriate credit to the software
- and the author (e.g. in the colophon of a monograph.) We also
- appreciate a complimentary copy of any scientific work produced
- with ArabTeX.
-<p>
-
-<img src="new1.gif" alt="new">
-ArabTeX may be redistributed and/or modified under the terms
-of the LaTeX Project Public License distributed
-from CTAN archives in the directory
-<a href="ftp://ftp.dante.de/tex-archive/macros/latex/base/lppl.txt">
-macros/latex/base/lppl.txt</a>;
-either version 1 of the License,
-or (at your option) any later version.
-
-</p><hr><!-- ================================================ -->
-
-ArabTeX is an experimental system and supposed to change without
-prior notice. Whoever will use it does so at her/his/its own risk.
-We cannot take any responsibility on correct function, suitability
-for whatever purpose, or correct documentation.
-
-If you have any complaints or suggestions, please forward them to
-<a href="mailto:lagally@informatik.uni-stuttgart.de">the author</a>.
-We shall consider any reasonable suggestion,
-but we will use our own judgment on changes,
-and our resources are severely limited.
-<p>
-
-If problems turn up while running ArabTeX, please
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
-check first</a>
-at "ftp.informatik.uni-stuttgart.de" whether there is a new version,
-or whether there are any new corrections in
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
-apatch.sty</a>".
-
-If the problem goes away with the new version, please inform the
-server you got ArabTeX from; otherwise
-<a href="mailto:lagally@informatik.uni-stuttgart.de">send a bug report</a>
-to the author.
-
-</p><hr><!-- ================================================ -->
-
-The reference site
-"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex">
-ftp.informatik.uni-stuttgart.de</a>"
-always holds the current version.
-<br>
-We know that the CTAN servers
-"<a href="ftp://ftp.tex.ac.uk/">ftp.tex.ac.uk</a>",
-"<a href="ftp://ftp.dante.de/">ftp.dante.de</a>",
-"<a href="ftp://ctan.tug.org/">ctan.tug.org</a>"
-mirror this site and update on a regular schedule.
-
-<hr><!-- ================================================ -->
-
-An empty E-Mail message to
-"<a href="mailto:arabtex@informatik.uni-stuttgart.de">
-arabtex@informatik.uni-stuttgart.de</a>"
-will produce a current status report.
-
-<hr><!-- ================================================ -->
-
-<blockquote>
- Prof. Klaus Lagally<br>
- Institut fuer Formale Konzepte der Informatik<br>
- Universitaet Stuttgart<br>
- Universitaetsstrasse 20-22<br>
- D-70569 Stuttgart<br>
- GERMANY<br>
- lagally@informatik.uni-stuttgart.de
-</blockquote>
-<hr>
- Copyright (c) 1990 - 2003,
-<a href="mailto:lagally@informatik.uni-stuttgart.de">
- Klaus Lagally </a>
-<hr>
+<html><head>
+<title>ArabTeX Version 3</title></head>
+<body>
+<center>
+<img src="arabtex.gif" alt="ArabTeX logo">
+<h1> ArabTeX Version 3 </h1>
+</center>
+
+<hr><!-- ================================================ -->
+
+<a href="http://129.69.218.213/arabtex/doc/html/changes.htm">
+ Last changes: Version 3.11d, October 23, 2003
+</a>
+
+<hr><!-- ================================================ -->
+
+<img src="new1.gif" alt="new">
+There is a draft version of the new
+<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
+user manual.</a>
+<br>
+Please note that this version is incomplete and still being updated.
+<p>
+Should you be an Orientalist, you might want to look at a small list of
+<a href="http://129.69.218.213/arabtex/doc/html/refer.htm">applications</a>.
+
+</p><hr><!-- ================================================ -->
+
+ The set of files, of which THIS file is supposed to be part of,
+ contains a package extending the capabilities of TeX/LaTeX to
+ generate the arabic writing from an ASCII transliteration for
+ texts in several languages using the arabic script. Several
+ other common encodings are also supported.
+<p>
+The package is available in packed form as
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.zip">
+arabtex.zip</a>
+<!--
+and <a href=ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtds.zip>arabtds.zip</a>
+-->
+for PC users and
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.tar.z">
+arabtex.tar.Z</a> for *N*X users.
+<br>
+Depending on the server there may be also the unpacked files,
+or only these.
+</p><p>
+In case of doubt, check for the latest version of
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>".
+<br>
+This file contains last minute corrections that possibly
+are not yet contained in the packed files.
+</p><p>
+
+The following ASCII files give more detailed information:
+
+<table>
+<!--
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.doc">
+arabtex.doc
+ </td><td>
+ a short introduction ( rather out of date)
+</td></tr>
+-->
+
+<tbody><tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/arabtex.faq">
+arabtex.faq</a>
+
+</td><td>answers to some Frequently Asked Questions
+ (updated as necessary)
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
+changes.txt</a>
+
+</td><td>release history, new features, and known bugs
+ (updated as necessary)
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/doc/changes2.txt">
+changes2.txt</a>
+
+</td><td>release history up to version 3.00
+
+</td></tr>
+
+<tr><td>
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/install.txt">
+install.txt</a>
+
+</td><td>list of available files, and installation notes
+</td></tr>
+
+<tr><td valign="top">
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>
+
+</td><td>last minute corrections; put this file onto the TEXINPUT path;
+it will patch automatically (updated as necessary).
+</td></tr>
+</tbody></table>
+
+There are also various additional documentation files.
+</p><p>
+<img src="new1.gif" alt="new">
+The contents of a subdirectory "REPORT", if still present, are OBSOLETE.
+Refer to the (draft of the)
+<a href="http://129.69.218.213/arabtex/doc/arabdoc.pdf">
+user manual</a> instead.
+
+</p><hr><!-- ================================================ -->
+
+There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
+<br>
+
+Version 2 was the first complete release accompanied by a manual,
+but is no more being maintained.
+<br>
+
+Version 3 is an upward compatible extension of Version 2
+with many new features, e.g. the possibility to read input files
+in the ASMO 449, ISO 8859-6, and UTF-8 Codes,
+and a host of new commands for better formatting of Arabic text,
+or catering for historic writing styles.
+<br>
+
+Versions from 3.05 onward contain a package to process Hebrew,
+and provide long right-to-left insertions.
+
+For details, consult the manual.
+
+<hr><!-- ================================================ -->
+
+<img src="new1.gif" alt="new">
+ ArabTeX is copyrighted by the author. If you use the system for
+ scientific work please give appropriate credit to the software
+ and the author (e.g. in the colophon of a monograph.) We also
+ appreciate a complimentary copy of any scientific work produced
+ with ArabTeX.
+<p>
+
+<img src="new1.gif" alt="new">
+ArabTeX may be redistributed and/or modified under the terms
+of the LaTeX Project Public License distributed
+from CTAN archives in the directory
+<a href="ftp://ftp.dante.de/tex-archive/macros/latex/base/lppl.txt">
+macros/latex/base/lppl.txt</a>;
+either version 1 of the License,
+or (at your option) any later version.
+
+</p><hr><!-- ================================================ -->
+
+ArabTeX is an experimental system and supposed to change without
+prior notice. Whoever will use it does so at her/his/its own risk.
+We cannot take any responsibility on correct function, suitability
+for whatever purpose, or correct documentation.
+
+If you have any complaints or suggestions, please forward them to
+<a href="mailto:lagally@informatik.uni-stuttgart.de">the author</a>.
+We shall consider any reasonable suggestion,
+but we will use our own judgment on changes,
+and our resources are severely limited.
+<p>
+
+If problems turn up while running ArabTeX, please
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+check first</a>
+at "ftp.informatik.uni-stuttgart.de" whether there is a new version,
+or whether there are any new corrections in
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+apatch.sty</a>".
+
+If the problem goes away with the new version, please inform the
+server you got ArabTeX from; otherwise
+<a href="mailto:lagally@informatik.uni-stuttgart.de">send a bug report</a>
+to the author.
+
+</p><hr><!-- ================================================ -->
+
+The reference site
+"<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex">
+ftp.informatik.uni-stuttgart.de</a>"
+always holds the current version.
+<br>
+We know that the CTAN servers
+"<a href="ftp://ftp.tex.ac.uk/">ftp.tex.ac.uk</a>",
+"<a href="ftp://ftp.dante.de/">ftp.dante.de</a>",
+"<a href="ftp://ctan.tug.org/">ctan.tug.org</a>"
+mirror this site and update on a regular schedule.
+
+<hr><!-- ================================================ -->
+
+An empty E-Mail message to
+"<a href="mailto:arabtex@informatik.uni-stuttgart.de">
+arabtex@informatik.uni-stuttgart.de</a>"
+will produce a current status report.
+
+<hr><!-- ================================================ -->
+
+<blockquote>
+ Prof. Klaus Lagally<br>
+ Institut fuer Formale Konzepte der Informatik<br>
+ Universitaet Stuttgart<br>
+ Universitaetsstrasse 20-22<br>
+ D-70569 Stuttgart<br>
+ GERMANY<br>
+ lagally@informatik.uni-stuttgart.de
+</blockquote>
+<hr>
+ Copyright (c) 1990 - 2003,
+<a href="mailto:lagally@informatik.uni-stuttgart.de">
+ Klaus Lagally </a>
+<hr>
</body></html> \ No newline at end of file
diff --git a/language/arabic/arabtex/doc/html/changes.htm b/language/arabic/arabtex/doc/html/changes.htm
index 308b26e200..da43896eef 100644
--- a/language/arabic/arabtex/doc/html/changes.htm
+++ b/language/arabic/arabtex/doc/html/changes.htm
@@ -1,93 +1,93 @@
-<html>
-<head>
-<title> Last Changes to ArabTeX </title>
-</head>
-<body>
-<!-- *************************************************************** -->
-<h1>Last Changes to ArabTeX </H1>
-
-<hr><!-- *************************************************************** -->
-
-<h2> Version management:</h2>
-
-<!-- *************************************************************** -->
-<UL>
-<li> We distinguish major versions "m.00", minor versions "m.nn-"
- with nn > 0, and patch versions "m.nnx" where "x" is a letter.
-
-<li> to update from an older major version: reinstall completely.
-
-<li> to update from an older minor version: replace the contents of
- the subdirectory "TEXINPUT".
- Replace the fonts only if so indicated explicitly.
-
-<li> to update to a newer patch version: replace the ASCII file "<a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty"
- >apatch.sty</a>".
- This file is distributed as an unpacked text file,
- and will be applied automatially whenever starting ArabTeX.
-
-<li> Patch versions within the same minor version are cumulative, so
- a newer patch will encompass all earlier versions.
-
-<li> To back out from a patch version, replace "apatch.sty" by an
- earlier version (within the same minor version only!) if still
- locally available, or else edit out the current additions from
- "apatch.sty" (save a copy first!).
- Also please inform the author why you had to back out.
-
-<li> There is no provision to return gracefully to earlier minor or
- even major versions. We can make them available on request, but
- you should have good reasons, and there will be no support.
-</UL>
-<hr><!-- *************************************************************** -->
-
-Current minor version:
- <a href="chg311.htm">Version 3.11</a><br>
-
-<hr><!-- *************************************************************** -->
-
-<img src="new1.gif" alt="new">
-There is a draft version of the new
-<a href="129.69.218.213/arabtex/doc/arabdoc.pdf">user manual.</a>
-<br>
-Please note that this version is incomplete and still being updated.
-
-<hr><!-- *************************************************************** -->
-
-Current patch versions:
-<blockquote>
-<a href="chg311a.htm">Version 3.11a </a><br>
-<a href="chg311b.htm">Version 3.11b </a><br>
-<a href="chg311c.htm">Version 3.11c </a><br>
-<a href="chg311d.htm">Version 3.11d </a><br>
-</blockquote>
-
-For information on earlier versions: see
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
- changes.txt
-</a>
-
-<hr><!-- *************************************************************** -->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
-<blockquote>
- Prof. Klaus Lagally<br>
- Institut f&uuml;r Formale Methoden der Informatik<br>
- Universit&auml;t Stuttgart<br>
- Universit&auml;tsstra&szlig;e 38<br>
- D-70569 Stuttgart<br>
- GERMANY<br>
- lagally@informatik.uni-stuttgart.de
-</blockquote>
-
-<hr><!-- *************************************************************** -->
- Copyright (c) 1990 - 2003,
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> Last Changes to ArabTeX </title>
+</head>
+<body>
+<!-- *************************************************************** -->
+<h1>Last Changes to ArabTeX </H1>
+
+<hr><!-- *************************************************************** -->
+
+<h2> Version management:</h2>
+
+<!-- *************************************************************** -->
+<UL>
+<li> We distinguish major versions "m.00", minor versions "m.nn-"
+ with nn > 0, and patch versions "m.nnx" where "x" is a letter.
+
+<li> to update from an older major version: reinstall completely.
+
+<li> to update from an older minor version: replace the contents of
+ the subdirectory "TEXINPUT".
+ Replace the fonts only if so indicated explicitly.
+
+<li> to update to a newer patch version: replace the ASCII file "<a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty"
+ >apatch.sty</a>".
+ This file is distributed as an unpacked text file,
+ and will be applied automatially whenever starting ArabTeX.
+
+<li> Patch versions within the same minor version are cumulative, so
+ a newer patch will encompass all earlier versions.
+
+<li> To back out from a patch version, replace "apatch.sty" by an
+ earlier version (within the same minor version only!) if still
+ locally available, or else edit out the current additions from
+ "apatch.sty" (save a copy first!).
+ Also please inform the author why you had to back out.
+
+<li> There is no provision to return gracefully to earlier minor or
+ even major versions. We can make them available on request, but
+ you should have good reasons, and there will be no support.
+</UL>
+<hr><!-- *************************************************************** -->
+
+Current minor version:
+ <a href="chg311.htm">Version 3.11</a><br>
+
+<hr><!-- *************************************************************** -->
+
+<img src="new1.gif" alt="new">
+There is a draft version of the new
+<a href="129.69.218.213/arabtex/doc/arabdoc.pdf">user manual.</a>
+<br>
+Please note that this version is incomplete and still being updated.
+
+<hr><!-- *************************************************************** -->
+
+Current patch versions:
+<blockquote>
+<a href="chg311a.htm">Version 3.11a </a><br>
+<a href="chg311b.htm">Version 3.11b </a><br>
+<a href="chg311c.htm">Version 3.11c </a><br>
+<a href="chg311d.htm">Version 3.11d </a><br>
+</blockquote>
+
+For information on earlier versions: see
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/changes.txt">
+ changes.txt
+</a>
+
+<hr><!-- *************************************************************** -->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+<blockquote>
+ Prof. Klaus Lagally<br>
+ Institut f&uuml;r Formale Methoden der Informatik<br>
+ Universit&auml;t Stuttgart<br>
+ Universit&auml;tsstra&szlig;e 38<br>
+ D-70569 Stuttgart<br>
+ GERMANY<br>
+ lagally@informatik.uni-stuttgart.de
+</blockquote>
+
+<hr><!-- *************************************************************** -->
+ Copyright (c) 1990 - 2003,
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/chg311.htm b/language/arabic/arabtex/doc/html/chg311.htm
index 411e336ce6..b1fd98b29b 100644
--- a/language/arabic/arabtex/doc/html/chg311.htm
+++ b/language/arabic/arabtex/doc/html/chg311.htm
@@ -1,84 +1,84 @@
-<html>
-<head>
-<title> ArabTeX Version 3.11 </title>
-</head>
-
-<hr><!-- *************************************************************** -->
-<body>
-<h2>
-22.08.2003: ArabTeX Version 3.11
-</h2>
-
-<hr><!-- *************************************************************** -->
-
-<strong>
-There is a draft version of the new
-<a href="../arabdoc.pdf">user manual.</a>
-<img src="new2.gif" alt="new">
-<br>
-Please note that this version is still being updated.
-</strong>
-
-<hr><!-- *************************************************************** -->
-
- Status:
-<ul>
-<li> This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are several new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
-<li> Distribution and modification of ArabTeX is now governed by the
- <a href="http://www.latex-project.org/lppl.txt">
- Latex Project Public License</a> (see LPPL.TXT).
-
-<li> We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output.
- These fonts are now the default; to revert to the old versions
- use the command "\oldarabfont".
-
-</ul>
-
- New features:
-<ul>
-<li> In Hebrew mode, all standard fonts available on CTAN are now
- supported, including the possibility of generating vowel points
- in \vocalize mode.
-
-</ul>
-
- Bugs:
-<ul>
-<li> See
-<a href="changes.htm"> Last changes </a>
-</ul>
-
- Installation:
-<ul>
-<li> Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
-<li> In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-</ul>
-
-<hr><!-- *************************************************************** -->
-
-<a href="changes.htm"> Last changes </a>
-
-<hr><!-- *************************************************************** -->
-
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
-
- Copyright (c) 1990 - 2003,
-<!--<a href="mailto:lagally@informatik.uni-stuttgart.de">-->
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX Version 3.11 </title>
+</head>
+
+<hr><!-- *************************************************************** -->
+<body>
+<h2>
+22.08.2003: ArabTeX Version 3.11
+</h2>
+
+<hr><!-- *************************************************************** -->
+
+<strong>
+There is a draft version of the new
+<a href="../arabdoc.pdf">user manual.</a>
+<img src="new2.gif" alt="new">
+<br>
+Please note that this version is still being updated.
+</strong>
+
+<hr><!-- *************************************************************** -->
+
+ Status:
+<ul>
+<li> This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are several new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+<li> Distribution and modification of ArabTeX is now governed by the
+ <a href="http://www.latex-project.org/lppl.txt">
+ Latex Project Public License</a> (see LPPL.TXT).
+
+<li> We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output.
+ These fonts are now the default; to revert to the old versions
+ use the command "\oldarabfont".
+
+</ul>
+
+ New features:
+<ul>
+<li> In Hebrew mode, all standard fonts available on CTAN are now
+ supported, including the possibility of generating vowel points
+ in \vocalize mode.
+
+</ul>
+
+ Bugs:
+<ul>
+<li> See
+<a href="changes.htm"> Last changes </a>
+</ul>
+
+ Installation:
+<ul>
+<li> Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+<li> In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+</ul>
+
+<hr><!-- *************************************************************** -->
+
+<a href="changes.htm"> Last changes </a>
+
+<hr><!-- *************************************************************** -->
+
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+
+ Copyright (c) 1990 - 2003,
+<!--<a href="mailto:lagally@informatik.uni-stuttgart.de">-->
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/chg311a.htm b/language/arabic/arabtex/doc/html/chg311a.htm
index 8759503058..3433110b10 100644
--- a/language/arabic/arabtex/doc/html/chg311a.htm
+++ b/language/arabic/arabtex/doc/html/chg311a.htm
@@ -1,79 +1,79 @@
-<html>
-<head>
-<title> ArabTeX Version 3.11a </title>
-</head>
-<body>
-<!-- *************************************************************** -->
-<h2>
-27.08.2003: ArabTeX Version 3.11a
-</h2>
-
-<hr><!-- *************************************************************** -->
-
- Fixes:
-<ul>
-<li>
- the 'hanging heh' in Urdu mode has been fixed.
-
-<li>
- the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Hopefully there are not too many new bugs.
-
-<li>
- Hebrew Plain mode should work again. If you are not directly
- concerned, forget it; tests are going on. The necessary
- corrections cannot be handled by "apatch.sty" alone, see the
- remarks below.
-</ul>
-
-
-<!--
- New Features:
-<ul>
-<li> All patches are now handled by "apatch.sty".
-</ul>
--->
-
- Installation:
-<ul>
-<li>
- download <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
- "apatch.sty"</a>.
-<li>
- in case you are using the Hebrew Plain mode (and only then) also
- download the new version of the driver module <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/hebtex.tex">
- "hebtex.tex"</a> (not "hebtex.sty"!)
-</ul>
-
-<!--
-<hr>
--->
-<!-- *************************************************************** -->
-
-<!--
-Previous patch version:
-<a href="chg311a.htm">Version 3.11a </a><br>
--->
-
-<hr><!-- *************************************************************** -->
-
-Current minor version:
-<a href="chg311.htm">Version 3.11</a><br>
-
-<a href="changes.htm"> Last changes </a>
-
-<hr><!-- *************************************************************** -->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
- Copyright (c) 1990 - 2003,
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX Version 3.11a </title>
+</head>
+<body>
+<!-- *************************************************************** -->
+<h2>
+27.08.2003: ArabTeX Version 3.11a
+</h2>
+
+<hr><!-- *************************************************************** -->
+
+ Fixes:
+<ul>
+<li>
+ the 'hanging heh' in Urdu mode has been fixed.
+
+<li>
+ the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Hopefully there are not too many new bugs.
+
+<li>
+ Hebrew Plain mode should work again. If you are not directly
+ concerned, forget it; tests are going on. The necessary
+ corrections cannot be handled by "apatch.sty" alone, see the
+ remarks below.
+</ul>
+
+
+<!--
+ New Features:
+<ul>
+<li> All patches are now handled by "apatch.sty".
+</ul>
+-->
+
+ Installation:
+<ul>
+<li>
+ download <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+ "apatch.sty"</a>.
+<li>
+ in case you are using the Hebrew Plain mode (and only then) also
+ download the new version of the driver module <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/hebtex.tex">
+ "hebtex.tex"</a> (not "hebtex.sty"!)
+</ul>
+
+<!--
+<hr>
+-->
+<!-- *************************************************************** -->
+
+<!--
+Previous patch version:
+<a href="chg311a.htm">Version 3.11a </a><br>
+-->
+
+<hr><!-- *************************************************************** -->
+
+Current minor version:
+<a href="chg311.htm">Version 3.11</a><br>
+
+<a href="changes.htm"> Last changes </a>
+
+<hr><!-- *************************************************************** -->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+ Copyright (c) 1990 - 2003,
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/chg311b.htm b/language/arabic/arabtex/doc/html/chg311b.htm
index 86ee5cdd4a..e8136c88ff 100644
--- a/language/arabic/arabtex/doc/html/chg311b.htm
+++ b/language/arabic/arabtex/doc/html/chg311b.htm
@@ -1,75 +1,75 @@
-<html>
-<head>
-<title> ArabTeX Version 3.11b </title>
-</head>
-<body>
-<!-- *************************************************************** -->
-<h2>
-08.09.2003: ArabTeX Version 3.11b
-</h2>
-
-<hr><!-- *************************************************************** -->
-
- Fixes:
-<ul>
-<li>
- the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Some of the remaining bugs have been fixed.
-
-<li>
- Hebrew Plain mode works again. To use it, download the new
- version of "hebtex.tex"(!), the Hebrew Plain driver. The
- corrections cannot be handled by "apatch.sty" alone.
-
-</ul>
-
-
- New Features:
-<ul>
-<li>
- ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
- mode.
-</ul>
-
- Installation:
-<ul>
-<li>
- download <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
- "apatch.sty"</a>.
-
-<li>
- in case you are using the Hebrew Plain mode (and only then) also
- download the new version of the driver module <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/hebtex.tex">
- "hebtex.tex"<a/> (not "hebtex.sty"!)
-</ul>
-
-<!--
-<hr>
--->
-<!-- *************************************************************** -->
-
-Previous patch version:
-<a href="chg311a.htm">Version 3.11a </a><br>
-
-<hr><!-- *************************************************************** -->
-
-Current minor version:
-<a href="chg311.htm">Version 3.11</a><br>
-
-<a href="changes.htm"> Last changes </a>
-
-<hr><!-- *************************************************************** -->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
- Copyright (c) 1990 - 2003,
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX Version 3.11b </title>
+</head>
+<body>
+<!-- *************************************************************** -->
+<h2>
+08.09.2003: ArabTeX Version 3.11b
+</h2>
+
+<hr><!-- *************************************************************** -->
+
+ Fixes:
+<ul>
+<li>
+ the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Some of the remaining bugs have been fixed.
+
+<li>
+ Hebrew Plain mode works again. To use it, download the new
+ version of "hebtex.tex"(!), the Hebrew Plain driver. The
+ corrections cannot be handled by "apatch.sty" alone.
+
+</ul>
+
+
+ New Features:
+<ul>
+<li>
+ ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
+ mode.
+</ul>
+
+ Installation:
+<ul>
+<li>
+ download <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+ "apatch.sty"</a>.
+
+<li>
+ in case you are using the Hebrew Plain mode (and only then) also
+ download the new version of the driver module <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/hebtex.tex">
+ "hebtex.tex"<a/> (not "hebtex.sty"!)
+</ul>
+
+<!--
+<hr>
+-->
+<!-- *************************************************************** -->
+
+Previous patch version:
+<a href="chg311a.htm">Version 3.11a </a><br>
+
+<hr><!-- *************************************************************** -->
+
+Current minor version:
+<a href="chg311.htm">Version 3.11</a><br>
+
+<a href="changes.htm"> Last changes </a>
+
+<hr><!-- *************************************************************** -->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+ Copyright (c) 1990 - 2003,
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/chg311c.htm b/language/arabic/arabtex/doc/html/chg311c.htm
index 5028456e8e..6e47470209 100644
--- a/language/arabic/arabtex/doc/html/chg311c.htm
+++ b/language/arabic/arabtex/doc/html/chg311c.htm
@@ -1,72 +1,72 @@
-<html>
-<head>
-<title> ArabTeX Version 3.11c </title>
-</head>
-<body>
-<!-- *************************************************************** -->
-<h2>
-17.09.2003: ArabTeX Version 3.11c
-</h2>
-
-<hr><!-- *************************************************************** -->
-
- Fixes:
-<ul>
-<li>
- in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
-</ul>
-
-
- New Features:
-<ul>
-<li>
- Hebrew mode provides a new command \setjudarab to activate
- an experimental Judaeo-Arabic mode. Input is supposed to be
- Arabic in the standard transliteration encoding (other modes
- might work by accident), output is an extended Hebrew writing
- in the chosen Hebrew font, and the standard transliteration
- when activated. Arabic vowels are presently not provided; the
- Hebrew vowels work but are presumably of no use.
-<p>
- Caution: The new mode can be expected to contain errors. We
- do not know the exact writing conventions, and have no access
- to any relevant literature. Scholars in the field are urged
- to <a href="mailto:lagallyk@acm.org">contact the author</a>.
- Comments and suggestions are invited.
-</ul>
-
- Installation:
-<ul>
-<li>
- download <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
- "apatch.sty"</a>.
-</ul>
-
-<!--
-<hr>
--->
-<!-- *************************************************************** -->
-
-Previous patch version:
-<a href="chg311b.htm">Version 3.11b </a><br>
-
-<hr><!-- *************************************************************** -->
-
-Current minor version:
-<a href="chg311.htm">Version 3.11</a><br>
-
-<a href="changes.htm"> Last changes </a>
-
-<hr><!-- *************************************************************** -->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
- Copyright (c) 1990 - 2003,
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX Version 3.11c </title>
+</head>
+<body>
+<!-- *************************************************************** -->
+<h2>
+17.09.2003: ArabTeX Version 3.11c
+</h2>
+
+<hr><!-- *************************************************************** -->
+
+ Fixes:
+<ul>
+<li>
+ in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
+</ul>
+
+
+ New Features:
+<ul>
+<li>
+ Hebrew mode provides a new command \setjudarab to activate
+ an experimental Judaeo-Arabic mode. Input is supposed to be
+ Arabic in the standard transliteration encoding (other modes
+ might work by accident), output is an extended Hebrew writing
+ in the chosen Hebrew font, and the standard transliteration
+ when activated. Arabic vowels are presently not provided; the
+ Hebrew vowels work but are presumably of no use.
+<p>
+ Caution: The new mode can be expected to contain errors. We
+ do not know the exact writing conventions, and have no access
+ to any relevant literature. Scholars in the field are urged
+ to <a href="mailto:lagallyk@acm.org">contact the author</a>.
+ Comments and suggestions are invited.
+</ul>
+
+ Installation:
+<ul>
+<li>
+ download <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+ "apatch.sty"</a>.
+</ul>
+
+<!--
+<hr>
+-->
+<!-- *************************************************************** -->
+
+Previous patch version:
+<a href="chg311b.htm">Version 3.11b </a><br>
+
+<hr><!-- *************************************************************** -->
+
+Current minor version:
+<a href="chg311.htm">Version 3.11</a><br>
+
+<a href="changes.htm"> Last changes </a>
+
+<hr><!-- *************************************************************** -->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+ Copyright (c) 1990 - 2003,
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/chg311d.htm b/language/arabic/arabtex/doc/html/chg311d.htm
index 50e4807a26..e43f4d6c68 100644
--- a/language/arabic/arabtex/doc/html/chg311d.htm
+++ b/language/arabic/arabtex/doc/html/chg311d.htm
@@ -1,82 +1,82 @@
-<html>
-<head>
-<title> ArabTeX Version 3.11d </title>
-</head>
-<body>
-<!-- *************************************************************** -->
-<h2>
-23.10.2003: ArabTeX Version 3.11d
-</h2>
-
-<hr><!-- *************************************************************** -->
-
- Fixes:
-<ul>
-<li>
- In the Arabic document classes, the formatting of the table
- of contents was improved. A strange bug was corrected.
-
-<li>
- A storage leak was found which prevented the formatting of
- longer documents, leading to 'save stack overflow'.
-
-<li>
- A bug in the ligatures module was found which used to produce
- bogus messages 'missing letter y in font xnsh14' and to
- slightly interfere with correct vowelization.
-
-<li>
- A bug in the output module was found which used to produce
- bogus messages 'underfull vbox while \output was active'.
- The fix might slightly influence page breaking.
-</ul>
-
-
- New Features:
-<ul>
-<li>
- There is now limited support for Arabized LyX.
- Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
- available for ArabTeX, all special font variants are presently
- mapped into 'bold face'. This could be changed at the user's
- request; please send any suggestions to the author.
-
-<li>
- The messages in the LOG file are less verbose now.
-</ul>
-
- Installation:
-<ul>
-<li>
- download <a
- href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
- "apatch.sty"</a>.
-</ul>
-
-<!--
-<hr>
--->
-<!-- *************************************************************** -->
-
-Previous patch version:
-<a href="chg311c.htm">Version 3.11c </a><br>
-
-<hr><!-- *************************************************************** -->
-
-Current minor version:
-<a href="chg311.htm">Version 3.11</a><br>
-
-<a href="changes.htm"> Last changes </a>
-
-<hr><!-- *************************************************************** -->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!-- *************************************************************** -->
- Copyright (c) 1990 - 2003,
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX Version 3.11d </title>
+</head>
+<body>
+<!-- *************************************************************** -->
+<h2>
+23.10.2003: ArabTeX Version 3.11d
+</h2>
+
+<hr><!-- *************************************************************** -->
+
+ Fixes:
+<ul>
+<li>
+ In the Arabic document classes, the formatting of the table
+ of contents was improved. A strange bug was corrected.
+
+<li>
+ A storage leak was found which prevented the formatting of
+ longer documents, leading to 'save stack overflow'.
+
+<li>
+ A bug in the ligatures module was found which used to produce
+ bogus messages 'missing letter y in font xnsh14' and to
+ slightly interfere with correct vowelization.
+
+<li>
+ A bug in the output module was found which used to produce
+ bogus messages 'underfull vbox while \output was active'.
+ The fix might slightly influence page breaking.
+</ul>
+
+
+ New Features:
+<ul>
+<li>
+ There is now limited support for Arabized LyX.
+ Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
+ available for ArabTeX, all special font variants are presently
+ mapped into 'bold face'. This could be changed at the user's
+ request; please send any suggestions to the author.
+
+<li>
+ The messages in the LOG file are less verbose now.
+</ul>
+
+ Installation:
+<ul>
+<li>
+ download <a
+ href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/apatch.sty">
+ "apatch.sty"</a>.
+</ul>
+
+<!--
+<hr>
+-->
+<!-- *************************************************************** -->
+
+Previous patch version:
+<a href="chg311c.htm">Version 3.11c </a><br>
+
+<hr><!-- *************************************************************** -->
+
+Current minor version:
+<a href="chg311.htm">Version 3.11</a><br>
+
+<a href="changes.htm"> Last changes </a>
+
+<hr><!-- *************************************************************** -->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!-- *************************************************************** -->
+ Copyright (c) 1990 - 2003,
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/html/miktex.htm b/language/arabic/arabtex/doc/html/miktex.htm
index 0f55c6ee2f..e2bb1ca6c7 100644
--- a/language/arabic/arabtex/doc/html/miktex.htm
+++ b/language/arabic/arabtex/doc/html/miktex.htm
@@ -1,180 +1,180 @@
-<html><head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>MiKTeX 2.1 FAQ</title><link rel="stylesheet" href="miktexman.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.39"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="d40e2" class="article"><div class="titlepage"><div><h2 class="title"><a name="d40e2"></a>MiKTeX 2.1 FAQ</h2></div><div><h3 class="author">Christian Schenk</h3></div><div><p class="copyright">Copyright &copy; 2001 Christian Schenk</p></div><div><div class="legalnotice"><p>
- Permission is granted to make and distribute verbatim copies
- of this manual provided the copyright notice and this
- permission notice are preserved on all copies.
- </p><p>
- Permission is granted to copy and distribute modified versions
- of this manual under the conditions for verbatim copying,
- provided that the entire resulting derived work is distributed
- under the terms of a permission notice identical to this one.
- </p><p>
- Permission is granted to copy and distribute translations of
- this manual into another language, under the above conditions
- for modified versions, except that this permission notice may
- be stated in a translation approved by the Free Software
- Foundation.
- </p></div></div><hr></div><div id="d40e42" class="preface"><div class="titlepage"><div><h2 class="title"><a name="d40e42"></a>About this document</h2></div></div><p>
- This is the official MiKTeX FAQ list.
- Visit the MiKTeX Project page at
- <a href="http://www.miktex.org" target="_top">www.miktex.org</a> to
- view the latest version of this document.
- </p><p>
- Please feel free to contribute more questions (and answers) by
- sending an email to <tt>&lt;<a href="mailto:faq@miktex.org">faq@miktex.org</a>&gt;</tt>.
- </p></div><div id="d40e61" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e61"></a>Chapter 1. General</h2></div></div><div class="qandaset"><dl><dt>1.1 <a href="#d40e66">
- What is MiKTeX?
- </a></dt><dt>1.2 <a href="#d40e85">
- Which Windows version is required for running
- MiKTeX?}
- </a></dt><dt>1.3 <a href="#d40e115">
- Who maintains MiKTeX?
- </a></dt><dt>1.4 <a href="#d40e131">
- Is MiKTeX Year 2000 compliant?
- </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e66"></a><b>1.1 </b>
- What is MiKTeX?
- </p></div><div class="answer"><p><a name="d40e72"></a><b> </b>
- MiKTeX is a software
- distribution for Windows, which includes
- TeX and
- TeX-related applications.
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e85"></a><b>1.2 </b>
- Which Windows version is required for running
- MiKTeX?}
- </p></div><div class="answer"><p><a name="d40e91"></a><b> </b>
- MiKTeX requires a 32-bit Windows:
- <div class="itemizedlist"><ul><li><p><a name="d40e98"></a>
- Windows 95
- </p></li><li><p><a name="d40e101"></a>
- Windows 98
- </p></li><li><p><a name="d40e104"></a>
- Windows ME
- </p></li><li><p><a name="d40e107"></a>
- Windows NT
- </p></li><li><p><a name="d40e110"></a>
- Windows 2000
- </p></li></ul></div>
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e115"></a><b>1.3 </b>
- Who maintains MiKTeX?
- </p></div><div class="answer"><p><a name="d40e121"></a><b> </b>
- MiKTeX is maintained by
- Christian Schenk (<tt>&lt;<a href="mailto:cs@miktex.org">cs@miktex.org</a>&gt;</tt>).
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e131"></a><b>1.4 </b>
- Is MiKTeX Year 2000 compliant?
- </p></div><div class="answer"><p><a name="d40e137"></a><b> </b>
- MiKTeX is Year 2000 compliant to the extent that it has
- been designed and tested to be compliant. But remember
- that MiKTeX comes with no warranty, and this applies to
- Y2K compliance.
- </p></div></div></div></div><div id="d40e146" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e146"></a>Chapter 2. Getting Started</h2></div></div><div class="qandaset"><dl><dt>2.1 <a href="#d40e151">
- How do I install MiKTeX?
- </a></dt><dt>2.2 <a href="#d40e167">
- I have installed MiKTeX. How
- do I use it?How do I use it?
- </a></dt><dt>2.3 <a href="#texshells">
- Which program should I use to edit TeX documents?
- </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e151"></a><b>2.1 </b>
- How do I install MiKTeX?
- </p></div><div class="answer"><p><a name="d40e157"></a><b> </b>
- The MiKTeX distribution includes
- a setup wizard (<b>setupwiz.exe</b>). It should
- be sufficient to start the wizard and then clicking the
- @samp{Next} button until the installation process concludes.
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e167"></a><b>2.2 </b>
- I have installed MiKTeX. How
- do I use it?How do I use it?
- </p></div><div class="answer"><p><a name="d40e173"></a><b> </b>
- MiKTeX is mostly a collection
- of command-line oriented utilities. You should install a
- TeX shell/editor if you are a
- TeX novice (see <a href="#texshells" title="">Q: 2.3</a>).
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="texshells"></a><b>2.3 </b>
- Which program should I use to edit TeX documents?
- </p></div><div class="answer"><p><a name="d40e194"></a><b> </b>
- See <a href="http://www.germany.net/teilnehmer/100/122054/texwin.htm" target="_top">http://www.germany.net/teilnehmer/100/122054/texwin.htm</a>
- for a list of TeX shells. The
- most popular shell seems to be WinEdt (ShareWare, <a href="http://www.winedt.com" target="_top">http://www.winedt.com</a>).
- Emacs users may prefer
- AUC-TeX (<a href="http://sunsite.auc.dk/auctex/" target="_top">http://sunsite.auc.dk/auctex/</a>).
- </p></div></div></div></div><div id="d40e215" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e215"></a>Chapter 3. Net Resources</h2></div></div><div class="qandaset"><dl><dt>3.1 <a href="#d40e220">
- Is there a home page?
- </a></dt><dt>3.2 <a href="#d40e230">
- Is there a mailing list?
- </a></dt><dt>3.3 <a href="#joinml">
- How can I join the mailing list?
- </a></dt><dt>3.4 <a href="#d40e254">
- How can I read old articles?
- </a></dt><dt>3.5 <a href="#d40e264">
- How can I leave the mailing list?
- </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e220"></a><b>3.1 </b>
- Is there a home page?
- </p></div><div class="answer"><p><a name="d40e223"></a><b> </b>
- Yes. The official project page is <a href="http://www.miktex.org" target="_top">http://www.miktex.org</a>.
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e230"></a><b>3.2 </b>
- Is there a mailing list?
- </p></div><div class="answer"><p><a name="d40e233"></a><b> </b>
- Yes (see <a href="#joinml" title="">Q: 3.3</a>).
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="joinml"></a><b>3.3 </b>
- How can I join the mailing list?
- </p></div><div class="answer"><p><a name="d40e242"></a><b> </b>
- Send an email to <tt>&lt;<a href="mailto:miktex-request@dsts.dk">miktex-request@dsts.dk</a>&gt;</tt>.
- The message body must contain one line:
- </p><div class="informalexample" id="d40e248"><a name="d40e248"></a><pre class="programlisting">
-subscribe
- </pre></div><p>
- You will receive instructions (via email) on how to use
- the mailing list.
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e254"></a><b>3.4 </b>
- How can I read old articles?
- </p></div><div class="answer"><p><a name="d40e257"></a><b> </b>
- Old articles are accessible via <a href="http://www.egroups.com/group/miktex/" target="_top">http://www.egroups.com/group/miktex/</a>.
- </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e264"></a><b>3.5 </b>
- How can I leave the mailing list?
- </p></div><div class="answer"><p><a name="d40e267"></a><b> </b>
- Send an email to <tt>&lt;<a href="mailto:majordomo@dsts.dk">majordomo@dsts.dk</a>&gt;</tt>. The
- message body must contain one line:
- </p><div class="informalexample" id="d40e273"><a name="d40e273"></a><pre class="programlisting">
-unsubscribe miktex
- </pre></div></div></div></div></div><div id="d40e276" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e276"></a>Chapter 4. Maintenance</h2></div></div><div class="qandaset"><dl><dt>4.1 <a href="#d40e281">
- Which is the best directory to keep
- .sty files where
- MiKTeX can find them?
- </a></dt><dt>4.2 <a href="#d40e362">
- How do I add new languages to the LaTeX format file?
- </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e281"></a><b>4.1 </b>
- Which is the best directory to keep
- <tt>.sty</tt> files where
- MiKTeX can find them?
- </p></div><div class="answer"><p><a name="d40e290"></a><b> </b>
- Each new LaTeX
- <i><tt>package</tt></i> should be installed in
- the folder
- <tt>tex\latex\<i><tt>package</tt></i></tt>}
- relative to the local TEXMF folder (usually
- <tt>C:\localtexmf\</tt>).
- </p><p>
- Example: suppose you want to install the package
- thesis-ex which consists of the
- style file <tt>thesis-es.sty</tt>:
- </p><div class="procedure"><a name="d40e315"></a><ol><li><a name="d40e316"></a><p>
- Create a new folder:
- </p><div class="informalexample" id="d40e319"><a name="d40e319"></a><pre class="screen">
-<tt>C:\&gt; </tt><b><tt>mkdir C:\localtexmf\tex\latex\thesis-ex</tt></b>
-<tt>C:\&gt; </tt>
- </pre></div></li><li><a name="d40e330"></a><p>
- Copy all files (only one in our case) to the new folder:
- </p><div class="informalexample" id="d40e333"><a name="d40e333"></a><pre class="screen">
-<tt>C:\&gt; </tt><b><tt>copy thesis-ex.sty C:\localtexmftex\latex\thesis-ex</tt></b>
-<tt>C:\&gt; </tt>
- </pre></div></li><li><a name="d40e344"></a><p>
- Refresh the file name database so that MiKTeX finds the new files:
- </p><div class="informalexample" id="d40e350"><a name="d40e350"></a><pre class="screen">
-<tt>C:\&gt; </tt><b><tt>initexmf -u</tt></b>
-<tt>C:\&gt; </tt>
- </pre></div></li></ol></div></div></div><div class="qandaentry"><div class="question"><p><a name="d40e362"></a><b>4.2 </b>
- How do I add new languages to the LaTeX format file?
- </p></div><div class="answer"><p><a name="d40e368"></a><b> </b>
- You can use MiKTeX Options
- to add new languages.
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>MiKTeX 2.1 FAQ</title><link rel="stylesheet" href="miktexman.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.39"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="d40e2" class="article"><div class="titlepage"><div><h2 class="title"><a name="d40e2"></a>MiKTeX 2.1 FAQ</h2></div><div><h3 class="author">Christian Schenk</h3></div><div><p class="copyright">Copyright &copy; 2001 Christian Schenk</p></div><div><div class="legalnotice"><p>
+ Permission is granted to make and distribute verbatim copies
+ of this manual provided the copyright notice and this
+ permission notice are preserved on all copies.
+ </p><p>
+ Permission is granted to copy and distribute modified versions
+ of this manual under the conditions for verbatim copying,
+ provided that the entire resulting derived work is distributed
+ under the terms of a permission notice identical to this one.
+ </p><p>
+ Permission is granted to copy and distribute translations of
+ this manual into another language, under the above conditions
+ for modified versions, except that this permission notice may
+ be stated in a translation approved by the Free Software
+ Foundation.
+ </p></div></div><hr></div><div id="d40e42" class="preface"><div class="titlepage"><div><h2 class="title"><a name="d40e42"></a>About this document</h2></div></div><p>
+ This is the official MiKTeX FAQ list.
+ Visit the MiKTeX Project page at
+ <a href="http://www.miktex.org" target="_top">www.miktex.org</a> to
+ view the latest version of this document.
+ </p><p>
+ Please feel free to contribute more questions (and answers) by
+ sending an email to <tt>&lt;<a href="mailto:faq@miktex.org">faq@miktex.org</a>&gt;</tt>.
+ </p></div><div id="d40e61" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e61"></a>Chapter 1. General</h2></div></div><div class="qandaset"><dl><dt>1.1 <a href="#d40e66">
+ What is MiKTeX?
+ </a></dt><dt>1.2 <a href="#d40e85">
+ Which Windows version is required for running
+ MiKTeX?}
+ </a></dt><dt>1.3 <a href="#d40e115">
+ Who maintains MiKTeX?
+ </a></dt><dt>1.4 <a href="#d40e131">
+ Is MiKTeX Year 2000 compliant?
+ </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e66"></a><b>1.1 </b>
+ What is MiKTeX?
+ </p></div><div class="answer"><p><a name="d40e72"></a><b> </b>
+ MiKTeX is a software
+ distribution for Windows, which includes
+ TeX and
+ TeX-related applications.
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e85"></a><b>1.2 </b>
+ Which Windows version is required for running
+ MiKTeX?}
+ </p></div><div class="answer"><p><a name="d40e91"></a><b> </b>
+ MiKTeX requires a 32-bit Windows:
+ <div class="itemizedlist"><ul><li><p><a name="d40e98"></a>
+ Windows 95
+ </p></li><li><p><a name="d40e101"></a>
+ Windows 98
+ </p></li><li><p><a name="d40e104"></a>
+ Windows ME
+ </p></li><li><p><a name="d40e107"></a>
+ Windows NT
+ </p></li><li><p><a name="d40e110"></a>
+ Windows 2000
+ </p></li></ul></div>
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e115"></a><b>1.3 </b>
+ Who maintains MiKTeX?
+ </p></div><div class="answer"><p><a name="d40e121"></a><b> </b>
+ MiKTeX is maintained by
+ Christian Schenk (<tt>&lt;<a href="mailto:cs@miktex.org">cs@miktex.org</a>&gt;</tt>).
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e131"></a><b>1.4 </b>
+ Is MiKTeX Year 2000 compliant?
+ </p></div><div class="answer"><p><a name="d40e137"></a><b> </b>
+ MiKTeX is Year 2000 compliant to the extent that it has
+ been designed and tested to be compliant. But remember
+ that MiKTeX comes with no warranty, and this applies to
+ Y2K compliance.
+ </p></div></div></div></div><div id="d40e146" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e146"></a>Chapter 2. Getting Started</h2></div></div><div class="qandaset"><dl><dt>2.1 <a href="#d40e151">
+ How do I install MiKTeX?
+ </a></dt><dt>2.2 <a href="#d40e167">
+ I have installed MiKTeX. How
+ do I use it?How do I use it?
+ </a></dt><dt>2.3 <a href="#texshells">
+ Which program should I use to edit TeX documents?
+ </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e151"></a><b>2.1 </b>
+ How do I install MiKTeX?
+ </p></div><div class="answer"><p><a name="d40e157"></a><b> </b>
+ The MiKTeX distribution includes
+ a setup wizard (<b>setupwiz.exe</b>). It should
+ be sufficient to start the wizard and then clicking the
+ @samp{Next} button until the installation process concludes.
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e167"></a><b>2.2 </b>
+ I have installed MiKTeX. How
+ do I use it?How do I use it?
+ </p></div><div class="answer"><p><a name="d40e173"></a><b> </b>
+ MiKTeX is mostly a collection
+ of command-line oriented utilities. You should install a
+ TeX shell/editor if you are a
+ TeX novice (see <a href="#texshells" title="">Q: 2.3</a>).
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="texshells"></a><b>2.3 </b>
+ Which program should I use to edit TeX documents?
+ </p></div><div class="answer"><p><a name="d40e194"></a><b> </b>
+ See <a href="http://www.germany.net/teilnehmer/100/122054/texwin.htm" target="_top">http://www.germany.net/teilnehmer/100/122054/texwin.htm</a>
+ for a list of TeX shells. The
+ most popular shell seems to be WinEdt (ShareWare, <a href="http://www.winedt.com" target="_top">http://www.winedt.com</a>).
+ Emacs users may prefer
+ AUC-TeX (<a href="http://sunsite.auc.dk/auctex/" target="_top">http://sunsite.auc.dk/auctex/</a>).
+ </p></div></div></div></div><div id="d40e215" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e215"></a>Chapter 3. Net Resources</h2></div></div><div class="qandaset"><dl><dt>3.1 <a href="#d40e220">
+ Is there a home page?
+ </a></dt><dt>3.2 <a href="#d40e230">
+ Is there a mailing list?
+ </a></dt><dt>3.3 <a href="#joinml">
+ How can I join the mailing list?
+ </a></dt><dt>3.4 <a href="#d40e254">
+ How can I read old articles?
+ </a></dt><dt>3.5 <a href="#d40e264">
+ How can I leave the mailing list?
+ </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e220"></a><b>3.1 </b>
+ Is there a home page?
+ </p></div><div class="answer"><p><a name="d40e223"></a><b> </b>
+ Yes. The official project page is <a href="http://www.miktex.org" target="_top">http://www.miktex.org</a>.
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e230"></a><b>3.2 </b>
+ Is there a mailing list?
+ </p></div><div class="answer"><p><a name="d40e233"></a><b> </b>
+ Yes (see <a href="#joinml" title="">Q: 3.3</a>).
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="joinml"></a><b>3.3 </b>
+ How can I join the mailing list?
+ </p></div><div class="answer"><p><a name="d40e242"></a><b> </b>
+ Send an email to <tt>&lt;<a href="mailto:miktex-request@dsts.dk">miktex-request@dsts.dk</a>&gt;</tt>.
+ The message body must contain one line:
+ </p><div class="informalexample" id="d40e248"><a name="d40e248"></a><pre class="programlisting">
+subscribe
+ </pre></div><p>
+ You will receive instructions (via email) on how to use
+ the mailing list.
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e254"></a><b>3.4 </b>
+ How can I read old articles?
+ </p></div><div class="answer"><p><a name="d40e257"></a><b> </b>
+ Old articles are accessible via <a href="http://www.egroups.com/group/miktex/" target="_top">http://www.egroups.com/group/miktex/</a>.
+ </p></div></div><div class="qandaentry"><div class="question"><p><a name="d40e264"></a><b>3.5 </b>
+ How can I leave the mailing list?
+ </p></div><div class="answer"><p><a name="d40e267"></a><b> </b>
+ Send an email to <tt>&lt;<a href="mailto:majordomo@dsts.dk">majordomo@dsts.dk</a>&gt;</tt>. The
+ message body must contain one line:
+ </p><div class="informalexample" id="d40e273"><a name="d40e273"></a><pre class="programlisting">
+unsubscribe miktex
+ </pre></div></div></div></div></div><div id="d40e276" class="chapter"><div class="titlepage"><div><h2 class="title"><a name="d40e276"></a>Chapter 4. Maintenance</h2></div></div><div class="qandaset"><dl><dt>4.1 <a href="#d40e281">
+ Which is the best directory to keep
+ .sty files where
+ MiKTeX can find them?
+ </a></dt><dt>4.2 <a href="#d40e362">
+ How do I add new languages to the LaTeX format file?
+ </a></dt></dl><div class="qandaentry"><div class="question"><p><a name="d40e281"></a><b>4.1 </b>
+ Which is the best directory to keep
+ <tt>.sty</tt> files where
+ MiKTeX can find them?
+ </p></div><div class="answer"><p><a name="d40e290"></a><b> </b>
+ Each new LaTeX
+ <i><tt>package</tt></i> should be installed in
+ the folder
+ <tt>tex\latex\<i><tt>package</tt></i></tt>}
+ relative to the local TEXMF folder (usually
+ <tt>C:\localtexmf\</tt>).
+ </p><p>
+ Example: suppose you want to install the package
+ thesis-ex which consists of the
+ style file <tt>thesis-es.sty</tt>:
+ </p><div class="procedure"><a name="d40e315"></a><ol><li><a name="d40e316"></a><p>
+ Create a new folder:
+ </p><div class="informalexample" id="d40e319"><a name="d40e319"></a><pre class="screen">
+<tt>C:\&gt; </tt><b><tt>mkdir C:\localtexmf\tex\latex\thesis-ex</tt></b>
+<tt>C:\&gt; </tt>
+ </pre></div></li><li><a name="d40e330"></a><p>
+ Copy all files (only one in our case) to the new folder:
+ </p><div class="informalexample" id="d40e333"><a name="d40e333"></a><pre class="screen">
+<tt>C:\&gt; </tt><b><tt>copy thesis-ex.sty C:\localtexmftex\latex\thesis-ex</tt></b>
+<tt>C:\&gt; </tt>
+ </pre></div></li><li><a name="d40e344"></a><p>
+ Refresh the file name database so that MiKTeX finds the new files:
+ </p><div class="informalexample" id="d40e350"><a name="d40e350"></a><pre class="screen">
+<tt>C:\&gt; </tt><b><tt>initexmf -u</tt></b>
+<tt>C:\&gt; </tt>
+ </pre></div></li></ol></div></div></div><div class="qandaentry"><div class="question"><p><a name="d40e362"></a><b>4.2 </b>
+ How do I add new languages to the LaTeX format file?
+ </p></div><div class="answer"><p><a name="d40e368"></a><b> </b>
+ You can use MiKTeX Options
+ to add new languages.
</p></div></div></div></div></div></body></html> \ No newline at end of file
diff --git a/language/arabic/arabtex/doc/html/refer.htm b/language/arabic/arabtex/doc/html/refer.htm
index f579ec65bb..4cde56d7dc 100644
--- a/language/arabic/arabtex/doc/html/refer.htm
+++ b/language/arabic/arabtex/doc/html/refer.htm
@@ -1,109 +1,109 @@
-<html>
-<head>
-<title> ArabTeX References </title>
-</head>
-
-<!-------------------------------------------------------------------------->
-<body>
-<h2>
-Some ArabTeX References
-</h2>
-
-<hr><!---------------------------------------------------------------------->
-
-The following list contains some examples of publications
-heavily relying on ArabTeX for typesetting.
-<P>
-The list is neither complete, nor do we have any judgment on the content.
-Some titles contain quotations in the ArabTeX transliteration conventions;
-these may be not too readable.
-
-<ul>
-<li>
-Benno van Dalen: <I>Ancient and Mediaeval Astronomical Tables:
-mathematical structure and parameter values.</I>
-Proefschrift Universiteit Utrecht, 1993.
-
-<li>
-<I>Abu Ma`shar: The Abbreviation of the Introduction
-to Astrology, together with the Medieval Latin Translation
-of Adelard of Bath.</I>
-Edited and translated by Ch. Burnett, K. Yamamoto
-and M. Yano. E. J. Brill, Leiden, New York, K&ouml;ln 1994.
-
-<li>
-U. Rebstock: <I>Der Mu`amalat-Traktat des Ibn al-Haitham.</I>
-Zeitschrift f&uuml;r Geschichte der Arabisch-Islamischen Wissenschaften 10,
-61 - 121, 1995/96.
-
-<li>
-Idris Samawi Hamid: <I>The Metaphysics and Cosmology of Process
-according to Shaykh 'Ahmad al-'Ahsa'i.</I>
-Critical Edition, Translation and Analysis of
-<i>Observations in Wisdom</i>.
-State University of New York at Buffalo, PhD Dissertation, 1998.
-
-<li>
-<I>Kushyar Ibn Labban's Introduction to Astrology.</I>
-Edited and Translated by Michio Yano.
-Institute for the Study of Languages and Cultures of Asia and Africa,
-Tokyo 1997.
-
-<li>
-Arnoud Vrolijk: <I>Bringing a laugh to a scowling face. </I>
-A study and critical edition of the
-"Nuzhat al-nufus wa-mudhik al-`abus" by
-`Ali Ibn Sudun al-Bashbughawi
-(Cairo 810/1407 - Damascus 868/1464).
-Research School CNWS, School of Asian, African, and Amerindian Studies,
-Leiden, The Netherlands, 1998.
-
-<li>
-E.S.Kennedy, P.Kunitzsch and R.P.Lorch:
-<I>The Melon-shaped Astrolabe in Arabic Astronomy.</I>
-Texts edited with translation and commentary.
-Boethius,
-Texte und Abhandlungen zur Geschichte der Mathematik und der
-Naturwissenschaften, Band 43.
-Franz Steiner Verlag Stuttgart, 1999.
-
-<li>
-Charif Bahbouh, Martina Bahbouhova:
-<I>365 + 1 arabske prislovi a mudroslovi.</I>
-Dar Ibn Rushd, Praha, 2001.
-
-<li>
-<I>Wolfdietrich Fischer: A Grammar of Classical Arabic.</I>
-Third Revised Edition.
-Translated from the German by Jonathan Rodgers.
-Yale University Press, New Haven & London, 2001.
-
-<li>
-<I>Thabit ibn Qurra: On the Sector-Figure and Related Texts.</I>
-Edited with Translation and Commentary by Richard Lorch.
-Institute for the History of Arabic-Islamic Science
-at the Johann Wolfgang Goethe University,
-Frankfurt am Main, 2001.
-
-<li>
-Tilman Hannemann:
-<I>Recht und Religion in der Gro&szlig;en Kabylei
-(18./19. Jahrhundert).</I>
-Zu rechtskulturellen Wandlungsprozessen im tribalen Gewohnheitsrecht.
-Dissertation Universit&auml;t Bremen, 2002.
-</ul>
-
-
-<hr><!----------------------------------------------------------------------->
-<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
- Back to the ArabTeX directory
-</a>
-
-<hr><!---------------------------------------------------------------------->
- Copyright (c) 1990 - 2003,
-<!--<a href="mailto:lagally@informatik.uni-stuttgart.de">-->
-<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
- Klaus Lagally </a>
-</body>
-</html>
-
+<html>
+<head>
+<title> ArabTeX References </title>
+</head>
+
+<!-------------------------------------------------------------------------->
+<body>
+<h2>
+Some ArabTeX References
+</h2>
+
+<hr><!---------------------------------------------------------------------->
+
+The following list contains some examples of publications
+heavily relying on ArabTeX for typesetting.
+<P>
+The list is neither complete, nor do we have any judgment on the content.
+Some titles contain quotations in the ArabTeX transliteration conventions;
+these may be not too readable.
+
+<ul>
+<li>
+Benno van Dalen: <I>Ancient and Mediaeval Astronomical Tables:
+mathematical structure and parameter values.</I>
+Proefschrift Universiteit Utrecht, 1993.
+
+<li>
+<I>Abu Ma`shar: The Abbreviation of the Introduction
+to Astrology, together with the Medieval Latin Translation
+of Adelard of Bath.</I>
+Edited and translated by Ch. Burnett, K. Yamamoto
+and M. Yano. E. J. Brill, Leiden, New York, K&ouml;ln 1994.
+
+<li>
+U. Rebstock: <I>Der Mu`amalat-Traktat des Ibn al-Haitham.</I>
+Zeitschrift f&uuml;r Geschichte der Arabisch-Islamischen Wissenschaften 10,
+61 - 121, 1995/96.
+
+<li>
+Idris Samawi Hamid: <I>The Metaphysics and Cosmology of Process
+according to Shaykh 'Ahmad al-'Ahsa'i.</I>
+Critical Edition, Translation and Analysis of
+<i>Observations in Wisdom</i>.
+State University of New York at Buffalo, PhD Dissertation, 1998.
+
+<li>
+<I>Kushyar Ibn Labban's Introduction to Astrology.</I>
+Edited and Translated by Michio Yano.
+Institute for the Study of Languages and Cultures of Asia and Africa,
+Tokyo 1997.
+
+<li>
+Arnoud Vrolijk: <I>Bringing a laugh to a scowling face. </I>
+A study and critical edition of the
+"Nuzhat al-nufus wa-mudhik al-`abus" by
+`Ali Ibn Sudun al-Bashbughawi
+(Cairo 810/1407 - Damascus 868/1464).
+Research School CNWS, School of Asian, African, and Amerindian Studies,
+Leiden, The Netherlands, 1998.
+
+<li>
+E.S.Kennedy, P.Kunitzsch and R.P.Lorch:
+<I>The Melon-shaped Astrolabe in Arabic Astronomy.</I>
+Texts edited with translation and commentary.
+Boethius,
+Texte und Abhandlungen zur Geschichte der Mathematik und der
+Naturwissenschaften, Band 43.
+Franz Steiner Verlag Stuttgart, 1999.
+
+<li>
+Charif Bahbouh, Martina Bahbouhova:
+<I>365 + 1 arabske prislovi a mudroslovi.</I>
+Dar Ibn Rushd, Praha, 2001.
+
+<li>
+<I>Wolfdietrich Fischer: A Grammar of Classical Arabic.</I>
+Third Revised Edition.
+Translated from the German by Jonathan Rodgers.
+Yale University Press, New Haven & London, 2001.
+
+<li>
+<I>Thabit ibn Qurra: On the Sector-Figure and Related Texts.</I>
+Edited with Translation and Commentary by Richard Lorch.
+Institute for the History of Arabic-Islamic Science
+at the Johann Wolfgang Goethe University,
+Frankfurt am Main, 2001.
+
+<li>
+Tilman Hannemann:
+<I>Recht und Religion in der Gro&szlig;en Kabylei
+(18./19. Jahrhundert).</I>
+Zu rechtskulturellen Wandlungsprozessen im tribalen Gewohnheitsrecht.
+Dissertation Universit&auml;t Bremen, 2002.
+</ul>
+
+
+<hr><!----------------------------------------------------------------------->
+<a href="ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/arabtex.htm">
+ Back to the ArabTeX directory
+</a>
+
+<hr><!---------------------------------------------------------------------->
+ Copyright (c) 1990 - 2003,
+<!--<a href="mailto:lagally@informatik.uni-stuttgart.de">-->
+<a href="http://www.informatik.uni-stuttgart.de/ifi/bs/people/lagall_e.htm">
+ Klaus Lagally </a>
+</body>
+</html>
+
diff --git a/language/arabic/arabtex/doc/txt/announce.txt b/language/arabic/arabtex/doc/txt/announce.txt
index f1217164e8..3b51bec425 100644
--- a/language/arabic/arabtex/doc/txt/announce.txt
+++ b/language/arabic/arabtex/doc/txt/announce.txt
@@ -1,50 +1,50 @@
-----------------------------------------------------------------------
- ArabTeX Version 3.11 is available
-----------------------------------------------------------------------
-As of today, Oct. 23, 2003, a new version 3.11 of ArabTeX is available
-by FTP from "ftp.informatik.uni-stuttgart.de" (129.69.211.2).
-The package resides in "/pub/arabtex/", see the file "arabtex.htm".
-
-This server always carries the current version; in case of doubt check
-the version number and the date of the file /pub/arabtex/apatch.sty.
-To receive a status report you may also send an empty Email message to
-"arabtex@informatik.uni-stuttgart.de".
-
-Please observe that we are *not* the same as the (old) "Stuttgart server"!
-
-The identical package is also available from the CTAN server network:
-
- ftp://ftp.tex.ac.uk/tex-archive/languages/arabtex/ (UK)
- ftp://ftp.dante.de/tex-archive/languages/arabtex/ (Germany)
- ftp://ctan.tug.org/tex-archive/languages/arabtex/ (USA)
-
-ArabTeX is a TeX macro package with associated Naskh fonts designed to
-generate the Arabic writing from texts coded in an ASCII transliteration
-as well as in some other popular encodings for Arabic and Hebrew, e.g.
-ASMO 449, ISO 8859-6 (ASMO 708), Arabic Windows encoding, and HED.
-It is compatible with Plain TeX, LaTeX, NFSS, and the EDMAC package.
-It also cooperates well with LaTeX 2e of June 1996 or later.
-There is some support for Persian, Urdu, Pashto, and Sindhi.
-Unicode Arabic and Hebrew support is present but not extensively tested.
-
-The version 3.11 supports vowelized and non-vowelized Hebrew, and
-bidirectional line-breaking within insertions. The former limitation
-that an insertion must fit on the current line no more exists.
-
-For information on updates, see the file "changes.txt".
-
-----------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Formale Methoden der Informatik
- Universitaet Stuttgart
- Universitaetsstrasse 38
- D-70569 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
- FAX: +49 - 711 - 7816 370
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2003, Klaus Lagally
---------------------------------------------------------------------------
-
-
+----------------------------------------------------------------------
+ ArabTeX Version 3.11 is available
+----------------------------------------------------------------------
+As of today, Oct. 23, 2003, a new version 3.11 of ArabTeX is available
+by FTP from "ftp.informatik.uni-stuttgart.de" (129.69.211.2).
+The package resides in "/pub/arabtex/", see the file "arabtex.htm".
+
+This server always carries the current version; in case of doubt check
+the version number and the date of the file /pub/arabtex/apatch.sty.
+To receive a status report you may also send an empty Email message to
+"arabtex@informatik.uni-stuttgart.de".
+
+Please observe that we are *not* the same as the (old) "Stuttgart server"!
+
+The identical package is also available from the CTAN server network:
+
+ ftp://ftp.tex.ac.uk/tex-archive/languages/arabtex/ (UK)
+ ftp://ftp.dante.de/tex-archive/languages/arabtex/ (Germany)
+ ftp://ctan.tug.org/tex-archive/languages/arabtex/ (USA)
+
+ArabTeX is a TeX macro package with associated Naskh fonts designed to
+generate the Arabic writing from texts coded in an ASCII transliteration
+as well as in some other popular encodings for Arabic and Hebrew, e.g.
+ASMO 449, ISO 8859-6 (ASMO 708), Arabic Windows encoding, and HED.
+It is compatible with Plain TeX, LaTeX, NFSS, and the EDMAC package.
+It also cooperates well with LaTeX 2e of June 1996 or later.
+There is some support for Persian, Urdu, Pashto, and Sindhi.
+Unicode Arabic and Hebrew support is present but not extensively tested.
+
+The version 3.11 supports vowelized and non-vowelized Hebrew, and
+bidirectional line-breaking within insertions. The former limitation
+that an insertion must fit on the current line no more exists.
+
+For information on updates, see the file "changes.txt".
+
+----------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Formale Methoden der Informatik
+ Universitaet Stuttgart
+ Universitaetsstrasse 38
+ D-70569 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+ FAX: +49 - 711 - 7816 370
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2003, Klaus Lagally
+--------------------------------------------------------------------------
+
+
diff --git a/language/arabic/arabtex/doc/txt/arabtex.doc b/language/arabic/arabtex/doc/txt/arabtex.doc
index 524cf6fa7f..c01b077e37 100644
--- a/language/arabic/arabtex/doc/txt/arabtex.doc
+++ b/language/arabic/arabtex/doc/txt/arabtex.doc
@@ -1,523 +1,523 @@
-arabtex.doc 20.11.1993
- A r a b T e X Version 3
- ========================
-------------------------------------------------------------------------
-The introduction below is slightly out of date
-but may be used as a first start.
-------------------------------------------------------------------------
-arabtex.doc 05.11.1992
- A r a b T e X Version 2
- ========================
-
-What is ArabTeX?
-================
-
-ArabTeX is a package extending the capabilities of TeX/LaTeX to generate
-the arabic writing from an ASCII transliteration for texts in several
-languages using the arabic script.
-
-It consists of a TeX macro package and an arabic font in several sizes,
-presently only available in the Naskhi style. ArabTeX will run with Plain
-TeX and also with LaTeX; other additions to TeX have not been tried.
-
-ArabTeX is primarily intended for generating the arabic writing, but the
-scientific transcription can be also easily generated. For other languages
-using the arabic script limited support is available.
-
-
-Installing ArabTeX:
-===================
-
-The installation procedure is system dependent. You have to install the
-"nash14" font with its "*.pk" and "*.tfm" files on the font search path of
-your TeX system, and the "*.sty" files and "arabtex.tex" on the source
-search path of your system. Possibly you will have to rename the "*.pk"
-files according to local conventions, and as a last resort you can try to
-recreate the font from the "*.mf" METAFONT sources. Additional fonts if
-available are installed analogously.
-
-
-Activating ArabTeX:
-===================
-
-With Plain TeX, load the ArabTeX macros by "\input arabtex". With LaTeX,
-include the option "arabtex" in the document header. In both cases several
-additional files will be loaded automatically.
-
-ArabTeX defines several additional commands as indicated below, and also a
-large number of internal commands which could lead to storage overflow in
-a small TeX implementation. All internal commands contain an "at" sign <@>
-in their names and thus should not interfere with any user defined
-commands (but possibly with TeX extensions we do not know about).
-
-With Plain TeX, the arabic font is only available at the normal 14 point
-size which ought to cooperate well with the "cm" fonts at 10 points. For
-other sizes, change the "\magnification" or define additional font
-identifiers yourself. To change the default, inspect "arabtex.tex" and
-redefine the "\pnash" command accordingly. With LaTeX, the size changing
-commands will also operate on the arabic font.
-
-
-Input to ArabTeX:
-=================
-
-After activating ArabTeX, your modified TeX/LaTeX system will recognize
-the following items:
-
-- normal TeX/LaTeX text and commands,
-
-- short arabic quotations bracketed by < and >; these must fit on one
- line of output, and you have to select one of the Arabic writing styles,
- e.g \setarab, before using this feature. A quotation may also be started
- with \<.
-
-- longer arabic texts bracketed by \begin{arabtext} and \end{arabtext},
- called "Arabic Environments" in the sequel.
-
-An Arabic Environment consists of one or several paragraphs separated by
-blank lines or \par commands. Every paragraph and every arabic quotation
-is a sequence of the following kinds of items, separated by blank spaces
-or newlines:
-
-- isolated (legal) special characters, interpreted as the corresponding
- arabic special character;
-
-- "numbers", character sequences starting with a digit. A "number" will be
- translated in the normal writing sequence from left to right even if it
- contains letters and/or special characters;
-
-- "arabic quotes", coded as two left quotes or two right quotes each;
-
-- "words", character sequences starting with a letter or special character
- followed by a letter. The (coded) characters of a word will in the
- output be arranged from right to left.
-
-- TeX/LaTeX control sequences WITHOUT parameters. These will be executed
- immediately.
-
-- ArabTeX control sequences with or without parameters. These will be
- executed immediately.
-
-- a sequence of items enclosed in curly braces { and }. The output from
- the constituents will be arranged from right to left and must fit on one
- output line. As far as TeX is concerned, this is NO group. This feature
- may not be nested.
-
-Output from all items will be arranged from right to left, lines will be
-broken as necessary.
-
-Inside an Arabic Environment, but NOT in an arabic quotation, you may also
-have:
-
-- short mathematical insertions, bracketed by SINGLE $ signs. They must
- fit on one output line and are processed as usual;
-
-- short non-arabic text quotations, bracketed by < and >. These must fit
- on one output line and introduce a new level of grouping, so if they
- contain any TeX/LaTeX assignments the effects of these will be local.
-
-Control sequences in an Arabic Environment may be of the following kinds:
-
-- ArabTeX option changing commands. These may also be used outside an
- Arabic Environment and generally have a global effect;
-
-- \\ for a new line;
-
-- \par (or a blank line) for a new paragraph, \noindent for a new paragraph
- without indentation (NOT in arabic quotations);
-
-- \emphasize <item> will put a bar over the next <item>;
-
-- \setnash, \setnashbf, \setnastaliq font selection commands, see below;
-
-- size changing LaTeX commands like \large etc., only if you use LaTeX;
-
-- most other TeX/LaTeX commands make no sense in an Arabic Environment.
-
-- you MUST NOT nest another LaTeX environment inside an Arabic Environment
- (except possibly display math which we did not test, and might work);
-
-- if you really need to use a control sequence with parameters, define a
- new TeX macro or enclose the whole construct in curly braces { and }.
-
-
-Font selection:
-===============
-
-For space economy, only the Naskh font is available by default. With LaTeX,
-additional fonts can be loaded by the document style options "nashbf"
-and/or "nastaliq" (when available). Users of Plain TeX can load and define
-suitable fonts themselves.
-
-The following font selection commands are available:
-
-- \setnash (default) selects the Naskh font.
-
-- \setnashbf selects a bold-face version of Naskh.
-
-- \setnastaliq selects the Nastaliq font.
-
-If a font is not available or has not been loaded, the corresponding
-command will select the default font.
-
-With LaTeX, the size changing commands will also operate on the additional
-fonts.
-
-
-Input coding:
-=============
-
-The ASCII input notation for arabic text is modelled closely after the
-transliteration standards ISO/R 233 and DIN 31 635. As these standards do
-not guarantee unique re-transliteration and are also not ASCII compatible,
-some modifications were necessary. These follow the general rules:
-
-- if the transliteration uses a single letter, code that letter;
-
-- if the transliteration uses a letter with a diacritical mark, put a
- special character similar to the diacritical mark BEFORE the letter.
-
-Standard arabic and persian characters:
----------------------------------------
-
-b bah | d dal | .s ssad | f fah | h hah | ' hamza
-t tah | _d dhal | .d ddad | q qaf | w waw | N tanween
-_t thah | r rah | .t ttah | k kaf | y yah | Y alif maqsoura
-^g geem | z zay | .z tthah | l lam | g gaf | _A alif maqsoura
-.h hhah | s seen | ` `ain | m meem | p pah | T tah marbouta
-_h khah | ^s sheen | .g ghain | n noon | v vah | W waw (see below)
-
-Additional characters generally available:
-------------------------------------------
-
-c hhah with hamza
-^c gim with three dots (below)
-,c khah with three dots (above)
-^z zay with three dots (above)
-~n kaf with three dots (Ottoman)
-~l law with a bow accent (Kurdish)
-~r rah with two bows (Kurdish)
-
-See also "Urdu" and "Pashto" below.
-
-Additional coding rules:
-------------------------
-
-- For long vowels, use capital letters <A>, <I>, <U>, or <_a>, <_i>, <_u>.
-
-- As the transliteration is ambiguous, use <T> for <tah marbouta>,
- <N> for <tanween>, <Y> or <_A> for <alif maqsoura>.
-
-- Short vowels <a>, <i>, <u> need not generally be written except in the
- following cases:
- - at the beginning of a word where they generate <alif>,
- - adjacent to <hamza> where they will influence the carrier,
- - when the transcription is wanted,
- - in \fullvocalize mode.
-
-- <hamza> is denoted by a single RIGHT quote; its carrier will be
- determined from the context according to the rules for writing arabic
- words. If that is not wanted, "quote" it (see below).
-
-- <`ain> is a single LEFT quote, don't confuse it with <hamza>!
-
-- <madda> is generated by a right quote (<hamza>) before <A>: <'A>.
-
-- The "invisible letter" <|> may be inserted in order to break unwanted
- ligatures and to influence the <hamza> writing. It will not show in the
- arabic output or in the transcription.
-
-- <tashdid> is indicated by doubling the appropriate letter.
-
-- The article is always written <al-> (with hyphen!).
-
-- Hyphens <-> may be used freely, and generally do not change the writing,
- but will show up in the transcription. At the beginning and the end of a
- word they enforce the use of the connection form of the adjacent letter
- (if it exists), like e.g. in the date <1400 h->.
-
-- A double hyphen <--> between two otherwise joining letters will break
- any ligature and will insert a horizontal stroke (<tatweel>, <kashida>)
- without appearing in the transcription. It may be used repeatedly.
-
-
-Quoting:
-========
-
-A double quote <"> will modify the meaning of the following character as
-follows:
-
-- if a short vowel follows, the appropriate diacritical mark <fatha>,
- <kasra>, <damma> will be put on the preceding character even if the
- vocalization is off otherwise. If <N> follows the short vowel, the
- appropriate form of <tanween> will be generated instead. At the
- beginning of a word, <alif> is assumed as the first character. If the
- previous word ended with a vowel, <wasla> is generated instead of the
- vowel indicator.
-
-- if the following character is a single right quote, a <hamza> mark will
- be put on the preceding character even if in conflict with the <hamza>
- rules.
-
-- if the following character is the "invisible letter" <|>, the connection
- between the adjacent letters will be broken and a small space inserted.
-
-- otherwise: a <sukun> will be put on the preceding character. The
- following character will be processed again.
-
-The double quote will not show up in the transcription.
-
-
-Ligatures:
-==========
-
-There is no way to explicitly indicate ligatures as a large number of them
-are generated automatically. Any unwanted ligature can be suppressed by
-interposing the invisible letter <|> between the two letters otherwise
-combined into a ligature. After "\ligsfalse" ligatures in the middle of a
-word will not normally be produced; for some texts this looks better. You
-can return to the normal strategy by "\ligstrue".
-
-
-Vocalization:
-=============
-
-There are three modes of rendering short vowels:
-
-\fullvocalize:
- - every short vowel will generate the corresponding diacritic mark
- <fatha>, <kasra>, <damma>.
-
- - If <N> follows a short vowel, the corresponding form of <tanween> is
- generated instead.
-
- - <_a> will produce a <qur'an alif> accent instead of an explicit
- <alif> character which is coded <A>.
-
- - if a long vowel follows a consonant, the corresponding short vowel is
- implied. The long vowel itself carries no diacritical mark.
-
- - if no vowel is given after a consonant, <sukun> will be generated
- except if a double "sun letter" follows <lam>.
-
- - <alif> at the beginning of a word carries <wasla> instead of the vowel
- indicator if the preceding word ended with a vowel.
-
-\vocalize: as above, but <sukun> and <wasla> will not be generated except
- if explicitly indicated by "quoting".
-
-\novocalize: no diacritics will be generated except if explicitly asked for
- by "quoting".
-
-In all modes, a double consonant will generate <tashdid>, and <'A> always
-generates <madda> on <alif>. After <aN> the silent <alif> character is
-generated if necessary. The silent <alif> may also be explicitly indicated
-by <aNa> or <aNA>, or coded literally as <A> in \novocalize mode. If a
-silent <alif maqsoura> is wanted instead, write <aNY>, <aN_A>, <Y> or <_A>.
-A silent <alif> after <waw> is indicated by <Ua>, <UA> or <Wa>, <WA> (with
-a capital <W>!).
-
-
-Transcription:
-==============
-
-In addition to the arabic writing, the standard scientific transcription
-may also be obtained from a fully vocalized input text. This is indicated
-by "\transtrue" and may be switched off again by "\transfalse". If ONLY
-the transcription is wanted, you can deactivate the arabic writing by
-"\arabfalse"; it can be reactivated by "\arabtrue". If both modes are
-active their output will be interleaved line by line.
-
-The transcription mode assumes that the input text is in the Arabic
-language and has been coded according to the rules given above. For words
-from other languages the transcription might be in error. For Arabic text,
-the following special cases are handled:
-
-- after the article, a double consonant will be assimilated;
-
-- an initial vowel will be omitted if the preceding word ended with a
- vowel. If that is not wanted start with <hamza>.
-
-- a silent <alif> or <alif maqsoura> after <N> (<tanwin>) and <U> is
- omitted in the transcription. The same happens after <waw> if it is
- written <W>.
-
-For space economy, the transcription module is NOT loaded by default. If
-you want to use it, add the style option "atrans" with LaTeX; and with
-Plain TeX, say "\input atrans.sty".
-
-
-Support for other languages:
-============================
-
-ArabTeX is primarily intended for writing texts in classical and modern
-Arabic, but it also provides limited support for several other languages
-that are customarily written in the arabic alphabet. The vocalization and
-the transcription cannot generally be expected to be correct, but might
-work by accident.
-
-In order to switch to the conventions for one of these languages, say
-"\setfarsi", "\seturdu", "\setpashto", "\setmaghribi"; "\setarab" is the
-default and can also be used to switch back to the arabic conventions.
-
-- Farsi, Dari:
---------------
-All characters needed for writing Farsi are available by default. The
-short vowels <e> and <o> are mapped to <i> and <u>, the long vowels <E>
-and <O> to <I> and <U>.
-
-The <izafet> connection may be written literally, which may look awkward
-in the case of <h"'>, or always as <-i> (with hyphen); then the correct
-spelling will be determined from the context. Likewise the <yah-i-wahdat>
-can always be written <-I>.
-
-The final <yah> carries no dots.
-
-Farsi uses the Nasta`liq font if available.
-
-- Ottoman: see Farsi.
-----------
-
-- Kurdish: see Farsi.
-----------
-
-- Urdu:
--------
-The additional characters in Urdu are coded as follows:
-
-h always denotes the "two-eyed <hah>"
-,h the "wavy" <hah> letter
-,t <tah> with a small <ttah> accent
-,d <dal> with a small <ttah> accent
-,r <rah> with a small <ttah> accent
-.n <noon> without a dot (modifies a preceding vowel)
-E <yah bari> in the final position, otherwise mapped to <yah>
-O mapped to <U>
-
-The short vowels <e> and <o> are mapped to <a> and <u>.
-
-Note: Some of the given codings also occur in Pashto but with a different
-meaning, see below.
-
-Urdu uses the Nasta`liq font if available.
-
-- Pashto:
----------
-The additional characters for Pashto are coded as follows:
-
-,t <tah> with a small loop
-,d <dal> with a small loop
-,r <rah> with a small loop
-.n <noon> with a small loop
-g <gaf> is written with a small loop instead of a bar
-,z <rah> with one dot above and one below
-,s <sin> with one dot above and one below
-e like <a>, with a <zwarakay> mark if vocalized
-e'i <yah> with <hamza>
-E <yah> with two dots below aligned vertically
-Ey <yah> written with a final stroke
-o mapped to <u>
-O mapped to <U>
-w"' <hamza> on <waw>
-h"' <hamza> on <hah>
-
-The <qur'an alif> accent is not available for Pashto.
-
-The rules for <izafet> and <yah-i-wahdat> apply.
-
-Note: Some of the given codings also occur in Urdu but with a different
-meaning, see above. For writing some words in the Urdu style, write the
-command \seturdu and afterwards switch back to the Pashto conventions by
-\setpashto.
-
-- Maghribi:
------------
-This is just a different writing convention. <fah> is written with one dot
-below the letter, <qaf> with one dot above the normal letter form of
-<fah>. The three dots of <vah> are put below the letter. Otherwise like
-Arabic.
-
-Miscellaneous features:
-=======================
-- As ArabTeX is slow, it will produce some terminal output while running
- to indicate it is still alive. If that is not wanted, say "\quiet" or
- "\tracingarab = 0 " (outside an Arabic Environment). "\tracingarab = 1 "
- will report arabic paragraphs, a value of 2: arabic lines and insertions,
- a value of 3 or more: individual items.
-
-- Whether <yah> in the final position carries dots or not depends on the
- chosen language convention. You can override this by "\yahdots" and
- "\yahnodots".
-
-- To reproduce erroneous or archaic texts exactly as they are, the
- following additional codings are available:
-
- .k <kaf> in final position without a diacritical mark
- .f <fah> without a dot
- .b <bah> without a dot
- .n <noon> without a dot (not available for Pashto)
- Y <alif maqsoura>, <yah> without dots in all positions.
-
-How to move from Version 1 to Version 2:
-========================================
-
-Version 2 is not fully compatible with Version 1; however, moving to the
-new version should cause little problems, and is recommended as version 1
-is no longer supported. Apart from some extensions, most changes were
-introduced in order to better conform to the transliteration standards,
-and to have less compatibility problems with TeX and LaTeX. Further
-versions are expected to be upward compatible if no grave bugs turn up.
-
-The main differences between versions 1 and 2 are:
-
-- The font size has increased, so the document layout may change. The old
- font can no more be used.
-
-- Some arabic characters are now coded differently: <`ain> is denoted by a
- left quote, and <c>, <^z>, <^t>, and <.n> denote different characters
- from what they did before. This was changed in order to better conform
- to the standard transliteration.
-
-- There are a lot more ligatures than before. This normally need not
- concern the user.
-
-- \vocalize will no more generate <sukun> and <wasla> except if explicitly
- indicated by quoting. See \fullvocalize.
-
-- Arabic Environments are always bracketed by the new control sequences
- \begin{arabtext} and \end{arabtext} even if only the transcription is
- wanted.
-
-- Short arabic quotations are now bracketed by \< and > so < has its
- standard TeX meaning.
-
-We recommend converting existent input files to the new notation. If that
-is impractical in special cases, the LaTeX option "oldarabtex" and/or the
-command "\oldarabtex" will switch back to most of the old conventions (and
-problems). This shortcut will probably go away in some future version.
-
-Acknowledgments:
-================
-
-The development of ArabTeX would not have been possible without the
-assistance of many people. Apart from my local team, helpful advice came
-among others from Wolfdietrich Fischer, Ahmed El-Hadi, Abdelsalam Heddaya,
-Iqbal Khan, Tom Koornwinder, Eberhard Krueger, Asif Lakehsar, Jan Lodder,
-Richard Lorch, Eberhard Mattes, and Bernd Raichle. I also have to thank
-the many people who sent bug reports and comments.
-
-Please send bug reports, suggestions and inquiries to the author:
-=================================================================
-
-Prof. Klaus Lagally
-Institut fuer Informatik
-Universitaet Stuttgart
-Breitwiesenstrasse 20-22
-D-70565 Stuttgart
-GERMANY
-
-lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
- Copyright (c) 1990 - 1993, Klaus Lagally
---------------------------------------------------------------------------
-
+arabtex.doc 20.11.1993
+ A r a b T e X Version 3
+ ========================
+------------------------------------------------------------------------
+The introduction below is slightly out of date
+but may be used as a first start.
+------------------------------------------------------------------------
+arabtex.doc 05.11.1992
+ A r a b T e X Version 2
+ ========================
+
+What is ArabTeX?
+================
+
+ArabTeX is a package extending the capabilities of TeX/LaTeX to generate
+the arabic writing from an ASCII transliteration for texts in several
+languages using the arabic script.
+
+It consists of a TeX macro package and an arabic font in several sizes,
+presently only available in the Naskhi style. ArabTeX will run with Plain
+TeX and also with LaTeX; other additions to TeX have not been tried.
+
+ArabTeX is primarily intended for generating the arabic writing, but the
+scientific transcription can be also easily generated. For other languages
+using the arabic script limited support is available.
+
+
+Installing ArabTeX:
+===================
+
+The installation procedure is system dependent. You have to install the
+"nash14" font with its "*.pk" and "*.tfm" files on the font search path of
+your TeX system, and the "*.sty" files and "arabtex.tex" on the source
+search path of your system. Possibly you will have to rename the "*.pk"
+files according to local conventions, and as a last resort you can try to
+recreate the font from the "*.mf" METAFONT sources. Additional fonts if
+available are installed analogously.
+
+
+Activating ArabTeX:
+===================
+
+With Plain TeX, load the ArabTeX macros by "\input arabtex". With LaTeX,
+include the option "arabtex" in the document header. In both cases several
+additional files will be loaded automatically.
+
+ArabTeX defines several additional commands as indicated below, and also a
+large number of internal commands which could lead to storage overflow in
+a small TeX implementation. All internal commands contain an "at" sign <@>
+in their names and thus should not interfere with any user defined
+commands (but possibly with TeX extensions we do not know about).
+
+With Plain TeX, the arabic font is only available at the normal 14 point
+size which ought to cooperate well with the "cm" fonts at 10 points. For
+other sizes, change the "\magnification" or define additional font
+identifiers yourself. To change the default, inspect "arabtex.tex" and
+redefine the "\pnash" command accordingly. With LaTeX, the size changing
+commands will also operate on the arabic font.
+
+
+Input to ArabTeX:
+=================
+
+After activating ArabTeX, your modified TeX/LaTeX system will recognize
+the following items:
+
+- normal TeX/LaTeX text and commands,
+
+- short arabic quotations bracketed by < and >; these must fit on one
+ line of output, and you have to select one of the Arabic writing styles,
+ e.g \setarab, before using this feature. A quotation may also be started
+ with \<.
+
+- longer arabic texts bracketed by \begin{arabtext} and \end{arabtext},
+ called "Arabic Environments" in the sequel.
+
+An Arabic Environment consists of one or several paragraphs separated by
+blank lines or \par commands. Every paragraph and every arabic quotation
+is a sequence of the following kinds of items, separated by blank spaces
+or newlines:
+
+- isolated (legal) special characters, interpreted as the corresponding
+ arabic special character;
+
+- "numbers", character sequences starting with a digit. A "number" will be
+ translated in the normal writing sequence from left to right even if it
+ contains letters and/or special characters;
+
+- "arabic quotes", coded as two left quotes or two right quotes each;
+
+- "words", character sequences starting with a letter or special character
+ followed by a letter. The (coded) characters of a word will in the
+ output be arranged from right to left.
+
+- TeX/LaTeX control sequences WITHOUT parameters. These will be executed
+ immediately.
+
+- ArabTeX control sequences with or without parameters. These will be
+ executed immediately.
+
+- a sequence of items enclosed in curly braces { and }. The output from
+ the constituents will be arranged from right to left and must fit on one
+ output line. As far as TeX is concerned, this is NO group. This feature
+ may not be nested.
+
+Output from all items will be arranged from right to left, lines will be
+broken as necessary.
+
+Inside an Arabic Environment, but NOT in an arabic quotation, you may also
+have:
+
+- short mathematical insertions, bracketed by SINGLE $ signs. They must
+ fit on one output line and are processed as usual;
+
+- short non-arabic text quotations, bracketed by < and >. These must fit
+ on one output line and introduce a new level of grouping, so if they
+ contain any TeX/LaTeX assignments the effects of these will be local.
+
+Control sequences in an Arabic Environment may be of the following kinds:
+
+- ArabTeX option changing commands. These may also be used outside an
+ Arabic Environment and generally have a global effect;
+
+- \\ for a new line;
+
+- \par (or a blank line) for a new paragraph, \noindent for a new paragraph
+ without indentation (NOT in arabic quotations);
+
+- \emphasize <item> will put a bar over the next <item>;
+
+- \setnash, \setnashbf, \setnastaliq font selection commands, see below;
+
+- size changing LaTeX commands like \large etc., only if you use LaTeX;
+
+- most other TeX/LaTeX commands make no sense in an Arabic Environment.
+
+- you MUST NOT nest another LaTeX environment inside an Arabic Environment
+ (except possibly display math which we did not test, and might work);
+
+- if you really need to use a control sequence with parameters, define a
+ new TeX macro or enclose the whole construct in curly braces { and }.
+
+
+Font selection:
+===============
+
+For space economy, only the Naskh font is available by default. With LaTeX,
+additional fonts can be loaded by the document style options "nashbf"
+and/or "nastaliq" (when available). Users of Plain TeX can load and define
+suitable fonts themselves.
+
+The following font selection commands are available:
+
+- \setnash (default) selects the Naskh font.
+
+- \setnashbf selects a bold-face version of Naskh.
+
+- \setnastaliq selects the Nastaliq font.
+
+If a font is not available or has not been loaded, the corresponding
+command will select the default font.
+
+With LaTeX, the size changing commands will also operate on the additional
+fonts.
+
+
+Input coding:
+=============
+
+The ASCII input notation for arabic text is modelled closely after the
+transliteration standards ISO/R 233 and DIN 31 635. As these standards do
+not guarantee unique re-transliteration and are also not ASCII compatible,
+some modifications were necessary. These follow the general rules:
+
+- if the transliteration uses a single letter, code that letter;
+
+- if the transliteration uses a letter with a diacritical mark, put a
+ special character similar to the diacritical mark BEFORE the letter.
+
+Standard arabic and persian characters:
+---------------------------------------
+
+b bah | d dal | .s ssad | f fah | h hah | ' hamza
+t tah | _d dhal | .d ddad | q qaf | w waw | N tanween
+_t thah | r rah | .t ttah | k kaf | y yah | Y alif maqsoura
+^g geem | z zay | .z tthah | l lam | g gaf | _A alif maqsoura
+.h hhah | s seen | ` `ain | m meem | p pah | T tah marbouta
+_h khah | ^s sheen | .g ghain | n noon | v vah | W waw (see below)
+
+Additional characters generally available:
+------------------------------------------
+
+c hhah with hamza
+^c gim with three dots (below)
+,c khah with three dots (above)
+^z zay with three dots (above)
+~n kaf with three dots (Ottoman)
+~l law with a bow accent (Kurdish)
+~r rah with two bows (Kurdish)
+
+See also "Urdu" and "Pashto" below.
+
+Additional coding rules:
+------------------------
+
+- For long vowels, use capital letters <A>, <I>, <U>, or <_a>, <_i>, <_u>.
+
+- As the transliteration is ambiguous, use <T> for <tah marbouta>,
+ <N> for <tanween>, <Y> or <_A> for <alif maqsoura>.
+
+- Short vowels <a>, <i>, <u> need not generally be written except in the
+ following cases:
+ - at the beginning of a word where they generate <alif>,
+ - adjacent to <hamza> where they will influence the carrier,
+ - when the transcription is wanted,
+ - in \fullvocalize mode.
+
+- <hamza> is denoted by a single RIGHT quote; its carrier will be
+ determined from the context according to the rules for writing arabic
+ words. If that is not wanted, "quote" it (see below).
+
+- <`ain> is a single LEFT quote, don't confuse it with <hamza>!
+
+- <madda> is generated by a right quote (<hamza>) before <A>: <'A>.
+
+- The "invisible letter" <|> may be inserted in order to break unwanted
+ ligatures and to influence the <hamza> writing. It will not show in the
+ arabic output or in the transcription.
+
+- <tashdid> is indicated by doubling the appropriate letter.
+
+- The article is always written <al-> (with hyphen!).
+
+- Hyphens <-> may be used freely, and generally do not change the writing,
+ but will show up in the transcription. At the beginning and the end of a
+ word they enforce the use of the connection form of the adjacent letter
+ (if it exists), like e.g. in the date <1400 h->.
+
+- A double hyphen <--> between two otherwise joining letters will break
+ any ligature and will insert a horizontal stroke (<tatweel>, <kashida>)
+ without appearing in the transcription. It may be used repeatedly.
+
+
+Quoting:
+========
+
+A double quote <"> will modify the meaning of the following character as
+follows:
+
+- if a short vowel follows, the appropriate diacritical mark <fatha>,
+ <kasra>, <damma> will be put on the preceding character even if the
+ vocalization is off otherwise. If <N> follows the short vowel, the
+ appropriate form of <tanween> will be generated instead. At the
+ beginning of a word, <alif> is assumed as the first character. If the
+ previous word ended with a vowel, <wasla> is generated instead of the
+ vowel indicator.
+
+- if the following character is a single right quote, a <hamza> mark will
+ be put on the preceding character even if in conflict with the <hamza>
+ rules.
+
+- if the following character is the "invisible letter" <|>, the connection
+ between the adjacent letters will be broken and a small space inserted.
+
+- otherwise: a <sukun> will be put on the preceding character. The
+ following character will be processed again.
+
+The double quote will not show up in the transcription.
+
+
+Ligatures:
+==========
+
+There is no way to explicitly indicate ligatures as a large number of them
+are generated automatically. Any unwanted ligature can be suppressed by
+interposing the invisible letter <|> between the two letters otherwise
+combined into a ligature. After "\ligsfalse" ligatures in the middle of a
+word will not normally be produced; for some texts this looks better. You
+can return to the normal strategy by "\ligstrue".
+
+
+Vocalization:
+=============
+
+There are three modes of rendering short vowels:
+
+\fullvocalize:
+ - every short vowel will generate the corresponding diacritic mark
+ <fatha>, <kasra>, <damma>.
+
+ - If <N> follows a short vowel, the corresponding form of <tanween> is
+ generated instead.
+
+ - <_a> will produce a <qur'an alif> accent instead of an explicit
+ <alif> character which is coded <A>.
+
+ - if a long vowel follows a consonant, the corresponding short vowel is
+ implied. The long vowel itself carries no diacritical mark.
+
+ - if no vowel is given after a consonant, <sukun> will be generated
+ except if a double "sun letter" follows <lam>.
+
+ - <alif> at the beginning of a word carries <wasla> instead of the vowel
+ indicator if the preceding word ended with a vowel.
+
+\vocalize: as above, but <sukun> and <wasla> will not be generated except
+ if explicitly indicated by "quoting".
+
+\novocalize: no diacritics will be generated except if explicitly asked for
+ by "quoting".
+
+In all modes, a double consonant will generate <tashdid>, and <'A> always
+generates <madda> on <alif>. After <aN> the silent <alif> character is
+generated if necessary. The silent <alif> may also be explicitly indicated
+by <aNa> or <aNA>, or coded literally as <A> in \novocalize mode. If a
+silent <alif maqsoura> is wanted instead, write <aNY>, <aN_A>, <Y> or <_A>.
+A silent <alif> after <waw> is indicated by <Ua>, <UA> or <Wa>, <WA> (with
+a capital <W>!).
+
+
+Transcription:
+==============
+
+In addition to the arabic writing, the standard scientific transcription
+may also be obtained from a fully vocalized input text. This is indicated
+by "\transtrue" and may be switched off again by "\transfalse". If ONLY
+the transcription is wanted, you can deactivate the arabic writing by
+"\arabfalse"; it can be reactivated by "\arabtrue". If both modes are
+active their output will be interleaved line by line.
+
+The transcription mode assumes that the input text is in the Arabic
+language and has been coded according to the rules given above. For words
+from other languages the transcription might be in error. For Arabic text,
+the following special cases are handled:
+
+- after the article, a double consonant will be assimilated;
+
+- an initial vowel will be omitted if the preceding word ended with a
+ vowel. If that is not wanted start with <hamza>.
+
+- a silent <alif> or <alif maqsoura> after <N> (<tanwin>) and <U> is
+ omitted in the transcription. The same happens after <waw> if it is
+ written <W>.
+
+For space economy, the transcription module is NOT loaded by default. If
+you want to use it, add the style option "atrans" with LaTeX; and with
+Plain TeX, say "\input atrans.sty".
+
+
+Support for other languages:
+============================
+
+ArabTeX is primarily intended for writing texts in classical and modern
+Arabic, but it also provides limited support for several other languages
+that are customarily written in the arabic alphabet. The vocalization and
+the transcription cannot generally be expected to be correct, but might
+work by accident.
+
+In order to switch to the conventions for one of these languages, say
+"\setfarsi", "\seturdu", "\setpashto", "\setmaghribi"; "\setarab" is the
+default and can also be used to switch back to the arabic conventions.
+
+- Farsi, Dari:
+--------------
+All characters needed for writing Farsi are available by default. The
+short vowels <e> and <o> are mapped to <i> and <u>, the long vowels <E>
+and <O> to <I> and <U>.
+
+The <izafet> connection may be written literally, which may look awkward
+in the case of <h"'>, or always as <-i> (with hyphen); then the correct
+spelling will be determined from the context. Likewise the <yah-i-wahdat>
+can always be written <-I>.
+
+The final <yah> carries no dots.
+
+Farsi uses the Nasta`liq font if available.
+
+- Ottoman: see Farsi.
+----------
+
+- Kurdish: see Farsi.
+----------
+
+- Urdu:
+-------
+The additional characters in Urdu are coded as follows:
+
+h always denotes the "two-eyed <hah>"
+,h the "wavy" <hah> letter
+,t <tah> with a small <ttah> accent
+,d <dal> with a small <ttah> accent
+,r <rah> with a small <ttah> accent
+.n <noon> without a dot (modifies a preceding vowel)
+E <yah bari> in the final position, otherwise mapped to <yah>
+O mapped to <U>
+
+The short vowels <e> and <o> are mapped to <a> and <u>.
+
+Note: Some of the given codings also occur in Pashto but with a different
+meaning, see below.
+
+Urdu uses the Nasta`liq font if available.
+
+- Pashto:
+---------
+The additional characters for Pashto are coded as follows:
+
+,t <tah> with a small loop
+,d <dal> with a small loop
+,r <rah> with a small loop
+.n <noon> with a small loop
+g <gaf> is written with a small loop instead of a bar
+,z <rah> with one dot above and one below
+,s <sin> with one dot above and one below
+e like <a>, with a <zwarakay> mark if vocalized
+e'i <yah> with <hamza>
+E <yah> with two dots below aligned vertically
+Ey <yah> written with a final stroke
+o mapped to <u>
+O mapped to <U>
+w"' <hamza> on <waw>
+h"' <hamza> on <hah>
+
+The <qur'an alif> accent is not available for Pashto.
+
+The rules for <izafet> and <yah-i-wahdat> apply.
+
+Note: Some of the given codings also occur in Urdu but with a different
+meaning, see above. For writing some words in the Urdu style, write the
+command \seturdu and afterwards switch back to the Pashto conventions by
+\setpashto.
+
+- Maghribi:
+-----------
+This is just a different writing convention. <fah> is written with one dot
+below the letter, <qaf> with one dot above the normal letter form of
+<fah>. The three dots of <vah> are put below the letter. Otherwise like
+Arabic.
+
+Miscellaneous features:
+=======================
+- As ArabTeX is slow, it will produce some terminal output while running
+ to indicate it is still alive. If that is not wanted, say "\quiet" or
+ "\tracingarab = 0 " (outside an Arabic Environment). "\tracingarab = 1 "
+ will report arabic paragraphs, a value of 2: arabic lines and insertions,
+ a value of 3 or more: individual items.
+
+- Whether <yah> in the final position carries dots or not depends on the
+ chosen language convention. You can override this by "\yahdots" and
+ "\yahnodots".
+
+- To reproduce erroneous or archaic texts exactly as they are, the
+ following additional codings are available:
+
+ .k <kaf> in final position without a diacritical mark
+ .f <fah> without a dot
+ .b <bah> without a dot
+ .n <noon> without a dot (not available for Pashto)
+ Y <alif maqsoura>, <yah> without dots in all positions.
+
+How to move from Version 1 to Version 2:
+========================================
+
+Version 2 is not fully compatible with Version 1; however, moving to the
+new version should cause little problems, and is recommended as version 1
+is no longer supported. Apart from some extensions, most changes were
+introduced in order to better conform to the transliteration standards,
+and to have less compatibility problems with TeX and LaTeX. Further
+versions are expected to be upward compatible if no grave bugs turn up.
+
+The main differences between versions 1 and 2 are:
+
+- The font size has increased, so the document layout may change. The old
+ font can no more be used.
+
+- Some arabic characters are now coded differently: <`ain> is denoted by a
+ left quote, and <c>, <^z>, <^t>, and <.n> denote different characters
+ from what they did before. This was changed in order to better conform
+ to the standard transliteration.
+
+- There are a lot more ligatures than before. This normally need not
+ concern the user.
+
+- \vocalize will no more generate <sukun> and <wasla> except if explicitly
+ indicated by quoting. See \fullvocalize.
+
+- Arabic Environments are always bracketed by the new control sequences
+ \begin{arabtext} and \end{arabtext} even if only the transcription is
+ wanted.
+
+- Short arabic quotations are now bracketed by \< and > so < has its
+ standard TeX meaning.
+
+We recommend converting existent input files to the new notation. If that
+is impractical in special cases, the LaTeX option "oldarabtex" and/or the
+command "\oldarabtex" will switch back to most of the old conventions (and
+problems). This shortcut will probably go away in some future version.
+
+Acknowledgments:
+================
+
+The development of ArabTeX would not have been possible without the
+assistance of many people. Apart from my local team, helpful advice came
+among others from Wolfdietrich Fischer, Ahmed El-Hadi, Abdelsalam Heddaya,
+Iqbal Khan, Tom Koornwinder, Eberhard Krueger, Asif Lakehsar, Jan Lodder,
+Richard Lorch, Eberhard Mattes, and Bernd Raichle. I also have to thank
+the many people who sent bug reports and comments.
+
+Please send bug reports, suggestions and inquiries to the author:
+=================================================================
+
+Prof. Klaus Lagally
+Institut fuer Informatik
+Universitaet Stuttgart
+Breitwiesenstrasse 20-22
+D-70565 Stuttgart
+GERMANY
+
+lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 1993, Klaus Lagally
+--------------------------------------------------------------------------
+
diff --git a/language/arabic/arabtex/doc/txt/arabtex.faq b/language/arabic/arabtex/doc/txt/arabtex.faq
index 50c49fda33..db0f27fd5a 100644
--- a/language/arabic/arabtex/doc/txt/arabtex.faq
+++ b/language/arabic/arabtex/doc/txt/arabtex.faq
@@ -1,67 +1,53 @@
-arabtex.faq 17.11.1993
- What ArabTeX is NOT
- ===================
-
-From some enquiries following the release of ArabTeX Version 1 we learned
-there are many possible misconceptions about what ArabTeX can and cannot
-do. ArabTeX is
-
-- NOT a convenient, simple text system for everyday use. As with TeX and
- LaTeX, it needs some practicing to work with it efficiently, and you
- have to understand what you are writing.
-
-- NOT a WYSIWYG system. You need some text editor to produce the ASCII
- input file it reads, and you have to format your document off-line in
- order to look at its final form. However, the input should be fairly
- readable, and you can make a good guess what the output it produces will
- look like.
-
-- NOT a preprocessor to produce input for TeX. It will directly extend
- your TeX system's capabilities IFF your TeX system can be extended by
- loading additional macros and fonts, AND is large enough not to
- overflow.
-
-- NOT a substitute for a calligrapher. A competent human will do a much
- better job, as also will a good printing shop. However, we found not all
- printing shops are good, and at least outside the arabic world a good
- calligrapher is hard to find.
-
-- NOT an automatic translator between Arabic and any other language. That
- possibility is probably still very far off. However, ArabTeX may help
- you by observing numerous schematic rules about writing, transliteration
- and transcription of Arabic text.
-
-- NOT using any Artificial Intelligence techniques. The rules it observes
- are frozen into its algorithm, and as there are many rules and special
- cases, it is complicated (and slow).
-
-- NOT depending on special hardware and/or a special keyboard. It will run
- on any PC or work station in conjunction with a TeX implementation that
- is easily extensible and large enough.
-
-- NOT perfect and not free of errors (alas!). We will consider any bug
- report and any suggestion for new features and other changes. However,
- we cannot promise to fix every bug as our resources (primarily time) are
- limited, and we reserve the right to use our own judgment concerning
- possible changes.
-
-- NOT particularly efficient up to now. We concentrated on getting it
- running correctly first, and tuning should (and will) come later. There
- is ample opportunity for improvements but they could take some time.
-
-- NOT terribly expensive. In fact, it is free for scientific and strictly
- private, noncommercial use. For commercial purposes you need a license
- agreement; inquire at the author's address.
-
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
-
---------------------------------------------------------------------------
- Copyright (c) 1990 - 1993, Klaus Lagally
---------------------------------------------------------------------------
+arabtex.faq 06.08.2022
+ What ArabTeX is NOT
+ ===================
+
+From some enquiries following the release of ArabTeX Version 1 we learned
+there are many possible misconceptions about what ArabTeX can and cannot
+do. ArabTeX is
+
+- NOT a convenient, simple text system for everyday use. As with TeX and
+ LaTeX, it needs some practicing to work with it efficiently, and you
+ have to understand what you are writing.
+
+- NOT a WYSIWYG system. You need some text editor to produce the ASCII
+ input file it reads, and you have to format your document off-line in
+ order to look at its final form. However, the input should be fairly
+ readable, and you can make a good guess what the output it produces will
+ look like.
+
+- NOT a preprocessor to produce input for TeX. It will directly extend
+ your TeX system's capabilities IFF your TeX system can be extended by
+ loading additional macros and fonts, AND is large enough not to
+ overflow.
+
+- NOT a substitute for a calligrapher. A competent human will do a much
+ better job, as also will a good printing shop. However, we found not all
+ printing shops are good, and at least outside the arabic world a good
+ calligrapher is hard to find.
+
+- NOT an automatic translator between Arabic and any other language. That
+ possibility is probably still very far off. However, ArabTeX may help
+ you by observing numerous schematic rules about writing, transliteration
+ and transcription of Arabic text.
+
+- NOT using any Artificial Intelligence techniques. The rules it observes
+ are frozen into its algorithm, and as there are many rules and special
+ cases, it is complicated (and slow).
+
+- NOT depending on special hardware and/or a special keyboard. It will run
+ on any PC or work station in conjunction with a TeX implementation that
+ is easily extensible and large enough.
+
+- NOT perfect and not free of errors (alas!). We will consider any bug
+ report and any suggestion for new features and other changes. However,
+ we cannot promise to fix every bug as our resources (primarily time) are
+ limited, and we reserve the right to use our own judgment concerning
+ possible changes.
+
+- NOT particularly efficient up to now. We concentrated on getting it
+ running correctly first.
+
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2022, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/doc/txt/arwindoc.tex b/language/arabic/arabtex/doc/txt/arwindoc.tex
index 94549cb437..58f6e0e7a1 100644
--- a/language/arabic/arabtex/doc/txt/arwindoc.tex
+++ b/language/arabic/arabtex/doc/txt/arwindoc.tex
@@ -1,118 +1,118 @@
-% arwindoc.tex
-% 9 Apr 1997
-%
-\documentclass[12pt]{article}
-\usepackage{arabtex}
-
-\begin {document}
-
-
-\begin{table}[htbp]
-\begin{center}
-\novocalize \setarab
-\small \tabcolsep 4.5pt
-
-\def \sun {% sun symbol
-\unitlength 0.2em
-\begin{picture}(4,4)(-1.4,-1.2)
-\put(0.6,0.2){\circle{1.6}}
-\put(+1.0,+1.0){.} \put(+1.0,-1.0){.}
-\put(-1.0,-1.0){.} \put(-1.0,+1.0){.}
-\put(+0.8,+0.8){.} \put(+0.8,-0.8){.}
-\put(-0.8,-0.8){.} \put(-0.8,+0.8){.}
-\end{picture}}
-
-\def \mc #1{\multicolumn{2}{c|}{#1}}
-
-
-\begin{tabular}
-{|c||@{}c@{}|@{}c@{}|c|@{}c@{}|@{}c@{}|c|c|c|c|c|c|@{}c@{}|c|c|c|c|@{}c@{%
-\vrule height 15pt depth 9pt width 0pt}||}
-\hline
- & 00& 01& 02&\mc{03}&04&05 &06&07&08&09&10&11&12& 13 & 14 & 15 \\
-\hline
-\hline
-00 &NUL&DLE&SP &0& \<0> &@& P & ` & p && &NSP& & & \<_d> & & \<|B"aN> \\
-\hline
-01 &SOH&DC1&! &1& \<1> &A& Q & a & q &&&\<,> && \<-'> & \<r> & \<l> & \<|B"uN> \\
-\hline
-02 &STX&DC2&" &2& \<2> &B& R & b & r &&&&& \<'A> & \<z> & & \<|B"iN> \\
-\hline
-03 &ETX&DC3&\# &3& \<3> &C& S & c & s &&&&& \<'a> & \<s> & \<m> & \<|B"a> \\
-\hline
-04 &EOT&DC4&\$ &4& \<4> &D& T & d & t &&&&&\<w"'>& \<^s> & \<n> & \\
-\hline
-05 &ENQ&NAK&\% &5& \<5> &E& U & e & u &&&&& \<'i> & \<.s> & \<h> & \<|B"u> \\
-\hline
-06 &ACK&SYN&\& &6& \<6> &F& V & f & v &&&&& \<Y"'->& \<.d> & \<w> & \<|B"i> \\
-\hline
-07 &BEL&ETB& ' &7& \<7> &G& W & g & w &&&&& \<a> & & & \\
-\hline
-08 &BS &CAN& ) &8& \<8> &H& X & h & x &&&&& \<b> & \<.t> & & \<|BB> \\
-\hline
-09 &HT &EM & ( &9& \<9> &I& Y & i & y &&&&& \<T> & \<.z> & & \\
-\hline
-10 &LF &SUB&$*$&\mc{:} &J& Z & j & z &&&&\<;>& \<t> & \<`> & & \<|B"> \\
-\hline
-11 &VT &ESC&$+$&\mc{;} &K&\verb"]"&k&\verb"}"&&&&&\<_t>&\<.g>& & \\
-\hline
-12 &FF &IS4& , &\mc{$>$}&L&\verb"\"&l&\verb"|"&&&& &\<^g>&\<B|B|B> & \<Y> & \\
-\hline
-13 &CR &IS3&$-$&\mc{$=$}&M&\verb"["&m&\verb"{"&&&SHY& &\<.h>& \<f> & \<y> & \\
-\hline
-14 &SO &IS2& . &\mc{$<$}&N&\verb"^"&n&\verb"~"& & & & &\<_h>&\<q>& & \\
-\hline
-15 &SI &IS1& / &\mc{?} &O&\verb"_"&o& & & & & \<?> &\<d> &\<k>& &DEL\\
-\hline
-\end{tabular}
-\end{center}
-%\caption{MS Windows with arabic support code table}\label{awin}
-\caption{MS Arabic Windows code table (CP 1256)}\label{awin}
-\end{table}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-The file \verb"arabwin.sty" contains a reading module for the
-{\em MS-Windows with arabic support} code.
-It is installed by the \LaTeX\ option \verb"arabwin"
-or by \verb"\input arabwin.sty".
-The module is activated by \verb"\setcode {arabwin}";
-all following Arabic text will be considered to be coded according to
-the {\em MS-Windows with arabic support} standard.
-The ArabTeX notation may be reactivated by \verb"\setcode {arabtex}".
- \index{code!MS-Windows}
- \index{MS-Windows}
- \index{code!8-bit}
- \index{\setcode{arabwin}}
- \index{\setcode{arabtex}}
-
-The {\em MS-Windows with arabic support} code (see Table \ref{awin})
-is an 8-bit code closely related both to 7-bit ASCII;
-whereas the lower 128 positions are identical to
-ASCII (ISO 646), some of the upper 128 positions contain the Arabic characters
-plus additional graphic and control characters.
- \index{code!ASCII}
-
-We reuse the ASMO 449
-reading routines, after suitable modification of the input.
-This only works correctly if the input text does not contain
-genuine ASCII letters, as we
-project the Arabic characters onto their locations in ASMO 449.
-Please note that only the characters that appear in Table \ref{awin}
-are correctly processed.
-Some of the code switching messages in the log file are spurious;
-do not worry.
-
-The notes on vowelization and transliteration of ASMO 449 apply also.
-
-The driver file indicated for ASMO 449 will be usable after the
-obvious modifications; however, your \TeX\ installation must be
-capable of processing 8-bit data input.
-This is nowadays usually the case; otherwise you can try to
-locally find some utility program that will strip the highest order bit
-off the characters in your file, and process the result via ASMO 449.
-
-\end {document}
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+% arwindoc.tex
+% 9 Apr 1997
+%
+\documentclass[12pt]{article}
+\usepackage{arabtex}
+
+\begin {document}
+
+
+\begin{table}[htbp]
+\begin{center}
+\novocalize \setarab
+\small \tabcolsep 4.5pt
+
+\def \sun {% sun symbol
+\unitlength 0.2em
+\begin{picture}(4,4)(-1.4,-1.2)
+\put(0.6,0.2){\circle{1.6}}
+\put(+1.0,+1.0){.} \put(+1.0,-1.0){.}
+\put(-1.0,-1.0){.} \put(-1.0,+1.0){.}
+\put(+0.8,+0.8){.} \put(+0.8,-0.8){.}
+\put(-0.8,-0.8){.} \put(-0.8,+0.8){.}
+\end{picture}}
+
+\def \mc #1{\multicolumn{2}{c|}{#1}}
+
+
+\begin{tabular}
+{|c||@{}c@{}|@{}c@{}|c|@{}c@{}|@{}c@{}|c|c|c|c|c|c|@{}c@{}|c|c|c|c|@{}c@{%
+\vrule height 15pt depth 9pt width 0pt}||}
+\hline
+ & 00& 01& 02&\mc{03}&04&05 &06&07&08&09&10&11&12& 13 & 14 & 15 \\
+\hline
+\hline
+00 &NUL&DLE&SP &0& \<0> &@& P & ` & p && &NSP& & & \<_d> & & \<|B"aN> \\
+\hline
+01 &SOH&DC1&! &1& \<1> &A& Q & a & q &&&\<,> && \<-'> & \<r> & \<l> & \<|B"uN> \\
+\hline
+02 &STX&DC2&" &2& \<2> &B& R & b & r &&&&& \<'A> & \<z> & & \<|B"iN> \\
+\hline
+03 &ETX&DC3&\# &3& \<3> &C& S & c & s &&&&& \<'a> & \<s> & \<m> & \<|B"a> \\
+\hline
+04 &EOT&DC4&\$ &4& \<4> &D& T & d & t &&&&&\<w"'>& \<^s> & \<n> & \\
+\hline
+05 &ENQ&NAK&\% &5& \<5> &E& U & e & u &&&&& \<'i> & \<.s> & \<h> & \<|B"u> \\
+\hline
+06 &ACK&SYN&\& &6& \<6> &F& V & f & v &&&&& \<Y"'->& \<.d> & \<w> & \<|B"i> \\
+\hline
+07 &BEL&ETB& ' &7& \<7> &G& W & g & w &&&&& \<a> & & & \\
+\hline
+08 &BS &CAN& ) &8& \<8> &H& X & h & x &&&&& \<b> & \<.t> & & \<|BB> \\
+\hline
+09 &HT &EM & ( &9& \<9> &I& Y & i & y &&&&& \<T> & \<.z> & & \\
+\hline
+10 &LF &SUB&$*$&\mc{:} &J& Z & j & z &&&&\<;>& \<t> & \<`> & & \<|B"> \\
+\hline
+11 &VT &ESC&$+$&\mc{;} &K&\verb"]"&k&\verb"}"&&&&&\<_t>&\<.g>& & \\
+\hline
+12 &FF &IS4& , &\mc{$>$}&L&\verb"\"&l&\verb"|"&&&& &\<^g>&\<B|B|B> & \<Y> & \\
+\hline
+13 &CR &IS3&$-$&\mc{$=$}&M&\verb"["&m&\verb"{"&&&SHY& &\<.h>& \<f> & \<y> & \\
+\hline
+14 &SO &IS2& . &\mc{$<$}&N&\verb"^"&n&\verb"~"& & & & &\<_h>&\<q>& & \\
+\hline
+15 &SI &IS1& / &\mc{?} &O&\verb"_"&o& & & & & \<?> &\<d> &\<k>& &DEL\\
+\hline
+\end{tabular}
+\end{center}
+%\caption{MS Windows with arabic support code table}\label{awin}
+\caption{MS Arabic Windows code table (CP 1256)}\label{awin}
+\end{table}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The file \verb"arabwin.sty" contains a reading module for the
+{\em MS-Windows with arabic support} code.
+It is installed by the \LaTeX\ option \verb"arabwin"
+or by \verb"\input arabwin.sty".
+The module is activated by \verb"\setcode {arabwin}";
+all following Arabic text will be considered to be coded according to
+the {\em MS-Windows with arabic support} standard.
+The ArabTeX notation may be reactivated by \verb"\setcode {arabtex}".
+ \index{code!MS-Windows}
+ \index{MS-Windows}
+ \index{code!8-bit}
+ \index{\setcode{arabwin}}
+ \index{\setcode{arabtex}}
+
+The {\em MS-Windows with arabic support} code (see Table \ref{awin})
+is an 8-bit code closely related both to 7-bit ASCII;
+whereas the lower 128 positions are identical to
+ASCII (ISO 646), some of the upper 128 positions contain the Arabic characters
+plus additional graphic and control characters.
+ \index{code!ASCII}
+
+We reuse the ASMO 449
+reading routines, after suitable modification of the input.
+This only works correctly if the input text does not contain
+genuine ASCII letters, as we
+project the Arabic characters onto their locations in ASMO 449.
+Please note that only the characters that appear in Table \ref{awin}
+are correctly processed.
+Some of the code switching messages in the log file are spurious;
+do not worry.
+
+The notes on vowelization and transliteration of ASMO 449 apply also.
+
+The driver file indicated for ASMO 449 will be usable after the
+obvious modifications; however, your \TeX\ installation must be
+capable of processing 8-bit data input.
+This is nowadays usually the case; otherwise you can try to
+locally find some utility program that will strip the highest order bit
+off the characters in your file, and process the result via ASMO 449.
+
+\end {document}
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/doc/txt/changes.txt b/language/arabic/arabtex/doc/txt/changes.txt
index a82914b6e9..9bb3a84f31 100644
--- a/language/arabic/arabtex/doc/txt/changes.txt
+++ b/language/arabic/arabtex/doc/txt/changes.txt
@@ -1,2074 +1,2074 @@
-CHANGES.TXT 23.10.2003
---------------------------------------------------------------------------
- ArabTeX Version 3
- =================
---------------------------------------------------------------------------
- NOTE: Version management:
-
- - We distinguish major versions "m.00", minor versions "m.nn-"
- with nn > 0, and patch versions "m.nnx" where "x" is a letter.
-
- - to update from an older major version: reinstall completely.
-
- - to update from an older minor version: replace the contents of
- "TEXINPUT" and, if so indicated, "REPORT". Replace the fonts
- only if so indicated explicitly.
-
- - to update to a newer patch version: replace the ASCII file
- "apatch.sty" and, if you use Hebrew, "hepatch.sty". These files
- are distributed as unpacked text files, and will be applied
- automatially whenever starting ArabTeX.
-
- - Patch versions within the same minor version are cumulative, so
- a newer patch will encompass all earlier versions.
-
- - To back out from a patch version, replace "apatch.sty" by an
- earlier version (within the same minor version only!) if still
- locally available, or else edit out the current additions from
- "apatch.sty" and, if applicable, "hepatch.sty" (save a copy
- first!). Also please inform the author why you backed out.
-
- - There is no provision to return gracefully to earlier minor or
- even major versions. We can make them available on request, but
- you should have good reasons, and there will be no support.
-
---------------------------------------------------------------------------
-23.10.2003: Version 3.11d
-
- Fixes:
-
- - In the Arabic document classes, the formatting of the table
- of contents was improved. A strange bug was corrected.
-
- - A storage leak was found which prevented the formatting of
- longer documents, leading to 'save stack overflow'.
-
- - A bug in the ligatures module was found which used to produce
- bogus messages 'missing letter y in font xnsh14' and to
- slightly interfere with correct vowelization.
-
- - A bug in the output module was found which used to produce
- bogus messages 'underfull vbox while \output was active'.
- The fix might slightly influence page breaking.
-
- New features:
-
- - There is now limited support for Arabized LyX.
- Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
- available for ArabTeX, all special font variants are presently
- mapped into 'bold face'. This could be changed at the user's
- request; please send any suggestions to the author.
-
- - The messages in the LOG file are less verbose now.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.2003: Version 3.11c
-
- Fixes:
-
- - in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
-
- New features:
-
- - Hebrew mode provides a new command \setjudarab to activate
- an experimental Judaeo-Arabic mode. Input is supposed to be
- Arabic in the standard transliteration encoding (other modes
- might work by accident), output is an extended Hebrew writing
- in the chosen Hebrew font, and the standard transliteration
- when activated. Arabic vowels are presently not provided; the
- Hebrew vowels work but are presumably of no use.
-
- Caution: The new mode can be expected to contain errors. We
- do not know the exact writing conventions, and have no access
- to any relevant literature. Scholars in the field are urged
- to contact the author. Comments and suggestions are invited.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-08.09.2003: Version 3.11b
-
- Fixes:
-
- - the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Some of the remaining bugs have been fixed.
-
- - Hebrew Plain mode works again. To use it, download the new
- version of 'hebtex.tex'(!), the Hebrew Plain driver. The
- corrections cannot be handled by "apatch.sty" alone.
-
- New features:
-
- - ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
- mode.
-
- Installation:
-
- - download "apatch.sty".
-
- - in case you are using the Hebrew Plain mode (and only then)
- also download the new version of the driver module "hebtex.tex"
- (not "hebtex.sty"!)
-
---------------------------------------------------------------------------
-27.08.2003: Version 3.11a
-
- Fixes:
-
- - the 'hanging heh' in Urdu mode has been fixed.
-
- - the selection of fonts in Arabic and Hebrew mode has been
- drastically changed, and several logical errors have been
- eliminated. Hopefully there are not too many new bugs.
-
- - Hebrew Plain mode should work again. If you are not directly
- concerned, forget it; tests are going on. The necessary
- corrections cannot be handled by "apatch.sty" alone, see the
- remarks below.
-
- Installation:
-
- - download "apatch.sty".
-
- - in case you are using the Hebrew Plain mode (and only then)
- also download the new version of the driver module "hebtex.tex"
- (not "hebtex.sty"!)
-
---------------------------------------------------------------------------
-22.08.2002: Version 3.11
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - Distribution and modification of ArabTeX is now governed by
- the Latex Project Public License (see LPPL.TXT).
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - In Hebrew mode, all standard fonts available on CTAN are now
- supported, including the possibility of generating vowel points
- in \vocalize mode.
-
- Bugs:
-
- - Hebrew Plain TeX mode is currently broken.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-23.04.2003: Version 3.10k
-
- Fixes:
-
- - some glitches in Farsi mode were fixed.
-
- - in Uighuric mode, some transcriptions were missing.
-
- - in Urdu mode, final 'wavy hah' is generated now.
-
- New features:
-
- - in Uighuric mode, <:s> produces 'sin' with three dots below.
- <A> produces 'alif' with 'madda', so does <^A>.
-
- - in Farsi mode and its descendants, 'kasra' on a double letter
- will be positioned below the letter instead of below the
- 'shadda' mark. This feature will later become an option.
-
- - the internal test mode is less verbose. This need not concern
- normal users.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-16.11.2002: Version 3.10j
-
- Fixes:
-
- - the handling of 'ayin' in Hebrew mode was improved.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-14.11.2002: Version 3.10i
-
- Fixes:
-
- - "matres lectionis" in Hebrew work better.
-
- - Version 3.10h was broken on some servers!
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-28.08.2002: Version 3.10h
-
- Fixes:
-
- - The math command \cap was broken.
-
- - Line breaking of Roman insertions within Arabic mode seems to
- work correctly now.
-
- New features:
-
- - There is formally a new language mode \setbalut for Balochy.
- Presently it is mapped to \setpashto but will be extended as
- soon as the exact writing rules are known.
-
- - The command \cond #1{#2}{#3}\fi will expand to either #2 or #3
- depending on the TeX conditional #1. It is nearly equivalent
- to #1 #2\else #3\fi but may also be used in Arabic mode. The
- command is skippable and fully expandable.
-
- - \endinput may occur in Arabic mode.
-
- - The input character <G> encodes Pashto 'gAf' with a ring. In
- Farsi and Pashto mode, <g> produces Farsi 'gAf' with a stroke.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-16.06.2002: Version 3.10g
-
- Fixes:
-
- - in Pashto mode, <.n> will produce 'noon' with a dot and a ring.
- Some further Pashto codes can be found in Table 4.2.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-11.05.2002: Version 3.10f
-
- Fixes:
-
- - in Persian mode, some bugs concerning 'hamze on he' were fixed.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-14.04.2002: Version 3.10e
-
- Fixes:
-
- - in the standard Hebrew transcription, 'shwa' was missing.
-
- - in Persian mode, 'hamze on he' is produced if required.
-
- - in Hebrew mode using the 'hclassic' and 'hcaption' fonts, the
- vowel points are generated differently to render better when
- using T1 fonts.
-
- - in CP1256 encoding, explicit 'shadda' works now correctly.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-07.03.2002: Version 3.10d
-
- Fixes:
-
- - In many of the non-standard encodings the handling of double
- letters (implicit shadda or not) has been corrected.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the handling of figure and table \captions has been improved.
-
- Hints:
-
- - When using a local addition to ArabTeX together with a patch
- version of ArabTeX, read the local addition by \input after
- the command \begin{document}, not by an \usepackage command.
- Otherwise a race condition occurs that could overwrite your
- local additions.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-03.03.2002: Version 3.10c
-
- Fixes:
-
- - The default language is Arabic again.
-
- - The LaTeX commands \footnote, \footnotemark, and \footnotetext
- in normal LTR LaTeX mode were broken in version 3.10b. Sorry!
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the environment 'tabular' works correctly.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the command \tableofcontents works correctly.
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- the commands \table and \figure may have a \caption.
-
- Hints:
-
- - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
- and *also* in normal LTR mode, within the \tabular environment
- every row but the last must be terminated by \\, also if \hline
- follows. The text of the error message has been improved.
-
- New Features:
-
- - The Arabic document classes 'arabbook', 'arabrep', 'arabart'
- formerly required the use of the ArabTeX standard encoding for
- correct functioning of generated section heads and the like.
- This restriction was never noticed, and applies no more.
-
- - Abjad numbers now also work with other input encodings.
-
- - Within an Arabic environment the command \stdcode{some text}
- accepts Arabic text in the ArabTeX standard encoding even if
- otherwise some other encoding is in use. This may be useful
- for local corrections.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-12.02.2002: Version 3.10b
-
- Fixes:
-
- - The LaTeX commands \footnote, \footnotemark, and \footnotetext
- now work correctly within Arabic environments, even if only
- transliteration mode is active. The output mode (transliterate,
- Arabic writing, or both) of Arabic inserts in the footnote text
- is inherited from the main document if not explicitly switched
- locally within the footnote text.
-
- Hints:
-
- - Footnotes containing Arabic inserts might come out too high.
- This may be prevented, at the risk of lines overlapping, by
- \smash-ing the Arabic insert or even the complete footnote.
-
- - Within transliteration mode hyphenation is only performed after
- long vowels, thus \sloppy mode might be required. If the last
- word of a line ends with a long vowel, a spurious hyphen will
- appear. This is a bug; presently no fix is known!
-
- New Features:
-
- - The LaTeX footnote commands (see above) also work within the
- Arabic document classes 'arabart', 'arabrep', and 'arabbook'.
-
- - By default, or after the command \LRfootnotes, the footnotes
- are positioned as in a Roman document, and the footnote text
- is assumed to be Roman by default. Arabic inserts are produced
- by \RL{ }.
-
- - After the command \RLfootnotes, footnotes run from right to
- left and the default language mode is Arabic. Roman inserts
- are produced by \LR{ }.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-06.10.2001: Version 3.10a
-
- Fixes:
-
- - A few minor patches from 'v3.09' did not make it into 'v3.10'.
-
- - The transliteration of '_h' was improved.
-
- - Plain TeX mode now also uses fonts "xnash14" and "xnash14bf"
- as the default.
-
- - In Hebrew mode, 'cholem male' and vowels in contact now work
- correctly.
-
- - In Hebrew mode, footnotes containing Hebrew inserts now have
- uniform baselines again.
-
- New Features:
-
- - All patches are now handled by "apatch.sty".
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.2001: Version 3.10
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - Distribution and modification of ArabTeX is now governed by
- the Latex Project Public License (see LPPL.TXT).
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - In Hebrew mode, all standard fonts available on CTAN are now
- supported, including the possibility of generating vowel points
- in \vocalize mode.
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-13.05.2001: Version 3.09g
-
- Fixes:
-
- - Some spurious spaces in the transliteration were fixed.
-
- - \tabular within \center was broken by \RL{}.
-
- - Hamza and `Ayn were broken in a \tabbing environment.
-
- New Features:
-
- - The file "arabtds.zip" in the distribution, when available,
- contains the ArabTeX package repacked according to the TDS
- (TeX Directory Structure). To install the complete package,
- PC Users of MikTeX and several other TeX distributions that
- presuppose the TDS structure, should download this file only
- (in binary mode!) and unpack it at the top level of their
- local TEXMF tree. For other installations, moving around some
- files or adjusting some access path might be required.
-
- - Reminder: some TeX installations require a command "texhash"
- or "texconfig" to activate a newly installed package.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-27.05.2000: Version 3.09f
-
- Fixes:
-
- - The LaTeX command \cdot works again.
-
- - The LaTeX command \protect may appear in RL mode. It has no
- visible effect.
-
- - The vertical bar | has no function, but does no harm behind an
- Arabic character that does not connect to the left.
-
- - The behaviour of "wasla" in the transliteration was fixed.
-
- - The vertical spacing of footnotes is no more influenced by \RL
- insertions in the first line.
-
- New Features:
-
- - Brackets [ and ] and parentheses ( and ) may be used within an
- Arabic or Hebrew word to indicate optional parts; they do not
- change the connection behaviour of the adjacent characters.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-05.04.2000: Version 3.09e
-
- Fixes:
-
- - to switch the transcription font say, e.g., \settransfont{\rm}.
- \settransfont{rm} (forgetting the \) now also works, instead of
- producing impressive garbage.
-
- - an \RL{} insertion text may now begin with a space.
-
- - footnotes containing \RL{} insertions have uniform baselines.
-
- - the space command \ works within RL mode.
-
- - \bf and \rm (for returning to normal) work within RL mode.
-
- New Features:
-
- - within RL environments, \newcommand, \newenvironment, and \def
- and their relatives may be used to define new control sequences
- which have to expand to legal ArabTeX input; they will not be
- visible outside of the environment (even if \gdef or \xdef is
- used.) For a user defined command to be visible both outside
- and inside RL mode, define it in LR mode and announce it to the
- ArabTeX command processor by \allowarab.
-
- - the new commands \shadda, \madda, \sukun in Arabic mode and the
- commands \raphe, \dagesh, \mappiq in Hebrew mode will place the
- corresponding diacritic on the preceding letter. In Hebrew mode
- \maqqef will produce a connector, \abbr an abbreviation mark.
-
- - A single hyphen will be invisible in the RL writing, but will
- show up in the transcription; the adjacent letters will always
- assume the connecting form, if it exists, even at the beginning
- or the end of a word.
-
- - any paragraph containing \RL{} insertions will now have uniform
- baselines. The users might have to adjust \baselinestretch.
-
- - RL insertions now also work for encodings like MacOS Arabic and
- MacOS Hebrew that provide an RL space.
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-18.03.2000: Version 3.09d
-
- Fixes:
-
- - the transcription did not work correctly within a LaTeX tabbing
- environment since this environment mungles the accent commands.
- (We consider this a mis-feature in LaTeX!)
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-19.10.1999: Version 3.09c
-
- Fixes:
-
- - "\cap" for capitalisation of the transcription now works also
- within section titles and in the table of contents.
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-30.07.1999: Version 3.09b
-
- Note: version 3.09a did not work.
-
- Fixes:
-
- - In the Hebrew mode, "maqqef" now works with all fonts.
-
- Installation:
-
- - download "hepatch.sty"
-
---------------------------------------------------------------------------
-17.07.1999: Version 3.09
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- to obtain better quality of output. These fonts are now the
- default; to revert to the old font versions use the command
- "\oldarabfont".
-
- New features:
-
- - Many ArabTeX commands that used to be fragile in connection
- with LaTeX are now robust.
-
- - Within the LaTeX document classes "arabart", "arabrep", and
- "arabbook" nearly all LaTeX environments are allowed also
- within Arabic mode.
-
- Recommendations:
-
- - When typesetting Roman text with Arabic or Hebrew insertions, a
- better result can usually be obtained by typesetting on a grid;
- this can be accomplished by resetting the parameters \lineskip
- to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
- to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
- You may want to experiment with the factor quoted as "1.2".
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT", and in case of any font
- problems also "MFINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-24.06.99: Version 3.08i
-
- New Features:
-
- - there is an "abstract" environment in the Arabic classes.
- - mathematical displays bracketed by $$ $$ may be nested within an
- Arabic environment. Bracketing by $ $ was always there.
- - The LaTeX commands \( \), \[ \], and also the LaTeX environments
- "math", "displaymath", "equation", "eqnarray", and "eqnarray*"
- are supported within Arabic environments, also with the options
- "leqno" and "fleqn", if LaTeX is used.
-
- Upcoming Features:
-
- - a new edition of the User manual is in preparation.
-
- Installation:
-
- - download "apatch.sty", if you are interested.
-
---------------------------------------------------------------------------
-10.06.99: Version 3.08h
-
- Fixes:
-
- - there were a few glitches in Pashto and Kashmiri encoding
- - there were a few glitches in Pashto transliteration
- - the command \settrans #1 is allowed within Arabic mode
- - the command \tracingmacros #1 is allowed within Arabic mode
-
- New Features:
-
- - the environments "RLtext", "arabtext", and "hebtext" are now
- equivalent
- - the braces \< and > are admissible within Arabic mode but have
- no effect
- - the command \addcontentsline also works in the Arabic classes
- "arabrep", "arabart", "arabbook"
- - the title of the table of contents is context dependent in the
- Arabic document classes
-
- Upcoming Features:
-
- - a new edition of the User manual is in preparation
- - there is yet no "abstract" environment in the Arabic classes
-
- Installation:
-
- - download "apatch.sty"
-
---------------------------------------------------------------------------
-16.05.99: Version 3.08g2
-
- Fixes:
-
- - In the transcription mode, capitalization (see version 3.08) can
- now also be used within a word, even several times.
- - In the transcription, the positioning of the marks for Hamza and
- Ayn was slightly improved.
- - in Urdu mode, Ta' marbuta works again.
- - in BHS mode, Shin works again.
- - in the Arabic document classes, some spurious font switches were
- fixed.
-
- New Features:
-
- - There is a new language mode: Kashmiri. See "kashmiri.tex" for a
- short description.
-
- Installation:
-
- - download "apatch.sty" (and "kashmiri.sty", "kashmiri.tex" and/or
- "bhs.sty" if required)
-
---------------------------------------------------------------------------
-10.05.99: Version 3.08f
-
- Fixes:
-
- - In the transcription mode, capitalization (see version 3.08) can
- now also be used in the English (Encyclopedia of Islam) style.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-22.04.99: Version 3.08e
-
- Fixes:
-
- - We found some grave errors in the Urdu mode; it seems to work
- again now. Observe that there are several forms of "heh":
- - the two-eyed form for aspiration: code <h>
- - the wavy form for other cases: code <,h>
- - the final closed form: code <H>
- For the Name of God, use <H> in Urdu mode, or switch to \setarab
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-10.04.99: Version 3.08d
-
- Fixes:
-
- - For use with EDMAC, the file "aedpatch.sty" has been updated to
- fix some spurious spaces.
- - For use with Hebrew, the files "hclassic.mf" and "hcaption.mf"
- have been slightly adjusted, and "hcbase_pc.mf" was renamed to
- "hcbase.mf" to fix an incompatibility in some operating systems
- preventing automatic font generation; the fonts themselves are
- unchanged.
-
- Installation:
-
- - download the indicated files, if you need them; otherwise you
- may safely ignore this version.
-
- Note: the version number of ArabTeX (in the LOG) is still 3.08c !
-
---------------------------------------------------------------------------
-25.03.99: Version 3.08c
-
- Fixes:
-
- - Most of the LaTeX renumbering commands introduced in the last
- version (3.08b) do NOT work and have been blocked off. LaTeX
- does not allow font changes within numbering commands, since
- these must be fully expandable within TeX's mouth.
-
- - "arabrep.cls" has been updated again.
-
- Old Features:
-
- - There is only one new numbering command, and it only can be
- used in the context of the Arabic document classes, also as a
- \pagenumbering style, and for renaming e.g. \thesection:
-
- \abj{ctr} "abjad" notation for counters.
-
- - \pagenumbering{abj} may also be written \pagenumbering{abjad}.
-
- - in the Arabic document classes, put \tableofcontents within
- an Arabic environment.
-
- Installation:
-
- - download "apatch.sty", and also "arabrep.cls" when required.
- The latter file is not contained within the packed versions!
-
---------------------------------------------------------------------------
-21.03.99: Version 3.08b1
-
- New Features:
-
- - For LaTeX there are additional numbering commands for counters
- (cf. Section C.8.4 "Numbering" in the LaTeX manual:)
-
- \arab{ctr} "Arabic" Arabic numerals
- \Arab{ctr} "Arabic" Arabic numerals, bold
- \abj{ctr} "abjad" notation
- \Abj{ctr} "abjad" notation, bold
- \Arabic{ctr} "European" Arabic numerals, bold (extension!)
-
- - There are also the corresponding \pagenumbering styles, e.g.:
- \pagenumbering{Abj} for bold "abjad" page numbers.
-
- Fixes:
-
- - Some of these commands were present in 3.07g but did not work.
-
- - isiri.sty had become incompatible and has been updated.
-
- - arabrep.cls had become incompatible and has been updated.
-
- Hints:
-
- - if your MFINPUT subdirectory of ArabTeX should contain a file
- "asymbols.mf", delete it. It is obsolete and may be in conflict
- with AMSTeX and/or AMSLaTeX.
-
- Installation:
-
- - download "apatch.sty", and "isiri.sty" or "arabrep.cls" when
- required. The latter two files are not contained within the
- packed versions!
-
---------------------------------------------------------------------------
-13.02.99: Version 3.08a
-
- Fixes:
-
- - The transliteration of "Quran alif" was in error.
-
- Installation:
-
- - download "apatch.sty" if required.
-
---------------------------------------------------------------------------
-01.12.98: Version 3.08
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are some new files, and some have been extensively rewritten!
- The functionality is supposed to be unchanged.
-
- - We recommend installing of the fonts "xnash14" and "xnash14bf"
- (and activating them) to obtain better quality of output.
-
- - ArabTeX is believed to be fully compatible with Babel; however,
- it does not use its features. Please report incompatibilities.
-
- - BHS mode is now also compatible with "german.sty".
-
- New features:
-
- - There are two new experimental fonts "xnash14" and "xnash14bf"
- which overcome some limitations inherent in the previously
- available versions "nash14" and "nash14bf". These fonts can be
- activated (if installed) by the new command "\newarabfont" and
- can be deactivated again by "\oldarabfont"; these commands
- change the meaning of the commands "\setnash" and "\setnashbf"
- to switch to the new versions, if required, and back.
-
- - In transcription mode, single characters may be capitalized by
- prefixing the command \cap in the input; the Arabic writing is
- not affected.
- - with ' (hamza) and ` (`ayn) the next visible letter will be
- capitalized.
- - this feature also works within words, after prefixes and after
- the article, even if written in the assimilated form.
-
- - In transcription mode, the representations of "hamza" and "ayin"
- have been changed slightly; this might influence line breaks.
-
- Recommendations:
-
- - When typesetting Roman text with Arabic or Hebrew insertions, a
- better result can usually be obtained by typesetting on a grid;
- this can be accomplished by resetting the parameters \lineskip
- to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
- to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
- You may want to experiment with the factor quoted as "1.2".
-
- Bugs:
-
- - Presently none are known.
-
- Installation:
-
- - Download the contents of "TEXINPUT".
-
- - In case of problems with old DVI files regenerate them; or else
- download "arabsymb.mf" and regenerate the font "nash14".
-
-==========================================================================
-21.10.98: Version 3.07k
-
- Fixes:
-
- - A very obscure internal error has been corrected.
-
- - In Hebrew mode, the positioning of dagesh and also of some vowel
- points has been improved.
- - In Hebrew mode, "meteg" (and silluq) now also works with cholem.
- - In Hebrew mode, there now is a small space before sof pasuq.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-18.10.98: Version 3.07j
-
- Fixes:
-
- - In Hebrew mode, patach furtivum after cholem works now.
- - In Hebrew verbatim encodings (HED and ISO 8859-8), neither two
- identical letters nor a medial letter and its final form will be
- any more combined (erroneously) to a letter with dagesh.
-
- Open Problems:
-
- - On some servers, the font "nash14" seems to be broken. This does
- NOT concern current ArabTeX runs, but displaying older DVI files
- might be affected in that some characters, e.g., <^gim>, may be
- missing.
- - This will be fixed in the next minor version 3.08; for the time
- being there are two workarounds:
- - Reprocess the ArabTeX input file; the display will be correct.
- - If this is not possible or not wanted, download the ASCII file
- "arabsymb.mf" and regenerate the font as required.
- - The font "nash14bf" might have the same problem; the workarounds
- apply also.
- - Neither new ArabTeX runs nor the font "xnsh14" are affected.
-
- Hints:
-
- - With Hebrew and LaTeX, the LaTeX2e version should be 1996/12/01
- or newer; older versions have been reported to produce obscure
- errors. We can no more check this.
-
- Installation:
-
- - download "hepatch.sty", and "arabsymb.mf" if required.
-
---------------------------------------------------------------------------
-30.09.98: Version 3.07i
-
- Fixes:
-
- - ArabTeX and CJK are now fully compatible. The loading sequence
- of ArabTeX and CJK is arbitrary.
- - defective notation of fatha, kasra, damma works again.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-17.09.98: Version 3.07h
-
- Fixes:
-
- - The position of some more diacritic dots has been corrected.
- - several ligatures have been improved.
-
- New Features:
-
- - ArabTeX is now compatible with the package "fnpara.sty" IF this
- package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
- out about its presence.
- - ArabTeX is now compatible with the package "CJK.sty" IF this
- package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
- out about its presence.
-
- Special Features:
-
- - for users of "tustep.sty" (if any :-):
- ArabTeX is compatible again.
-
- Known bugs:
-
- - There is a problem concerning double consonants in Hebrew, only
- in the HED encoding.
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-28.08.98: Version 3.07g
-
- Fixes:
-
- - The position of some diacritic dots has been corrected.
-
- New Features:
-
- - For LaTeX there are additional styles for page numbers:
- \pagenumbering{arab} will produce *real* Arabic page numbers
- \pagenumbering{Arab} will produce bold Arabic page numbers
- \pagenumbering{abjad} will produce "abjad" page numbers
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-06.08.98: Version 3.07f
-
- Fixes:
-
- - there was a small problem transliterating emphasized words.
-
- - separating words by || did not work.
-
- - the character for final "ny" in Malay was wrong.
- - the character for final "h" in Malay was wrong.
-
- New Features:
-
- - Arabic and Persian words may be separated by \, (small space)
-
- Installation:
-
- - download "apatch.sty".
-
---------------------------------------------------------------------------
-31.07.98: Version 3.07e
-
- Fixes:
-
- - there were spurious characters in Hebrew output.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-28.07.98: Version 3.07d
-
- New Features:
-
- - there is a new directory "psfonts" that contains the Postscript
- Type 1 versions of the fonts "xnsh14" and "xnsh14bf". The files
- are called "xnsh14.pfb", "xnsh14bf.pfb", and "arabtex.map". The
- fonts use the original TFM files. They have been tested with
- dvips 5.76, ghostscript 5.10, a LaserJet 4+, and Acrobat Reader.
-
- These font files have been built and donated by Taco Hoekwater
- (taco.hoekwater@wkap.nl). Three cheers on him!
-
- Old Features:
-
- - the Arabic commands \lq (opening quotes), \rq (closing quotes),
- and \,(small non-breaking space) have been present for some time;
- we forgot to document this fact.
-
- Installation:
-
- - download and install the contents of the directory "psfonts"
- wherever appropriate on your system; this is system dependent.
-
- - "apatch.sty" was changed, but need not be downloaded except on
- special advice.
-
---------------------------------------------------------------------------
-27.07.98: Version 3.07c
-
- Fixes:
-
- - in Farsi mode ,a and ,e work again.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-23.07.98: Version 3.07b
-
- Fixes:
-
- - The letter SIN in Hebrew mode was broken.
- - The Sindhi abbreviations look better now.
-
- Installation:
-
- - download "apatch.sty" and "hepatch.sty".
-
---------------------------------------------------------------------------
-20.07.98: Version 3.07a
-
- Fixes:
-
- - After installing the version 3.07 on our local server we noticed
- an incompatibility with LaTeX2e; also by some new strategies the
- patching mechanism had been broken. To fix these effects we had
- to modify several source modules; we also found, and repaired,
- several minor bugs. This is in fact nearly a new minor version;
- on installation see below.
-
- - To our surprise we found, and repaired, a Y2000 problem.
-
- Changes:
-
- - Switch to the new font "xnsh14" by the command "\newarabfont";
- use "\oldarabfont" for switching back. The previous command
- "\newfont" collides with a command in LaTeX2e.
-
- Extensions:
-
- - The font "xnsh14" contains all character fragments necessary to
- build the characters in the extended Arabic segment of Unicode.
- There is as yet no reading module for Unicode or UTF-8 encoding;
- the present version of "utf8.sty" is still inconsistent.
-
- - There are new commands "\MIN" and "\IN" for two frequently used
- abbreviations in Sindhi.
-
- - The file "atrans.sty" is loaded automatically.
-
- - The file "etrans.sty" has been deleted. Use "\settrans{english}"
-
- - The file "nashbf.sty" has been deleted. Use "\setnashbf"
-
- Installation:
-
- - If you already have loaded version 3.07, unpack and replace the
- macro files in "tex307a.zip"; otherwise do a complete install as
- indicated below for version 3.07 first.
-
---------------------------------------------------------------------------
-16.07.98: Version 3.07
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files. To install it, load
- and replace all macros in the subdirectory "TEXINPUT"; there
- are several new files!
-
- - We have rewritten substantial parts of the package in order to
- increase stability and also to ease maintenance and extensions;
- the modularisation is now different, and some of the internal
- interfaces have been modified. This need not concern the user;
- the functionality has not been changed, and apparently nothing
- was broken during the transition to the new structure.
- - The main reason for the changes was, apart from improving the
- overall structure, to prepare for the handling of the full
- Arabic segment of Unicode. This goal has not yet been attained,
- but it required substantial changes in the internal structures.
- - The positioning of diacritical marks has on the average been
- much improved. There are a few exceptions; affected users that
- need the maximum quality available could try their luck with
- the new fonts "xnash14" and "xnash14bf" (see below). Otherwise
- the user interface has not changed.
-
- Additions:
-
- - There are two new experimental fonts "xnash14" and "xnash14bf"
- which overcome some limitations inherent in the previously
- available versions "nash14" and "nash14bf". These fonts can be
- activated (if installed) by the new command "\newfont" and can
- be deactivated again by "\oldfont"; these commands change the
- meaning of the commands "\setnash" and "\setnashbf" to switch
- to the new versions, if required, and back. Normal users not
- requiring the new versions can safely ignore this feature; they
- need not now install these fonts.
-
- Bugs:
-
- - Presently none are known.
-
-==========================================================================
-24.03.98: Version 3.06h
-
- Fixes:
-
- - some ligatures had been broken by the Sindhi mode; these have
- been fixed.
- - kashida before alif maqsura works again.
-
- Problems:
-
- - verses produced via "verses.sty" will ruin the word spacing if
- they occur within an Arabic paragraph inside a footnote, and
- possibly in other circumstances. There is a workaround: put the
- command "\setspace{4.3pt plus 0.001fil}" after the last verse.
-
---------------------------------------------------------------------------
-11.03.98: Version 3.06g3
-
- Fixes:
-
- - bi-directional linebreaking has been improved; there were some
- spurious blank spaces.
-
- New features:
-
- - ArabTeX is now believed to be compatible with the BABEL system.
- We cannot test this locally; reports are welcome. We acknowledge
- useful hints by Olaf Kummer and Johannes Braams.
-
- - there is now less spurious information in the LOG file.
-
- - there are some preparations for processing the UTF-8 encoding
- and the extended Arabic character set provided in UNICODE. These
- features cannot yet be accessed from the user level.
-
---------------------------------------------------------------------------
-26.01.98: Version 3.06f
-
- Fixes:
-
- - the special handling of final "mim" has been restricted to the
- Sindhi mode.
- - the positioning of diacritics has been improved.
-
- - Hebrew and EDMAC users: the "\if@lodia effect" has been fixed.
-
- Note to users of EDMAC:
-
- - download the new version 3.06a of 22.01.98 of "aedpatch.sty".
- This fixes the format of footnote paragraphs. (This correction
- cannot technically be handled by a patch within "apatch.sty").
-
- Note to users of the Sindhi mode:
-
- - please download the fonts again to get all characters.
-
---------------------------------------------------------------------------
-15.12.97: Version 3.06e
-
- Fixes:
-
- - "alif maqsura" and isolated "hamza" take explicit vowel marks
- and also "tanwin" if required.
- - final "mim" in the Urdu mode again has the long shape. In the
- Sindhi mode a short form is simulated by a kashida if needed.
- - in Urdu the encoding <,d> produces "dal" with a "toi" accent,
- and initial <U> becomes "alif+damma" and "waw" as required.
- - some transcription errors in Urdu mode have been fixed.
- - some ligatures in Sindhi mode are improved.
-
- Problems:
-
- - medial "wavy hah" in Urdu has a mark below it (controversial).
-
---------------------------------------------------------------------------
-27.11.97: Version 3.06d
-
- Fixes:
-
- - the input letter <A> denotes alif also in initial position and
- after a prefix separated by a hyphen. It may take short vowels,
- and also sukun (only if quoted). This feature may be useful when
- copying corrupted texts.
- - the "lam" of the article carries "sukun" also if the following
- word starts with "`ayin", like with the other "moon letters".
- - the encodings <I> and <iy> are equivalent; also <Iy> and <iyy>,
- <U> and <uw>, <Uw> and <uww>.
- - <"> and <""> at the beginning of a word generate alif with wasla
- even after a prefix.
- - a prefix before hyphen no more needs a short vowel to work.
- - the invisible character <|> is legal in the initial or the final
- position (but makes no sense there). It never takes a vowel mark.
-
- New features:
-
- - the inflection endings <-a>, <-i>, <-u>, <-aN>, <-iN>, <-uN> may
- be separated by a hyphen, also if written <-aNA>. Otherwise the
- character after a hyphen will be considered to start a new word,
- but may be joined to the prefix if possible (e.g., in <al-i-ismu>
- where <-i-> is a connection vowel producing "kasra", and <ismu>
- starts with "alif" "wasla" combined with "lam" into "lam-alif"
- carrying both "wasla" and "kasra".)
- - if a ligature is separated by <|> or <--> (kashida), any vowel
- mark present will migrate to the appropriate character glyph. The
- same happens with the implicit vowel mark that is produced by the
- long vowels in the vowelizing modes.
- - a comma <,> between digits will no more break the digit sequence
- but will be recognized as a decimal separator. A hyphen <-> and a
- solidus </> will also not break a digit sequence. A "number" must
- still begin with a digit to be recognized.
-
- Problems:
-
- - the Urdu mode is still broken.
- - for the new language modes (see 3.06) there is yet no (correct)
- transcription.
-
- Hints:
-
- - users of the Sindhi mode should regenerate the fonts otherwise
- the "wide kaf" may be missing.
-
---------------------------------------------------------------------------
-23.11.97: Version 3.06c
-
- Fixes:
-
- - final "alif maqsura" carries no sukun.
- - in connection with EDMAC, an Arabic lemma bearing a footnote is
- spread out by the same factor as the rest of the line, (e.g. in
- verses) even if it contains spaces.
- - Arabic footnotes with EDMAC no more produce overfull boxes, and
- will no more let the page overflow.
-
- Known bugs:
-
- - prefixes separated by a hyphen must presently be given in the
- fully vowelized input form, otherwise the writing is wrong.
- - The Urdu mode is broken; also its transcription is wrong.
-
---------------------------------------------------------------------------
-25.09.97: Version 3.06b
-
- Fixes:
-
- - in Kurdish mode, kashida and breaking of ligatures work now
-
---------------------------------------------------------------------------
-18.09.97: Version 3.06a
-
- Fixes:
-
- - there were sometimes spurious newlines if the transliteration
- was generated via an Arabic insertion
- - ligatures can again be broken by inserting a bar |
- - the ligatures family lam-gim, ta-gim etc. works again
- - there were spurious spaces in bidirectional text under EDMAC
-
---------------------------------------------------------------------------
-06.08.97: Version 3.06
-
- Status:
-
- - This is a new minor version. All existing patches have been
- merged into the respective macro files.
- - This doc file has been trimmed down; history information up to
- version 3.00 has been moved to "changes2.txt".
- - Several file names of the mini-documentation have been changed
- to lower case and carry the suffix ".txt", for the benefit of
- certain web-browsers. See also the file "arabtex.htm".
-
- Fixes:
-
- - some minor bugs have been fixed that had introduced spurious
- spaces or newlines when switching between Arabic and Hebrew.
- - "kashida" (--) between a consonant and a (long or short) vowel
- will no more split the vowel indicator from the consonant glyph.
-
- Additions:
-
- - the new command "\setsindhi" will switch to a language mode for
- Sindhi in an extended Arabic script. For details, process and
- read the file "sindhi.tex".
- - the new command "\setuighur" will switch to a language mode for
- Uighuric in an extended Arabic script. For details, process and
- read the file "uighur.tex".
- - the new command "\setmalay" will switch to a language mode for
- Old Malay (Jawi) in an extended Arabic script. For details,
- process and read the file "malay.tex".
- - These new language modes are strictly experimental and just a
- starting point. As the author speaks none of these languages,
- feedback and comments by interested users are badly needed.
-
-==========================================================================
-19.06.97: Version 3.05h
-
- Fixes:
-
- - some ligatures with "kaf" have been improved.
- - "quoting" of "wasla" works in all vowel modes.
- - "kashida" works also before long vowels.
- - breaking of ligatures works correctly also with long vowels
- and in combination with "quoting".
-
---------------------------------------------------------------------------
-12.06.97: Version 3.05g
-
- Fixes:
-
- - a bug fix for the new Sindhi module has been introduced (this
- mode is in alpha status and not yet publicly available; if you
- are interested in testing it: enquire)
-
---------------------------------------------------------------------------
-10.06.97: Version 3.05f
-
- Fixes:
-
- - a spurious error message about a "missing character" has been
- eliminated.
- - "\settrans{english}" switches again to the transliteration
- conventions of the Library of Congress.
- - ArabTeX will no more overwrite a user macro "\x".
-
- Additions:
-
- - the new command "\arabfootnotes" makes LaTeX footnotes run from
- right to left, and their text is considered Arabic by default.
- There is as yet no command to switch back to the default mode
- (left to right, Roman). With Plain TeX the new command is not
- yet available.
-
---------------------------------------------------------------------------
-28.05.97: Version 3.05e
-
- Fixes:
-
- - <U> in the Urdu mode works again.
- - some errors in the transliteration have been corrected.
- - some ligatures have been corrected.
-
---------------------------------------------------------------------------
-22.05.97: Version 3.05d
-
- Fixes:
-
- - \tabular structures within the Arabic document classes are now
- correctly aligned.
- - a few ligatures have been improved.
- - some internal routines have been updated preparing for some
- planned extensions. No visible effect.
- - a new test for version clashes has been introduced.
-
---------------------------------------------------------------------------
-14.05.97: Version 3.05c
-
- Fixes: The patching routine seems to work again.
-
---------------------------------------------------------------------------
-14.05.97: Version 3.05b
-
- Problems:
-
- - LaTeX is too clever and interferes with the patching routine.
- Therefore the existing patches for Hebrew have been moved to
- the file "hepatch.sty". Arabic mode is presently not affected.
-
---------------------------------------------------------------------------
-13.05.97: Version 3.05a
-
- Fixes:
-
- - in Hebrew mode when using HED encoding, Thet and Maqqef did
- not work correctly.
- - in EDMAC mode with Plain TeX the list of modules was missing.
- - some internal interfaces have been updated. This has no effect
- on the external operation but helps stability.
-
---------------------------------------------------------------------------
-07.05.97: Version 3.05
-
- Status:
-
- - The internal structure has changed extensively; this need not
- trouble the user.
- - Warning: NEVER MIX old and new files; they may be incompatible!
-
- Fixes:
-
- - A number of minor and some major bugs have been fixed.
-
- Modifications:
-
- - With EDMAC, the first argument of \text need not fit on the
- current line. All arguments are assumed to be Roman text; they
- may contain (or consist of) \<Arabic insertions>.
-
- Additions:
-
- - The ISIRI 3342 encoding is supported; load the reading module
- by \input isiri.sty or \usepackage {isiri}. Activate it by the
- command \setcode {isiri}.
- - Hebrew support has been expanded; read the file "hebrew.305".
- ArabTeX will try to use fonts locally available, irrespective
- of their encoding.
- - the file "verses.sty" supports typesetting poetry in two blocks.
- For a description, see the file itself.
- - See also the comments on Version 3.04 below.
-
- Hints:
-
- - If you want to process the manual "arabdoc.tex" under LaTeX 2e
- and get error messages, delete the *.aux, *.toc, and *.lot file
- and try again. These files depend on the LaTeX version used.
- - see also version 3.04.
-
- Complaints:
-
- - There is STILL no Nasta`liq font.
- - the user manual "arabdoc.tex" is outdated.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.05:
-
- - replace the contents of "TEXINPUT" and "REPORT".
- - read and/or print "README.305"
- - if interested, process the user manual "arabdoc.tex"; see the
- hints above.
-
-==========================================================================
-05.10.96: Version 3.04e
-
- Fixes:
-
- - removed many small bugs in Persian (thanks, Ivan Dershzanski!)
- - initial <alif> coded <A> in verbatim mode may carry a vowel
- - <yah> without dots coded <Y> acts like a consonant except at the
- end of a word
- - <aNy> denotes <fathatan> on <alif maqsura> erroneously written
- with dots
-
- Modifications:
-
- - removed quoted hamza ("') from verbatim mode (was ambiguous!)
-
---------------------------------------------------------------------------
-18.05.96: Version 3.04d
-10.05.96: Version 3.04c (not distributed)
-
- Fixes:
-
- - in "arabart.cls" (twocolumn) the right column is output first
- to get correct numbering of sectional units
- - corrected the vertical position of "marginpar"
- - a space is assumed after a new command defined via \allowarab
-
---------------------------------------------------------------------------
-08.04.96: Version 3.04b
-
- Fixes:
-
- - \footnote works again within an Arabic environment
-
- Known bugs:
-
- - \footnote is incompatible with "arabart.cls"
-
---------------------------------------------------------------------------
-21.03.96: Version 3.04a
-
- Fixes:
-
- - \baselineskip works correctly with EDMAC
- - \emphasize puts the overbar at uniform height in \novocalize
-
- Necessary action:
-
- If required, download the ASCII file "apatch.sty" again. This
- is a patch for version 3.04!
-
- See also version 3.04 below.
-
---------------------------------------------------------------------------
-19.03.96: Version 3.04
-
- Status:
-
- - ArabTeX now cooperates well with LaTeX 2e (June 1995 and later)
- and also still with Plain TeX and LaTeX 2.09. The configuration
- is determined automatically. With LaTeX 2e ArabTeX and all its
- suboptions are packages.
- - The internal structure has changed extensively; this need not
- trouble the user.
-
- Fixes:
-
- - \baselineskup, \parskip, \baselinestretch now work correctly
- in the Arabic modes.
- - The TeX special characters \#, \$, \%, \& can now be used (they
- just had been forgotten).
- - A number of minor bugs have been fixed.
-
- Modifications:
-
- - Digits and punctuation have been raised to the writing line.
- We feel this looks better.
- - The handling of numbers (= digit sequences) has been improved.
- Within a number, the decimal separator is the comma.
- - Bidirectional line-breaking has again been much improved. The
- command \goodpar still works but is rarely required.
- - The option "abidir" is no more necessary.
- - The option "nashbf" is no more necessary.
- - The option "abjad" is no more necessary.
-
- Additions:
-
- - User defined macros can be made known to ArabTeX by the
- declaration \allowarab {\macro_name} (previous to their use
- within an Arabic environment). The replacement text after
- substituting the parameters must be legal ArabTeX input and
- may contain further macro calls. The macro must be previously
- defined via \newcommand or \def.
-
- - The Arabic Windows encoding is supported; load the reading
- module by \input arabwin.sty, \usepackage {arabwin} or by
- adding the LaTeX 2.09 option "arabwin". Activate it by the
- command \setcode {arabwin}.
-
- - There are some additional transliteration modes for Persian
- and Urdu; in case of interest: inquire directly.
-
- - The package "raw.sty" defines the command \setraw to switch
- off all special processing for numbers, special characters
- and parentheses. This may be helpful for OCR work. Switch
- back by \unsetraw.
-
- - The (experimental) LaTeX 2e class file "arabart.cls" provides
- an Arabic article format. Within Arabic environments a number
- of LaTeX commands are enabled: sectioning, list environments,
- page headers and footers, table of contents, footnotes, quote,
- quotation, verse, center, twocolumn. All text arguments are
- considered to be Arabic text in the chosen encoding. Some of
- the LaTeX environments are missing, e.g., tabular and tabbing,
- minipages, pictures. They can usually be simulated by leaving
- the Arabic environment and reverting to the standard LaTeX
- commands.
-
- We are working on extensions to this format; suggestions and
- bug reports are welcome. We do not intend to supply a version
- for LaTeX 2.09.
-
- - See also the comments on Version 3.03 below.
- - The notes in README.303 still apply.
-
- Hints:
-
- - Uniform baselines may be obtained by setting \lineskiplimit
- to -\baselineskip and adjusting \baselinestretch to 1.4 (with
- LaTeX) or \baselineskip to 1.4\baselineskip with Plain TeX.
- Some experimenting is advised.
- - If you want to process the manual "arabdoc.tex" under LaTeX 2e
- first move the file "arabimax.tex" to the REPORT subdirectory.
- You will get some error messages on the first run. Forget them
- and process the file again; LaTeX 2e is to blame. Warning: the
- report is not quite up to date.
- - Put any local macro definitions into the LaTeX preamble or else
- precede them by \setnone; thus the < sign can be used in the
- normal meaning as a comparison operator. Activate short Arabic
- insertions again by \setarab or any other of the commands for
- language choice.
- - PiCTeX users may use Arabic labels within diagrams if and only
- if these are included in \< and > (NOT < and >).
- - If you use MlTeX and the output looks broken, note the version
- number of MlTeX and inform us.
-
- Complaints:
-
- - There is STILL no Nasta`liq font.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.04:
-
- - read and/or print "README.303"
-
-==========================================================================
-04.07.95: Version 3.03e
-
- Fixes:
-
- - Final yah before hamza works again
-
---------------------------------------------------------------------------
-24.05.95: Version 3.03d
-
- Fixes:
-
- - After switching to other encodings switching back to the
- standard encoding works again.
- - An empty \RL {} insertion will no more blow the system.
-
- Problems:
-
- - see version 3.03c
-
---------------------------------------------------------------------------
-02.05.95: Version 3.03c
-
- Fixes:
-
- - The METAFONT routines for the fonts "nash14" and "nash14bf"
- used a file "asymbols.mf" that conflicted with the AMS-Fonts.
- This file has been renamed to "arabsymb.mf". To use the new
- version, download "arabsymb.mf" and "nashbase.mf" from the
- subdirectory ARABTEX/MFINPUT and delete "asymbols.mf". This
- only concerns users who need to regenerate the fonts locally.
-
- Problems:
-
- - The font "dclassic" used by the Hebrew mode of ArabTeX has on
- the archive "noa.huji.ac.il" been replaced by a new version
- that is incompatible to the previous version while keeping the
- same name. We are working on a solution to resolve the ensuing
- compatibility problems. Users of the previous version are not
- affected.
-
- Acknowledgment:
-
- - The routines for building up punctuated Hebrew characters have
- profited from macros written by Joel Hoffmann and contained in
- his packages "dots.sty" and "hvowel1.sty". We apologize for not
- pointing out this fact clearly.
-
- Necessary action:
-
- - Normally none, except if indicated above.
-
---------------------------------------------------------------------------
-24.04.95: Version 3.03b
-
- Fixes:
-
- - The handling of single and double quotes, and of other special
- characters, in the ASMO 449 and ISO 8859-6 encodings has been
- improved.
- - After a punctuation character inside a word (usually an error)
- no space will be produced.
- - <tanwIn> on <'alif maqsUraT> works again.
- - In \setverb mode, a <harakaT> on <'alif> now works.
- - In \setverb mode, <A> may be used to produce <'alif>.
- - The ligature <lm|a> is produced instead of <l|ma>.
- - <ba'>, <ya'> etc. before <lAm> now have the short form.
-
- Known bugs in ArabTeX:
-
- - \begin{arabtext} inside a minipage will produce a spurious
- empty line; the reason is unknown.
-
- Hints:
-
- - Numbers after quotes will not be recognized as such and thus
- will be reversed; as a workaround, leave a space around the
- digits, e.g., <`` 1234 ''> or use a \nospace command, e.g.,
- <`` \nospace 1234 \nospace ''>.
- Mind the spaces before the \nospace commands in the example!
- - With LaTeX2e, load ArabTeX and its suboptions by the command
- \usepackage.
-
---------------------------------------------------------------------------
-28.03.95: Version 3.03a
-
- Fixes:
-
- - A workaround for an error in some versions of ML-TeX has
- been tentatively introduced. Non-ML-TeX users may safely
- ignore this.
-
---------------------------------------------------------------------------
-10.03.95: Version 3.03
-
- Fixes:
-
- - A number of minor bugs have been fixed, nothing dramatic.
- - The spacing of punctuation has been improved.
-
- Modifications:
-
- - Hebrew vowel points are provided. Hebrew mode now uses the font
- "dclassic". It can be downloaded e.g. from "noa.huji.ac.il".
-
- Additions:
-
- - The Hebrew encoding used in the machine readable version
- of BHS is supported. See README.303!
- - \obeylines and \obeyspaces also work for Arabic text. They
- however must be used in a group that contains the Arabic
- text AND this group must be followed by at least one space.
- - An <Arabic insertion> inside a \verbatim environment will be
- typeset in Arabic. Big TeX may be necessary.
- An Arabic environment will be typeset verbatim.
- - \vskip, \hskip, \vspace, \hspace, \newpage, \vfill are legal
- in Arabic mode.
- - A list of the loaded modules is put into the log file.
-
- Known bugs:
-
- - None as yet.
-
- How to move from earlier minor versions to version 3.03:
-
- - completely replace the contents of the subdirectory TEXINPUT
- - move the updated files "arabdoc?.tex" from the outermost level
- to the subdirectory "REPORT"
- - read and/or print "README.303"
-
-==========================================================================
-12.08.94: Version 3.02b
-
- Fixes:
-
- - \fullvocalize mode uses somewhat less TeX main memory than
- before but might still overflow; using \newpage explicitly
- could help
- - some ligatures have been improved
- - spacing has been improved in short insertions when the
- transliteration is also generated
- - in Hebrew mode, HED encoding, double letters work again
- - explicit spreading works again correctly
- - <hamza> in rare cases had the wrong carrier
- - if an Arabic word starts with a vowel, "quoting" toggles
- <wasla> if no vowel is given in the input
- - bidirectional line-breaking has been much improved. The
- command \goodpar is rarely necessary
-
- Hints:
-
- - etrans.sty is no more necessary; load atrans.sty
- - \settrans{english} switches to the romanization conventions
- of the Library of Congress
-
---------------------------------------------------------------------------
-19.07.94: Version 3.02a
-
- Fixes:
-
- - in Arabic, alif maqsura after tanwin works again
- - in Hebrew, before an apostrophe the medial form is used
- - in Hebrew, hyphen/maqqef works correctly
-
- Hints:
-
- - with Plain TeX (and/or EDMAC) only: load the ASCII file
- "apatch.sty" explicitly as the last file!
-
---------------------------------------------------------------------------
-14.07.94: Version 3.02
-
- Fixes:
-
- - some minor bugs have been corrected
- - the User Manual has been slightly updated, but is otherwise
- somewhat out of date.
-
- Modifications:
-
- - for storage reasons the transcription module is not loaded
- automatically; add the LaTeX option "atrans" if required,
- or say "\input atrans.sty".
-
- Additions:
-
- - EDMAC 3.00 and EDMAC 3.15 are both supported.
- - the LaTeX option "abidir" provides the new command \RL {text}
- for right-to-left insertions; it is used like <text> which is
- still provided, and which should be used wherever possible for
- reasons of efficiency.
- - the LaTeX option "hebtex" loads the modules for processing text
- in Hebrew. Switch to Hebrew by \sethebrew, and back to Arabic
- by \setarab. Hebrew text can be coded in the standard ArabTeX
- input notation, or in the encoding used by the editor HED; the
- latter coding is activated by \setcode {hed}. The reading module
- is supposed to also process texts in "newcode" (not tested!)
- - For using the Hebrew mode, the font "deadsea" must be available;
- it can be downloaded e.g. from "noa.huji.ac.il". Vowels are
- presently not provided.
- - For details see the ASCII file "readme.302".
-
- Hints:
-
- - only load the modules really required, or you might have to use
- a Big TeX!
-
- Known bugs:
-
- - None.
-
- How to move from earlier minor versions to version 3.02:
-
- - completely replace the contents of the subdirectory TEXINPUT
- - move the updated files "arabdoc?.tex" from the outermost level
- to the subdirectory "REPORT"
- - read and/or print "README.302"
-
-==========================================================================
-05.05.94: Version 3.01a
-
- Fixes:
-
- - \parskip now has effect also inside Arabic environments.
-
- Additions:
-
- - The EDMAC commands \pstart, \pend, \autopar are allowed
- inside an Arabic environment, IF properly nested.
-
---------------------------------------------------------------------------
-28.04.94: Version 3.01
-
- There has been extensive internal rewriting but the external
- effects are minor.
-
- - \setarab is the language default again. It will no more break
- the user's macro definitions IF these are put into the LaTeX
- preamble, or before "\input arabtex.sty" when using Plain TeX.
-
- Fixes:
-
- - Spaces are normally ignored after allowed control sequences
- inside Arabic text, (if not produced by the command itself.)
- - The spacing between a final silent <hah> in Persian and the
- next word has been improved.
-
- - An error in "twoblocks.sty" has been corrected that produced
- a spurious vertical space.
- - An error in "asmo449.sty" has been corrected that produced
- nonsense from the combination "Gdr" (article with an explicit
- <sukUn>)
- - In "abjad.sty", the <gIm> for the numeral 3 has no dot.
-
- Additions:
-
- - The commands \smallskip, \medskip, \bigskip, \newpage,
- \clearpage, \pagebreak, \hskip {glue}, \vskip {glue}, \today
- now work inside Arabic text.
- - there is a new language mode: \setturk for Ottoman.
- The input notation has been extended to cover both the standard
- and the modern Turkish transliteration.
- The documentation remains to be written :-(
- - there is a new language mode: \setkurdish for Kurdish.
- The documentation remains to be written :-(
- - "" produces an explicit <sukUn> except in \fullvocalize mode
- where it deletes a <sukUn> otherwise present.
- - The new commands \setarabfont {\nash} or \setarabfont {\nashbf}
- supersede \setnash and \setnashbf (which are still supported).
-
- Known bugs:
-
- - None.
-
- Hints:
-
- - The LaTeX style option "atrans" is redundant.
- - After changing the input coding, select the language mode and
- the vowelization mode anew (this is a feature :-).
-
- How to move from earlier minor versions to version 3.01:
-
- - completely replace the contents of the directory TEXINPUT
- - observe that there is a new file "acmd.sty"
-
-==========================================================================
-07.12.93: Version 3.00b
-
- Fixes:
-
- - corrected handling of <tanween fatha> in \setverb mode.
- - improved error handling for illegal commands.
- - ligature <geem>-<meem> also in spreading mode.
-
- Additions:
-
- - \setspace{rubber_length} changes the default for spaces in
- Arabic text; 3pt plus .5fil is recommended for \spreadbox.
-
- Known bugs:
-
- - arguments of boxing commands may not contain insertions.
- - in ASMO449, the combination Gdr (article with an explicit
- sukoon) will produce nonsense.
-
- Hints:
-
- - There is no language default. Do not forget \setarab etc.
- or otherwise you might get strange results.
- - After changing the input coding, select the language and
- the vowelization mode anew (this is a feature).
-
- These are in the manual but easily overlooked.
-
---------------------------------------------------------------------------
-26.11.93: Version 3.00a
-
- Fixes:
-
- - the <hamza> carrier is now <ya'> the before diphthong <ay>
-
- Additions:
-
- - more Qur'anic writing variants provided
- - \hfil is allowed in Arabic text
-
---------------------------------------------------------------------------
-20.11.93: Major Version 3.00
-
- Status:
-
- - large portions of the code have been rearranged and partly
- rewritten
- - The User Manual has been extensively updated and describes
- all (supported) ArabTeX features currently implemented
- - Version 3.00 seems to be compatible with Version 2 files
- - NFSS and NFSS2 can be used but are not required
- - all known bugs have been removed
- - Version 3.00 still can be run (slowly) on a standard PC XT
-
- Additions:
-
- - texts coded in ASMO 449 or ISO 8859-6 can now be processed
- - several historic writing variants are additionally supported
- - details of Farsi support are now described in the User Manual
- - many new commands are valid inside Arabic text; a complete
- list appears in the log file of each ArabTeX run, and also
- in the new User Manual
- - see also versions 2.00 - 2.08 below
-
-==========================================================================
-
- How to move from version 2.0x, 0 <= x <= 8, to version 3.00:
-
- - completely replace the contents of the directory TEXINPUT
- - completely replace the contents of the directory REPORT
- - process AND READ the new User Manual "arabdoc.tex"
- - leave the fonts alone
-
- How to move from version 1 (or none at all) to version 3.00:
-
- - Do as above; install the fonts "nash14" and "nash14bf" first
- according to local TeX conventions.
- - If the font "nash10" is still there, delete it.
-
-==========================================================================
- For information on older versions see the file "changes2.txt".
-==========================================================================
- Prof. Klaus Lagally
- Institut fuer Formale Methoden der Informatik
- Universitaet Stuttgart
- Universitaetsstrasse 38
- D-70569 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
- FAX: +49 - 711 - 7816 370
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2003, Klaus Lagally
---------------------------------------------------------------------------
-
+CHANGES.TXT 23.10.2003
+--------------------------------------------------------------------------
+ ArabTeX Version 3
+ =================
+--------------------------------------------------------------------------
+ NOTE: Version management:
+
+ - We distinguish major versions "m.00", minor versions "m.nn-"
+ with nn > 0, and patch versions "m.nnx" where "x" is a letter.
+
+ - to update from an older major version: reinstall completely.
+
+ - to update from an older minor version: replace the contents of
+ "TEXINPUT" and, if so indicated, "REPORT". Replace the fonts
+ only if so indicated explicitly.
+
+ - to update to a newer patch version: replace the ASCII file
+ "apatch.sty" and, if you use Hebrew, "hepatch.sty". These files
+ are distributed as unpacked text files, and will be applied
+ automatially whenever starting ArabTeX.
+
+ - Patch versions within the same minor version are cumulative, so
+ a newer patch will encompass all earlier versions.
+
+ - To back out from a patch version, replace "apatch.sty" by an
+ earlier version (within the same minor version only!) if still
+ locally available, or else edit out the current additions from
+ "apatch.sty" and, if applicable, "hepatch.sty" (save a copy
+ first!). Also please inform the author why you backed out.
+
+ - There is no provision to return gracefully to earlier minor or
+ even major versions. We can make them available on request, but
+ you should have good reasons, and there will be no support.
+
+--------------------------------------------------------------------------
+23.10.2003: Version 3.11d
+
+ Fixes:
+
+ - In the Arabic document classes, the formatting of the table
+ of contents was improved. A strange bug was corrected.
+
+ - A storage leak was found which prevented the formatting of
+ longer documents, leading to 'save stack overflow'.
+
+ - A bug in the ligatures module was found which used to produce
+ bogus messages 'missing letter y in font xnsh14' and to
+ slightly interfere with correct vowelization.
+
+ - A bug in the output module was found which used to produce
+ bogus messages 'underfull vbox while \output was active'.
+ The fix might slightly influence page breaking.
+
+ New features:
+
+ - There is now limited support for Arabized LyX.
+ Since there are no 'italic', 'slanted', 'sanserif' etc. fonts
+ available for ArabTeX, all special font variants are presently
+ mapped into 'bold face'. This could be changed at the user's
+ request; please send any suggestions to the author.
+
+ - The messages in the LOG file are less verbose now.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.2003: Version 3.11c
+
+ Fixes:
+
+ - in Hebrew mode, a spurious 'shwa' on 'gimel' was fixed.
+
+ New features:
+
+ - Hebrew mode provides a new command \setjudarab to activate
+ an experimental Judaeo-Arabic mode. Input is supposed to be
+ Arabic in the standard transliteration encoding (other modes
+ might work by accident), output is an extended Hebrew writing
+ in the chosen Hebrew font, and the standard transliteration
+ when activated. Arabic vowels are presently not provided; the
+ Hebrew vowels work but are presumably of no use.
+
+ Caution: The new mode can be expected to contain errors. We
+ do not know the exact writing conventions, and have no access
+ to any relevant literature. Scholars in the field are urged
+ to contact the author. Comments and suggestions are invited.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+08.09.2003: Version 3.11b
+
+ Fixes:
+
+ - the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Some of the remaining bugs have been fixed.
+
+ - Hebrew Plain mode works again. To use it, download the new
+ version of 'hebtex.tex'(!), the Hebrew Plain driver. The
+ corrections cannot be handled by "apatch.sty" alone.
+
+ New features:
+
+ - ArabTeX now seems to cooperate with LyX in Arabic and Hebrew
+ mode.
+
+ Installation:
+
+ - download "apatch.sty".
+
+ - in case you are using the Hebrew Plain mode (and only then)
+ also download the new version of the driver module "hebtex.tex"
+ (not "hebtex.sty"!)
+
+--------------------------------------------------------------------------
+27.08.2003: Version 3.11a
+
+ Fixes:
+
+ - the 'hanging heh' in Urdu mode has been fixed.
+
+ - the selection of fonts in Arabic and Hebrew mode has been
+ drastically changed, and several logical errors have been
+ eliminated. Hopefully there are not too many new bugs.
+
+ - Hebrew Plain mode should work again. If you are not directly
+ concerned, forget it; tests are going on. The necessary
+ corrections cannot be handled by "apatch.sty" alone, see the
+ remarks below.
+
+ Installation:
+
+ - download "apatch.sty".
+
+ - in case you are using the Hebrew Plain mode (and only then)
+ also download the new version of the driver module "hebtex.tex"
+ (not "hebtex.sty"!)
+
+--------------------------------------------------------------------------
+22.08.2002: Version 3.11
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - Distribution and modification of ArabTeX is now governed by
+ the Latex Project Public License (see LPPL.TXT).
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - In Hebrew mode, all standard fonts available on CTAN are now
+ supported, including the possibility of generating vowel points
+ in \vocalize mode.
+
+ Bugs:
+
+ - Hebrew Plain TeX mode is currently broken.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+23.04.2003: Version 3.10k
+
+ Fixes:
+
+ - some glitches in Farsi mode were fixed.
+
+ - in Uighuric mode, some transcriptions were missing.
+
+ - in Urdu mode, final 'wavy hah' is generated now.
+
+ New features:
+
+ - in Uighuric mode, <:s> produces 'sin' with three dots below.
+ <A> produces 'alif' with 'madda', so does <^A>.
+
+ - in Farsi mode and its descendants, 'kasra' on a double letter
+ will be positioned below the letter instead of below the
+ 'shadda' mark. This feature will later become an option.
+
+ - the internal test mode is less verbose. This need not concern
+ normal users.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+16.11.2002: Version 3.10j
+
+ Fixes:
+
+ - the handling of 'ayin' in Hebrew mode was improved.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+14.11.2002: Version 3.10i
+
+ Fixes:
+
+ - "matres lectionis" in Hebrew work better.
+
+ - Version 3.10h was broken on some servers!
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+28.08.2002: Version 3.10h
+
+ Fixes:
+
+ - The math command \cap was broken.
+
+ - Line breaking of Roman insertions within Arabic mode seems to
+ work correctly now.
+
+ New features:
+
+ - There is formally a new language mode \setbalut for Balochy.
+ Presently it is mapped to \setpashto but will be extended as
+ soon as the exact writing rules are known.
+
+ - The command \cond #1{#2}{#3}\fi will expand to either #2 or #3
+ depending on the TeX conditional #1. It is nearly equivalent
+ to #1 #2\else #3\fi but may also be used in Arabic mode. The
+ command is skippable and fully expandable.
+
+ - \endinput may occur in Arabic mode.
+
+ - The input character <G> encodes Pashto 'gAf' with a ring. In
+ Farsi and Pashto mode, <g> produces Farsi 'gAf' with a stroke.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+16.06.2002: Version 3.10g
+
+ Fixes:
+
+ - in Pashto mode, <.n> will produce 'noon' with a dot and a ring.
+ Some further Pashto codes can be found in Table 4.2.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+11.05.2002: Version 3.10f
+
+ Fixes:
+
+ - in Persian mode, some bugs concerning 'hamze on he' were fixed.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+14.04.2002: Version 3.10e
+
+ Fixes:
+
+ - in the standard Hebrew transcription, 'shwa' was missing.
+
+ - in Persian mode, 'hamze on he' is produced if required.
+
+ - in Hebrew mode using the 'hclassic' and 'hcaption' fonts, the
+ vowel points are generated differently to render better when
+ using T1 fonts.
+
+ - in CP1256 encoding, explicit 'shadda' works now correctly.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+07.03.2002: Version 3.10d
+
+ Fixes:
+
+ - In many of the non-standard encodings the handling of double
+ letters (implicit shadda or not) has been corrected.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the handling of figure and table \captions has been improved.
+
+ Hints:
+
+ - When using a local addition to ArabTeX together with a patch
+ version of ArabTeX, read the local addition by \input after
+ the command \begin{document}, not by an \usepackage command.
+ Otherwise a race condition occurs that could overwrite your
+ local additions.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+03.03.2002: Version 3.10c
+
+ Fixes:
+
+ - The default language is Arabic again.
+
+ - The LaTeX commands \footnote, \footnotemark, and \footnotetext
+ in normal LTR LaTeX mode were broken in version 3.10b. Sorry!
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the environment 'tabular' works correctly.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the command \tableofcontents works correctly.
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ the commands \table and \figure may have a \caption.
+
+ Hints:
+
+ - In the Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ and *also* in normal LTR mode, within the \tabular environment
+ every row but the last must be terminated by \\, also if \hline
+ follows. The text of the error message has been improved.
+
+ New Features:
+
+ - The Arabic document classes 'arabbook', 'arabrep', 'arabart'
+ formerly required the use of the ArabTeX standard encoding for
+ correct functioning of generated section heads and the like.
+ This restriction was never noticed, and applies no more.
+
+ - Abjad numbers now also work with other input encodings.
+
+ - Within an Arabic environment the command \stdcode{some text}
+ accepts Arabic text in the ArabTeX standard encoding even if
+ otherwise some other encoding is in use. This may be useful
+ for local corrections.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+12.02.2002: Version 3.10b
+
+ Fixes:
+
+ - The LaTeX commands \footnote, \footnotemark, and \footnotetext
+ now work correctly within Arabic environments, even if only
+ transliteration mode is active. The output mode (transliterate,
+ Arabic writing, or both) of Arabic inserts in the footnote text
+ is inherited from the main document if not explicitly switched
+ locally within the footnote text.
+
+ Hints:
+
+ - Footnotes containing Arabic inserts might come out too high.
+ This may be prevented, at the risk of lines overlapping, by
+ \smash-ing the Arabic insert or even the complete footnote.
+
+ - Within transliteration mode hyphenation is only performed after
+ long vowels, thus \sloppy mode might be required. If the last
+ word of a line ends with a long vowel, a spurious hyphen will
+ appear. This is a bug; presently no fix is known!
+
+ New Features:
+
+ - The LaTeX footnote commands (see above) also work within the
+ Arabic document classes 'arabart', 'arabrep', and 'arabbook'.
+
+ - By default, or after the command \LRfootnotes, the footnotes
+ are positioned as in a Roman document, and the footnote text
+ is assumed to be Roman by default. Arabic inserts are produced
+ by \RL{ }.
+
+ - After the command \RLfootnotes, footnotes run from right to
+ left and the default language mode is Arabic. Roman inserts
+ are produced by \LR{ }.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+06.10.2001: Version 3.10a
+
+ Fixes:
+
+ - A few minor patches from 'v3.09' did not make it into 'v3.10'.
+
+ - The transliteration of '_h' was improved.
+
+ - Plain TeX mode now also uses fonts "xnash14" and "xnash14bf"
+ as the default.
+
+ - In Hebrew mode, 'cholem male' and vowels in contact now work
+ correctly.
+
+ - In Hebrew mode, footnotes containing Hebrew inserts now have
+ uniform baselines again.
+
+ New Features:
+
+ - All patches are now handled by "apatch.sty".
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.2001: Version 3.10
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - Distribution and modification of ArabTeX is now governed by
+ the Latex Project Public License (see LPPL.TXT).
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - In Hebrew mode, all standard fonts available on CTAN are now
+ supported, including the possibility of generating vowel points
+ in \vocalize mode.
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+13.05.2001: Version 3.09g
+
+ Fixes:
+
+ - Some spurious spaces in the transliteration were fixed.
+
+ - \tabular within \center was broken by \RL{}.
+
+ - Hamza and `Ayn were broken in a \tabbing environment.
+
+ New Features:
+
+ - The file "arabtds.zip" in the distribution, when available,
+ contains the ArabTeX package repacked according to the TDS
+ (TeX Directory Structure). To install the complete package,
+ PC Users of MikTeX and several other TeX distributions that
+ presuppose the TDS structure, should download this file only
+ (in binary mode!) and unpack it at the top level of their
+ local TEXMF tree. For other installations, moving around some
+ files or adjusting some access path might be required.
+
+ - Reminder: some TeX installations require a command "texhash"
+ or "texconfig" to activate a newly installed package.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+27.05.2000: Version 3.09f
+
+ Fixes:
+
+ - The LaTeX command \cdot works again.
+
+ - The LaTeX command \protect may appear in RL mode. It has no
+ visible effect.
+
+ - The vertical bar | has no function, but does no harm behind an
+ Arabic character that does not connect to the left.
+
+ - The behaviour of "wasla" in the transliteration was fixed.
+
+ - The vertical spacing of footnotes is no more influenced by \RL
+ insertions in the first line.
+
+ New Features:
+
+ - Brackets [ and ] and parentheses ( and ) may be used within an
+ Arabic or Hebrew word to indicate optional parts; they do not
+ change the connection behaviour of the adjacent characters.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+05.04.2000: Version 3.09e
+
+ Fixes:
+
+ - to switch the transcription font say, e.g., \settransfont{\rm}.
+ \settransfont{rm} (forgetting the \) now also works, instead of
+ producing impressive garbage.
+
+ - an \RL{} insertion text may now begin with a space.
+
+ - footnotes containing \RL{} insertions have uniform baselines.
+
+ - the space command \ works within RL mode.
+
+ - \bf and \rm (for returning to normal) work within RL mode.
+
+ New Features:
+
+ - within RL environments, \newcommand, \newenvironment, and \def
+ and their relatives may be used to define new control sequences
+ which have to expand to legal ArabTeX input; they will not be
+ visible outside of the environment (even if \gdef or \xdef is
+ used.) For a user defined command to be visible both outside
+ and inside RL mode, define it in LR mode and announce it to the
+ ArabTeX command processor by \allowarab.
+
+ - the new commands \shadda, \madda, \sukun in Arabic mode and the
+ commands \raphe, \dagesh, \mappiq in Hebrew mode will place the
+ corresponding diacritic on the preceding letter. In Hebrew mode
+ \maqqef will produce a connector, \abbr an abbreviation mark.
+
+ - A single hyphen will be invisible in the RL writing, but will
+ show up in the transcription; the adjacent letters will always
+ assume the connecting form, if it exists, even at the beginning
+ or the end of a word.
+
+ - any paragraph containing \RL{} insertions will now have uniform
+ baselines. The users might have to adjust \baselinestretch.
+
+ - RL insertions now also work for encodings like MacOS Arabic and
+ MacOS Hebrew that provide an RL space.
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+18.03.2000: Version 3.09d
+
+ Fixes:
+
+ - the transcription did not work correctly within a LaTeX tabbing
+ environment since this environment mungles the accent commands.
+ (We consider this a mis-feature in LaTeX!)
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+19.10.1999: Version 3.09c
+
+ Fixes:
+
+ - "\cap" for capitalisation of the transcription now works also
+ within section titles and in the table of contents.
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+30.07.1999: Version 3.09b
+
+ Note: version 3.09a did not work.
+
+ Fixes:
+
+ - In the Hebrew mode, "maqqef" now works with all fonts.
+
+ Installation:
+
+ - download "hepatch.sty"
+
+--------------------------------------------------------------------------
+17.07.1999: Version 3.09
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ to obtain better quality of output. These fonts are now the
+ default; to revert to the old font versions use the command
+ "\oldarabfont".
+
+ New features:
+
+ - Many ArabTeX commands that used to be fragile in connection
+ with LaTeX are now robust.
+
+ - Within the LaTeX document classes "arabart", "arabrep", and
+ "arabbook" nearly all LaTeX environments are allowed also
+ within Arabic mode.
+
+ Recommendations:
+
+ - When typesetting Roman text with Arabic or Hebrew insertions, a
+ better result can usually be obtained by typesetting on a grid;
+ this can be accomplished by resetting the parameters \lineskip
+ to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
+ to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
+ You may want to experiment with the factor quoted as "1.2".
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT", and in case of any font
+ problems also "MFINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+24.06.99: Version 3.08i
+
+ New Features:
+
+ - there is an "abstract" environment in the Arabic classes.
+ - mathematical displays bracketed by $$ $$ may be nested within an
+ Arabic environment. Bracketing by $ $ was always there.
+ - The LaTeX commands \( \), \[ \], and also the LaTeX environments
+ "math", "displaymath", "equation", "eqnarray", and "eqnarray*"
+ are supported within Arabic environments, also with the options
+ "leqno" and "fleqn", if LaTeX is used.
+
+ Upcoming Features:
+
+ - a new edition of the User manual is in preparation.
+
+ Installation:
+
+ - download "apatch.sty", if you are interested.
+
+--------------------------------------------------------------------------
+10.06.99: Version 3.08h
+
+ Fixes:
+
+ - there were a few glitches in Pashto and Kashmiri encoding
+ - there were a few glitches in Pashto transliteration
+ - the command \settrans #1 is allowed within Arabic mode
+ - the command \tracingmacros #1 is allowed within Arabic mode
+
+ New Features:
+
+ - the environments "RLtext", "arabtext", and "hebtext" are now
+ equivalent
+ - the braces \< and > are admissible within Arabic mode but have
+ no effect
+ - the command \addcontentsline also works in the Arabic classes
+ "arabrep", "arabart", "arabbook"
+ - the title of the table of contents is context dependent in the
+ Arabic document classes
+
+ Upcoming Features:
+
+ - a new edition of the User manual is in preparation
+ - there is yet no "abstract" environment in the Arabic classes
+
+ Installation:
+
+ - download "apatch.sty"
+
+--------------------------------------------------------------------------
+16.05.99: Version 3.08g2
+
+ Fixes:
+
+ - In the transcription mode, capitalization (see version 3.08) can
+ now also be used within a word, even several times.
+ - In the transcription, the positioning of the marks for Hamza and
+ Ayn was slightly improved.
+ - in Urdu mode, Ta' marbuta works again.
+ - in BHS mode, Shin works again.
+ - in the Arabic document classes, some spurious font switches were
+ fixed.
+
+ New Features:
+
+ - There is a new language mode: Kashmiri. See "kashmiri.tex" for a
+ short description.
+
+ Installation:
+
+ - download "apatch.sty" (and "kashmiri.sty", "kashmiri.tex" and/or
+ "bhs.sty" if required)
+
+--------------------------------------------------------------------------
+10.05.99: Version 3.08f
+
+ Fixes:
+
+ - In the transcription mode, capitalization (see version 3.08) can
+ now also be used in the English (Encyclopedia of Islam) style.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+22.04.99: Version 3.08e
+
+ Fixes:
+
+ - We found some grave errors in the Urdu mode; it seems to work
+ again now. Observe that there are several forms of "heh":
+ - the two-eyed form for aspiration: code <h>
+ - the wavy form for other cases: code <,h>
+ - the final closed form: code <H>
+ For the Name of God, use <H> in Urdu mode, or switch to \setarab
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+10.04.99: Version 3.08d
+
+ Fixes:
+
+ - For use with EDMAC, the file "aedpatch.sty" has been updated to
+ fix some spurious spaces.
+ - For use with Hebrew, the files "hclassic.mf" and "hcaption.mf"
+ have been slightly adjusted, and "hcbase_pc.mf" was renamed to
+ "hcbase.mf" to fix an incompatibility in some operating systems
+ preventing automatic font generation; the fonts themselves are
+ unchanged.
+
+ Installation:
+
+ - download the indicated files, if you need them; otherwise you
+ may safely ignore this version.
+
+ Note: the version number of ArabTeX (in the LOG) is still 3.08c !
+
+--------------------------------------------------------------------------
+25.03.99: Version 3.08c
+
+ Fixes:
+
+ - Most of the LaTeX renumbering commands introduced in the last
+ version (3.08b) do NOT work and have been blocked off. LaTeX
+ does not allow font changes within numbering commands, since
+ these must be fully expandable within TeX's mouth.
+
+ - "arabrep.cls" has been updated again.
+
+ Old Features:
+
+ - There is only one new numbering command, and it only can be
+ used in the context of the Arabic document classes, also as a
+ \pagenumbering style, and for renaming e.g. \thesection:
+
+ \abj{ctr} "abjad" notation for counters.
+
+ - \pagenumbering{abj} may also be written \pagenumbering{abjad}.
+
+ - in the Arabic document classes, put \tableofcontents within
+ an Arabic environment.
+
+ Installation:
+
+ - download "apatch.sty", and also "arabrep.cls" when required.
+ The latter file is not contained within the packed versions!
+
+--------------------------------------------------------------------------
+21.03.99: Version 3.08b1
+
+ New Features:
+
+ - For LaTeX there are additional numbering commands for counters
+ (cf. Section C.8.4 "Numbering" in the LaTeX manual:)
+
+ \arab{ctr} "Arabic" Arabic numerals
+ \Arab{ctr} "Arabic" Arabic numerals, bold
+ \abj{ctr} "abjad" notation
+ \Abj{ctr} "abjad" notation, bold
+ \Arabic{ctr} "European" Arabic numerals, bold (extension!)
+
+ - There are also the corresponding \pagenumbering styles, e.g.:
+ \pagenumbering{Abj} for bold "abjad" page numbers.
+
+ Fixes:
+
+ - Some of these commands were present in 3.07g but did not work.
+
+ - isiri.sty had become incompatible and has been updated.
+
+ - arabrep.cls had become incompatible and has been updated.
+
+ Hints:
+
+ - if your MFINPUT subdirectory of ArabTeX should contain a file
+ "asymbols.mf", delete it. It is obsolete and may be in conflict
+ with AMSTeX and/or AMSLaTeX.
+
+ Installation:
+
+ - download "apatch.sty", and "isiri.sty" or "arabrep.cls" when
+ required. The latter two files are not contained within the
+ packed versions!
+
+--------------------------------------------------------------------------
+13.02.99: Version 3.08a
+
+ Fixes:
+
+ - The transliteration of "Quran alif" was in error.
+
+ Installation:
+
+ - download "apatch.sty" if required.
+
+--------------------------------------------------------------------------
+01.12.98: Version 3.08
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are some new files, and some have been extensively rewritten!
+ The functionality is supposed to be unchanged.
+
+ - We recommend installing of the fonts "xnash14" and "xnash14bf"
+ (and activating them) to obtain better quality of output.
+
+ - ArabTeX is believed to be fully compatible with Babel; however,
+ it does not use its features. Please report incompatibilities.
+
+ - BHS mode is now also compatible with "german.sty".
+
+ New features:
+
+ - There are two new experimental fonts "xnash14" and "xnash14bf"
+ which overcome some limitations inherent in the previously
+ available versions "nash14" and "nash14bf". These fonts can be
+ activated (if installed) by the new command "\newarabfont" and
+ can be deactivated again by "\oldarabfont"; these commands
+ change the meaning of the commands "\setnash" and "\setnashbf"
+ to switch to the new versions, if required, and back.
+
+ - In transcription mode, single characters may be capitalized by
+ prefixing the command \cap in the input; the Arabic writing is
+ not affected.
+ - with ' (hamza) and ` (`ayn) the next visible letter will be
+ capitalized.
+ - this feature also works within words, after prefixes and after
+ the article, even if written in the assimilated form.
+
+ - In transcription mode, the representations of "hamza" and "ayin"
+ have been changed slightly; this might influence line breaks.
+
+ Recommendations:
+
+ - When typesetting Roman text with Arabic or Hebrew insertions, a
+ better result can usually be obtained by typesetting on a grid;
+ this can be accomplished by resetting the parameters \lineskip
+ to 0pt, \lineskiplimit to -30pt, and redefining \baselinestretch
+ to 1.2 (or \baselineskip to 1.2\baselineskip, with Plain TeX).
+ You may want to experiment with the factor quoted as "1.2".
+
+ Bugs:
+
+ - Presently none are known.
+
+ Installation:
+
+ - Download the contents of "TEXINPUT".
+
+ - In case of problems with old DVI files regenerate them; or else
+ download "arabsymb.mf" and regenerate the font "nash14".
+
+==========================================================================
+21.10.98: Version 3.07k
+
+ Fixes:
+
+ - A very obscure internal error has been corrected.
+
+ - In Hebrew mode, the positioning of dagesh and also of some vowel
+ points has been improved.
+ - In Hebrew mode, "meteg" (and silluq) now also works with cholem.
+ - In Hebrew mode, there now is a small space before sof pasuq.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+18.10.98: Version 3.07j
+
+ Fixes:
+
+ - In Hebrew mode, patach furtivum after cholem works now.
+ - In Hebrew verbatim encodings (HED and ISO 8859-8), neither two
+ identical letters nor a medial letter and its final form will be
+ any more combined (erroneously) to a letter with dagesh.
+
+ Open Problems:
+
+ - On some servers, the font "nash14" seems to be broken. This does
+ NOT concern current ArabTeX runs, but displaying older DVI files
+ might be affected in that some characters, e.g., <^gim>, may be
+ missing.
+ - This will be fixed in the next minor version 3.08; for the time
+ being there are two workarounds:
+ - Reprocess the ArabTeX input file; the display will be correct.
+ - If this is not possible or not wanted, download the ASCII file
+ "arabsymb.mf" and regenerate the font as required.
+ - The font "nash14bf" might have the same problem; the workarounds
+ apply also.
+ - Neither new ArabTeX runs nor the font "xnsh14" are affected.
+
+ Hints:
+
+ - With Hebrew and LaTeX, the LaTeX2e version should be 1996/12/01
+ or newer; older versions have been reported to produce obscure
+ errors. We can no more check this.
+
+ Installation:
+
+ - download "hepatch.sty", and "arabsymb.mf" if required.
+
+--------------------------------------------------------------------------
+30.09.98: Version 3.07i
+
+ Fixes:
+
+ - ArabTeX and CJK are now fully compatible. The loading sequence
+ of ArabTeX and CJK is arbitrary.
+ - defective notation of fatha, kasra, damma works again.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+17.09.98: Version 3.07h
+
+ Fixes:
+
+ - The position of some more diacritic dots has been corrected.
+ - several ligatures have been improved.
+
+ New Features:
+
+ - ArabTeX is now compatible with the package "fnpara.sty" IF this
+ package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
+ out about its presence.
+ - ArabTeX is now compatible with the package "CJK.sty" IF this
+ package is loaded BEFORE "arabtex.sty" so that ArabTeX can find
+ out about its presence.
+
+ Special Features:
+
+ - for users of "tustep.sty" (if any :-):
+ ArabTeX is compatible again.
+
+ Known bugs:
+
+ - There is a problem concerning double consonants in Hebrew, only
+ in the HED encoding.
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+28.08.98: Version 3.07g
+
+ Fixes:
+
+ - The position of some diacritic dots has been corrected.
+
+ New Features:
+
+ - For LaTeX there are additional styles for page numbers:
+ \pagenumbering{arab} will produce *real* Arabic page numbers
+ \pagenumbering{Arab} will produce bold Arabic page numbers
+ \pagenumbering{abjad} will produce "abjad" page numbers
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+06.08.98: Version 3.07f
+
+ Fixes:
+
+ - there was a small problem transliterating emphasized words.
+
+ - separating words by || did not work.
+
+ - the character for final "ny" in Malay was wrong.
+ - the character for final "h" in Malay was wrong.
+
+ New Features:
+
+ - Arabic and Persian words may be separated by \, (small space)
+
+ Installation:
+
+ - download "apatch.sty".
+
+--------------------------------------------------------------------------
+31.07.98: Version 3.07e
+
+ Fixes:
+
+ - there were spurious characters in Hebrew output.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+28.07.98: Version 3.07d
+
+ New Features:
+
+ - there is a new directory "psfonts" that contains the Postscript
+ Type 1 versions of the fonts "xnsh14" and "xnsh14bf". The files
+ are called "xnsh14.pfb", "xnsh14bf.pfb", and "arabtex.map". The
+ fonts use the original TFM files. They have been tested with
+ dvips 5.76, ghostscript 5.10, a LaserJet 4+, and Acrobat Reader.
+
+ These font files have been built and donated by Taco Hoekwater
+ (taco.hoekwater@wkap.nl). Three cheers on him!
+
+ Old Features:
+
+ - the Arabic commands \lq (opening quotes), \rq (closing quotes),
+ and \,(small non-breaking space) have been present for some time;
+ we forgot to document this fact.
+
+ Installation:
+
+ - download and install the contents of the directory "psfonts"
+ wherever appropriate on your system; this is system dependent.
+
+ - "apatch.sty" was changed, but need not be downloaded except on
+ special advice.
+
+--------------------------------------------------------------------------
+27.07.98: Version 3.07c
+
+ Fixes:
+
+ - in Farsi mode ,a and ,e work again.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+23.07.98: Version 3.07b
+
+ Fixes:
+
+ - The letter SIN in Hebrew mode was broken.
+ - The Sindhi abbreviations look better now.
+
+ Installation:
+
+ - download "apatch.sty" and "hepatch.sty".
+
+--------------------------------------------------------------------------
+20.07.98: Version 3.07a
+
+ Fixes:
+
+ - After installing the version 3.07 on our local server we noticed
+ an incompatibility with LaTeX2e; also by some new strategies the
+ patching mechanism had been broken. To fix these effects we had
+ to modify several source modules; we also found, and repaired,
+ several minor bugs. This is in fact nearly a new minor version;
+ on installation see below.
+
+ - To our surprise we found, and repaired, a Y2000 problem.
+
+ Changes:
+
+ - Switch to the new font "xnsh14" by the command "\newarabfont";
+ use "\oldarabfont" for switching back. The previous command
+ "\newfont" collides with a command in LaTeX2e.
+
+ Extensions:
+
+ - The font "xnsh14" contains all character fragments necessary to
+ build the characters in the extended Arabic segment of Unicode.
+ There is as yet no reading module for Unicode or UTF-8 encoding;
+ the present version of "utf8.sty" is still inconsistent.
+
+ - There are new commands "\MIN" and "\IN" for two frequently used
+ abbreviations in Sindhi.
+
+ - The file "atrans.sty" is loaded automatically.
+
+ - The file "etrans.sty" has been deleted. Use "\settrans{english}"
+
+ - The file "nashbf.sty" has been deleted. Use "\setnashbf"
+
+ Installation:
+
+ - If you already have loaded version 3.07, unpack and replace the
+ macro files in "tex307a.zip"; otherwise do a complete install as
+ indicated below for version 3.07 first.
+
+--------------------------------------------------------------------------
+16.07.98: Version 3.07
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files. To install it, load
+ and replace all macros in the subdirectory "TEXINPUT"; there
+ are several new files!
+
+ - We have rewritten substantial parts of the package in order to
+ increase stability and also to ease maintenance and extensions;
+ the modularisation is now different, and some of the internal
+ interfaces have been modified. This need not concern the user;
+ the functionality has not been changed, and apparently nothing
+ was broken during the transition to the new structure.
+ - The main reason for the changes was, apart from improving the
+ overall structure, to prepare for the handling of the full
+ Arabic segment of Unicode. This goal has not yet been attained,
+ but it required substantial changes in the internal structures.
+ - The positioning of diacritical marks has on the average been
+ much improved. There are a few exceptions; affected users that
+ need the maximum quality available could try their luck with
+ the new fonts "xnash14" and "xnash14bf" (see below). Otherwise
+ the user interface has not changed.
+
+ Additions:
+
+ - There are two new experimental fonts "xnash14" and "xnash14bf"
+ which overcome some limitations inherent in the previously
+ available versions "nash14" and "nash14bf". These fonts can be
+ activated (if installed) by the new command "\newfont" and can
+ be deactivated again by "\oldfont"; these commands change the
+ meaning of the commands "\setnash" and "\setnashbf" to switch
+ to the new versions, if required, and back. Normal users not
+ requiring the new versions can safely ignore this feature; they
+ need not now install these fonts.
+
+ Bugs:
+
+ - Presently none are known.
+
+==========================================================================
+24.03.98: Version 3.06h
+
+ Fixes:
+
+ - some ligatures had been broken by the Sindhi mode; these have
+ been fixed.
+ - kashida before alif maqsura works again.
+
+ Problems:
+
+ - verses produced via "verses.sty" will ruin the word spacing if
+ they occur within an Arabic paragraph inside a footnote, and
+ possibly in other circumstances. There is a workaround: put the
+ command "\setspace{4.3pt plus 0.001fil}" after the last verse.
+
+--------------------------------------------------------------------------
+11.03.98: Version 3.06g3
+
+ Fixes:
+
+ - bi-directional linebreaking has been improved; there were some
+ spurious blank spaces.
+
+ New features:
+
+ - ArabTeX is now believed to be compatible with the BABEL system.
+ We cannot test this locally; reports are welcome. We acknowledge
+ useful hints by Olaf Kummer and Johannes Braams.
+
+ - there is now less spurious information in the LOG file.
+
+ - there are some preparations for processing the UTF-8 encoding
+ and the extended Arabic character set provided in UNICODE. These
+ features cannot yet be accessed from the user level.
+
+--------------------------------------------------------------------------
+26.01.98: Version 3.06f
+
+ Fixes:
+
+ - the special handling of final "mim" has been restricted to the
+ Sindhi mode.
+ - the positioning of diacritics has been improved.
+
+ - Hebrew and EDMAC users: the "\if@lodia effect" has been fixed.
+
+ Note to users of EDMAC:
+
+ - download the new version 3.06a of 22.01.98 of "aedpatch.sty".
+ This fixes the format of footnote paragraphs. (This correction
+ cannot technically be handled by a patch within "apatch.sty").
+
+ Note to users of the Sindhi mode:
+
+ - please download the fonts again to get all characters.
+
+--------------------------------------------------------------------------
+15.12.97: Version 3.06e
+
+ Fixes:
+
+ - "alif maqsura" and isolated "hamza" take explicit vowel marks
+ and also "tanwin" if required.
+ - final "mim" in the Urdu mode again has the long shape. In the
+ Sindhi mode a short form is simulated by a kashida if needed.
+ - in Urdu the encoding <,d> produces "dal" with a "toi" accent,
+ and initial <U> becomes "alif+damma" and "waw" as required.
+ - some transcription errors in Urdu mode have been fixed.
+ - some ligatures in Sindhi mode are improved.
+
+ Problems:
+
+ - medial "wavy hah" in Urdu has a mark below it (controversial).
+
+--------------------------------------------------------------------------
+27.11.97: Version 3.06d
+
+ Fixes:
+
+ - the input letter <A> denotes alif also in initial position and
+ after a prefix separated by a hyphen. It may take short vowels,
+ and also sukun (only if quoted). This feature may be useful when
+ copying corrupted texts.
+ - the "lam" of the article carries "sukun" also if the following
+ word starts with "`ayin", like with the other "moon letters".
+ - the encodings <I> and <iy> are equivalent; also <Iy> and <iyy>,
+ <U> and <uw>, <Uw> and <uww>.
+ - <"> and <""> at the beginning of a word generate alif with wasla
+ even after a prefix.
+ - a prefix before hyphen no more needs a short vowel to work.
+ - the invisible character <|> is legal in the initial or the final
+ position (but makes no sense there). It never takes a vowel mark.
+
+ New features:
+
+ - the inflection endings <-a>, <-i>, <-u>, <-aN>, <-iN>, <-uN> may
+ be separated by a hyphen, also if written <-aNA>. Otherwise the
+ character after a hyphen will be considered to start a new word,
+ but may be joined to the prefix if possible (e.g., in <al-i-ismu>
+ where <-i-> is a connection vowel producing "kasra", and <ismu>
+ starts with "alif" "wasla" combined with "lam" into "lam-alif"
+ carrying both "wasla" and "kasra".)
+ - if a ligature is separated by <|> or <--> (kashida), any vowel
+ mark present will migrate to the appropriate character glyph. The
+ same happens with the implicit vowel mark that is produced by the
+ long vowels in the vowelizing modes.
+ - a comma <,> between digits will no more break the digit sequence
+ but will be recognized as a decimal separator. A hyphen <-> and a
+ solidus </> will also not break a digit sequence. A "number" must
+ still begin with a digit to be recognized.
+
+ Problems:
+
+ - the Urdu mode is still broken.
+ - for the new language modes (see 3.06) there is yet no (correct)
+ transcription.
+
+ Hints:
+
+ - users of the Sindhi mode should regenerate the fonts otherwise
+ the "wide kaf" may be missing.
+
+--------------------------------------------------------------------------
+23.11.97: Version 3.06c
+
+ Fixes:
+
+ - final "alif maqsura" carries no sukun.
+ - in connection with EDMAC, an Arabic lemma bearing a footnote is
+ spread out by the same factor as the rest of the line, (e.g. in
+ verses) even if it contains spaces.
+ - Arabic footnotes with EDMAC no more produce overfull boxes, and
+ will no more let the page overflow.
+
+ Known bugs:
+
+ - prefixes separated by a hyphen must presently be given in the
+ fully vowelized input form, otherwise the writing is wrong.
+ - The Urdu mode is broken; also its transcription is wrong.
+
+--------------------------------------------------------------------------
+25.09.97: Version 3.06b
+
+ Fixes:
+
+ - in Kurdish mode, kashida and breaking of ligatures work now
+
+--------------------------------------------------------------------------
+18.09.97: Version 3.06a
+
+ Fixes:
+
+ - there were sometimes spurious newlines if the transliteration
+ was generated via an Arabic insertion
+ - ligatures can again be broken by inserting a bar |
+ - the ligatures family lam-gim, ta-gim etc. works again
+ - there were spurious spaces in bidirectional text under EDMAC
+
+--------------------------------------------------------------------------
+06.08.97: Version 3.06
+
+ Status:
+
+ - This is a new minor version. All existing patches have been
+ merged into the respective macro files.
+ - This doc file has been trimmed down; history information up to
+ version 3.00 has been moved to "changes2.txt".
+ - Several file names of the mini-documentation have been changed
+ to lower case and carry the suffix ".txt", for the benefit of
+ certain web-browsers. See also the file "arabtex.htm".
+
+ Fixes:
+
+ - some minor bugs have been fixed that had introduced spurious
+ spaces or newlines when switching between Arabic and Hebrew.
+ - "kashida" (--) between a consonant and a (long or short) vowel
+ will no more split the vowel indicator from the consonant glyph.
+
+ Additions:
+
+ - the new command "\setsindhi" will switch to a language mode for
+ Sindhi in an extended Arabic script. For details, process and
+ read the file "sindhi.tex".
+ - the new command "\setuighur" will switch to a language mode for
+ Uighuric in an extended Arabic script. For details, process and
+ read the file "uighur.tex".
+ - the new command "\setmalay" will switch to a language mode for
+ Old Malay (Jawi) in an extended Arabic script. For details,
+ process and read the file "malay.tex".
+ - These new language modes are strictly experimental and just a
+ starting point. As the author speaks none of these languages,
+ feedback and comments by interested users are badly needed.
+
+==========================================================================
+19.06.97: Version 3.05h
+
+ Fixes:
+
+ - some ligatures with "kaf" have been improved.
+ - "quoting" of "wasla" works in all vowel modes.
+ - "kashida" works also before long vowels.
+ - breaking of ligatures works correctly also with long vowels
+ and in combination with "quoting".
+
+--------------------------------------------------------------------------
+12.06.97: Version 3.05g
+
+ Fixes:
+
+ - a bug fix for the new Sindhi module has been introduced (this
+ mode is in alpha status and not yet publicly available; if you
+ are interested in testing it: enquire)
+
+--------------------------------------------------------------------------
+10.06.97: Version 3.05f
+
+ Fixes:
+
+ - a spurious error message about a "missing character" has been
+ eliminated.
+ - "\settrans{english}" switches again to the transliteration
+ conventions of the Library of Congress.
+ - ArabTeX will no more overwrite a user macro "\x".
+
+ Additions:
+
+ - the new command "\arabfootnotes" makes LaTeX footnotes run from
+ right to left, and their text is considered Arabic by default.
+ There is as yet no command to switch back to the default mode
+ (left to right, Roman). With Plain TeX the new command is not
+ yet available.
+
+--------------------------------------------------------------------------
+28.05.97: Version 3.05e
+
+ Fixes:
+
+ - <U> in the Urdu mode works again.
+ - some errors in the transliteration have been corrected.
+ - some ligatures have been corrected.
+
+--------------------------------------------------------------------------
+22.05.97: Version 3.05d
+
+ Fixes:
+
+ - \tabular structures within the Arabic document classes are now
+ correctly aligned.
+ - a few ligatures have been improved.
+ - some internal routines have been updated preparing for some
+ planned extensions. No visible effect.
+ - a new test for version clashes has been introduced.
+
+--------------------------------------------------------------------------
+14.05.97: Version 3.05c
+
+ Fixes: The patching routine seems to work again.
+
+--------------------------------------------------------------------------
+14.05.97: Version 3.05b
+
+ Problems:
+
+ - LaTeX is too clever and interferes with the patching routine.
+ Therefore the existing patches for Hebrew have been moved to
+ the file "hepatch.sty". Arabic mode is presently not affected.
+
+--------------------------------------------------------------------------
+13.05.97: Version 3.05a
+
+ Fixes:
+
+ - in Hebrew mode when using HED encoding, Thet and Maqqef did
+ not work correctly.
+ - in EDMAC mode with Plain TeX the list of modules was missing.
+ - some internal interfaces have been updated. This has no effect
+ on the external operation but helps stability.
+
+--------------------------------------------------------------------------
+07.05.97: Version 3.05
+
+ Status:
+
+ - The internal structure has changed extensively; this need not
+ trouble the user.
+ - Warning: NEVER MIX old and new files; they may be incompatible!
+
+ Fixes:
+
+ - A number of minor and some major bugs have been fixed.
+
+ Modifications:
+
+ - With EDMAC, the first argument of \text need not fit on the
+ current line. All arguments are assumed to be Roman text; they
+ may contain (or consist of) \<Arabic insertions>.
+
+ Additions:
+
+ - The ISIRI 3342 encoding is supported; load the reading module
+ by \input isiri.sty or \usepackage {isiri}. Activate it by the
+ command \setcode {isiri}.
+ - Hebrew support has been expanded; read the file "hebrew.305".
+ ArabTeX will try to use fonts locally available, irrespective
+ of their encoding.
+ - the file "verses.sty" supports typesetting poetry in two blocks.
+ For a description, see the file itself.
+ - See also the comments on Version 3.04 below.
+
+ Hints:
+
+ - If you want to process the manual "arabdoc.tex" under LaTeX 2e
+ and get error messages, delete the *.aux, *.toc, and *.lot file
+ and try again. These files depend on the LaTeX version used.
+ - see also version 3.04.
+
+ Complaints:
+
+ - There is STILL no Nasta`liq font.
+ - the user manual "arabdoc.tex" is outdated.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.05:
+
+ - replace the contents of "TEXINPUT" and "REPORT".
+ - read and/or print "README.305"
+ - if interested, process the user manual "arabdoc.tex"; see the
+ hints above.
+
+==========================================================================
+05.10.96: Version 3.04e
+
+ Fixes:
+
+ - removed many small bugs in Persian (thanks, Ivan Dershzanski!)
+ - initial <alif> coded <A> in verbatim mode may carry a vowel
+ - <yah> without dots coded <Y> acts like a consonant except at the
+ end of a word
+ - <aNy> denotes <fathatan> on <alif maqsura> erroneously written
+ with dots
+
+ Modifications:
+
+ - removed quoted hamza ("') from verbatim mode (was ambiguous!)
+
+--------------------------------------------------------------------------
+18.05.96: Version 3.04d
+10.05.96: Version 3.04c (not distributed)
+
+ Fixes:
+
+ - in "arabart.cls" (twocolumn) the right column is output first
+ to get correct numbering of sectional units
+ - corrected the vertical position of "marginpar"
+ - a space is assumed after a new command defined via \allowarab
+
+--------------------------------------------------------------------------
+08.04.96: Version 3.04b
+
+ Fixes:
+
+ - \footnote works again within an Arabic environment
+
+ Known bugs:
+
+ - \footnote is incompatible with "arabart.cls"
+
+--------------------------------------------------------------------------
+21.03.96: Version 3.04a
+
+ Fixes:
+
+ - \baselineskip works correctly with EDMAC
+ - \emphasize puts the overbar at uniform height in \novocalize
+
+ Necessary action:
+
+ If required, download the ASCII file "apatch.sty" again. This
+ is a patch for version 3.04!
+
+ See also version 3.04 below.
+
+--------------------------------------------------------------------------
+19.03.96: Version 3.04
+
+ Status:
+
+ - ArabTeX now cooperates well with LaTeX 2e (June 1995 and later)
+ and also still with Plain TeX and LaTeX 2.09. The configuration
+ is determined automatically. With LaTeX 2e ArabTeX and all its
+ suboptions are packages.
+ - The internal structure has changed extensively; this need not
+ trouble the user.
+
+ Fixes:
+
+ - \baselineskup, \parskip, \baselinestretch now work correctly
+ in the Arabic modes.
+ - The TeX special characters \#, \$, \%, \& can now be used (they
+ just had been forgotten).
+ - A number of minor bugs have been fixed.
+
+ Modifications:
+
+ - Digits and punctuation have been raised to the writing line.
+ We feel this looks better.
+ - The handling of numbers (= digit sequences) has been improved.
+ Within a number, the decimal separator is the comma.
+ - Bidirectional line-breaking has again been much improved. The
+ command \goodpar still works but is rarely required.
+ - The option "abidir" is no more necessary.
+ - The option "nashbf" is no more necessary.
+ - The option "abjad" is no more necessary.
+
+ Additions:
+
+ - User defined macros can be made known to ArabTeX by the
+ declaration \allowarab {\macro_name} (previous to their use
+ within an Arabic environment). The replacement text after
+ substituting the parameters must be legal ArabTeX input and
+ may contain further macro calls. The macro must be previously
+ defined via \newcommand or \def.
+
+ - The Arabic Windows encoding is supported; load the reading
+ module by \input arabwin.sty, \usepackage {arabwin} or by
+ adding the LaTeX 2.09 option "arabwin". Activate it by the
+ command \setcode {arabwin}.
+
+ - There are some additional transliteration modes for Persian
+ and Urdu; in case of interest: inquire directly.
+
+ - The package "raw.sty" defines the command \setraw to switch
+ off all special processing for numbers, special characters
+ and parentheses. This may be helpful for OCR work. Switch
+ back by \unsetraw.
+
+ - The (experimental) LaTeX 2e class file "arabart.cls" provides
+ an Arabic article format. Within Arabic environments a number
+ of LaTeX commands are enabled: sectioning, list environments,
+ page headers and footers, table of contents, footnotes, quote,
+ quotation, verse, center, twocolumn. All text arguments are
+ considered to be Arabic text in the chosen encoding. Some of
+ the LaTeX environments are missing, e.g., tabular and tabbing,
+ minipages, pictures. They can usually be simulated by leaving
+ the Arabic environment and reverting to the standard LaTeX
+ commands.
+
+ We are working on extensions to this format; suggestions and
+ bug reports are welcome. We do not intend to supply a version
+ for LaTeX 2.09.
+
+ - See also the comments on Version 3.03 below.
+ - The notes in README.303 still apply.
+
+ Hints:
+
+ - Uniform baselines may be obtained by setting \lineskiplimit
+ to -\baselineskip and adjusting \baselinestretch to 1.4 (with
+ LaTeX) or \baselineskip to 1.4\baselineskip with Plain TeX.
+ Some experimenting is advised.
+ - If you want to process the manual "arabdoc.tex" under LaTeX 2e
+ first move the file "arabimax.tex" to the REPORT subdirectory.
+ You will get some error messages on the first run. Forget them
+ and process the file again; LaTeX 2e is to blame. Warning: the
+ report is not quite up to date.
+ - Put any local macro definitions into the LaTeX preamble or else
+ precede them by \setnone; thus the < sign can be used in the
+ normal meaning as a comparison operator. Activate short Arabic
+ insertions again by \setarab or any other of the commands for
+ language choice.
+ - PiCTeX users may use Arabic labels within diagrams if and only
+ if these are included in \< and > (NOT < and >).
+ - If you use MlTeX and the output looks broken, note the version
+ number of MlTeX and inform us.
+
+ Complaints:
+
+ - There is STILL no Nasta`liq font.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.04:
+
+ - read and/or print "README.303"
+
+==========================================================================
+04.07.95: Version 3.03e
+
+ Fixes:
+
+ - Final yah before hamza works again
+
+--------------------------------------------------------------------------
+24.05.95: Version 3.03d
+
+ Fixes:
+
+ - After switching to other encodings switching back to the
+ standard encoding works again.
+ - An empty \RL {} insertion will no more blow the system.
+
+ Problems:
+
+ - see version 3.03c
+
+--------------------------------------------------------------------------
+02.05.95: Version 3.03c
+
+ Fixes:
+
+ - The METAFONT routines for the fonts "nash14" and "nash14bf"
+ used a file "asymbols.mf" that conflicted with the AMS-Fonts.
+ This file has been renamed to "arabsymb.mf". To use the new
+ version, download "arabsymb.mf" and "nashbase.mf" from the
+ subdirectory ARABTEX/MFINPUT and delete "asymbols.mf". This
+ only concerns users who need to regenerate the fonts locally.
+
+ Problems:
+
+ - The font "dclassic" used by the Hebrew mode of ArabTeX has on
+ the archive "noa.huji.ac.il" been replaced by a new version
+ that is incompatible to the previous version while keeping the
+ same name. We are working on a solution to resolve the ensuing
+ compatibility problems. Users of the previous version are not
+ affected.
+
+ Acknowledgment:
+
+ - The routines for building up punctuated Hebrew characters have
+ profited from macros written by Joel Hoffmann and contained in
+ his packages "dots.sty" and "hvowel1.sty". We apologize for not
+ pointing out this fact clearly.
+
+ Necessary action:
+
+ - Normally none, except if indicated above.
+
+--------------------------------------------------------------------------
+24.04.95: Version 3.03b
+
+ Fixes:
+
+ - The handling of single and double quotes, and of other special
+ characters, in the ASMO 449 and ISO 8859-6 encodings has been
+ improved.
+ - After a punctuation character inside a word (usually an error)
+ no space will be produced.
+ - <tanwIn> on <'alif maqsUraT> works again.
+ - In \setverb mode, a <harakaT> on <'alif> now works.
+ - In \setverb mode, <A> may be used to produce <'alif>.
+ - The ligature <lm|a> is produced instead of <l|ma>.
+ - <ba'>, <ya'> etc. before <lAm> now have the short form.
+
+ Known bugs in ArabTeX:
+
+ - \begin{arabtext} inside a minipage will produce a spurious
+ empty line; the reason is unknown.
+
+ Hints:
+
+ - Numbers after quotes will not be recognized as such and thus
+ will be reversed; as a workaround, leave a space around the
+ digits, e.g., <`` 1234 ''> or use a \nospace command, e.g.,
+ <`` \nospace 1234 \nospace ''>.
+ Mind the spaces before the \nospace commands in the example!
+ - With LaTeX2e, load ArabTeX and its suboptions by the command
+ \usepackage.
+
+--------------------------------------------------------------------------
+28.03.95: Version 3.03a
+
+ Fixes:
+
+ - A workaround for an error in some versions of ML-TeX has
+ been tentatively introduced. Non-ML-TeX users may safely
+ ignore this.
+
+--------------------------------------------------------------------------
+10.03.95: Version 3.03
+
+ Fixes:
+
+ - A number of minor bugs have been fixed, nothing dramatic.
+ - The spacing of punctuation has been improved.
+
+ Modifications:
+
+ - Hebrew vowel points are provided. Hebrew mode now uses the font
+ "dclassic". It can be downloaded e.g. from "noa.huji.ac.il".
+
+ Additions:
+
+ - The Hebrew encoding used in the machine readable version
+ of BHS is supported. See README.303!
+ - \obeylines and \obeyspaces also work for Arabic text. They
+ however must be used in a group that contains the Arabic
+ text AND this group must be followed by at least one space.
+ - An <Arabic insertion> inside a \verbatim environment will be
+ typeset in Arabic. Big TeX may be necessary.
+ An Arabic environment will be typeset verbatim.
+ - \vskip, \hskip, \vspace, \hspace, \newpage, \vfill are legal
+ in Arabic mode.
+ - A list of the loaded modules is put into the log file.
+
+ Known bugs:
+
+ - None as yet.
+
+ How to move from earlier minor versions to version 3.03:
+
+ - completely replace the contents of the subdirectory TEXINPUT
+ - move the updated files "arabdoc?.tex" from the outermost level
+ to the subdirectory "REPORT"
+ - read and/or print "README.303"
+
+==========================================================================
+12.08.94: Version 3.02b
+
+ Fixes:
+
+ - \fullvocalize mode uses somewhat less TeX main memory than
+ before but might still overflow; using \newpage explicitly
+ could help
+ - some ligatures have been improved
+ - spacing has been improved in short insertions when the
+ transliteration is also generated
+ - in Hebrew mode, HED encoding, double letters work again
+ - explicit spreading works again correctly
+ - <hamza> in rare cases had the wrong carrier
+ - if an Arabic word starts with a vowel, "quoting" toggles
+ <wasla> if no vowel is given in the input
+ - bidirectional line-breaking has been much improved. The
+ command \goodpar is rarely necessary
+
+ Hints:
+
+ - etrans.sty is no more necessary; load atrans.sty
+ - \settrans{english} switches to the romanization conventions
+ of the Library of Congress
+
+--------------------------------------------------------------------------
+19.07.94: Version 3.02a
+
+ Fixes:
+
+ - in Arabic, alif maqsura after tanwin works again
+ - in Hebrew, before an apostrophe the medial form is used
+ - in Hebrew, hyphen/maqqef works correctly
+
+ Hints:
+
+ - with Plain TeX (and/or EDMAC) only: load the ASCII file
+ "apatch.sty" explicitly as the last file!
+
+--------------------------------------------------------------------------
+14.07.94: Version 3.02
+
+ Fixes:
+
+ - some minor bugs have been corrected
+ - the User Manual has been slightly updated, but is otherwise
+ somewhat out of date.
+
+ Modifications:
+
+ - for storage reasons the transcription module is not loaded
+ automatically; add the LaTeX option "atrans" if required,
+ or say "\input atrans.sty".
+
+ Additions:
+
+ - EDMAC 3.00 and EDMAC 3.15 are both supported.
+ - the LaTeX option "abidir" provides the new command \RL {text}
+ for right-to-left insertions; it is used like <text> which is
+ still provided, and which should be used wherever possible for
+ reasons of efficiency.
+ - the LaTeX option "hebtex" loads the modules for processing text
+ in Hebrew. Switch to Hebrew by \sethebrew, and back to Arabic
+ by \setarab. Hebrew text can be coded in the standard ArabTeX
+ input notation, or in the encoding used by the editor HED; the
+ latter coding is activated by \setcode {hed}. The reading module
+ is supposed to also process texts in "newcode" (not tested!)
+ - For using the Hebrew mode, the font "deadsea" must be available;
+ it can be downloaded e.g. from "noa.huji.ac.il". Vowels are
+ presently not provided.
+ - For details see the ASCII file "readme.302".
+
+ Hints:
+
+ - only load the modules really required, or you might have to use
+ a Big TeX!
+
+ Known bugs:
+
+ - None.
+
+ How to move from earlier minor versions to version 3.02:
+
+ - completely replace the contents of the subdirectory TEXINPUT
+ - move the updated files "arabdoc?.tex" from the outermost level
+ to the subdirectory "REPORT"
+ - read and/or print "README.302"
+
+==========================================================================
+05.05.94: Version 3.01a
+
+ Fixes:
+
+ - \parskip now has effect also inside Arabic environments.
+
+ Additions:
+
+ - The EDMAC commands \pstart, \pend, \autopar are allowed
+ inside an Arabic environment, IF properly nested.
+
+--------------------------------------------------------------------------
+28.04.94: Version 3.01
+
+ There has been extensive internal rewriting but the external
+ effects are minor.
+
+ - \setarab is the language default again. It will no more break
+ the user's macro definitions IF these are put into the LaTeX
+ preamble, or before "\input arabtex.sty" when using Plain TeX.
+
+ Fixes:
+
+ - Spaces are normally ignored after allowed control sequences
+ inside Arabic text, (if not produced by the command itself.)
+ - The spacing between a final silent <hah> in Persian and the
+ next word has been improved.
+
+ - An error in "twoblocks.sty" has been corrected that produced
+ a spurious vertical space.
+ - An error in "asmo449.sty" has been corrected that produced
+ nonsense from the combination "Gdr" (article with an explicit
+ <sukUn>)
+ - In "abjad.sty", the <gIm> for the numeral 3 has no dot.
+
+ Additions:
+
+ - The commands \smallskip, \medskip, \bigskip, \newpage,
+ \clearpage, \pagebreak, \hskip {glue}, \vskip {glue}, \today
+ now work inside Arabic text.
+ - there is a new language mode: \setturk for Ottoman.
+ The input notation has been extended to cover both the standard
+ and the modern Turkish transliteration.
+ The documentation remains to be written :-(
+ - there is a new language mode: \setkurdish for Kurdish.
+ The documentation remains to be written :-(
+ - "" produces an explicit <sukUn> except in \fullvocalize mode
+ where it deletes a <sukUn> otherwise present.
+ - The new commands \setarabfont {\nash} or \setarabfont {\nashbf}
+ supersede \setnash and \setnashbf (which are still supported).
+
+ Known bugs:
+
+ - None.
+
+ Hints:
+
+ - The LaTeX style option "atrans" is redundant.
+ - After changing the input coding, select the language mode and
+ the vowelization mode anew (this is a feature :-).
+
+ How to move from earlier minor versions to version 3.01:
+
+ - completely replace the contents of the directory TEXINPUT
+ - observe that there is a new file "acmd.sty"
+
+==========================================================================
+07.12.93: Version 3.00b
+
+ Fixes:
+
+ - corrected handling of <tanween fatha> in \setverb mode.
+ - improved error handling for illegal commands.
+ - ligature <geem>-<meem> also in spreading mode.
+
+ Additions:
+
+ - \setspace{rubber_length} changes the default for spaces in
+ Arabic text; 3pt plus .5fil is recommended for \spreadbox.
+
+ Known bugs:
+
+ - arguments of boxing commands may not contain insertions.
+ - in ASMO449, the combination Gdr (article with an explicit
+ sukoon) will produce nonsense.
+
+ Hints:
+
+ - There is no language default. Do not forget \setarab etc.
+ or otherwise you might get strange results.
+ - After changing the input coding, select the language and
+ the vowelization mode anew (this is a feature).
+
+ These are in the manual but easily overlooked.
+
+--------------------------------------------------------------------------
+26.11.93: Version 3.00a
+
+ Fixes:
+
+ - the <hamza> carrier is now <ya'> the before diphthong <ay>
+
+ Additions:
+
+ - more Qur'anic writing variants provided
+ - \hfil is allowed in Arabic text
+
+--------------------------------------------------------------------------
+20.11.93: Major Version 3.00
+
+ Status:
+
+ - large portions of the code have been rearranged and partly
+ rewritten
+ - The User Manual has been extensively updated and describes
+ all (supported) ArabTeX features currently implemented
+ - Version 3.00 seems to be compatible with Version 2 files
+ - NFSS and NFSS2 can be used but are not required
+ - all known bugs have been removed
+ - Version 3.00 still can be run (slowly) on a standard PC XT
+
+ Additions:
+
+ - texts coded in ASMO 449 or ISO 8859-6 can now be processed
+ - several historic writing variants are additionally supported
+ - details of Farsi support are now described in the User Manual
+ - many new commands are valid inside Arabic text; a complete
+ list appears in the log file of each ArabTeX run, and also
+ in the new User Manual
+ - see also versions 2.00 - 2.08 below
+
+==========================================================================
+
+ How to move from version 2.0x, 0 <= x <= 8, to version 3.00:
+
+ - completely replace the contents of the directory TEXINPUT
+ - completely replace the contents of the directory REPORT
+ - process AND READ the new User Manual "arabdoc.tex"
+ - leave the fonts alone
+
+ How to move from version 1 (or none at all) to version 3.00:
+
+ - Do as above; install the fonts "nash14" and "nash14bf" first
+ according to local TeX conventions.
+ - If the font "nash10" is still there, delete it.
+
+==========================================================================
+ For information on older versions see the file "changes2.txt".
+==========================================================================
+ Prof. Klaus Lagally
+ Institut fuer Formale Methoden der Informatik
+ Universitaet Stuttgart
+ Universitaetsstrasse 38
+ D-70569 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+ FAX: +49 - 711 - 7816 370
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2003, Klaus Lagally
+--------------------------------------------------------------------------
+
diff --git a/language/arabic/arabtex/doc/txt/changes2.txt b/language/arabic/arabtex/doc/txt/changes2.txt
index 8437dc3091..b6da17683e 100644
--- a/language/arabic/arabtex/doc/txt/changes2.txt
+++ b/language/arabic/arabtex/doc/txt/changes2.txt
@@ -1,378 +1,378 @@
-CHANGES 25.10.1993
---------------------------------------------------------------------------
- ArabTeX Version 2
- =================
- (for information on newer versions see the file "changes.txt")
---------------------------------------------------------------------------
-25.10.93: Version 2.08 (not widely distributed)
-
- Status:
-
- - all corrections in version 2.07 have been incorporated; there
- has been extensive rearrangement of code
- - all known bugs have been removed
- - some details in the manual have been rearranged; otherwise
- the manual is slightly out of date
-
- Additions:
-
- - \footnote in Arabic text now also works inside a minipage
- - more commands are valid inside Arabic text; a complete list
- appears in the log file
- - see also versions 2.07a - d below
-
- How to move from version 2.0x, 0 <= x <= 7d:
-
- - install all files in the directory TEXINPUT anew
- - replace "arabdoc.tex", "arabdoc0.tex", "arabdoc.ind" in the
- directory REPORT
- - leave the fonts alone
-
- How to move from version 1 (or none at all) to version 2.08:
-
- - Do as above; install the fonts "nash14" and "nash14bf" first
- according to local TeX conventions.
- - If the font "nash10" is still there, delete it.
-
---------------------------------------------------------------------------
-01.07.93: Version 2.07d
-
- Fixes:
-
- - "quoting" for <sukun> and <wasla> works now correctly.
- - <H> for silent <hah> in Persian works as described.
-
- Additions:
-
- - <j> instead of <^g> for <gim>, and <x> instead of <_h> for <hhah>
- are now legal, but not recommended.
-
- If required, download the ASCII file "apatch.sty" again.
-
---------------------------------------------------------------------------
-04.05.93: Version 2.07c
-
- Fixes:
-
- - a modification that will usually prevent a known bug in Ml-TeX
- from doing too much harm. May be ignored by non-Ml-TeX-users;
- otherwise download the new version of "apatch.sty".
-
---------------------------------------------------------------------------
-26.03.93: Version 2.07b
-
- New features:
-
- - The commands \smallskip, \medskip, \bigskip, \input filename
- work also inside an arabic environment
- - <aa> works like <A>: <kaatib> is like <kAtib>.
- There always was <iy> for <I>, <uw> for <U>.
- - Download the "apatch.sty" ASCII file again if you have already
- installed the version 2.07.
-
---------------------------------------------------------------------------
-25.03.93: Version 2.07a
-
- Fixes:
-
- - There was a subtle interaction with the \tabular environment
- which prevented printing of the user manual.
- - Download the "apatch.sty" ASCII file again if you have already
- installed the version 2.07.
- - The compressed versions have been corrected.
-
---------------------------------------------------------------------------
-22.03.93: Version 2.07
-
- Policy:
-
- - ArabTeX is still free for scientific purposes, but we should
- appreciate receiving an offprint of any publication produced
- by using ArabTeX, for our collection. This does not apply to
- any personal correspondence.
-
- Status:
-
- - There have been extensive changes to all "*.sty" files.
- - Many minor errors have been fixed.
- - There is a new file "aedpatch.sty".
- - The tentative features of version 2.06 have been incorporated.
- - The command processing has been completely reworked and is
- believed to be more robust.
- - The font has not changed.
- - The user manual has not yet been updated; visible changes are
- minor.
-
- New features:
-
- - ArabTeX is now compatible with the EDMAC package for critical
- editions (see TUGboat 11/1, 623-643 (1990)). Just load ArabTeX
- *after* loading EDMAC. The necessary extensions will be loaded
- automatically via "aedpatch.sty".
- - All arguments of EDMAC commands are considered "Roman" text but
- may contain arabic insertions.
-
- Changes and extensions:
-
- - Arabic insertions may now also contain commands.
- - Most Plain TeX or LaTeX commands that make sense in an arabic
- environment are now allowed, as well as in arabic insertions.
- - Font, mode and size changing commands obey the normal grouping
- rules.
- - The commands \footnote and \marginpar work now both in Plain TeX
- and LaTeX mode; observe the different calling conventions!
- - The \marginpar command inside arabic text works also with Plain
- TeX, analogous to the LaTeX \marginpar command; marginal notes
- always go to the right margin. If this feature is used, the user
- may have to adjust the parameters \marginparwidth, \marginparsep,
- and \hsize accordingly.
- - The new options \accentshigh and \accentslow influence the
- positioning of the diacritical marks. \accentslow is the default.
- - The new options \oldtanwin and \newtanwin influence the position
- of <tanwin fa.tha>: on the last consonant or on the final <alif>
- if applicable. Defaults are language dependent.
- - A group of arabic words can be emphasized by overlining; this is
- effected by \emphasize {arabic words}.
- - A group of arabic words, if enclosed in curly braces, is not
- split across a line boundary.
- - A final silent <hah> in Persian can be denoted <h>, <H>, or <T>.
-
- Known problems:
-
- - None at present.
-
- How to move from versions 2.05 - 2.06 to version 2.07:
-
- - Replace all "*.sty" files
- - The fonts "nash14" and "nash14bf" are unchanged.
-
- How to move from versions 2.00 - 2.04 to version 2.07:
-
- - As above; add the manual files "arabdoc*.*" in the directory
- "report" and process them to get the User Manual.
-
- How to move from version 1 (or none at all) to version 2.07:
-
- - Do as above; install the fonts "nash14" and "nash14bf" first
- according to local TeX conventions.
- - If the font "nash10" is still there, delete it.
-
------------------------------------------------------------------------
-02.12.92: Version 2.06
-
- Status:
-
- - This is an experimental version processing some Persian
- features differently; otherwise identical to version 2.05.
- - This version is NOT part of the packages "arabtex.zip" and
- "arabtex.tar.Z"; instead there are additional ASCII files
- "apatch25.sty", "apatch26.sty", and "arab2-06.doc". Thus
- installing it does not destroy a working version 2.05.
- - This version has not been extensively tested.
- - Moving back and forth between versions 2.05 and 2.06 is easy.
-
- - For details: see the file "arab2-06.doc".
-
---------------------------------------------------------------------------
-05.11.92: Version 2.05
-
- Status:
-
- - There is a new User Manual "arabdoc.tex" in the subdirectory
- "report". It contains many examples for the use of ArabTeX;
- some of them also show several small extensions for special
- cases which are not otherwise documented, but supported.
- - The new User Manual is in ArabTeX format for local printing,
- so it serves at the same time as an extensive installation test.
- A hard-copy version is available on request; write to the author
- and enclose DM 10 (outside of Europe US$ 10) to cover printing
- and mailing expenses. For additional DM 5 (US$ 5) you can also
- get the software on diskette (please indicate computer system,
- TeX implementation version, and desired diskette format).
- - The "*.sty" files have been updated so that the system works
- (apparently) exactly as described in the User Manual; some small
- bugs that have shown up in the meantime have been fixed.
-
- Changes and extensions:
-
- - The vowel marks, if shown, are now positioned at about the same
- height from the baseline.
- - Arabic words can be emphasized by overlining.
- - A group of arabic words, if enclosed in curly braces, is not
- split across a line boundary.
- - A final mute "hah" in Persian can be denoted <h>, <H>, or <T>.
-
- How to move from versions 2.00 - 2.04 to version 2.05:
-
- - Replace all "*.sty" files
- - Add the manual files "arabdoc*.*" in the directory "report" and
- process them to get the new User Manual.
- - The fonts "nash14" and "nash14bf" are unchanged.
-
- How to move from version 1 (or none at all) to version 2.05:
-
- - Do as above; install the fonts "nash14" and "nash14bf" first
- according to local TeX conventions.
- - If the font "nash10" is still there, delete it.
-
- Known problems:
-
- - The non-arabic language modes have not been extensively tested.
- - The text file "arabtex.doc" can be used as a first introduction,
- but does not describe all features. For full details, see the
- User Manual.
-
---------------------------------------------------------------------------
-05.08.92: Version 2.04
-
- Status and fixes:
-
- - see also Version 2.03 below
- - "awrite.sty" has been extensively restructured to ease
- further maintenance
- - the storage utilization is somewhat better, the running time
- is about the same as with version 2.02
-
- Changes: only format and contents of THIS file
-
- How to move from version 2.02:
-
- - replace aparse.sty, awrite.sty, aligs.sty
- or: reinstall all *.sty files if that is easier
- - the font has NOT changed, leave it alone
-
- How to move from version 2.00:
-
- - replace all *.sty files, including "apatch.sty" (new)
- - the font has NOT changed, leave it alone
- - there is a new demo for Farsi: "omar.tex"
-
---------------------------------------------------------------------------
-01.08.92: Version 2.03 (not distributed)
-
- Status and fixes:
-
- - a rare but grave bug has been fixed; it made ArabTeX explode
- on <sa'AmaTuN> and a few related words.
- - to fix the bug, the internal interface of "aparse.sty",
- "awrite.sty", and "aligs.sty" had to be altered drastically.
-
- Changes: none
-
---------------------------------------------------------------------------
-03.05.92: Version 2.02
-
- Status and fixes:
-
- - there have been extensive changes to nearly all "*.sty" files
- - the Nasta'liq font is still missing; sorry, but at the moment
- there is no free time to design it. For the meantime, Naskh will
- be substituted automatically, and should be readable.
- - the problem with ^ and _ has been fixed; they now work correctly
- in all modes
- - the <~n> problem has been fixed
- - the prefix <li-> before <alif> with <hamza> below now works, as
- e.g. in <li-'ism>
- - short Arabic quotations may be used in moving arguments in
- LaTeX, e.g. section names, frameboxes, captions, margin notes
- and the like
- - Farsi and related languages: <izafet> and <yah-i-wahdat> now
- seem to work correctly.
-
- Changes:
-
- - in Farsi and related languages, the final <hah> after <a> and
- <e> is NO MORE generated automatically; you have to write it
- explicitly if you want it. THIS IS NO BUG: the old strategy was
- found to be inconsistent.
- - the additional option \showtrue will echo the ASCII input
- verbatim; \showfalse will switch this mode off again. This
- feature is intended for test purposes; it might not work in all
- contexts, and could disappear again.
- - there is a new file "apatch.sty" which is loaded automatically
- and will contain last minute corrections (none at the moment)
-
- Open problems:
-
- - see "bugs" and "fixes" below
-
- Hints:
-
- - with LaTeX, the option "arabtex" should ONLY be followed by its
- local sub-options like "nashbf" or "atrans"; put other options
- BEFORE it and DON'T define any own commands that use "<"; use
- ">" instead.
- - with Plain TeX, define your own macros BEFORE "\input arabtex".
-
- How to move from version 2.00 or 2.01:
-
- - replace all *.sty files, including "apatch.sty" (new)
- - the font has NOT changed, leave it alone
- - there is a new demo for Farsi: "omar.tex"
-
---------------------------------------------------------------------------
-15.04.92: Version 2.01 (was available on direct request)
-
- Status and fixes:
-
- - Temporary patch for the ^ and _ problem (thanks, Bernd Raichle!)
- but still does not work in moving arguments
-
- More known bugs:
-
- - \footnote does not work (we never promised it would, but will
- think about it)
- - \footnotemark may put the mark into unexpected places if used
- within an Arabic Environment; however:
- \footnotetext works outside Arabic Environments even with Arabic
- text in angle brackets
- - the prefix <li-> as in <li-'ism> will produce garbage
- - <~n> will blow up
-
- How to get the version: DON'T, this version is obsolete
-
---------------------------------------------------------------------------
-10.04.92: Version 2.0
-
- Version 2.00 is here at last. See "README".
-
- Changes from version 1:
-
- - now compatible with Plain TeX
- - new (hopefully) better looking font
- - many ligatures generated automatically
- - support for Farsi, Urdu, Pashto, Ottoman, Maghribi
- - some more documentation
- - the input coding has changed slightly
-
- Implementation status:
-
- - all macro files have version number 2.00
- - only fonts nash14 and nash14bf, no nasta`liq font yet available
- - ArabTeX was developed on a PC AT with emTeX and is known also to
- run on a PC XT and a U*IX work station; therefore it is
- supposed to be easily portable
- - language options other than Arabic have not been extensively
- tested
-
- Known bugs:
-
- - control sequences inside of curly braces do not work
- - arabic insertions may still be started with <
- - < is an active character and may conflict with the user's macros
- - ^ and _ do not work correctly in math environments
- - some troubles with <izafet> in Farsi
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
- FAX: +49 - 711 - 7816 370
---------------------------------------------------------------------------
- Copyright (c) 1990 - 1997, Klaus Lagally
---------------------------------------------------------------------------
+CHANGES 25.10.1993
+--------------------------------------------------------------------------
+ ArabTeX Version 2
+ =================
+ (for information on newer versions see the file "changes.txt")
+--------------------------------------------------------------------------
+25.10.93: Version 2.08 (not widely distributed)
+
+ Status:
+
+ - all corrections in version 2.07 have been incorporated; there
+ has been extensive rearrangement of code
+ - all known bugs have been removed
+ - some details in the manual have been rearranged; otherwise
+ the manual is slightly out of date
+
+ Additions:
+
+ - \footnote in Arabic text now also works inside a minipage
+ - more commands are valid inside Arabic text; a complete list
+ appears in the log file
+ - see also versions 2.07a - d below
+
+ How to move from version 2.0x, 0 <= x <= 7d:
+
+ - install all files in the directory TEXINPUT anew
+ - replace "arabdoc.tex", "arabdoc0.tex", "arabdoc.ind" in the
+ directory REPORT
+ - leave the fonts alone
+
+ How to move from version 1 (or none at all) to version 2.08:
+
+ - Do as above; install the fonts "nash14" and "nash14bf" first
+ according to local TeX conventions.
+ - If the font "nash10" is still there, delete it.
+
+--------------------------------------------------------------------------
+01.07.93: Version 2.07d
+
+ Fixes:
+
+ - "quoting" for <sukun> and <wasla> works now correctly.
+ - <H> for silent <hah> in Persian works as described.
+
+ Additions:
+
+ - <j> instead of <^g> for <gim>, and <x> instead of <_h> for <hhah>
+ are now legal, but not recommended.
+
+ If required, download the ASCII file "apatch.sty" again.
+
+--------------------------------------------------------------------------
+04.05.93: Version 2.07c
+
+ Fixes:
+
+ - a modification that will usually prevent a known bug in Ml-TeX
+ from doing too much harm. May be ignored by non-Ml-TeX-users;
+ otherwise download the new version of "apatch.sty".
+
+--------------------------------------------------------------------------
+26.03.93: Version 2.07b
+
+ New features:
+
+ - The commands \smallskip, \medskip, \bigskip, \input filename
+ work also inside an arabic environment
+ - <aa> works like <A>: <kaatib> is like <kAtib>.
+ There always was <iy> for <I>, <uw> for <U>.
+ - Download the "apatch.sty" ASCII file again if you have already
+ installed the version 2.07.
+
+--------------------------------------------------------------------------
+25.03.93: Version 2.07a
+
+ Fixes:
+
+ - There was a subtle interaction with the \tabular environment
+ which prevented printing of the user manual.
+ - Download the "apatch.sty" ASCII file again if you have already
+ installed the version 2.07.
+ - The compressed versions have been corrected.
+
+--------------------------------------------------------------------------
+22.03.93: Version 2.07
+
+ Policy:
+
+ - ArabTeX is still free for scientific purposes, but we should
+ appreciate receiving an offprint of any publication produced
+ by using ArabTeX, for our collection. This does not apply to
+ any personal correspondence.
+
+ Status:
+
+ - There have been extensive changes to all "*.sty" files.
+ - Many minor errors have been fixed.
+ - There is a new file "aedpatch.sty".
+ - The tentative features of version 2.06 have been incorporated.
+ - The command processing has been completely reworked and is
+ believed to be more robust.
+ - The font has not changed.
+ - The user manual has not yet been updated; visible changes are
+ minor.
+
+ New features:
+
+ - ArabTeX is now compatible with the EDMAC package for critical
+ editions (see TUGboat 11/1, 623-643 (1990)). Just load ArabTeX
+ *after* loading EDMAC. The necessary extensions will be loaded
+ automatically via "aedpatch.sty".
+ - All arguments of EDMAC commands are considered "Roman" text but
+ may contain arabic insertions.
+
+ Changes and extensions:
+
+ - Arabic insertions may now also contain commands.
+ - Most Plain TeX or LaTeX commands that make sense in an arabic
+ environment are now allowed, as well as in arabic insertions.
+ - Font, mode and size changing commands obey the normal grouping
+ rules.
+ - The commands \footnote and \marginpar work now both in Plain TeX
+ and LaTeX mode; observe the different calling conventions!
+ - The \marginpar command inside arabic text works also with Plain
+ TeX, analogous to the LaTeX \marginpar command; marginal notes
+ always go to the right margin. If this feature is used, the user
+ may have to adjust the parameters \marginparwidth, \marginparsep,
+ and \hsize accordingly.
+ - The new options \accentshigh and \accentslow influence the
+ positioning of the diacritical marks. \accentslow is the default.
+ - The new options \oldtanwin and \newtanwin influence the position
+ of <tanwin fa.tha>: on the last consonant or on the final <alif>
+ if applicable. Defaults are language dependent.
+ - A group of arabic words can be emphasized by overlining; this is
+ effected by \emphasize {arabic words}.
+ - A group of arabic words, if enclosed in curly braces, is not
+ split across a line boundary.
+ - A final silent <hah> in Persian can be denoted <h>, <H>, or <T>.
+
+ Known problems:
+
+ - None at present.
+
+ How to move from versions 2.05 - 2.06 to version 2.07:
+
+ - Replace all "*.sty" files
+ - The fonts "nash14" and "nash14bf" are unchanged.
+
+ How to move from versions 2.00 - 2.04 to version 2.07:
+
+ - As above; add the manual files "arabdoc*.*" in the directory
+ "report" and process them to get the User Manual.
+
+ How to move from version 1 (or none at all) to version 2.07:
+
+ - Do as above; install the fonts "nash14" and "nash14bf" first
+ according to local TeX conventions.
+ - If the font "nash10" is still there, delete it.
+
+-----------------------------------------------------------------------
+02.12.92: Version 2.06
+
+ Status:
+
+ - This is an experimental version processing some Persian
+ features differently; otherwise identical to version 2.05.
+ - This version is NOT part of the packages "arabtex.zip" and
+ "arabtex.tar.Z"; instead there are additional ASCII files
+ "apatch25.sty", "apatch26.sty", and "arab2-06.doc". Thus
+ installing it does not destroy a working version 2.05.
+ - This version has not been extensively tested.
+ - Moving back and forth between versions 2.05 and 2.06 is easy.
+
+ - For details: see the file "arab2-06.doc".
+
+--------------------------------------------------------------------------
+05.11.92: Version 2.05
+
+ Status:
+
+ - There is a new User Manual "arabdoc.tex" in the subdirectory
+ "report". It contains many examples for the use of ArabTeX;
+ some of them also show several small extensions for special
+ cases which are not otherwise documented, but supported.
+ - The new User Manual is in ArabTeX format for local printing,
+ so it serves at the same time as an extensive installation test.
+ A hard-copy version is available on request; write to the author
+ and enclose DM 10 (outside of Europe US$ 10) to cover printing
+ and mailing expenses. For additional DM 5 (US$ 5) you can also
+ get the software on diskette (please indicate computer system,
+ TeX implementation version, and desired diskette format).
+ - The "*.sty" files have been updated so that the system works
+ (apparently) exactly as described in the User Manual; some small
+ bugs that have shown up in the meantime have been fixed.
+
+ Changes and extensions:
+
+ - The vowel marks, if shown, are now positioned at about the same
+ height from the baseline.
+ - Arabic words can be emphasized by overlining.
+ - A group of arabic words, if enclosed in curly braces, is not
+ split across a line boundary.
+ - A final mute "hah" in Persian can be denoted <h>, <H>, or <T>.
+
+ How to move from versions 2.00 - 2.04 to version 2.05:
+
+ - Replace all "*.sty" files
+ - Add the manual files "arabdoc*.*" in the directory "report" and
+ process them to get the new User Manual.
+ - The fonts "nash14" and "nash14bf" are unchanged.
+
+ How to move from version 1 (or none at all) to version 2.05:
+
+ - Do as above; install the fonts "nash14" and "nash14bf" first
+ according to local TeX conventions.
+ - If the font "nash10" is still there, delete it.
+
+ Known problems:
+
+ - The non-arabic language modes have not been extensively tested.
+ - The text file "arabtex.doc" can be used as a first introduction,
+ but does not describe all features. For full details, see the
+ User Manual.
+
+--------------------------------------------------------------------------
+05.08.92: Version 2.04
+
+ Status and fixes:
+
+ - see also Version 2.03 below
+ - "awrite.sty" has been extensively restructured to ease
+ further maintenance
+ - the storage utilization is somewhat better, the running time
+ is about the same as with version 2.02
+
+ Changes: only format and contents of THIS file
+
+ How to move from version 2.02:
+
+ - replace aparse.sty, awrite.sty, aligs.sty
+ or: reinstall all *.sty files if that is easier
+ - the font has NOT changed, leave it alone
+
+ How to move from version 2.00:
+
+ - replace all *.sty files, including "apatch.sty" (new)
+ - the font has NOT changed, leave it alone
+ - there is a new demo for Farsi: "omar.tex"
+
+--------------------------------------------------------------------------
+01.08.92: Version 2.03 (not distributed)
+
+ Status and fixes:
+
+ - a rare but grave bug has been fixed; it made ArabTeX explode
+ on <sa'AmaTuN> and a few related words.
+ - to fix the bug, the internal interface of "aparse.sty",
+ "awrite.sty", and "aligs.sty" had to be altered drastically.
+
+ Changes: none
+
+--------------------------------------------------------------------------
+03.05.92: Version 2.02
+
+ Status and fixes:
+
+ - there have been extensive changes to nearly all "*.sty" files
+ - the Nasta'liq font is still missing; sorry, but at the moment
+ there is no free time to design it. For the meantime, Naskh will
+ be substituted automatically, and should be readable.
+ - the problem with ^ and _ has been fixed; they now work correctly
+ in all modes
+ - the <~n> problem has been fixed
+ - the prefix <li-> before <alif> with <hamza> below now works, as
+ e.g. in <li-'ism>
+ - short Arabic quotations may be used in moving arguments in
+ LaTeX, e.g. section names, frameboxes, captions, margin notes
+ and the like
+ - Farsi and related languages: <izafet> and <yah-i-wahdat> now
+ seem to work correctly.
+
+ Changes:
+
+ - in Farsi and related languages, the final <hah> after <a> and
+ <e> is NO MORE generated automatically; you have to write it
+ explicitly if you want it. THIS IS NO BUG: the old strategy was
+ found to be inconsistent.
+ - the additional option \showtrue will echo the ASCII input
+ verbatim; \showfalse will switch this mode off again. This
+ feature is intended for test purposes; it might not work in all
+ contexts, and could disappear again.
+ - there is a new file "apatch.sty" which is loaded automatically
+ and will contain last minute corrections (none at the moment)
+
+ Open problems:
+
+ - see "bugs" and "fixes" below
+
+ Hints:
+
+ - with LaTeX, the option "arabtex" should ONLY be followed by its
+ local sub-options like "nashbf" or "atrans"; put other options
+ BEFORE it and DON'T define any own commands that use "<"; use
+ ">" instead.
+ - with Plain TeX, define your own macros BEFORE "\input arabtex".
+
+ How to move from version 2.00 or 2.01:
+
+ - replace all *.sty files, including "apatch.sty" (new)
+ - the font has NOT changed, leave it alone
+ - there is a new demo for Farsi: "omar.tex"
+
+--------------------------------------------------------------------------
+15.04.92: Version 2.01 (was available on direct request)
+
+ Status and fixes:
+
+ - Temporary patch for the ^ and _ problem (thanks, Bernd Raichle!)
+ but still does not work in moving arguments
+
+ More known bugs:
+
+ - \footnote does not work (we never promised it would, but will
+ think about it)
+ - \footnotemark may put the mark into unexpected places if used
+ within an Arabic Environment; however:
+ \footnotetext works outside Arabic Environments even with Arabic
+ text in angle brackets
+ - the prefix <li-> as in <li-'ism> will produce garbage
+ - <~n> will blow up
+
+ How to get the version: DON'T, this version is obsolete
+
+--------------------------------------------------------------------------
+10.04.92: Version 2.0
+
+ Version 2.00 is here at last. See "README".
+
+ Changes from version 1:
+
+ - now compatible with Plain TeX
+ - new (hopefully) better looking font
+ - many ligatures generated automatically
+ - support for Farsi, Urdu, Pashto, Ottoman, Maghribi
+ - some more documentation
+ - the input coding has changed slightly
+
+ Implementation status:
+
+ - all macro files have version number 2.00
+ - only fonts nash14 and nash14bf, no nasta`liq font yet available
+ - ArabTeX was developed on a PC AT with emTeX and is known also to
+ run on a PC XT and a U*IX work station; therefore it is
+ supposed to be easily portable
+ - language options other than Arabic have not been extensively
+ tested
+
+ Known bugs:
+
+ - control sequences inside of curly braces do not work
+ - arabic insertions may still be started with <
+ - < is an active character and may conflict with the user's macros
+ - ^ and _ do not work correctly in math environments
+ - some troubles with <izafet> in Farsi
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+ FAX: +49 - 711 - 7816 370
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 1997, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/doc/txt/hebrew.305 b/language/arabic/arabtex/doc/txt/hebrew.305
index 7e77654aeb..3a15f6ffd7 100644
--- a/language/arabic/arabtex/doc/txt/hebrew.305
+++ b/language/arabic/arabtex/doc/txt/hebrew.305
@@ -1,171 +1,171 @@
-HEBREW.305 17.04.1997
---------------------------------------------------------------------------
- Processing Hebrew with ArabTeX Version 3.05
- ===========================================
- These features are not yet described in the User Manual!
---------------------------------------------------------------------------
-
- To process Hebrew input with ArabTeX, you have to load the Hebrew
- extension "hebtex.sty" that will load several additional modules.
- After ArabTeX has been loaded, proceed as follows:
-
- - with LaTeX2e say: \usepackage {hebtex}
-
- - with LaTeX 2.09: add the style option "hebtex".
-
- - for use with Plain TeX, say "\input hebtex"; ArabTeX AND the
- Hebrew extension will be loaded.
-
- The extension provides a language mode \sethebrew, and several
- common encodings of texts in Hebrew, that may be switched by
- the \setcode command. One of the encodings is compatible with
- Dov Grobgeld's editor HED, so files prepared for HebrewTeX are
- supposed to be compatible, including most HebrewTeX commands
- (the Hebrew date quite probably does NOT work correctly).
- Hebrew "newcode" encoding probably works too, but has not yet
- been tested. In addition, the standard ArabTeX encoding has been
- extended to cater for Hebrew too.
-
- Language switching:
-
- - \sethebrew switches to Hebrew mode, \setarab back to Arabic.
- Remember to switch the encoding and the vowelization mode too!
-
- Standard encoding:
-
- - \setcode {standard} or \setcode {arabtex}
- switches to the standard encoding, defined as follows:
-
- ' aleph b beth g gimel d daleth
- h heh w waw z zayin _h chet
- _t teth y yod k kaph l lamed
- m mem n nun s samekh ` ayin
- p peh .s sade q qof r resh
- ,s sin ^s shin S s(h)in t taw
-
- Note: without punctuation, sin, shin and s(h)in look identical;
- otherwise "sin" has a dot to the left, "shin" has a dot to the
- right, "s(h)in" is the form without a dot.
-
- There are some alternative encodings for soft consonants:
-
- v for b f for p
-
- - \vocalize (default) switches on vowels and special punctuation;
- \novocalize switches them off again.
-
- "dagesh lene" with "bgdkpt" and "mappiq" with "h" is expressed
- by prefixing a dot:
- ".b", ".g", ".d", ".k", ".p", ".t"; ".h"
-
- Vowels are encoded as follows:
-
- short long defective half
- vowels vowels notation vowels
-
- a pathach A qames .a chateph patach
- e segol E sere yod _e sere .e chateph segol
- i chireq I chireq yod .i shewa
- o qames chatuph O cholem waw _o cholem .o chateph qames
- u qibbus U shureq .u no vowel mark
-
- The "matres lectionis" can also be written explicitly, e.g.,
- "_ey" for "E", "iy" for "I", "_ow" for "O"
-
- - "patach furtivum" is written ".a" BEFORE its carrier: "rU.a_h".
-
- - "dagesh forte" is expressed by doubling the consonant; thus two
- equal consonants in sequence (even in \novocalize mode) must
- be separated by some short vowel indicator (or ".u"), if the
- standard encoding is used.
-
- - "dagesh orthophonicum" is coded like "dagesh forte".
-
- - "meteg" is indicated by | after the vowel.
-
- - "maqqef" is -- (en-dash; a single hyphen will be ignored)
-
- - Prefixes may be separated by a single hyphen, which appears in
- the transcription without changing the Hebrew writing.
-
- - For those rare cases where a consonant is missing, input "|
- (quote bar); this may also carry vowels.
-
- - "raphe" and cantillation marks are not supported.
-
- Abbreviations may not be used in this mode as we know of no
- obvious way of indicating them (sorry; any ideas ?).
-
- Other encodings:
-
- - \setcode {hed}, \setcode {newcode} or \setcode {iso8859-8}
- activates the verbatim reading module for the Hebrew characters
- in code positions 128 .. 154 as generated by HED, and also
- in code positions 224 .. 250 ("newcode", ISO 8859-8).
-
- If this encoding is used, vowel points, dagesh and meteg cannot
- be used as they cannot be represented in the input encoding.
- Abbreviations may be expressed by a single or double apostrophe
- (right quote). The final and the medial forms of characters are
- equivalent; ArabTeX chooses the appropriate shape automatically.
-
- - setcode {bhs} switches to the encoding used in the machine-
- readable version of BHS. Add "bhs" as a LaTeX style option,
- or say \input bhs.sty. The line-breaks of the source are
- (usually) respected. BHS line numbers and comments are only
- partially supported.
-
- Transcription systems:
-
- - \transtrue activates the standard ZDMG transcription, and
- there are provisions for additional transcription systems:
-
- - \settrans {zaw) switches to the conventions of "Zeitschrift
- fuer die Alttestamentliche Wissenschaft" (recommended);
-
- - \settrans {gesenius} activates the system used in W. Gesenius'
- Hebrew Grammar, 26th edition (deprecated).
-
- - \settrans {standard} restores the standard ZDMG transcription.
-
- Fonts:
-
- - Presently ArabTeX provides no own Hebrew font but uses the font
- "hclassic" which can be downloaded e.g., from
-
- ftp://noa.huji.ac.il/tex/fonts
- ftp://ftp.dante.de/tex-archive/language/hebrew/fonts
- ftp://ftp.tex.ac.uk/tex-archive/language/hebrew/fonts
-
- This font has been designed by Joel Hoffman, who also wrote some
- macro packages from which we took a few ideas for positioning
- punctuation.
-
- - If no vowel points are required, the standard fonts "DeadSea",
- "OldJaffa", TelAviv", and "Jerusalem" can also be used. They
- are activated by the commands \ds, \oj, \ta, \jm; \hc switches
- to the default "hclassic" font.
-
- - The "Shalom" family of fonts is activated by \shlmold, \shlmscr,
- and \shlmstk. Their vowel points presently do NOT work.
-
- - In case a font is not found but locally available, check and,
- if required, correct the exact spelling of the font name within
- the file "Uheb.fd". There are various variants on the Net.
-
- - Comments and bug reports are welcome.
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
- Copyright (c) 1997, Klaus Lagally
---------------------------------------------------------------------------
-
-
+HEBREW.305 17.04.1997
+--------------------------------------------------------------------------
+ Processing Hebrew with ArabTeX Version 3.05
+ ===========================================
+ These features are not yet described in the User Manual!
+--------------------------------------------------------------------------
+
+ To process Hebrew input with ArabTeX, you have to load the Hebrew
+ extension "hebtex.sty" that will load several additional modules.
+ After ArabTeX has been loaded, proceed as follows:
+
+ - with LaTeX2e say: \usepackage {hebtex}
+
+ - with LaTeX 2.09: add the style option "hebtex".
+
+ - for use with Plain TeX, say "\input hebtex"; ArabTeX AND the
+ Hebrew extension will be loaded.
+
+ The extension provides a language mode \sethebrew, and several
+ common encodings of texts in Hebrew, that may be switched by
+ the \setcode command. One of the encodings is compatible with
+ Dov Grobgeld's editor HED, so files prepared for HebrewTeX are
+ supposed to be compatible, including most HebrewTeX commands
+ (the Hebrew date quite probably does NOT work correctly).
+ Hebrew "newcode" encoding probably works too, but has not yet
+ been tested. In addition, the standard ArabTeX encoding has been
+ extended to cater for Hebrew too.
+
+ Language switching:
+
+ - \sethebrew switches to Hebrew mode, \setarab back to Arabic.
+ Remember to switch the encoding and the vowelization mode too!
+
+ Standard encoding:
+
+ - \setcode {standard} or \setcode {arabtex}
+ switches to the standard encoding, defined as follows:
+
+ ' aleph b beth g gimel d daleth
+ h heh w waw z zayin _h chet
+ _t teth y yod k kaph l lamed
+ m mem n nun s samekh ` ayin
+ p peh .s sade q qof r resh
+ ,s sin ^s shin S s(h)in t taw
+
+ Note: without punctuation, sin, shin and s(h)in look identical;
+ otherwise "sin" has a dot to the left, "shin" has a dot to the
+ right, "s(h)in" is the form without a dot.
+
+ There are some alternative encodings for soft consonants:
+
+ v for b f for p
+
+ - \vocalize (default) switches on vowels and special punctuation;
+ \novocalize switches them off again.
+
+ "dagesh lene" with "bgdkpt" and "mappiq" with "h" is expressed
+ by prefixing a dot:
+ ".b", ".g", ".d", ".k", ".p", ".t"; ".h"
+
+ Vowels are encoded as follows:
+
+ short long defective half
+ vowels vowels notation vowels
+
+ a pathach A qames .a chateph patach
+ e segol E sere yod _e sere .e chateph segol
+ i chireq I chireq yod .i shewa
+ o qames chatuph O cholem waw _o cholem .o chateph qames
+ u qibbus U shureq .u no vowel mark
+
+ The "matres lectionis" can also be written explicitly, e.g.,
+ "_ey" for "E", "iy" for "I", "_ow" for "O"
+
+ - "patach furtivum" is written ".a" BEFORE its carrier: "rU.a_h".
+
+ - "dagesh forte" is expressed by doubling the consonant; thus two
+ equal consonants in sequence (even in \novocalize mode) must
+ be separated by some short vowel indicator (or ".u"), if the
+ standard encoding is used.
+
+ - "dagesh orthophonicum" is coded like "dagesh forte".
+
+ - "meteg" is indicated by | after the vowel.
+
+ - "maqqef" is -- (en-dash; a single hyphen will be ignored)
+
+ - Prefixes may be separated by a single hyphen, which appears in
+ the transcription without changing the Hebrew writing.
+
+ - For those rare cases where a consonant is missing, input "|
+ (quote bar); this may also carry vowels.
+
+ - "raphe" and cantillation marks are not supported.
+
+ Abbreviations may not be used in this mode as we know of no
+ obvious way of indicating them (sorry; any ideas ?).
+
+ Other encodings:
+
+ - \setcode {hed}, \setcode {newcode} or \setcode {iso8859-8}
+ activates the verbatim reading module for the Hebrew characters
+ in code positions 128 .. 154 as generated by HED, and also
+ in code positions 224 .. 250 ("newcode", ISO 8859-8).
+
+ If this encoding is used, vowel points, dagesh and meteg cannot
+ be used as they cannot be represented in the input encoding.
+ Abbreviations may be expressed by a single or double apostrophe
+ (right quote). The final and the medial forms of characters are
+ equivalent; ArabTeX chooses the appropriate shape automatically.
+
+ - setcode {bhs} switches to the encoding used in the machine-
+ readable version of BHS. Add "bhs" as a LaTeX style option,
+ or say \input bhs.sty. The line-breaks of the source are
+ (usually) respected. BHS line numbers and comments are only
+ partially supported.
+
+ Transcription systems:
+
+ - \transtrue activates the standard ZDMG transcription, and
+ there are provisions for additional transcription systems:
+
+ - \settrans {zaw) switches to the conventions of "Zeitschrift
+ fuer die Alttestamentliche Wissenschaft" (recommended);
+
+ - \settrans {gesenius} activates the system used in W. Gesenius'
+ Hebrew Grammar, 26th edition (deprecated).
+
+ - \settrans {standard} restores the standard ZDMG transcription.
+
+ Fonts:
+
+ - Presently ArabTeX provides no own Hebrew font but uses the font
+ "hclassic" which can be downloaded e.g., from
+
+ ftp://noa.huji.ac.il/tex/fonts
+ ftp://ftp.dante.de/tex-archive/language/hebrew/fonts
+ ftp://ftp.tex.ac.uk/tex-archive/language/hebrew/fonts
+
+ This font has been designed by Joel Hoffman, who also wrote some
+ macro packages from which we took a few ideas for positioning
+ punctuation.
+
+ - If no vowel points are required, the standard fonts "DeadSea",
+ "OldJaffa", TelAviv", and "Jerusalem" can also be used. They
+ are activated by the commands \ds, \oj, \ta, \jm; \hc switches
+ to the default "hclassic" font.
+
+ - The "Shalom" family of fonts is activated by \shlmold, \shlmscr,
+ and \shlmstk. Their vowel points presently do NOT work.
+
+ - In case a font is not found but locally available, check and,
+ if required, correct the exact spelling of the font name within
+ the file "Uheb.fd". There are various variants on the Net.
+
+ - Comments and bug reports are welcome.
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+ Copyright (c) 1997, Klaus Lagally
+--------------------------------------------------------------------------
+
+
diff --git a/language/arabic/arabtex/doc/txt/install.txt b/language/arabic/arabtex/doc/txt/install.txt
index c980ef8500..97d86c519f 100644
--- a/language/arabic/arabtex/doc/txt/install.txt
+++ b/language/arabic/arabtex/doc/txt/install.txt
@@ -1,176 +1,176 @@
-INSTALL 17.09.2001
---------------------------------------------------------------------------
- ArabTeX Version 3.10
- ====================
---------------------------------------------------------------------------
- The ArabTeX package is distributed as one of the following
- binary files:
-
- arabtex.zip for PC users:
- The ArabTeX package in compressed ZIP format.
- Unpack with (PK)UNZIP as a directory tree.
-
- arabtex.tar.Z for UNIX users:
- The ArabTeX package in compressed tar format.
- Unpack as a directory tree.
-
- In addition, there may be ASCII files "apatch.sty", "hepatch.sty"
- with last minute corrections. These are not difference files;
- just put them on the TEXINPUT path.
-
- Depending on the server there may also be the unpacked files.
-
- The binary package, if complete, should contain at least:
-
- Main directory: (ASCII files and subdirectories)
- ---------------
- announce.txt describing the current version
- arabtex.htm general information in HTML format
- arabtex.gif the ArabTeX logo
- changes.txt release history and known bugs
- install.txt THIS file
- readme.txt general information
- lppl.txt license information
-
- doc subdirectory containing documentation
- texinput subdirectory containing the TeX macros
- mfinput subdirectory containing the METAFONT sources
- tfm subdirectory containing the TFM font files
- laser.pk subdirectory containing 300 dpi pixel files
- psfonts subdirectory containing T1 Postscript fonts
- examples subdirectory containing some examples
-
- Subdirectory "texinput": (ASCII files)
- ----------------------
- manifest.txt list of contents
- .
- arabtex.sty LaTeX 2e package, LaTeX 2.09 style option: driver
- arabtex.tex loader and patches for use with Plain TeX
- hebtex.tex Hebrew mode: loader for use with Plain TeX
- .
- about 40 ASCII files containing the ArabTeX macros
- .
- miscellaneous utility files (usually not required)
-
- Subdirectory "report": (ASCII files) (deleted)
- ---------------------
- The old user manual that used to be here has been superseded by
- a new PDF version "doc/arabdoc.pdf"
-
- Subdirectory "mfinput": (ASCII files)
- ---------------------
- nash14.mf METAFONT driver file for font nash14
- nash14bf.mf METAFONT driver file for font nash14bf
-
- nash.mf the following files will be loaded automatically:
- nashbase.mf
- nashchar.mf
- nashdia.mf
- nashdig.mf
- nashlig.mf
- nashspec.mf
- arabsymb.mf
-
- hclassic.mf Hebrew font by Joel Hoffman
- hcaption.mf Hebrew font by Joel Hoffman
- hcbase_p.mf
-
- xnsh14.mf driver file for font xnsh14
- xnsh14bf.mf driver file for font xnsh14bf
- several additional files will be loaded on demand
-
- Subdirectory "tfm": (Binary files)
- -------------------
- hclassic.tfm TeX font metrics
- hcaption.tfm
- nash14.tfm TeX font metrics
- nash14bf.tfm
- xnsh14.tfm
- xnsh14bf.tfm
- yarborn.tfm
-
- Subdirectory "laser.pk": (Binary files)
- -------------------
- nash14.300pk bitmaps in PK format at 300 dpi
- nash14.329pk \magstephalf
- nash14.360pk \magstep 1
- nash14.432pk \magstep 2
- nash14.518pk \magstep 3
- nash14.622pk \magstep 4
- nash14.746pk \magstep 5
- nash14bf.300k etc.: the same for the font nash14bf
- analogous files for the other fonts provided
-
- The font files are customized for a HP Laserjet with 300 dpi
- resolution. If that does not suit your needs, recompile the
- sources with METAFONT.
-
- NOTE: On systems using the 8+3 file naming convention you may
- have to move the bitmap files to several directories and to
- rename them according to local conventions.
-
- Subdirectory "psfonts": (Binary files)
- ---------------------
- arabtex.map font description for DVIPS
- xnsh14.pfb T1 font
- xnsh14bf.pfb T1 font
-
- Subdirectory "doc": documentation
- ---------------------
- arabdoc.pdf user manual (incomplete, in progress)
-
- Subdirectory "html": HTML and GIF files
- ---------------------
- arabtex.htm documentation in HTML format
- refer.htm references
- changes.htm current status
- chg310.htm
- some auxiliary files
-
- Subdirectory "txt": ASCII documentation
- ---------------------
- hebrew.305 details on the Hebrew extension
- readme.305 additional details
- arabtex.doc a short introduction (rather old)
- arabtex.faq answers to some Frequently Asked Questions
- arwindos.tex notes on Windows CP 1256 encoding support
- malay.tex
- sindhi.tex notes on various extensions
- uighur.tex
- changes2.txt older release history
-
- Subdirectory "patches": (ASCII) sub-versions
- ---------------------
- apatch.sty current sub-version
- hepatch.sty
- apatch03.10-
- hepatch3.10-
- . former sub-versions as applicable
-
- Subdirectory "examples": (ASCII and binary files)
- ---------------------
- guha.tex a small LaTeX demo
- guha.dvi the demo output in DVI format
- guha.ps the demo output in PostScript format
- omar.tex a small demo for Farsi
- ligtable.tex a LaTeX demo showing many ligatures
- .
- some more example files in PS or DVI format
-
- NOTE: Depending on the structure of your TeX installation you may
- have to move the subdirectories to other places and/or to issue
- some command to refresh the TeX system. This is strongly dependent
- on the local configuration; possibly ask some local TeX guru.
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2001, Klaus Lagally
---------------------------------------------------------------------------
+INSTALL 17.09.2001
+--------------------------------------------------------------------------
+ ArabTeX Version 3.10
+ ====================
+--------------------------------------------------------------------------
+ The ArabTeX package is distributed as one of the following
+ binary files:
+
+ arabtex.zip for PC users:
+ The ArabTeX package in compressed ZIP format.
+ Unpack with (PK)UNZIP as a directory tree.
+
+ arabtex.tar.Z for UNIX users:
+ The ArabTeX package in compressed tar format.
+ Unpack as a directory tree.
+
+ In addition, there may be ASCII files "apatch.sty", "hepatch.sty"
+ with last minute corrections. These are not difference files;
+ just put them on the TEXINPUT path.
+
+ Depending on the server there may also be the unpacked files.
+
+ The binary package, if complete, should contain at least:
+
+ Main directory: (ASCII files and subdirectories)
+ ---------------
+ announce.txt describing the current version
+ arabtex.htm general information in HTML format
+ arabtex.gif the ArabTeX logo
+ changes.txt release history and known bugs
+ install.txt THIS file
+ readme.txt general information
+ lppl.txt license information
+
+ doc subdirectory containing documentation
+ texinput subdirectory containing the TeX macros
+ mfinput subdirectory containing the METAFONT sources
+ tfm subdirectory containing the TFM font files
+ laser.pk subdirectory containing 300 dpi pixel files
+ psfonts subdirectory containing T1 Postscript fonts
+ examples subdirectory containing some examples
+
+ Subdirectory "texinput": (ASCII files)
+ ----------------------
+ manifest.txt list of contents
+ .
+ arabtex.sty LaTeX 2e package, LaTeX 2.09 style option: driver
+ arabtex.tex loader and patches for use with Plain TeX
+ hebtex.tex Hebrew mode: loader for use with Plain TeX
+ .
+ about 40 ASCII files containing the ArabTeX macros
+ .
+ miscellaneous utility files (usually not required)
+
+ Subdirectory "report": (ASCII files) (deleted)
+ ---------------------
+ The old user manual that used to be here has been superseded by
+ a new PDF version "doc/arabdoc.pdf"
+
+ Subdirectory "mfinput": (ASCII files)
+ ---------------------
+ nash14.mf METAFONT driver file for font nash14
+ nash14bf.mf METAFONT driver file for font nash14bf
+
+ nash.mf the following files will be loaded automatically:
+ nashbase.mf
+ nashchar.mf
+ nashdia.mf
+ nashdig.mf
+ nashlig.mf
+ nashspec.mf
+ arabsymb.mf
+
+ hclassic.mf Hebrew font by Joel Hoffman
+ hcaption.mf Hebrew font by Joel Hoffman
+ hcbase_p.mf
+
+ xnsh14.mf driver file for font xnsh14
+ xnsh14bf.mf driver file for font xnsh14bf
+ several additional files will be loaded on demand
+
+ Subdirectory "tfm": (Binary files)
+ -------------------
+ hclassic.tfm TeX font metrics
+ hcaption.tfm
+ nash14.tfm TeX font metrics
+ nash14bf.tfm
+ xnsh14.tfm
+ xnsh14bf.tfm
+ yarborn.tfm
+
+ Subdirectory "laser.pk": (Binary files)
+ -------------------
+ nash14.300pk bitmaps in PK format at 300 dpi
+ nash14.329pk \magstephalf
+ nash14.360pk \magstep 1
+ nash14.432pk \magstep 2
+ nash14.518pk \magstep 3
+ nash14.622pk \magstep 4
+ nash14.746pk \magstep 5
+ nash14bf.300k etc.: the same for the font nash14bf
+ analogous files for the other fonts provided
+
+ The font files are customized for a HP Laserjet with 300 dpi
+ resolution. If that does not suit your needs, recompile the
+ sources with METAFONT.
+
+ NOTE: On systems using the 8+3 file naming convention you may
+ have to move the bitmap files to several directories and to
+ rename them according to local conventions.
+
+ Subdirectory "psfonts": (Binary files)
+ ---------------------
+ arabtex.map font description for DVIPS
+ xnsh14.pfb T1 font
+ xnsh14bf.pfb T1 font
+
+ Subdirectory "doc": documentation
+ ---------------------
+ arabdoc.pdf user manual (incomplete, in progress)
+
+ Subdirectory "html": HTML and GIF files
+ ---------------------
+ arabtex.htm documentation in HTML format
+ refer.htm references
+ changes.htm current status
+ chg310.htm
+ some auxiliary files
+
+ Subdirectory "txt": ASCII documentation
+ ---------------------
+ hebrew.305 details on the Hebrew extension
+ readme.305 additional details
+ arabtex.doc a short introduction (rather old)
+ arabtex.faq answers to some Frequently Asked Questions
+ arwindos.tex notes on Windows CP 1256 encoding support
+ malay.tex
+ sindhi.tex notes on various extensions
+ uighur.tex
+ changes2.txt older release history
+
+ Subdirectory "patches": (ASCII) sub-versions
+ ---------------------
+ apatch.sty current sub-version
+ hepatch.sty
+ apatch03.10-
+ hepatch3.10-
+ . former sub-versions as applicable
+
+ Subdirectory "examples": (ASCII and binary files)
+ ---------------------
+ guha.tex a small LaTeX demo
+ guha.dvi the demo output in DVI format
+ guha.ps the demo output in PostScript format
+ omar.tex a small demo for Farsi
+ ligtable.tex a LaTeX demo showing many ligatures
+ .
+ some more example files in PS or DVI format
+
+ NOTE: Depending on the structure of your TeX installation you may
+ have to move the subdirectories to other places and/or to issue
+ some command to refresh the TeX system. This is strongly dependent
+ on the local configuration; possibly ask some local TeX guru.
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2001, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/doc/txt/kashmiri.tex b/language/arabic/arabtex/doc/txt/kashmiri.tex
index 440de9f94c..cea343cf02 100644
--- a/language/arabic/arabtex/doc/txt/kashmiri.tex
+++ b/language/arabic/arabtex/doc/txt/kashmiri.tex
@@ -1,123 +1,123 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[12pt]{article}
-\usepackage{arabtex}
-\usepackage{kashmiri}
-
-%\advance \topsep -10mm
-%\advance \textwidth 10mm
-%\advance \textheight 10mm
-\parindent 0pt
-\parskip 2mm
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{document}
-\setkashmiri
-
-\title{Kashmiri in Arab\TeX}
-\author {Klaus Lagally}
-%\date {}
-\maketitle
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\makeatletter
-%\urd@false
-
-\begin{table}[tbph]
-\begin{center}
-\Large \tt
-\def <#1>{\<#1> &{\arabfalse \transtrue \<#1>}}
-\begin{tabular}{||c|c|c||c|c|c||c|c|c||c|c|c||}
-\hline
-a &<a> &d &<d> &.d &<.d> &m &<m> \\
-b &<b> &,d &<,d> &.t &<.t> &n &<n> \\
-p &<p> &\_d &<_d> &.z &<.z> &w &<w> \\
-t &<t> &r &<r> &` &<`> &,h &<,h> \\
-,t &<,t> &,r &<,r> &.g &<.g> &y &<y> \\
-\_t &<_t> &z &<z> &f &<f> &h &<h> \\
-j &<j> &\^{}z &<^z> &q &<q> &E &<E> \\
-\^{}c &<^c> &s &<s> &k &<k> &' &<|'> \\
-.h &<.h> &\^{}s &<^s> &g &<g> &T &<T> \\
-\_h &<_h> &.s &<.s> &l &<l> &.y &<B.yB> \\
-\hline
-a &<B|BaB>&i &<B|BiB>&u &<B|BuB>&.o &<B.o> \\
-A &<BA> &I &<BIB> &U &<BU> &.O &<B.O> \\
-.a &<B|B.aB>&.u &<B|B.uB>&o &<Bo> &e &<BeB> \\
-.A &<B.A> &.U &<B|B.UB>&O &<BO> &E &<BEB> \\
-\hline
-\end{tabular}
-\rm
-\caption{The Kashmiri Alphabet}
-\label{codes}
-\end{center}
-\end{table}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bigskip
-
-There is a new experimental Arab\TeX\ language module {\tt kashmiri.sty}
-for processing Kashmiri texts in the extended Perso-Arabic script.
-This mode works only with Arab\TeX\ version 3.08g or later versions,
-and requires the font ``xnash14''.
-
-To activate Kashmiri mode,
-load the module by \verb+\input{kashmiri.sty}+
-(or else \verb+\usepackage{kashmiri}+ with \LaTeX2e),
-and select the language by \verb+\setkashmiri+.
-Kashmiri input texts are encoded in a modification of the
-standard \ArabTeX\ encoding.
-
-The input codes and the default transcription are given
-in Table~\ref {codes} on page~\pageref {codes}.
-The transcription follows the ALA-LC romanization conventions.
-
-Comments on the encoding and the transcription are welcome.
-Kashmiri mode might later
-become part of the \ArabTeX\ system proper;
-in that case explicit loading of the module will no more be necessary.
-
-\iffalse
-%\bigskip
-%Notes:
-\begin{enumerate}
-\itemsep 0pt
-\item
-This is a preliminary version solely
-intended for inspection, experiments, evaluation, and suggestions.
-The final version may differ in details, depending on feedback
-by the users.
-
-\item
-Use hyphens to resolve ambiguities with aspired consonants.
-
-\item
-If the new font is not available,
-the ``wide letter kaf'' is missing.
-We temporarily substitute an ordinary letter kaf with four dots,
-which does not exist, but should be conspicuous enough.
-%Once the font will have been extended, the substitute should disappear.
-
-\item
-Tanween works as expected: \verb+miN+ <miN> , \verb+'|iN+ <'|iN> .
-
-\item
-The user may want to break some ligatures by inserting a vertical bar,
-to get the correct writing, or just for a better appearance of the script.
-
-\end{enumerate}
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bigskip
-
-{Klaus Lagally\\
-Institut f\"ur Informatik\\
-Breitwiesenstra\ss e 20--22\\
-D-70565 Stuttgart\\
-GERMANY\\
-\tt mailto:lagallyk@acm.org}
-%\date{August 06, 1997}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\end{document}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[12pt]{article}
+\usepackage{arabtex}
+\usepackage{kashmiri}
+
+%\advance \topsep -10mm
+%\advance \textwidth 10mm
+%\advance \textheight 10mm
+\parindent 0pt
+\parskip 2mm
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+\setkashmiri
+
+\title{Kashmiri in Arab\TeX}
+\author {Klaus Lagally}
+%\date {}
+\maketitle
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\makeatletter
+%\urd@false
+
+\begin{table}[tbph]
+\begin{center}
+\Large \tt
+\def <#1>{\<#1> &{\arabfalse \transtrue \<#1>}}
+\begin{tabular}{||c|c|c||c|c|c||c|c|c||c|c|c||}
+\hline
+a &<a> &d &<d> &.d &<.d> &m &<m> \\
+b &<b> &,d &<,d> &.t &<.t> &n &<n> \\
+p &<p> &\_d &<_d> &.z &<.z> &w &<w> \\
+t &<t> &r &<r> &` &<`> &,h &<,h> \\
+,t &<,t> &,r &<,r> &.g &<.g> &y &<y> \\
+\_t &<_t> &z &<z> &f &<f> &h &<h> \\
+j &<j> &\^{}z &<^z> &q &<q> &E &<E> \\
+\^{}c &<^c> &s &<s> &k &<k> &' &<|'> \\
+.h &<.h> &\^{}s &<^s> &g &<g> &T &<T> \\
+\_h &<_h> &.s &<.s> &l &<l> &.y &<B.yB> \\
+\hline
+a &<B|BaB>&i &<B|BiB>&u &<B|BuB>&.o &<B.o> \\
+A &<BA> &I &<BIB> &U &<BU> &.O &<B.O> \\
+.a &<B|B.aB>&.u &<B|B.uB>&o &<Bo> &e &<BeB> \\
+.A &<B.A> &.U &<B|B.UB>&O &<BO> &E &<BEB> \\
+\hline
+\end{tabular}
+\rm
+\caption{The Kashmiri Alphabet}
+\label{codes}
+\end{center}
+\end{table}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\bigskip
+
+There is a new experimental Arab\TeX\ language module {\tt kashmiri.sty}
+for processing Kashmiri texts in the extended Perso-Arabic script.
+This mode works only with Arab\TeX\ version 3.08g or later versions,
+and requires the font ``xnash14''.
+
+To activate Kashmiri mode,
+load the module by \verb+\input{kashmiri.sty}+
+(or else \verb+\usepackage{kashmiri}+ with \LaTeX2e),
+and select the language by \verb+\setkashmiri+.
+Kashmiri input texts are encoded in a modification of the
+standard \ArabTeX\ encoding.
+
+The input codes and the default transcription are given
+in Table~\ref {codes} on page~\pageref {codes}.
+The transcription follows the ALA-LC romanization conventions.
+
+Comments on the encoding and the transcription are welcome.
+Kashmiri mode might later
+become part of the \ArabTeX\ system proper;
+in that case explicit loading of the module will no more be necessary.
+
+\iffalse
+%\bigskip
+%Notes:
+\begin{enumerate}
+\itemsep 0pt
+\item
+This is a preliminary version solely
+intended for inspection, experiments, evaluation, and suggestions.
+The final version may differ in details, depending on feedback
+by the users.
+
+\item
+Use hyphens to resolve ambiguities with aspired consonants.
+
+\item
+If the new font is not available,
+the ``wide letter kaf'' is missing.
+We temporarily substitute an ordinary letter kaf with four dots,
+which does not exist, but should be conspicuous enough.
+%Once the font will have been extended, the substitute should disappear.
+
+\item
+Tanween works as expected: \verb+miN+ <miN> , \verb+'|iN+ <'|iN> .
+
+\item
+The user may want to break some ligatures by inserting a vertical bar,
+to get the correct writing, or just for a better appearance of the script.
+
+\end{enumerate}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\bigskip
+
+{Klaus Lagally\\
+Institut f\"ur Informatik\\
+Breitwiesenstra\ss e 20--22\\
+D-70565 Stuttgart\\
+GERMANY\\
+\tt mailto:lagallyk@acm.org}
+%\date{August 06, 1997}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\end{document}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/doc/txt/lppl.txt b/language/arabic/arabtex/doc/txt/lppl.txt
index 66db1e0a90..5b05fe8689 100644
--- a/language/arabic/arabtex/doc/txt/lppl.txt
+++ b/language/arabic/arabtex/doc/txt/lppl.txt
@@ -1,318 +1,318 @@
-
-The LaTeX Project Public License
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-LPPL Version 1.2 1999-09-03
-
-Copyright 1999 LaTeX3 Project
- Everyone is allowed to distribute verbatim copies of this
- license document, but modification of it is not allowed.
-
-
-PREAMBLE
-========
-
-The LaTeX Project Public License (LPPL) is the license under which the
-base LaTeX distribution is distributed.
-
-You may use this license for any program that you have written and wish
-to distribute. This license may be particularly suitable if your
-program is TeX-related (such as a LaTeX package), but you may use it
-even if your program is unrelated to TeX. The section `WHETHER AND HOW
-TO DISTRIBUTE PROGRAMS UNDER THIS LICENSE', below, gives instructions,
-examples, and recommendations for authors who are considering
-distributing their programs under this license.
-
-In this license document, `The Program' refers to any program
-distributed under this license.
-
-This license gives conditions under which The Program may be distributed
-and conditions under which modified versions of The Program may be
-distributed. Individual files of The Program may bear supplementary
-and/or superseding conditions on modification of themselves and on the
-distribution of modified versions of themselves, but *no* file of The
-Program may bear supplementary or superseding conditions on the
-distribution of an unmodified copy of the file. A distributor wishing
-to distribute a complete, unmodified copy of The Program therefore
-needs to check the conditions only in this license and nowhere else.
-
-Activities other than distribution and/or modification of The Program
-are not covered by this license; they are outside its scope. In
-particular, the act of running The Program is not restricted.
-
-We, the LaTeX3 Project, believe that the conditions below give you
-the freedom to make and distribute modified versions of The Program
-that conform with whatever technical specifications you wish while
-maintaining the availability, integrity, and reliability of
-The Program. If you do not see how to achieve your goal while
-meeting these conditions, then read the document `cfgguide.tex'
-in the base LaTeX distribution for suggestions.
-
-
-CONDITIONS ON DISTRIBUTION AND MODIFICATION
-===========================================
-
-You may distribute a complete, unmodified copy of The Program.
-Distribution of only part of The Program is not allowed.
-
-You may not modify in any way a file of The Program that bears a legal
-notice forbidding modification of that file.
-
-You may distribute a modified file of The Program if, and only if, the
-following eight conditions are met:
-
- 1. You must meet any additional conditions borne by the file on the
- distribution of a modified version of the file as described below
- in the subsection `Additional Conditions on Individual Files of
- The Program'.
-
- 2. If the file is a LaTeX software file, then you must meet any
- applicable additional conditions on the distribution of a modified
- version of the file that are described below in the subsection
- `Additional Conditions on LaTeX Software Files'.
-
- 3. You must not distribute the modified file with the filename of the
- original file.
-
- 4. In the modified file, you must acknowledge the authorship and
- name of the original file, and the name (if any) of the program
- which contains it.
-
- 5. You must change any identification string in the file to indicate
- clearly that the modified file is not part of The Program.
-
- 6. You must change any addresses in the modified file for the
- reporting of errors in the file or in The Program generally to
- ensure that reports for files no longer maintained by the original
- maintainers will be directed to the maintainers of the modified
- files.
-
- 7. You must distribute the modified file under a license that forbids
- distribution both of the modified file and of any files derived
- from the modified file with the filename of the original file.
-
- 8. You must do either (A) or (B):
-
- (A) distribute a copy of The Program (that is, a complete,
- unmodified copy of The Program) together with the modified
- file; if your distribution of the modified file is made by
- offering access to copy the modified file from a designated
- place, then offering equivalent access to copy The Program
- from the same place meets this condition, even though third
- parties are not compelled to copy The Program along with the
- modified file;
-
- (B) provide to those who receive the modified file information
- that is sufficient for them to obtain a copy of The Program;
- for example, you may provide a Uniform Resource Locator (URL)
- for a site that you expect will provide them with a copy of
- The Program free of charge (either the version from which
- your modification is derived, or perhaps a later version).
-
-Note that in the above, `distribution' of a file means making the
-file available to others by any means. This includes, for instance,
-installing the file on any machine in such a way that the file is
-accessible by users other than yourself. `Modification' of a file
-means any procedure that produces a derivative file under any
-applicable law -- that is, a file containing the original file or
-a significant portion of it, either verbatim or with modifications
-and/or translated into another language.
-
-Changing the name of a file (other than as necessitated by the file
-conventions of the target file systems) is considered to be a
-modification of the file.
-
-The distribution conditions in this license do not have to be
-applied to files that have been modified in accordance with the
-above conditions. Note, however, that Condition 7. does apply to
-any such modified file.
-
-The conditions above are not intended to prohibit, and hence do not
-apply to, the updating, by any method, of a file so that it becomes
-identical to the latest version of that file of The Program.
-
-
-
-A Recommendation on Modification Without Distribution
------------------------------------------------------
-
-It is wise never to modify a file of The Program, even for your own
-personal use, without also meeting the above eight conditions for
-distributing the modified file. While you might intend that such
-modified files will never be distributed, often this will happen by
-accident -- you may forget that you have modified the file; or it may
-not occur to you when allowing others to access the modified file
-that you are thus distributing it and violating the conditions of
-this license. It is usually in your best interest to keep your copy
-of The Program identical with the public one. Many programs provide
-ways to control the behavior of that program without altering its
-licensed files.
-
-
-Additional Conditions on Individual Files of The Program
---------------------------------------------------------
-
-An individual file of The Program may bear additional conditions that
-supplement and/or supersede the conditions in this license if, and only
-if, such additional conditions exclusively concern modification of the
-file or distribution of a modified version of the file. The conditions
-on individual files of The Program therefore may differ only with
-respect to the kind and extent of modification of those files that
-is allowed, and with respect to the distribution of modified versions
-of those files.
-
-
-Additional Conditions on LaTeX Software Files
----------------------------------------------
-
-If a file of The Program is intended to be used with LaTeX (that is,
-if it is a LaTeX software file), then the following additional
-conditions, which supplement and/or supersede the conditions
-above, apply to the file according to its filename extension:
-
- - You may not modify any file with filename extension `.ins' since
- these are installation files containing the legal notices that are
- placed in the files they generate.
-
- - You may distribute modified versions of files with filename
- extension `.fd' (LaTeX font definition files) under the standard
- conditions of the LPPL as described above. You may also distribute
- such modified LaTeX font definition files with their original names
- provided that:
- (1) the only changes to the original files either enable use of
- available fonts or prevent attempts to access unavailable fonts;
- (2) you also distribute the original, unmodified files (TeX input
- paths can be used to control which set of LaTeX font definition
- files is actually used by TeX).
-
- - You may distribute modified versions of files with filename
- extension `.cfg' (configuration files) with their original names.
- The Program may (and usually will) specify the range of commands
- that are allowed in a particular configuration file.
-
-Because of portability and exchangeability issues in LaTeX software,
-The LaTeX3 Project deprecates the distribution of modified versions of
-components of LaTeX or of generally available contributed code for them,
-but such distribution can meet the conditions of this license.
-
-
-NO WARRANTY
-===========
-
-There is no warranty for The Program. Except when otherwise stated in
-writing, The Copyright Holder provides The Program `as is', without
-warranty of any kind, either expressed or implied, including, but not
-limited to, the implied warranties of merchantability and fitness for
-a particular purpose. The entire risk as to the quality and performance
-of The Program is with you. Should The Program prove defective, you
-assume the cost of all necessary servicing, repair, or correction.
-
-In no event unless agreed to in writing will The Copyright Holder, or
-any author named in the files of The Program, or any other party who may
-distribute and/or modify The Program as permitted above, be liable to
-you for damages, including any general, special, incidental or
-consequential damages arising out of any use of The Program or out of
-inability to use The Program (including, but not limited to, loss of
-data, data being rendered inaccurate, or losses sustained by anyone as
-a result of any failure of The Program to operate with any other
-programs), even if The Copyright Holder or said author or said other
-party has been advised of the possibility of such damages.
-
-
-WHETHER AND HOW TO DISTRIBUTE PROGRAMS UNDER THIS LICENSE
-=========================================================
-
-This section contains important instructions, examples, and
-recommendations for authors who are considering distributing their
-programs under this license. These authors are addressed as `you' in
-this section.
-
-
-Choosing This License or Another License
-----------------------------------------
-
-If for any part of your program you want or need to use *distribution*
-conditions that differ from those in this license, then do not refer to
-this license anywhere in your program but instead distribute your
-program under a different license. You may use the text of this license
-as a model for your own license, but your license should not refer to
-the LPPL or otherwise give the impression that your program is
-distributed under the LPPL.
-
-The document `modguide.tex' in the base LaTeX distribution explains
-the motivation behind the conditions of this license. It explains,
-for example, why distributing LaTeX under the GNU General Public
-License (GPL) was considered inappropriate. Even if your program is
-unrelated to LaTeX, the discussion in `modguide.tex' may still be
-relevant, and authors intending to distribute their programs under any
-license are encouraged to read it.
-
-
-How to Use This License
------------------------
-
-To use this license, place in each of the files of your program both
-an explicit copyright notice including your name and the year and also
-a statement that the distribution and/or modification of the file is
-constrained by the conditions in this license.
-
-Here is an example of such a notice and statement:
-
- %% pig.dtx
- %% Copyright 2001 M. Y. Name
- %
- % This program may be distributed and/or modified under the
- % conditions of the LaTeX Project Public License, either version 1.2
- % of this license or (at your option) any later version.
- % The latest version of this license is in
- % http://www.latex-project.org/lppl.txt
- % and version 1.2 or later is part of all distributions of LaTeX
- % version 1999/12/01 or later.
- %
- % This program consists of the files pig.dtx and pig.ins
-
-Given such a notice and statement in a file, the conditions given in
-this license document would apply, with `The Program' referring to the
-two files `pig.dtx' and `pig.ins', and `The Copyright Holder' referring
-to the person `M. Y. Name'.
-
-
-Important Recommendations
--------------------------
-
- Defining What Constitutes The Program
-
- The LPPL requires that distributions of The Program contain all the
- files of The Program. It is therefore important that you provide a
- way for the licensee to determine which files constitute The Program.
- This could, for example, be achieved by explicitly listing all the
- files of The Program near the copyright notice of each file or by
- using a line like
-
- % This program consists of all files listed in manifest.txt.
-
- in that place. In the absence of an unequivocal list it might be
- impossible for the licensee to determine what is considered by you
- to comprise The Program.
-
- Noting Exceptional Files
-
- If The Program contains any files bearing additional conditions on
- modification, or on distribution of modified versions, of those
- files (other than those listed in `Additional Conditions on LaTeX
- Software Files'), then it is recommended that The Program contain a
- prominent file that defines the exceptional conditions, and either
- lists the exceptional files or defines one or more categories of
- exceptional files.
-
- Files containing the text of a license (such as this file) are
- often examples of files bearing more restrictive conditions on
- modification. LaTeX configuration files (with filename extension
- `.cfg') are examples of files bearing less restrictive conditions
- on the distribution of a modified version of the file. The
- additional conditions on LaTeX software given above are examples
- of declaring a category of files bearing exceptional additional
- conditions.
-
-
-
+
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.2 1999-09-03
+
+Copyright 1999 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the license under which the
+base LaTeX distribution is distributed.
+
+You may use this license for any program that you have written and wish
+to distribute. This license may be particularly suitable if your
+program is TeX-related (such as a LaTeX package), but you may use it
+even if your program is unrelated to TeX. The section `WHETHER AND HOW
+TO DISTRIBUTE PROGRAMS UNDER THIS LICENSE', below, gives instructions,
+examples, and recommendations for authors who are considering
+distributing their programs under this license.
+
+In this license document, `The Program' refers to any program
+distributed under this license.
+
+This license gives conditions under which The Program may be distributed
+and conditions under which modified versions of The Program may be
+distributed. Individual files of The Program may bear supplementary
+and/or superseding conditions on modification of themselves and on the
+distribution of modified versions of themselves, but *no* file of The
+Program may bear supplementary or superseding conditions on the
+distribution of an unmodified copy of the file. A distributor wishing
+to distribute a complete, unmodified copy of The Program therefore
+needs to check the conditions only in this license and nowhere else.
+
+Activities other than distribution and/or modification of The Program
+are not covered by this license; they are outside its scope. In
+particular, the act of running The Program is not restricted.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of The Program
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+The Program. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+in the base LaTeX distribution for suggestions.
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+You may distribute a complete, unmodified copy of The Program.
+Distribution of only part of The Program is not allowed.
+
+You may not modify in any way a file of The Program that bears a legal
+notice forbidding modification of that file.
+
+You may distribute a modified file of The Program if, and only if, the
+following eight conditions are met:
+
+ 1. You must meet any additional conditions borne by the file on the
+ distribution of a modified version of the file as described below
+ in the subsection `Additional Conditions on Individual Files of
+ The Program'.
+
+ 2. If the file is a LaTeX software file, then you must meet any
+ applicable additional conditions on the distribution of a modified
+ version of the file that are described below in the subsection
+ `Additional Conditions on LaTeX Software Files'.
+
+ 3. You must not distribute the modified file with the filename of the
+ original file.
+
+ 4. In the modified file, you must acknowledge the authorship and
+ name of the original file, and the name (if any) of the program
+ which contains it.
+
+ 5. You must change any identification string in the file to indicate
+ clearly that the modified file is not part of The Program.
+
+ 6. You must change any addresses in the modified file for the
+ reporting of errors in the file or in The Program generally to
+ ensure that reports for files no longer maintained by the original
+ maintainers will be directed to the maintainers of the modified
+ files.
+
+ 7. You must distribute the modified file under a license that forbids
+ distribution both of the modified file and of any files derived
+ from the modified file with the filename of the original file.
+
+ 8. You must do either (A) or (B):
+
+ (A) distribute a copy of The Program (that is, a complete,
+ unmodified copy of The Program) together with the modified
+ file; if your distribution of the modified file is made by
+ offering access to copy the modified file from a designated
+ place, then offering equivalent access to copy The Program
+ from the same place meets this condition, even though third
+ parties are not compelled to copy The Program along with the
+ modified file;
+
+ (B) provide to those who receive the modified file information
+ that is sufficient for them to obtain a copy of The Program;
+ for example, you may provide a Uniform Resource Locator (URL)
+ for a site that you expect will provide them with a copy of
+ The Program free of charge (either the version from which
+ your modification is derived, or perhaps a later version).
+
+Note that in the above, `distribution' of a file means making the
+file available to others by any means. This includes, for instance,
+installing the file on any machine in such a way that the file is
+accessible by users other than yourself. `Modification' of a file
+means any procedure that produces a derivative file under any
+applicable law -- that is, a file containing the original file or
+a significant portion of it, either verbatim or with modifications
+and/or translated into another language.
+
+Changing the name of a file (other than as necessitated by the file
+conventions of the target file systems) is considered to be a
+modification of the file.
+
+The distribution conditions in this license do not have to be
+applied to files that have been modified in accordance with the
+above conditions. Note, however, that Condition 7. does apply to
+any such modified file.
+
+The conditions above are not intended to prohibit, and hence do not
+apply to, the updating, by any method, of a file so that it becomes
+identical to the latest version of that file of The Program.
+
+
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a file of The Program, even for your own
+personal use, without also meeting the above eight conditions for
+distributing the modified file. While you might intend that such
+modified files will never be distributed, often this will happen by
+accident -- you may forget that you have modified the file; or it may
+not occur to you when allowing others to access the modified file
+that you are thus distributing it and violating the conditions of
+this license. It is usually in your best interest to keep your copy
+of The Program identical with the public one. Many programs provide
+ways to control the behavior of that program without altering its
+licensed files.
+
+
+Additional Conditions on Individual Files of The Program
+--------------------------------------------------------
+
+An individual file of The Program may bear additional conditions that
+supplement and/or supersede the conditions in this license if, and only
+if, such additional conditions exclusively concern modification of the
+file or distribution of a modified version of the file. The conditions
+on individual files of The Program therefore may differ only with
+respect to the kind and extent of modification of those files that
+is allowed, and with respect to the distribution of modified versions
+of those files.
+
+
+Additional Conditions on LaTeX Software Files
+---------------------------------------------
+
+If a file of The Program is intended to be used with LaTeX (that is,
+if it is a LaTeX software file), then the following additional
+conditions, which supplement and/or supersede the conditions
+above, apply to the file according to its filename extension:
+
+ - You may not modify any file with filename extension `.ins' since
+ these are installation files containing the legal notices that are
+ placed in the files they generate.
+
+ - You may distribute modified versions of files with filename
+ extension `.fd' (LaTeX font definition files) under the standard
+ conditions of the LPPL as described above. You may also distribute
+ such modified LaTeX font definition files with their original names
+ provided that:
+ (1) the only changes to the original files either enable use of
+ available fonts or prevent attempts to access unavailable fonts;
+ (2) you also distribute the original, unmodified files (TeX input
+ paths can be used to control which set of LaTeX font definition
+ files is actually used by TeX).
+
+ - You may distribute modified versions of files with filename
+ extension `.cfg' (configuration files) with their original names.
+ The Program may (and usually will) specify the range of commands
+ that are allowed in a particular configuration file.
+
+Because of portability and exchangeability issues in LaTeX software,
+The LaTeX3 Project deprecates the distribution of modified versions of
+components of LaTeX or of generally available contributed code for them,
+but such distribution can meet the conditions of this license.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for The Program. Except when otherwise stated in
+writing, The Copyright Holder provides The Program `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for
+a particular purpose. The entire risk as to the quality and performance
+of The Program is with you. Should The Program prove defective, you
+assume the cost of all necessary servicing, repair, or correction.
+
+In no event unless agreed to in writing will The Copyright Holder, or
+any author named in the files of The Program, or any other party who may
+distribute and/or modify The Program as permitted above, be liable to
+you for damages, including any general, special, incidental or
+consequential damages arising out of any use of The Program or out of
+inability to use The Program (including, but not limited to, loss of
+data, data being rendered inaccurate, or losses sustained by anyone as
+a result of any failure of The Program to operate with any other
+programs), even if The Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+WHETHER AND HOW TO DISTRIBUTE PROGRAMS UNDER THIS LICENSE
+=========================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+programs under this license. These authors are addressed as `you' in
+this section.
+
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your program you want or need to use *distribution*
+conditions that differ from those in this license, then do not refer to
+this license anywhere in your program but instead distribute your
+program under a different license. You may use the text of this license
+as a model for your own license, but your license should not refer to
+the LPPL or otherwise give the impression that your program is
+distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your program is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their programs under any
+license are encouraged to read it.
+
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the files of your program both
+an explicit copyright notice including your name and the year and also
+a statement that the distribution and/or modification of the file is
+constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2001 M. Y. Name
+ %
+ % This program may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.2
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.2 or later is part of all distributions of LaTeX
+ % version 1999/12/01 or later.
+ %
+ % This program consists of the files pig.dtx and pig.ins
+
+Given such a notice and statement in a file, the conditions given in
+this license document would apply, with `The Program' referring to the
+two files `pig.dtx' and `pig.ins', and `The Copyright Holder' referring
+to the person `M. Y. Name'.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes The Program
+
+ The LPPL requires that distributions of The Program contain all the
+ files of The Program. It is therefore important that you provide a
+ way for the licensee to determine which files constitute The Program.
+ This could, for example, be achieved by explicitly listing all the
+ files of The Program near the copyright notice of each file or by
+ using a line like
+
+ % This program consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise The Program.
+
+ Noting Exceptional Files
+
+ If The Program contains any files bearing additional conditions on
+ modification, or on distribution of modified versions, of those
+ files (other than those listed in `Additional Conditions on LaTeX
+ Software Files'), then it is recommended that The Program contain a
+ prominent file that defines the exceptional conditions, and either
+ lists the exceptional files or defines one or more categories of
+ exceptional files.
+
+ Files containing the text of a license (such as this file) are
+ often examples of files bearing more restrictive conditions on
+ modification. LaTeX configuration files (with filename extension
+ `.cfg') are examples of files bearing less restrictive conditions
+ on the distribution of a modified version of the file. The
+ additional conditions on LaTeX software given above are examples
+ of declaring a category of files bearing exceptional additional
+ conditions.
+
+
+
diff --git a/language/arabic/arabtex/doc/txt/malay.tex b/language/arabic/arabtex/doc/txt/malay.tex
index bec04dbad1..52ccf78862 100644
--- a/language/arabic/arabtex/doc/txt/malay.tex
+++ b/language/arabic/arabtex/doc/txt/malay.tex
@@ -1,61 +1,61 @@
-\documentclass[12pt]{article}
-\usepackage{arabtex}
-
-\parindent 0pt
-\parskip 2mm
-
-\advance \textwidth 10mm
-\advance \textheight 10mm
-\thispagestyle{empty}
-
-\makeatletter
-\def \({\a@verb}
-\makeatother
-
-\begin{document}
-\title{Old Malay in Arab\TeX}
-\author
-{Klaus Lagally\\
-Institut f\"ur Informatik\\
-Breitwiesenstra\ss e 20--22\\
-D-70565 Stuttgart\\
-GERMANY\\
-\tt mailto:lagallyk@acm.org
-}
-\date{August 06, 1997}
-\maketitle
-
-\setmalay
-%\vocalize
-
-\vspace*{-05mm}
-There is a new Arab\TeX\ language mode, \verb+\setmalay+,
-for processing Old Malay texts in the extended Arabic writing.
-
-This mode works only with Arab\TeX\ version 3.06 or later.
-
-Old Malay input texts are encoded in a modification of the
-standard \ArabTeX\ encoding, see below.
-
-This language mode is strictly experimental
-and expected to contain many errors.
-Please report your experience and suggestions
-for changes and improvements to the author.
-
-Additional encodings (note the variants):
-
-\begin{center}
-\Large
-\begin{tabular}{|cc|c|}
-\hline
-\verb+p+ & &<p> \\
-\verb+g+ & &<g> \\
-\verb+v+ & &<v> \\
-\verb+ng+ &\verb+~g+ &<ng>\\
-\verb+ny+ &\verb+~n+ &<ny>\\
-\verb+c+ &\verb+^c+ &<c> \\
-\hline
-\end{tabular}
-\end{center}
-
-\end{document}
+\documentclass[12pt]{article}
+\usepackage{arabtex}
+
+\parindent 0pt
+\parskip 2mm
+
+\advance \textwidth 10mm
+\advance \textheight 10mm
+\thispagestyle{empty}
+
+\makeatletter
+\def \({\a@verb}
+\makeatother
+
+\begin{document}
+\title{Old Malay in Arab\TeX}
+\author
+{Klaus Lagally\\
+Institut f\"ur Informatik\\
+Breitwiesenstra\ss e 20--22\\
+D-70565 Stuttgart\\
+GERMANY\\
+\tt mailto:lagallyk@acm.org
+}
+\date{August 06, 1997}
+\maketitle
+
+\setmalay
+%\vocalize
+
+\vspace*{-05mm}
+There is a new Arab\TeX\ language mode, \verb+\setmalay+,
+for processing Old Malay texts in the extended Arabic writing.
+
+This mode works only with Arab\TeX\ version 3.06 or later.
+
+Old Malay input texts are encoded in a modification of the
+standard \ArabTeX\ encoding, see below.
+
+This language mode is strictly experimental
+and expected to contain many errors.
+Please report your experience and suggestions
+for changes and improvements to the author.
+
+Additional encodings (note the variants):
+
+\begin{center}
+\Large
+\begin{tabular}{|cc|c|}
+\hline
+\verb+p+ & &<p> \\
+\verb+g+ & &<g> \\
+\verb+v+ & &<v> \\
+\verb+ng+ &\verb+~g+ &<ng>\\
+\verb+ny+ &\verb+~n+ &<ny>\\
+\verb+c+ &\verb+^c+ &<c> \\
+\hline
+\end{tabular}
+\end{center}
+
+\end{document}
diff --git a/language/arabic/arabtex/doc/txt/miktex.mai b/language/arabic/arabtex/doc/txt/miktex.mai
index 0f1be054e5..72df847109 100644
--- a/language/arabic/arabtex/doc/txt/miktex.mai
+++ b/language/arabic/arabtex/doc/txt/miktex.mai
@@ -1,93 +1,93 @@
-From - Fri Oct 25 14:03:48 2002
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <pbb@aero-optics.com>
-Received: from ifi.informatik.uni-stuttgart.de (ifi [129.69.211.1])
- by informatik.uni-stuttgart.de (8.9.3/8.9.3) with ESMTP id VAA11776
- for <lagally@linde.informatik.uni-stuttgart.de>; Thu, 24 Oct 2002 21:48:24 +0200
-Received: from alias.acm.org (alias.acm.org [199.222.69.90]) by ifi.informatik.uni-stuttgart.de (8.9.3/2.2) with ESMTP id VAA19114 for <lagally@informatik.uni-stuttgart.de>; Thu, 24 Oct 2002 21:48:22 +0200 (MET DST)
-Received: from mr3.ash.ops.us.uu.net ([198.5.241.88])
- by alias.acm.org (ACM Email Forwarding Service) with ESMTP id COB73880
- for <lagallyk@acm.org>; Thu, 24 Oct 2002 15:49:48 -0400
-Received: from aero-optics.com by mr3.ash.ops.us.uu.net with ESMTP
- (peer crosschecked as: AeroOptics-GW.CUSTOMER.DSL.ALTER.NET [206.114.228.171])
- id QQnlzr17811
- for <lagallyk@acm.org>; Thu, 24 Oct 2002 19:48:19 GMT
-Message-ID: <3DB84F29.3ED9EB87@aero-optics.com>
-Date: Thu, 24 Oct 2002 12:51:05 -0700
-From: "Peter B.C. Barton" <pbb@aero-optics.com>
-X-Sender: "Peter B.C. Barton" <mail247815@mail247815.smtpserver.pop.net> (Unverified)
-X-Mailer: Mozilla 4.61 [en]C-gatewaynet (WinNT; I)
-X-Accept-Language: en
-MIME-Version: 1.0
-To: lagallyk@acm.org
-Subject: Re: ArabTeX on the PC
-References: <3DB80D10.31734B8@aero-optics.com> <3DB844A2.9040900@informatik.uni-stuttgart.de>
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-Professor Lagally,
-
-Your instructions and help are greatly appreciated. You asked to be notified
-if your instructions work - YES they do! For future reference (for other lost
-souls) the MiKTeX database is refreshed by running config.bat found in the
-C:\texmf\miktex\config directory.
-
-Peter Barton
-
-
-
-
-
-Klaus Lagally wrote:
-
-> Peter B.C. Barton wrote:
-> > Professor Lagally,
-> >
-> > I am not a "TeXpert" and have a question regarding ArabTeX compatibility
-> > on the PC. The ArabTeX homepage specifically mentions PCTeX and
-> > emTeX. I was hoping to employ ArabTeX using MiKTeX. I understand
-> > that ArabTeX will run on any standard implementation of TeX/LaTeX but I
-> > am not able to determine if MiKTeX is standard or non-standard. I
-> > would appreciate any words of advice.
-> >
-> > regards,
-> >
-> > Peter Barton
->
-> MiKTeX is standard, and works well with ArabTeX. As far as I know MiKTeX
-> uses the standard TeX Directory Structure; to install ArabTeX do the
-> following (according to folklore I cannot check):
->
-> - unpack ARABTEX.ZIP into some temporary directory, keeping the
-> subdirectory structure intact.
->
-> - locate your LOCAL TeXMF tree (probably C:\localtexmf\) and therein create:
->
-> -- a subdirectory \tex\latex\arabtex\ for all files within TEXINPUT
-> -- a subdirectory \fonts\tfm\arabtex\ for all files within TFM
-> -- a subdirectory \fonts\source\arabtex\ for all files within MFINPUT
-> -- a subdirectory \fonts\type1\arabtex\ for all files within PSFONTS
->
-> - move the files to the appropriate places. The file PSFONTS\arabtex.map
-> is used by DVIPS and should possibly go somewhere else, according to
-> your local needs.
->
-> - call "texhash" or "texconfig" (or whatever the command is) to refresh
-> your TeX file name database.
->
-> - move the documentation and whatever else is left over to some
-> convenient place.
->
-> This is all I know about MiKTeX. Since I do not run Windows I cannot
-> check everything; please tell me if it works.
->
-> Good luck!
->
-> KL
-> --
-> Prof. Dr. Klaus Lagally | mailto:lagally@informatik.uni-stuttgart.de
-> Institut fuer Informatik | Tel. +49-711-7816392 | Zeige mir deine Uhr,
-> Breitwiesenstrasse 20-22 | FAX +49-711-7816370 | und ich sage dir,
-> 70565 Stuttgart, GERMANY | | wie spaet es ist.
->
+From - Fri Oct 25 14:03:48 2002
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <pbb@aero-optics.com>
+Received: from ifi.informatik.uni-stuttgart.de (ifi [129.69.211.1])
+ by informatik.uni-stuttgart.de (8.9.3/8.9.3) with ESMTP id VAA11776
+ for <lagally@linde.informatik.uni-stuttgart.de>; Thu, 24 Oct 2002 21:48:24 +0200
+Received: from alias.acm.org (alias.acm.org [199.222.69.90]) by ifi.informatik.uni-stuttgart.de (8.9.3/2.2) with ESMTP id VAA19114 for <lagally@informatik.uni-stuttgart.de>; Thu, 24 Oct 2002 21:48:22 +0200 (MET DST)
+Received: from mr3.ash.ops.us.uu.net ([198.5.241.88])
+ by alias.acm.org (ACM Email Forwarding Service) with ESMTP id COB73880
+ for <lagallyk@acm.org>; Thu, 24 Oct 2002 15:49:48 -0400
+Received: from aero-optics.com by mr3.ash.ops.us.uu.net with ESMTP
+ (peer crosschecked as: AeroOptics-GW.CUSTOMER.DSL.ALTER.NET [206.114.228.171])
+ id QQnlzr17811
+ for <lagallyk@acm.org>; Thu, 24 Oct 2002 19:48:19 GMT
+Message-ID: <3DB84F29.3ED9EB87@aero-optics.com>
+Date: Thu, 24 Oct 2002 12:51:05 -0700
+From: "Peter B.C. Barton" <pbb@aero-optics.com>
+X-Sender: "Peter B.C. Barton" <mail247815@mail247815.smtpserver.pop.net> (Unverified)
+X-Mailer: Mozilla 4.61 [en]C-gatewaynet (WinNT; I)
+X-Accept-Language: en
+MIME-Version: 1.0
+To: lagallyk@acm.org
+Subject: Re: ArabTeX on the PC
+References: <3DB80D10.31734B8@aero-optics.com> <3DB844A2.9040900@informatik.uni-stuttgart.de>
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Professor Lagally,
+
+Your instructions and help are greatly appreciated. You asked to be notified
+if your instructions work - YES they do! For future reference (for other lost
+souls) the MiKTeX database is refreshed by running config.bat found in the
+C:\texmf\miktex\config directory.
+
+Peter Barton
+
+
+
+
+
+Klaus Lagally wrote:
+
+> Peter B.C. Barton wrote:
+> > Professor Lagally,
+> >
+> > I am not a "TeXpert" and have a question regarding ArabTeX compatibility
+> > on the PC. The ArabTeX homepage specifically mentions PCTeX and
+> > emTeX. I was hoping to employ ArabTeX using MiKTeX. I understand
+> > that ArabTeX will run on any standard implementation of TeX/LaTeX but I
+> > am not able to determine if MiKTeX is standard or non-standard. I
+> > would appreciate any words of advice.
+> >
+> > regards,
+> >
+> > Peter Barton
+>
+> MiKTeX is standard, and works well with ArabTeX. As far as I know MiKTeX
+> uses the standard TeX Directory Structure; to install ArabTeX do the
+> following (according to folklore I cannot check):
+>
+> - unpack ARABTEX.ZIP into some temporary directory, keeping the
+> subdirectory structure intact.
+>
+> - locate your LOCAL TeXMF tree (probably C:\localtexmf\) and therein create:
+>
+> -- a subdirectory \tex\latex\arabtex\ for all files within TEXINPUT
+> -- a subdirectory \fonts\tfm\arabtex\ for all files within TFM
+> -- a subdirectory \fonts\source\arabtex\ for all files within MFINPUT
+> -- a subdirectory \fonts\type1\arabtex\ for all files within PSFONTS
+>
+> - move the files to the appropriate places. The file PSFONTS\arabtex.map
+> is used by DVIPS and should possibly go somewhere else, according to
+> your local needs.
+>
+> - call "texhash" or "texconfig" (or whatever the command is) to refresh
+> your TeX file name database.
+>
+> - move the documentation and whatever else is left over to some
+> convenient place.
+>
+> This is all I know about MiKTeX. Since I do not run Windows I cannot
+> check everything; please tell me if it works.
+>
+> Good luck!
+>
+> KL
+> --
+> Prof. Dr. Klaus Lagally | mailto:lagally@informatik.uni-stuttgart.de
+> Institut fuer Informatik | Tel. +49-711-7816392 | Zeige mir deine Uhr,
+> Breitwiesenstrasse 20-22 | FAX +49-711-7816370 | und ich sage dir,
+> 70565 Stuttgart, GERMANY | | wie spaet es ist.
+>
diff --git a/language/arabic/arabtex/doc/txt/readme.305 b/language/arabic/arabtex/doc/txt/readme.305
index 79edc535ef..b5fb8a6d01 100644
--- a/language/arabic/arabtex/doc/txt/readme.305
+++ b/language/arabic/arabtex/doc/txt/readme.305
@@ -1,155 +1,155 @@
-README.305 15.03.1997
---------------------------------------------------------------------------
- ArabTeX Version 3.05
- ====================
---------------------------------------------------------------------------
- Additional features not described in the User Manual
-
-| For changes after version 3.02 see change bars in the margin
---------------------------------------------------------------------------
-
- 1. Bidirectional linebreaking
- -----------------------------
- Within a Roman paragraph, Arabic insertions may be included
- by the construct \<Arabic text> ( <Arabic text> initially does
- the same but may be redefined by the user for other purposes).
- This construct, though efficient, has the inherent limitation
- that the contents must fit on the current line, or else the
- user has to break the text by \| or \break at some reasonable
- place. Likewise, within an Arabic paragraph Roman insertions
- may be included by <Roman text>, with the same limitations.
-
- In many cases, as e.g. in the User Manual, insertions are very
- short by nature, so the limitations pose no problem. For other
- applications where the included quotations are much longer than
- part of a line, some additional commands are provided. These are
-| much less efficient and also have a high demand on storage, so
-| they should only be used when necessary.
-
- - \RL {Arabic text} allows an insertion of arbitrary length; the
- lines will be broken automatically. Due to some limitations that
- are inherent in TeX's algorithm, the line containing the start of
- the insertion may come out underfull, and also its baseline may be
- broken. Whenever this happens (only in main vertical mode, never
- within footnotes, parboxes, or minipages), use of the command
- \goodpar {paragraphs} may help (see below.)
-
- - \LR {Roman text} does the same for long Roman insertions in an
- Arabic paragraph. Here there is no problem with the baseline.
-
- - \goodpar {Roman paragraphs} will fix the problems with \RL for
- insertions within the included paragraphs, but might lead to main
- memory overflow; so use it with care, or use Big TeX.
-
- - \mbox {\RL {Arabic text}} is equivalent to \<Arabic text>: no
- line-breaking, as usual.
-
- - \RL in Arabic mode, and \LR in Roman mode, do no harm but are
- redundant.
-
- - the user may, at her/his own risk, include \LR portions within
- \RL portions, and vice versa. This may lead to some interesting
- effects (for details, see: Donald E. Knuth and Pierre MacKay,
- Mixing right-to-left texts with left-to-right texts, TUGboat,
- Volume 8(1987), No. 1, p. 14 - 25)
-
---------------------------------------------------------------------------
-
- 2. Processing Hebrew with ArabTeX
- ---------------------------------
- An experimental extension that (partially) supports Hebrew may
- be installed by the LaTeX option "hebtex", or \input hebtex.sty.
-| It provides an additional language mode \sethebrew, and several
-| common encodings of texts in Hebrew, that may be switched by
-| the \setcode command. One of the encodings is compatible with
-| Dov Grobgeld's editor HED, so files prepared for HebrewTeX are
-|| supposed to be compatible, including most HebrewTeX commands
-|| (the Hebrew date quite probably does NOT work correctly).
-|| Hebrew "newcode" encoding (ISO 8859-8) probably works too, but
- has not yet been tested extensively. In addition, the standard
- ArabTeX transliteration encoding is also available.
-
-|| For more information, see the text file "hebrew.305". Please
-|| observe that the encoding of vowels written "plene" has been
-|| changed (due to user suggestions!)
-
---------------------------------------------------------------------------
-
- 3. Support for Arabic Windows
- -----------------------------
- Isam G. Ishaq programmed, and donated, a new reading module for
-| the Arabic encoding CP 1256 supported by Arabic Windows. It is
- installed as a LaTeX option "arabwin" and may be activated by
-| \setcode {arabwin} or \setcode {cp1256}.
- Some documentation is contained in the file "arwindoc.tex"; try
- to process it with ArabTeX, or just read the ASCII text.
-
- As we had little opportunity to test it, this module is supplied
- as is, without any warranty (as usual), nor support.
-
---------------------------------------------------------------------------
-
- 4. Support for EDMAC
- --------------------
- In the transition from EDMAC 3.00 to EDMAC 3.15, some internal
-|| interfaces have changed. ArabTeX 3.05 will adjust itself to the
- version used automatically.
-
- The EDMAC commands \pstart, \pend, and \autopar can now also be
- used within an Arabic paragraph.
-
---------------------------------------------------------------------------
-
-| 5. Module Reporting
-| -------------------
-| A complete list of the modules loaded in a particular run will
-| be put into the log file (before the run statistics), if LaTeX
-| is used. This is believed to be useful when tracing down errors.
-| This list is also available to the user, even with Plain TeX,
-| as the contents of the new control sequence \arabtexconfig.
-| This feature may disappear again.
-
---------------------------------------------------------------------------
-
-| 6. Running ArabTeX with LaTeX2e
-| -------------------------------
-| Up to now we experienced no problems; the only changes we found
-| necessary are loading ArabTeX and its suboptions not as class
-| options but by using the command \usepackage.
-
---------------------------------------------------------------------------
-|| 7. Arabic document classes
-|| --------------------------
-|| The experimental LaTeX2e classes "arabart", "arabbook", "arabrep"
-|| extend the standard classes "article", "book", and "report" in
-|| two respects:
-||
-|| - The overall document layout has been "arabized": page numbers
-|| are in Indic numerals, and columns run from right to left.
-||
-|| - Within Arabic environments bracketed by \begin{arabtext} and
-|| \end{arabtext} most LaTeX commands are allowed, including all
-|| sectioning commands, \tabular, \tabbing, even \tableofcontents,
-|| and use an "Arabic looking" format. All arguments that denote
-|| text to be typeset are interpreted according to the currently
-|| activated Arabic encoding. Other arguments keep their standard
-|| meaning, including the preamble of \tabular, whose columns are
-|| processed from left to right (visual formatting).
-||
-|| - Outside of Arabic environments the LaTeX commands revert to the
-|| standard meaning.
-||
-|| The new classes are still in "alpha" status; reports are welcome.
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
-| Copyright (c) 1990 - 1997, Klaus Lagally
---------------------------------------------------------------------------
+README.305 15.03.1997
+--------------------------------------------------------------------------
+ ArabTeX Version 3.05
+ ====================
+--------------------------------------------------------------------------
+ Additional features not described in the User Manual
+
+| For changes after version 3.02 see change bars in the margin
+--------------------------------------------------------------------------
+
+ 1. Bidirectional linebreaking
+ -----------------------------
+ Within a Roman paragraph, Arabic insertions may be included
+ by the construct \<Arabic text> ( <Arabic text> initially does
+ the same but may be redefined by the user for other purposes).
+ This construct, though efficient, has the inherent limitation
+ that the contents must fit on the current line, or else the
+ user has to break the text by \| or \break at some reasonable
+ place. Likewise, within an Arabic paragraph Roman insertions
+ may be included by <Roman text>, with the same limitations.
+
+ In many cases, as e.g. in the User Manual, insertions are very
+ short by nature, so the limitations pose no problem. For other
+ applications where the included quotations are much longer than
+ part of a line, some additional commands are provided. These are
+| much less efficient and also have a high demand on storage, so
+| they should only be used when necessary.
+
+ - \RL {Arabic text} allows an insertion of arbitrary length; the
+ lines will be broken automatically. Due to some limitations that
+ are inherent in TeX's algorithm, the line containing the start of
+ the insertion may come out underfull, and also its baseline may be
+ broken. Whenever this happens (only in main vertical mode, never
+ within footnotes, parboxes, or minipages), use of the command
+ \goodpar {paragraphs} may help (see below.)
+
+ - \LR {Roman text} does the same for long Roman insertions in an
+ Arabic paragraph. Here there is no problem with the baseline.
+
+ - \goodpar {Roman paragraphs} will fix the problems with \RL for
+ insertions within the included paragraphs, but might lead to main
+ memory overflow; so use it with care, or use Big TeX.
+
+ - \mbox {\RL {Arabic text}} is equivalent to \<Arabic text>: no
+ line-breaking, as usual.
+
+ - \RL in Arabic mode, and \LR in Roman mode, do no harm but are
+ redundant.
+
+ - the user may, at her/his own risk, include \LR portions within
+ \RL portions, and vice versa. This may lead to some interesting
+ effects (for details, see: Donald E. Knuth and Pierre MacKay,
+ Mixing right-to-left texts with left-to-right texts, TUGboat,
+ Volume 8(1987), No. 1, p. 14 - 25)
+
+--------------------------------------------------------------------------
+
+ 2. Processing Hebrew with ArabTeX
+ ---------------------------------
+ An experimental extension that (partially) supports Hebrew may
+ be installed by the LaTeX option "hebtex", or \input hebtex.sty.
+| It provides an additional language mode \sethebrew, and several
+| common encodings of texts in Hebrew, that may be switched by
+| the \setcode command. One of the encodings is compatible with
+| Dov Grobgeld's editor HED, so files prepared for HebrewTeX are
+|| supposed to be compatible, including most HebrewTeX commands
+|| (the Hebrew date quite probably does NOT work correctly).
+|| Hebrew "newcode" encoding (ISO 8859-8) probably works too, but
+ has not yet been tested extensively. In addition, the standard
+ ArabTeX transliteration encoding is also available.
+
+|| For more information, see the text file "hebrew.305". Please
+|| observe that the encoding of vowels written "plene" has been
+|| changed (due to user suggestions!)
+
+--------------------------------------------------------------------------
+
+ 3. Support for Arabic Windows
+ -----------------------------
+ Isam G. Ishaq programmed, and donated, a new reading module for
+| the Arabic encoding CP 1256 supported by Arabic Windows. It is
+ installed as a LaTeX option "arabwin" and may be activated by
+| \setcode {arabwin} or \setcode {cp1256}.
+ Some documentation is contained in the file "arwindoc.tex"; try
+ to process it with ArabTeX, or just read the ASCII text.
+
+ As we had little opportunity to test it, this module is supplied
+ as is, without any warranty (as usual), nor support.
+
+--------------------------------------------------------------------------
+
+ 4. Support for EDMAC
+ --------------------
+ In the transition from EDMAC 3.00 to EDMAC 3.15, some internal
+|| interfaces have changed. ArabTeX 3.05 will adjust itself to the
+ version used automatically.
+
+ The EDMAC commands \pstart, \pend, and \autopar can now also be
+ used within an Arabic paragraph.
+
+--------------------------------------------------------------------------
+
+| 5. Module Reporting
+| -------------------
+| A complete list of the modules loaded in a particular run will
+| be put into the log file (before the run statistics), if LaTeX
+| is used. This is believed to be useful when tracing down errors.
+| This list is also available to the user, even with Plain TeX,
+| as the contents of the new control sequence \arabtexconfig.
+| This feature may disappear again.
+
+--------------------------------------------------------------------------
+
+| 6. Running ArabTeX with LaTeX2e
+| -------------------------------
+| Up to now we experienced no problems; the only changes we found
+| necessary are loading ArabTeX and its suboptions not as class
+| options but by using the command \usepackage.
+
+--------------------------------------------------------------------------
+|| 7. Arabic document classes
+|| --------------------------
+|| The experimental LaTeX2e classes "arabart", "arabbook", "arabrep"
+|| extend the standard classes "article", "book", and "report" in
+|| two respects:
+||
+|| - The overall document layout has been "arabized": page numbers
+|| are in Indic numerals, and columns run from right to left.
+||
+|| - Within Arabic environments bracketed by \begin{arabtext} and
+|| \end{arabtext} most LaTeX commands are allowed, including all
+|| sectioning commands, \tabular, \tabbing, even \tableofcontents,
+|| and use an "Arabic looking" format. All arguments that denote
+|| text to be typeset are interpreted according to the currently
+|| activated Arabic encoding. Other arguments keep their standard
+|| meaning, including the preamble of \tabular, whose columns are
+|| processed from left to right (visual formatting).
+||
+|| - Outside of Arabic environments the LaTeX commands revert to the
+|| standard meaning.
+||
+|| The new classes are still in "alpha" status; reports are welcome.
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+| Copyright (c) 1990 - 1997, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/doc/txt/readme.txt b/language/arabic/arabtex/doc/txt/readme.txt
index eef60b15d9..a0a8b08f6c 100644
--- a/language/arabic/arabtex/doc/txt/readme.txt
+++ b/language/arabic/arabtex/doc/txt/readme.txt
@@ -1,92 +1,92 @@
-README 23.10.2003
---------------------------------------------------------------------------
- ArabTeX Version 3
- =================
---------------------------------------------------------------------------
- Last changes: Version 3.11d, 23.10.2003
---------------------------------------------------------------------------
- The set of files, of which THIS file is supposed to be part of,
- contains a package extending the capabilities of TeX/LaTeX to
- generate the arabic writing from an ASCII transliteration for
- texts in several languages using the arabic script. Several other
- common encodings are also supported.
-
- The package is available in packed form as "arabtex.zip" and
- "arabtex.tgz". Depending on the server there may be also the
- unpacked files; check for the latest version of "apatch.sty"!
-
- The following ASCII files give more detailed information:
-
- arabtex.doc : a short introduction (rather out of date)
- arabtex.faq : answers to some Frequently Asked Questions
- (updated as necessary)
- changes.txt : release history, new features, and known bugs
- (updated as necessary)
- changes2.txt : older release history up to version 3.00
- install.txt : list of available files, and installation notes
- apatch.sty : last minute corrections; put this file onto the
- TEXINPUT path; it will patch automatically.
- (updated as necessary)
-
- There are also various additional documentation files.
- A subdirectory "REPORT", if still present, is OBSOLETE.
-
- There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
- Version 2 was the first complete release accompanied by a manual,
- but is no more being maintained.
-
- Version 3 is an upward compatible extension of Version 2 with
- many new features, e.g. the possibility to read input files in the
- ASMO 449, ISO 8859-6, and UTF-8 Codes, and many new commands for
- better formatting of Arabic text, or catering for historic writing
- styles. Versions from 3.05 onward contain a package to process
- Hebrew, and provide long right-to-left insertions. For details,
- consult the manual and the ASCII file "readme.305".
-
- ArabTeX is copyrighted by the author. If you use the system for
- scientific work please give appropriate credit to the software
- and the author (e.g. in the colophon of a monograph.) We also
- appreciate a complimentary copy of any scientific work produced
- with ArabTeX.
-
- ArabTeX may be redistributed and/or modified under the terms
- of the LaTeX Project Public License distributed from CTAN
- archives in the directory "macros/latex/base/lppl.txt"; either
- version 1 of the License, or (at your option) any later version.
-
- ArabTeX is an experimental system and supposed to change without
- prior notice. Whoever will use it does so at her/his/its own risk.
- We cannot take any responsibility on correct function, suitability
- for whatever purpose, or correct documentation.
-
- If you have any complaints or suggestions, please forward them to
- the author. We shall consider any reasonable suggestion, but we
- will use our own judgment on any changes, and our resources are
- severely limited.
-
- If problems turn up while running ArabTeX, please check first at
- "ftp.informatik.uni-stuttgart.de" whether there is a new version,
- or whether there are any new corrections in "apatch.sty". If the
- problem goes away with the new version, please inform the server
- you got ArabTeX from; otherwise send a bug report to the author.
-
- The reference site "ftp.informatik.uni-stuttgart.de" always holds
- the current version. We know that the CTAN servers "ftp.tex.ac.uk",
- "ctan.tug.org", and "ftp.dante.de" mirror this site and update on
- a regular schedule.
-
- An empty E-Mail message to "arabtex@informatik.uni-stuttgart.de"
- will produce a current status report.
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2002, Klaus Lagally
---------------------------------------------------------------------------
+README 23.10.2003
+--------------------------------------------------------------------------
+ ArabTeX Version 3
+ =================
+--------------------------------------------------------------------------
+ Last changes: Version 3.11d, 23.10.2003
+--------------------------------------------------------------------------
+ The set of files, of which THIS file is supposed to be part of,
+ contains a package extending the capabilities of TeX/LaTeX to
+ generate the arabic writing from an ASCII transliteration for
+ texts in several languages using the arabic script. Several other
+ common encodings are also supported.
+
+ The package is available in packed form as "arabtex.zip" and
+ "arabtex.tgz". Depending on the server there may be also the
+ unpacked files; check for the latest version of "apatch.sty"!
+
+ The following ASCII files give more detailed information:
+
+ arabtex.doc : a short introduction (rather out of date)
+ arabtex.faq : answers to some Frequently Asked Questions
+ (updated as necessary)
+ changes.txt : release history, new features, and known bugs
+ (updated as necessary)
+ changes2.txt : older release history up to version 3.00
+ install.txt : list of available files, and installation notes
+ apatch.sty : last minute corrections; put this file onto the
+ TEXINPUT path; it will patch automatically.
+ (updated as necessary)
+
+ There are also various additional documentation files.
+ A subdirectory "REPORT", if still present, is OBSOLETE.
+
+ There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
+ Version 2 was the first complete release accompanied by a manual,
+ but is no more being maintained.
+
+ Version 3 is an upward compatible extension of Version 2 with
+ many new features, e.g. the possibility to read input files in the
+ ASMO 449, ISO 8859-6, and UTF-8 Codes, and many new commands for
+ better formatting of Arabic text, or catering for historic writing
+ styles. Versions from 3.05 onward contain a package to process
+ Hebrew, and provide long right-to-left insertions. For details,
+ consult the manual and the ASCII file "readme.305".
+
+ ArabTeX is copyrighted by the author. If you use the system for
+ scientific work please give appropriate credit to the software
+ and the author (e.g. in the colophon of a monograph.) We also
+ appreciate a complimentary copy of any scientific work produced
+ with ArabTeX.
+
+ ArabTeX may be redistributed and/or modified under the terms
+ of the LaTeX Project Public License distributed from CTAN
+ archives in the directory "macros/latex/base/lppl.txt"; either
+ version 1 of the License, or (at your option) any later version.
+
+ ArabTeX is an experimental system and supposed to change without
+ prior notice. Whoever will use it does so at her/his/its own risk.
+ We cannot take any responsibility on correct function, suitability
+ for whatever purpose, or correct documentation.
+
+ If you have any complaints or suggestions, please forward them to
+ the author. We shall consider any reasonable suggestion, but we
+ will use our own judgment on any changes, and our resources are
+ severely limited.
+
+ If problems turn up while running ArabTeX, please check first at
+ "ftp.informatik.uni-stuttgart.de" whether there is a new version,
+ or whether there are any new corrections in "apatch.sty". If the
+ problem goes away with the new version, please inform the server
+ you got ArabTeX from; otherwise send a bug report to the author.
+
+ The reference site "ftp.informatik.uni-stuttgart.de" always holds
+ the current version. We know that the CTAN servers "ftp.tex.ac.uk",
+ "ctan.tug.org", and "ftp.dante.de" mirror this site and update on
+ a regular schedule.
+
+ An empty E-Mail message to "arabtex@informatik.uni-stuttgart.de"
+ will produce a current status report.
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2002, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/doc/txt/sindhi.tex b/language/arabic/arabtex/doc/txt/sindhi.tex
index 6df007c56c..dbd8113386 100644
--- a/language/arabic/arabtex/doc/txt/sindhi.tex
+++ b/language/arabic/arabtex/doc/txt/sindhi.tex
@@ -1,156 +1,156 @@
-
-\documentclass[12pt]{article}
-\usepackage{arabtex}
-\usepackage{atrans}
-\advance \topsep -10mm
-\advance \textwidth 10mm
-\advance \textheight 10mm
-
-\begin{document}
-
-\title{Sindhi in Arab\TeX}
-\author
-{Klaus Lagally\\
-Institut f\"ur Informatik\\
-Breitwiesenstra\ss e 20--22\\
-D-70565 Stuttgart\\
-GERMANY\\
-\tt mailto:lagallyk@acm.org}
-\date{August 06, 1997}
-
-\maketitle
-
-\setsindhi
-
-There is a new Arab\TeX\ language mode, \verb+\setsindhi+,
-for processing Sindhi texts in the extended Arabic writing.
-
-This mode works only with Arab\TeX\ version 3.06 or later
-and requires an updated version of the font ``nash14''.
-These conditions are checked, if \LaTeX2$\varepsilon$ is used.
-For Plain \TeX\ there are no checks.
-
-To activate the Sindhi mode, select the language by \verb+\setsindhi+.
-Sindhi input texts are encoded in a modification of the
-standard \ArabTeX\ encoding.
-The alphabet is given in Table~\ref {codes}.
-
-For the use of the encoding, see Table~\ref {examples}.
-It contains all Sindhi letters,
-together with their input encoding and a typical example of use.
-For every line the external notation is also given.
-
-%\bigskip
-%Notes:
-\begin{enumerate}
-\itemsep 0pt
-\item
-This is a preliminary version solely
-intended for inspection, experiments, evaluation, and suggestions.
-The final version may differ in details, depending on feedback
-by the users.
-
-\item
-Use hyphens to resolve ambiguities with aspired consonants.
-
-\item
-If the new font is not available,
-the ``wide letter kaf'' is missing.
-We temporarily substitute an ordinary letter kaf with four dots,
-which does not exist, but should be conspicuous enough.
-%Once the font will have been extended, the substitute should disappear.
-
-\item
-Tanween works as expected: \verb+miN+ <miN> , \verb+'|iN+ <'|iN> .
-
-\item
-The user may want to break some ligatures by inserting a vertical bar,
-to get the correct writing, or just for a better appearance of the script.
-
-\end{enumerate}
-
-\begin{table}[tbp]
-\begin{center}
-\large
-\Large
-\tt
-\def <#1>{\<#1> &{\arabfalse \transtrue \<#1>}}
-\begin{tabular}{||c|c|c||c|c|c||c|c|c||c|c|c||}
-\hline
-a &<a> &\~{}n &<~n> &z &<z> &kh &<kh> \\
-b &<b> &\^{}c &<^c> &s &<s> &g &<g> \\
-:b &<:b> &\^{}ch &<^ch> &\^{}s &<^s> &:g &<:g> \\
-bh &<bh> &.h &<.h> &.s &<.s> &gh &<gh> \\
-t &<t> &\_h &<_h> &.d &<.d> &:n &<:n> \\
-th &<th> &d &<d> &.t &<.t> &l &<l> \\
-,t &<,t> &dh &<dh> &.z &<.z> &m &<m> \\
-,th &<,th> &:d &<:d> &` &<`> &n &<n> \\
-\_s &<_s> &,d &<,d> &.g &<.g> &,n &<,n> \\
-p &<p> &,dh &<,dh> &f &<f> &w &<w> \\
-j &<j> &\_d &<_d> &ph &<ph> &,h &<,h> \\
-%:j &<:j> &r &<r> &q &<q> &'| &<'|> \\
-:j &<:j> &r &<r> &q &<q> &h &<h> \\
-jh &<jh> &,r &<,r> &k &<k> &y &<y> \\
-\hline
-a &<B|BaB>&e &<B|BeB>&i &<B|BiB>&o &<B|BoB>\\
-u &<B|BuB>&A &<BA> &E &<BE> &I &<BI> \\
-O &<BO> &U &<BU> &ae &<Bae> &ao &<Bao> \\
-i &<i> &\_A &<B_A> &'A &<'A> &'a &<'a> \\
-'i &<'i> &'y &<'y> &'w &<'w> &'| &<'|> \\
-\hline
-\end{tabular}
-\rm
-\caption{The Sindhi Alphabet}
-\label{codes}
-\end{center}
-\end{table}
-
-\begin{table}[htbp]
-\large
-\begin{arabtext}
-\showtrue
-1: \hfill a <a> anbu \hfill b <b> badaka
-\hfill :b <:b> :bilI \hfill bh <bh> bhOli,rO
-
-2: \hfill t <t> ti:di \hfill th <th> thIlihI
-\hfill ,t <,t> ,tOplO \hfill ,th <,th> ,thUn,thi
-
-3: \hfill _s <\_s> _samara \hfill p <p> pakhO
-\hfill j <j> jahAzu \hfill :j <:j> :jibha
-
-4: \hfill jh <jh> jihrkI \hfill ~n <\~{}n> :ja~na
-\hfill ^c <\^{}c> ^can,du \hfill ^ch <\^{}ch> ^cha,tI
-
-5: \hfill .h <.h> .huqO \hfill _h <\_h> _ha:tu
-\hfill d <d> daru \hfill dh <dh> dhuka.ra
-
-6: \hfill :d <:d> :dOlu \hfill ,d <,d> ,dAkha
-\hfill ,dh <,dh> ,dha:gI \hfill _d <\_d> _da_hIrO
-
-7: \hfill r <r> rIla \hfill ,r <,r> bagha,ru
-\hfill z <z> zAla \hfill s <s> sijju
-
-8: \hfill ^s <\^{}s> ^sInhun \hfill .s <.s> .sUfu
-\hfill .d <.d> .da`Ifu \hfill .t <.t> .tO.tO
-
-9: \hfill .z <.z> .zAlimu \hfill ` <`> `aynaka
-\hfill .g <.g> .gAlI^cO \hfill f <f> fawjI
-
-10: \hfill ph <ph> phUhArO \hfill q <q> qalamu
-\hfill k <k> kutO \hfill kh <kh> kha,ta
-
-11: \hfill g <g> ga:dahu \hfill :g <:g> :gayrO
-\hfill gh <gh> ghO,rO \hfill :n <:n> si:na
-
-12: \hfill l <l> la.ga,ru \hfill m <m> ma^chI
-\hfill n <n> nAngu \hfill ,n <,n> wa,nu
-
-13: \hfill w <w> wA:jO \hfill h <h> hAthI
-\hfill '| <\tt '|> '| \hfill y <y> yakO
-\end{arabtext}
-\caption {Examples for the use of the Sindhi Alphabet}
-\label{examples}
-\end{table}
-
-
-\end{document}
+
+\documentclass[12pt]{article}
+\usepackage{arabtex}
+\usepackage{atrans}
+\advance \topsep -10mm
+\advance \textwidth 10mm
+\advance \textheight 10mm
+
+\begin{document}
+
+\title{Sindhi in Arab\TeX}
+\author
+{Klaus Lagally\\
+Institut f\"ur Informatik\\
+Breitwiesenstra\ss e 20--22\\
+D-70565 Stuttgart\\
+GERMANY\\
+\tt mailto:lagallyk@acm.org}
+\date{August 06, 1997}
+
+\maketitle
+
+\setsindhi
+
+There is a new Arab\TeX\ language mode, \verb+\setsindhi+,
+for processing Sindhi texts in the extended Arabic writing.
+
+This mode works only with Arab\TeX\ version 3.06 or later
+and requires an updated version of the font ``nash14''.
+These conditions are checked, if \LaTeX2$\varepsilon$ is used.
+For Plain \TeX\ there are no checks.
+
+To activate the Sindhi mode, select the language by \verb+\setsindhi+.
+Sindhi input texts are encoded in a modification of the
+standard \ArabTeX\ encoding.
+The alphabet is given in Table~\ref {codes}.
+
+For the use of the encoding, see Table~\ref {examples}.
+It contains all Sindhi letters,
+together with their input encoding and a typical example of use.
+For every line the external notation is also given.
+
+%\bigskip
+%Notes:
+\begin{enumerate}
+\itemsep 0pt
+\item
+This is a preliminary version solely
+intended for inspection, experiments, evaluation, and suggestions.
+The final version may differ in details, depending on feedback
+by the users.
+
+\item
+Use hyphens to resolve ambiguities with aspired consonants.
+
+\item
+If the new font is not available,
+the ``wide letter kaf'' is missing.
+We temporarily substitute an ordinary letter kaf with four dots,
+which does not exist, but should be conspicuous enough.
+%Once the font will have been extended, the substitute should disappear.
+
+\item
+Tanween works as expected: \verb+miN+ <miN> , \verb+'|iN+ <'|iN> .
+
+\item
+The user may want to break some ligatures by inserting a vertical bar,
+to get the correct writing, or just for a better appearance of the script.
+
+\end{enumerate}
+
+\begin{table}[tbp]
+\begin{center}
+\large
+\Large
+\tt
+\def <#1>{\<#1> &{\arabfalse \transtrue \<#1>}}
+\begin{tabular}{||c|c|c||c|c|c||c|c|c||c|c|c||}
+\hline
+a &<a> &\~{}n &<~n> &z &<z> &kh &<kh> \\
+b &<b> &\^{}c &<^c> &s &<s> &g &<g> \\
+:b &<:b> &\^{}ch &<^ch> &\^{}s &<^s> &:g &<:g> \\
+bh &<bh> &.h &<.h> &.s &<.s> &gh &<gh> \\
+t &<t> &\_h &<_h> &.d &<.d> &:n &<:n> \\
+th &<th> &d &<d> &.t &<.t> &l &<l> \\
+,t &<,t> &dh &<dh> &.z &<.z> &m &<m> \\
+,th &<,th> &:d &<:d> &` &<`> &n &<n> \\
+\_s &<_s> &,d &<,d> &.g &<.g> &,n &<,n> \\
+p &<p> &,dh &<,dh> &f &<f> &w &<w> \\
+j &<j> &\_d &<_d> &ph &<ph> &,h &<,h> \\
+%:j &<:j> &r &<r> &q &<q> &'| &<'|> \\
+:j &<:j> &r &<r> &q &<q> &h &<h> \\
+jh &<jh> &,r &<,r> &k &<k> &y &<y> \\
+\hline
+a &<B|BaB>&e &<B|BeB>&i &<B|BiB>&o &<B|BoB>\\
+u &<B|BuB>&A &<BA> &E &<BE> &I &<BI> \\
+O &<BO> &U &<BU> &ae &<Bae> &ao &<Bao> \\
+i &<i> &\_A &<B_A> &'A &<'A> &'a &<'a> \\
+'i &<'i> &'y &<'y> &'w &<'w> &'| &<'|> \\
+\hline
+\end{tabular}
+\rm
+\caption{The Sindhi Alphabet}
+\label{codes}
+\end{center}
+\end{table}
+
+\begin{table}[htbp]
+\large
+\begin{arabtext}
+\showtrue
+1: \hfill a <a> anbu \hfill b <b> badaka
+\hfill :b <:b> :bilI \hfill bh <bh> bhOli,rO
+
+2: \hfill t <t> ti:di \hfill th <th> thIlihI
+\hfill ,t <,t> ,tOplO \hfill ,th <,th> ,thUn,thi
+
+3: \hfill _s <\_s> _samara \hfill p <p> pakhO
+\hfill j <j> jahAzu \hfill :j <:j> :jibha
+
+4: \hfill jh <jh> jihrkI \hfill ~n <\~{}n> :ja~na
+\hfill ^c <\^{}c> ^can,du \hfill ^ch <\^{}ch> ^cha,tI
+
+5: \hfill .h <.h> .huqO \hfill _h <\_h> _ha:tu
+\hfill d <d> daru \hfill dh <dh> dhuka.ra
+
+6: \hfill :d <:d> :dOlu \hfill ,d <,d> ,dAkha
+\hfill ,dh <,dh> ,dha:gI \hfill _d <\_d> _da_hIrO
+
+7: \hfill r <r> rIla \hfill ,r <,r> bagha,ru
+\hfill z <z> zAla \hfill s <s> sijju
+
+8: \hfill ^s <\^{}s> ^sInhun \hfill .s <.s> .sUfu
+\hfill .d <.d> .da`Ifu \hfill .t <.t> .tO.tO
+
+9: \hfill .z <.z> .zAlimu \hfill ` <`> `aynaka
+\hfill .g <.g> .gAlI^cO \hfill f <f> fawjI
+
+10: \hfill ph <ph> phUhArO \hfill q <q> qalamu
+\hfill k <k> kutO \hfill kh <kh> kha,ta
+
+11: \hfill g <g> ga:dahu \hfill :g <:g> :gayrO
+\hfill gh <gh> ghO,rO \hfill :n <:n> si:na
+
+12: \hfill l <l> la.ga,ru \hfill m <m> ma^chI
+\hfill n <n> nAngu \hfill ,n <,n> wa,nu
+
+13: \hfill w <w> wA:jO \hfill h <h> hAthI
+\hfill '| <\tt '|> '| \hfill y <y> yakO
+\end{arabtext}
+\caption {Examples for the use of the Sindhi Alphabet}
+\label{examples}
+\end{table}
+
+
+\end{document}
diff --git a/language/arabic/arabtex/doc/txt/uighur.tex b/language/arabic/arabtex/doc/txt/uighur.tex
index dbd31d46fb..772647bdd3 100644
--- a/language/arabic/arabtex/doc/txt/uighur.tex
+++ b/language/arabic/arabtex/doc/txt/uighur.tex
@@ -1,121 +1,121 @@
-%\documentclass[12pt,a4paper]{article}
-\documentclass[12pt]{article}
-\usepackage{arabtex}
-
-\parindent 0pt
-\parskip 2mm
-
-\advance \textwidth 20mm
-\advance \textheight 20mm
-%\pagestyle{empty}
-
-\makeatletter
-\def \({\a@verb}
-\makeatother
-
-\begin{document}
-\title{Uighuric in Arab\TeX}
-\author
-{Klaus Lagally\\
-Institut f\"ur Informatik\\
-Breitwiesenstra\ss e 20--22\\
-D-70565 Stuttgart\\
-GERMANY\\
-%\verb+mailto:lagallyk@acm.org+
-\tt mailto:lagallyk@acm.org
-}
-\date{August 06, 1997}
-\maketitle
-
-\setuighur
-\vocalize
-
-There is a new Arab\TeX\ language mode, \verb+\setuighur+,
-for processing Uighuric texts in the extended Arabic writing.
-
-This mode works only with Arab\TeX\ version 3.06 or later.
-
-Uighuric input texts are encoded in a modification of the
-standard \ArabTeX\ encoding, see
-column~5 of the Table.
-Please observe that in Uighuric all characters are coded verbatim.
-
-This language mode is strictly experimental
-and expected to contain errors.
-Please report your experience and suggestions
-for changes and improvements to the author.
-% at \verb+mailto:lagallyk@acm.org+
-
-\newpage
-\parskip 0pt
-
-\begin{center}
-Arab\TeX\ encoding of Uighuric
-\end{center}
-
-\parbox[t]{75mm}{%
-\null
-\begin{tabular}{|r|cccc@{ = }c@{ (}c@{)
- \vrule width0pt height13pt depth10pt}l|}
-\hline
- & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
-\hline
-01& & & <Ba> & <a> &\(a> & 01 & a \\
-02& & & <B:a> & <:a> &\(:a> & 02 & \"a \\
-03& & & <Bd> & <d> &\(d> & 09 & de \\
-04& & & <Br> & <r> &\(r> & 10 & re \\
-05& & & <Bz> & <z> &\(z> & 11 & ze \\
-06& & & <B^z> & <^z> &\(^z> & 12 & \v ze \\
-07& & & <Bo> & <o> &\(o> & 25 & o \\
-08& & & <B:o> & <:o> &\(:o> & 27 & \"o \\
-09& & & <Bu> & <u> &\(u> & 26 & u \\
-10& & & <B:u> & <:u> &\(:u> & 28 & \"u \\
-11& & & <Bw> & <w> &\(w> & 29 & we \\
-12&<bB> &<BbB> & <Bb> & <b> &\(b> & 03 & be \\
-13&<pB> &<BpB> & <Bp> & <p> &\(p> & 04 & pe \\
-14&<tB> &<BtB> & <Bt> & <t> &\(t> & 05 & te \\
-15&<nB> &<BnB> & <Bn> & <n> &\(n> & 23 & ne \\
-16&<jB> &<BjB> & <Bj> & <j> &\(j> & 06 & je \\
-17&<^cB>&<B^cB> & <B^c> & <^c> &\(^c> & 07 & \v ce \\
-\hline
-\end{tabular}}\hfil
-\parbox[t]{75mm}{%
-\null
-\begin{tabular}{|r|cccc@{ = }c@{ (}c@{)
- \vrule width0pt height13pt depth10pt}l|}
-\hline
- & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
-\hline
-18&<xB> &<BxB> & <Bx> & <x> &\(x> & 08 & xe \\
-19&<iB> &<BiB> & <Bi> & <i> &\(i> & 31 & i \\
-20&<eB> &<BeB> & <Be> & <e> &\(e> & 30 & e \\
-21&<yB> &<ByB> & <By> & <y> &\(y> & 32 & y \\
-22&<sB> &<BsB> & <Bs> & <s> &\(s> & 13 & se \\
-23&<^sB>&<B^sB> & <B^s> & <^s> &\(^s> & 14 & \v se \\
-24&<^gB>&<B^gB> & <B^g> & <^g> &\(^g> & 15 & \v ge \\
-25&<fB> &<BfB> & <Bf> & <f> &\(f> & 16 & fe \\
-26&<qB> &<BqB> & <Bq> & <q> &\(q> & 17 & qe \\
-27&<kB> &<BkB> & <Bk> & <k> &\(k> & 18 & ke \\
-28&<~nB>&<B~nB> & <B~n> & <~n> &\(~n> & 20 & $\eta$e \\
-29&<gB> &<BgB> & <Bg> & <g> &\(g> & 19 & ge \\
-30&<lB> &<BlB> & <Bl> & <l> &\(l> & 21 & le \\
-31&<mB> &<BmB> & <Bm> & <m> &\(m> & 22 & me \\
-32&<hB> &<BhB> & <Bh> & <h> &\(h> & 24 & he \\
-33&<'B> &<B'B> & & &\('> & & \\
-34& & & <Bl"A>& <l"A> &\(la> & & \\
-\hline
-\end{tabular}}
-
-\begin{enumerate}
-\itemsep 0pt
-\item initial shape
-\item medial shape
-\item final shape
-\item isolated shape
-\item external encoding
-\item sorting position
-\item name
-\end{enumerate}
-
-%\vfill \today
-\end{document}
+%\documentclass[12pt,a4paper]{article}
+\documentclass[12pt]{article}
+\usepackage{arabtex}
+
+\parindent 0pt
+\parskip 2mm
+
+\advance \textwidth 20mm
+\advance \textheight 20mm
+%\pagestyle{empty}
+
+\makeatletter
+\def \({\a@verb}
+\makeatother
+
+\begin{document}
+\title{Uighuric in Arab\TeX}
+\author
+{Klaus Lagally\\
+Institut f\"ur Informatik\\
+Breitwiesenstra\ss e 20--22\\
+D-70565 Stuttgart\\
+GERMANY\\
+%\verb+mailto:lagallyk@acm.org+
+\tt mailto:lagallyk@acm.org
+}
+\date{August 06, 1997}
+\maketitle
+
+\setuighur
+\vocalize
+
+There is a new Arab\TeX\ language mode, \verb+\setuighur+,
+for processing Uighuric texts in the extended Arabic writing.
+
+This mode works only with Arab\TeX\ version 3.06 or later.
+
+Uighuric input texts are encoded in a modification of the
+standard \ArabTeX\ encoding, see
+column~5 of the Table.
+Please observe that in Uighuric all characters are coded verbatim.
+
+This language mode is strictly experimental
+and expected to contain errors.
+Please report your experience and suggestions
+for changes and improvements to the author.
+% at \verb+mailto:lagallyk@acm.org+
+
+\newpage
+\parskip 0pt
+
+\begin{center}
+Arab\TeX\ encoding of Uighuric
+\end{center}
+
+\parbox[t]{75mm}{%
+\null
+\begin{tabular}{|r|cccc@{ = }c@{ (}c@{)
+ \vrule width0pt height13pt depth10pt}l|}
+\hline
+ & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
+\hline
+01& & & <Ba> & <a> &\(a> & 01 & a \\
+02& & & <B:a> & <:a> &\(:a> & 02 & \"a \\
+03& & & <Bd> & <d> &\(d> & 09 & de \\
+04& & & <Br> & <r> &\(r> & 10 & re \\
+05& & & <Bz> & <z> &\(z> & 11 & ze \\
+06& & & <B^z> & <^z> &\(^z> & 12 & \v ze \\
+07& & & <Bo> & <o> &\(o> & 25 & o \\
+08& & & <B:o> & <:o> &\(:o> & 27 & \"o \\
+09& & & <Bu> & <u> &\(u> & 26 & u \\
+10& & & <B:u> & <:u> &\(:u> & 28 & \"u \\
+11& & & <Bw> & <w> &\(w> & 29 & we \\
+12&<bB> &<BbB> & <Bb> & <b> &\(b> & 03 & be \\
+13&<pB> &<BpB> & <Bp> & <p> &\(p> & 04 & pe \\
+14&<tB> &<BtB> & <Bt> & <t> &\(t> & 05 & te \\
+15&<nB> &<BnB> & <Bn> & <n> &\(n> & 23 & ne \\
+16&<jB> &<BjB> & <Bj> & <j> &\(j> & 06 & je \\
+17&<^cB>&<B^cB> & <B^c> & <^c> &\(^c> & 07 & \v ce \\
+\hline
+\end{tabular}}\hfil
+\parbox[t]{75mm}{%
+\null
+\begin{tabular}{|r|cccc@{ = }c@{ (}c@{)
+ \vrule width0pt height13pt depth10pt}l|}
+\hline
+ & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
+\hline
+18&<xB> &<BxB> & <Bx> & <x> &\(x> & 08 & xe \\
+19&<iB> &<BiB> & <Bi> & <i> &\(i> & 31 & i \\
+20&<eB> &<BeB> & <Be> & <e> &\(e> & 30 & e \\
+21&<yB> &<ByB> & <By> & <y> &\(y> & 32 & y \\
+22&<sB> &<BsB> & <Bs> & <s> &\(s> & 13 & se \\
+23&<^sB>&<B^sB> & <B^s> & <^s> &\(^s> & 14 & \v se \\
+24&<^gB>&<B^gB> & <B^g> & <^g> &\(^g> & 15 & \v ge \\
+25&<fB> &<BfB> & <Bf> & <f> &\(f> & 16 & fe \\
+26&<qB> &<BqB> & <Bq> & <q> &\(q> & 17 & qe \\
+27&<kB> &<BkB> & <Bk> & <k> &\(k> & 18 & ke \\
+28&<~nB>&<B~nB> & <B~n> & <~n> &\(~n> & 20 & $\eta$e \\
+29&<gB> &<BgB> & <Bg> & <g> &\(g> & 19 & ge \\
+30&<lB> &<BlB> & <Bl> & <l> &\(l> & 21 & le \\
+31&<mB> &<BmB> & <Bm> & <m> &\(m> & 22 & me \\
+32&<hB> &<BhB> & <Bh> & <h> &\(h> & 24 & he \\
+33&<'B> &<B'B> & & &\('> & & \\
+34& & & <Bl"A>& <l"A> &\(la> & & \\
+\hline
+\end{tabular}}
+
+\begin{enumerate}
+\itemsep 0pt
+\item initial shape
+\item medial shape
+\item final shape
+\item isolated shape
+\item external encoding
+\item sorting position
+\item name
+\end{enumerate}
+
+%\vfill \today
+\end{document}
diff --git a/language/arabic/arabtex/examples/guha.ps b/language/arabic/arabtex/examples/guha.ps
index fa91e06a9c..34c3dd0f25 100644
--- a/language/arabic/arabtex/examples/guha.ps
+++ b/language/arabic/arabtex/examples/guha.ps
@@ -1,1044 +1,1044 @@
-%!PS-Adobe-2.0
-%%Creator: dvips 5.76 Copyright 1997 Radical Eye Software (www.radicaleye.com)
-%%Title: guha.dvi
-%%CreationDate: Tue Dec 1 13:46:34 1998
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%DocumentFonts: cmti12 cmmib10 cmr12
-%%EndComments
-%DVIPSCommandLine: dvips32.exe guha
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 1998.12.01:1345
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
-/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{dup length product length le{dup length product
-exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}
-ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}
-imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false
-RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round
-exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto
-rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup
-/delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{
--3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
-/w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}
-B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B
-/bos{/SS save N}B /eos{SS restore}B end
-
-%%EndProcSet
-%%BeginProcSet: texps.pro
-%!
-TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
-index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
-exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
-exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
-dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
-ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
-end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant
-{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
-roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
-
-%%EndProcSet
-%%BeginFont: cmr12
-%!PS-AdobeFont-1.1: cmr12 1.0-prerelease
-%%VMusage: 38759 38848
-12 dict begin
-/FontInfo 11 dict dup begin
-/UnderlineThickness 50.0 def
-/Weight(Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
-/underlinePosition -100 def
-/underlineThickness 50 def
-/FullName(cmr12) def
-/version(1.0-prerelease) def
-/UnderlinePosition -125.0 def
-/FamilyName(cmr12) def
-end readonly def
-/UniqueID 4100016 def
-/PaintType 0 def
-/FontBBox{-36 -250 989 750} def
-/FontMatrix[0.001 0 0 0.001 0 0] def
-/FontName/cmr12 def
-/FontType 1 def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 44 /comma put
-dup 49 /one put
-dup 56 /eight put
-dup 57 /nine put
-dup 68 /D put
-dup 98 /b put
-dup 99 /c put
-dup 101 /e put
-dup 109 /m put
-dup 114 /r put
-readonly def
-currentdict end
-currentfile eexec
-90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
-634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
-ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
-dfabc82a6f8a1271f309e0e3011a9bc52ca8d346d6f70edca9969c39d5f6616b
-62e5f7300ebe61852c9081e1b703262c55101d1c9fbb853f2b2f46b781df9b8d
-024144a6ff516cee0cad4cd07a8d9d7ec7ceea2b02c810946d775ee363e71495
-34664ce8d8e12bcd03d25f642a52cf22caa4a4fa052874040a3fd20087c3dca0
-920ce0fe71cd40307b967f00c7477ec53f5d59e7f8eb907d4c6ad743e5fc2791
-c776ba930cf52f2b97ca9a5daf89363f58ce300f62000277ec91f473aa457876
-5d9fa5f825c97d086efdcb15fc3367084e617871b8feffa994d11e4cbb174692
-b552fafb6032097a1beeb5c921f676a8481c8fef3836763aca20f660e75a1f11
-b5d269138a2f57ae6c9afbd3e44359231d63bc2542661972442af5864a49d7fd
-0fe98810201715d25533dc24cc67aa6d8647b0febfd55c3e7902641a5552f8c3
-2c582483cd1c7c49330063c7cbf60eeb3d24deafd38bd8d724dba3cccf3bb403
-b009ce0ff432e78d8d9899d9f8742e103bbd299d8cb2f143063755e3d0fec3ef
-8fc2796ac928221cce427e16cbbbdf67097042eec97238f6937ade9a9e3064b0
-8c7ab6cb8c3acfaaab7479c4bc00a394aa87ec2385edd57aa90d17c3d55edeba
-88eddf9f4d06afdb21bc9b83e7b3087c14c9ccc01c0cb87035541a67af4cfda8
-722d53f80250bd739afdf14756d47bc6aa6be34835e770d0597ca97abf88464c
-3afe405dc7a40949c880051ecf802c005f9a7dfb2d7eea34426278dd9b84a551
-bae24a1760a73efb4c78ceefca6085b244d1e311563f9d3abb0e95901898be1b
-cc7e291d5e3add66a7ca86d2f4075a8aa19164b876bf4d5383bed3f1696481f0
-a35e912882741817d929de0543eb01a8a1dee68ef0e0e9bc3d487ecb1b8b0457
-acdaf85bd3cb59b099f50023d1547fb3a9fcd61c2a99fc0bb9b375dd6d977433
-ef7595789aa3efe0d1bc3e5a09dd7979522c4f472118f4f8c12bac8331530d69
-aed0367b6563381d651b39b8ab4a47c45399ec89747ebe7125fa1defb762bf49
-13746d534e8d8063a16ad8d3265ff190eaf03517d524626d844ffd336211a0ee
-113168240f85d2ae33e4efcecbba59986c66a1c490d2a030bceee927ca03793e
-944561c3a9c45bed97b777b140d658c9b073bc4c30479883e9a9023f980f86b3
-786740a51d85feb45bd1b33e19623972730816cbfa45830d943bb20dd146d6db
-3bec3d7c63ab783d8c5beb24fe0db06f1f71cdf7fefd8efb271e388a8dd10aa4
-a9c7448522d236c4aa7675bbae75056be902764b8282ecd989732ce024118515
-f283801b4609a106321ba807c4daf7d2656d3e8231cb1ae5b5bb2bf36940417b
-308795aee21a171102ce9346eb4d8d1a6f2afde910496653158ffa1aae7c9593
-2b89207038fa5a52c4ecaf588a11d575828e60f3699aaabc68c86757c8f47a72
-f8ae9fea95528d5f4e1d013f7aa8e589cec4889ee17057aecebfb39358f21a8a
-d453a32314ba94a8cf62acf32736353d4bf022ce2c2b768c7e0a6e7f33ffa69d
-ae963f26e742b4cbd4e3a125061acded269cb2ac128c5860b9c4fd70cd64b3be
-b7b560dcc7b8d261e60bac6f6cda49a51104d868b9debf2c2d417f4d52ab6c05
-ae398e6a3182fa871ce481823a1851c0ded1fe8626d65d0792aa188dbb551d4d
-e615ace919f94d2ed87dd33d14daf3a4eb711988d20c922a1f59c27a8199e379
-eed77fb973f2ebedbb9d2d20abd7c8046850daa65292e7aff4032c72546d10ee
-a7b9e0b652ecb5859919db91796062a9776b464af15735a0ee1a5a96056cb874
-07d5a2d8530a7c4f8b63d2a75c5a76bb4edc98ca08910d7418bdbf30bdc1dd5a
-c230377509b1cfdfdcf856ec7d445dfaed494f752f25ea79355069ef37b678a1
-476ad033ecfd689a3b41b5e6aebb15dc4882b2932dcd9067c5cb69b089df5a56
-e81228978a67fd57f50e046f14a6bbf1f0d2d6d369129616e26e38b2f76e083a
-cd5e2fcc1e76792570bee9e7cc4f3097a2ec4de84d9da7a73a17e360587b37a7
-c0af664c93a6b0a238b46053e33a82202719d41b22ab562697120849d656b2e6
-e88907dc281ddfde4dc719732a292ecaffa131a65f05fcbb9cd4da01c8d49b38
-15ba57b96a254374fab0369df0ea666b454e42d856fa341a51635e5e6ff70dff
-7d30ea12ca9b7df4b2fc7b5e5ef4622c589f20fa734ffb1f85754817adca0a39
-21c9a43ff9bc96931553d31911fe25dfa76a3a2130600a9846d59df231671a37
-cb3bf050a5beee286a2aebbd7b63b1d1f93483386ff3718b7164517f799b25b5
-9b1e86bb4cd279716a60c1d556a0fc3c3f0393448f042920279843e58b339ecc
-e9a3096677afe654d0e3fdb751305075e9f4b24a2f3cc2c1201feb4bcf8f7089
-dec2741f9ebc7ab3cb5f6e270bcd7299dbf336e480e62864979000be89603a0d
-738a71bab9cede5d72eefc8c2f4a003c62b4bd651f0f09bfd90291d2afc4c8dc
-24608073e85271dfd95a993c0bb44a70805f8e4fe091566bbfbdaacd6e2bd7a1
-9dcd0dce164033968f57c2f5b81d5365e8e778c289c4059a32b9fefb57cdb0de
-d4fe1a8da2ae42a3463fbfd52a9db958b5a4efcabc5ca9b28b32472498717340
-70d7b551356e5e6dafc6b0129287f8554cda79a739ffd8d50a25a42f1eeb313d
-8b0b13029ca24106dbdef88595d8503a052136d513a05b839ced7376b3bd2d2b
-dccaae856d1249da9a1af1f25dc44a5dcb179b33036f72b14535978b5178a7fa
-d1354b5600ad14dd74d41675eddf0222a9f17acd359d24a4f889fc6ecc422fcb
-cff4a8d8a1f2583b5fbc234edd89483b69e595a56f94dc44ceed0989ac113cb6
-e33ff37268fd6351027611f6bd47b672d68c81f3becb006754e08162e9a00889
-7a486de7aa317d53505a805a5da3e361182a9575fd8be0211a71c2965f32dddf
-dac6d3b874b4324be18444c9a0e70dbc3f0e9d408aebee78164e4b6e0bc986e6
-34680af9161d39a64ba7a3a8ddd44ae3d94bdf94d62d0907efd4b5c3ea889b25
-00f4a33c20d6e7e927e11cb84f0c060b0f7e052fc1df50c1d7d535f5a0175534
-d105ab809d866f0f8aa99e52e87e8278b9821a1c4629f66dab1e15e7ba620634
-cc531cdc48be59eb49f41c7bfddfd2b28733f8a5f93de54381bd48fb5a124e29
-1dc297694ae37dae616e794aeccd61ba75f646c6b12f280c4419645d8c0dd1bb
-325b6967a19a762635e773ce7d0947ed502c712c8e5c6983fd70283041489b34
-7675bafaa1c1718408fe88011cc2b0196e5e139e6c6b9c0acc16b152ddf01a43
-54aaad5d6893f6433e86e616a2f563d3fc1b99af94faa8284986ff4375b0c3b0
-19191589fed767579898a43c819c455a3ced3e6e17b3459fde16aa429105ac5d
-13443d8801acdcf2b939530d3b62fcd369f0c3b47199b14648257886add0a1cd
-64a522d10f9c2e98a1c50360951bfebb48e1d9459729bc8479afbcc12df7be44
-701d2061a824536d53f59717ff0e84fca4d98db2b14dcb7b12ff0a08535c3772
-26090d34a2b23b6ae7544a8f14c7d8594d57c3f984d6a68694eb21d528092654
-17dc8b22f2f71fa721326a594e68c76f2e0875d475cc85e584741c09d66b91e2
-e249f2f116d6738787ff20dedba5abadc5df8b74a342521c0da2925b4e40131b
-cae9905cf97ea917d17d0847ef14d00c9e0a3cbe2ba9201b4731210937fad283
-f0e22024ff649c82196f9c65a01411d15e6bde2411e83ef805625262af2b12bb
-eb3c3f813372879f7f44a06ed7f07ba7b7f54a051805fea51f760536c1abe5f8
-3d99fae350090521e740fb4dd4e8d8b26a11e3f19a96894f039c79d08f02b281
-c28cc2b6e50114ab2c081c964666b181d0a12b83523bc254f1440823b781de78
-bd4352d8a20523b3b802ecc13ee2e5d84a0e9111b603bf47020810ff3a5f9742
-a6b1dcaced175a5095c7eee29e45ad5b26b219071dc63e1b510a3be45d2c9863
-9b99aa2dec9f16c627e6b095508a656efee603616b20d066f8e2bf6b5ecdc9f3
-e0bc849f5a7f96494029ae108a6d4f4022e7c451b988ec728391033843a0f9b4
-b9e3a8de44fb6cb84cbba597920f752ae834166e67834eaf458b305fbf0a9c47
-c33367c7d2e9deaa69b942f199705987557a44738213fd7d73610aeac05a2ee2
-87b9f1fec7446ce54b45d896d94f8aab63f28777eff901d339f4dfd29bdd241a
-1809e24188ce5760f09db96b18a9f79988f468744583718b8b127f9a511038d8
-bb44803a0a7f252fcb11cffe2bb70019b8aaadbb9e5106cfe0e23a73e1f89e5c
-33e60c95a2ecc4d060848c510b6387cd9baa38a560a6883a7520459fdca13569
-635ee2ede26c
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-
-%%EndFont
-%%BeginFont: cmmib10
-%!PS-AdobeFont-1.1: cmmib10 1.0-prerelease
-%%VMusage: 45110 45532
-12 dict begin
-/FontInfo 11 dict dup begin
-/UnderlineThickness 49.95 def
-/Weight(Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
-/underlinePosition -100 def
-/underlineThickness 50 def
-/FullName(cmmib10) def
-/version(1.0-prerelease) def
-/UnderlinePosition -125.0 def
-/FamilyName(cmmib10) def
-end readonly def
-/UniqueID 4100069 def
-/PaintType 0 def
-/FontBBox{-17 -250 1218 749} def
-/FontMatrix[0.001 0 0 0.001 0 0] def
-/FontName/cmmib10 def
-/FontType 1 def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 44 /arrowhookleft put
-dup 45 /arrowhookright put
-readonly def
-currentdict end
-currentfile eexec
-90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
-634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
-ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
-dfabc82a6f8a1271f309e0e3011a9bc52bf61e9a2744d523d00323b2cc5c8566
-4b44211e2d2750bba46203fda40c19da54d71ed1b01181b8a821dedc73ef00e7
-7ec03491a0696a9165e40711bcf270b942a54742c59b0dfd76314b1c2327d393
-8678e331e4e056b84fd841fc87f8a58c19e653ee419dd98e4730728642f8595e
-cae6caa75e0506f0bdab6ae8a68c4c0fe539b83f6ec191f45b3d0ca74a897cc2
-cd5c1da955c84e768e1c1de92cafaed90d622c1dacbf9ce95e9dd172e169453e
-8b286bca2f29c017d1a1c6f5c0e977fc48f15dbaa00421d24600c669219af386
-17674c28fe3279793305398722552923252d2bc5a0b67125b84db382e819e186
-363dba81eca175feabdf8783feb3ece6bcd7c1c1e0555b844c0e79d909a7a4cd
-e840c753e8560bd9d51ced4a1d7e65e72e32afd26cc3ff4fce02f1b9b84372f2
-c218f49263251efbf2007cc6558608e838bdd42bd57c74019f680090ffb6c74a
-414bc284b4312b089ef5bd1c3e229e3bc70b6e1698f8bf8b0dc0f1318e790704
-c3d533d77f5fde830a5888a53315185a06988d2e24eee6522f97e2ed0b72f852
-1d8f549f4bf800474ad2b22947d626dee4f5b5e610e4b3ddaa7087b6ddf8d17c
-349e44854a2f357b6cc9513eb0baacef4909af1a23e93de6135ef41646f22ab2
-bb3bfb2652d3f45f9e956e943f705e5b2dbd7ceabba536566b1ad497d5f9c4ef
-feecfc5b0a082c2d31a3b993304470574470667486e0654b79a6e7c2337ca503
-d7c3dbd286360d7d12a2c4daa6ab1270b9e20b737e781906e8d8a28edcd1df37
-96ed0c52aeecd8bd7ba6277580dda4803abbecf235569e9e3183bce4637c3495
-0a8a82d2c6b129fe15c5642d37458bd35b453cddc07aff11d0df40cd30a2a5d9
-393b3a7c6032634c99d68e5b5b9caa36341f2489d548f857a74b5ecb0e846a33
-50bb16809cb24408bdb96ed9589d27aa28a58dc48df0f35402895cde4cee840e
-bd6897ab0d2eab41dd699e88dd4fa2e099a3c4c99369055a3a00cf308e13152f
-ce
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-
-%%EndFont
-%%BeginFont: cmti12
-%!PS-AdobeFont-1.1: cmti12 1.0-prerelease
-%%VMusage: 47516 47606
-12 dict begin
-/FontInfo 11 dict dup begin
-/UnderlineThickness 50.0 def
-/Weight(Medium) def
-/ItalicAngle 0 def
-/isFixedPitch false def
-/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
-/underlinePosition -100 def
-/underlineThickness 50 def
-/FullName(cmti12) def
-/version(1.0-prerelease) def
-/UnderlinePosition -125.0 def
-/FamilyName(cmti12) def
-end readonly def
-/UniqueID 4100041 def
-/PaintType 0 def
-/FontBBox{-36 -250 1104 750} def
-/FontMatrix[0.001 0 0 0.001 0 0] def
-/FontName/cmti12 def
-/FontType 1 def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 16 /dotlessi put
-dup 20 /caron put
-dup 21 /breve put
-dup 22 /macron put
-dup 39 /quoteright put
-dup 44 /comma put
-dup 45 /hyphen put
-dup 46 /period put
-dup 58 /colon put
-dup 95 /dotaccent put
-dup 97 /a put
-dup 98 /b put
-dup 100 /d put
-dup 102 /f put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 107 /k put
-dup 108 /l put
-dup 109 /m put
-dup 110 /n put
-dup 113 /q put
-dup 114 /r put
-dup 115 /s put
-dup 116 /t put
-dup 117 /u put
-dup 119 /w put
-dup 121 /y put
-dup 122 /z put
-readonly def
-currentdict end
-currentfile eexec
-90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
-634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
-ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
-dfabc82a6f8a1271f309e0e3011a9bc5290269b762294a14a8bfe78e181e66d2
-fb03556f5bcfe3389df778e07fa6fcd734377a83f9266572e3b1739be890e67e
-4db9d648cb1e20e1924191c87e774cca41219948fe0aed68f6d1c75cd93efe25
-eef7ab5a4f73cea6c8b2f8a0a83059c103885ad36545a1d6565755bf0771d84d
-b6c54d2072f4e9fc77143f6140e2baff6b374243451ddce023ca8d037da67443
-5c970c812cc10028a379918f53fb87b0996cab5a2196b3f3222cdbf716072930
-2793ad9ece17422f07a2e54f422659846eff044f207abf58ad41fcfa88d4e08c
-a6d3575e290e9f230eec57287e1ad6437b67dfbb7efbdad5629d163eb88ec443
-52acefcc1b9b1509b69916399b829cdc4d8c1f4c6ea3049566d68e90cd5c739f
-cc77545106dd4968202630eb2de419dffbd2aad79c7bf4d8c7ed65e8357106b2
-87bd7b718232ea843cf01fd491c9a2f4e895af25f837a577e40ce34d279168e6
-6c398ea5eb28736a94c04ed6ca3c38ceaf5c057d5db327516a74a68874f50306
-7442f45de61d0697e808bf696625d924d6128505aadaea49f4d2672f9609119f
-d6c3651d5adec480fc76eb2f85957d050f3d89a692ad2600ff095b0d51b287d8
-4d1eb719539fcde38c2ad6ef1e916cc3cd9f8a9ff821308ab1e6b35605f7f361
-16345817591bbc68717918284cbf6aa2317e38b6d3b470a7b1ce6c615203b831
-6ac330885df302bf766d91db157f42d131223f4b7c3111f5751218e0e29c32e6
-12f5f8e675a90d1d0267d49876e90213080dab5a3f02114f80e2aa12a89a800a
-8bafc8241bab94dbbd01cbf0deca1c997c95bb8bae4676c4a19fc98cebbd4c77
-e44f2e37c01af302d76b418a852e6fbf0f8e11ec7ddf3177c691f0f14e738e12
-cd417bc8a5920d987f29968eca075069db06540584ac046ae58cdc20cf69a7c5
-b596d3e5352c450043f2e4453fceedabb7879f3a9b3ad2d4665576bae8e676eb
-42149585c8d5d9fd30bd600a6654d4e725a4e5ec75936da61f005e0a678f4f9a
-2441ff00ad1af8e3644830157b827c82cafa6a9a0339e20943c5d8b6c22e637a
-7439dde6d78c229e4e1edc8db4891bf143105eddccdb3b698bfdcf0596f6dd83
-6715abdba160baaf39f4e68e8b12d7b24a3bf853bd2d9f6bc4a1d05ad692559c
-8948e7f574522467f2f20248ebbdf88e28ad656f888f937dfe07fbf0ae83d955
-6218424568e5270bdc04398a1051944c05846955868b141a20b96267c8df10c8
-cde9afcfaef4fda2e01b34843afb60a866b222c09dbbcd03def345e9ac179f79
-2bcd98aff34d1f40c13c7306a1a8508d0e8470288d252bc7650c381727cf4ea1
-c11322029bcff550ae4d7af2cd8490e81693cf3cb639b12bd7562e40dd897e63
-a393c83f7faae5d0d4e3cedc20f96390d5373a94402f9862fca06739c3ac219c
-0099b7cf8b581f52236b99174cb0ac72fb6b96f87873892a0242215c5da31e36
-e019998fba81667097281350a338071544b314c615019c0bb044ac8af31b5eaa
-849ab5c3734ff2fc41bccd95f649c6dfe2838218c15bfd84e8c39d1677b4949a
-2944254858b5262bc99690e934de731bb6385d16dfb2f81aca463478cd572488
-cc067f56d7840a241ad238686fbfe44718cd96242abce7e1db832516feaf46c8
-121d285306cf03792ae2e397200edf7150881f8d2b8f260953d1393d9b1d49b3
-1370e287eb10a587ce16f551bc2ba48bc2c2ae8cce93c661ed07d54a9b79c38a
-1bc516d2b094de6e889bcfa8d2e98170cce82a35d38357b42b5f1e3072e66a77
-9bd6e82ece95ebb514e08d679e966f32a728f241d4f9dbc90bfccfcb0f3e8d35
-9a0d82372a5b5359f4fefa861cc00f6cbcdaa3d9347772ecb27b8bbe74c0ce3f
-af6782d4100e9d659843d3b43c93969413aebe31960f3038f8ff2ad5dd9681d4
-51ec1ae91cf1e32ed447cc7b97445c8eafb5c9a873c7a32daa2db82b106f0fed
-73d69f3bc7b1dff1cf7575d58fee6f3c2ebc010ecd4d5c02c9b9ddfb87a0c5a0
-35ab7501da5c4dc522bcbf35417cdb48d83239f319d476453726d982042f803c
-38457f9142aa46845f800037e3898fec43970eba19625a5c360d9b636309edc8
-15253fc716d25f1b99d533e6ad917e37dcb8e40533ea98dbf740d1011a6b6350
-9072ebdeb7cba81d9348f478c09ef9435303754a5da1b2ba7913a73cb9164df0
-5df77f4c437025dd71c1fc7230e138b47a4f74ee9cdba3aeff5fa69166bbf538
-d735e5c958ebd7664f7f571b92e6830d804885e7c01e7126980d04c85db3dc51
-de6684497a52f9b14b169886442bad2564af8ca8ab851a7a9ac208602b9018df
-2f8caa5b89115d0a2aba966794d54152b479b10232ecf7f0388c3e5070243c72
-de90c637b7a10c7f1aec59d487aece1e20d4498f39c87b11d69741f1a2c98e3a
-2fa6f92fd35746eecd9f7eb81813c724d46b68311a949334271256dd6fe864a7
-d09c083abca2a006e399e504087f979ec02249f5ae6567bc6384064f5227e16c
-316458fafd023294e06733947b4dfb78bb1cce13340c1109259f9e15c5fce773
-90d8423a0e6c5e3faeb98cdeeace0db581e857d316ad0bd0723b96d50b047df3
-37bbcf694e0be7243ba71a7241227c6003cce7ef31f39eaa7cf23381388a1196
-814ee75bd22d73c1646ee2dd75c051d7c9e4c7ebbfd402316df8b5d3a74392e4
-e2ade10d9a207ace256cac51f2039404f194b28e39d7b848158f8f84ff60aed9
-88bf6333829942b03e9175b35833af92e1c68ba5382b8423e62fdb2417444315
-124d258aa3b737e1811a4cc74aa2055ff1fae26f79651d83c04800f6fb4e37f1
-ad6c90afdbf6b42683b4c1b590be0a9ebbcd31b196e950481f15b35a88572f8d
-6e4cae607bc61ded82a89a332c22819ea80d149d95c791bf7ddf0f42e6d35e7e
-296f7e716787cc2cb22016dfce9e764f50a817b2fed5531cff5fc8bb044f35e1
-270f96be2e5d9db54049cbe59893e64c5e22703c08932d7caa6e20e408328f38
-72b9174cc186b7068aedda6adecc592db0130ae83f9be00e020cac63f26c0adc
-05807ee064348be20b1a81d32c9a197ca404d71579224c7505cb0079b646abb1
-5b4d69a80e476fecc1888584b8f9d5e853f0f8dda3553f636771cb2f380b750d
-2bcd794ec120427e75b84d3165b2a28b95fea3f6a8b7166a9394fbe1ebb9d9de
-f494714fff29edef5c7183a9ca34113496843bc663175a1c608badbd1eeb6d9e
-a91b2d6958528649eda39630512e2e2fa290f91dae8643bfee6002b822f29ecf
-127d1bc50f6004d8b4f8dbd2ee0129f825c2890b39ea430a4991aa611de25341
-794386e7469be7c421199af44c41d48b58bf3c5d026abe612088e21473253007
-2df32a5bea725e421f0d58ac94754a5e1759e7f20f33e434d2bf7dbbb7888ec3
-b2f7c0cea938ce1dcadf56df7e896e4ce3848ebddd45c6e20c2e7f37c6f649c9
-96f211a8840cdcb8dcbc713603c62f7bcf33dfdd550b09c6399f3e505963b0bd
-dbf37c8ac7777e8b48897e0a3f1e19519760ee29d52d87d9b631db6521248184
-bba1bd5984a054a5e82be5e0d5f32fd439c3b9d2cb0436dedb1b770faedd4ed3
-84360e79a2eec2160299c371c08e0e849d76f2ed7dab8a7e9728f6c7d1f53df1
-e96c0a65bef7ca096afd17dad6a17bfd9f046491d3b53da5c9b98b95edbd8487
-08304966c47f153b0bb9e92a22534883a786024961cc555cc40e7ca89bc9ca84
-f1d540e49636891a44079e62cf33dc66f044743093cc3ef29d6dde3f17ad9ab1
-8672d367bd3de66fd7f0dbb3e756d75bfc5cf3576a631c177c6d7eee3293af52
-e3008fdfdd787daf160f1645ac0260e9e0b10a34d3e270f17d1bc03da482a994
-d57935efd06375742d86effa6cd4ac4ae226e12f368a7877c3068822c112e160
-b47416063d12f8171c2b06c0af6edbcad82c0556b8b0221967a9219c0985e473
-4f44851c0c95caefb61a999cef293367295f951e72a0fccb3255446a94eba2bb
-0e66e7e69085c083b905774183437ed18e43cfc451df8e21538aa46cacbf330e
-01a76fcff3abe65a2103c78beb1e6c2dfc7f9034353db0a2fa592d38502c8b6a
-a8aeb56d789b3558103a3f749e4f22c04c5e426f2ba2577e49adc64d88a854cb
-81e724928daad7cb26114e543a069aef4c290349e9eba4a7be477a3d52fbda7d
-e28ab6fa5a6005f75396d81048b0ecb60d18115aa2d54df15699560058e498f9
-2d3094a7194206e0eee43ade6daf0619abf7482d36d9a0a20799743bef60200f
-f48fd7cb4f868384dbdcb7c1e6b82a73e1597ac602d66fbca913c10351f30cad
-cf043801ca98ea8e2ff691cdcc6c1faa53021a768682c4e4b2907f1b08fe673d
-c97442e1c5ddee2ab54a325f8f1adb7a926cff96cd11914b49c82b0f462c567f
-fa23f4578f925462134c3684b0c194a016b05d17eb5135f126c367ae83584118
-8a2e927f7f03b0972c88b3256e480ed9b4e3bbfef58226d2085c1e35d57b4395
-3aceb7ac509e5c7e46e2eb35d36f2cc368e6955f64def1aa0c9d0455a5744512
-42cad85a420c2d078d569b4667d4f6bfdfbb600f6a4519327616e3da82f70a20
-d6fdb5a5150f5685ed2222c58c3702594c452bd4ddb45e2fad4370dca80e4d51
-f539cd379df2fba93ee0d5f011ef989fcc4823d6914e64ac97f8894cdd9ac3d4
-c4c82bdc7a5290cde9dc051fa56409f258efabeee271c9eb1d86a16c9cef8e30
-31b85b032e0fc3af7dbb9c02315e4a9d32afc8b169a1faa84e4730f9a5c9ac14
-cff53924a20d01301d4ff8f98a823d758d22fcdded3d961647b2f50bcfd3839e
-6bf5d53279eea1c4a9fef1764f2c74a56104134da4a06d50213d9a8017658340
-78d0119160ef44ffcb4b88bb50ee22e440afe1a9d2e4b2e1e4041c0c4c2cf8f5
-70c1b286750d8722099f2065fb4abeb93d8d43ce0fe2d088c79a1c5a15c7e47d
-12ee59116e74dc8fb361c9cad0c51cdad73775f3d4dd92568beceabe728918cd
-a28de642acbd13292f7a2b6e5e4d0d9df61577994aa882f765749fbd7fbad99c
-a8b741f8c59a4eb28478e5265eb10a4edaa172f11c90d6154056fc5f533b569d
-fbb98c25f73cef97a6345f4d7dcf50483e71976b04a60df76966ae74579c4234
-5bab9804f24ef9e8f8bd0bb752958809aece8e98cb06c8e72cecff9cd0a0d0e4
-0ab7267059508228950ed546a1c5d24bb3b14eba6de83afd6b3a7349e19f0b45
-6a9e5326551011f8dd9ce1140534966f4d15947555b7a40bb5d421c74320a107
-2d9074c028e2ce1db896e9132b7f2d0a20de9190b4a71f4895081c9de4fc48d9
-7b62fd54b690722d95d4d8733033026bfa68c6e9a3b3a8fd37c08395977639c2
-fd7a20f235a9d4f444acd663a580869839d9fc64690c86841c44ad3c1c6596c3
-d61ef3941c0abebd8a7c74f668c0404fa2422a84f1d2903f7aed6da131bb2ffa
-a579e56507f766fe5a3532d928a5e0ea1b17fe0b9a9aea1487c4921f8a8c1c05
-73306fa83292a345d4c31edb4a174b8fa10ace981d69e231f6b14b58e4ce086b
-727c24d7bab11df76cd749e41c77aa1ebde852f4e142b3bb97baa7979ac066b5
-d336f6d485a2c23f0406fd66b3cf82a860d071558f0901a9fcceec8023c63b2c
-e2c4200c8974558e492526c01232eb0ae568c1c7de2015eebc3997547a5b21fc
-f5b617b0061f9bba851b7e739f4f590fbeb3d943fbc7332c2a73f448e370ecbd
-fec4ba4859a2832038a1e4e9210e0c42f93d9ad226807aeb63913b66837126cf
-34bb08b5330992389e402e8119038173806846b39befd58d119756bf63797c96
-2421e74304ca306bd58e9932fd0657910db2772336057ec8794c7ff537777cea
-80194f54113f016caae2f4f5a9f213adc6cfc623aaf2fc74ada1af783dd654b3
-b6aa9d85695247c995b1d4d9c17c1dd46bfafc8cb3079cb5af7ddaadb20dc4da
-31099b056b59598d9a00b15f743d35b8e14374dd1afe24c52482b9a5fafdb294
-9667117cdea4233326c36f1f0ce65d2e9c40c69e65cd056d38da151bdf5bc287
-e3da1721cda0f6a909d51d993d9cc3fbc27cb13d0aad1e375a4822b00305e461
-a6e310eb49aceeddd7ab5ecebc5f9dcdfa1a0a7722316d34753ebf33300d96c9
-76c841c30dd950e83fe24f4608677731e09b36984c74b8056e284ef9df90eaa4
-d3bc4d73b11cfef54421e3324451d042c9ac04a38f4305119799cbdd8b7bc0ae
-21f37efef4cadf59434859e17c1f70ae62e602230705702e653c0e0237b98e44
-db650d3935501e0ab1d9fcdfaacec2a240673a86e8ca35d7c818464ceb84984b
-3aa351c7331793c94482b72890760245ae1e0eb673dfa581d356fec19e42c933
-f5e26f42f9f4fbb2c6ee16257fcc1e9c126b32fab5c417345438f147fe73436b
-a8caf5a3d38c95b3a1f41bd8426acc8789e00f9a4bf7cfc2fc5e35e9ac3307a4
-e58c2f6bbdbdd20308716c0efc43a70af5fe390680a4ada3d48359411abc0771
-133dfd7ad2b7f470696638efc1946be5275e4aba06cf57d52be1a0017bceff4c
-ae4659148566da6ffe23b9c877c87b482847ba9015686dbff6cb84efd4ca80af
-686d6dbeb50c8dff850b2a44e473911ff6e3879069f022a4c7bf9f02b9c2680a
-215997410426615b968fa32b2b97fd42f598ece614626252c94502ec08c4336f
-5d720092e6b65721a25b44e3481c654ef6d375716c05e2ed02ef6f5a841dab7a
-d5890b550b3793ed39fde665932f2d4bab94f1a1fed0d02e28e05a4accf04881
-26f103d92a89d9ad48431bfbb0c444c989920d20519d06a6c4df61e5e27e5cd0
-6e90dc1c877b1ef6339bfb9dfeff55384af39306189b95e302a722385e90d88c
-e9db247e7f8b8d221fa03e9f88973068a618bb9b66fab124e27c25153032b28c
-7582c32a871deeca45f17e7a1b8e1b9271a6339b89496edfdfba7199af4a8cd5
-f1aeca1a50a48bcee8d76222ffc428135c9bed34cf501e7b35c8704a01b63ba5
-fea49c9f95fe8a706ff192afdceb0ee32a1f088a9ebeaf7d7cd096ba4d4468ba
-ab9d10af1f68931ae29d8aa56acabb8f15d16efd1b3a9f24f993aac72c239da2
-acbd2cf14405d970edb465947a16640c9834701790e4dbacb794ed3241d7b067
-996e451407dc9a0b16f17d151fe3fb5100378189ebf831e90fe75624ef39778e
-5ee6085f070fe294849ffdb68810caf03da69e9dab0f8938fe2333b8b7c54094
-3a574ac3c2382c21d5ef981b5863f323a6721115988b3736aed1c9b8871c01b7
-ca0f94c6fe96be57e180501d77257c92f440b6f15c469e089922ed038f369f35
-d94ed5edbdd84870aec5328083f7c5664b3e4d60942ba2dfbe61e8d9b7bd101c
-7a3de9ff4346bb7aace2d72f9029493ef6e79b06ab6611cac49243ac7e736368
-5b0674947d74a2910f1e66618fc74bdfc22697540e9e5f7eb2c5ab1542216a12
-fed5ece970829982947e231f6182a9ef66b5f51967cac03413462db70d738c81
-dd3e28ad5e4adc466fba140aaeb6ee2d31936246bd2a9a0f25dc21b9c317e222
-cf6cb1b26c46a865b9a5d5ae6a4a56d635e8726b5468aca8888c2a11897af3ea
-5cb976630459197670afd34f532f2c296086cd5c0de8fc5be704c7369afeebff
-d7f09fe91484770c0c6457b5081c8236ca1bbc20e859cddd3167f1cc9740a78d
-0aa8724a14acf820662dcdf7fd9b58d773e3f51d8b74b05f5a7faf16263b96cb
-7d01f532fafcf0f91038b946846cf6ee5ef2de240439b80d2ef872cccee813e1
-d99368cd14486479416ec144de2f32464f123300d09eda58453ee49a08b2e103
-47db13e9678e5ac3432c7861ebea2084d8b4568650667c66d0853d149dae06f8
-6a12cc0c94116a60b3837314b659a93b57ec52251f5a74d929b37abd2ee1c0d5
-4f6c988ba2a9820473a744caf79a320e20354658e869ca9aa035007f54dca13e
-9c8c6148b13f29a7a66c9c2303e0388eaea41bd92142cc168800d2abebc3113c
-d4559b2aeddb24af64d383a60b2549fc22e950378f84087de6ae274f545ed737
-0747700787b952542a7449590b7b9c484ec3d8e097fa4762ba0774d0bf44e92d
-60817660534718f733a2695347ce10b9cc37aca0402dec1079cf3e63b6156eaf
-308ef724f95c149bef5ad1b4bf76bccd7574baf017c86ba1ec12465533f26017
-16b13cc30f90124905bb425f3346c00e93126b366a00fa3548e669bed06404d6
-3bea6d89e750f7b4754f2af622de2730fe0214f5e7c1522b5fb9922f31a7e4d3
-7bfa35753037fd3b48b02ea326144d469efd5d46e29f5fd30587e54668e1fbda
-b0e5da9c953be0c45ee02cb5dd89f7c1eee1ca874a450d9c9f2c8eefa7bd58ee
-86b2edea126c2bc87f50cb9332c55269c874a6bb18e7cff9e9c3c65f0eef91c6
-8c779d91839faeb782ccc2d571d144217e8864109e8735498b46f27620a73d10
-90591476305d0353bc9f1418642e399b39b77fbce81057990d89e6dde65f28c7
-788650e79399a7d33ae6f643199ed7297171102f5ee835949fd9c3f4b2068d0e
-9256e80130cbdd1cff7729528c77907ce502fb3f2fc9340657034050c41f58f8
-d40d34a91d000d243346e35f02f4bad1c6a91ce9bd2b7bdc7145507c4031bde9
-f26697d6f61fc2d0e3ae5c5f8a72bed7c9f4f17e7ab45979816cfddff9dcf58e
-02aa14a8a58b5abbe7b010f813a77f72d4026308d2fcc95684885e36054fad31
-5cf1734902dd5c987e67b51166105749949129602aa0d5e065a645ce99f3a530
-fb9792dcbc3bc94eb15e005bb8b953ac90dab2819ad8804b441dcc82430ba58c
-c6d2a9b53709264fe1eb2ca98aee5964a0f4a46018964c7d6c80613825906b60
-e3abac854fc2916fc30d8f98456d99a34d55408d15b27556ffe1c6f78b69962e
-3699688342024ec413958046f7043a4126aea01570060f72fc80232e44069f21
-d2254040d6f68efea6a81d45f1635f872dc5001b181c9cb506080412b5286d3f
-9bd5e81c582d3dbd815a102a8f7fc2dd47e8c2637067fd7094744cd9d6ef052f
-2abad10eb57e948db9853b0a9d7cbdf77ee982c74b79d08a1665c5bbfed508dd
-3d088aeca5985aed382afa5c833d47801999073feb2ec2079b01be3537b871cf
-2f1c7936d540abfe08d6bb94f81dcae5e94ac58a5ff0a2337f73713f71dfddd8
-34884902da9f5d9422abe3eafa1e3ba39aff57b57452f315bd4d96c5c262dc09
-1621090844039e45e62ca40714caf2086e6eea494243d1fbd9153f5e4920fd8f
-b37fa2e020a0cb1833c59039cd87f832c21a2ba0970945325c0c092ed9d974de
-f334a44cdb77ca9c23805a331cd895014718a35c24f9587ced2e5fc990c28dd1
-a1efcc72ca6a8037134fdec961d0a63857be4f65076daf769c6f52e7c8f96ece
-e0cb3eb3001120228c1e1a21ea46e80fd13c73c5b3e188c2a392249bfa3a2c2f
-8d4e608bbb3218d9c527bab656e341952a47002056146b85f804cb0522ca5407
-aa69625e4efc3b8882a6f23d64dd1b630991999e5b26e920bba38d43a4980fab
-bc0c755cb403f724323dd106abed53a21bbca6a8c82e202a515fd134f166c9d7
-e027bad4e6d72bc9be48e73e502ac64436122509c302bfb712ed991211ee0f9e
-bbb95aeaffb8e0f0805ed3dfd4076cb19e1108a81658e8d194b89ae3bfe41a52
-8f175a2484414b57eeaed988f4e2ed54e48b5ecd5256b85857e2f1ad71cda4a6
-1c8fde9f0847abac111de5421449e4ab0762d1ee3df27bfe29e6e1447e80fec1
-dc7fa9f3dc7a5d8e67e952c72fe39fdce79a8df876e87266ec9be9902995b0eb
-611825634cd8b728decba041d63b68357f84a7efde543057990d1dae9343aadb
-8b16eb60e9178465767c67b4d63e050b64f8ac71e64588298a336f3fb7c62761
-9a76e78614f932d94e1887a86716a1f738888ed1281d60dc8f26e8deea5c3408
-395812d5ea203a6d5f08ad6bf2a33d560382f95039b1d1b4da749d4c1425dcc8
-722de1489f0761f0f28288fb02ffe646ed5fdde587c0159c032ba0a5f6ad5c10
-ae8e5c1619a9023151d67f6c83f2310e999c1e19c6aeb657833949007b3a10c1
-69667729080033abc5fab5552a0f8feec109ce8f39f5a37f3bba527eade618fd
-1256225d62ac3c14c204153dc73cad820e7442e25992c79a90493c8844e3271e
-bfe271dee771405d9aa83c61d8b8f8d4cc7ed4d26e168848cd662086fad926a5
-4c2404c9ebec01371568f09edaf751f2c78cb0230bd330ee8d04a8998b2b4b65
-4afb92c6046ea6d194034b53b653bfc22c32f20d7e35c227bae69e45af4c1e95
-0402b4b877fe2b097de42a1d4bcfec45745345995a0b13ee3c9d9811c2c520cc
-152b2d957ba99617cdd9ede68e462b37fd58a206782747dd3593ddf488a1aaa8
-d6dc4b9e5c19f894c4cf13b28219da2500a1c202d0542f761b1ef03d6615d606
-68f8c95058011eecd5a1d71894243f4cc47105854c7f26a41277ad24aca7c9ca
-65fd78e1146011cbd074fd834facfeb1b3dda92672a5a30ca961bb04945497db
-59ecf905bbd45a18f3517980466567fb46f8cc219b21fe99b7fadaff92ce0397
-eeb923da8df33cc0ec86f84874cdabf030acacf530f21f39bdaa8c2c99a91c4f
-52a040de06d407e9f1931fa71c872dd430a5bd4becaacbe5d7def0ea1fd1db02
-1fac9ccb4f01332ed7fde57a432f1186163d21c4759f783e05285af5f46e05ce
-9644ac6709d4241ec64ba9d44a1bc437220c27aab0c4dda2147ce5b062b3cbd2
-e8f185b9daefb31eccc8f131d90d8d1530f8b250cb0eec762dcd24ac045bb55d
-306f9c78ce029ced629e312b18429802badf1b61baef6a6d1ae7d232f1c6c7fb
-17d0c735f6b5dece447cf1822a7204c1a565e54fc75f01c34c0f211ad60d8b7b
-037a321f1aaf5b8137cde4ae3fd3e25d48fd828b940e16c77f8b462ac0dcf670
-292a26a45c2e87e13c5127ea8d3fe77b388795c0ebab2fe61815439059390986
-14eac91566b4bee00d6b97ab00eb41c2de3ecb16335b1cd9ce079cb86f791759
-76701dcda5eec778428b79c521112d7765acaab8251630318b71d34195a3c2d3
-696f999ef584f88a321dbe2556f82090f9e9be835a43c6ec66f3a6b8aaa85367
-bd4a9f49edffbe1c7b8724ab4fc7dbd134f3fb19cf28a7b331d49a31f7df6d95
-34d4cfac421de2ac3d5426c1c3cd1edf864834a7f68e096e23d797fa2052edd7
-6c12aa0273ecf8578e292e7b18ee72e0903897bc2d60cb81b698da1427ed39c4
-b4ac6b07650e34ad055226e60a7c00fff9146539c476a0b398d5402043d73824
-18945d6cd3344a398b953979cc46ec6d47488a7721c9ab46db06a02e5b01b194
-3d095160cd6f0187258098ee1c378620821b68ccee6eed02a8ea644e38256771
-31f3c4fb2a8d92b5a0c918184bfc745a9ffa7674d535a52625ff49ee5b084a7f
-ba846b86b09e09abb64ce126c165b24650f736a76ef1deaced87dd7ab8c663fd
-e845b17c15eaa177478cd65a6ef357ed997efff956f38ab61db4cf5fc4c8036c
-4b0f95c254f41d2a1364e36b845579e168743eff80d16b21a7162f7da91b7ba4
-7b4731238afc1808c1543e5fa11cbc511c3b528d02a5bc9a57adf675d65d8469
-fcf7fbf8c4ebdabcce93010b0150bad77de0f090530b6c5ebea8bd66a38cc1fe
-bcf8721ca9b201059f3627c2ec4490314c1a
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-
-%%EndFont
-TeXDict begin 40258431 52099146 1000 300 300
-(/arabtex.308/examples/guha.dvi) @start /Fa 141[19 4[41
-7[22 1[22 27 29[37 10[24 24 6[24 4[14 44[{}10 49.8132
-/cmr12 rf
-%DVIPSBitmapFont: Fb nash14 17.28 73
-/Fb 73 251 df<1230127E127CA212FC12180706818505>9 D<EA30C0EA7FF8EA7DF0A2
-12FFEA18600D067F850F>I<1340EA01E01207EA1F80EA7E0012F812600B0780860B>I<EA
-01C0EA03F0EA07F81338137813F0120313E0A21207EA0F40EA3E0012785A12400D0F808E
-0B>I<120E123F127E12F05AA213C0EAFFE0EA7FC0EA1F00127C12F012600B0D808C0B>I<
-1270127C127FEAFFE0EAE3FF00E0138038401F001107808611>I<1304130EEA038E1243
-EAE39EEAE7FCEAFFF8EA7E60EA18000F0980880F>I<EA30C0EA7FF8EA7DF0A212FFEA18
-600D067F850F>I<1206EA0FC01380A2121FEA0300C7FCEA30C0EA7FF8EA7DF0A212FFEA
-18600D0D7F8C0F>I<1340EA01E01207EA1F80EA7E0012F8EAE0C0EA01E0EA07C0EA1F00
-127E12F812600B0D808C0B>19 D<13E0EA01F813FCA21200EA60F8EAF878EA7CFCEA1DFE
-EA1FCEEA3F84EA7F00127E127812300F0F808E0F>I<1320A21370A713781338A41330A2
-1370EA7FE0A3EAFFC013000D1681950F>29 D<5A5AA35A121F127FA27F12F712E312037F
-A26C7E7F13FC3800FF80A2EB7F007F130F111681950F>I<FC000101808001>38
-D<FC00010180800F>I<12021206120CA2121C1218123012201260A312E012F012F812FE
-127E127C123C120C071380920C>44 D<1230127CA312FC12380606818505>46
-D<1260127C12FCA212F812381200A81260127CA212FC12F8123806147D930C>58
-D<12201260A2127012F0A212F8A212FC12F8A312F01270A812781238A8121CA71218A312
-1006297DA809>64 D<12201260A312E0A41260A21270AB12301238A7123CA37E121F13E0
-120F13C0120712010B277EA60C>I<1580A2EC01C0A215E012301270007814F0127C12FE
-6C14E01380EA7FC0D83FE013C0EA1FF0EA0FF81207EA02FCEA007E133FEC8180EB1FC1EB
-0FE11307EB03F1EB01F9EB00FDECFF008080EC1F80140F15C0143F14FF903803FB80EB07
-FFA215005B14FC1C297EA820>I<154015C01220123000781301127C12FE7E138001C07F
-EA7FE0123FEA1FF0EA0FF8EA07FCEA027CEA007E133F131F90380F8160ECC170EB07C2EB
-03E214E6EB01FCA2903800F878A2EB01F049487E90380FC03E90391F803FC090387F001F
-D801FC14804848130FD80FE01303484890C7FC48C9FC123E127812601240222A80A321>
-I<13F0EA03F8487E487E121FEA3E3F38781FC0EA700F00601380EAC007EA8003120B818A
-10>I<EA0F80EA1FE0EA3FF0EA7FF813F01260EAC060EA80200D08818710>I<5A13801203
-13C01207EA03E0A2120113F01200A213701360A313C0120F127F1380130012FE12F00C16
-81950F>71 D<1220A21260174017E012E04C7E6C4B7EEE07FE6C92380EFFC0007CED3E7F
-007F9238FC3F8001F0903807F81F6CB6EAF0036C4BC7FC6C158000014AC8FCD8003F13F0
-3212808D31>73 D<134013C0A2487E487EEA0FFC387EFF80A2387C7F00487EEAE00F110B
-818A0F>I<13201360A2137013F01370A21360A3EA01C0127FA21380EAFF0012FC0C1081
-8F0F>I<14041406140EA3140F1407A31403A614021406A2140C141C1478EB01F8EB0FF0
-3801FFE0B512C0000F1300EA003C181B838916>80 D<140315C0A2EC0780A214031500A4
-14021406A25C141C5C14F8EB03F0EB1FE048B45AB55A000F90C7FCEA003C1A17838516>
-I<1302A21307A25B7F80A2130380A380A3EB02F0130638400CF838603C7C38F0F87E00FF
-EB3FC013F09038E01F80387FC00F381F00031A197C981D>89 D<13FE3807FFC04813F848
-13FE48EBFFC0D83E0313F83A70007FFF800060131F12404848B51200130F0001B512C000
-7F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2111819021>103 D<EB7FF00003B512C015
-FF5AA201805BEA0403C6481380D91FF0C7FCEB3FC0017EC8FC13F8485AEA03C05B48C9FC
-12065A12081218121012301220A21260A412E0A47EA27E1278127C127E7E7FEA1FE0EA0F
-F8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D9007FC7FC263180
-9121>I<EBFFC04813FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380F
-FE7C90383FF87E3A03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8
-FC2611819024>106 D<13FE3801FFC04813F814FEECFFC0D8020313F8C7387FFF80141F
-A249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2111819021>
-I<EA03F013FF14E04813FEECFFE0D8003FEBFF8001031400EB003F49B5FC011F5B48B512
-C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2110818F05>109
-D<1504EC010C0108130EEB18030110131E903830071F91380F9F809039F83FFFE0007FB6
-12FC14FB9138F3F3F839FFBFE1E190390F800038260D818C24>130
-D<1680152049EB21C0A2491361EDE18090380701F190391F87FF00007FB6FC81ECFE7E39
-FFF3FC3CD9C1F0C7FC220D818C20>I<EA0820A2EA1870A2EA38F8EA3CFE387FFFC0A214
-80EAFF9FEACF03120B818A10>I<EF0FC0EF3FF0EFFFF84C13FC160793380FE078923980
-1F803893383E0078913A01C07C03F0EEF01F913A03C1E1FFE0DBE3DF13C092B612FC8018
-F800207FEEC00F03E0C8FC1260A300E05CA35D7E14016C49C9FC007C5B007E131E383FC0
-7EEBFFFC6C5B6C5B000313C0C66CCAFC3624809035>145 D<ED07E0ED1FF8ED7FFC4B7E
-1403913807F03C9039200FC01C9039601F003CD9E03E13F8EC78073A01F0F07FF03A03F8
-EFFFE0007FB71280EA7E7F1700487E39F80FF0032911819027>I<ED07E0ED1FF8ED7FFC
-EDFFFE1403913807F03C9039200FC01C9039601F003CD9E03E13F8EC78073A01F0F07FF0
-3A03F8EFFFE0007FB61280D87E7FEBFE0015F0486C90C7FC38F80FF02711819027>I<13
-4013C07FA212017F1200A27F5BA35B13601370A7EC01F8EC07FE9038300FFFD9383F1380
-5CECFE0F903939F80700EB3FE0EC801FEC00FEEB3E0F90383DFFFC007FB612E0A216C0B7
-FCEBFC00232681A521>162 D<7F7F1201A27FA37FA45B1200A67F1370A2EC01F8EC07FE
-EC1FFF4A13800178B5FC903939FC0F0090383BF00790383FC00FEC803E90383E01FE9038
-3C1FFC90387BFFF8007FB512E0158002FCC7FCB512C001F8C8FC212681A520>I<EB0FF0
-EB7FFE80495AA214BEEB3FFC6D5AEB7FFF007FB512F0A29038FE3FE038FFF80FEB00011C
-0E818D1A>170 D<EB07C0EB1FF0497E497E017EC7FC13F813E05B7FA27F6D13E0EB7E0F
-90387FFFC07F15803903FFFE00007F13E091C7FC13F8EAFFC000FCC8FC1B1681951A>I<
-17F0EE01FC4CB4FCA39338061F80170FEE0F07002016FFA2701300006016FBEE01F3EE00
-02A200E016065F173C17F86C15036CED1FF000FE4AB45A267FC001B55A90B7C7FC6C15FC
-6C15E0000702FCC8FCC649C9FC311C809A31>I<5BEB0FE0131FEB3FF0A2137FEB6070EB
-C060A300011340EBE0C013F1EBFF807E007F13FFA214FEB5FC13011814819316>174
-D<13F0EA01FC48B4FCA25A38061F80EA070FEA0FFFA33807FB00EA01F3EA00031306131E
-EA01FC127F5B5BEAFFC000FCC7FC1115819410>I<16801503150FED7F004A5AEC07FEEC
-1FF8EC7FE0903801FF80D907FCC7FCEB1FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9
-FC1207487E7F7F6C7E6C7EEA01FE1200137F7F7F7F1306A21304130C131C1378EA03F8EA
-7FF05B5B48C9FC12F8212A81A91A>187 D<154015C0A31401A3140081A41480EB01C013
-03EB0780EB0F00130EA290380FC070381007F0383001F838200038EB10F8EA603F14F090
-380F007800F0C7FC15F86CEB03FC6CEB0FBE007F90387FBFC090B5121F6C01FE13806CEB
-F80F0007EBE003000190C8FC222580A321>189 D<14021406A2140FA31580A215C01580
-A3150080A8EC0380A61208A20018EB01C0121012301220A21260A312E01580A36C1400A2
-00785B007C1306007E131E383FC07CEBFFFC6C5B6C5B000313C0C690C7FC1A3480A51A>
-200 D<154015C0A31401A56E7EAB81A681A38181EDFFC0A21680002014EF15E3EDE00012
-60A300E05CA35D7E14016C49C7FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0
-C66CC8FC223780A321>I<7F1201A31203A37F1201A97FA21200A77FA37F7F387FFF8013
-BFEB3F00487EEAFE07112481A30F>I<12021203A2EA0780A313C0A21203A31380AB1201
-A213C0A51380A3EA0700127FA2127E5A12F00A2681A50C>I<1307EB0FC0EB1FE014F013
-3F1331EB60F8EB707813F83801FE383807FF30007F13F0EB3FE0EA7E1FEAFC0738F001C0
-1510818F13>211 D<EB0180EB03C014E0130714F0130D130CEB1E78133E13FF000713B8
-387FEFF013CF138738FE03E0EAF8001510818F0F>I<12037F7FEA07F07FEA03FE6C7E38
-007F8013FF000713005A5A13F848C7FC123812201260A312E0A67E1270A512781238A412
-3CA2121C1218A31210112B77840F>I<1580140115C0140315E01401A2EC00F0A2002014
-70157812601538A312E0A215307EA26C1420007C1460007E14E0393F8003C0EBE01F6CB5
-12806C14006C5B000113F838003FC01D1E80921D>224 D<15101538153CED3F80157F16
-0012208115381260A3153012E0A215207E15606C5C007C1301007E495A383F800FD9E07F
-C7FC381FFFFE6C5B6C5B000113E038003F80211C808720>I<1306133EEA01FE1207EA3F
-FF481380EBCFF0EA7E0700F013E0EA8003C7FC140B848A0F>229
-D<EB0F80EB3FC0137F3801FFE05AEA07F1EA0FC0381F00F0003E13F8007813FF0070137F
-0060137E48133E48130E180E818D16>I<EB0FC0EB7FF03801FFF84813FC120F381FE07C
-383F8038387E00181278006013005A5A160C818B0F>I<1203EA07C0EA0FE013F0EA1FF8
-1219EA10FCEA207C133C133EEA601EA2130EEAE00CA212F0EAF838EAFFF8127F13F0EA3F
-E0EA0FC00F1680950F>I<1340136013E01201120F121F123FA2EA3CF0EA7070A2EAFFF0
-A27F127FEA1FFCEA003EEB3FC0A2EB1F80130F13031216819510>I<1318133CA2137CA2
-13D8139812015B13F0EA07E0387FFFC0A21480B5FCA238077E007F139F138FEA038E13C6
-13FCA212015B6C5A121B818F10>I<130C131F8014E0497E6D7E497E497E80A201C11380
-9038C0CFC0EBE0C73901F383E013FF6C13810003EBF9C0007F13FFA201E7138048C6FC00
-F8EB1F001B1681951A>I<13101330A21370EA01F0387FE04014C0EBE180EAFF61EAFE43
-00001300134213C613C413CC13C8A2EA01D8A213F8A312005B1370A21320121B818910>
-238 D<EB0780EB0FE014F014F8131FEB18FCEB3C7CEB3E3EEB3F9EEB1FFE14FF7F7F1301
-EB0003A514021406A2140C141C143814F8EB03F0EB1FE03801FFC0B51280000F1300EA00
-3C18207F8E1A>240 D<EB03C0EB07F080A2497EEB0C7CEB1C3EEB1E1EEB1F1F14CF9038
-0FFFF8A26D13F07FEB007FEC0380A415005CA2140E141E5C14FCEB03F8EB1FF048B45AB5
-5A000F90C7FCEA001E1D207F8E1D>I<EC71C0EC7DF0A214FFECFBE0EC186091C8FCA9EC
-01E0EC03F881811407EC063E81EC0E0F140F158715E70020903807FFC0A26E138000607F
-EC003FED0C00150800E014185D6C14705D6C13036CEB0FC0397F807F8090B5C7FC6C5B6C
-13F8000713E0C690C8FC222D809E21>245 D<167CED01FE1507ED0FFC151FED3F0CED7C
-08ED70005D5D4A5A92C7FCA200105B5AEC07C015FF006015E016F0809138007FE0150100
-E0EC006016C015016CEC0780150F6CEC3F00007C14FE007FEB07FC9038C03FF06CB55A6C
-14806C49C7FC000313F838007FC02724819424>248 D<1530153C153F0020EC7FC016F0
-ED1FF80060EC07FCED01FE1500163C00E0151C160C161816786C15F06C14036CEC1FE000
-7FECFFC0D9E00713806CB5EAFE006C14F8000714E0000191C7FC38003FF0271880841A>
-250 D E
-%EndDVIPSBitmapFont
-/Fc 210[16 16 44[{}2 49.8132 /cmmib10 rf /Fd 133[20 24
-1[32 1[26 16 20 21 22 2[27 40 12 22 1[15 25 22 15 1[25
-1[22 25 1[15 36[15 11[15 17 15 4[15 16[25 25 25 3[15
-16[{}29 49.8132 /cmti12 rf
-%DVIPSBitmapFont: Fe nash14bf 17.28 26
-/Fe 26 242 df<EA1C1CEA3E3EEA7F7FB51280A2387F7F00EA3E3EEA1C1C110881860F>
-10 D<13F01203120FEA3FE0EAFF80EAFE0012F812600C0880860C>I<EA03C0EA07F013F8
-A5EA03F0A21207120FEA3F80EAFF0012FC5A12600D10808E0C>I<133C1203EA67BC12F7
-13FCA2EAFFF813F0EA7F00123E0E0A80880E>15 D<EA1C1CEA3E3EEA7F7FB51280A2387F
-7F00EA3E3EEA1C1C110881860F>I<EA01C0487E487E487EA26C5A6C5A6C5AEA1C1CEA3E
-3EEA7F7FB51280A2387F7F00EA3E3EEA1C1C1110818E0F>I<134013E0120112031207A2
-121F123F487E12FF12F312E3EA03F8A26C7E7FEBFF806C13E0A2137FEB3FC0EB1F80EB07
-00131782960F>30 D<1218123E127F138012FFEA7F00123E121C12080909828605>46
-D<121CA2123C127E12FEA27EA45AA25A127EA8127F7EA71380121FA61300121EA2121C12
-08092980A809>64 D<1208121C123C127CA212FCA4127EAC7EA81380A3EA1FC013E013F8
-120FA2EA07F0EA03E0EA00C00D287FA70C>I<13101330137813F8487E48B4FC001F13E0
-5A127E38FC7FC038F83F8038E00F00130C828B0F>74 D<EC0180EC03E01407140FEC1FC0
-EC0F801407A31500A3140EA2141E5C147C495A130FEB7FF0B55A6C5B00035BD8001FC7FC
-1B18838616>81 D<80497E1303A21307497EA36D7EA36D7EA380A2801208381C07FFD83C
-1F1380397FFE7FF013FC38FFF83F9038F01FE0397FE00FC0393F8003801C1A7D991D>89
-D<EB3FC0EBFFF84813FF4814C04814F84814FFD81F0314F0381C007F48130F48013F13E0
-D8E003B512C0D8C07F1480000FB5EAF0004849C7FC4813E04890C8FC13F090C9FC241283
-9121>103 D<EB7F80EBFFF04813FE6E7E4814F04814FED80207EBFFE0C7FC141F027F13
-C00107B5128090B61200001F14E04801FCC7FC4813C04848C8FC13E048C9FC2312829121
->107 D<13FC3801FFC04813FC48EBFFC015FCEDFFE0EA003F010314C0D9007F13800107
-B5120090B55A001F14C04801FCC7FC4813C0D8FFFCC8FC13E048C9FC2311829005>109
-D<EA0218EA0738EA0F7C121FEA1EFCEA3FFF4813F0A3B512E0EBBFC038CF0F80140C828B
-10>132 D<1330137813F812017FA37FA35BA21200A57FA2137E153EEDFF80020313C002
-0F13E0D97F1F13F05C90393FFE0FE09138F807C0ECE00F9138807F80913807FF0090383E
-FFFE001FB612F85A5AB712F016E049C613C0252682A521>162 D<EB07FF011F13C05B49
-138090B5FC4814005C39001FFFC0001FB512FC5A5AB5EA7FF89038FC1FF09038E007E01E
-0E828D1A>170 D<1560157015F014011403A481A91401A281A781A381168016E0A30003
-15C016800006ECFB004814F8121C123CA2007C5CA212FC6C5CA26C5C6C6C485A6D48C7FC
-383FF83FEBFFFE6C5B6C5B6C5B00015B6C6CC8FC233880A421>201
-D<138013C01201EA03E01207120FEA07F0A313F813F0A213E0A2EA03F0ABEA01F8A513F0
-13E0EA03C0121FEA3F80EA7F0012FE5A12F00D2782A60C>203 D<147014F8EB01FC1303
-14FE1307130F14FF5BA25B48B5FC001F13FE383FE7FCEA7FC738FF83F838FE01F038F800
-E0181282910F>212 D<1480EB07C0133FEA01FF000713E04813F04813FEEA3FE7EA7F07
-38F803FC380001F8EB0070170C868B0F>229 D<5AEA03C013E0EA07F0EA0FF8121F13FC
-123F123D13FE127CA2137E12FC137CEAFE78EAFFF0A2EA7FE013C0EA3F80EA0F000F1680
-960F>232 D<EB01E0EB03F8497E497E131F80133EEB7F7FECFF80A27FA27F7F1303EB00
-07A31500A3140EA2141E5C147C495A130FEB7FF0B55A6C5B00035BD8001FC7FC19217F8F
-1A>240 D<EB01E0EB03F8497E497E131F80133E90387F7F8014FF15C06D13FCA27F6D13
-F8010313F0010013E0EC07C0A21580A3EC0F00A25C143E147E495A130FEB7FF8B55A6C5B
-00035B38001F801E217F8F1D>I E
-%EndDVIPSBitmapFont
-/Ff 136[47 1[38 2[30 3[39 4[22 4[36 2[36 74[36 22[{}8
-71.731 /cmti12 rf
-%DVIPSBitmapFont: Fg nash14bf 24.8832 8
-/Fg 8 242 df<1207EA0F80EA1FC0EA3FE0EA7FF013F8EAFFF0127FEA3FE0EA1FC0EA0F
-80EA07000D0C828909>9 D<130C133E13FF5A1207EA1FFEEA7FF8EAFFE013C01300127C
-1230100C808A10>11 D<133EEB7F80EBFFC014E05AA414C07E1480137FEBFF001203485A
-EA1FFCEA7FF0485A138090C7FC127C12301316809410>I<120212075AEA1F80A2123FEA
-7FC012FF13E0127FA213F0A413E013C0A6123F13E0A8121F13F0A8120F13F8A81207A413
-F013E0A213C01380130012020D3C80BB0D>64 D<1420147014F81301130314FC1307130F
-1307A3130314F814F0A2EB0FE03803FFC0481380481300485A123F5B485AEAFFE06CC7FC
-1619849815>75 D<163016F0ED01F81507150F151F16FC150FA31507A31503A3150116F8
-A416F0A2150316E01507ED0FC0151FED7F80EC01FF02071300EC3FFEEB01FF013F5BB65A
-5D00075CD8003F5B01015BD9000EC7FC2628858E20>80 D<1306EB0F80497E80EB3FF849
-7E497E806D1380011F13C06D13E013036D13F07FEC7FF8143F141FA2140FA2EC07F015E0
-A2EC0FC00007B512801500485B485B5A485BB55A14C06C90C7FC1D217FA01D>88
-D<EC03E0EC07F84A7E814A7E4A7F4A7F91B5FC4980A249487FECFF7F4B7EA2EEFFF06D15
-F817F06D15E0806E14C0020F14806E14009138007FFEED01F8A25EA44B5AA215075E150F
-4B5A153F03FFC7FC1403EC0FFEEC3FFCEB01FF013F5BB65A5D00075CD8003F5B010190C8
-FCEB000C2D30819628>241 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: Letter
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 761 308 a Fg(\014)744 331 y(P)6 b(X)788 352 y(\013)816
-331 y(@)840 300 y(\013)824 331 y(\361)866 280 y(\013)870
-298 y(\011)863 331 y(K)31 b Ff(naw\026)-36 b(adiru)486
-399 y Fe(\014)485 412 y(\020)485 440 y(\350)504 425 y(\013)495
-440 y(Q)q(\345)530 402 y(\013)529 423 y(\021)533 440
-y(\204)556 419 y(\013)549 440 y(\252)o(\313)t(@)628 411
-y(\014)626 440 y(\350)645 413 y(\014)637 429 y(Q)659
-440 y(\036)659 452 y(\012)674 440 y(\324)675 455 y(\013)702
-402 y(\013)688 429 y(g)728 419 y(\013)718 440 y(\360)24
-b(A)780 411 y(\013)780 440 y(m)802 399 y(\014)786 429
-y(k)805 466 y(.)840 440 y Fd(\024)-24 b(guh)891 450 y(.)914
-440 y(\026)f(a)18 b(wa-h)1033 450 y(.)1056 440 y(am)-5
-b(\026)-20 b(\020ruhu)17 b('l-)s Fc(,)m Fd(a)n(\024)-22
-b(saratu)237 513 y(i)n(\024)g(star\026)d(a)17 b(\024)-24
-b(guh)428 523 y(.)452 513 y(\026)f(a)22 b Fc(,)m Fd(a)n(\024)-22
-b(sarata)19 b(h)691 523 y(.)714 513 y(am)-5 b(\026)-20
-b(\020rin.)19 b(farih)969 523 y(.)991 513 y(a)h(bih\026)-25
-b(a)20 b(wa-s\026)-25 b(aqah\026)g(a)23 b Fc(-)m Fd(am\026)-25
-b(amahu,)20 b(t)1624 546 y(\026)1652 513 y(umma)164 573
-y(rakiba)e(w\026)-25 b(ah)371 583 y(.)394 573 y(idan)17
-b(minh\026)-25 b(a.)18 b(wa-f)-5 b(\026)-20 b(\020)168
-657 y Fb(\372)179 689 y(\012)199 629 y(\011)193 657 y(\257)196
-692 y(\013)223 636 y(\013)214 657 y(\360)273 646 y(.)286
-657 y(A)301 642 y(\013)298 657 y(\356)326 635 y(\011)314
-657 y(D)q(\323)335 672 y(\013)389 657 y(@)409 625 y(\023)402
-657 y(Y)n(g)443 672 y(\013)467 657 y(@)482 636 y(\013)472
-657 y(\360)553 639 y(\013)535 657 y(I)556 672 y(.)583
-657 y(\273)587 672 y(\013)620 642 y(\013)608 657 y(P)667
-631 y(\013)666 642 y(\017)669 657 y(\325)o(\347)699 613
-y(\014)698 635 y(\021)698 657 y(')746 646 y(,)768 628
-y(\014)768 657 y(\351)789 628 y(\013)785 657 y(\323)t(A)824
-628 y(\013)820 657 y(\323)841 597 y(\013)841 613 y(\015)843
-657 y(@)37 b(A)904 628 y(\013)901 657 y(\352)920 616
-y(\013)919 629 y(\020)917 657 y(\257)5 b(A)968 639 y(\013)950
-657 y(\203)986 636 y(\013)977 657 y(\360)37 b(A)1055
-642 y(\013)1052 657 y(\356E)1074 669 y(.)1071 680 y(\013)1134
-628 y(\013)1123 657 y(h)t(Q)1169 686 y(\013)1186 616
-y(\013)1189 629 y(\011)1183 657 y(\257)1234 646 y(.)8
-b(Q)1256 680 y(\023)1270 657 y(\036)1270 669 y(\012)1284
-657 y(\324)1285 672 y(\013)1312 619 y(\013)1298 646 y(g)1375
-616 y(\013)1373 629 y(\020)1373 657 y(\350)1392 642 y(\013)1384
-657 y(Q\345)1418 619 y(\013)1417 640 y(\021)1421 657
-y(\204)1445 628 y(\013)1438 657 y(\253)37 b(A)1513 628
-y(\013)1513 657 y(m)1535 616 y(\014)1519 646 y(k)1538
-683 y(.)1590 657 y(\370)1638 630 y(\013)1630 646 y(Q)1654
-616 y(\013)1652 629 y(\020)1652 657 y(\036)1684 640 y(\021)1667
-657 y(\203)r(@)1700 669 y(\013)164 738 y Fd('t)177 749
-y(.)195 738 y(-t)210 749 y(.)229 738 y(ar)-5 b(\026)-20
-b(\020qi)31 b Fc(,)m Fd(adda)d(h)501 749 y(.)524 738
-y(am)-5 b(\026)-20 b(\020rahu)28 b(wa-huwa)h(r\026)-25
-b(akibun,)29 b(fa-wa)o(\024)-24 b(gadah\026)f(a)29 b(tis)s
-Fc(,)m Fd(atan.)g(t)1624 772 y(\026)1652 738 y(umma)164
-799 y(nazala)18 b(wa-)s Fc(,)m Fd(addah\026)-25 b(a)17
-b(fa-ra)s Fc(-)m Fd(\026)-25 b(ah\026)g(a)20 b Fc(,)m
-Fd(a)n(\024)-22 b(saratun)16 b(fa-q\026)-25 b(ala:)241
-865 y Fb(:)275 832 y(\013)259 876 y(\310)s(A)306 838
-y(\013)304 850 y(\020)300 876 y(\256)325 835 y(\013)328
-848 y(\011)322 876 y(\257)368 835 y(\024)368 848 y(\020)368
-876 y(\350)387 860 y(\013)379 876 y(Q\345)413 838 y(\013)412
-859 y(\021)416 876 y(\204)439 846 y(\013)432 876 y(\253)25
-b(A)502 846 y(\013)495 876 y(\353)518 832 y(\016)523
-876 y(@)537 860 y(\013)528 876 y(Q)553 835 y(\013)556
-848 y(\011)551 876 y(\257)h(A)612 846 y(\013)605 876
-y(\353)642 833 y(\013)640 843 y(\017)633 876 y(Y)668
-846 y(\013)661 876 y(\253)700 855 y(\013)690 876 y(\360)757
-832 y(\013)741 876 y(\310)778 849 y(\013)781 862 y(\011)770
-876 y(Q)794 841 y(\013)797 853 y(\011)793 876 y(K)830
-850 y(\013)829 860 y(\017)832 876 y(\325)o(\347)862 832
-y(\014)861 853 y(\021)861 876 y(')896 865 y(.)915 835
-y(\023)914 848 y(\020)912 876 y(\351)936 855 y(\013)929
-876 y(\252\202)991 848 y(\020)991 876 y(\035)992 891
-y(\013)1031 876 y(A)1050 846 y(\013)1043 876 y(\353)1079
-843 y(\013)1071 876 y(Y)1113 849 y(\013)1099 876 y(g)1116
-888 y(.)1148 855 y(\013)1137 876 y(\361)1168 835 y(\013)1170
-848 y(\011)1165 876 y(\257)1203 865 y(,)1239 858 y(\024)1222
-876 y(I)1243 891 y(.)1270 876 y(\273)1274 891 y(\013)1302
-876 y(@)1319 860 y(\013)1307 876 y(P)1359 855 y(\013)1348
-876 y(\361)1383 846 y(\014)1376 876 y(\353)1408 855 y(\013)1398
-876 y(\360)1454 846 y(\014)1452 876 y(\350)1471 849 y(\013)1463
-865 y(Q)1485 876 y(\036)1485 888 y(\012)1499 876 y(\324)1501
-891 y(\013)1528 838 y(\013)1514 865 y(g)1581 833 y(\013)1580
-843 y(\017)1573 876 y(Y)1608 846 y(\013)1601 876 y(\253)e(\365)1663
-902 y(\013)1685 876 y(K)1685 888 y(\012)1703 876 y(Q)1712
-905 y(\013)1740 822 y(\013)1738 832 y(\017)1726 876 y(\242)q(\313)t(@)
-240 957 y Fc(-)m Fd(am)n(\024)-22 b(s)-5 b(\026)-20 b(\020)16
-b(wa-)s Fc(-)m Fd(aksibu)j(h)611 967 y(.)634 957 y(im\026)-25
-b(aran,)20 b Fc(-)m Fd(afd)877 967 y(.)899 957 y(alu)e(min)j
-Fc(-)m Fd(an)f Fc(-)m Fd(arkaba)e(wa-)s Fc(-)m Fd(ah)1445
-997 y(\025)1480 957 y(sara)e(h)1590 967 y(.)1612 957
-y(im\026)-25 b(aran.)643 1030 y Fb(.)656 1041 y(@)673
-1026 y(\023)661 1041 y(P)t(A)700 1012 y(\013)699 1041
-y(\324)713 1030 y(g)727 1050 y(\013)774 1026 y(\013)765
-1041 y(Q)q(\345)800 1023 y(\013)803 1041 y(\204)839 1013
-y(\011)819 1041 y(k)855 981 y(\013)855 997 y(\015)856
-1041 y(@)871 1020 y(\013)861 1041 y(\360)930 1023 y(\013)912
-1041 y(I)933 1056 y(.)964 997 y(\013)960 1041 y(\273)-8
-b(P)1002 981 y(\013)1002 997 y(\015)1004 1041 y(@)1050
-1019 y(\011)1039 1041 y(\340)1069 981 y(\013)1069 997
-y(\015)1070 1041 y(@)1117 1030 y(\011)1104 1041 y(\341\323)1140
-1056 y(\013)1198 997 y(\014)1181 1041 y(\311)1232 1000
-y(\013)1235 1013 y(\011)1215 1041 y(\222)1260 1013 y(\011)1254
-1041 y(\257)1273 981 y(\013)1273 997 y(\015)1275 1041
-y(@)1305 1030 y(,)1324 1041 y(@)1341 1026 y(\023)1329
-1041 y(P)t(A)1368 1012 y(\013)1367 1041 y(\324)1380 1030
-y(g)1394 1050 y(\013)1458 1023 y(\014)1440 1041 y(I)1461
-1056 y(.)1488 1041 y(\202)1503 1056 y(\013)1524 1041
-y(\273)1556 981 y(\013)1556 997 y(\015)1557 1041 y(@)1572
-1020 y(\013)1562 1041 y(\360)25 b(\372)1624 1073 y(\012)1638
-1041 y(\346)1656 1024 y(\021)1660 1041 y(\204)1657 1076
-y(\013)1678 1041 y(\323)1699 981 y(\013)1699 997 y(\015)1701
-1041 y(@)640 1152 y Fe(\014)623 1196 y(\311)q(J)661 1208
-y(.)685 1142 y(\013)684 1152 y(\017)671 1196 y(\242)q(\313)t(@)736
-1175 y(\013)726 1196 y(\360)784 1164 y(\014)775 1196
-y(Y)803 1152 y(\013)803 1196 y(\313)822 1175 y(\013)811
-1196 y(\361)o(\313)853 1152 y(\013)855 1196 y(@)20 b
-Fd(al-waladu)f(wa-'t)1189 1206 y(.)1208 1196 y(-t)1223
-1206 y(.)1242 1196 y(ablu)237 1269 y(t)235 1279 y(.)253
-1269 y(alaba)24 b(waladun)g(min)i Fc(-)m Fd(ab)-5 b(\026)-20
-b(\020hi)25 b Fc(-)m Fd(an)f(ya)n(\024)-22 b(stariya)20
-b(lahu)k(t)1244 1279 y(.)1263 1269 y(ablan)g(s)1397 1279
-y(.)1418 1269 y(a)t(_)-19 b(g)-5 b(\026)-20 b(\020ran.)22
-b(fa-rafad)1735 1279 y(.)1758 1269 y(a)164 1329 y('l-w\026)-25
-b(alidu,)19 b(wa-q\026)-25 b(ala)19 b(lahu:)f(y\026)-25
-b(a)17 b(bunayya,)g(law-i)168 1413 y Fb(\361)179 1445
-y(\013)196 1369 y(\013)196 1413 y(\313)229 1401 y(,)260
-1387 y(\013)259 1397 y(\017)247 1413 y(\372)259 1445
-y(\012)281 1377 y(\013)284 1390 y(\011)273 1413 y(\346)297
-1389 y(\014)295 1413 y(K)299 1425 y(.)335 1413 y(A)348
-1389 y(\013)347 1413 y(K)347 1425 y(\012)382 1401 y(:)404
-1383 y(\014)404 1413 y(\351)421 1369 y(\013)421 1413
-y(\313)473 1369 y(\013)457 1413 y(\310)s(A)501 1372 y(\013)499
-1385 y(\020)498 1413 y(\257)528 1392 y(\013)518 1413
-y(\360)565 1401 y(,)592 1380 y(\014)583 1413 y(Y\313)612
-1428 y(\013)626 1413 y(@)643 1392 y(\013)631 1413 y(\361\313)t(@)741
-1372 y(\013)744 1385 y(\011)708 1413 y(\221)765 1372
-y(\013)767 1385 y(\011)762 1413 y(\257)791 1397 y(\013)782
-1413 y(Q)808 1372 y(\013)811 1385 y(\011)805 1413 y(\257)843
-1401 y(.)856 1413 y(@)870 1386 y(\023)861 1401 y(Q)884
-1413 y(\036)884 1425 y(\012)908 1393 y(\011)898 1413
-y(\252)905 1428 y(\013)943 1383 y(\013)923 1413 y(\223)26
-b(C)1008 1369 y(\023)1022 1413 y(J)1026 1425 y(.)1049
-1369 y(\013)1036 1413 y(\243)1096 1383 y(\014)1096 1413
-y(\351)1113 1369 y(\013)1113 1413 y(\313)1162 1397 y(\013)1149
-1413 y(\370)1161 1439 y(\012)1190 1401 y(Q)1198 1430
-y(\013)1214 1372 y(\013)1212 1385 y(\020)1212 1413 y(\036)1241
-1396 y(\021)1226 1413 y(\202)1265 1383 y(\013)1263 1413
-y(\035)1263 1425 y(\012)1314 1390 y(\011)1302 1413 y(\340)1333
-1352 y(\013)1333 1369 y(\015)1334 1413 y(@)j(\351)1371
-1428 y(\013)1388 1413 y(J)1388 1425 y(\012)1403 1413
-y(K)1407 1425 y(.)1404 1435 y(\013)1419 1352 y(\013)1419
-1369 y(\015)1420 1413 y(@)1467 1401 y(\011)1454 1413
-y(\341)o(\323)1489 1428 y(\013)1537 1380 y(\024)1530
-1413 y(Y)1558 1369 y(\013)1558 1413 y(\313)1576 1392
-y(\013)1566 1413 y(\360)1635 1394 y(\013)1617 1413 y(I)1638
-1428 y(.)1666 1369 y(\013)1665 1413 y(\312)1691 1369
-y(\013)1679 1413 y(\243)164 1489 y Fd(')n(\024)-22 b(staraytu)16
-b(laka)i(t)469 1499 y(.)487 1489 y(ablan)h(fa-sawfa)e(tuza)s
-Fc(,)m Fd(i)o(\024)-24 b(gun\026)f(a)19 b(bi-s)1099 1499
-y(.)1119 1489 y(awtihi.)996 1550 y Fb(.)1013 1561 y(\351)1013
-1576 y(\013)1030 1539 y(\020)1030 1561 y(K)1031 1576
-y(\013)1047 1561 y(\361)1093 1532 y(\013)1076 1561 y(\222\035)1119
-1573 y(.)1116 1584 y(\013)1155 1561 y(A)1168 1526 y(\013)1171
-1539 y(\011)1167 1561 y(J)1193 1532 y(\014)1181 1561
-y(j)1196 1573 y(.)1217 1561 y(&\253)1225 1590 y(\013)1255
-1534 y(\013)1258 1547 y(\011)1246 1561 y(Q)1270 1526
-y(\014)1269 1539 y(\020)1269 1561 y(K)1342 1520 y(\013)1344
-1533 y(\011)1309 1561 y(\254)-5 b(\361)1397 1543 y(\013)1382
-1561 y(\202)1421 1520 y(\013)1424 1533 y(\011)1418 1561
-y(\257)27 b(C)1481 1517 y(\023)1495 1561 y(J)1499 1573
-y(.)1522 1517 y(\013)1509 1561 y(\243)1583 1517 y(\013)1566
-1561 y(\275)1600 1517 y(\013)1600 1561 y(\313)1656 1532
-y(\014)1654 1544 y(\020)1637 1561 y(I)o(K)1685 1573 y(\012)1712
-1534 y(\013)1703 1550 y(Q)1727 1520 y(\013)1726 1533
-y(\020)1726 1561 y(\036)1757 1544 y(\021)1740 1561 y(\203)r(@)237
-1634 y Fd(q\026)-25 b(ala)17 b('l-waladu:)g(l\026)-25
-b(a)16 b(ta)t(_)-19 b(gd)677 1644 y(.)700 1634 y(ab)17
-b(y\026)-25 b(a)18 b Fc(-)m Fd(ab)-5 b(\026)-20 b(\020.)16
-b(l\026)-25 b(a)19 b Fc(-)m Fd(ut)1030 1644 y(.)1048
-1634 y(abbilu)e(bihi,)i Fc(-)m Fd(ill\026)-25 b(a)17
-b(wa-)s Fc(-)m Fd(anta)f(n\026)-25 b(a)s Fc(-)m Fd(imun.)629
-1713 y Fb(.)639 1709 y(\024)642 1724 y(\325)o(\347)672
-1700 y(\015)671 1724 y(')672 1756 y(\013)688 1724 y(A)701
-1689 y(\013)704 1702 y(\011)700 1724 y(K)757 1695 y(\013)756
-1707 y(\020)739 1724 y(I)791 1702 y(\011)787 1724 y(K)803
-1664 y(\013)803 1681 y(\015)805 1724 y(@)820 1703 y(\013)810
-1724 y(\360)25 b(B)878 1670 y(\013)877 1681 y(\017)895
-1724 y(@)894 1743 y(\015)894 1753 y(\013)926 1713 y(,)948
-1724 y(\351)948 1739 y(\013)965 1724 y(K)969 1736 y(.)966
-1747 y(\013)1021 1681 y(\014)1004 1724 y(\311)1038 1690
-y(\017)1040 1700 y(\013)1038 1724 y(J)1043 1736 y(.)1065
-1681 y(\013)1052 1724 y(\243)1086 1664 y(\014)1086 1681
-y(\015)1087 1724 y(@)g(B)1139 1681 y(\013)1174 1713 y(.)1187
-1724 y(\372)1198 1756 y(\012)1212 1724 y(G)1217 1756
-y(.)1214 1767 y(\013)1229 1664 y(\013)1229 1681 y(\015)1230
-1724 y(@)g(A)1277 1700 y(\013)1276 1724 y(K)1276 1736
-y(\012)1315 1724 y(I)1336 1739 y(.)1380 1683 y(\013)1383
-1696 y(\011)1363 1724 y(\222)1413 1705 y(\011)1403 1724
-y(\252)1430 1689 y(\013)1428 1702 y(\020)1428 1724 y(K)g(B)1486
-1681 y(\013)1521 1713 y(:)1548 1692 y(\014)1539 1724
-y(Y)1568 1681 y(\013)1568 1724 y(\313)1587 1703 y(\013)1575
-1724 y(\361\313)t(@)1668 1681 y(\013)1652 1724 y(\310)s(A)1696
-1683 y(\013)1694 1696 y(\020)1693 1724 y(\257)237 2473
-y Fa(Decem)o(b)q(er)15 b(1,)h(1998)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-2.0
+%%Creator: dvips 5.76 Copyright 1997 Radical Eye Software (www.radicaleye.com)
+%%Title: guha.dvi
+%%CreationDate: Tue Dec 1 13:46:34 1998
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%DocumentFonts: cmti12 cmmib10 cmr12
+%%EndComments
+%DVIPSCommandLine: dvips32.exe guha
+%DVIPSParameters: dpi=300, compressed
+%DVIPSSource: TeX output 1998.12.01:1345
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
+/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{dup length product length le{dup length product
+exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}
+ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}
+imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false
+RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round
+exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto
+rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup
+/delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{
+-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
+/w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}
+B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B
+/bos{/SS save N}B /eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
+index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
+exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
+dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
+ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
+end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant
+{dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
+roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
+
+%%EndProcSet
+%%BeginFont: cmr12
+%!PS-AdobeFont-1.1: cmr12 1.0-prerelease
+%%VMusage: 38759 38848
+12 dict begin
+/FontInfo 11 dict dup begin
+/UnderlineThickness 50.0 def
+/Weight(Medium) def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
+/underlinePosition -100 def
+/underlineThickness 50 def
+/FullName(cmr12) def
+/version(1.0-prerelease) def
+/UnderlinePosition -125.0 def
+/FamilyName(cmr12) def
+end readonly def
+/UniqueID 4100016 def
+/PaintType 0 def
+/FontBBox{-36 -250 989 750} def
+/FontMatrix[0.001 0 0 0.001 0 0] def
+/FontName/cmr12 def
+/FontType 1 def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 44 /comma put
+dup 49 /one put
+dup 56 /eight put
+dup 57 /nine put
+dup 68 /D put
+dup 98 /b put
+dup 99 /c put
+dup 101 /e put
+dup 109 /m put
+dup 114 /r put
+readonly def
+currentdict end
+currentfile eexec
+90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
+634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
+ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
+dfabc82a6f8a1271f309e0e3011a9bc52ca8d346d6f70edca9969c39d5f6616b
+62e5f7300ebe61852c9081e1b703262c55101d1c9fbb853f2b2f46b781df9b8d
+024144a6ff516cee0cad4cd07a8d9d7ec7ceea2b02c810946d775ee363e71495
+34664ce8d8e12bcd03d25f642a52cf22caa4a4fa052874040a3fd20087c3dca0
+920ce0fe71cd40307b967f00c7477ec53f5d59e7f8eb907d4c6ad743e5fc2791
+c776ba930cf52f2b97ca9a5daf89363f58ce300f62000277ec91f473aa457876
+5d9fa5f825c97d086efdcb15fc3367084e617871b8feffa994d11e4cbb174692
+b552fafb6032097a1beeb5c921f676a8481c8fef3836763aca20f660e75a1f11
+b5d269138a2f57ae6c9afbd3e44359231d63bc2542661972442af5864a49d7fd
+0fe98810201715d25533dc24cc67aa6d8647b0febfd55c3e7902641a5552f8c3
+2c582483cd1c7c49330063c7cbf60eeb3d24deafd38bd8d724dba3cccf3bb403
+b009ce0ff432e78d8d9899d9f8742e103bbd299d8cb2f143063755e3d0fec3ef
+8fc2796ac928221cce427e16cbbbdf67097042eec97238f6937ade9a9e3064b0
+8c7ab6cb8c3acfaaab7479c4bc00a394aa87ec2385edd57aa90d17c3d55edeba
+88eddf9f4d06afdb21bc9b83e7b3087c14c9ccc01c0cb87035541a67af4cfda8
+722d53f80250bd739afdf14756d47bc6aa6be34835e770d0597ca97abf88464c
+3afe405dc7a40949c880051ecf802c005f9a7dfb2d7eea34426278dd9b84a551
+bae24a1760a73efb4c78ceefca6085b244d1e311563f9d3abb0e95901898be1b
+cc7e291d5e3add66a7ca86d2f4075a8aa19164b876bf4d5383bed3f1696481f0
+a35e912882741817d929de0543eb01a8a1dee68ef0e0e9bc3d487ecb1b8b0457
+acdaf85bd3cb59b099f50023d1547fb3a9fcd61c2a99fc0bb9b375dd6d977433
+ef7595789aa3efe0d1bc3e5a09dd7979522c4f472118f4f8c12bac8331530d69
+aed0367b6563381d651b39b8ab4a47c45399ec89747ebe7125fa1defb762bf49
+13746d534e8d8063a16ad8d3265ff190eaf03517d524626d844ffd336211a0ee
+113168240f85d2ae33e4efcecbba59986c66a1c490d2a030bceee927ca03793e
+944561c3a9c45bed97b777b140d658c9b073bc4c30479883e9a9023f980f86b3
+786740a51d85feb45bd1b33e19623972730816cbfa45830d943bb20dd146d6db
+3bec3d7c63ab783d8c5beb24fe0db06f1f71cdf7fefd8efb271e388a8dd10aa4
+a9c7448522d236c4aa7675bbae75056be902764b8282ecd989732ce024118515
+f283801b4609a106321ba807c4daf7d2656d3e8231cb1ae5b5bb2bf36940417b
+308795aee21a171102ce9346eb4d8d1a6f2afde910496653158ffa1aae7c9593
+2b89207038fa5a52c4ecaf588a11d575828e60f3699aaabc68c86757c8f47a72
+f8ae9fea95528d5f4e1d013f7aa8e589cec4889ee17057aecebfb39358f21a8a
+d453a32314ba94a8cf62acf32736353d4bf022ce2c2b768c7e0a6e7f33ffa69d
+ae963f26e742b4cbd4e3a125061acded269cb2ac128c5860b9c4fd70cd64b3be
+b7b560dcc7b8d261e60bac6f6cda49a51104d868b9debf2c2d417f4d52ab6c05
+ae398e6a3182fa871ce481823a1851c0ded1fe8626d65d0792aa188dbb551d4d
+e615ace919f94d2ed87dd33d14daf3a4eb711988d20c922a1f59c27a8199e379
+eed77fb973f2ebedbb9d2d20abd7c8046850daa65292e7aff4032c72546d10ee
+a7b9e0b652ecb5859919db91796062a9776b464af15735a0ee1a5a96056cb874
+07d5a2d8530a7c4f8b63d2a75c5a76bb4edc98ca08910d7418bdbf30bdc1dd5a
+c230377509b1cfdfdcf856ec7d445dfaed494f752f25ea79355069ef37b678a1
+476ad033ecfd689a3b41b5e6aebb15dc4882b2932dcd9067c5cb69b089df5a56
+e81228978a67fd57f50e046f14a6bbf1f0d2d6d369129616e26e38b2f76e083a
+cd5e2fcc1e76792570bee9e7cc4f3097a2ec4de84d9da7a73a17e360587b37a7
+c0af664c93a6b0a238b46053e33a82202719d41b22ab562697120849d656b2e6
+e88907dc281ddfde4dc719732a292ecaffa131a65f05fcbb9cd4da01c8d49b38
+15ba57b96a254374fab0369df0ea666b454e42d856fa341a51635e5e6ff70dff
+7d30ea12ca9b7df4b2fc7b5e5ef4622c589f20fa734ffb1f85754817adca0a39
+21c9a43ff9bc96931553d31911fe25dfa76a3a2130600a9846d59df231671a37
+cb3bf050a5beee286a2aebbd7b63b1d1f93483386ff3718b7164517f799b25b5
+9b1e86bb4cd279716a60c1d556a0fc3c3f0393448f042920279843e58b339ecc
+e9a3096677afe654d0e3fdb751305075e9f4b24a2f3cc2c1201feb4bcf8f7089
+dec2741f9ebc7ab3cb5f6e270bcd7299dbf336e480e62864979000be89603a0d
+738a71bab9cede5d72eefc8c2f4a003c62b4bd651f0f09bfd90291d2afc4c8dc
+24608073e85271dfd95a993c0bb44a70805f8e4fe091566bbfbdaacd6e2bd7a1
+9dcd0dce164033968f57c2f5b81d5365e8e778c289c4059a32b9fefb57cdb0de
+d4fe1a8da2ae42a3463fbfd52a9db958b5a4efcabc5ca9b28b32472498717340
+70d7b551356e5e6dafc6b0129287f8554cda79a739ffd8d50a25a42f1eeb313d
+8b0b13029ca24106dbdef88595d8503a052136d513a05b839ced7376b3bd2d2b
+dccaae856d1249da9a1af1f25dc44a5dcb179b33036f72b14535978b5178a7fa
+d1354b5600ad14dd74d41675eddf0222a9f17acd359d24a4f889fc6ecc422fcb
+cff4a8d8a1f2583b5fbc234edd89483b69e595a56f94dc44ceed0989ac113cb6
+e33ff37268fd6351027611f6bd47b672d68c81f3becb006754e08162e9a00889
+7a486de7aa317d53505a805a5da3e361182a9575fd8be0211a71c2965f32dddf
+dac6d3b874b4324be18444c9a0e70dbc3f0e9d408aebee78164e4b6e0bc986e6
+34680af9161d39a64ba7a3a8ddd44ae3d94bdf94d62d0907efd4b5c3ea889b25
+00f4a33c20d6e7e927e11cb84f0c060b0f7e052fc1df50c1d7d535f5a0175534
+d105ab809d866f0f8aa99e52e87e8278b9821a1c4629f66dab1e15e7ba620634
+cc531cdc48be59eb49f41c7bfddfd2b28733f8a5f93de54381bd48fb5a124e29
+1dc297694ae37dae616e794aeccd61ba75f646c6b12f280c4419645d8c0dd1bb
+325b6967a19a762635e773ce7d0947ed502c712c8e5c6983fd70283041489b34
+7675bafaa1c1718408fe88011cc2b0196e5e139e6c6b9c0acc16b152ddf01a43
+54aaad5d6893f6433e86e616a2f563d3fc1b99af94faa8284986ff4375b0c3b0
+19191589fed767579898a43c819c455a3ced3e6e17b3459fde16aa429105ac5d
+13443d8801acdcf2b939530d3b62fcd369f0c3b47199b14648257886add0a1cd
+64a522d10f9c2e98a1c50360951bfebb48e1d9459729bc8479afbcc12df7be44
+701d2061a824536d53f59717ff0e84fca4d98db2b14dcb7b12ff0a08535c3772
+26090d34a2b23b6ae7544a8f14c7d8594d57c3f984d6a68694eb21d528092654
+17dc8b22f2f71fa721326a594e68c76f2e0875d475cc85e584741c09d66b91e2
+e249f2f116d6738787ff20dedba5abadc5df8b74a342521c0da2925b4e40131b
+cae9905cf97ea917d17d0847ef14d00c9e0a3cbe2ba9201b4731210937fad283
+f0e22024ff649c82196f9c65a01411d15e6bde2411e83ef805625262af2b12bb
+eb3c3f813372879f7f44a06ed7f07ba7b7f54a051805fea51f760536c1abe5f8
+3d99fae350090521e740fb4dd4e8d8b26a11e3f19a96894f039c79d08f02b281
+c28cc2b6e50114ab2c081c964666b181d0a12b83523bc254f1440823b781de78
+bd4352d8a20523b3b802ecc13ee2e5d84a0e9111b603bf47020810ff3a5f9742
+a6b1dcaced175a5095c7eee29e45ad5b26b219071dc63e1b510a3be45d2c9863
+9b99aa2dec9f16c627e6b095508a656efee603616b20d066f8e2bf6b5ecdc9f3
+e0bc849f5a7f96494029ae108a6d4f4022e7c451b988ec728391033843a0f9b4
+b9e3a8de44fb6cb84cbba597920f752ae834166e67834eaf458b305fbf0a9c47
+c33367c7d2e9deaa69b942f199705987557a44738213fd7d73610aeac05a2ee2
+87b9f1fec7446ce54b45d896d94f8aab63f28777eff901d339f4dfd29bdd241a
+1809e24188ce5760f09db96b18a9f79988f468744583718b8b127f9a511038d8
+bb44803a0a7f252fcb11cffe2bb70019b8aaadbb9e5106cfe0e23a73e1f89e5c
+33e60c95a2ecc4d060848c510b6387cd9baa38a560a6883a7520459fdca13569
+635ee2ede26c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+%%EndFont
+%%BeginFont: cmmib10
+%!PS-AdobeFont-1.1: cmmib10 1.0-prerelease
+%%VMusage: 45110 45532
+12 dict begin
+/FontInfo 11 dict dup begin
+/UnderlineThickness 49.95 def
+/Weight(Medium) def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
+/underlinePosition -100 def
+/underlineThickness 50 def
+/FullName(cmmib10) def
+/version(1.0-prerelease) def
+/UnderlinePosition -125.0 def
+/FamilyName(cmmib10) def
+end readonly def
+/UniqueID 4100069 def
+/PaintType 0 def
+/FontBBox{-17 -250 1218 749} def
+/FontMatrix[0.001 0 0 0.001 0 0] def
+/FontName/cmmib10 def
+/FontType 1 def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 44 /arrowhookleft put
+dup 45 /arrowhookright put
+readonly def
+currentdict end
+currentfile eexec
+90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
+634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
+ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
+dfabc82a6f8a1271f309e0e3011a9bc52bf61e9a2744d523d00323b2cc5c8566
+4b44211e2d2750bba46203fda40c19da54d71ed1b01181b8a821dedc73ef00e7
+7ec03491a0696a9165e40711bcf270b942a54742c59b0dfd76314b1c2327d393
+8678e331e4e056b84fd841fc87f8a58c19e653ee419dd98e4730728642f8595e
+cae6caa75e0506f0bdab6ae8a68c4c0fe539b83f6ec191f45b3d0ca74a897cc2
+cd5c1da955c84e768e1c1de92cafaed90d622c1dacbf9ce95e9dd172e169453e
+8b286bca2f29c017d1a1c6f5c0e977fc48f15dbaa00421d24600c669219af386
+17674c28fe3279793305398722552923252d2bc5a0b67125b84db382e819e186
+363dba81eca175feabdf8783feb3ece6bcd7c1c1e0555b844c0e79d909a7a4cd
+e840c753e8560bd9d51ced4a1d7e65e72e32afd26cc3ff4fce02f1b9b84372f2
+c218f49263251efbf2007cc6558608e838bdd42bd57c74019f680090ffb6c74a
+414bc284b4312b089ef5bd1c3e229e3bc70b6e1698f8bf8b0dc0f1318e790704
+c3d533d77f5fde830a5888a53315185a06988d2e24eee6522f97e2ed0b72f852
+1d8f549f4bf800474ad2b22947d626dee4f5b5e610e4b3ddaa7087b6ddf8d17c
+349e44854a2f357b6cc9513eb0baacef4909af1a23e93de6135ef41646f22ab2
+bb3bfb2652d3f45f9e956e943f705e5b2dbd7ceabba536566b1ad497d5f9c4ef
+feecfc5b0a082c2d31a3b993304470574470667486e0654b79a6e7c2337ca503
+d7c3dbd286360d7d12a2c4daa6ab1270b9e20b737e781906e8d8a28edcd1df37
+96ed0c52aeecd8bd7ba6277580dda4803abbecf235569e9e3183bce4637c3495
+0a8a82d2c6b129fe15c5642d37458bd35b453cddc07aff11d0df40cd30a2a5d9
+393b3a7c6032634c99d68e5b5b9caa36341f2489d548f857a74b5ecb0e846a33
+50bb16809cb24408bdb96ed9589d27aa28a58dc48df0f35402895cde4cee840e
+bd6897ab0d2eab41dd699e88dd4fa2e099a3c4c99369055a3a00cf308e13152f
+ce
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+%%EndFont
+%%BeginFont: cmti12
+%!PS-AdobeFont-1.1: cmti12 1.0-prerelease
+%%VMusage: 47516 47606
+12 dict begin
+/FontInfo 11 dict dup begin
+/UnderlineThickness 50.0 def
+/Weight(Medium) def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/Notice( Paradissa Fonts Collection. Release I.\012 Copyright \(c\) 1993, Basil K. Malyshev. All Rights Reserved.\012 The digitally encoded machine readable outline data for producing\012 the Typefaces of Computer Modern fonts were designed by Donald E. Knuth.) def
+/underlinePosition -100 def
+/underlineThickness 50 def
+/FullName(cmti12) def
+/version(1.0-prerelease) def
+/UnderlinePosition -125.0 def
+/FamilyName(cmti12) def
+end readonly def
+/UniqueID 4100041 def
+/PaintType 0 def
+/FontBBox{-36 -250 1104 750} def
+/FontMatrix[0.001 0 0 0.001 0 0] def
+/FontName/cmti12 def
+/FontType 1 def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 16 /dotlessi put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 39 /quoteright put
+dup 44 /comma put
+dup 45 /hyphen put
+dup 46 /period put
+dup 58 /colon put
+dup 95 /dotaccent put
+dup 97 /a put
+dup 98 /b put
+dup 100 /d put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 119 /w put
+dup 121 /y put
+dup 122 /z put
+readonly def
+currentdict end
+currentfile eexec
+90b1d4632c20f6f8d4e2feb3d7c2fb2d69ec9fb9685e8e3084dee6941cb0dd5a
+634c99b1d3e0b7558cab812b809e9913ebf383af06f306a3c7d5f8fa8b4294a2
+ae89e81e59ce734f75084dde2066f8f1cb64887f6595777b3697820cc0e4d85b
+dfabc82a6f8a1271f309e0e3011a9bc5290269b762294a14a8bfe78e181e66d2
+fb03556f5bcfe3389df778e07fa6fcd734377a83f9266572e3b1739be890e67e
+4db9d648cb1e20e1924191c87e774cca41219948fe0aed68f6d1c75cd93efe25
+eef7ab5a4f73cea6c8b2f8a0a83059c103885ad36545a1d6565755bf0771d84d
+b6c54d2072f4e9fc77143f6140e2baff6b374243451ddce023ca8d037da67443
+5c970c812cc10028a379918f53fb87b0996cab5a2196b3f3222cdbf716072930
+2793ad9ece17422f07a2e54f422659846eff044f207abf58ad41fcfa88d4e08c
+a6d3575e290e9f230eec57287e1ad6437b67dfbb7efbdad5629d163eb88ec443
+52acefcc1b9b1509b69916399b829cdc4d8c1f4c6ea3049566d68e90cd5c739f
+cc77545106dd4968202630eb2de419dffbd2aad79c7bf4d8c7ed65e8357106b2
+87bd7b718232ea843cf01fd491c9a2f4e895af25f837a577e40ce34d279168e6
+6c398ea5eb28736a94c04ed6ca3c38ceaf5c057d5db327516a74a68874f50306
+7442f45de61d0697e808bf696625d924d6128505aadaea49f4d2672f9609119f
+d6c3651d5adec480fc76eb2f85957d050f3d89a692ad2600ff095b0d51b287d8
+4d1eb719539fcde38c2ad6ef1e916cc3cd9f8a9ff821308ab1e6b35605f7f361
+16345817591bbc68717918284cbf6aa2317e38b6d3b470a7b1ce6c615203b831
+6ac330885df302bf766d91db157f42d131223f4b7c3111f5751218e0e29c32e6
+12f5f8e675a90d1d0267d49876e90213080dab5a3f02114f80e2aa12a89a800a
+8bafc8241bab94dbbd01cbf0deca1c997c95bb8bae4676c4a19fc98cebbd4c77
+e44f2e37c01af302d76b418a852e6fbf0f8e11ec7ddf3177c691f0f14e738e12
+cd417bc8a5920d987f29968eca075069db06540584ac046ae58cdc20cf69a7c5
+b596d3e5352c450043f2e4453fceedabb7879f3a9b3ad2d4665576bae8e676eb
+42149585c8d5d9fd30bd600a6654d4e725a4e5ec75936da61f005e0a678f4f9a
+2441ff00ad1af8e3644830157b827c82cafa6a9a0339e20943c5d8b6c22e637a
+7439dde6d78c229e4e1edc8db4891bf143105eddccdb3b698bfdcf0596f6dd83
+6715abdba160baaf39f4e68e8b12d7b24a3bf853bd2d9f6bc4a1d05ad692559c
+8948e7f574522467f2f20248ebbdf88e28ad656f888f937dfe07fbf0ae83d955
+6218424568e5270bdc04398a1051944c05846955868b141a20b96267c8df10c8
+cde9afcfaef4fda2e01b34843afb60a866b222c09dbbcd03def345e9ac179f79
+2bcd98aff34d1f40c13c7306a1a8508d0e8470288d252bc7650c381727cf4ea1
+c11322029bcff550ae4d7af2cd8490e81693cf3cb639b12bd7562e40dd897e63
+a393c83f7faae5d0d4e3cedc20f96390d5373a94402f9862fca06739c3ac219c
+0099b7cf8b581f52236b99174cb0ac72fb6b96f87873892a0242215c5da31e36
+e019998fba81667097281350a338071544b314c615019c0bb044ac8af31b5eaa
+849ab5c3734ff2fc41bccd95f649c6dfe2838218c15bfd84e8c39d1677b4949a
+2944254858b5262bc99690e934de731bb6385d16dfb2f81aca463478cd572488
+cc067f56d7840a241ad238686fbfe44718cd96242abce7e1db832516feaf46c8
+121d285306cf03792ae2e397200edf7150881f8d2b8f260953d1393d9b1d49b3
+1370e287eb10a587ce16f551bc2ba48bc2c2ae8cce93c661ed07d54a9b79c38a
+1bc516d2b094de6e889bcfa8d2e98170cce82a35d38357b42b5f1e3072e66a77
+9bd6e82ece95ebb514e08d679e966f32a728f241d4f9dbc90bfccfcb0f3e8d35
+9a0d82372a5b5359f4fefa861cc00f6cbcdaa3d9347772ecb27b8bbe74c0ce3f
+af6782d4100e9d659843d3b43c93969413aebe31960f3038f8ff2ad5dd9681d4
+51ec1ae91cf1e32ed447cc7b97445c8eafb5c9a873c7a32daa2db82b106f0fed
+73d69f3bc7b1dff1cf7575d58fee6f3c2ebc010ecd4d5c02c9b9ddfb87a0c5a0
+35ab7501da5c4dc522bcbf35417cdb48d83239f319d476453726d982042f803c
+38457f9142aa46845f800037e3898fec43970eba19625a5c360d9b636309edc8
+15253fc716d25f1b99d533e6ad917e37dcb8e40533ea98dbf740d1011a6b6350
+9072ebdeb7cba81d9348f478c09ef9435303754a5da1b2ba7913a73cb9164df0
+5df77f4c437025dd71c1fc7230e138b47a4f74ee9cdba3aeff5fa69166bbf538
+d735e5c958ebd7664f7f571b92e6830d804885e7c01e7126980d04c85db3dc51
+de6684497a52f9b14b169886442bad2564af8ca8ab851a7a9ac208602b9018df
+2f8caa5b89115d0a2aba966794d54152b479b10232ecf7f0388c3e5070243c72
+de90c637b7a10c7f1aec59d487aece1e20d4498f39c87b11d69741f1a2c98e3a
+2fa6f92fd35746eecd9f7eb81813c724d46b68311a949334271256dd6fe864a7
+d09c083abca2a006e399e504087f979ec02249f5ae6567bc6384064f5227e16c
+316458fafd023294e06733947b4dfb78bb1cce13340c1109259f9e15c5fce773
+90d8423a0e6c5e3faeb98cdeeace0db581e857d316ad0bd0723b96d50b047df3
+37bbcf694e0be7243ba71a7241227c6003cce7ef31f39eaa7cf23381388a1196
+814ee75bd22d73c1646ee2dd75c051d7c9e4c7ebbfd402316df8b5d3a74392e4
+e2ade10d9a207ace256cac51f2039404f194b28e39d7b848158f8f84ff60aed9
+88bf6333829942b03e9175b35833af92e1c68ba5382b8423e62fdb2417444315
+124d258aa3b737e1811a4cc74aa2055ff1fae26f79651d83c04800f6fb4e37f1
+ad6c90afdbf6b42683b4c1b590be0a9ebbcd31b196e950481f15b35a88572f8d
+6e4cae607bc61ded82a89a332c22819ea80d149d95c791bf7ddf0f42e6d35e7e
+296f7e716787cc2cb22016dfce9e764f50a817b2fed5531cff5fc8bb044f35e1
+270f96be2e5d9db54049cbe59893e64c5e22703c08932d7caa6e20e408328f38
+72b9174cc186b7068aedda6adecc592db0130ae83f9be00e020cac63f26c0adc
+05807ee064348be20b1a81d32c9a197ca404d71579224c7505cb0079b646abb1
+5b4d69a80e476fecc1888584b8f9d5e853f0f8dda3553f636771cb2f380b750d
+2bcd794ec120427e75b84d3165b2a28b95fea3f6a8b7166a9394fbe1ebb9d9de
+f494714fff29edef5c7183a9ca34113496843bc663175a1c608badbd1eeb6d9e
+a91b2d6958528649eda39630512e2e2fa290f91dae8643bfee6002b822f29ecf
+127d1bc50f6004d8b4f8dbd2ee0129f825c2890b39ea430a4991aa611de25341
+794386e7469be7c421199af44c41d48b58bf3c5d026abe612088e21473253007
+2df32a5bea725e421f0d58ac94754a5e1759e7f20f33e434d2bf7dbbb7888ec3
+b2f7c0cea938ce1dcadf56df7e896e4ce3848ebddd45c6e20c2e7f37c6f649c9
+96f211a8840cdcb8dcbc713603c62f7bcf33dfdd550b09c6399f3e505963b0bd
+dbf37c8ac7777e8b48897e0a3f1e19519760ee29d52d87d9b631db6521248184
+bba1bd5984a054a5e82be5e0d5f32fd439c3b9d2cb0436dedb1b770faedd4ed3
+84360e79a2eec2160299c371c08e0e849d76f2ed7dab8a7e9728f6c7d1f53df1
+e96c0a65bef7ca096afd17dad6a17bfd9f046491d3b53da5c9b98b95edbd8487
+08304966c47f153b0bb9e92a22534883a786024961cc555cc40e7ca89bc9ca84
+f1d540e49636891a44079e62cf33dc66f044743093cc3ef29d6dde3f17ad9ab1
+8672d367bd3de66fd7f0dbb3e756d75bfc5cf3576a631c177c6d7eee3293af52
+e3008fdfdd787daf160f1645ac0260e9e0b10a34d3e270f17d1bc03da482a994
+d57935efd06375742d86effa6cd4ac4ae226e12f368a7877c3068822c112e160
+b47416063d12f8171c2b06c0af6edbcad82c0556b8b0221967a9219c0985e473
+4f44851c0c95caefb61a999cef293367295f951e72a0fccb3255446a94eba2bb
+0e66e7e69085c083b905774183437ed18e43cfc451df8e21538aa46cacbf330e
+01a76fcff3abe65a2103c78beb1e6c2dfc7f9034353db0a2fa592d38502c8b6a
+a8aeb56d789b3558103a3f749e4f22c04c5e426f2ba2577e49adc64d88a854cb
+81e724928daad7cb26114e543a069aef4c290349e9eba4a7be477a3d52fbda7d
+e28ab6fa5a6005f75396d81048b0ecb60d18115aa2d54df15699560058e498f9
+2d3094a7194206e0eee43ade6daf0619abf7482d36d9a0a20799743bef60200f
+f48fd7cb4f868384dbdcb7c1e6b82a73e1597ac602d66fbca913c10351f30cad
+cf043801ca98ea8e2ff691cdcc6c1faa53021a768682c4e4b2907f1b08fe673d
+c97442e1c5ddee2ab54a325f8f1adb7a926cff96cd11914b49c82b0f462c567f
+fa23f4578f925462134c3684b0c194a016b05d17eb5135f126c367ae83584118
+8a2e927f7f03b0972c88b3256e480ed9b4e3bbfef58226d2085c1e35d57b4395
+3aceb7ac509e5c7e46e2eb35d36f2cc368e6955f64def1aa0c9d0455a5744512
+42cad85a420c2d078d569b4667d4f6bfdfbb600f6a4519327616e3da82f70a20
+d6fdb5a5150f5685ed2222c58c3702594c452bd4ddb45e2fad4370dca80e4d51
+f539cd379df2fba93ee0d5f011ef989fcc4823d6914e64ac97f8894cdd9ac3d4
+c4c82bdc7a5290cde9dc051fa56409f258efabeee271c9eb1d86a16c9cef8e30
+31b85b032e0fc3af7dbb9c02315e4a9d32afc8b169a1faa84e4730f9a5c9ac14
+cff53924a20d01301d4ff8f98a823d758d22fcdded3d961647b2f50bcfd3839e
+6bf5d53279eea1c4a9fef1764f2c74a56104134da4a06d50213d9a8017658340
+78d0119160ef44ffcb4b88bb50ee22e440afe1a9d2e4b2e1e4041c0c4c2cf8f5
+70c1b286750d8722099f2065fb4abeb93d8d43ce0fe2d088c79a1c5a15c7e47d
+12ee59116e74dc8fb361c9cad0c51cdad73775f3d4dd92568beceabe728918cd
+a28de642acbd13292f7a2b6e5e4d0d9df61577994aa882f765749fbd7fbad99c
+a8b741f8c59a4eb28478e5265eb10a4edaa172f11c90d6154056fc5f533b569d
+fbb98c25f73cef97a6345f4d7dcf50483e71976b04a60df76966ae74579c4234
+5bab9804f24ef9e8f8bd0bb752958809aece8e98cb06c8e72cecff9cd0a0d0e4
+0ab7267059508228950ed546a1c5d24bb3b14eba6de83afd6b3a7349e19f0b45
+6a9e5326551011f8dd9ce1140534966f4d15947555b7a40bb5d421c74320a107
+2d9074c028e2ce1db896e9132b7f2d0a20de9190b4a71f4895081c9de4fc48d9
+7b62fd54b690722d95d4d8733033026bfa68c6e9a3b3a8fd37c08395977639c2
+fd7a20f235a9d4f444acd663a580869839d9fc64690c86841c44ad3c1c6596c3
+d61ef3941c0abebd8a7c74f668c0404fa2422a84f1d2903f7aed6da131bb2ffa
+a579e56507f766fe5a3532d928a5e0ea1b17fe0b9a9aea1487c4921f8a8c1c05
+73306fa83292a345d4c31edb4a174b8fa10ace981d69e231f6b14b58e4ce086b
+727c24d7bab11df76cd749e41c77aa1ebde852f4e142b3bb97baa7979ac066b5
+d336f6d485a2c23f0406fd66b3cf82a860d071558f0901a9fcceec8023c63b2c
+e2c4200c8974558e492526c01232eb0ae568c1c7de2015eebc3997547a5b21fc
+f5b617b0061f9bba851b7e739f4f590fbeb3d943fbc7332c2a73f448e370ecbd
+fec4ba4859a2832038a1e4e9210e0c42f93d9ad226807aeb63913b66837126cf
+34bb08b5330992389e402e8119038173806846b39befd58d119756bf63797c96
+2421e74304ca306bd58e9932fd0657910db2772336057ec8794c7ff537777cea
+80194f54113f016caae2f4f5a9f213adc6cfc623aaf2fc74ada1af783dd654b3
+b6aa9d85695247c995b1d4d9c17c1dd46bfafc8cb3079cb5af7ddaadb20dc4da
+31099b056b59598d9a00b15f743d35b8e14374dd1afe24c52482b9a5fafdb294
+9667117cdea4233326c36f1f0ce65d2e9c40c69e65cd056d38da151bdf5bc287
+e3da1721cda0f6a909d51d993d9cc3fbc27cb13d0aad1e375a4822b00305e461
+a6e310eb49aceeddd7ab5ecebc5f9dcdfa1a0a7722316d34753ebf33300d96c9
+76c841c30dd950e83fe24f4608677731e09b36984c74b8056e284ef9df90eaa4
+d3bc4d73b11cfef54421e3324451d042c9ac04a38f4305119799cbdd8b7bc0ae
+21f37efef4cadf59434859e17c1f70ae62e602230705702e653c0e0237b98e44
+db650d3935501e0ab1d9fcdfaacec2a240673a86e8ca35d7c818464ceb84984b
+3aa351c7331793c94482b72890760245ae1e0eb673dfa581d356fec19e42c933
+f5e26f42f9f4fbb2c6ee16257fcc1e9c126b32fab5c417345438f147fe73436b
+a8caf5a3d38c95b3a1f41bd8426acc8789e00f9a4bf7cfc2fc5e35e9ac3307a4
+e58c2f6bbdbdd20308716c0efc43a70af5fe390680a4ada3d48359411abc0771
+133dfd7ad2b7f470696638efc1946be5275e4aba06cf57d52be1a0017bceff4c
+ae4659148566da6ffe23b9c877c87b482847ba9015686dbff6cb84efd4ca80af
+686d6dbeb50c8dff850b2a44e473911ff6e3879069f022a4c7bf9f02b9c2680a
+215997410426615b968fa32b2b97fd42f598ece614626252c94502ec08c4336f
+5d720092e6b65721a25b44e3481c654ef6d375716c05e2ed02ef6f5a841dab7a
+d5890b550b3793ed39fde665932f2d4bab94f1a1fed0d02e28e05a4accf04881
+26f103d92a89d9ad48431bfbb0c444c989920d20519d06a6c4df61e5e27e5cd0
+6e90dc1c877b1ef6339bfb9dfeff55384af39306189b95e302a722385e90d88c
+e9db247e7f8b8d221fa03e9f88973068a618bb9b66fab124e27c25153032b28c
+7582c32a871deeca45f17e7a1b8e1b9271a6339b89496edfdfba7199af4a8cd5
+f1aeca1a50a48bcee8d76222ffc428135c9bed34cf501e7b35c8704a01b63ba5
+fea49c9f95fe8a706ff192afdceb0ee32a1f088a9ebeaf7d7cd096ba4d4468ba
+ab9d10af1f68931ae29d8aa56acabb8f15d16efd1b3a9f24f993aac72c239da2
+acbd2cf14405d970edb465947a16640c9834701790e4dbacb794ed3241d7b067
+996e451407dc9a0b16f17d151fe3fb5100378189ebf831e90fe75624ef39778e
+5ee6085f070fe294849ffdb68810caf03da69e9dab0f8938fe2333b8b7c54094
+3a574ac3c2382c21d5ef981b5863f323a6721115988b3736aed1c9b8871c01b7
+ca0f94c6fe96be57e180501d77257c92f440b6f15c469e089922ed038f369f35
+d94ed5edbdd84870aec5328083f7c5664b3e4d60942ba2dfbe61e8d9b7bd101c
+7a3de9ff4346bb7aace2d72f9029493ef6e79b06ab6611cac49243ac7e736368
+5b0674947d74a2910f1e66618fc74bdfc22697540e9e5f7eb2c5ab1542216a12
+fed5ece970829982947e231f6182a9ef66b5f51967cac03413462db70d738c81
+dd3e28ad5e4adc466fba140aaeb6ee2d31936246bd2a9a0f25dc21b9c317e222
+cf6cb1b26c46a865b9a5d5ae6a4a56d635e8726b5468aca8888c2a11897af3ea
+5cb976630459197670afd34f532f2c296086cd5c0de8fc5be704c7369afeebff
+d7f09fe91484770c0c6457b5081c8236ca1bbc20e859cddd3167f1cc9740a78d
+0aa8724a14acf820662dcdf7fd9b58d773e3f51d8b74b05f5a7faf16263b96cb
+7d01f532fafcf0f91038b946846cf6ee5ef2de240439b80d2ef872cccee813e1
+d99368cd14486479416ec144de2f32464f123300d09eda58453ee49a08b2e103
+47db13e9678e5ac3432c7861ebea2084d8b4568650667c66d0853d149dae06f8
+6a12cc0c94116a60b3837314b659a93b57ec52251f5a74d929b37abd2ee1c0d5
+4f6c988ba2a9820473a744caf79a320e20354658e869ca9aa035007f54dca13e
+9c8c6148b13f29a7a66c9c2303e0388eaea41bd92142cc168800d2abebc3113c
+d4559b2aeddb24af64d383a60b2549fc22e950378f84087de6ae274f545ed737
+0747700787b952542a7449590b7b9c484ec3d8e097fa4762ba0774d0bf44e92d
+60817660534718f733a2695347ce10b9cc37aca0402dec1079cf3e63b6156eaf
+308ef724f95c149bef5ad1b4bf76bccd7574baf017c86ba1ec12465533f26017
+16b13cc30f90124905bb425f3346c00e93126b366a00fa3548e669bed06404d6
+3bea6d89e750f7b4754f2af622de2730fe0214f5e7c1522b5fb9922f31a7e4d3
+7bfa35753037fd3b48b02ea326144d469efd5d46e29f5fd30587e54668e1fbda
+b0e5da9c953be0c45ee02cb5dd89f7c1eee1ca874a450d9c9f2c8eefa7bd58ee
+86b2edea126c2bc87f50cb9332c55269c874a6bb18e7cff9e9c3c65f0eef91c6
+8c779d91839faeb782ccc2d571d144217e8864109e8735498b46f27620a73d10
+90591476305d0353bc9f1418642e399b39b77fbce81057990d89e6dde65f28c7
+788650e79399a7d33ae6f643199ed7297171102f5ee835949fd9c3f4b2068d0e
+9256e80130cbdd1cff7729528c77907ce502fb3f2fc9340657034050c41f58f8
+d40d34a91d000d243346e35f02f4bad1c6a91ce9bd2b7bdc7145507c4031bde9
+f26697d6f61fc2d0e3ae5c5f8a72bed7c9f4f17e7ab45979816cfddff9dcf58e
+02aa14a8a58b5abbe7b010f813a77f72d4026308d2fcc95684885e36054fad31
+5cf1734902dd5c987e67b51166105749949129602aa0d5e065a645ce99f3a530
+fb9792dcbc3bc94eb15e005bb8b953ac90dab2819ad8804b441dcc82430ba58c
+c6d2a9b53709264fe1eb2ca98aee5964a0f4a46018964c7d6c80613825906b60
+e3abac854fc2916fc30d8f98456d99a34d55408d15b27556ffe1c6f78b69962e
+3699688342024ec413958046f7043a4126aea01570060f72fc80232e44069f21
+d2254040d6f68efea6a81d45f1635f872dc5001b181c9cb506080412b5286d3f
+9bd5e81c582d3dbd815a102a8f7fc2dd47e8c2637067fd7094744cd9d6ef052f
+2abad10eb57e948db9853b0a9d7cbdf77ee982c74b79d08a1665c5bbfed508dd
+3d088aeca5985aed382afa5c833d47801999073feb2ec2079b01be3537b871cf
+2f1c7936d540abfe08d6bb94f81dcae5e94ac58a5ff0a2337f73713f71dfddd8
+34884902da9f5d9422abe3eafa1e3ba39aff57b57452f315bd4d96c5c262dc09
+1621090844039e45e62ca40714caf2086e6eea494243d1fbd9153f5e4920fd8f
+b37fa2e020a0cb1833c59039cd87f832c21a2ba0970945325c0c092ed9d974de
+f334a44cdb77ca9c23805a331cd895014718a35c24f9587ced2e5fc990c28dd1
+a1efcc72ca6a8037134fdec961d0a63857be4f65076daf769c6f52e7c8f96ece
+e0cb3eb3001120228c1e1a21ea46e80fd13c73c5b3e188c2a392249bfa3a2c2f
+8d4e608bbb3218d9c527bab656e341952a47002056146b85f804cb0522ca5407
+aa69625e4efc3b8882a6f23d64dd1b630991999e5b26e920bba38d43a4980fab
+bc0c755cb403f724323dd106abed53a21bbca6a8c82e202a515fd134f166c9d7
+e027bad4e6d72bc9be48e73e502ac64436122509c302bfb712ed991211ee0f9e
+bbb95aeaffb8e0f0805ed3dfd4076cb19e1108a81658e8d194b89ae3bfe41a52
+8f175a2484414b57eeaed988f4e2ed54e48b5ecd5256b85857e2f1ad71cda4a6
+1c8fde9f0847abac111de5421449e4ab0762d1ee3df27bfe29e6e1447e80fec1
+dc7fa9f3dc7a5d8e67e952c72fe39fdce79a8df876e87266ec9be9902995b0eb
+611825634cd8b728decba041d63b68357f84a7efde543057990d1dae9343aadb
+8b16eb60e9178465767c67b4d63e050b64f8ac71e64588298a336f3fb7c62761
+9a76e78614f932d94e1887a86716a1f738888ed1281d60dc8f26e8deea5c3408
+395812d5ea203a6d5f08ad6bf2a33d560382f95039b1d1b4da749d4c1425dcc8
+722de1489f0761f0f28288fb02ffe646ed5fdde587c0159c032ba0a5f6ad5c10
+ae8e5c1619a9023151d67f6c83f2310e999c1e19c6aeb657833949007b3a10c1
+69667729080033abc5fab5552a0f8feec109ce8f39f5a37f3bba527eade618fd
+1256225d62ac3c14c204153dc73cad820e7442e25992c79a90493c8844e3271e
+bfe271dee771405d9aa83c61d8b8f8d4cc7ed4d26e168848cd662086fad926a5
+4c2404c9ebec01371568f09edaf751f2c78cb0230bd330ee8d04a8998b2b4b65
+4afb92c6046ea6d194034b53b653bfc22c32f20d7e35c227bae69e45af4c1e95
+0402b4b877fe2b097de42a1d4bcfec45745345995a0b13ee3c9d9811c2c520cc
+152b2d957ba99617cdd9ede68e462b37fd58a206782747dd3593ddf488a1aaa8
+d6dc4b9e5c19f894c4cf13b28219da2500a1c202d0542f761b1ef03d6615d606
+68f8c95058011eecd5a1d71894243f4cc47105854c7f26a41277ad24aca7c9ca
+65fd78e1146011cbd074fd834facfeb1b3dda92672a5a30ca961bb04945497db
+59ecf905bbd45a18f3517980466567fb46f8cc219b21fe99b7fadaff92ce0397
+eeb923da8df33cc0ec86f84874cdabf030acacf530f21f39bdaa8c2c99a91c4f
+52a040de06d407e9f1931fa71c872dd430a5bd4becaacbe5d7def0ea1fd1db02
+1fac9ccb4f01332ed7fde57a432f1186163d21c4759f783e05285af5f46e05ce
+9644ac6709d4241ec64ba9d44a1bc437220c27aab0c4dda2147ce5b062b3cbd2
+e8f185b9daefb31eccc8f131d90d8d1530f8b250cb0eec762dcd24ac045bb55d
+306f9c78ce029ced629e312b18429802badf1b61baef6a6d1ae7d232f1c6c7fb
+17d0c735f6b5dece447cf1822a7204c1a565e54fc75f01c34c0f211ad60d8b7b
+037a321f1aaf5b8137cde4ae3fd3e25d48fd828b940e16c77f8b462ac0dcf670
+292a26a45c2e87e13c5127ea8d3fe77b388795c0ebab2fe61815439059390986
+14eac91566b4bee00d6b97ab00eb41c2de3ecb16335b1cd9ce079cb86f791759
+76701dcda5eec778428b79c521112d7765acaab8251630318b71d34195a3c2d3
+696f999ef584f88a321dbe2556f82090f9e9be835a43c6ec66f3a6b8aaa85367
+bd4a9f49edffbe1c7b8724ab4fc7dbd134f3fb19cf28a7b331d49a31f7df6d95
+34d4cfac421de2ac3d5426c1c3cd1edf864834a7f68e096e23d797fa2052edd7
+6c12aa0273ecf8578e292e7b18ee72e0903897bc2d60cb81b698da1427ed39c4
+b4ac6b07650e34ad055226e60a7c00fff9146539c476a0b398d5402043d73824
+18945d6cd3344a398b953979cc46ec6d47488a7721c9ab46db06a02e5b01b194
+3d095160cd6f0187258098ee1c378620821b68ccee6eed02a8ea644e38256771
+31f3c4fb2a8d92b5a0c918184bfc745a9ffa7674d535a52625ff49ee5b084a7f
+ba846b86b09e09abb64ce126c165b24650f736a76ef1deaced87dd7ab8c663fd
+e845b17c15eaa177478cd65a6ef357ed997efff956f38ab61db4cf5fc4c8036c
+4b0f95c254f41d2a1364e36b845579e168743eff80d16b21a7162f7da91b7ba4
+7b4731238afc1808c1543e5fa11cbc511c3b528d02a5bc9a57adf675d65d8469
+fcf7fbf8c4ebdabcce93010b0150bad77de0f090530b6c5ebea8bd66a38cc1fe
+bcf8721ca9b201059f3627c2ec4490314c1a
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+
+%%EndFont
+TeXDict begin 40258431 52099146 1000 300 300
+(/arabtex.308/examples/guha.dvi) @start /Fa 141[19 4[41
+7[22 1[22 27 29[37 10[24 24 6[24 4[14 44[{}10 49.8132
+/cmr12 rf
+%DVIPSBitmapFont: Fb nash14 17.28 73
+/Fb 73 251 df<1230127E127CA212FC12180706818505>9 D<EA30C0EA7FF8EA7DF0A2
+12FFEA18600D067F850F>I<1340EA01E01207EA1F80EA7E0012F812600B0780860B>I<EA
+01C0EA03F0EA07F81338137813F0120313E0A21207EA0F40EA3E0012785A12400D0F808E
+0B>I<120E123F127E12F05AA213C0EAFFE0EA7FC0EA1F00127C12F012600B0D808C0B>I<
+1270127C127FEAFFE0EAE3FF00E0138038401F001107808611>I<1304130EEA038E1243
+EAE39EEAE7FCEAFFF8EA7E60EA18000F0980880F>I<EA30C0EA7FF8EA7DF0A212FFEA18
+600D067F850F>I<1206EA0FC01380A2121FEA0300C7FCEA30C0EA7FF8EA7DF0A212FFEA
+18600D0D7F8C0F>I<1340EA01E01207EA1F80EA7E0012F8EAE0C0EA01E0EA07C0EA1F00
+127E12F812600B0D808C0B>19 D<13E0EA01F813FCA21200EA60F8EAF878EA7CFCEA1DFE
+EA1FCEEA3F84EA7F00127E127812300F0F808E0F>I<1320A21370A713781338A41330A2
+1370EA7FE0A3EAFFC013000D1681950F>29 D<5A5AA35A121F127FA27F12F712E312037F
+A26C7E7F13FC3800FF80A2EB7F007F130F111681950F>I<FC000101808001>38
+D<FC00010180800F>I<12021206120CA2121C1218123012201260A312E012F012F812FE
+127E127C123C120C071380920C>44 D<1230127CA312FC12380606818505>46
+D<1260127C12FCA212F812381200A81260127CA212FC12F8123806147D930C>58
+D<12201260A2127012F0A212F8A212FC12F8A312F01270A812781238A8121CA71218A312
+1006297DA809>64 D<12201260A312E0A41260A21270AB12301238A7123CA37E121F13E0
+120F13C0120712010B277EA60C>I<1580A2EC01C0A215E012301270007814F0127C12FE
+6C14E01380EA7FC0D83FE013C0EA1FF0EA0FF81207EA02FCEA007E133FEC8180EB1FC1EB
+0FE11307EB03F1EB01F9EB00FDECFF008080EC1F80140F15C0143F14FF903803FB80EB07
+FFA215005B14FC1C297EA820>I<154015C01220123000781301127C12FE7E138001C07F
+EA7FE0123FEA1FF0EA0FF8EA07FCEA027CEA007E133F131F90380F8160ECC170EB07C2EB
+03E214E6EB01FCA2903800F878A2EB01F049487E90380FC03E90391F803FC090387F001F
+D801FC14804848130FD80FE01303484890C7FC48C9FC123E127812601240222A80A321>
+I<13F0EA03F8487E487E121FEA3E3F38781FC0EA700F00601380EAC007EA8003120B818A
+10>I<EA0F80EA1FE0EA3FF0EA7FF813F01260EAC060EA80200D08818710>I<5A13801203
+13C01207EA03E0A2120113F01200A213701360A313C0120F127F1380130012FE12F00C16
+81950F>71 D<1220A21260174017E012E04C7E6C4B7EEE07FE6C92380EFFC0007CED3E7F
+007F9238FC3F8001F0903807F81F6CB6EAF0036C4BC7FC6C158000014AC8FCD8003F13F0
+3212808D31>73 D<134013C0A2487E487EEA0FFC387EFF80A2387C7F00487EEAE00F110B
+818A0F>I<13201360A2137013F01370A21360A3EA01C0127FA21380EAFF0012FC0C1081
+8F0F>I<14041406140EA3140F1407A31403A614021406A2140C141C1478EB01F8EB0FF0
+3801FFE0B512C0000F1300EA003C181B838916>80 D<140315C0A2EC0780A214031500A4
+14021406A25C141C5C14F8EB03F0EB1FE048B45AB55A000F90C7FCEA003C1A17838516>
+I<1302A21307A25B7F80A2130380A380A3EB02F0130638400CF838603C7C38F0F87E00FF
+EB3FC013F09038E01F80387FC00F381F00031A197C981D>89 D<13FE3807FFC04813F848
+13FE48EBFFC0D83E0313F83A70007FFF800060131F12404848B51200130F0001B512C000
+7F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2111819021>103 D<EB7FF00003B512C015
+FF5AA201805BEA0403C6481380D91FF0C7FCEB3FC0017EC8FC13F8485AEA03C05B48C9FC
+12065A12081218121012301220A21260A412E0A47EA27E1278127C127E7E7FEA1FE0EA0F
+F8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D9007FC7FC263180
+9121>I<EBFFC04813FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380F
+FE7C90383FF87E3A03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8
+FC2611819024>106 D<13FE3801FFC04813F814FEECFFC0D8020313F8C7387FFF80141F
+A249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2111819021>
+I<EA03F013FF14E04813FEECFFE0D8003FEBFF8001031400EB003F49B5FC011F5B48B512
+C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC2110818F05>109
+D<1504EC010C0108130EEB18030110131E903830071F91380F9F809039F83FFFE0007FB6
+12FC14FB9138F3F3F839FFBFE1E190390F800038260D818C24>130
+D<1680152049EB21C0A2491361EDE18090380701F190391F87FF00007FB6FC81ECFE7E39
+FFF3FC3CD9C1F0C7FC220D818C20>I<EA0820A2EA1870A2EA38F8EA3CFE387FFFC0A214
+80EAFF9FEACF03120B818A10>I<EF0FC0EF3FF0EFFFF84C13FC160793380FE078923980
+1F803893383E0078913A01C07C03F0EEF01F913A03C1E1FFE0DBE3DF13C092B612FC8018
+F800207FEEC00F03E0C8FC1260A300E05CA35D7E14016C49C9FC007C5B007E131E383FC0
+7EEBFFFC6C5B6C5B000313C0C66CCAFC3624809035>145 D<ED07E0ED1FF8ED7FFC4B7E
+1403913807F03C9039200FC01C9039601F003CD9E03E13F8EC78073A01F0F07FF03A03F8
+EFFFE0007FB71280EA7E7F1700487E39F80FF0032911819027>I<ED07E0ED1FF8ED7FFC
+EDFFFE1403913807F03C9039200FC01C9039601F003CD9E03E13F8EC78073A01F0F07FF0
+3A03F8EFFFE0007FB61280D87E7FEBFE0015F0486C90C7FC38F80FF02711819027>I<13
+4013C07FA212017F1200A27F5BA35B13601370A7EC01F8EC07FE9038300FFFD9383F1380
+5CECFE0F903939F80700EB3FE0EC801FEC00FEEB3E0F90383DFFFC007FB612E0A216C0B7
+FCEBFC00232681A521>162 D<7F7F1201A27FA37FA45B1200A67F1370A2EC01F8EC07FE
+EC1FFF4A13800178B5FC903939FC0F0090383BF00790383FC00FEC803E90383E01FE9038
+3C1FFC90387BFFF8007FB512E0158002FCC7FCB512C001F8C8FC212681A520>I<EB0FF0
+EB7FFE80495AA214BEEB3FFC6D5AEB7FFF007FB512F0A29038FE3FE038FFF80FEB00011C
+0E818D1A>170 D<EB07C0EB1FF0497E497E017EC7FC13F813E05B7FA27F6D13E0EB7E0F
+90387FFFC07F15803903FFFE00007F13E091C7FC13F8EAFFC000FCC8FC1B1681951A>I<
+17F0EE01FC4CB4FCA39338061F80170FEE0F07002016FFA2701300006016FBEE01F3EE00
+02A200E016065F173C17F86C15036CED1FF000FE4AB45A267FC001B55A90B7C7FC6C15FC
+6C15E0000702FCC8FCC649C9FC311C809A31>I<5BEB0FE0131FEB3FF0A2137FEB6070EB
+C060A300011340EBE0C013F1EBFF807E007F13FFA214FEB5FC13011814819316>174
+D<13F0EA01FC48B4FCA25A38061F80EA070FEA0FFFA33807FB00EA01F3EA00031306131E
+EA01FC127F5B5BEAFFC000FCC7FC1115819410>I<16801503150FED7F004A5AEC07FEEC
+1FF8EC7FE0903801FF80D907FCC7FCEB1FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9
+FC1207487E7F7F6C7E6C7EEA01FE1200137F7F7F7F1306A21304130C131C1378EA03F8EA
+7FF05B5B48C9FC12F8212A81A91A>187 D<154015C0A31401A3140081A41480EB01C013
+03EB0780EB0F00130EA290380FC070381007F0383001F838200038EB10F8EA603F14F090
+380F007800F0C7FC15F86CEB03FC6CEB0FBE007F90387FBFC090B5121F6C01FE13806CEB
+F80F0007EBE003000190C8FC222580A321>189 D<14021406A2140FA31580A215C01580
+A3150080A8EC0380A61208A20018EB01C0121012301220A21260A312E01580A36C1400A2
+00785B007C1306007E131E383FC07CEBFFFC6C5B6C5B000313C0C690C7FC1A3480A51A>
+200 D<154015C0A31401A56E7EAB81A681A38181EDFFC0A21680002014EF15E3EDE00012
+60A300E05CA35D7E14016C49C7FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0
+C66CC8FC223780A321>I<7F1201A31203A37F1201A97FA21200A77FA37F7F387FFF8013
+BFEB3F00487EEAFE07112481A30F>I<12021203A2EA0780A313C0A21203A31380AB1201
+A213C0A51380A3EA0700127FA2127E5A12F00A2681A50C>I<1307EB0FC0EB1FE014F013
+3F1331EB60F8EB707813F83801FE383807FF30007F13F0EB3FE0EA7E1FEAFC0738F001C0
+1510818F13>211 D<EB0180EB03C014E0130714F0130D130CEB1E78133E13FF000713B8
+387FEFF013CF138738FE03E0EAF8001510818F0F>I<12037F7FEA07F07FEA03FE6C7E38
+007F8013FF000713005A5A13F848C7FC123812201260A312E0A67E1270A512781238A412
+3CA2121C1218A31210112B77840F>I<1580140115C0140315E01401A2EC00F0A2002014
+70157812601538A312E0A215307EA26C1420007C1460007E14E0393F8003C0EBE01F6CB5
+12806C14006C5B000113F838003FC01D1E80921D>224 D<15101538153CED3F80157F16
+0012208115381260A3153012E0A215207E15606C5C007C1301007E495A383F800FD9E07F
+C7FC381FFFFE6C5B6C5B000113E038003F80211C808720>I<1306133EEA01FE1207EA3F
+FF481380EBCFF0EA7E0700F013E0EA8003C7FC140B848A0F>229
+D<EB0F80EB3FC0137F3801FFE05AEA07F1EA0FC0381F00F0003E13F8007813FF0070137F
+0060137E48133E48130E180E818D16>I<EB0FC0EB7FF03801FFF84813FC120F381FE07C
+383F8038387E00181278006013005A5A160C818B0F>I<1203EA07C0EA0FE013F0EA1FF8
+1219EA10FCEA207C133C133EEA601EA2130EEAE00CA212F0EAF838EAFFF8127F13F0EA3F
+E0EA0FC00F1680950F>I<1340136013E01201120F121F123FA2EA3CF0EA7070A2EAFFF0
+A27F127FEA1FFCEA003EEB3FC0A2EB1F80130F13031216819510>I<1318133CA2137CA2
+13D8139812015B13F0EA07E0387FFFC0A21480B5FCA238077E007F139F138FEA038E13C6
+13FCA212015B6C5A121B818F10>I<130C131F8014E0497E6D7E497E497E80A201C11380
+9038C0CFC0EBE0C73901F383E013FF6C13810003EBF9C0007F13FFA201E7138048C6FC00
+F8EB1F001B1681951A>I<13101330A21370EA01F0387FE04014C0EBE180EAFF61EAFE43
+00001300134213C613C413CC13C8A2EA01D8A213F8A312005B1370A21320121B818910>
+238 D<EB0780EB0FE014F014F8131FEB18FCEB3C7CEB3E3EEB3F9EEB1FFE14FF7F7F1301
+EB0003A514021406A2140C141C143814F8EB03F0EB1FE03801FFC0B51280000F1300EA00
+3C18207F8E1A>240 D<EB03C0EB07F080A2497EEB0C7CEB1C3EEB1E1EEB1F1F14CF9038
+0FFFF8A26D13F07FEB007FEC0380A415005CA2140E141E5C14FCEB03F8EB1FF048B45AB5
+5A000F90C7FCEA001E1D207F8E1D>I<EC71C0EC7DF0A214FFECFBE0EC186091C8FCA9EC
+01E0EC03F881811407EC063E81EC0E0F140F158715E70020903807FFC0A26E138000607F
+EC003FED0C00150800E014185D6C14705D6C13036CEB0FC0397F807F8090B5C7FC6C5B6C
+13F8000713E0C690C8FC222D809E21>245 D<167CED01FE1507ED0FFC151FED3F0CED7C
+08ED70005D5D4A5A92C7FCA200105B5AEC07C015FF006015E016F0809138007FE0150100
+E0EC006016C015016CEC0780150F6CEC3F00007C14FE007FEB07FC9038C03FF06CB55A6C
+14806C49C7FC000313F838007FC02724819424>248 D<1530153C153F0020EC7FC016F0
+ED1FF80060EC07FCED01FE1500163C00E0151C160C161816786C15F06C14036CEC1FE000
+7FECFFC0D9E00713806CB5EAFE006C14F8000714E0000191C7FC38003FF0271880841A>
+250 D E
+%EndDVIPSBitmapFont
+/Fc 210[16 16 44[{}2 49.8132 /cmmib10 rf /Fd 133[20 24
+1[32 1[26 16 20 21 22 2[27 40 12 22 1[15 25 22 15 1[25
+1[22 25 1[15 36[15 11[15 17 15 4[15 16[25 25 25 3[15
+16[{}29 49.8132 /cmti12 rf
+%DVIPSBitmapFont: Fe nash14bf 17.28 26
+/Fe 26 242 df<EA1C1CEA3E3EEA7F7FB51280A2387F7F00EA3E3EEA1C1C110881860F>
+10 D<13F01203120FEA3FE0EAFF80EAFE0012F812600C0880860C>I<EA03C0EA07F013F8
+A5EA03F0A21207120FEA3F80EAFF0012FC5A12600D10808E0C>I<133C1203EA67BC12F7
+13FCA2EAFFF813F0EA7F00123E0E0A80880E>15 D<EA1C1CEA3E3EEA7F7FB51280A2387F
+7F00EA3E3EEA1C1C110881860F>I<EA01C0487E487E487EA26C5A6C5A6C5AEA1C1CEA3E
+3EEA7F7FB51280A2387F7F00EA3E3EEA1C1C1110818E0F>I<134013E0120112031207A2
+121F123F487E12FF12F312E3EA03F8A26C7E7FEBFF806C13E0A2137FEB3FC0EB1F80EB07
+00131782960F>30 D<1218123E127F138012FFEA7F00123E121C12080909828605>46
+D<121CA2123C127E12FEA27EA45AA25A127EA8127F7EA71380121FA61300121EA2121C12
+08092980A809>64 D<1208121C123C127CA212FCA4127EAC7EA81380A3EA1FC013E013F8
+120FA2EA07F0EA03E0EA00C00D287FA70C>I<13101330137813F8487E48B4FC001F13E0
+5A127E38FC7FC038F83F8038E00F00130C828B0F>74 D<EC0180EC03E01407140FEC1FC0
+EC0F801407A31500A3140EA2141E5C147C495A130FEB7FF0B55A6C5B00035BD8001FC7FC
+1B18838616>81 D<80497E1303A21307497EA36D7EA36D7EA380A2801208381C07FFD83C
+1F1380397FFE7FF013FC38FFF83F9038F01FE0397FE00FC0393F8003801C1A7D991D>89
+D<EB3FC0EBFFF84813FF4814C04814F84814FFD81F0314F0381C007F48130F48013F13E0
+D8E003B512C0D8C07F1480000FB5EAF0004849C7FC4813E04890C8FC13F090C9FC241283
+9121>103 D<EB7F80EBFFF04813FE6E7E4814F04814FED80207EBFFE0C7FC141F027F13
+C00107B5128090B61200001F14E04801FCC7FC4813C04848C8FC13E048C9FC2312829121
+>107 D<13FC3801FFC04813FC48EBFFC015FCEDFFE0EA003F010314C0D9007F13800107
+B5120090B55A001F14C04801FCC7FC4813C0D8FFFCC8FC13E048C9FC2311829005>109
+D<EA0218EA0738EA0F7C121FEA1EFCEA3FFF4813F0A3B512E0EBBFC038CF0F80140C828B
+10>132 D<1330137813F812017FA37FA35BA21200A57FA2137E153EEDFF80020313C002
+0F13E0D97F1F13F05C90393FFE0FE09138F807C0ECE00F9138807F80913807FF0090383E
+FFFE001FB612F85A5AB712F016E049C613C0252682A521>162 D<EB07FF011F13C05B49
+138090B5FC4814005C39001FFFC0001FB512FC5A5AB5EA7FF89038FC1FF09038E007E01E
+0E828D1A>170 D<1560157015F014011403A481A91401A281A781A381168016E0A30003
+15C016800006ECFB004814F8121C123CA2007C5CA212FC6C5CA26C5C6C6C485A6D48C7FC
+383FF83FEBFFFE6C5B6C5B6C5B00015B6C6CC8FC233880A421>201
+D<138013C01201EA03E01207120FEA07F0A313F813F0A213E0A2EA03F0ABEA01F8A513F0
+13E0EA03C0121FEA3F80EA7F0012FE5A12F00D2782A60C>203 D<147014F8EB01FC1303
+14FE1307130F14FF5BA25B48B5FC001F13FE383FE7FCEA7FC738FF83F838FE01F038F800
+E0181282910F>212 D<1480EB07C0133FEA01FF000713E04813F04813FEEA3FE7EA7F07
+38F803FC380001F8EB0070170C868B0F>229 D<5AEA03C013E0EA07F0EA0FF8121F13FC
+123F123D13FE127CA2137E12FC137CEAFE78EAFFF0A2EA7FE013C0EA3F80EA0F000F1680
+960F>232 D<EB01E0EB03F8497E497E131F80133EEB7F7FECFF80A27FA27F7F1303EB00
+07A31500A3140EA2141E5C147C495A130FEB7FF0B55A6C5B00035BD8001FC7FC19217F8F
+1A>240 D<EB01E0EB03F8497E497E131F80133E90387F7F8014FF15C06D13FCA27F6D13
+F8010313F0010013E0EC07C0A21580A3EC0F00A25C143E147E495A130FEB7FF8B55A6C5B
+00035B38001F801E217F8F1D>I E
+%EndDVIPSBitmapFont
+/Ff 136[47 1[38 2[30 3[39 4[22 4[36 2[36 74[36 22[{}8
+71.731 /cmti12 rf
+%DVIPSBitmapFont: Fg nash14bf 24.8832 8
+/Fg 8 242 df<1207EA0F80EA1FC0EA3FE0EA7FF013F8EAFFF0127FEA3FE0EA1FC0EA0F
+80EA07000D0C828909>9 D<130C133E13FF5A1207EA1FFEEA7FF8EAFFE013C01300127C
+1230100C808A10>11 D<133EEB7F80EBFFC014E05AA414C07E1480137FEBFF001203485A
+EA1FFCEA7FF0485A138090C7FC127C12301316809410>I<120212075AEA1F80A2123FEA
+7FC012FF13E0127FA213F0A413E013C0A6123F13E0A8121F13F0A8120F13F8A81207A413
+F013E0A213C01380130012020D3C80BB0D>64 D<1420147014F81301130314FC1307130F
+1307A3130314F814F0A2EB0FE03803FFC0481380481300485A123F5B485AEAFFE06CC7FC
+1619849815>75 D<163016F0ED01F81507150F151F16FC150FA31507A31503A3150116F8
+A416F0A2150316E01507ED0FC0151FED7F80EC01FF02071300EC3FFEEB01FF013F5BB65A
+5D00075CD8003F5B01015BD9000EC7FC2628858E20>80 D<1306EB0F80497E80EB3FF849
+7E497E806D1380011F13C06D13E013036D13F07FEC7FF8143F141FA2140FA2EC07F015E0
+A2EC0FC00007B512801500485B485B5A485BB55A14C06C90C7FC1D217FA01D>88
+D<EC03E0EC07F84A7E814A7E4A7F4A7F91B5FC4980A249487FECFF7F4B7EA2EEFFF06D15
+F817F06D15E0806E14C0020F14806E14009138007FFEED01F8A25EA44B5AA215075E150F
+4B5A153F03FFC7FC1403EC0FFEEC3FFCEB01FF013F5BB65A5D00075CD8003F5B010190C8
+FCEB000C2D30819628>241 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: Letter
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 761 308 a Fg(\014)744 331 y(P)6 b(X)788 352 y(\013)816
+331 y(@)840 300 y(\013)824 331 y(\361)866 280 y(\013)870
+298 y(\011)863 331 y(K)31 b Ff(naw\026)-36 b(adiru)486
+399 y Fe(\014)485 412 y(\020)485 440 y(\350)504 425 y(\013)495
+440 y(Q)q(\345)530 402 y(\013)529 423 y(\021)533 440
+y(\204)556 419 y(\013)549 440 y(\252)o(\313)t(@)628 411
+y(\014)626 440 y(\350)645 413 y(\014)637 429 y(Q)659
+440 y(\036)659 452 y(\012)674 440 y(\324)675 455 y(\013)702
+402 y(\013)688 429 y(g)728 419 y(\013)718 440 y(\360)24
+b(A)780 411 y(\013)780 440 y(m)802 399 y(\014)786 429
+y(k)805 466 y(.)840 440 y Fd(\024)-24 b(guh)891 450 y(.)914
+440 y(\026)f(a)18 b(wa-h)1033 450 y(.)1056 440 y(am)-5
+b(\026)-20 b(\020ruhu)17 b('l-)s Fc(,)m Fd(a)n(\024)-22
+b(saratu)237 513 y(i)n(\024)g(star\026)d(a)17 b(\024)-24
+b(guh)428 523 y(.)452 513 y(\026)f(a)22 b Fc(,)m Fd(a)n(\024)-22
+b(sarata)19 b(h)691 523 y(.)714 513 y(am)-5 b(\026)-20
+b(\020rin.)19 b(farih)969 523 y(.)991 513 y(a)h(bih\026)-25
+b(a)20 b(wa-s\026)-25 b(aqah\026)g(a)23 b Fc(-)m Fd(am\026)-25
+b(amahu,)20 b(t)1624 546 y(\026)1652 513 y(umma)164 573
+y(rakiba)e(w\026)-25 b(ah)371 583 y(.)394 573 y(idan)17
+b(minh\026)-25 b(a.)18 b(wa-f)-5 b(\026)-20 b(\020)168
+657 y Fb(\372)179 689 y(\012)199 629 y(\011)193 657 y(\257)196
+692 y(\013)223 636 y(\013)214 657 y(\360)273 646 y(.)286
+657 y(A)301 642 y(\013)298 657 y(\356)326 635 y(\011)314
+657 y(D)q(\323)335 672 y(\013)389 657 y(@)409 625 y(\023)402
+657 y(Y)n(g)443 672 y(\013)467 657 y(@)482 636 y(\013)472
+657 y(\360)553 639 y(\013)535 657 y(I)556 672 y(.)583
+657 y(\273)587 672 y(\013)620 642 y(\013)608 657 y(P)667
+631 y(\013)666 642 y(\017)669 657 y(\325)o(\347)699 613
+y(\014)698 635 y(\021)698 657 y(')746 646 y(,)768 628
+y(\014)768 657 y(\351)789 628 y(\013)785 657 y(\323)t(A)824
+628 y(\013)820 657 y(\323)841 597 y(\013)841 613 y(\015)843
+657 y(@)37 b(A)904 628 y(\013)901 657 y(\352)920 616
+y(\013)919 629 y(\020)917 657 y(\257)5 b(A)968 639 y(\013)950
+657 y(\203)986 636 y(\013)977 657 y(\360)37 b(A)1055
+642 y(\013)1052 657 y(\356E)1074 669 y(.)1071 680 y(\013)1134
+628 y(\013)1123 657 y(h)t(Q)1169 686 y(\013)1186 616
+y(\013)1189 629 y(\011)1183 657 y(\257)1234 646 y(.)8
+b(Q)1256 680 y(\023)1270 657 y(\036)1270 669 y(\012)1284
+657 y(\324)1285 672 y(\013)1312 619 y(\013)1298 646 y(g)1375
+616 y(\013)1373 629 y(\020)1373 657 y(\350)1392 642 y(\013)1384
+657 y(Q\345)1418 619 y(\013)1417 640 y(\021)1421 657
+y(\204)1445 628 y(\013)1438 657 y(\253)37 b(A)1513 628
+y(\013)1513 657 y(m)1535 616 y(\014)1519 646 y(k)1538
+683 y(.)1590 657 y(\370)1638 630 y(\013)1630 646 y(Q)1654
+616 y(\013)1652 629 y(\020)1652 657 y(\036)1684 640 y(\021)1667
+657 y(\203)r(@)1700 669 y(\013)164 738 y Fd('t)177 749
+y(.)195 738 y(-t)210 749 y(.)229 738 y(ar)-5 b(\026)-20
+b(\020qi)31 b Fc(,)m Fd(adda)d(h)501 749 y(.)524 738
+y(am)-5 b(\026)-20 b(\020rahu)28 b(wa-huwa)h(r\026)-25
+b(akibun,)29 b(fa-wa)o(\024)-24 b(gadah\026)f(a)29 b(tis)s
+Fc(,)m Fd(atan.)g(t)1624 772 y(\026)1652 738 y(umma)164
+799 y(nazala)18 b(wa-)s Fc(,)m Fd(addah\026)-25 b(a)17
+b(fa-ra)s Fc(-)m Fd(\026)-25 b(ah\026)g(a)20 b Fc(,)m
+Fd(a)n(\024)-22 b(saratun)16 b(fa-q\026)-25 b(ala:)241
+865 y Fb(:)275 832 y(\013)259 876 y(\310)s(A)306 838
+y(\013)304 850 y(\020)300 876 y(\256)325 835 y(\013)328
+848 y(\011)322 876 y(\257)368 835 y(\024)368 848 y(\020)368
+876 y(\350)387 860 y(\013)379 876 y(Q\345)413 838 y(\013)412
+859 y(\021)416 876 y(\204)439 846 y(\013)432 876 y(\253)25
+b(A)502 846 y(\013)495 876 y(\353)518 832 y(\016)523
+876 y(@)537 860 y(\013)528 876 y(Q)553 835 y(\013)556
+848 y(\011)551 876 y(\257)h(A)612 846 y(\013)605 876
+y(\353)642 833 y(\013)640 843 y(\017)633 876 y(Y)668
+846 y(\013)661 876 y(\253)700 855 y(\013)690 876 y(\360)757
+832 y(\013)741 876 y(\310)778 849 y(\013)781 862 y(\011)770
+876 y(Q)794 841 y(\013)797 853 y(\011)793 876 y(K)830
+850 y(\013)829 860 y(\017)832 876 y(\325)o(\347)862 832
+y(\014)861 853 y(\021)861 876 y(')896 865 y(.)915 835
+y(\023)914 848 y(\020)912 876 y(\351)936 855 y(\013)929
+876 y(\252\202)991 848 y(\020)991 876 y(\035)992 891
+y(\013)1031 876 y(A)1050 846 y(\013)1043 876 y(\353)1079
+843 y(\013)1071 876 y(Y)1113 849 y(\013)1099 876 y(g)1116
+888 y(.)1148 855 y(\013)1137 876 y(\361)1168 835 y(\013)1170
+848 y(\011)1165 876 y(\257)1203 865 y(,)1239 858 y(\024)1222
+876 y(I)1243 891 y(.)1270 876 y(\273)1274 891 y(\013)1302
+876 y(@)1319 860 y(\013)1307 876 y(P)1359 855 y(\013)1348
+876 y(\361)1383 846 y(\014)1376 876 y(\353)1408 855 y(\013)1398
+876 y(\360)1454 846 y(\014)1452 876 y(\350)1471 849 y(\013)1463
+865 y(Q)1485 876 y(\036)1485 888 y(\012)1499 876 y(\324)1501
+891 y(\013)1528 838 y(\013)1514 865 y(g)1581 833 y(\013)1580
+843 y(\017)1573 876 y(Y)1608 846 y(\013)1601 876 y(\253)e(\365)1663
+902 y(\013)1685 876 y(K)1685 888 y(\012)1703 876 y(Q)1712
+905 y(\013)1740 822 y(\013)1738 832 y(\017)1726 876 y(\242)q(\313)t(@)
+240 957 y Fc(-)m Fd(am)n(\024)-22 b(s)-5 b(\026)-20 b(\020)16
+b(wa-)s Fc(-)m Fd(aksibu)j(h)611 967 y(.)634 957 y(im\026)-25
+b(aran,)20 b Fc(-)m Fd(afd)877 967 y(.)899 957 y(alu)e(min)j
+Fc(-)m Fd(an)f Fc(-)m Fd(arkaba)e(wa-)s Fc(-)m Fd(ah)1445
+997 y(\025)1480 957 y(sara)e(h)1590 967 y(.)1612 957
+y(im\026)-25 b(aran.)643 1030 y Fb(.)656 1041 y(@)673
+1026 y(\023)661 1041 y(P)t(A)700 1012 y(\013)699 1041
+y(\324)713 1030 y(g)727 1050 y(\013)774 1026 y(\013)765
+1041 y(Q)q(\345)800 1023 y(\013)803 1041 y(\204)839 1013
+y(\011)819 1041 y(k)855 981 y(\013)855 997 y(\015)856
+1041 y(@)871 1020 y(\013)861 1041 y(\360)930 1023 y(\013)912
+1041 y(I)933 1056 y(.)964 997 y(\013)960 1041 y(\273)-8
+b(P)1002 981 y(\013)1002 997 y(\015)1004 1041 y(@)1050
+1019 y(\011)1039 1041 y(\340)1069 981 y(\013)1069 997
+y(\015)1070 1041 y(@)1117 1030 y(\011)1104 1041 y(\341\323)1140
+1056 y(\013)1198 997 y(\014)1181 1041 y(\311)1232 1000
+y(\013)1235 1013 y(\011)1215 1041 y(\222)1260 1013 y(\011)1254
+1041 y(\257)1273 981 y(\013)1273 997 y(\015)1275 1041
+y(@)1305 1030 y(,)1324 1041 y(@)1341 1026 y(\023)1329
+1041 y(P)t(A)1368 1012 y(\013)1367 1041 y(\324)1380 1030
+y(g)1394 1050 y(\013)1458 1023 y(\014)1440 1041 y(I)1461
+1056 y(.)1488 1041 y(\202)1503 1056 y(\013)1524 1041
+y(\273)1556 981 y(\013)1556 997 y(\015)1557 1041 y(@)1572
+1020 y(\013)1562 1041 y(\360)25 b(\372)1624 1073 y(\012)1638
+1041 y(\346)1656 1024 y(\021)1660 1041 y(\204)1657 1076
+y(\013)1678 1041 y(\323)1699 981 y(\013)1699 997 y(\015)1701
+1041 y(@)640 1152 y Fe(\014)623 1196 y(\311)q(J)661 1208
+y(.)685 1142 y(\013)684 1152 y(\017)671 1196 y(\242)q(\313)t(@)736
+1175 y(\013)726 1196 y(\360)784 1164 y(\014)775 1196
+y(Y)803 1152 y(\013)803 1196 y(\313)822 1175 y(\013)811
+1196 y(\361)o(\313)853 1152 y(\013)855 1196 y(@)20 b
+Fd(al-waladu)f(wa-'t)1189 1206 y(.)1208 1196 y(-t)1223
+1206 y(.)1242 1196 y(ablu)237 1269 y(t)235 1279 y(.)253
+1269 y(alaba)24 b(waladun)g(min)i Fc(-)m Fd(ab)-5 b(\026)-20
+b(\020hi)25 b Fc(-)m Fd(an)f(ya)n(\024)-22 b(stariya)20
+b(lahu)k(t)1244 1279 y(.)1263 1269 y(ablan)g(s)1397 1279
+y(.)1418 1269 y(a)t(_)-19 b(g)-5 b(\026)-20 b(\020ran.)22
+b(fa-rafad)1735 1279 y(.)1758 1269 y(a)164 1329 y('l-w\026)-25
+b(alidu,)19 b(wa-q\026)-25 b(ala)19 b(lahu:)f(y\026)-25
+b(a)17 b(bunayya,)g(law-i)168 1413 y Fb(\361)179 1445
+y(\013)196 1369 y(\013)196 1413 y(\313)229 1401 y(,)260
+1387 y(\013)259 1397 y(\017)247 1413 y(\372)259 1445
+y(\012)281 1377 y(\013)284 1390 y(\011)273 1413 y(\346)297
+1389 y(\014)295 1413 y(K)299 1425 y(.)335 1413 y(A)348
+1389 y(\013)347 1413 y(K)347 1425 y(\012)382 1401 y(:)404
+1383 y(\014)404 1413 y(\351)421 1369 y(\013)421 1413
+y(\313)473 1369 y(\013)457 1413 y(\310)s(A)501 1372 y(\013)499
+1385 y(\020)498 1413 y(\257)528 1392 y(\013)518 1413
+y(\360)565 1401 y(,)592 1380 y(\014)583 1413 y(Y\313)612
+1428 y(\013)626 1413 y(@)643 1392 y(\013)631 1413 y(\361\313)t(@)741
+1372 y(\013)744 1385 y(\011)708 1413 y(\221)765 1372
+y(\013)767 1385 y(\011)762 1413 y(\257)791 1397 y(\013)782
+1413 y(Q)808 1372 y(\013)811 1385 y(\011)805 1413 y(\257)843
+1401 y(.)856 1413 y(@)870 1386 y(\023)861 1401 y(Q)884
+1413 y(\036)884 1425 y(\012)908 1393 y(\011)898 1413
+y(\252)905 1428 y(\013)943 1383 y(\013)923 1413 y(\223)26
+b(C)1008 1369 y(\023)1022 1413 y(J)1026 1425 y(.)1049
+1369 y(\013)1036 1413 y(\243)1096 1383 y(\014)1096 1413
+y(\351)1113 1369 y(\013)1113 1413 y(\313)1162 1397 y(\013)1149
+1413 y(\370)1161 1439 y(\012)1190 1401 y(Q)1198 1430
+y(\013)1214 1372 y(\013)1212 1385 y(\020)1212 1413 y(\036)1241
+1396 y(\021)1226 1413 y(\202)1265 1383 y(\013)1263 1413
+y(\035)1263 1425 y(\012)1314 1390 y(\011)1302 1413 y(\340)1333
+1352 y(\013)1333 1369 y(\015)1334 1413 y(@)j(\351)1371
+1428 y(\013)1388 1413 y(J)1388 1425 y(\012)1403 1413
+y(K)1407 1425 y(.)1404 1435 y(\013)1419 1352 y(\013)1419
+1369 y(\015)1420 1413 y(@)1467 1401 y(\011)1454 1413
+y(\341)o(\323)1489 1428 y(\013)1537 1380 y(\024)1530
+1413 y(Y)1558 1369 y(\013)1558 1413 y(\313)1576 1392
+y(\013)1566 1413 y(\360)1635 1394 y(\013)1617 1413 y(I)1638
+1428 y(.)1666 1369 y(\013)1665 1413 y(\312)1691 1369
+y(\013)1679 1413 y(\243)164 1489 y Fd(')n(\024)-22 b(staraytu)16
+b(laka)i(t)469 1499 y(.)487 1489 y(ablan)h(fa-sawfa)e(tuza)s
+Fc(,)m Fd(i)o(\024)-24 b(gun\026)f(a)19 b(bi-s)1099 1499
+y(.)1119 1489 y(awtihi.)996 1550 y Fb(.)1013 1561 y(\351)1013
+1576 y(\013)1030 1539 y(\020)1030 1561 y(K)1031 1576
+y(\013)1047 1561 y(\361)1093 1532 y(\013)1076 1561 y(\222\035)1119
+1573 y(.)1116 1584 y(\013)1155 1561 y(A)1168 1526 y(\013)1171
+1539 y(\011)1167 1561 y(J)1193 1532 y(\014)1181 1561
+y(j)1196 1573 y(.)1217 1561 y(&\253)1225 1590 y(\013)1255
+1534 y(\013)1258 1547 y(\011)1246 1561 y(Q)1270 1526
+y(\014)1269 1539 y(\020)1269 1561 y(K)1342 1520 y(\013)1344
+1533 y(\011)1309 1561 y(\254)-5 b(\361)1397 1543 y(\013)1382
+1561 y(\202)1421 1520 y(\013)1424 1533 y(\011)1418 1561
+y(\257)27 b(C)1481 1517 y(\023)1495 1561 y(J)1499 1573
+y(.)1522 1517 y(\013)1509 1561 y(\243)1583 1517 y(\013)1566
+1561 y(\275)1600 1517 y(\013)1600 1561 y(\313)1656 1532
+y(\014)1654 1544 y(\020)1637 1561 y(I)o(K)1685 1573 y(\012)1712
+1534 y(\013)1703 1550 y(Q)1727 1520 y(\013)1726 1533
+y(\020)1726 1561 y(\036)1757 1544 y(\021)1740 1561 y(\203)r(@)237
+1634 y Fd(q\026)-25 b(ala)17 b('l-waladu:)g(l\026)-25
+b(a)16 b(ta)t(_)-19 b(gd)677 1644 y(.)700 1634 y(ab)17
+b(y\026)-25 b(a)18 b Fc(-)m Fd(ab)-5 b(\026)-20 b(\020.)16
+b(l\026)-25 b(a)19 b Fc(-)m Fd(ut)1030 1644 y(.)1048
+1634 y(abbilu)e(bihi,)i Fc(-)m Fd(ill\026)-25 b(a)17
+b(wa-)s Fc(-)m Fd(anta)f(n\026)-25 b(a)s Fc(-)m Fd(imun.)629
+1713 y Fb(.)639 1709 y(\024)642 1724 y(\325)o(\347)672
+1700 y(\015)671 1724 y(')672 1756 y(\013)688 1724 y(A)701
+1689 y(\013)704 1702 y(\011)700 1724 y(K)757 1695 y(\013)756
+1707 y(\020)739 1724 y(I)791 1702 y(\011)787 1724 y(K)803
+1664 y(\013)803 1681 y(\015)805 1724 y(@)820 1703 y(\013)810
+1724 y(\360)25 b(B)878 1670 y(\013)877 1681 y(\017)895
+1724 y(@)894 1743 y(\015)894 1753 y(\013)926 1713 y(,)948
+1724 y(\351)948 1739 y(\013)965 1724 y(K)969 1736 y(.)966
+1747 y(\013)1021 1681 y(\014)1004 1724 y(\311)1038 1690
+y(\017)1040 1700 y(\013)1038 1724 y(J)1043 1736 y(.)1065
+1681 y(\013)1052 1724 y(\243)1086 1664 y(\014)1086 1681
+y(\015)1087 1724 y(@)g(B)1139 1681 y(\013)1174 1713 y(.)1187
+1724 y(\372)1198 1756 y(\012)1212 1724 y(G)1217 1756
+y(.)1214 1767 y(\013)1229 1664 y(\013)1229 1681 y(\015)1230
+1724 y(@)g(A)1277 1700 y(\013)1276 1724 y(K)1276 1736
+y(\012)1315 1724 y(I)1336 1739 y(.)1380 1683 y(\013)1383
+1696 y(\011)1363 1724 y(\222)1413 1705 y(\011)1403 1724
+y(\252)1430 1689 y(\013)1428 1702 y(\020)1428 1724 y(K)g(B)1486
+1681 y(\013)1521 1713 y(:)1548 1692 y(\014)1539 1724
+y(Y)1568 1681 y(\013)1568 1724 y(\313)1587 1703 y(\013)1575
+1724 y(\361\313)t(@)1668 1681 y(\013)1652 1724 y(\310)s(A)1696
+1683 y(\013)1694 1696 y(\020)1693 1724 y(\257)237 2473
+y Fa(Decem)o(b)q(er)15 b(1,)h(1998)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/language/arabic/arabtex/examples/guha.tex b/language/arabic/arabtex/examples/guha.tex
index 710e4c2387..e409693883 100644
--- a/language/arabic/arabtex/examples/guha.tex
+++ b/language/arabic/arabtex/examples/guha.tex
@@ -1,59 +1,59 @@
-\documentstyle[12pt,arabtex,atrans,nashbf]{article}
-\sloppy
-%\parskip = 5mm
-\frenchspacing
-\pagestyle{empty}
-\begin{document}
-
-\setarab \transtrue
-\setnashbf \Large
-% Anekdoten
-\centerline {<nawAdiru>}
-
-% Juha und die 10 Esel
-
-\normalsize
-\transtrue
-\centerline {<^gu.hA wa-.hamIruhu al-`a^saraTu>}
-
-\setnash
-\begin{arabtext}
-i^starY ^gu.hA `a^saraTa .hamIriN.
-fari.ha bihA wa-sAqahA 'amAmahu,
-_tumma rakiba wA.hidaN minhA.
-wa-fI al-.t.tarIqi `adda .hamIrahu wa-huwa rAkibuN,
-fa-wa^gadahA tis`aTaN.
-_tumma nazala wa-`addahA fa-ra'AhA `a^saraTuN fa-qAla:
-
-'am^sI wa-'aksibu .himAraN,
-'af.dalu min 'an 'arkaba wa-'a_hsara .himAraN.
-\end{arabtext}
-
-\bigskip
-
-% das Kind und die Trommel
-
-\setnashbf
-\centerline {<al-waladu wa-al-.t.tablu>}
-
-\setnash
-\begin{arabtext}
-
-.talaba waladuN min 'abIhi 'an ya^stariya lahu .tablaN .sa.gIraN.
-fa-rafa.da al-wAlidu, wa-qAla lahu: yA bunayya,
-law-i i^staraytu laka .tablaN fa-sawfa tuza`i|^gunA bi-.sawtihi.
-
-qAla al-waladu: lA ta.g.dab yA 'abI.
-lA 'u.tabbilu bihi, 'illA wa-'anta nA'imuN.
-\end{arabtext}
-
-\rm
-\vfill \today
-\end{document}
-
-
-
-
-
-
-
+\documentstyle[12pt,arabtex,atrans,nashbf]{article}
+\sloppy
+%\parskip = 5mm
+\frenchspacing
+\pagestyle{empty}
+\begin{document}
+
+\setarab \transtrue
+\setnashbf \Large
+% Anekdoten
+\centerline {<nawAdiru>}
+
+% Juha und die 10 Esel
+
+\normalsize
+\transtrue
+\centerline {<^gu.hA wa-.hamIruhu al-`a^saraTu>}
+
+\setnash
+\begin{arabtext}
+i^starY ^gu.hA `a^saraTa .hamIriN.
+fari.ha bihA wa-sAqahA 'amAmahu,
+_tumma rakiba wA.hidaN minhA.
+wa-fI al-.t.tarIqi `adda .hamIrahu wa-huwa rAkibuN,
+fa-wa^gadahA tis`aTaN.
+_tumma nazala wa-`addahA fa-ra'AhA `a^saraTuN fa-qAla:
+
+'am^sI wa-'aksibu .himAraN,
+'af.dalu min 'an 'arkaba wa-'a_hsara .himAraN.
+\end{arabtext}
+
+\bigskip
+
+% das Kind und die Trommel
+
+\setnashbf
+\centerline {<al-waladu wa-al-.t.tablu>}
+
+\setnash
+\begin{arabtext}
+
+.talaba waladuN min 'abIhi 'an ya^stariya lahu .tablaN .sa.gIraN.
+fa-rafa.da al-wAlidu, wa-qAla lahu: yA bunayya,
+law-i i^staraytu laka .tablaN fa-sawfa tuza`i|^gunA bi-.sawtihi.
+
+qAla al-waladu: lA ta.g.dab yA 'abI.
+lA 'u.tabbilu bihi, 'illA wa-'anta nA'imuN.
+\end{arabtext}
+
+\rm
+\vfill \today
+\end{document}
+
+
+
+
+
+
+
diff --git a/language/arabic/arabtex/examples/ligtable.tex b/language/arabic/arabtex/examples/ligtable.tex
index 35105d845c..6fa941521b 100644
--- a/language/arabic/arabtex/examples/ligtable.tex
+++ b/language/arabic/arabtex/examples/ligtable.tex
@@ -1,172 +1,172 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Tabelle aller Zeichenverbindungen
-% Stand 27.01.1992
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\documentstyle[arabtex]{article}
-\pagestyle{myheadings}
-\thispagestyle{empty}
-\parskip=5mm
-\parindent=0mm
-\setarab
-
-\begin{document}
-{\huge \bf Arab\TeX\ Ligatures \hfil \today }
-\markright{Arab\TeX\ Ligatures \hfil \today }
-
-\novocalize
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen \fw \newcount \nf
-
-\def \tableformat #1*{% Tabellenformat berechnen
-% columns
-\fw \hsize \advance \fw -3pt \relax
-\nf 1
-\ctfd #1,\end
-\divide \fw \nf }
-
-\def \ctfd #1,#2\end{% Felder zaehlen
-\advance \nf 1
-\ifx #2\relax \relax \let \next \relax
-\else \def \next {\ctfd #2\end }%
-\fi \next }
-
-\def \enter #1\end {% Element eintragen
-\hbox to \fw {\hss <#1>\hss }%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \tableline #1*#2*#3*#4*{% eine Zeile eintragen
-% beg row columns end
-%\hrule
-%\leavevmode
-%\hrule
-\hbox {%
-\ifx #2A\enter -a#4\end \else
-\enter -#2#4\end
-\fi
-\vrule
-\addtoline #1*#2*#3,*#4*%
-}
-%\hrule
-\typeout{#2 * #3}% Statusmeldung
-}
-
-\def \addtoline #1*#2*#3,#4*#5*{% Tabellenelemente eintragen
-% beg row column columns end
-\ifx #2A\enter #1#3#2#5\end
-\else \enter #1#3a#2#5\end
-\fi
-\ifx #4\relax \relax \let \next \relax
-\else \def \next {\addtoline #1*#2*#4*#5*}%
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifcon
-
-\def \testcon #1#2*{% pruefe ob verbindbar
-\contrue
-\ifx #1A\confalse \else
-\ifx #1E\confalse \else
-\ifx #1d\confalse \else
-\ifx #1r\confalse \else
-\ifx #1z\confalse \else
-\ifx #1w\confalse \else
-\ifx #1_\ifx #2d\confalse \fi \else
-\ifx #1^\ifx #2z\confalse \fi \else
-\ifx #2\relax \relax \else
-\testcon #2*%
-\fi\fi\fi\fi\fi\fi\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \addlines #1*#2*#3*#4*{% Zeilenblock aufbauen
-% beg rows columns end
-\addrow #1*#2,*#3*#4*}
-
-\def \addrow #1*#2,#3*#4*#5*{% Zeilen eintragen
-% beg row rows columns end
-\ifx #5\relax \relax \contrue
- \tableline #1*#2*#4*#5*% eine Zeile
-\else \testcon #2*%
- \ifcon
- \tableline #1*#2*#4*#5*% eine Zeile
- \fi
-\fi
-\ifx #3\relax \relax \let \next \relax
-\else \def \next {\addrow #1*#3*#4*#5*}% weiter
-% \ifcon \\
-% \fi
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ligtab #1*#2*#3*#4*{% Tabelle ausgeben
-% beg rows columns end
-{\offinterlineskip \tableformat #3*% Format aufbauen
-\leavevmode
-\tableline #1*-*#3**% Kopfzeile eintragen
-\hrule
-%\tracingmacros = 1 %
-\addlines #1*#2*#3*#4*% Tabellenrumpf eintragen
-\tracingmacros = 0 %
-}}
-
-\def \ligtable #1#2{% alle Tabellen
-% rows columns
-\expandafter \ligtabi #2*#1*}
-
-\def \ligtabi #1*#2*{% erstes Argument explizit
-% columns rows
-\expandafter \ligtabii #2*#1*}
-
-\def \ligtabii #1*#2*{% beide Argumente explizit
-% rows columns
-
-%Anfangsform -- Endform
-initial form to final form
-
-\ligtab *#1*#2**%
-
-%Mittelform -- Endform
-medial form to final form
-
-\ligtab -*#1*#2**%
-
-\newpage
-%Anfangsform -- Mittelform
-initial form to medial form
-
-\ligtab *#1*#2*-*%
-
-\newpage
-%Mittelform -- Mittelform
-medial form to medial form
-
-\ligtab -*#1*#2*-*%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \crow {A,p,_t,^c,_h,_d,^z,^s,.d,.z,.g,q,k,l,m,n,h,w,y,E,%
-lA,p^c,m^c,h^c,hm,py,pm,hE}
-
-\def \ccol {p,_t,^c,^s,.d,.z,.g,q,k,l,m,h}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\huge
-\Huge
-\Large
-
-\ligtable \crow \ccol
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\tracingmacros=0
-\end{document}
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Tabelle aller Zeichenverbindungen
+% Stand 27.01.1992
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentstyle[arabtex]{article}
+\pagestyle{myheadings}
+\thispagestyle{empty}
+\parskip=5mm
+\parindent=0mm
+\setarab
+
+\begin{document}
+{\huge \bf Arab\TeX\ Ligatures \hfil \today }
+\markright{Arab\TeX\ Ligatures \hfil \today }
+
+\novocalize
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen \fw \newcount \nf
+
+\def \tableformat #1*{% Tabellenformat berechnen
+% columns
+\fw \hsize \advance \fw -3pt \relax
+\nf 1
+\ctfd #1,\end
+\divide \fw \nf }
+
+\def \ctfd #1,#2\end{% Felder zaehlen
+\advance \nf 1
+\ifx #2\relax \relax \let \next \relax
+\else \def \next {\ctfd #2\end }%
+\fi \next }
+
+\def \enter #1\end {% Element eintragen
+\hbox to \fw {\hss <#1>\hss }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \tableline #1*#2*#3*#4*{% eine Zeile eintragen
+% beg row columns end
+%\hrule
+%\leavevmode
+%\hrule
+\hbox {%
+\ifx #2A\enter -a#4\end \else
+\enter -#2#4\end
+\fi
+\vrule
+\addtoline #1*#2*#3,*#4*%
+}
+%\hrule
+\typeout{#2 * #3}% Statusmeldung
+}
+
+\def \addtoline #1*#2*#3,#4*#5*{% Tabellenelemente eintragen
+% beg row column columns end
+\ifx #2A\enter #1#3#2#5\end
+\else \enter #1#3a#2#5\end
+\fi
+\ifx #4\relax \relax \let \next \relax
+\else \def \next {\addtoline #1*#2*#4*#5*}%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifcon
+
+\def \testcon #1#2*{% pruefe ob verbindbar
+\contrue
+\ifx #1A\confalse \else
+\ifx #1E\confalse \else
+\ifx #1d\confalse \else
+\ifx #1r\confalse \else
+\ifx #1z\confalse \else
+\ifx #1w\confalse \else
+\ifx #1_\ifx #2d\confalse \fi \else
+\ifx #1^\ifx #2z\confalse \fi \else
+\ifx #2\relax \relax \else
+\testcon #2*%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \addlines #1*#2*#3*#4*{% Zeilenblock aufbauen
+% beg rows columns end
+\addrow #1*#2,*#3*#4*}
+
+\def \addrow #1*#2,#3*#4*#5*{% Zeilen eintragen
+% beg row rows columns end
+\ifx #5\relax \relax \contrue
+ \tableline #1*#2*#4*#5*% eine Zeile
+\else \testcon #2*%
+ \ifcon
+ \tableline #1*#2*#4*#5*% eine Zeile
+ \fi
+\fi
+\ifx #3\relax \relax \let \next \relax
+\else \def \next {\addrow #1*#3*#4*#5*}% weiter
+% \ifcon \\
+% \fi
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ligtab #1*#2*#3*#4*{% Tabelle ausgeben
+% beg rows columns end
+{\offinterlineskip \tableformat #3*% Format aufbauen
+\leavevmode
+\tableline #1*-*#3**% Kopfzeile eintragen
+\hrule
+%\tracingmacros = 1 %
+\addlines #1*#2*#3*#4*% Tabellenrumpf eintragen
+\tracingmacros = 0 %
+}}
+
+\def \ligtable #1#2{% alle Tabellen
+% rows columns
+\expandafter \ligtabi #2*#1*}
+
+\def \ligtabi #1*#2*{% erstes Argument explizit
+% columns rows
+\expandafter \ligtabii #2*#1*}
+
+\def \ligtabii #1*#2*{% beide Argumente explizit
+% rows columns
+
+%Anfangsform -- Endform
+initial form to final form
+
+\ligtab *#1*#2**%
+
+%Mittelform -- Endform
+medial form to final form
+
+\ligtab -*#1*#2**%
+
+\newpage
+%Anfangsform -- Mittelform
+initial form to medial form
+
+\ligtab *#1*#2*-*%
+
+\newpage
+%Mittelform -- Mittelform
+medial form to medial form
+
+\ligtab -*#1*#2*-*%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \crow {A,p,_t,^c,_h,_d,^z,^s,.d,.z,.g,q,k,l,m,n,h,w,y,E,%
+lA,p^c,m^c,h^c,hm,py,pm,hE}
+
+\def \ccol {p,_t,^c,^s,.d,.z,.g,q,k,l,m,h}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\huge
+\Huge
+\Large
+
+\ligtable \crow \ccol
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\tracingmacros=0
+\end{document}
+
diff --git a/language/arabic/arabtex/examples/malay.ps b/language/arabic/arabtex/examples/malay.ps
index 485c66277c..8cc4aade71 100644
--- a/language/arabic/arabtex/examples/malay.ps
+++ b/language/arabic/arabtex/examples/malay.ps
@@ -1,387 +1,387 @@
-%!PS-Adobe-2.0
-%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
-%%Title: malay.dvi
-%%CreationDate: Tue Feb 03 19:12:09 1998
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe malay -pj:F:\TMP\dv2.mfj
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource: TeX output 1998.02.03:1911
-%%BeginProcSet: texc.pro
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
-userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/malay.dvi)
-@start /Fa 8 247 df<1220123C123FEA7F80A2EAFF00A2127E121E1202090A808809>
-9 D<5A13E013F8487EA2485AA26C5A12001310EA2008EA3C0F003F13C0387F9FE0A238FF
-3FC0A2387E1F80EA1E07EA020013147F9215>17 D<903807FFFC017FEBFFFE90B712FCA3
-485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB
-0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CECF03C489038FE3F80
-A2D81001137F123002FC90C8FCA23970003C0F91CAFCA2EC078000F014F0A2140FA26C5C
-A214016C90CAFCA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC0
-14FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC037
-45809830>120 D<EB01FCEB07FF011F13C0497F497FD9FFE0C9FC49CAFC13F85B485AA3
-7F16C06DEB03806D130F6CB4133FDAC07FC8FC6DB5FC5D7F6D13F86D13E0010313806D90
-C9FCEB03FC495AEB0FE0495A495A013ECAFC5B5B485A5B485A5B48CBFCA2120E120CA25A
-A212101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13
-E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8
-C7FC9138003FC0375180A42C>168 D<1B70F201F0F207E01A1FF2FFC01903190F073F13
-809638FFFC00060313F0060F13C04E90C7FCF07FFC943801FFE04D13804D48C8FCEF0FF8
-EF1FE0604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015001230A283
-0070167CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91B65A7E7E6C
-5E00015ED8003F4ACAFC010714E04C3F80BB42>184 D<168016C016E0150116F0A2ED03
-F8A2ED01FCA2150016FE167E1218163E12100030153F161FA21270A2160FA212F0160E7E
-A2160C7EA26C1518007F15386D14786D14F0D83FF0130301FCEB1FE0391FFF80FF6C90B5
-12C06C15806C15006C5C6C6C13F8011F13E0010390C7FC282C809B28>224
-D<EC07E0EC0FF84A7E81815C16801470EC783FED1FC0ECFC0F02FE13E0ECFFC715FF80A2
-6E13F0801407140191C7FCA616E0A2150116C01503A2ED0780150FED1F00157EEC01FEEC
-07FCEC1FF849B45A013F5BB65A6C5C000149C7FC380003F8242D819424>240
-D<1840187018FE84601701A260EF003C1804EF080294380E038094381FC7F0F0E7F8F0C7
-F0EF3FCFA2F08FE0EF0781943800802095C8FCA519FC4EB4FC4E13C01AF0A2601AF8F00F
-0FF103FC1981F01FC3000818FF121884001019BC0030711338F003FE0070EF00F8F10030
-A31A601AE0190100F0F003C0190FF11F806C187F953801FF006CEF0FFE6CEF7FFC6C6C92
-380FFFF801E00203B55A6CB4010FB612C091B8C7FC6C17FC6C17E06C94C8FC000316F0C6
-6C4AC9FC010F49CAFC464280BF46>246 D E /Fb 8 127 df<133013FCEA03FF000F13C0
-003F13F0387FCFF838FF03FCEAFE0138F8007C00701338160A79AB25>94
-D<EB1FFCEB7FFF48B512804814C03807F00FEA0FC0391F800780393F000300003E90C7FC
-5AA212FC5AA77E127CA26CEB01C0003FEB03E0EA1F80380FC0073907F03FC06CB512806C
-14006C6C5AEB1FF01B1F7B9E25>99 D<90383FC0FE9038FFF3FF4890B512805AD807F013
-8F3A0FC03F0700391F801F80EB000F4880003E1307A5003F130F6C5CEB801F6C6C48C7FC
-EBF0FEEBFFFC485B001E5BEB3FC090C9FCA2121F7EEBFFFE6CEBFFC04814F04880393F00
-03FC007CEB007E0078141E00F8141F4880A46C5C0078141E007E147E6C6C485A391FF00F
-F86CB55A000314C0C691C7FCEB1FF821307E9E25>103 D<387FC0FE38FFE3FF01EF7F6C
-B57E0003EB87E0EBFE039038F801F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C01
-0F1380221F7F9E25>110 D<387FC1FE39FFE7FF8001EF7F6CB57E0003EB07F09038FC01
-F89038F8007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038FF07F0
-ECFFE001EF5B01E790C7FCEBE1FC01E0C8FCACEA7FFFB57EA26C90C8FC212F7F9E25>
-112 D<397FF00FFE39FFF81FFFA2397FF00FFE390F8001F0000714E0A2EBC003000314C0
-A2EBE00700011480A2EBF00F00001400A26D5AEB781EA2EB7C3EEB3C3CA2EB3E7CEB1E78
-A2EB1FF86D5AA36D5A6D5A201F7E9E25>118 D<397FF00FFE39FFF81FFFA2397FF00FFE
-39078001F015E013C01203EC03C013E01201EC0780EA00F0A29038F80F001378A2EB7C1E
-133CA26D5AA3EB0F38147813075CA213035CA35CA213075CA2130F91C7FC123CEA7E1E13
-3E5BEA7FF8123FEA1FE0EA0F80202F7E9E25>121 D<3803E006380FF00F381FF83F383F
-FE7E387E7FFC38FC1FF838F00FF0386007C018087AAB25>126 D
-E /Fc 8 122 df<126012F0A27E1278127C123C123E121EA2121F7E7F12077F1203A27F
-12017F12007F1378A2137C133C133E131E131F7FA21480130714C0130314E01301A2EB00
-C013277DA21A>92 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA
-3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
-D<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7FC12
-70A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>101
-D<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>108
-D<387CE0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F
-1F00191580941A>I<3807FB80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA
-07FE38003F801307386001C012E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A
->115 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00
-141C7F9B1A>I<387F83FC38FFC7FE387F83FC380E00E0A27EEB01C0A2EA0381EB838013
-C31201EBC700EA00E7A213E61366136E133CA31338A35BA2EA30F0EA78E01271EA7FC06C
-5A001EC7FC17207F941A>121 D E /Fd 40 122 df<EB1FC0EB7020EBC0103801803800
-031378EA0700143091C7FCA7B512F8380700781438B2397FE1FF80192380A21B>12
-D<132013401380EA01005A12061204120CA25AA25AA312701260A312E0AE1260A3127012
-30A37EA27EA2120412067E7EEA0080134013200B327CA413>40 D<7E12407E7E12187E12
-041206A27EA2EA0180A313C01200A313E0AE13C0A312011380A3EA0300A21206A2120412
-0C5A12105A5A5A0B327DA413>I<127012F812FCA212741204A41208A21210A212201240
-060F7C840E>44 D<127012F8A3127005057C840E>46 D<EA01F0EA071CEA0C06487E0038
-1380A2387001C0A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA071C
-EA01F013227EA018>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018>I<
-EA03F8EA0C1EEA100F38200780004013C0127813031307123800001380A214005B130C13
-38EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8A200F013C01240EB078012
-2038100F00EA0C1CEA03F013227EA018>51 D<137EEA01C138030080380601C0EA0C0312
-1C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380EB01C012F014E0
-A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F013227EA018>54
-D<127012F8A312701200AB127012F8A3127005157C940E>58 D<497EA3497EA3EB05E0A2
-EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B51280EB0007A20002EB03C0A3
-48EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA225>65
-D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF138014
-601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
-D<D8FFC0EB03FF000F15F0000715E0D805E01305A2D804F01309A301781311A36D1321A3
-6D1341A26D1381A39038078101A3EB03C2A2EB01E4A3EB00F8A31470120E001FEC03F03A
-FFE0203FFF28227EA12D>77 D<EB0FE0EB783CEBE00E3903C0078039078003C0390F0001
-E0000E1300001E14F0481478A2007C147CA20078143CA200F8143EA90078143C007C147C
-A2003C1478003E14F8001E14F06CEB01E0A239078003C03903C007803900E00E00EB783C
-EB0FE01F247DA226>79 D<B512F0380F803C0007130FEC078015C0140315E0A615C01407
-1580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA121>I<007FB512F839780780
-780060141800401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123
->84 D<397FF803FF390FE001F83907C000E06C6C5B00015CEBF001D800F890C7FCEB7802
-EB7C04133EEB1E08EB1F10EB0FB0EB07A014C06D7E130180497EEB0278EB047CEB0C3EEB
-081EEB101F496C7E140701407F496C7E1401D801007F486D7E5AD81F807F3AFFC003FFC0
-22227FA125>88 D<EA1FE0EA3038EA780C130EEA30071200A313FFEA07C7EA1E07123C12
-78127000F01308A3130FEA7817383C2390380FC1E015157E9418>97
-D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C141EA7141C14
-3C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703380C078012
-1C383803000078C7FC127012F0A712700078134012386C1380380C0100EA0706EA01F812
-157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0
-A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FCEA0707380C
-0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012386C13406C
-138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7FCA9EAFFF8
-0007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E38380700A20078
-1380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381FFFC06C13E0
-383000F0481330481318A400601330A2003813E0380E03803803FE0015217F9518>I<12
-0E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF18237FA21B>I<
-121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<120E12FE121E12
-0EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1CEA0E1E130E7F1480EB03C0
-130114E0EB00F014F838FFE3FE17237FA21A>107 D<120E12FE121E120EB3ADEAFFE00B
-237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C00E0A2000E1338AF3A
-FFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F0070A2120EAF38FFE7FF
-18157F941B>I<EA01FCEA0707380C0180381800C0003813E0481370A200F01378A70070
-1370007813F0003813E0381C01C0380E038038070700EA01FC15157F9418>I<EA0E1F38
-FE61C0380E8060380F0070000E1338143CA2141EA7143CA21438000F1370380E80E0EB41
-C0EB3F0090C7FCA9EAFFE0171F7F941B>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120E
-AD120FEAFFF010157F9413>114 D<EA0F88EA3078EA601812C01308A212E0EAF000127F
-EA3FE0EA0FF0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413
->I<1202A41206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E
-13>I<000E137038FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F1815
-7F941B>I<38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100
-A2EA00E2A31374A21338A3131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814
-E0000E1410EB0260147000071420EB04301438D803841340EB8818141CD801C81380EBD0
-0C140E3900F00F00497EA2EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C0
-6C1380EB8100EA0383EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201C0
-000413E0EA0C00383E01F038FF03FE17157F941A>I<38FF80FE381E00781430000E1320
-A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F0
-5B12F10043C7FC123C171F7F941A>I E /Fe 14 122 df<1238127C12FEA3127C123807
-0774861F>46 D<1238127C12FEA3127C12381200AC1238127C12FEA3127C1238071A7499
-1F>58 D<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C0FFF5B
-38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38381E3C
-383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE38007FF8EB
-1FC019257DA41F>64 D<EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB3FF8EA
-01FF1207381FE078EA3E005A12785AA4007813F8EA7E036CB512E0000F133F3803FC0F1B
-1A7D991F>97 D<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C13005AA212
-7012F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80161A7C
-991F>99 D<90387C0F803901FF3FC00007EBFFE0380F83F1D81F0113C0391E00F0004813
-78A66C5BEA1F01380F83E048B45A001D90C7FCEA1C7C003CC8FCA37E381FFFE06C13F814
-FE487F393C003F8048130FEC07C0481303A40078EB0780A2003EEB1F00381F807E6CB45A
-000313F038007F801B287E991F>103 D<137013F8A3137090C7FCA7EA7FF812FF127FEA
-0078B3A2B512F8A315267BA51F>105 D<EA7F8012FF127F1207A8903887FFC015E015C0
-9038807E005CEB81F8EB83F0EB87E0EB8FC0EB9F8001BFC7FC13FF808013F3EBE3E0EBC1
-F0138080147C143C80141F397FF87FE039FFFCFFF0397FF87FE01C257FA41F>107
-D<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C0F9038FE3F80B5EA7FC0381F
-CFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3EBC7F11E1A80991F>I<13FC
-EA03FF481380381F87E0EA1E01383C00F0007C13F800781378A248133CA76C137C007813
-78A2007C13F8003C13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>111
-D<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25BA35BAC38
-7FFFE0B5FC7E1A1A7E991F>114 D<137013F0A6387FFFFEB5FCA2D800F0C7FCADEC0780
-A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>116 D<397FF0FFE0486C13F06C4813
-E0390F800F000007131EA2EA03C05CA2EA01E0147C1478EA00F0A25C1378A2EB38E01339
-133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383EEA7C3C137C5BEA7FF06C5AEA0F
-801C277F991F>121 D E /Ff 41 128 df<EB3F80EBE1E03801C070380380780007133C
-130048133EA5143C1478147014E0EB03C038FF1E00EB0380380F01C0EB00E01470147814
-3CA2143EA2141E141FA8141E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>25
-D<127812FCA212FEA2127A1202A41204A31208A212101220124007127B8510>44
-D<EAFFFEA30F037F8E14>I<137E3801C380380700E0000E1370001E1378001C1338003C
-133CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C133800
-1E1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF
-12F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001
-F01260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB07
-801400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FC
-A216287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA13
-07381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F0
-1260383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
-D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
-3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
-121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
-A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
-A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
-00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
-3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
-381C0F00EA0FFEEA03F818297EA71D>57 D<14101438A3147CA314BEA3EB011FA3903802
-0F80A201047F1407A201087F1403A2496C7EA3496C7EA390387FFFFCA29038C0007E4913
-3EA248C7123F81A20002EC0F80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C
->65 D<B6FC15C0390FC003F00007EB00F881157E153E153FA6153E157E157C5D4A5AEC07
-E090B512809038C001F06E7E153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000F
-EB01F8B65A158022297DA829>I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED
-03E0ED01F0A2ED00F8A216FC167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED
-0780ED1F00153E0007EB01FCB612F0158027297EA82D>68 D<B7FCA23907E0003F000314
-07ED03801501A21500A416405CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391
-C7FC1640A416C0A215011503ED07800007143FB7FCA223297EA828>I<02FF13100107EB
-E03090381FC07890393E000C7001F8EB06F048481303484813014848130048481470A248
-C812305A123E1610127EA2007C150012FCA892B5FC127C007EEC03F01501123EA2123F7E
-6C7EA26C7E6C7E6C6C13026C7E013EEB0C7090391FC03830903907FFE0100100EB800028
-2B7DA92E>71 D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
-D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
-18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
-153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
-D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
-A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
-23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
-7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
-7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
-8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
-7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
-ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
-FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
-0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
-387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
-7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
-00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
-007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
-0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
-147E90380FFFF0A229297FA82C>89 D<EA03FCEA0C0738100380383C01C0003E7F6D7E12
-1C1208C7FCA3137FEA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880
-381E0C7F3907F01E001A1A7E991D>97 D<13FC38038780380701C0000E13E0EA1C00003C
-13F0A2481378A212F8A2B512F800F8C7FCA51278A26C1308A26C1310000E13206C134038
-01C18038007E00151A7E991A>101 D<131FEB70C0EBE1E0EA01C31203EB81C038078080
-1400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA912>I<140F3901FC30803807074338
-0E03C3001EEBC100486C7EA2007C7FA5003C5BA26C485A000E5BD81707C7FCEA11FC0030
-C8FCA47E381FFF806C13F06C7F3818007C48131E0070130E00607F12E0A40070130EA26C
-5B6C5B380781E0C6B4C7FC19287E9A1D>I<121E123FA4121EC7FCA9120FB4FCA2121F7E
-B3A2EAFFF0A20C297EA811>105 D<120FB4FCA2121F7EACECFFC0A2EC7E0014305C1440
-5C0103C7FC1304130C131E133E135F138FEB0780801303806D7E1300801478147C147E39
-FFF1FFE0A21B2A7EA91F>107 D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F
-07F007F03AFF183818389039201C201C3A1F400E400E000F010F130F01801380A2010013
-00B13BFFF0FFF0FFF0A22C1A7E9931>I<380F07F038FF1838EB201C381F400E000F130F
-1380A21300B139FFF0FFF0A21C1A7E9921>I<137E3803C3C0380700E0000E1370481338
-003C133CA248131EA200F8131FA80078131EA26C133CA2001C13386C13706C13E03803C3
-C038007E00181A7E991D>I<380F0F8038FF11C0EB23E0EA1F43EA0F83EB81C0EB800090
-C7FCB07FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA3003EA600112E01300A27E
-6C1300127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0A2130112C0A200E01380
-130300F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203A21207120F381FFF80B5
-FC38078000AD1440A73803C08012013800E100133E12257FA417>I<000F130FB413FFA2
-001F131F6C7FB05CA26C132F3903804F803901C08FF038007F0F1C1A7E9921>I<3AFFF3
-FF83FEA23A1F803C00F8D80F001460EB801C0007011E1340A2D9C02E13C00003012F1380
-A23A01E04701001581A23900F0838215C2A290387901C415E4137B90383E00E815F8A201
-1C1370A20118133001081320271A7F992A>119 D<39FFF01FF0A2390F8007800007EB03
-001402A26C6C5AA2EBE00C00011308A26C6C5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80
-A26DC7FCA31306A21304A2130C1308A2EA701012F85BA2485AEA6180001FC8FC1C267F99
-1F>121 D<B612F01C0180901D>123 D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA8
-1D>127 D E /Fg 14 122 df<1518153CA3157EA315FFA39138019F80A39138030FC0A2
-02077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A13
-1FA201038191C7120FA249B67EA20106C71207496E7EA3496E7EA201388101301400A201
-70810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB
-3C>65 D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170C
-A21503A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706
-A5170EA2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
-D<D8FFF893381FFF806D5E0003F0E00000016001BE166FA3019F16CFA3D98F80EC018FA2
-D987C0EC030FA3D983E01406A3D981F0140CA3D980F81418A2027C1430A36E1460A36E14
-C0A391390F800180A2913907C00300A3913803E006A36E6C5AA36E6C5AA2ED7C30A36F5A
-A36F5AA3486C6D5A487E486C6DC7487EB50307B51280A2413B7CBA49>77
-D<EC03FF91381E01E09138F0003CD903C0130F49486D7E49C76C7E013EEC01F0496E7E49
-157C484881A24848810007178049150F000F17C0491507001F17E0A248C9EA03F0A34817
-F8007E1601A300FE17FCAB007E17F8007F1603A46C17F06D1507001F17E0A26D150F000F
-17C0000717806D151F000317006C6C153E6D157E0000167C017C5D6D4A5A010FEC03C06D
-6C495AD903E0011FC7FCD900F8137C91381E01E0DA03FFC8FC363D7CBB3E>79
-D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
-00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>84
-D<267FFFE0903807FFF8A20003018001011380C690C8EAFE00491578017F15706D6C1460
-5F6D6C13016D6C5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E027F137091383F80
-605EEC1FC191380FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B7EA2913801DFC0
-9138038FE0150F91380607F091380E03F8140C4A6C7E91383800FE14304A137F02E06D7E
-5C49486D7E01036E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E0130157E017015
-7F01F0ED3F80D803F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C>88
-D<EB3F803801C0F03803003C00047F000C7F486D7E001C80003E1303003F80A3121EC7FC
-A3143FEB0FF3EB7E03EA01F8EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407A200
-7C130B127E003E903811F0C06C13603A07C1807F803A00FE003E0023257CA427>97
-D<EA03E012FFA212071203B3EC3FC0ECE0789038E3001C01E6130F01E8EB078001F8EB03
-C049EB01E04914F0150016F8A216FC167CA2167EA9167CA216FC16F8A2ED01F016E06D13
-0301D814C001C8EB07800184EB0E0001835B903881C0F09038003F80273C7EBB2C>I<ED
-0F80EC03FFA2EC001F150FB3EB03F8EB1E07903870018F9038E0004FD803C0132F484813
-1F120F90C7120F5A123EA2127E127CA212FCA9127CA2127E123EA2121E121F6C141F6C6C
-133F6C6C136F6C6C13CF3A0070018FC090393C0E0FFEEB07F0273C7DBB2C>100
-D<1207EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F1207B3ACEA0FE0EAFF
-FEA20F397DB815>105 D<EA07C012FFA2120F1207B3B3B1EA0FE0EAFFFEA20F3C7DBB15>
-108 D<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201E8130716C013F0A2
-5BB3A6486CEB0FE0B50081B5FCA228257EA42C>110 D<3803E03E00FF13C39038E10780
-3907E20FC0EA03E413E8EC0780EC030001F0C7FCA35BB3A5487EB512C0A21A257EA41E>
-114 D<D8FFFEEB0FFFA2D807F0EB07F86C48EB03E0ED01C06C7E16807F0000EC0300A201
-7C1306A2137E013E5BA2013F131C6D1318A26D6C5AA2ECC07001071360A26D6C5AA214F1
-01015BA2D900FBC7FCA214FF147EA2143CA31418A25CA35CA214E05C1218383C0180127E
-49C8FCA2EA7C06EA300CEA1C38EA07E028367FA42A>121 D E end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 627 475 a Fg(Old)27 b(Mala)n(y)g(in)f(ArabT)1328
-494 y(E)1374 475 y(X)853 647 y Ff(Klaus)19 b(Lagally)742
-722 y(Institut)e(f)r(\177)-31 b(ur)19 b(Informatik)724
-796 y(Breit)n(wiesenstra\031e)f(20{22)797 871 y(D-70565)i(Stuttgart)873
-946 y(GERMANY)677 1020 y Fe(mailto:lagally)o(k@ac)o(m.or)o(g)823
-1160 y Ff(August)f(06,)h(1997)162 1290 y Fd(There)g(is)g(a)h(new)f
-(ArabT)643 1300 y(E)671 1290 y(X)g(language)h(mo)q(de,)f
-Fc(\\setmalay)p Fd(,)e(for)i(pro)q(cessing)i(Old)e(Mala)o(y)162
-1350 y(texts)c(in)g(the)g(extended)f(Arabic)g(writing.)162
-1434 y(This)h(mo)q(de)g(w)o(orks)g(only)g(with)g(ArabT)895
-1444 y(E)922 1434 y(X)g(v)o(ersion)g(3.06)h(or)f(later.)162
-1517 y(Old)k(Mala)o(y)h(input)f(texts)h(are)g(enco)q(ded)g(in)f(a)h(mo)
-q(di\014cation)f(of)h(the)g(standard)h(ArabT)1835 1528
-y(E)1862 1517 y(X)162 1578 y(enco)q(ding,)16 b(see)g(b)q(elo)o(w.)162
-1661 y(This)f(language)h(mo)q(de)e(is)h(strictly)e(exp)q(erimen)o(tal)f
-(and)k(exp)q(ected)e(to)h(con)o(tain)g(man)o(y)e(errors.)162
-1722 y(Please)19 b(rep)q(ort)h(y)o(our)g(exp)q(erience)e(and)i
-(suggestions)h(for)f(c)o(hanges)g(and)g(impro)o(v)o(em)o(en)o(ts)d(to)
-162 1782 y(the)f(author.)162 1866 y(Additional)f(enco)q(dings)i(\(note)
-g(the)f(v)m(arian)o(ts\):)p 845 1939 372 2 v 844 2053
-2 114 v 888 2004 a Fb(p)p 1091 2053 V 197 w Fa(\366)p
-1215 2053 V 844 2179 2 127 v 888 2130 a Fb(g)p 1091 2179
-V 1153 2069 a Fa(\011)1124 2130 y(\270)p 1215 2179 V
-844 2293 2 114 v 888 2244 a Fb(v)p 1091 2293 V 1153 2215
-a Fa(\011)1138 2244 y(\360)p 1215 2293 V 844 2415 2 122
-v 870 2366 a Fb(ng)49 b(~g)p 1091 2415 V 1146 2321 a
-Fa(\021)1134 2366 y(\250)p 1215 2415 V 844 2529 2 114
-v 870 2480 a Fb(ny)g(~n)p 1091 2529 V 1146 2447 a Fa(\021)1136
-2480 y(\340)p 1215 2529 V 844 2642 V 888 2594 a Fb(c)68
-b(^c)p 1091 2642 V 65 w Fa(x)p 1215 2642 V 845 2644 372
-2 v 1018 2744 a Fd(1)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-2.0
+%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
+%%Title: malay.dvi
+%%CreationDate: Tue Feb 03 19:12:09 1998
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%EndComments
+%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe malay -pj:F:\TMP\dv2.mfj
+%DVIPSParameters: dpi=300, compressed, comments removed
+%DVIPSSource: TeX output 1998.02.03:1911
+%%BeginProcSet: texc.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
+userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/malay.dvi)
+@start /Fa 8 247 df<1220123C123FEA7F80A2EAFF00A2127E121E1202090A808809>
+9 D<5A13E013F8487EA2485AA26C5A12001310EA2008EA3C0F003F13C0387F9FE0A238FF
+3FC0A2387E1F80EA1E07EA020013147F9215>17 D<903807FFFC017FEBFFFE90B712FCA3
+485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB
+0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CECF03C489038FE3F80
+A2D81001137F123002FC90C8FCA23970003C0F91CAFCA2EC078000F014F0A2140FA26C5C
+A214016C90CAFCA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC0
+14FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC037
+45809830>120 D<EB01FCEB07FF011F13C0497F497FD9FFE0C9FC49CAFC13F85B485AA3
+7F16C06DEB03806D130F6CB4133FDAC07FC8FC6DB5FC5D7F6D13F86D13E0010313806D90
+C9FCEB03FC495AEB0FE0495A495A013ECAFC5B5B485A5B485A5B48CBFCA2120E120CA25A
+A212101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13
+E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8
+C7FC9138003FC0375180A42C>168 D<1B70F201F0F207E01A1FF2FFC01903190F073F13
+809638FFFC00060313F0060F13C04E90C7FCF07FFC943801FFE04D13804D48C8FCEF0FF8
+EF1FE0604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015001230A283
+0070167CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91B65A7E7E6C
+5E00015ED8003F4ACAFC010714E04C3F80BB42>184 D<168016C016E0150116F0A2ED03
+F8A2ED01FCA2150016FE167E1218163E12100030153F161FA21270A2160FA212F0160E7E
+A2160C7EA26C1518007F15386D14786D14F0D83FF0130301FCEB1FE0391FFF80FF6C90B5
+12C06C15806C15006C5C6C6C13F8011F13E0010390C7FC282C809B28>224
+D<EC07E0EC0FF84A7E81815C16801470EC783FED1FC0ECFC0F02FE13E0ECFFC715FF80A2
+6E13F0801407140191C7FCA616E0A2150116C01503A2ED0780150FED1F00157EEC01FEEC
+07FCEC1FF849B45A013F5BB65A6C5C000149C7FC380003F8242D819424>240
+D<1840187018FE84601701A260EF003C1804EF080294380E038094381FC7F0F0E7F8F0C7
+F0EF3FCFA2F08FE0EF0781943800802095C8FCA519FC4EB4FC4E13C01AF0A2601AF8F00F
+0FF103FC1981F01FC3000818FF121884001019BC0030711338F003FE0070EF00F8F10030
+A31A601AE0190100F0F003C0190FF11F806C187F953801FF006CEF0FFE6CEF7FFC6C6C92
+380FFFF801E00203B55A6CB4010FB612C091B8C7FC6C17FC6C17E06C94C8FC000316F0C6
+6C4AC9FC010F49CAFC464280BF46>246 D E /Fb 8 127 df<133013FCEA03FF000F13C0
+003F13F0387FCFF838FF03FCEAFE0138F8007C00701338160A79AB25>94
+D<EB1FFCEB7FFF48B512804814C03807F00FEA0FC0391F800780393F000300003E90C7FC
+5AA212FC5AA77E127CA26CEB01C0003FEB03E0EA1F80380FC0073907F03FC06CB512806C
+14006C6C5AEB1FF01B1F7B9E25>99 D<90383FC0FE9038FFF3FF4890B512805AD807F013
+8F3A0FC03F0700391F801F80EB000F4880003E1307A5003F130F6C5CEB801F6C6C48C7FC
+EBF0FEEBFFFC485B001E5BEB3FC090C9FCA2121F7EEBFFFE6CEBFFC04814F04880393F00
+03FC007CEB007E0078141E00F8141F4880A46C5C0078141E007E147E6C6C485A391FF00F
+F86CB55A000314C0C691C7FCEB1FF821307E9E25>103 D<387FC0FE38FFE3FF01EF7F6C
+B57E0003EB87E0EBFE039038F801F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C01
+0F1380221F7F9E25>110 D<387FC1FE39FFE7FF8001EF7F6CB57E0003EB07F09038FC01
+F89038F8007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038FF07F0
+ECFFE001EF5B01E790C7FCEBE1FC01E0C8FCACEA7FFFB57EA26C90C8FC212F7F9E25>
+112 D<397FF00FFE39FFF81FFFA2397FF00FFE390F8001F0000714E0A2EBC003000314C0
+A2EBE00700011480A2EBF00F00001400A26D5AEB781EA2EB7C3EEB3C3CA2EB3E7CEB1E78
+A2EB1FF86D5AA36D5A6D5A201F7E9E25>118 D<397FF00FFE39FFF81FFFA2397FF00FFE
+39078001F015E013C01203EC03C013E01201EC0780EA00F0A29038F80F001378A2EB7C1E
+133CA26D5AA3EB0F38147813075CA213035CA35CA213075CA2130F91C7FC123CEA7E1E13
+3E5BEA7FF8123FEA1FE0EA0F80202F7E9E25>121 D<3803E006380FF00F381FF83F383F
+FE7E387E7FFC38FC1FF838F00FF0386007C018087AAB25>126 D
+E /Fc 8 122 df<126012F0A27E1278127C123C123E121EA2121F7E7F12077F1203A27F
+12017F12007F1378A2137C133C133E131E131F7FA21480130714C0130314E01301A2EB00
+C013277DA21A>92 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA
+3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
+D<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7FC12
+70A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>101
+D<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>108
+D<387CE0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F
+1F00191580941A>I<3807FB80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA
+07FE38003F801307386001C012E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A
+>115 D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00
+141C7F9B1A>I<387F83FC38FFC7FE387F83FC380E00E0A27EEB01C0A2EA0381EB838013
+C31201EBC700EA00E7A213E61366136E133CA31338A35BA2EA30F0EA78E01271EA7FC06C
+5A001EC7FC17207F941A>121 D E /Fd 40 122 df<EB1FC0EB7020EBC0103801803800
+031378EA0700143091C7FCA7B512F8380700781438B2397FE1FF80192380A21B>12
+D<132013401380EA01005A12061204120CA25AA25AA312701260A312E0AE1260A3127012
+30A37EA27EA2120412067E7EEA0080134013200B327CA413>40 D<7E12407E7E12187E12
+041206A27EA2EA0180A313C01200A313E0AE13C0A312011380A3EA0300A21206A2120412
+0C5A12105A5A5A0B327DA413>I<127012F812FCA212741204A41208A21210A212201240
+060F7C840E>44 D<127012F8A3127005057C840E>46 D<EA01F0EA071CEA0C06487E0038
+1380A2387001C0A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA071C
+EA01F013227EA018>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018>I<
+EA03F8EA0C1EEA100F38200780004013C0127813031307123800001380A214005B130C13
+38EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8A200F013C01240EB078012
+2038100F00EA0C1CEA03F013227EA018>51 D<137EEA01C138030080380601C0EA0C0312
+1C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380EB01C012F014E0
+A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F013227EA018>54
+D<127012F8A312701200AB127012F8A3127005157C940E>58 D<497EA3497EA3EB05E0A2
+EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B51280EB0007A20002EB03C0A3
+48EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA225>65
+D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF138014
+601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
+D<D8FFC0EB03FF000F15F0000715E0D805E01305A2D804F01309A301781311A36D1321A3
+6D1341A26D1381A39038078101A3EB03C2A2EB01E4A3EB00F8A31470120E001FEC03F03A
+FFE0203FFF28227EA12D>77 D<EB0FE0EB783CEBE00E3903C0078039078003C0390F0001
+E0000E1300001E14F0481478A2007C147CA20078143CA200F8143EA90078143C007C147C
+A2003C1478003E14F8001E14F06CEB01E0A239078003C03903C007803900E00E00EB783C
+EB0FE01F247DA226>79 D<B512F0380F803C0007130FEC078015C0140315E0A615C01407
+1580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA121>I<007FB512F839780780
+780060141800401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123
+>84 D<397FF803FF390FE001F83907C000E06C6C5B00015CEBF001D800F890C7FCEB7802
+EB7C04133EEB1E08EB1F10EB0FB0EB07A014C06D7E130180497EEB0278EB047CEB0C3EEB
+081EEB101F496C7E140701407F496C7E1401D801007F486D7E5AD81F807F3AFFC003FFC0
+22227FA125>88 D<EA1FE0EA3038EA780C130EEA30071200A313FFEA07C7EA1E07123C12
+78127000F01308A3130FEA7817383C2390380FC1E015157E9418>97
+D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C141EA7141C14
+3C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703380C078012
+1C383803000078C7FC127012F0A712700078134012386C1380380C0100EA0706EA01F812
+157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0
+A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FCEA0707380C
+0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012386C13406C
+138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7FCA9EAFFF8
+0007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E38380700A20078
+1380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381FFFC06C13E0
+383000F0481330481318A400601330A2003813E0380E03803803FE0015217F9518>I<12
+0E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF18237FA21B>I<
+121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<120E12FE121E12
+0EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1CEA0E1E130E7F1480EB03C0
+130114E0EB00F014F838FFE3FE17237FA21A>107 D<120E12FE121E120EB3ADEAFFE00B
+237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C00E0A2000E1338AF3A
+FFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F0070A2120EAF38FFE7FF
+18157F941B>I<EA01FCEA0707380C0180381800C0003813E0481370A200F01378A70070
+1370007813F0003813E0381C01C0380E038038070700EA01FC15157F9418>I<EA0E1F38
+FE61C0380E8060380F0070000E1338143CA2141EA7143CA21438000F1370380E80E0EB41
+C0EB3F0090C7FCA9EAFFE0171F7F941B>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120E
+AD120FEAFFF010157F9413>114 D<EA0F88EA3078EA601812C01308A212E0EAF000127F
+EA3FE0EA0FF0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413
+>I<1202A41206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E
+13>I<000E137038FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F1815
+7F941B>I<38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100
+A2EA00E2A31374A21338A3131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814
+E0000E1410EB0260147000071420EB04301438D803841340EB8818141CD801C81380EBD0
+0C140E3900F00F00497EA2EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C0
+6C1380EB8100EA0383EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201C0
+000413E0EA0C00383E01F038FF03FE17157F941A>I<38FF80FE381E00781430000E1320
+A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F0
+5B12F10043C7FC123C171F7F941A>I E /Fe 14 122 df<1238127C12FEA3127C123807
+0774861F>46 D<1238127C12FEA3127C12381200AC1238127C12FEA3127C1238071A7499
+1F>58 D<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C0FFF5B
+38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38381E3C
+383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE38007FF8EB
+1FC019257DA41F>64 D<EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB3FF8EA
+01FF1207381FE078EA3E005A12785AA4007813F8EA7E036CB512E0000F133F3803FC0F1B
+1A7D991F>97 D<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C13005AA212
+7012F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80161A7C
+991F>99 D<90387C0F803901FF3FC00007EBFFE0380F83F1D81F0113C0391E00F0004813
+78A66C5BEA1F01380F83E048B45A001D90C7FCEA1C7C003CC8FCA37E381FFFE06C13F814
+FE487F393C003F8048130FEC07C0481303A40078EB0780A2003EEB1F00381F807E6CB45A
+000313F038007F801B287E991F>103 D<137013F8A3137090C7FCA7EA7FF812FF127FEA
+0078B3A2B512F8A315267BA51F>105 D<EA7F8012FF127F1207A8903887FFC015E015C0
+9038807E005CEB81F8EB83F0EB87E0EB8FC0EB9F8001BFC7FC13FF808013F3EBE3E0EBC1
+F0138080147C143C80141F397FF87FE039FFFCFFF0397FF87FE01C257FA41F>107
+D<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C0F9038FE3F80B5EA7FC0381F
+CFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3EBC7F11E1A80991F>I<13FC
+EA03FF481380381F87E0EA1E01383C00F0007C13F800781378A248133CA76C137C007813
+78A2007C13F8003C13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>111
+D<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25BA35BAC38
+7FFFE0B5FC7E1A1A7E991F>114 D<137013F0A6387FFFFEB5FCA2D800F0C7FCADEC0780
+A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>116 D<397FF0FFE0486C13F06C4813
+E0390F800F000007131EA2EA03C05CA2EA01E0147C1478EA00F0A25C1378A2EB38E01339
+133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383EEA7C3C137C5BEA7FF06C5AEA0F
+801C277F991F>121 D E /Ff 41 128 df<EB3F80EBE1E03801C070380380780007133C
+130048133EA5143C1478147014E0EB03C038FF1E00EB0380380F01C0EB00E01470147814
+3CA2143EA2141E141FA8141E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>25
+D<127812FCA212FEA2127A1202A41204A31208A212101220124007127B8510>44
+D<EAFFFEA30F037F8E14>I<137E3801C380380700E0000E1370001E1378001C1338003C
+133CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C133800
+1E1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF
+12F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001
+F01260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB07
+801400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FC
+A216287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA13
+07381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F0
+1260383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
+D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
+3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
+121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
+A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
+A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
+00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
+3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
+381C0F00EA0FFEEA03F818297EA71D>57 D<14101438A3147CA314BEA3EB011FA3903802
+0F80A201047F1407A201087F1403A2496C7EA3496C7EA390387FFFFCA29038C0007E4913
+3EA248C7123F81A20002EC0F80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C
+>65 D<B6FC15C0390FC003F00007EB00F881157E153E153FA6153E157E157C5D4A5AEC07
+E090B512809038C001F06E7E153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000F
+EB01F8B65A158022297DA829>I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED
+03E0ED01F0A2ED00F8A216FC167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED
+0780ED1F00153E0007EB01FCB612F0158027297EA82D>68 D<B7FCA23907E0003F000314
+07ED03801501A21500A416405CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391
+C7FC1640A416C0A215011503ED07800007143FB7FCA223297EA828>I<02FF13100107EB
+E03090381FC07890393E000C7001F8EB06F048481303484813014848130048481470A248
+C812305A123E1610127EA2007C150012FCA892B5FC127C007EEC03F01501123EA2123F7E
+6C7EA26C7E6C7E6C6C13026C7E013EEB0C7090391FC03830903907FFE0100100EB800028
+2B7DA92E>71 D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
+D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
+18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
+153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
+D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
+A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
+23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
+7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
+7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
+8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
+7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
+ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
+FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
+0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
+387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
+7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
+00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
+007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
+0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
+147E90380FFFF0A229297FA82C>89 D<EA03FCEA0C0738100380383C01C0003E7F6D7E12
+1C1208C7FCA3137FEA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880
+381E0C7F3907F01E001A1A7E991D>97 D<13FC38038780380701C0000E13E0EA1C00003C
+13F0A2481378A212F8A2B512F800F8C7FCA51278A26C1308A26C1310000E13206C134038
+01C18038007E00151A7E991A>101 D<131FEB70C0EBE1E0EA01C31203EB81C038078080
+1400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA912>I<140F3901FC30803807074338
+0E03C3001EEBC100486C7EA2007C7FA5003C5BA26C485A000E5BD81707C7FCEA11FC0030
+C8FCA47E381FFF806C13F06C7F3818007C48131E0070130E00607F12E0A40070130EA26C
+5B6C5B380781E0C6B4C7FC19287E9A1D>I<121E123FA4121EC7FCA9120FB4FCA2121F7E
+B3A2EAFFF0A20C297EA811>105 D<120FB4FCA2121F7EACECFFC0A2EC7E0014305C1440
+5C0103C7FC1304130C131E133E135F138FEB0780801303806D7E1300801478147C147E39
+FFF1FFE0A21B2A7EA91F>107 D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F
+07F007F03AFF183818389039201C201C3A1F400E400E000F010F130F01801380A2010013
+00B13BFFF0FFF0FFF0A22C1A7E9931>I<380F07F038FF1838EB201C381F400E000F130F
+1380A21300B139FFF0FFF0A21C1A7E9921>I<137E3803C3C0380700E0000E1370481338
+003C133CA248131EA200F8131FA80078131EA26C133CA2001C13386C13706C13E03803C3
+C038007E00181A7E991D>I<380F0F8038FF11C0EB23E0EA1F43EA0F83EB81C0EB800090
+C7FCB07FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA3003EA600112E01300A27E
+6C1300127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0A2130112C0A200E01380
+130300F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203A21207120F381FFF80B5
+FC38078000AD1440A73803C08012013800E100133E12257FA417>I<000F130FB413FFA2
+001F131F6C7FB05CA26C132F3903804F803901C08FF038007F0F1C1A7E9921>I<3AFFF3
+FF83FEA23A1F803C00F8D80F001460EB801C0007011E1340A2D9C02E13C00003012F1380
+A23A01E04701001581A23900F0838215C2A290387901C415E4137B90383E00E815F8A201
+1C1370A20118133001081320271A7F992A>119 D<39FFF01FF0A2390F8007800007EB03
+001402A26C6C5AA2EBE00C00011308A26C6C5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80
+A26DC7FCA31306A21304A2130C1308A2EA701012F85BA2485AEA6180001FC8FC1C267F99
+1F>121 D<B612F01C0180901D>123 D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA8
+1D>127 D E /Fg 14 122 df<1518153CA3157EA315FFA39138019F80A39138030FC0A2
+02077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A13
+1FA201038191C7120FA249B67EA20106C71207496E7EA3496E7EA201388101301400A201
+70810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB
+3C>65 D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170C
+A21503A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706
+A5170EA2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
+D<D8FFF893381FFF806D5E0003F0E00000016001BE166FA3019F16CFA3D98F80EC018FA2
+D987C0EC030FA3D983E01406A3D981F0140CA3D980F81418A2027C1430A36E1460A36E14
+C0A391390F800180A2913907C00300A3913803E006A36E6C5AA36E6C5AA2ED7C30A36F5A
+A36F5AA3486C6D5A487E486C6DC7487EB50307B51280A2413B7CBA49>77
+D<EC03FF91381E01E09138F0003CD903C0130F49486D7E49C76C7E013EEC01F0496E7E49
+157C484881A24848810007178049150F000F17C0491507001F17E0A248C9EA03F0A34817
+F8007E1601A300FE17FCAB007E17F8007F1603A46C17F06D1507001F17E0A26D150F000F
+17C0000717806D151F000317006C6C153E6D157E0000167C017C5D6D4A5A010FEC03C06D
+6C495AD903E0011FC7FCD900F8137C91381E01E0DA03FFC8FC363D7CBB3E>79
+D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
+00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>84
+D<267FFFE0903807FFF8A20003018001011380C690C8EAFE00491578017F15706D6C1460
+5F6D6C13016D6C5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E027F137091383F80
+605EEC1FC191380FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B7EA2913801DFC0
+9138038FE0150F91380607F091380E03F8140C4A6C7E91383800FE14304A137F02E06D7E
+5C49486D7E01036E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E0130157E017015
+7F01F0ED3F80D803F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C>88
+D<EB3F803801C0F03803003C00047F000C7F486D7E001C80003E1303003F80A3121EC7FC
+A3143FEB0FF3EB7E03EA01F8EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407A200
+7C130B127E003E903811F0C06C13603A07C1807F803A00FE003E0023257CA427>97
+D<EA03E012FFA212071203B3EC3FC0ECE0789038E3001C01E6130F01E8EB078001F8EB03
+C049EB01E04914F0150016F8A216FC167CA2167EA9167CA216FC16F8A2ED01F016E06D13
+0301D814C001C8EB07800184EB0E0001835B903881C0F09038003F80273C7EBB2C>I<ED
+0F80EC03FFA2EC001F150FB3EB03F8EB1E07903870018F9038E0004FD803C0132F484813
+1F120F90C7120F5A123EA2127E127CA212FCA9127CA2127E123EA2121E121F6C141F6C6C
+133F6C6C136F6C6C13CF3A0070018FC090393C0E0FFEEB07F0273C7DBB2C>100
+D<1207EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F1207B3ACEA0FE0EAFF
+FEA20F397DB815>105 D<EA07C012FFA2120F1207B3B3B1EA0FE0EAFFFEA20F3C7DBB15>
+108 D<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201E8130716C013F0A2
+5BB3A6486CEB0FE0B50081B5FCA228257EA42C>110 D<3803E03E00FF13C39038E10780
+3907E20FC0EA03E413E8EC0780EC030001F0C7FCA35BB3A5487EB512C0A21A257EA41E>
+114 D<D8FFFEEB0FFFA2D807F0EB07F86C48EB03E0ED01C06C7E16807F0000EC0300A201
+7C1306A2137E013E5BA2013F131C6D1318A26D6C5AA2ECC07001071360A26D6C5AA214F1
+01015BA2D900FBC7FCA214FF147EA2143CA31418A25CA35CA214E05C1218383C0180127E
+49C8FCA2EA7C06EA300CEA1C38EA07E028367FA42A>121 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 627 475 a Fg(Old)27 b(Mala)n(y)g(in)f(ArabT)1328
+494 y(E)1374 475 y(X)853 647 y Ff(Klaus)19 b(Lagally)742
+722 y(Institut)e(f)r(\177)-31 b(ur)19 b(Informatik)724
+796 y(Breit)n(wiesenstra\031e)f(20{22)797 871 y(D-70565)i(Stuttgart)873
+946 y(GERMANY)677 1020 y Fe(mailto:lagally)o(k@ac)o(m.or)o(g)823
+1160 y Ff(August)f(06,)h(1997)162 1290 y Fd(There)g(is)g(a)h(new)f
+(ArabT)643 1300 y(E)671 1290 y(X)g(language)h(mo)q(de,)f
+Fc(\\setmalay)p Fd(,)e(for)i(pro)q(cessing)i(Old)e(Mala)o(y)162
+1350 y(texts)c(in)g(the)g(extended)f(Arabic)g(writing.)162
+1434 y(This)h(mo)q(de)g(w)o(orks)g(only)g(with)g(ArabT)895
+1444 y(E)922 1434 y(X)g(v)o(ersion)g(3.06)h(or)f(later.)162
+1517 y(Old)k(Mala)o(y)h(input)f(texts)h(are)g(enco)q(ded)g(in)f(a)h(mo)
+q(di\014cation)f(of)h(the)g(standard)h(ArabT)1835 1528
+y(E)1862 1517 y(X)162 1578 y(enco)q(ding,)16 b(see)g(b)q(elo)o(w.)162
+1661 y(This)f(language)h(mo)q(de)e(is)h(strictly)e(exp)q(erimen)o(tal)f
+(and)k(exp)q(ected)e(to)h(con)o(tain)g(man)o(y)e(errors.)162
+1722 y(Please)19 b(rep)q(ort)h(y)o(our)g(exp)q(erience)e(and)i
+(suggestions)h(for)f(c)o(hanges)g(and)g(impro)o(v)o(em)o(en)o(ts)d(to)
+162 1782 y(the)f(author.)162 1866 y(Additional)f(enco)q(dings)i(\(note)
+g(the)f(v)m(arian)o(ts\):)p 845 1939 372 2 v 844 2053
+2 114 v 888 2004 a Fb(p)p 1091 2053 V 197 w Fa(\366)p
+1215 2053 V 844 2179 2 127 v 888 2130 a Fb(g)p 1091 2179
+V 1153 2069 a Fa(\011)1124 2130 y(\270)p 1215 2179 V
+844 2293 2 114 v 888 2244 a Fb(v)p 1091 2293 V 1153 2215
+a Fa(\011)1138 2244 y(\360)p 1215 2293 V 844 2415 2 122
+v 870 2366 a Fb(ng)49 b(~g)p 1091 2415 V 1146 2321 a
+Fa(\021)1134 2366 y(\250)p 1215 2415 V 844 2529 2 114
+v 870 2480 a Fb(ny)g(~n)p 1091 2529 V 1146 2447 a Fa(\021)1136
+2480 y(\340)p 1215 2529 V 844 2642 V 888 2594 a Fb(c)68
+b(^c)p 1091 2642 V 65 w Fa(x)p 1215 2642 V 845 2644 372
+2 v 1018 2744 a Fd(1)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/language/arabic/arabtex/examples/omar.tex b/language/arabic/arabtex/examples/omar.tex
index 1929cb2955..77378979b0 100644
--- a/language/arabic/arabtex/examples/omar.tex
+++ b/language/arabic/arabtex/examples/omar.tex
@@ -1,37 +1,37 @@
-\documentstyle[12pt,arabtex]{article}
-\parindent=0pt \textheight=25cm \pagestyle{empty}
-\begin{document}
-\null \vskip -2cm
-\setfarsi \novocalize \Large
-%
-\begin{arabtext}
-gUyand kasAn behe^st bA .hUr _hO^s ast \\
-man mIgUyam keh 'Ab-i angUr _hO^s ast \\
-In naqd begIr wa-dast az 'An nesiyeh bedAr \\
-k-'AwAz-i dohol ^sanIdan az dUr _hO^s ast. \\
-<\hskip 4cm> *** \\
-%
-dUrI keh dar 'Amadan wa-raftane mAst \\
-U-rA neh nehAyat neh bedAyat peydAst \\
-kas mI nazand damI darAyn ma`n-I rAst \\
-kAyn 'Amadan az ko^gA wa-raftan ze ko^gAst! \\
-<\hskip 4cm> *** \\
-%
-asrAr-i azal rA neh tO dAnI wa-neh man \\
-wa-yan .harf-i mo`ammA neh tO dAn-I wa-neh man \\
-hast az pase pardeh goftogU-i man wa-tO \\
-^cUn pardeh bar uftad, neh tO mAn-I wa-neh man. \\
-<\hskip 4cm> *** \\
-%
-yek ^cand beh kUdak-I beh ostAd ^sodIm \\
-yek ^cand ze ostAd-I _hOd ^sAd ^sodIm \\
-pAyAn-i so_han ^senow keh mA-rA ^ceh rasId \\
-^cUn 'Ab bar'AmadIm wa-^cUn bAd ^sodIm. \\
-<\hskip 4cm> *** \\
-%
-`umar-i _hayyAm
-%
-\end{arabtext}
-%
-\testoutput
-\end{document}
+\documentstyle[12pt,arabtex]{article}
+\parindent=0pt \textheight=25cm \pagestyle{empty}
+\begin{document}
+\null \vskip -2cm
+\setfarsi \novocalize \Large
+%
+\begin{arabtext}
+gUyand kasAn behe^st bA .hUr _hO^s ast \\
+man mIgUyam keh 'Ab-i angUr _hO^s ast \\
+In naqd begIr wa-dast az 'An nesiyeh bedAr \\
+k-'AwAz-i dohol ^sanIdan az dUr _hO^s ast. \\
+<\hskip 4cm> *** \\
+%
+dUrI keh dar 'Amadan wa-raftane mAst \\
+U-rA neh nehAyat neh bedAyat peydAst \\
+kas mI nazand damI darAyn ma`n-I rAst \\
+kAyn 'Amadan az ko^gA wa-raftan ze ko^gAst! \\
+<\hskip 4cm> *** \\
+%
+asrAr-i azal rA neh tO dAnI wa-neh man \\
+wa-yan .harf-i mo`ammA neh tO dAn-I wa-neh man \\
+hast az pase pardeh goftogU-i man wa-tO \\
+^cUn pardeh bar uftad, neh tO mAn-I wa-neh man. \\
+<\hskip 4cm> *** \\
+%
+yek ^cand beh kUdak-I beh ostAd ^sodIm \\
+yek ^cand ze ostAd-I _hOd ^sAd ^sodIm \\
+pAyAn-i so_han ^senow keh mA-rA ^ceh rasId \\
+^cUn 'Ab bar'AmadIm wa-^cUn bAd ^sodIm. \\
+<\hskip 4cm> *** \\
+%
+`umar-i _hayyAm
+%
+\end{arabtext}
+%
+\testoutput
+\end{document}
diff --git a/language/arabic/arabtex/examples/sindhi.ps b/language/arabic/arabtex/examples/sindhi.ps
index d54cc5f534..1ea87fe3be 100644
--- a/language/arabic/arabtex/examples/sindhi.ps
+++ b/language/arabic/arabtex/examples/sindhi.ps
@@ -1,1313 +1,1313 @@
-%!PS-Adobe-2.0
-%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
-%%Title: sindhi.dvi
-%%CreationDate: Tue Feb 03 19:04:24 1998
-%%Pages: 3
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe sindhi -pj:F:\TMP\dv2.mfj
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource: TeX output 1997.09.30:1404
-%%BeginProcSet: texc.pro
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
-userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/sindhi.dvi)
-@start /Fa 106 251 df<387FFFC0A3B51280A31206818510>5
-D<1238A813F0EA3BF8EA3FFC139CEA3E1CEA7DFCEAFFF813F0EA7F000E1180900D>8
-D<1220123C127F127EA212FE123C12040808818606>I<EA2020EA3C3CEA7F7FEA7E7EA2
-EAFEFEEA3C3CEA04041008808610>I<133813F8EA03F0EA0FE0EA3F80EAFE0012F81260
-0D0880870D>I<137813FCEA01FE13CEA213DE13FC120013F8A21203EA07D0EA1F80EA3E
-0012FC12F012600F1180900D>I<EB0380A2EA01C3EA41C700E11300EAE3FF5BB45A6CC7
-FC123E110A808911>15 D<EA2020EA3C3CEA7F7FEA7E7EA2EAFEFEEA3C3CEA0404100880
-8610>I<1202EA03C0EA07F013E0A2120FEA03C0EA00401300EA2020EA3C3CEA7F7FEA7E
-7EA2EAFEFEEA3C3CEA04041011808F10>I<EA2020EA3C3CEA7F7FEA7E7EA2EAFEFEEA3C
-3CEA0404EA0200EA03C0EA07F013E0A2120FEA03C0EA00401010808610>I<153E157FA2
-4B7EA25CEC038791380707C0EC0F03023E7F02FE13F8D907FCEBFFC090387FF8013807FF
-F0007F496C13800280137F49C7120FD8FFF891C7FC138000F0CAFC2A14819328>25
-D<1308A21318131C133CA57FA57FA25B1480133FEBE7C0007F13FEA213C300FF13FC1381
-38FE007C171A819915>28 D<7FA21201A21203120F127FA3487E12FB12E31203A27F1201
-7FA27FEA00FEEBFFC0A2137FEB3F80131F1307121A819910>30 D<1230123E127F127E12
-FEA2121C0807818606>46 D<1208120C121E121F1380EA3FC013E013F0EA7FE0A3EAFFC0
-127F123FEA1F80120F1207EA03007E0C13758C21>48 D<122012701278A212FCA2127EA2
-7EA27E1380120F13C01207A2EA03E0A3120113F0A21200A41378A61338A41330A21320A2
-0D28749621>I<0060131000701330A200F8132014607E14C0EAFF03EA7FFF14807E6C13
-006C5A13F8EA07C0A36C7EA21201A27F1200A41378A61338A41330A21320A21428779621
->I<0020EB8020D87001136014C00078144039F803E0C014FFD8FE0F1380B6FC6C140013
-FC003F133E49C7FCEA1FE090C8FCA27EA37F1207A41203A27FA51201A65BA290C8FCA21B
-287B9621>I<131813301370EA01F0EA03E01207EA0FC0EA1F80EA1E005A12385A127C12
-FEEAFF8013E0EA7FFC123F120F1203EA00F8A21201EA03F0EA07C0EA0F80EA1F00121E5A
-12385A1278127FEAFFF813FFA2EA7FFE121F1201EA000C1028779621>I<132013701378
-13FC487E487E481380EB3FC0380E1FE0EB0FF0EA1C07381803F8383001FC1300002013FE
-0060137E143EA200E0131E7E140C7EA26C13186C1338387F81F8EBFFF07E6C13E06C13C0
-000313803800FE001720799021>I<38200180EA3C07EA7FFFA3B5FC123FEA0FF3EA0003
-14C0A6EB01E0A514F01300A214F8A21478147CA3143EA2143F141EA2140CA2140418257B
-9321>I<002014040070140C00781418007C143800FE147815F0007F1301393F8003C001
-C01380001F1307D80FE013000007130E3803F00C5CEA01F85C00001320EBFC60EB7C40A2
-6D5AA2131E131FA26DC7FCA57FA31306A21304A21E257E9321>I<5BA25BA25BA380A480
-130FA280130BA2EB19F01311EB31F81320EB60FC147E13C000017F018013800003131FD8
-070013C048EB0FE0001EEB07F04814F8EC03FC4813010070EB00F8006014784814304814
-101E257E9321>I<EA01F8EA07FE487E487FA2487FEA3C1FEA3007486C7EA2130112F0A3
-EAF8007EEAFF03EA7FFFA27E6C7FEA0FFEEA01F8C7FC80A21478147CA2147E143E143F80
-1580EC0FC015801407150080A21A287D9621>I<1270127C127E12FE12FCA2123C1200AA
-1270127EA212FE12FCA2121C07187D970D>I<122012601270A212F012F8A2127CA3127E
-127CA21278A61238A4123CA5121CA4121EA6120EA7120CA21208A207317CB00B>64
-D<1220A21260A212E0A27EA61270A61278A51238A6123CA67EA2121FA21380EA0FC013F8
-A21207EA03F01201EA00700D2F7FAE0D>I<13C0A2EA01E0A213F01203EA01F8A2120013
-FC137CA2133CA2131C1318A2133013F0120FEA7FE0A213C0EAFF80EAFE0012F00E1A8199
-10>71 D<170217071880A20020EE0FC0A2006016071703A212E06CEE0180A27EEF03006C
-5E6C161FD87F80157E01E0EC01FED83FFEEC3FFC6CB75A6C5E6C16C000015E6C6C02FCC7
-FC010314C03219809337>I<1220A21260186018E000E0836C16014D7E6C4C7E4DB4FC6C
-041E13C06CEE7E7FD87F80913801FC3F01E0913907F81F80D83FFE91383FF00F6CB7EAE0
-036C4CC7FC6C93C8FC000115FC6C6C14F0010714803A15808F39>I<1360A313F0120148
-7EEA0FFE387FFFC0A2EA7E7F38FC3F80EAF81FEAE007120D818C10>I<1318A2131C133C
-A5131C1318A21330EA01F0127F13E0A2EAFFC01380EAFC000E13819210>I<15201560A2
-15F0A415F81578A31538A61530A21570156015E0EC01C01403EC0F80143F903801FF00EB
-1FFE3803FFFCB55A000F13E038003FC01D20828B1C>80 D<15101518153EA3157CA2153C
-1538A51570A215F015E01401EC03C01407EC1F80147F903801FF00EB1FFE3803FFFCB55A
-000F13E038003FC01F1C82871C>I<1302EB03C0EB07F05CA2130FEB03C0EB004091C7FC
-A815201560A215F0A415F81578A31538A61530A21570156015E0EC01C01403EC0F80143F
-903801FF00EB1FFE3803FFFCB55A000F13E038003FC01D30829B1C>I<136013F013FC7F
-487E148038007FC0EB3FE0EB0FF01307EB03F813011300A21478A21430A21460EB01E0EA
-3FFF14C05A14801400EAFFFC151A7F9917>88 D<144014C080A21301A280A21300A28014
-78A2147CA3147EA2147F14DF9038019F80EA600390380F8FC039703F0FF0B5EA07FE13FE
-EBFC039038F801FC387FE000D81F80133C1F1E7D9D21>I<EA07C0EA1FF0EA3FF81380EA
-7E00127812701278127C127F13FC123F13F8127FA213F0EAFF80EAFC0012C00E137F9210
->I<90381FFFF048B612FE5EA25A5E3807C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB
-1FC0495A017EC9FC5B13F0485A485A5B48CAFC12065AA25A1210A2123000201320143C00
-60137F147EA200E013FE143C140491C9FC7EA37EA2127CA2127E7E7F6C7E13F06C7EEA07
-FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7FCEC07F8
-2E3A809428>96 D<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF020313FE14
-00140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FCCAFCAA14
-0315C015F014075DA21403EC00402826819328>99 D<EA01F8EBFF8014F04813FEECFFC0
-15F8D8001FEBFF80010114FEEB001F02035B140F023F5B91B5FC010301FCC7FC491380D9
-1FFCC8FCEB3FE0EB7F8001FEC9FCEA01F8485A13C0485A90CAFC120E120CEA1808131F00
-3013C000205B133F006090C9FC130F130300E0CAFCA37EA37EA27E127E127F7FEA3FE07F
-EA1FFC6CB47E6C01F814FC6C90B612F0C61680013FECFC00010F14E0010191C7FC903800
-0FF82E397A930D>I<EB7F803801FFF8000713FF4814C04814F04814FE0100EBFFE0007C
-011F13FF0070010313FE0060130048130F48017F13FC0107B5FC0001B61200007F14E04A
-C7FC14E0B5C8FC13F048C9FC2814819328>103 D<90381FFFF048B612FE5EA25A5E3807
-C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0495A017EC9FC5B13F0485A485A5B48
-CAFC12065AA25A1210A212301220A21260A312E0A47EA37EA2127CA2127E7E7F6C7E13F0
-6C7EEA07FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7
-FCEC07F82E3A809428>I<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF0203
-13FE1400140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FC28
-14819328>107 D<EA01F8EBFF8014F04813FEECFFC015F8D8001FEBFF80010114FEEB00
-1F02035B140F023F5B91B5FC010301FCC7FC491380D91FFCC8FCEB3FE0EB7F8001FEC9FC
-EA01F8485A13C0485A90CAFC120E120C5AA25A1220A21260A312E0A37EA37EA27E127E12
-7F7FEA3FE07FEA1FFC6CB47E6C01F814FC6C90B612F0C61680013FECFC00010F14E00101
-91C7FC9038000FF82E397A930D>I<EA01F8EBFF8014F04813FEECFFC015F8D8001FEBFF
-80010114FEEB001F020313FC140F91B512F8130F48B5EAFE00007F14C002FCC7FC14E048
-48C8FC13F048C9FC2714819306>I<1318131EEB1F80133F91C9FC5B131F130290CAFCA9
-90381FFFF048B612FE5EA25A5E3807C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0
-495A017EC9FC5B13F0485A485A5B48CAFC12065AA25A1210A212301220A21260A312E0A4
-7EA37EA2127CA2127E7E7F6C7E13F06C7EEA07FE3803FFC06C01FC14FC6C6CB612F06D15
-80010FECFC00010314E0D9007F90C7FCEC07F82E4B80A528>112
-D<1410141EEC3F8092C7FCA25C141E140291C8FCAAEBFF8014F814FF4814C015F04814FE
-C7EBFFE0021F13FF020313FE1400140F027F13FC0107B5FC48B61200007F14E04AC7FC14
-E0B5C8FC13F048C9FC282681A528>115 D<90381FFFF048B612FE5EA25A5E3807C03FC7
-B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0495A017EC9FC5B13F0485A485A5B48CAFC12
-065AA25A38100202903803C3C0393007F7F00020EBE7E0A238600FEF903803C3C0903800
-404000E06DC8FC143C147F147E7E14FE143C6C130491C9FC127CA2127E7E7F6C7E13F06C
-7EEA07FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7FC
-EC07F82E3A809428>120 D<EB1FE0EBFFFEECFFE015FC48ECFFC016FF2603C03F5BC712
-03140002075B141F91B512F00103EBFBFC011FEBC1FE3B01FFFE01FFC0007FD9F00013FE
-02C0137F49C7123FD8FFF8EC0FFC01C0140300FCC9127CCBFCAAEC040491380787809138
-0FEFE0EDCFC0EC1FDFA29138078780EC00800340C7FC157815FE5D1401A2EC007815082F
-2F81942D>122 D<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF020313FE14
-00140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FCCAFCAAEC
-3030EC3C3CEC3F3F4A5AEC7E7EA2EC3E3EEC04040203C7FC15C015F014075DA21403EC00
-40282E819328>I<1802EF03071620EE6002EF060F04E0130EEF0F069338F01FFE0301EB
-FFFC93B5FCA2EFF7F80010EEE1F06FEBC0000030037EC7FC00201570A21260A312E01660
-A27EA216406C15C06C5D1501007E1403007F4AC8FCD83FC0131F6D137E391FFC03FE6CB5
-5A6C5C6C5CC614C0013F90C9FCEB07F83828808E37>128 D<1602ED03071420EC400291
-38C0060F160E0101EB0F060103EB1FFE90390FE0FFFC007FB6FCA2EDF7F8D8FFFDEBE1F0
-01F8EBC000D9E07EC7FC280F818E26>131 D<EA0408EA0C1CA3EA1C3C1338123EEA7FF8
-13F0A212FFEAEFE0EAC7C00E0D818C0D>133 D<1704EF0F8018C0A2171F188017071701
-94C7FCEF4040EFF8F8EFFCFCA2EE01FDEFF9F89338007878EF181894C7FCA81802EF0307
-1620EE6002EF060F04E0130EEF0F069338F01FFE0301EBFFFC93B5FCA2EFF7F80010EEE1
-F06FEBC0000030037EC7FC00201570A21260A312E01660A27EA216406C15C06C5D150100
-7E1403007F4AC8FCD83FC0131F6D137E391FFC03FE6CB55A6C5C6C5CC614C0013F90C9FC
-EB07F8384180A737>136 D<1504ED0F8016C0A2151F16801507150192C7FCED4040EDF8
-F8EDFCFCA2EC01FDEDF9F89138007878ED181892C7FCA81602ED03071420EC40029138C0
-060F160E0101EB0F060103EB1FFE90390FE0FFFC007FB6FCA2EDF7F8D8FFFDEBE1F001F8
-EBC000D9E07EC7FC282881A726>139 D<F003F0F01FFCF07FFE95B5FC050314805F9438
-0FF83F030290391FC00F000306EB3F00057E133F030F9038F801FE933801F01F933983E1
-FFFC04E7B55A93B612E0198006FCC7FC001017E06F49C8FC0030ED7F80002092CAFCA212
-60A312E01506A27E15047E150C6C5C007E1438007F5C393FC001F09038F00FE06CB5FC6C
-5C6C5C6C91CBFCC613FCEB1FE0412B809341>144 D<EE0FC0EE3FF0EEFFF8030313FC4B
-13FE151FED3FE0010890387F803C0118EBFE00DA01F813FC903A3C03F007F8913807C03F
-903A7E0F83FFF0D9FF9FB512E0007F90B6128001DFECFE00019F14F0D8FF8F1480010701
-F8C7FC26FE01FEC8FC2F14819330>147 D<1708170FEF1FC060A2173F050FC8FC170194
-C9FCA3F003F0F01FFCF07FFE95B5FC050314805F94380FF83F030290391FC00F000306EB
-3F00057E133F030F9038F801FE933801F01F933983E1FFFC04E7B55A93B612E0198006FC
-C7FC001017E06F49C8FC0030ED7F80002092CAFCA21260A312E01506A27E15047E150C6C
-5C007E1438007F5C393FC001F09038F00FE06CB5FC6C5C6C5C6C91CBFCC613FCEB1FE041
-36809E41>152 D<1530153C153F5D157EA2153E150492C8FCA3EE0FC0EE3FF0EEFFF803
-0313FC4B13FE151FED3FE0010890387F803C0118EBFE00DA01F813FC903A3C03F007F891
-3807C03F903A7E0F83FFF0D9FF9FB512E0007F90B6128001DFECFE00019F14F0D8FF8F14
-80010701F8C7FC26FE01FEC8FC2F1F819E30>155 D<EB01F0EB07F8130F131F5C133FEB
-3C300130CAFC5BA2137013F07F13FE90B812E018F86D16FC6D16FE7F010716FF90CA127F
-181F180FA21806A3181CB912FC123F6C17F81207000117F0D8003F16C0382283A137>I<
-EB01F0EB07F8130F131F5C133FEB3C300130CBFC5BA2137013F07F13FE90B812E018F86D
-826D827F01078290CA7E181F84A21806A3181CBA12E0123F7E000718C01201EA003F3B22
-83A137>I<EB07C0EB1FE0133F137F5C13FF13F001C0CBFC485AA27F12037F13F890B87E
-18E06C836C837F011F8290C91201EF007C183CA21818A31870007FB91280A3BA1200A339
-2281A137>I<EB07C0EB1FE0133F137F5C13FF13F001C0CAFC485AA27F12037F13F890B8
-128018E06C17F06C17F87F011F16FC90C91201EF007C183CA21818A31870007FB812F0A2
-18E0B9FC18C01800362281A137>I<8080A2497EA380A380A45CA25C130080A514701478
-A3EE1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078EC3FF891391F
-F001F89238C00FF0ED80FF030F13E04AB512C0B81200003F15FC6C15E0000792C7FCC614
-F0D91FFCC8FC2E2E81AD2D>I<8080A2497EA380A380A45CA25C130080A514701478A3EE
-1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078EC3FF891391FF001
-F89238C00FF0ED80FF030F13E04AB512C0B812FE123F7E000716FCC614F790391FFC000F
-2F2E81AD2D>I<1360A213F0A37FA37FA45BA313701378A51338133CA3ED0FC0ED7FF090
-391C01FFF8D91E0313FC020F13FE5CEC3FE091387F003C14FC6D4813FC9138E007F8ECC0
-7F913887FFF049B512E0007FB61280EDFE0015F0B6128002F8C7FC49C8FC272D81AC26>
-163 D<8080A2497EA380A380A45CA2ECE00C0100130F02F013C0151F5E153F150FDA7001
-C7FC0278C8FCA3EE1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078
-EC3FF891391FF001F89238C00FF0ED80FF030F13E04AB512C0B81200003F15FC6C15E000
-0792C7FCC614F0D91FFCC8FC2E2E81AD2D>I<1360A213F0A37FA37FA45BA21406903870
-0780017813E0140F5DA214079038380080013C90C7FCA3ED0FC0ED7FF090391C01FFF8D9
-1E0313FC020F13FE5CEC3FE091387F003C14FC6D4813FC9138E007F8ECC07F913887FFF0
-49B512E0007FB61280EDFE0015F0B6128002F8C7FC49C8FC272D81AC26>167
-D<EB07E0EB3FF8EB7FFE90B5FC91C9FCEA01F813E05BA27FA26D13186D13786D13F83900
-FF03F014FF6D5B5D6D5B6D48C8FCEB07F8EB0FE0495A49C9FC137E13F8485A5B485A485A
-90CAFC120E120C121C1218121012301220A21260A312E0A47EA37EA2127CA2127E7E7F6C
-7E13F06C7EEA07FE3803FFC06C01FC14FC6C90B612F0013F1580010FECFC00010314E0D9
-007F90C7FCEC07F82E44809E26>I<EB01FE90380FFFC0013F13F0A3495B14F3EB6FFF01
-075B6D5B013F13F8007FB61280A214EFB500831300EBFC000180131F211181901F>170
-D<EB01F8EB07FF4913804913C090383FC000013EC7FC133C1370A21378A2137C137E9038
-3F800FECE0FF90381FFFFEA26D13FC5B48B512E0007FEBFE0014F01480D8FFFCC7FC13C0
-00FCC8FC201A81991F>I<EF03E0EF07F8EF0FFEA2845F94381C7F80181FEF3E0F0010EE
-3FFFA21230EF1FFB4893380FF300EF03E3EF00031802180600E0170E60183C18F86C1603
-EF0FF06CEE7FE06C923803FFC0B4037F5BD87FF090267FFFFEC7FC90B712F86C16E06C93
-C8FC000715F8000192C9FCD8003F13803922809F39>I<147F495A4913805BA25B140713
-0CEB18031500A2EB3C021406EB3E0EEB3F3C14FC131F007FB512FCA3B612F8EBFE7FEBE0
-0F1E1781961C>174 D<131FEB3FC0EB7FE014F014F813FFEBC3FC13E00001137C13F0EB
-FFFCA214D87EEB7F98EB1F30EB0070EB01F0EB0FE013FF007F13C014801400EAFFFC13F0
-48C7FC161A819915>I<1906191E19FC1803180FF03FF8F0FFF0050313C0050F1300EF3F
-F8EF7FE0933801FF804C48C7FCEE07F8EE0FE017804CC8FC161C5E16305EA316E0A382A5
-821678A21220167C163C1260A2163E00E0151E7EA26C151C6C150CB4153CD87FF0EB03F8
-90B6FC7E6C5D00075D00011580D8003F01F8C9FC3F3580B137>184
-D<1607161E167EED01FEED07FC151FED7FF8913801FFC0020790C7FCEC1FFCEC7FF09038
-01FFC0010790C8FCEB0FFCEB3FF0EB7FC049C9FCEA01FC13F05BEA0380A27F487E7F7F6C
-7E6CB4FC6C7F6D7EEB3FF06D7E6D7E6D7E6D7E816D13E0EC9FF0EC8FF890380307FC496C
-B4FCD91E017FD97E0013E0D803FCEB7FFC007F91381FFFC0497F497FD8FFC00101138090
-C8127F00F8150F2A3281B128>186 D<1607161E167EED01FEED07FC151FED7FF8913801
-FFC002071300EC1FFCEC7FF0903801FFC0010790C7FCEB0FFCEB3FF0EB7FC049C8FCEA01
-FC13F05BEA0380A27F487E7F7F6C7E6CB4FC6C7F137F6D7E131F130F13071303A26D5AA3
-49C8FC5B131E137EEA03FC127F5B5BEAFFC090C9FC12F8283281B11F>I<193019F81803
-F00FE0F03F80F0FE00943803F80694380FE01E94383F80FCEFFE03933803F80F933907E0
-3FF8943880FFF0DC060313C0DC000F1300EF3FF8EF7FE0933801FF804C48C7FCEE07F8EE
-0FE017804CC8FC161C5E16305EA316E0A382A5821678A21220167C163C1260A2163E00E0
-151E7EA26C151C6C150CB4153CD87FF0EB03F890B6FC7E6C5D00075D00011580D8003F01
-F8C9FC3F3B80B737>192 D<193019F81803F00FE0F03F80F0FE00943803F80694380FE0
-1E94383F80FCEFFE03933803F80F933907E03FF8943880FFF0DC060313C0DC000F1300EF
-3FF8EF7FE0933801FF804C48C7FCEE07F8EE0FE017804CC8FC161C5E16305EA316E0A382
-A5821678A21220167C163C1260A2163E00E0151E7E161F6C16E06C93B5FCB45DD87FF001
-03B6FC90B85A6C15FB6CEDF07F00074BC8FC00011580D8003F01F8C9FC3F3B80B737>I<
-16101678ED01F8ED07F0ED1FC0037FC7FC913801FC07913807F01E91381FC07E91387F01
-FE903901FC07FC903807F01F90391FC07FF890397F01FFC02601FC0790C7FC3903F01FFC
-3901C07FF0390001FFC0010790C8FCEB0FFCEB3FF0EB7FC049C9FCEA01FC13F05BEA0380
-A27F487E7F7F6C7E6CB4FC6C7F6D7EEB3FF06D7E6D7E6D7E6D7E816D13E0EC9FF0EC8FF8
-90380307FC496CB4FCD91E017FD97E0013E0D803FCEB7FFC007F91381FFFC0497F497FD8
-FFC00101138090C8127F00F8150F2A3881B728>I<16101678ED01F8ED07F0ED1FC0ED7F
-00913801FC07913807F01E91381FC07E91387F01FE903901FC07FC903807F01F90391FC0
-7FF890397F01FFC02601FC0713003903F01FFC3901C07FF0390001FFC0010790C7FCEB0F
-FCEB3FF0EB7FC049C8FCEA01FC13F05BEA0380A27F487E7F7F6C7E6CB4FC6C7F137F6D7E
-131F130F13071303A26D5AA349C8FC5B131E137EEA03FC127F5B5BEAFFC090C9FC12F828
-3881B71F>I<1640ED01E01507ED3FC0EDFF00EC03FC91381FE00691387F803E903901FE
-00FC90380FF00790393FC01FF89038FF00FF2607F80313F0261FE00F13803A7F807FFE00
-39FC01FFF0D8700713C026001FFEC7FCEB7FF83801FFE0000790C8FCEA0FFCEA1FF0EA3F
-C090C9FC123C1270A212F87EB4FC7F6C7EEA3FF06C7E6C7E6C7E12011200137F7F7F7FA2
-7F1306A35B133CEA01FC5BA2485A5B1380273887B717>199 D<152015601570A215F015
-F8A3157CA61578A51538A4153CA6151CA40004141E120CA25AA20010140E12301220A212
-60A312E0A27E150CA27E15086C1418007E1430007F1470393FC001F09038F00FE06CB5FC
-6C14C06C14806C1400C613FCEB1FE01F3F80AD1F>I<1502A21507A25DA781A582AA6F7E
-A582A282A28216FEEEFF80A30010EDBF00169F0030158700201580A21260A312E093C7FC
-A27E15027E15066C5C007E141C007F5CD83FC013F89038F807F06CB5FC6C5C6C5C6C5CC6
-49C8FCEB1FF0294280AA28>I<5AA2487EA21207A71203A57FA61201A47FA57FA27FA27F
-13FF387F7FC0A2133F38FE1F80130FEAFC03122B81AA10>I<EA0180A2EA03C0A313E0A3
-13F0A21201A213E0A91200A513F0A61370A31360A213E0EA07C0127F1380A2EAFF005A12
-F00C2D81AC0D>I<1302A21307A25BA76D7EAC1303A580A4130780130DEB1DF0EB39FC90
-3879FF8013F1EA01E00003EB7F0048487E381F800F48C8FC127E127C127812E05A5A1932
-81B117>206 D<EB07C0497E497E497EA2497EEBF0FEEBE07E0001137F0003EB3F803907
-F01FE0D87FF813FCEBFE0F90B5FC00FC14F838F87FFE39F03FFC3839000FF800EB03E01E
-1381901C>210 D<14E0EB01F014F8130314FCA2EB067C143E130FEB1F1EEB3F9E137F38
-01FFDE3807EFEC387FE7FC13C7EB83F8EAFF01EAFC0000F013701714819310>212
-D<EC0780EC0FE0EC1FF015F8143FA2EC30F0146FEB03FF011F13E090B5FC1203000F14C0
-003FEBE000D87FF8C7FC13C0007EC8FC12F812E012801D1481931C>215
-D<EC07FF91B512E0010F14F848B612FE007F15FFA29138F003FEB5C7123E01E0140E00FC
-C81204280A81891F>220 D<EB1FC0EB7FF03801FFFC4813FE4813FF5AEBC0FE381F003E
-001C130E4813040030130012201260A312E07EA27EA27EA2127CA21238A21218181B859A
-15>223 D<15101538A2153C157C157EA2153E153F8112108100301580122015071260A3
-00E01403A36C1500A36C140215066C140E007E5C007F143CD83FC013F8EBF8076CB55A6C
-5C6C5C6C5CC649C7FCEB1FF02125809621>I<ED018016E016F0ED03FEA3001015FCA200
-3015DC0020EC01C0A21260A312E01680A27E16005D6C140215066C140E007E5C007F147C
-D83FC05BEBF8076CB55A6C5C6C5C6C91C7FCC65BEB1FF02721808826>I<14F8EB03FCEB
-0FFE133F497E90B5FC3803FE1F3907F80F80EA0FE0391F8007C0D83F0013F0007E14FC00
-781303127048EB01F84813004814381E1181901C>230 D<5BEB0380EB07C0130FA2131F
-A2EB3B801331EB23001367135F13FE1203387FFFFEA338FFDFFC13FF12F93801CFE013E7
-13E3A213E113F1EBF0C0EA00F813FF1480137FA2EB3F00131E1722819315>234
-D<1302EB078014E080EB0FFC806D7E4913804913C015E04913F015F8EB787F9038703DFC
-EC38FE9038F8187E9038FC387F9038FFF03F151FEB7FFC48B5128F007F14FEA215FC38FF
-F87FEBC00F00FCC712F8201B819A1F>I<137C13FF14F0487F80487FEB07FF1383000714
-809038C3BFC0EBEF1F9038FF0FE0EBFE073803FFC34813FB007FEBFFC0A213DFD8FF0313
-8038FC007F00F0EB0F001B15819410>I<147814FE497E158015C05BEC0FE01487EB0783
-ECC3F014F114FFA26D13F87F7F141FEC0038A61570A215F015E01401EC03C01407EC1F80
-147F903801FF00EB1FFE3803FFFCB55A000F13E038003FC01D267F911F>240
-D<143C147F4A7E81A2497F14876E7EEB03C114E1ECF8F814FE91B512E07F7F6E13C0141F
-14039138001C00A55DA21578157015F04A5A1403EC0FC0143F49B45A011F90C7FC3803FF
-FEB55A000F13F038001FC02326819121>I<8317F0EE01FC5FA21603EE00F0171094C8FC
-A5EF03E0EF07F8EF0FFEA2845F94381C7F80181FEF3E0F0010EE3FFFA21230EF1FFB4893
-380FF300EF03E3EF00031802180600E0170E60183C18F86C1603EF0FF06CEE7FE06C9238
-03FFC0B4037F5BD87FF090267FFFFEC7FC90B712F86C16E06C93C8FC000715F8000192C9
-FCD8003F1380392F80AC39>I<1720177C177E17FEA25F173C170C94C8FCA5187E4DB4FC
-00105E4D1380485EA20060EE1F0FEF1C071718943830030012E0A26CEE7806180E6C173E
-6CEE7DFCB4167FD87FC04A485A01F80103B5FC6CB912F87E7E000304E313F0C6EDFC0001
-0F01FCC7121F3D2680A53C>I<EC040491380F8F80EDEFE0EDCFC0EC1FDFED9F80EC0787
-EC018191C8FCA7ED07C0ED0FF0ED1FF816FC16FE153FED30FFED383FED781F157C0010EC
-7FFF123016F70020143F0060EC1FE6ED07C6ED0006160412E0160C1608161816386C1570
-16F06CEC01E06C14076CEC1FC0D87F80EBFF80D9F00713006CB55A6C5C6C14F06C14C000
-0191C7FC38003FF0283380A828>I<17F8EE03FC160F163FEE7FF816FF923801FE18EEF8
-10923803E00016804BC7FC15065D1508A2151812100030143CED3FC0002015FE0060EDFF
-8017C081150700E01400EE07801601EE03005E6C5D163E6C157E4B5A6CEC07F86CEC1FF0
-D87F80EBFFE0D9F00713806CB6C7FC6C14FC6C14F0000314C0C691C8FCEB1FF02E2B7F98
-2D>248 D<4B7E16F016FC00104AB4FC17C0003016E0030013F00020ED3FF80060ED0FFC
-16031601EE007C00E01638A317706CED01F0EE03E06C150F6CED3FC0B4913801FF80D87F
-C0010F130001FCEBFFFC6CB65A6C15E06C1580000302FCC7FCC614E0D90FFEC8FC2E1D80
-851F>250 D E /Fb 2 46 df<EA01E01207121FEA3E00127812705AA512701278123EEA
-1FE0120712010B117CA014>44 D<12F012FCB4FCEA0F80EA03C01201EA00E0A5EA01C012
-03EA0F80EAFF0012FC12F00B117CA014>I E /Fc 33 128 df<EA01E0EA0630EA083812
-18EA103C123012601378A212C013F01200EA01E0A3EA03C0A3EA0780A21381EA0F03A212
-0EEA1E06A21304130CEA0E18EA0630EA03C0101F7A9E16>16 D<14F8EB018CEB020EEB04
-0F130C1318A21330A2EB601EA21300A2143CA41478A414F0A4EB01E0A4EB03C0A4EB0780
-A4EB0F00A2EA380EEA781CEAF8185BEA7060EA3F80182D839E17>I<131C133C137C13F8
-EA01F0EA03C0EA0780EA0F00120E5A5A12605A0E0D68B124>19 D<38C00180EAE0073870
-0E00EA383CEA1C70EA0FE0EA07806CC7FC11086CAC24>I<6C1320A31440A21480130100
-C01300EA4002EA600CEA3038EA1FF0EA0FC0130D6CB124>I<B512FEA2170270A824>I<12
-3C127E12FEA212FCA212700707788616>46 D<121C123E127E12FEA2127C123807076EB0
-16>95 D<EB07C0EB18639038703780EBE0173801C01FD80380130000077FEA0F00A24813
-1E121E123EA2485BA4485BA31510ECF0305AA2D870011320903803E060EA7802D8380413
-C03918086080380C30313907C01E001C1F789E24>97 D<1378EA0FF8121F12005BA4485A
-A4485AA4485AA3EB8F80380F1860EB6070EBC0381380381F003CA2121EA248133EA3143C
-48137CA44813F8A3EB01F0A214E0EB03C01270EB07801400EA300E6C5AEA0C70EA07C017
-3278B120>I<EB03F0EB1C0CEB3806EBF0033801E0073803C00F3807801FA2380F001E48
-1300121E123EA25AA45AA5140400781306140C1418003813306C1360EB01C038060700EA
-03F8181F789E20>I<157CEC07FC140FEC007C1578A415F0A4EC01E0A4EC03C0A3EB07C3
-9038186780EB7037EBE0173801C01FD80380130000077FEA0F00A248131E121E123EA248
-5BA4485BA31510ECF0305AA2D870011320903803E060EA7802D8380413C0391808608038
-0C30313907C01E001E3278B124>I<EB07C0EB3830EBF0183801C00CEA03801207EA0F00
-121E1418123E48133014E0EB078038FFFC0000F8C7FCA35AA51408140C14180070133014
-606C13C038180380380C0E00EA03F0161F779E20>I<15FCEC0186EC0307EC070FEC0F1F
-140EEC1E0E1500A2141C143CA45CA590381FFFE0A2903800F000A3495AA5495AA6495AA5
-49C7FCA45B131EA45BA45BA313701270EAF8E0A2485AEAE1800063C8FC123E204081B116
->I<143EECC31890380381BCEB0700010E13FC4913F8013C13785BA201F813F05B1201A2
-3903E001E0A43907C003C0A4EC07801380A20003130FEC1F0013C00001132F0000134FEB
-619EEB3E1E1300A25CA45CA200385B00785B38F801C0495AD8700EC7FCEA1FF81E2D7D9E
-20>I<131F48B4FC5AEA001F131EA45BA45BA45BA3147E3801E3839038E603809038EC01
-C013F8D803F013E013E0A201C013C0000713031380A3390F000780A3EC0F00121EA2141E
-1502481406143CA2150C48133815181510152048EB18400060EB0F801F327BB124>I<13
-07EB0F80A21400130690C7FCACEA01E0EA0630EA08381218EA103C123012605BA212C05B
-1200485AA3485AA3485AA21381485AA2120EEA1E06A21304130CEA0E18EA0630EA03C011
-307AAF16>I<130F48B4FC5AEA001F131EA45BA45BA45BA3EC03E03901E00430EC1878EC
-20F814403903C080F015E001C1C7FC13C2485A1388139013E0120F137C130FEB0380381E
-01C080A21520003C1460A315400078EBC0C0A2ECC180010013004813620060133C1D327B
-B120>107 D<133CEA07FCA2EA007C1378A413F0A4EA01E0A4EA03C0A4EA0780A4EA0F00
-A4121EA45AA45AA31320EAF060A4EAE0C0A213801261EA7300121E0E3279B112>I<3B07
-C00FC007E03B0C60706038303B1870C07060383B10798038C01C3A307B003980017E9038
-3F001ED8607C133EA20178013C131CD8C0F8017C133C4913781200A24848495BA35F4848
-485AA24C5A182027078003C01460EE03C0A218C0270F0007801380EF818018001783001E
-90390F000184000C0106EB00F8331F7A9E39>I<3907801F803908C060E03918E1807039
-30F3003813F6EA60FC49133CA249133800C114785B1201A248485BA34A5AEA0780A24A5A
-1680D80F0013C1EC0781A21600001E5C15021506150448EB03180018EB01F0211F7A9E27
->I<EB03F0EB0E1CEB3806EB70073901E00380EA03C0018013C01207EA0F005A121E123E
-A2481307A448EB0F80A215005C141EA200785B5C147000385B6C485A380C0380D8060EC7
-FCEA01F81A1F789E24>I<90383E01F0903863030C9038C38C0E903883D807000113F002
-E01380EA030314C0A22606078013C0A21200168090380F000FA4011EEB1F00A3153E5B15
-3C5DA2017C5B017E5B4A5A90387A0380D9F10EC7FCEBF0F891C8FCA2485AA4485AA4485A
-7FEA7FFC12FF222D7F9E24>I<903807C0C09038186180EB7033EBE0173801C01FD80380
-130000077FEA0F00A248131E121E123EA2485BA4485BA45C5AA2EA7001495A1278EA3805
-EA1809380C33C0EA07C3EA0003A2495AA449C7FCA4131E131F3807FFF0A21A2D789E20>
-I<3907C03F80390C60E0E03818718039107B01F0EA307E017C13E0006014C00178C7FCA2
-485AA21200A2485AA4485AA4485AA448C8FCA4121E120C1C1F7A9E1E>I<EB0FE0EB3038
-EBE00C380180061203EB000E48131EA2140C14007F13E013FE3803FF806C13C06C13E0EB
-0FF01301EB00F81478A20070137012F8A24813604813E04813C03840018038600300EA18
-1CEA07F0171F7A9E1D>I<130C131E5BA45BA45BA3387FFFE0B512C03801E000A3485AA4
-485AA448C7FCA4121EA35B485AA213021306EA3804130C5BEA1810EA1C60EA0780132C79
-AB17>I<D801E01338D806381378EA0C18EA181C1210D8303C13F0122012605B00C0EB01
-E0A2EA00F0A2EC03C0EA01E0A33903C00780A315819038800F031207A215020003EB1E06
-A29038C02E0C0001EB46083900E1831890383E01E0201F7A9E26>I<D801E09038380380
-D8063890387807C0EA0C18EA181C1210D8303CEBF0031220006015015B00C0D901E01380
-A2EA00F0A2913903C00300EA01E0A33A03C0078006A35E150013804A5BA25E6D5A000190
-383380602600E0235B903970C1C18090261F807EC7FC2A1F7A9E2F>119
-D<D801E01338D806381378EA0C18EA181C1210D8303C13F0122012605B00C0EB01E0A2EA
-00F0A2EC03C0EA01E0A33903C00780A49038800F001207A30003131EA2EBC03E0001135E
-3800E1BCEB3E3C1300A25CA21470003C13F0007C5B495A3878038012600106C7FC6C5AEA
-1838EA07C01D2D7A9E22>121 D<010F133090383F806090387FC0C0EBFFE03901E0F180
-9038801F0038030006A2C75A5C5C5C5C495A49C7FC13065B5B5B5B49138038018001EA03
-0000061303481400381BC00F381C381E38301FFC00605B6D5A38C003C01C1F7C9E1D>I<
-EBE0023803F00438063008381838303830186038400F800080130017076FAF24>126
-D<381C01C0383E03E0EA7E07EAFE0FA2387C07C03838038013076DB024>I
-E /Fd 51 256 df<003FB512801500A25A5CA2B5FC1907828615>5
-D<003FB512801500A25A5CA2B5FC1907828615>I<003FB512801500A25A5CA2B5FC1907
-828615>I<1218123CA8137C13FEEA3FFF148013C7138FEA3E7F387FFF00485A13F8EA7F
-C01114809310>I<1220123C123FEA7F80A2EAFF00A2127E121E1202090A808809>I<EA20
-08EA3C0F003F13C0387F9FE0A238FF3FC0A2387E1F80EA1E07EA0200130A7F8815>I<13
-06131F137FEA01FEEA0FFCEA3FF0EA7FC0EAFF0012F81260100A808910>I<133FEB7F80
-EBFFC0A213F3A213FFEB7F80A2EB3F00133E137F485AEA03F6EA0FE0EA3FC048C7FC12FE
-12F812601214809310>I<EA03E0EA0FF0121FEA3FE0EA7E0012F85AA2130EEAF83FEA7F
-FFEA3FFEEA1FF8EA3FE0EA7F80EAFE0012F812601012809110>I<1218123E123FEA7FC0
-13F8EA7BFF00F913FE38F07FFF130F386001FE180A808918>I<EA2008EA3C0F003F13C0
-387F9FE0A238FF3FC0A2387E1F80EA1E07EA0200130A7F8815>16
-D<5A13E013F8487EA2485AA26C5A12001310EA2008EA3C0F003F13C0387F9FE0A238FF3F
-C0A2387E1F80EA1E07EA020013147F9215>I<EA2008EA3C0F003F13C0387F9FE0A238FF
-3FC0A2387E1F80EA1E07EA02006C130013E013F8487EA2485AA26C5A1200131013147F88
-15>I<1220123CEA7F80A3EAFF00A2127E120E1202090A808809>46
-D<122012601270A212F8A312FCA312FEA512FCA31278A7127CA3123CA6123EA3121EA612
-1FA3120FA7120EA3120CA3083B7BBA0D>64 D<1230A31270A312F0A37EA21278AA127CA2
-123CAB123EA2121EA4121FA41380120F13C013E013F0EA07FF13FE1203A2EA01FC120013
-3C10387DB711>I<6019C0F003E0A2001018F01807003018F8A218011270180019F000F0
-18707E19607E19E06CEF01C0007F17076D161F01E0EE7F80D83FFCED03FFD9FFF091B512
-006C90B75A6C5F6C5F000117E06C6C1680010F03FCC7FC010015803D1E809742>72
-D<1680A2ED01C0A2150316E01507A21503A2ED01F0A41500A716E01501A2150316C01507
-ED0F80151FED7F00EC01FE1407EC3FFC903803FFF8017F5BB65A6C1480000191C7FC3800
-03FC2427858E20>80 D<143CEC3F80A2147FA292C7FCA2140F91C8FCA91680A2ED01C0A2
-150316E01507A21503A2ED01F0A41500A716E01501A2150316C01507ED0F80151FED7F00
-EC01FE1407EC3FFC903803FFF8017F5BB65A6C1480000191C7FC380003FC2438859F20>
-82 D<13201338133C137F8080497E80EB3FF86D7EEB07FE13036D7E7FEC7F80143F141F
-A2140F150080A21406140E147E383FFFFCA2485BA25CB55A91C7FC19207D9F1D>88
-D<EA03F0EA0FFC48B4FC5A13F01380003EC7FC1278A2127C127EEA7FC0EBFF807EA26C13
-005A485AA213F8EAFF8000FCC7FC12C011177E9615>90 D<903807FFFC017FEBFFFE90B7
-12FCA3485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB
-07FCEB0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA2121000
-30EB078015F0A20070130FA25DA200F0130191CAFCA37EA37EA2127EA2127F7F6C7E7F6C
-7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE000101
-15F06D6C1480020701F8C7FC9138003FC03745809830>96 D<EB1FFC49B47E15F015FC49
-13FF16E016F8D9601F13FFD9000114F06E6C13FF150F1503033F13FE4AB5FC141F0103B6
-12FC90B71200003F15E003FCC7FC15C04801FCC8FC14C001FCC9FCEAFF80CBFCAC151EED
-1FC0824B5AA25EA21507302C829730>99 D<903807FFFC017FEBFFFE90B712FCA3485EA2
-EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB0FF0EB
-1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA212101230A31270A412
-F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE
-013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC0374580
-9830>104 D<EB078014F0A2130FA2495A130FEB01C090CBFCAC903807FFFC017FEBFFFE
-90B712FCA3485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9
-FCEB07FCEB0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA212
-101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C
-13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC
-9138003FC0375980AC30>112 D<903807FFFC017FEBFFFE90B712FCA3485EA2EBF801D9
-00075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB0FF0EB1FC0495A
-49CAFC137C5B485A5B485A5B48CBFCA2120E120CECF03C489038FE3F80A2D81001137F12
-3002FC90C8FCA23970003C0F91CAFCA2EC078000F014F0A2140FA26C5CA214016C90CAFC
-A2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612
-FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC03745809830>120
-D<1AE019C0F180F09438C00181A2160195380383E09438E007C10403EB0FE195383FFFC0
-DC07E1B5FC94B61280A218FB7001F113000018EFE07E700180C7FC00106F48C8FC003016
-F0A31270A25FA212F0A25F7EA25F6C15017E007E4BC9FC007F5D6D5C6C6C141E6D147ED8
-1FF8495A01FEEB07F8390FFFC03F6C90B55A6C5D6C5D6C6C5C011F49CAFC010713F80100
-13C04430809142>128 D<F0078019F0A2180FA261A2180195C8FCA2F0F03C9538FE3F80
-A20501137FA206FC1300A29438003C0F95C8FCAB1AE019C0F180F09438C00181A2160195
-380383E09438E007C10403EB0FE195383FFFC0DC07E1B5FC94B61280A218FB7001F11300
-0018EFE07E700180C7FC00106F48C8FC003016F0A31270A25FA212F0A25F7EA25F6C1501
-7E007E4BC9FC007F5D6D5C6C6C141E6D147ED81FF8495A01FEEB07F8390FFFC03F6C90B5
-5A6C5D6C5D6C6C5C011F49CAFC010713F8010013C0444D80AE42>136
-D<1A7F963803FFC0070F13E0073F13F04F13F84EB512FC604EEB07F895380FF801041890
-381FE000DE3F8013F095387F0007043C01FC133F943A01F801FFE093397E03F00F93267F
-07E1B512C005CFB6128094B6EAFE007015F81AC04FC7FC001818E07049C8FC001017C000
-30031ECAFCA31270A2161CA212F0A216187EA26C151016306C1570007F5D6D130101E0EB
-07C06C6C133F9039FF01FF806C90B5FC6C92CBFC6C5C6C5CC614F0013F13C0D907FECCFC
-4E3380974E>144 D<18041807F00FE08561181FA2611803F0004096C8FCA41A7F963803
-FFC0070F13E0073F13F04F13F84EB512FC604EEB07F895380FF801041890381FE000DE3F
-8013F095387F0007043C01FC133F943A01F801FFE093397E03F00F93267F07E1B512C005
-CFB6128094B6EAFE007015F81AC04FC7FC001818E07049C8FC001017C00030031ECAFCA3
-1270A2161CA212F0A216187EA26C151016306C1570007F5D6D130101E0EB07C06C6C133F
-9039FF01FF806C90B5FC6C92CBFC6C5C6C5CC614F0013F13C0D907FECCFC4E4180A54E>
-152 D<147E49B47E5B4990CBFCA25B5C140E011CCCFC1318A21338A2133C137C137E137F
-14C091B812F86D17FE856D18806D18C07F010018E091CA123F190F1907F103C0A219011A
-801903190FBB12007E001F607E000360C66C5F010F17E0432983A842>156
-D<14081418141C143CA2143E147EA280A381A492C9FCA280141EA3141FA480A481A2EF7F
-800207903801FFE0040713F0041F13F8047F13FC93B512FE15C103C7EB83FC9238CFFC00
-912603DFF0137CDBFFC0137893380003F84B131F4BEBFFF0EDF0074A48B512E092B612C0
-B91200003F16FC6C16E0000793C7FC000115F06C6C91C8FC010713C0373782B634>160
-D<14081418141C143CA2143E147EA280A381A492C9FCA280021E1338167F83021F49C7FC
-A25EA26E131E93C8FCA381A2EF7F800207903801FFE0040713F0041F13F8047F13FC93B5
-12FE15C103C7EB83FC9238CFFC00912603DFF0137CDBFFC0137893380003F84B131F4BEB
-FFF0EDF0074A48B512E092B612C0B91200003F16FC6C16E0000793C7FC000115F06C6C91
-C8FC010713C0373782B634>164 D<EB01FCEB07FF011F13C0497F497FD9FFE0C9FC49CA
-FC13F85B485AA37F16C06DEB03806D130F6CB4133FDAC07FC8FC6DB5FC5D7F6D13F86D13
-E0010313806D90C9FCEB03FC495AEB0FE0495A495A013ECAFC5B5B485A5B485A5B48CBFC
-A2120E120CA25AA212101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0F
-FC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D
-6C1480020701F8C7FC9138003FC0375180A42C>168 D<19FC4EB4FC4E13C01AF0A2601A
-F8F00F0FF103FC1981F01FC3000818FF121884001019BC0030711338F003FE0070EF00F8
-F10030A31A601AE0190100F0F003C0190FF11F806C187F953801FF006CEF0FFE6CEF7FFC
-6C6C92380FFFF801E00203B55A6CB4010FB612C091B8C7FC6C17FC6C17E06C94C8FC0003
-16F0C66C4AC9FC010F49CAFC462980A646>172 D<1B70F201F0F207E01A1FF2FFC01903
-190F073F13809638FFFC00060313F0060F13C04E90C7FCF07FFC943801FFE04D13804D48
-C8FCEF0FF8EF1FE0604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015
-001230A2830070167CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91
-B65A7E7E6C5E00015ED8003F4ACAFC010714E04C3F80BB42>184
-D<F207801A1F1A7F963801FF00F107FCF11FF0F17FC0953901FF0070953907FC01F09539
-1FF007E095387FC01F943A01FF00FFC0943807FC0394380FF00FDEC03F1380953900FFFC
-00DD040313F0DD000F13C04E90C7FCF07FFC943801FFE04D13804D48C8FCEF0FF8EF1FE0
-604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015001230A283007016
-7CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91B65A7E7E6C5E0001
-5ED8003F4ACAFC010714E04C4680C242>192 D<173017F81603EE0FF0EE3FE0EEFF8092
-3803FE0092380FF80392383FE00F9238FF803F913903FE01FE91380FF80791383FE01F91
-39FF807FFC903A03FE01FFF890260FF80713E090263FE01F1380903A7F807FFE009039FE
-01FFF8D9780713C0D9201F90C7FC9038007FFC903801FFF04913C0010F90C8FCEB1FFCEB
-3FF0EB7FC091C9FC13FC5B13E012017F7F487E7F6C7E14C06C7F6D7E6D7E6D7E130F6D7E
-13011300147E143E143C141CA21418A214385C14F01303EB1FE0EA01FF003F5B5C91C9FC
-485A13F813E000FECAFC304382C224>195 D<150215061507A25D1680A216C0A316E0A5
-16C0A3ED0780A716C0A31503A616E0A31501A2120312021206A24815F0A2121C00181400
-A25AA31270A412F016E07EA216C07EA2007EEC0180007F14036D13076C6CEB1F0001F013
-7F391FFE03FE90B5FC6C5C6C5C6C5CC65C013F1380D907FCC7FC244B80B624>200
-D<EC0780EC0FC015E0141F15F0A2143FEC33F81471A2ECF8FC1301903803FC7C1307EB1F
-FE90387F7F3CD803FF13B8D83FFE13F8EBFC3F01F813F0387FF01FEBC00F90380007E000
-FC13011E18829715>212 D<168016C016E0150116F0A2ED03F8A2ED01FCA2150016FE16
-7E1218163E12100030153F161FA21270A2160FA212F0160E7EA2160C7EA26C1518007F15
-386D14786D14F0D83FF0130301FCEB1FE0391FFF80FF6C90B512C06C15806C15006C5C6C
-6C13F8011F13E0010390C7FC282C809B28>224 D<136013F0EA01FC487E7F48138014C0
-120EEB3FE0EA0C1F38180FF01307EA300314F8130112701300A2147800F013707EA26C13
-606C13E0EAFF83EBFFC07E14807E6C13006C5AEA01F81520809F15>232
-D<14C014F0EB01FC80804913C0816D7F497F497F497F8116804914C0EB1E1F9039180FBF
-E090393C079FF0EC038F90397E0707F890387F1F0302FE13FC1501013F13009138FFE0F8
-48B5EAFE78003FECFFF816F0A2387FFE3FD9F80713E0EBC00000FEC7EA0FC02620829F24
->235 D<EB0FC0EB1FF090383FF9C0017F7FECFDF014FF90B57E01F07F9038C07FFE3801
-E039813803F0709039F9F07F809038FFE03FED1FC06C13F0ECFE0F48EBFFE7003FECFF80
-A21600EA7FE1EBC03F90380007FE00F813002219829815>I<EC07E0EC0FF84A7E81815C
-16801470EC783FED1FC0ECFC0F02FE13E0ECFFC715FF80A26E13F0801407140191C7FCA6
-16E0A2150116C01503A2ED0780150FED1F00157EEC01FEEC07FCEC1FF849B45A013F5BB6
-5A6C5C000149C7FC380003F8242D819424>240 D<EC07E0EC0FF84A7E81815C821470EC
-783F6F7EECFC0F14FE9138FF87E015F76EB512E017C08080020714801401EC003F923800
-F000A55EA215015E1503A24B5A150F4BC7FC157EEC01FEEC07FCEC1FF849B45A013F5BB6
-5A6C5C000149C8FC380003F82B2D819428>I<1840187018FE84601701A260EF003C1804
-95C8FCA519FC4EB4FC4E13C01AF0A2601AF8F00F0FF103FC1981F01FC3000818FF121884
-001019BC0030711338F003FE0070EF00F8F10030A31A601AE0190100F0F003C0190FF11F
-806C187F953801FF006CEF0FFE6CEF7FFC6C6C92380FFFF801E00203B55A6CB4010FB612
-C091B8C7FC6C17FC6C17E06C94C8FC000316F0C66C4AC9FC010F49CAFC463880B546>I<
-ED701C9238FE3F8003FF13C0913901FE7F80A203FC1300A29138003C0F92C8FCAA163FEE
-7FC0EEFFF017FCA25D17FEED03C3EEC0FFEEE07F923807F0FF000892B5FC121881001016
-EF00306E13CE6F138E0070ED3E0E1600170CA31708171812F01730177017F06CED01E016
-036CED0FC06CED1F806C157FD87FC0903801FF0001F0EB0FFED83FFEEBFFFC90B65A6C5D
-6C15C06C92C7FC000114FC6C6C13F0010F90C8FC303D80B030>244
-D<18FCEF03FE170F173FEF7FFC17FF4C13F8933803FE18EE07F8EFE000EE0F8094C7FC16
-1E161C5E1630A25EA21208001815E082001015FF00304A13F817FF007017C018E081163F
-040713C0EE001F170300F0EE0180170317076CEE0F00173F6C167EEE01FE6CED07FC6C4B
-5A6C6CEC3FF001E049B45AD83FF8010F138001FF90B5C7FC6C90B512FC6C5D6C15E06C15
-80C64AC8FC013F13F0010713803734819D34>248 D<EE03FEEE3FFC16FF5D00084A13F8
-1218A2923807FC004815800306C7FC150F007015E0ED1FFEEEFFC017F017F88100F01403
-9238007FF016076C150017E016036CED07C06C151F6C157FD87FC0903803FF8001F0011F
-13003A3FFE01FFFE90B612F86C5D6C15C06C92C7FC000114FC6C6C13E0010F90C8FC2F24
-81862C>I<14F0EB07E0131F137F495A12035A4848C9FCEA1FF813C048CAFC123E003FB8
-FC5A17FEA2B8FC17FC7E30137D8615>255 D E /Fe 37 127 df<1207EA0F80EA1FC0A2
-EA0FE012071201A5120313C012071380120FEA1F00127E5A5A12700B1574AB25>39
-D<120FEA1F80EA3FC013E0A3121F120F1201120313C012071380121FEA7F0012FE5A1270
-0B12748725>44 D<123C127E12FFA4127E123C0808728725>46 D<123C127E12FFA4127E
-123C1200AF123C127E12FFA4127E123C081F729E25>58 D<EB07E0A2497EA3EB0E70EB1E
-78A4EB3E7CA3EB3C3CA2EB7C3EA4497EA53901F00F80A448B512C0A43907E007E0EBC003
-A4390F8001F0A3397FF00FFE39FFF81FFFA2397FF00FFE202C7EAB25>65
-D<007FB512FCB612FEA27E3907C0003EA5151C1500A5141C143EA3EBFFFEA4EBC03EA314
-1C91C7FCA5150E151FA7007FB6FCB7FCA26C14FE202C7EAB25>69
-D<007FB5FCB61280A26C1400D8003EC7FCB3B2007FB5FCB61280A26C1400192C7AAB25>
-73 D<3801FFF8000F13FF4814804814C0EB801F397E0007E0A2007C1303A348EB01F0B3
-A56C1303007C14E0A3007E1307007F130F393FC03FC090B5FC6C14806C1400000113F81C
-2C7CAB25>79 D<3A7FFC03FFE0486C4813F0A26C486C13E03A07C0003E00B3AB6D137E00
-03147CA26C6C5BEBF8016C6C485A90387F0FE06DB45A6D5B6D90C7FCEB03FC242C80AB25
->85 D<133013FCEA03FF000F13C0003F13F0387FCFF838FF03FCEAFE0138F8007C007013
-38160A79AB25>94 D<EA01C0EA03E01207EA0FC0EA1F00123E123C127C127812F85AA512
-FC7E127FA2123E121C0B1573B025>96 D<3803FF80000F13E04813F8487FEB01FEEB007F
-001E131F000C1480C7120FA3EB01FF133F48B5FC120748138F381FE00FEA3F80EA7E005A
-5AA46C131F007E133F383F81FF6CB512FE6CEBF7FF6C13E30001EB01FE201F7C9E25>I<
-EA7FC0487EA2127F1203A9EBE1FE9038E7FF8001EF7F90B57EEC07F09038FC01F89038F8
-007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038FF07F0ECFFE001
-EF5B01E790C7FC3801C1FC212C7FAB25>I<EB1FFCEB7FFF48B512804814C03807F00FEA
-0FC0391F800780393F000300003E90C7FC5AA212FC5AA77E127CA26CEB01C0003FEB03E0
-EA1F80380FC0073907F03FC06CB512806C14006C6C5AEB1FF01B1F7B9E25>I<EC7FC04A
-7EA2147F1403A9EB1FC3EB7FF33801FFFB4813FF3807F07F380FC01F381F800F383F0007
-123E481303A212FC5AA77E007C1307A27E140F6C131FEA0FC03807F07F6CB6FC6C01FB13
-806C13F3D93FC11300212C7EAB25>I<EB1FE0EBFFF84813FE487F3907F07F80380FC00F
-391F0007C04814E0003E13035A15F000FC13015AB6FCA315E000F8C8FCA27E127C127E00
-3E14E0003FEB01F0EA1F80380FC0073907F81FE06CB512C06C148039007FFE00EB1FF81C
-1F7C9E25>I<EC3FC0ECFFE0010313F04913F8EB0FE1148190381F80F091C7FCA6007FB5
-12C0B612E0A26C14C0D8001FC7FCB3A5001FB5FC481480A26C14001D2C7EAB25>I<9038
-3FC0FE9038FFF3FF4890B512805AD807F0138F3A0FC03F0700391F801F80EB000F488000
-3E1307A5003F130F6C5CEB801F6C6C48C7FCEBF0FEEBFFFC485B001E5BEB3FC090C9FCA2
-121F7EEBFFFE6CEBFFC04814F04880393F0003FC007CEB007E0078141E00F8141F4880A4
-6C5C0078141E007E147E6C6C485A391FF00FF86CB55A000314C0C691C7FCEB1FF821307E
-9E25>I<EA7FC0487EA2127F1203A914FEEBE3FF01EF7F90B57EEC87E0EBFE039038F801
-F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C010F1380222C7FAB25>I<130C131E
-133FA2131E130C90C8FCA8EA3FFE487EA27EEA001FB3A5007FB51280B612C0A26C14801A
-2D7AAC25>I<1430147814FCA2147814301400A83801FFF84813FCA27EC7127CB3B014F8
-1230EA780100FC13F0EB07E0B512C06C13806C1300EA0FFC163D7DAC25>I<EA7F80487E
-A2127F1203A9EC3FFF4A1380A26E1300EC03E04A5A4A5A4AC7FC143E14FCEBC1F8EBC3F0
-EBC7E013CFEBDFF013FE497EEBF87C497EEBE01EEBC01F6E7E6E7E1403816E7E6E7E3A7F
-FE07FF80B54813C0A26C486C1380222C7FAB25>I<EA7FFEB5FCA27EEA001FB3B2007FB5
-12C0B612E0A26C14C01B2C7BAB25>I<397E1F80FC39FF3FC1FE90387FE3FF267FFFF713
-80390FF0FF8749EB07C09038C07E03EB807CA3EB0078B13A7FE1FF0FF8D8FFF3EB9FFCA2
-D87FE1EB0FF8261F819E25>I<387FC0FE38FFE3FF01EF7F6CB57E0003EB87E0EBFE0390
-38F801F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C010F1380221F7F9E25>I<EB
-3FC0EBFFF0000313FC487F380FE07F391F801F80EB000F003EEB07C0A248EB03E0A248EB
-01F0A86C1303007C14E0A26CEB07C0003F130F391F801F80EBC03F390FE07F003807FFFE
-6C5BC613F0EB3FC01C1F7C9E25>I<387FC1FE39FFE7FF8001EF7F6CB57E0003EB07F090
-38FC01F89038F8007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038
-FF07F0ECFFE001EF5B01E790C7FCEBE1FC01E0C8FCACEA7FFFB57EA26C90C8FC212F7F9E
-25>I<90381FC0E09038FFF1F04813FD4813FF3807F07F380FC01F381F000F481307003E
-13035AA200FC13015AA77E007C1303A2007E1307123E6C130F380FC01FEBF07F3807FFFD
-000113F96C13F1EB3FC1EB0001AC91383FFF804A13C0A26E1380222F7D9E25>I<397FF0
-07F839FFF83FFCEC7FFE007F90B5FC3900F9FC3FEBFBE09038FFC01EEC800C91C7FC5BA2
-5BA35BAD387FFFFCB57EA26C5B201F7E9E25>I<3801FFC6000713FF121F5A48C6FC007C
-133F00F07FA3140E00FC90C7FCEA7F80EA3FFC381FFFE06C13F800037F38001FFEEB00FF
-EC1F800070EB07C000F81303A27EA26C13076CEB0F809038C07F00EBFFFE5C00F35B3860
-7FC01A1F7B9E25>I<137013F8A8007FB512C0B612E0A26C14C0D800F8C7FCAF157015F8
-A5EBFC0190387E07F090383FFFE06D13C06D1380903803FE001D287EA725>I<397FC03F
-E0486C487EA2007F133F00031301B31403A2EBF0073801F81F90B612806C15C0EB7FFDD9
-1FF01380221F7F9E25>I<3A7FF807FF80486C4813C0A26C486C1380000FC7EA3C00A66C
-6C5BA2EB81E0EB83F0A33903C7F8F01438A3EBCF3CA200015CEBCE1CEBEE1DA2EBFE1F6C
-486C5AA39038780780221F7F9E25>119 D<397FF00FFE39FFF81FFFA2397FF00FFE3907
-8001F015E013C01203EC03C013E01201EC0780EA00F0A29038F80F001378A2EB7C1E133C
-A26D5AA3EB0F38147813075CA213035CA35CA213075CA2130F91C7FC123CEA7E1E133E5B
-EA7FF8123FEA1FE0EA0F80202F7E9E25>121 D<003FB512F84814FCA3397C0001F8EC03
-F0EC07E0EC0FC00038EB1F80C7EA3F00147E5C495A495A495A495A495A49C7FC137E5B48
-5A485A4848131C4848133E485A48C7FC127EB612FEA36C14FC1F1F7E9E25>I<127012F8
-B3B3B21270053870B125>124 D<3803E006380FF00F381FF83F383FFE7E387E7FFC38FC
-1FF838F00FF0386007C018087AAB25>126 D E /Ff 3 213 df<1340EA01E01207EA1F80
-EA7E0012F8EAE0C0EA01E0EA07C0EA1F00127E12F812600B0D808C0B>19
-D<EA0780EA1FC0EA3FE0EA3E00127812701278127CEA7F9813F0123FA2EA7FE013C0EA7C
-0012E00D107F8F0F>90 D<EB0180EB03C014E0130714F0130D130CEB1E78133E13FF0007
-13B8387FEFF013CF138738FE03E0EAF8001510818F0F>212 D E
-/Fg 1 35 df<133F3801FFC0380381E0380400404813005AA31360EA0B98EA0FF80010C7
-FC5A5AA35A6C1380124038600100EA300EEA1FFCEA07E013177F9517>34
-D E /Fh 1 66 df<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2
-380800E0A2001813F0123838FE03FE17177F961A>65 D E /Fi 12
-125 df<1218123C123E121E120EA5121CA2123812F812F01260070F779D1A>39
-D<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
-130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
-D<126012F0A27E1278127C123C123E121EA2121F7E7F12077F1203A27F12017F12007F13
-78A2137C133C133E131E131F7FA21480130714C0130314E01301A2EB00C013277DA21A>
-92 D<EB0FC0131F130F1301A6EA01F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0
-A7EA7003A2EA3807EA3E0F381FFFF83807FDFC3801F1F8161E7E9D1A>100
-D<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7FC12
-70A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<127E12FE127E
-120EA6133EEBFF80000F13C013C1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC171E
-7F9D1A>104 D<13C0487EA26C5A90C7FCA6EA7FE0A31200AF387FFF80B512C06C138012
-1F7C9E1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBF
-BF80397F1F1F00191580941A>109 D<EA7E3E38FEFF80007F13C0EA0FC1EB80E0130012
-0EAC387FC3FC38FFE7FE387FC3FC17157F941A>I<3807FB80EA1FFF127FEA7807EAE003
-A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C012E0A2EAF00338FC0780B512
-00EAEFFEEAE3F812157C941A>115 D<487E1203A6387FFFE0B5FCA238038000AA1470A4
-3801C1E013FF6C1380EB3F00141C7F9B1A>I<126012F0B3B31260042775A21A>124
-D E /Fj 51 122 df<90381FC1F090387037189038C03E3C3801807C0003137839070038
-00A9B612C03907003800B2143C397FE1FFC01E2380A21C>11 D<EB1FC0EB7020EBC01038
-01803800031378EA0700143091C7FCA7B512F8380700781438B2397FE1FF80192380A21B
->I<EA7038EAF87CEAFC7EA2EA743AEA0402A4EA0804A2EA1008A2EA2010EA40200F0F7E
-A218>34 D<127012F812FCA212741204A41208A21210A212201240060F7C840E>44
-D<EAFFF8A20D02808B10>I<127012F8A3127005057C840E>I<EA01F0EA071CEA0C06487E
-00381380A2387001C0A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA
-071CEA01F013227EA018>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018
->I<EA03F0EA0C1CEA100700201380384003C0A2008013E012F0EAF801A3EA2003120014
-C0A2EB07801400130E5B13185B5B5B485A90C7FC000213205A5A00181360481340383FFF
-C05AB5FC13217EA018>I<EA03F8EA0C1EEA100F38200780004013C01278130313071238
-00001380A214005B130C1338EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8
-A200F013C01240EB0780122038100F00EA0C1CEA03F013227EA018>I<1303A25BA25B13
-17A21327136713471387120113071202120612041208A212101220A2124012C0B512F838
-000700A7EB0F80EB7FF015217FA018>I<00101380381E0700EA1FFF5B13F8EA17E00010
-C7FCA6EA11F8EA120CEA1C07381803801210380001C0A214E0A4127012F0A200E013C012
-80EA4003148038200700EA1006EA0C1CEA03F013227EA018>I<137EEA01C13803008038
-0601C0EA0C03121C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380
-EB01C012F014E0A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F013227E
-A018>I<127012F8A312701200AB127012F8A3127005157C940E>58
-D<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B512
-80EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA2
-25>65 D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
-138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
-D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF138014
-601420A491C7FCA9487EEAFFFE1B227EA120>I<EAFFFCEA0FC0EA0780B3ACEA0FC0EAFF
-FC0E227EA112>73 D<EAFFFCEA1F806CC7FCB3A21401A41403A214021406A2141E48137E
-B512FE18227DA11E>76 D<B512F0380F803C0007130FEC078015C0140315E0A615C01407
-1580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA121>80
-D<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C1300A2127812
-7FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C1360A26C13
-C07E38C8018038C60700EA81FC14247DA21B>83 D<007FB512F839780780780060141800
-401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>I<39FFFC07
-FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100EB3006EB1C
-08EB03F020237EA125>I<3BFFF03FFC03FE3B1F8007E000F86C486C48137017206E7ED8
-07801540A24A7E2603C0021480A39039E004780100011600A2EC083CD800F01402A2EC10
-1E01785CA2EC200F013C5CA20260138890391E400790A216D090391F8003F0010F5CA2EC
-00016D5CA20106130001025C2F237FA132>87 D<397FF803FF390FE001F83907C000E06C
-6C5B00015CEBF001D800F890C7FCEB7802EB7C04133EEB1E08EB1F10EB0FB0EB07A014C0
-6D7E130180497EEB0278EB047CEB0C3EEB081EEB101F496C7E140701407F496C7E1401D8
-01007F486D7E5AD81F807F3AFFC003FFC022227FA125>I<EA0804EA1008EA2010A2EA40
-20A2EA8040A4EAB85CEAFC7EA2EA7C3EEA381C0F0F7AA218>92 D<EA1FE0EA3038EA780C
-130EEA30071200A313FFEA07C7EA1E07123C1278127000F01308A3130FEA7817383C2390
-380FC1E015157E9418>97 D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E13
-38143C141C141EA7141C143C1438000F1370380C8060EB41C038083F0017237FA21B>I<
-EA01FEEA0703380C0780121C383803000078C7FC127012F0A712700078134012386C1380
-380C0100EA0706EA01F812157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA
-1C01EA38001278127012F0A7127012781238EA1801EA0C0238070CF03801F0FE17237EA2
-1B>I<EA01FCEA0707380C0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512
-700078132012386C13406C138038070300EA00FC13157F9416>I<133E13E33801C780EA
-0387130748C7FCA9EAFFF80007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E
-18EA1C0E38380700A200781380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA2123012
-38EA3FFE381FFFC06C13E0383000F0481330481318A400601330A2003813E0380E038038
-03FE0015217F9518>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF
-38FFE7FF18237FA21B>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227F
-A10E>I<13E0EA01F0A3EA00E01300A81370EA07F012001370B3A51260EAF0E013C0EA61
-80EA3F000C2C83A10F>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B
-133813F8EA0F1CEA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A
->I<120E12FE121E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E8072
-01C03A0F003C00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C038
-1E80E0380F0070A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0
-003813E0481370A200F01378A700701370007813F0003813E0381C01C0380E0380380707
-00EA01FC15157F9418>I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7
-143CA21438000F1370380E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F8
-2038070460EA0E02EA1C01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA
-01F0C7FCA9EB0FFE171F7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120F
-EAFFF010157F9413>I<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0F
-F0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A4
-1206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E
-137038FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<
-38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A3
-1374A21338A3131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410
-EB0260147000071420EB04301438D803841340EB8818141CD801C81380EBD00C140E3900
-F00F00497EA2EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C06C1380EB81
-00EA0383EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201C0000413E0EA
-0C00383E01F038FF03FE17157F941A>I<38FF80FE381E00781430000E1320A26C1340A2
-EB80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043
-C7FC123C171F7F941A>I E /Fk 47 127 df<121C123E123F1380121F1203A4EA0700A2
-5A121E5A12F85A1260091175A41F>39 D<121C123F5A1380A2123F121F1203EA0700A212
-0E121E12FC5A1260090F75861F>44 D<1238127C12FEA3127C1238070774861F>46
-D<137E3801FF804813C03807C3E0380F00F04813F8001E137848133CA248131EA3007013
-0E00F0130FAB0078131EA3007C133E003C133CA26C1378001F13F8380F81F03807C3E038
-03FFC06C138038007E0018257DA41F>48 D<1370A213F0A2120112031207127F12FE12F8
-1200B3A6387FFFE0B512F06C13E014257AA41F>I<13FE3803FFC0000F13F0381F01F838
-3E007C48133C0078131E5A140F7EA21270C7FCA2141EA3143C147814F8EB01F0EB03E0EB
-07C0EB0F80EB1F00133E5B5B485AEA03C0485A380F000F121E5A007FB5FCB6FC7E18257D
-A41F>I<48B4FC000713C0001F13F0383F01F8383C007C007C133C141EA21238C7FCA214
-3CA2147814F8EB03F03801FFC0A214F0380001F8EB007C143C141EA2140FA2127012F8A2
-141E5A0078133C007C137C383F01F8381FFFF0000713C03800FE0018257DA41F>I<EB03
-F0A21307130EA2131C133C13381378137013F0EA01E013C01203EA0780A2EA0F00121EA2
-5AA25A5AB612C0A3C7EAF000A890381FFF804913C06D13801A257EA41F>I<381FFFFC5A
-A2003CC7FCAB13FF003F13C014F0EB00F8003C137C0018133CC7121EA2140FA3122012F8
-A2140E48131E0078133E143C6C13F8383F03F0380FFFE06C13803800FE0018257DA41F>
-I<EB0FE0EB3FF8EBFFFC3803F03C3807C01EEB803EEA0F00001E131C14005A12381278A3
-EAF07F38F1FFC000F713E038FF81F838FE007C48133C48131EA2140FA31278A46C131EA2
-6C133C6C1378EB81F03807FFE0000113C038007F0018257DA41F>I<12F0B6FCA338F000
-3E143C1478C712F0EB01E0A2EB03C0A2EB078014005B130E131EA25BA213381378A35BA5
-485AA86C5A18267DA51F>I<13FF000713E04813F0381F81F8383E007C48133E0078131E
-48130FA46C131F0078131E6C133C001F13F8380FE7F03803FFC06C1380000713E0381F00
-F8003E137C003C133C48131E00F8131F48130FA50078131EA26C133C003E137C381F81F8
-380FFFF0000313C0C6130018257DA41F>I<137E3803FF804813E0380F81F0381E00F848
-137848133CA248131EA4141FA31278A26C133F003E137F381F81FF3807FFEF6C138F3800
-FE0FEB001EA3141C143CA200381378007C13F01301387803E0383C0FC0383FFF80381FFE
-00EA03F818257DA41F>I<1238127C12FEA3127C12381200AC1238127C12FEA3127C1238
-071A74991F>I<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C
-0FFF5B38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38
-381E3C383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE3800
-7FF8EB1FC019257DA41F>64 D<131E133FA3EB7380A5EBF3C0A313E100017FA43803C0F0
-A538078078EBFFF8A3380F807CEB003CA4001E7FA339FFC0FFC0A31A257EA41F>I<B512
-F0A33800F000B3ADB512F0A314257BA41F>73 D<3803FFC0001F13F84813FC1300007C13
-3E0078131EA348130FB3A30078131EA3007C133E003F13FC13FF6C13F8000313C018257D
-A41F>79 D<397FE01FF839FFF03FFC397FE01FF8390F0003C0B3A73907800780A33903C0
-0F003801E01EEBF03E38007FF86D5AEB0FC01E2580A41F>85 D<13C0EA03F0487EEA1FFE
-387F3F8038FC0FC0EAF8073860018012087AA41F>94 D<387FFFFEB6FCA26C13FE18047D
-7D1F>I<1203EA0780120FEA1E005A5A1270A25AA412FC7E127E123E121C091175A81F>I<
-EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB3FF8EA01FF1207381FE078EA3E
-005A12785AA4007813F8EA7E036CB512E0000F133F3803FC0F1B1A7D991F>I<EA7F8012
-FF127F1207A8EB83E0EB9FFCEBBFFEEBFC1F9038F007809038E003C013C090388001E0A2
-EC00F0A8EC01E013C0EC03C0EBE0079038F00F809038F81F00EBBFFEEB9FF8380387E01C
-2580A41F>I<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C13005AA21270
-12F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80161A7C99
-1F>I<EB01FE13031301EB001EA8137E3801FF9E000713DE380F81FEEA1F00003E137E00
-3C133E48131EA25AA81278143E7E147E6C13FEEA0F833907FFDFE06CEB1FF0D8007C13E0
-1C257EA41F>I<EB01FCEB07FF011F1380EB3F0F133C903878070091C7FCA5387FFFFEB5
-FCA2D80078C7FCB3A2383FFFF0487F6C5B19257FA41F>102 D<90387C0F803901FF3FC0
-0007EBFFE0380F83F1D81F0113C0391E00F000481378A66C5BEA1F01380F83E048B45A00
-1D90C7FCEA1C7C003CC8FCA37E381FFFE06C13F814FE487F393C003F8048130FEC07C048
-1303A40078EB0780A2003EEB1F00381F807E6CB45A000313F038007F801B287E991F>I<
-EA7F8012FF127F1207A8EB83F0EB8FFCEBBFFEEBFC1FEBF00F9038E0078013C0A21380AF
-397FF87FF839FFFCFFFC397FF87FF81E2580A41F>I<137013F8A3137090C7FCA7EA7FF8
-12FF127FEA0078B3A2B512F8A315267BA51F>I<EB0380EB07C0A3EB038090C7FCA73807
-FFC0A3EA0003B3AB38200780127038F80F005BEA7FFE13F8EA1FE012337DA51F>I<EA7F
-8012FF127F1207A8903887FFC015E015C09038807E005CEB81F8EB83F0EB87E0EB8FC0EB
-9F8001BFC7FC13FF808013F3EBE3E0EBC1F0138080147C143C80141F397FF87FE039FFFC
-FFF0397FF87FE01C257FA41F>I<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C
-0F9038FE3F80B5EA7FC0381FCFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3
-EBC7F11E1A80991F>I<387F83F038FF8FFC387FBFFE3807FC1FEBF00F9038E0078013C0
-A21380AF397FF87FF839FFFCFFFC397FF87FF81E1A80991F>I<13FCEA03FF481380381F
-87E0EA1E01383C00F0007C13F800781378A248133CA76C137C00781378A2007C13F8003C
-13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>I<387F83E038FF9FFC387F
-BFFE3807FC1F9038F007809038E003C013C090388001E0A2EC00F0A8EC01E013C0EC03C0
-EBE0079038F00F809038F81F00EBBFFEEB9FF8EB87E00180C7FCAAEA7FF8487E6C5A1C27
-80991F>I<EB3F0F3801FFCF4813EF380FC0FF48C67E001E7F487F5A80127012F0A61270
-12785C7E003E5B6C5B380FC1FF3807FFEF0001138F38007E0F1300AA903801FFF8A31D27
-7E991F>I<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25B
-A35BAC387FFFE0B5FC7E1A1A7E991F>I<3803FC70380FFFF0123FEA7C03EA7001EAE000
-A37E007C1300EA3FE06CB4FC000713C0C613F0EB03F8EB00780070133C00F0131CA27EA2
-6C1338B413F013FF00E713C038E1FE00161A7C991F>I<137013F0A6387FFFFEB5FCA2D8
-00F0C7FCADEC0780A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>I<397F807F8000
-FF13FF007F137F00071307B1140F141F3803C07F6CB512F86CEBE7FC90383F87F81E1A80
-991F>I<39FFE07FF0EBF0FFEBE07F391E000780A56CEB0F00A2130FA2EB1F8FA238071B
-8EEB9B9EA2EBBBDEA213B1000313DCA2EBF1FC13E0A2000113781C1A7F991F>119
-D<397FF0FFE0486C13F06C4813E0390F800F000007131EA2EA03C05CA2EA01E0147C1478
-EA00F0A25C1378A2EB38E01339133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383E
-EA7C3C137C5BEA7FF06C5AEA0F801C277F991F>121 D<003FB512805AA23978001F0014
-3E5C5CC6485A495A495A5C49C7FC131E5B5B5B1201485A485A390F800780EA1F00123E5A
-B6FCA3191A7E991F>I<126012F0B3B3A91260042F73A91F>124 D<38038060380FE0F0EA
-1FE1383CF3C038F87F8000F01300EA601C14077BA41F>126 D E
-/Fl 54 128 df<EB3F80EBE1E03801C070380380780007133C130048133EA5143C147814
-7014E0EB03C038FF1E00EB0380380F01C0EB00E014701478143CA2143EA2141E141FA814
-1E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>25 D<127812FCA212FEA2127A12
-02A41204A31208A212101220124007127B8510>44 D<EAFFFEA30F037F8E14>I<127812
-FCA4127806067B8510>I<137E3801C380380700E0000E1370001E1378001C1338003C13
-3CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C1338001E
-1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF12
-F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001F0
-1260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB0780
-1400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FCA2
-16287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA1307
-381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F012
-60383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
-D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
-3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
-121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
-A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
-A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
-00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
-3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
-381C0F00EA0FFEEA03F818297EA71D>57 D<127812FCA412781200AE127812FCA4127806
-1A7B9910>I<14101438A3147CA314BEA3EB011FA39038020F80A201047F1407A201087F
-1403A2496C7EA3496C7EA390387FFFFCA29038C0007E49133EA248C7123F81A20002EC0F
-80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C>65 D<B6FC15C0390FC003F0
-0007EB00F881157E153E153FA6153E157E157C5D4A5AEC07E090B512809038C001F06E7E
-153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000FEB01F8B65A158022297DA829
->I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED03E0ED01F0A2ED00F8A216FC
-167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED0780ED1F00153E0007EB01FC
-B612F0158027297EA82D>68 D<B7FCA23907E0003F00031407ED03801501A21500A41640
-5CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391C7FC1640A416C0A215011503
-ED07800007143FB7FCA223297EA828>I<02FF13100107EBE03090381FC07890393E000C
-7001F8EB06F048481303484813014848130048481470A248C812305A123E1610127EA200
-7C150012FCA892B5FC127C007EEC03F01501123EA2123F7E6C7EA26C7E6C7E6C6C13026C
-7E013EEB0C7090391FC03830903907FFE0100100EB8000282B7DA92E>71
-D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
-D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
-18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
-153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
-D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
-A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
-23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
-7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
-7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
-8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
-7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
-ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
-FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
-0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
-387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
-7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
-00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
-007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
-0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
-147E90380FFFF0A229297FA82C>89 D<1203EA0780EA0CC0EA1860EA3030EA6018EAC00C
-EA80040E0879A81D>94 D<1204120812101220A21240A31280A412BC12FEA2127EA2123C
-07127CA910>96 D<EA03FCEA0C0738100380383C01C0003E7F6D7E121C1208C7FCA3137F
-EA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880381E0C7F3907F01E
-001A1A7E991D>I<120FB4FCA2121F7EACEB07E0EB1838EB600EEB8007158090380003C0
-A2EC01E0A215F0A715E0A2140315C01580EB8007000EEB0F00EB401C380C303838080FC0
-1C2A7EA921>I<137F3801C0E038070010000E1378001E13F85A1470007C132000781300
-12F8A81278127C003C1308A26C1310000E13206C13603801C18038007E00151A7E991A>
-I<140F14FFA2141F80AC133F3801C0CF3803802F380F001F121E001C7F123C127C1278A2
-12F8A71278A27EA26C5B000E132F6CEB4F803901C18FF038007E0F1C2A7EA921>I<13FC
-38038780380701C0000E13E0EA1C00003C13F0A2481378A212F8A2B512F800F8C7FCA512
-78A26C1308A26C1310000E13206C13403801C18038007E00151A7E991A>I<131FEB70C0
-EBE1E0EA01C31203EB81C0380780801400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA9
-12>I<140F3901FC308038070743380E03C3001EEBC100486C7EA2007C7FA5003C5BA26C
-485A000E5BD81707C7FCEA11FC0030C8FCA47E381FFF806C13F06C7F3818007C48131E00
-70130E00607F12E0A40070130EA26C5B6C5B380781E0C6B4C7FC19287E9A1D>I<120FB4
-FCA2121F7EACEB07F0EB1838EB201C497E140F1380A21300B139FFF0FFF0A21C2A7EA921
->I<121E123FA4121EC7FCA9120FB4FCA2121F7EB3A2EAFFF0A20C297EA811>I<137813FC
-A413781300A9133CEA07FCA2EA007C133CB3AAEA703812F8137012F0EA60C0EA1F800E35
-82A812>I<120FB4FCA2121F7EACECFFC0A2EC7E0014305C14405C0103C7FC1304130C13
-1E133E135F138FEB0780801303806D7E1300801478147C147E39FFF1FFE0A21B2A7EA91F
->I<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F07F007F03AFF183818389039
-201C201C3A1F400E400E000F010F130F01801380A201001300B13BFFF0FFF0FFF0A22C1A
-7E9931>I<380F07F038FF1838EB201C381F400E000F130F1380A21300B139FFF0FFF0A2
-1C1A7E9921>I<137E3803C3C0380700E0000E1370481338003C133CA248131EA200F813
-1FA80078131EA26C133CA2001C13386C13706C13E03803C3C038007E00181A7E991D>I<
-380F07E038FF1838EB601E380F800FEC0780010013C0140315E0A2EC01F0A715E01403A2
-15C0EC07801380EC0F00EB401CEB3078EB0FC090C8FCAAEAFFF0A21C267E9921>I<EB3F
-013801E08338038043380F0027001E1317141F487F127CA2127812F8A7127CA2123C003E
-5B121E6C132F3807804F3801C18F38007E0F1300AAECFFF0A21C267E991F>I<380F0F80
-38FF11C0EB23E0EA1F43EA0F83EB81C0EB800090C7FCB07FEAFFFCA2131A7E9917>I<38
-07F080EA1C0DEA3003EA600112E01300A27E6C1300127EEA7FE0EA3FFC6C7EEA07FF3800
-3F801307388003C0A2130112C0A200E01380130300F01300EACC0EEA83F8121A7E9917>
-I<7FA41201A31203A21207120F381FFF80B5FC38078000AD1440A73803C08012013800E1
-00133E12257FA417>I<000F130FB413FFA2001F131F6C7FB05CA26C132F3903804F8039
-01C08FF038007F0F1C1A7E9921>I<3AFFF3FF83FEA23A1F803C00F8D80F001460EB801C
-0007011E1340A2D9C02E13C00003012F1380A23A01E04701001581A23900F0838215C2A2
-90387901C415E4137B90383E00E815F8A2011C1370A20118133001081320271A7F992A>
-119 D<39FFF01FF0A2390F8007800007EB03001402A26C6C5AA2EBE00C00011308A26C6C
-5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80A26DC7FCA31306A21304A2130C1308A2EA70
-1012F85BA2485AEA6180001FC8FC1C267F991F>121 D<387FFFF8387800F0EA60010040
-13E0EB03C0EAC00700801380EB0F005BEA001E5B137C13785B1201EBE008EA03C0120713
-80380F0018481310121E481330007C1370387801F0B5FC151A7E991A>I<B612F01C0180
-901D>I<000F1340381FC0803833F300EA40FEEA803C12057BA71D>126
-D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA81D>I E /Fm
-12 115 df<1518153CA3157EA315FFA39138019F80A39138030FC0A202077FEC0607A202
-0E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A131FA201038191C712
-0FA249B67EA20106C71207496E7EA3496E7EA201388101301400A20170810160157EA249
-157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB3C>65
-D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170CA21503
-A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706A5170E
-A2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
-D<D90FF0138090387FFE013901F00F813903C001C348C712E3000E143748143F003C141F
-0038140F127800701407A200F01403A415017EA27E007C91C7FC127E7E13C0EA1FF06CB4
-FC6C13F06C13FE6CEBFFC06C14F0011F7F010313FE9038003FFF14039138007F80ED1FC0
-150FED07E01503A2ED01F012C0A21500A37EA216E07E15016C15C0A26CEC03806C140700
-F71500D8E1C0131ED8E0F05BD8C07E13F090380FFFE0D8800190C7FC243D7CBB2C>83
-D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
-00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>I<267FFFE09038
-07FFF8A20003018001011380C690C8EAFE00491578017F15706D6C14605F6D6C13016D6C
-5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E027F137091383F80605EEC1FC19138
-0FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B7EA2913801DFC09138038FE0150F
-91380607F091380E03F8140C4A6C7E91383800FE14304A137F02E06D7E5C49486D7E0103
-6E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E0130157E0170157F01F0ED3F80D8
-03F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C>88 D<EB3F803801C0F03803003C
-00047F000C7F486D7E001C80003E1303003F80A3121EC7FCA3143FEB0FF3EB7E03EA01F8
-EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407A2007C130B127E003E903811F0C0
-6C13603A07C1807F803A00FE003E0023257CA427>97 D<EA03E012FFA212071203B3EC3F
-C0ECE0789038E3001C01E6130F01E8EB078001F8EB03C049EB01E04914F0150016F8A216
-FC167CA2167EA9167CA216FC16F8A2ED01F016E06D130301D814C001C8EB07800184EB0E
-0001835B903881C0F09038003F80273C7EBB2C>I<ED0F80EC03FFA2EC001F150FB3EB03
-F8EB1E07903870018F9038E0004FD803C0132F4848131F120F90C7120F5A123EA2127E12
-7CA212FCA9127CA2127E123EA2121E121F6C141F6C6C133F6C6C136F6C6C13CF3A007001
-8FC090393C0E0FFEEB07F0273C7DBB2C>100 D<EA03E012FFA212071203B3EC1FE0EC60
-7CEC801E9038E3000F01E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FC
-A2283C7EBB2C>104 D<1207EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F
-1207B3ACEA0FE0EAFFFEA20F397DB815>I<3903E01FE000FFEB607CEC801E3907E3000F
-D803E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FCA228257EA42C>
-110 D<3803E03E00FF13C39038E107803907E20FC0EA03E413E8EC0780EC030001F0C7FC
-A35BB3A5487EB512C0A21A257EA41E>114 D E end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 701 411 a Fm(Sindhi)27 b(in)g(ArabT)1255 430
-y(E)1300 411 y(X)853 559 y Fl(Klaus)19 b(Lagally)742
-634 y(Institut)e(f)r(\177)-31 b(ur)19 b(Informatik)724
-708 y(Breit)n(wiesenstra\031e)f(20{22)797 783 y(D-70565)i(Stuttgart)873
-858 y(GERMANY)677 933 y Fk(mailto:lagally)o(k@ac)o(m.or)o(g)823
-1049 y Fl(August)f(06,)h(1997)235 1118 y Fj(There)g(is)g(a)g(new)g
-(ArabT)715 1129 y(E)742 1118 y(X)g(language)h(mo)q(de,)f
-Fi(\\setsindh)o(i)p Fj(,)d(for)k(pro)q(cessing)f(Sindhi)162
-1178 y(texts)c(in)g(the)g(extended)f(Arabic)g(writing.)235
-1238 y(This)23 b(mo)q(de)f(w)o(orks)h(only)g(with)f(ArabT)1001
-1249 y(E)1029 1238 y(X)g(v)o(ersion)g(3.06)i(or)f(later)f(and)i
-(requires)d(an)162 1299 y(up)q(dated)c(v)o(ersion)e(of)i(the)e(fon)o(t)
-h(\\nash14".)24 b(These)16 b(conditions)g(are)g(c)o(hec)o(k)o(ed,)e(if)
-h(L)1692 1287 y Fh(A)1712 1299 y Fj(T)1739 1309 y(E)1766
-1299 y(X2)p Fg(")h Fj(is)162 1359 y(used.)21 b(F)l(or)c(Plain)f(T)535
-1370 y(E)562 1359 y(X)g(there)f(are)i(no)f(c)o(hec)o(ks.)235
-1419 y(T)l(o)f(activ)m(ate)f(the)h(Sindhi)f(mo)q(de,)g(select)f(the)h
-(language)i(b)o(y)e Fi(\\setsindhi)o Fj(.)k(Sindhi)c(input)162
-1479 y(texts)24 b(are)g(enco)q(ded)g(in)g(a)h(mo)q(di\014cation)e(of)i
-(the)f(standard)h(ArabT)1479 1490 y(E)1507 1479 y(X)e(enco)q(ding.)46
-b(The)162 1539 y(alphab)q(et)17 b(is)f(giv)o(en)f(in)h(T)l(able)g(1.)
-235 1600 y(F)l(or)f(the)f(use)g(of)h(the)f(enco)q(ding,)g(see)g(T)l
-(able)h(2.)20 b(It)14 b(con)o(tains)h(all)f(Sindhi)f(letters,)h
-(together)162 1660 y(with)f(their)g(input)h(enco)q(ding)g(and)g(a)g(t)o
-(ypical)e(example)g(of)i(use.)20 b(F)l(or)14 b(ev)o(ery)e(line)g(the)i
-(external)162 1720 y(notation)j(is)f(also)h(giv)o(en.)222
-1834 y(1.)24 b(This)f(is)g(a)g(preliminary)e(v)o(ersion)h(solely)h(in)o
-(tended)f(for)h(insp)q(ection,)h(exp)q(erimen)o(ts,)284
-1894 y(ev)m(aluation,)16 b(and)g(suggestions.)22 b(The)16
-b(\014nal)h(v)o(ersion)e(ma)o(y)f(di\013er)i(in)g(details,)f(dep)q
-(end-)284 1954 y(ing)h(on)h(feedbac)o(k)e(b)o(y)h(the)g(users.)222
-2035 y(2.)24 b(Use)16 b(h)o(yphens)g(to)g(resolv)o(e)f(am)o(biguities)f
-(with)i(aspired)h(consonan)o(ts.)222 2116 y(3.)24 b(If)19
-b(the)g(new)g(fon)o(t)g(is)g(not)h(a)o(v)m(ailable,)f(the)g(\\wide)g
-(letter)g(k)m(af)s(")h(is)f(missing.)29 b(W)l(e)19 b(tem-)284
-2177 y(p)q(orarily)12 b(substitute)g(an)g(ordinary)g(letter)f(k)m(af)h
-(with)g(four)g(dots,)h(whic)o(h)e(do)q(es)i(not)f(exist,)284
-2237 y(but)k(should)h(b)q(e)f(conspicuous)h(enough.)222
-2318 y(4.)24 b(T)l(an)o(w)o(een)16 b(w)o(orks)g(as)h(exp)q(ected:)j
-Fi(miN)f Ff(\324)1004 2337 y(\023)1033 2318 y Fj(,)d
-Fi('|iN)j Ff(Z)1187 2337 y(\023)1216 2318 y Fj(.)222
-2411 y(5.)24 b(The)c(user)f(ma)o(y)g(w)o(an)o(t)g(to)h(break)g(some)f
-(ligatures)g(b)o(y)h(inserting)f(a)h(v)o(ertical)e(bar,)j(to)284
-2471 y(get)16 b(the)g(correct)g(writing,)f(or)i(just)f(for)h(a)f(b)q
-(etter)g(app)q(earance)i(of)e(the)g(script.)1018 2744
-y(1)p eop
-%%Page: 2 2
-2 1 bop 236 348 1589 2 v 235 473 2 126 v 244 473 V 306
-424 a Fe(a)p 404 473 V 461 361 a Fd(\013)463 424 y(@)p
-528 473 V 94 w Fc(a)p 646 473 V 655 473 V 93 w Fe(~n)p
-815 473 V 868 439 a Fd(\012)854 424 y(h)p 935 473 V 77
-w Fc(~)-38 b(n)p 1056 473 V 1065 473 V 93 w Fe(z)p 1188
-473 V 96 w Fd(R)p 1321 473 V 94 w Fc(z)p 1442 473 V 1451
-473 V 79 w Fe(kh)p 1574 473 V 55 w Fd(\270)p 1694 473
-V 51 w Fc(kh)p 1816 473 V 1825 473 V 235 587 2 114 v
-244 587 V 306 538 a Fe(b)p 404 587 V 94 w Fd(H)465 560
-y(.)p 528 587 V 572 538 a Fc(b)p 646 587 V 655 587 V
-95 w Fe(^c)p 815 587 V 81 w Fd(x)p 935 587 V 77 w Fc(\024)k(c)p
-1056 587 V 1065 587 V 96 w Fe(s)p 1188 587 V 79 w Fd(\200)p
-1321 587 V 77 w Fc(s)p 1442 587 V 1451 587 V 98 w Fe(g)p
-1574 587 V 73 w Fd(\300)p 1694 587 V 69 w Fc(g)p 1816
-587 V 1825 587 V 235 701 V 244 701 V 288 652 a Fe(:b)p
-404 701 V 75 w Fd(H)465 672 y(\011)465 683 y(.)p 528
-701 V 572 652 a Fc(b)561 707 y(\177)p 646 701 V 655 701
-V 680 652 a Fe(^ch)p 815 701 V 868 661 a Fd(\020)868
-671 y(\012)854 652 y(h)p 935 701 V 59 w Fc(\024)g(ch)p
-1056 701 V 1065 701 V 60 w Fe(^s)p 1188 701 V 60 w Fd(\210)p
-1321 701 V 73 w Fc(\024)i(s)p 1442 701 V 1451 701 V 79
-w Fe(:g)p 1574 701 V 55 w Fd(\300)1634 668 y(\011)1634
-678 y(.)p 1694 701 V 1740 652 a Fc(g)1729 721 y(\177)p
-1816 701 V 1825 701 V 235 827 2 127 v 244 827 V 288 778
-a Fe(bh)p 404 827 V 75 w Fd(H)459 799 y(\020)459 809
-y(\012)p 528 827 V 554 778 a Fc(bh)p 646 827 V 655 827
-V 77 w Fe(.h)p 815 827 V 81 w Fd(h)p 935 827 V 77 w Fc(h)982
-793 y(.)p 1056 827 V 1065 827 V 1091 778 a Fe(.s)p 1188
-827 V 54 w Fd(\220)p 1321 827 V 71 w Fc(s)1368 793 y(.)p
-1442 827 V 1451 827 V 1476 778 a Fe(gh)p 1574 827 V 62
-w Fd(\354)1633 762 y(\303)p 1694 827 V 1722 778 a Fc(gh)p
-1816 827 V 1825 827 V 235 953 V 244 953 V 306 904 a Fe(t)p
-404 953 V 459 880 a Fd(\020)437 904 y(H)p 528 953 V 73
-w Fc(t)p 646 953 V 655 953 V 708 904 23 2 v 131 w Fe(h)p
-815 953 2 127 v 87 w Fd(p)p 935 953 V 77 w Fc(h)970 962
-y(\025)p 1056 953 V 1065 953 V 1091 904 a Fe(.d)p 1188
-953 V 54 w Fd(\230)p 1321 953 V 67 w Fc(d)1368 919 y(.)p
-1442 953 V 1451 953 V 1476 904 a Fe(:n)p 1574 953 V 1627
-843 a Fd(\020)1605 904 y(\300)p 1694 953 V 65 w Fc(n)1729
-960 y(\177)p 1816 953 V 1825 953 V 235 1067 2 114 v 244
-1067 V 288 1018 a Fe(th)p 404 1067 V 459 984 a Fd(\020)459
-994 y(\020)437 1018 y(H)p 528 1067 V 55 w Fc(th)p 646
-1067 V 655 1067 V 100 w Fe(d)p 815 1067 V 110 w Fd(X)p
-935 1067 V 86 w Fc(d)p 1056 1067 V 1065 1067 V 76 w Fe(.t)p
-1188 1067 V 67 w Fd(\240)p 1321 1067 V 87 w Fc(t)1368
-1033 y(.)p 1442 1067 V 1451 1067 V 1495 1018 a Fe(l)p
-1574 1067 V 87 w Fd(\310)p 1694 1067 V 92 w Fc(l)p 1816
-1067 V 1825 1067 V 235 1181 V 244 1181 V 288 1132 a Fe(,t)p
-404 1181 V 459 1098 a Fd(\022)437 1132 y(H)p 528 1181
-V 573 1119 a Fc(\023)576 1132 y(t)p 646 1181 V 655 1181
-V 100 w Fe(dh)p 815 1181 V 868 1091 a Fd(\020)864 1132
-y(X)p 935 1181 V 68 w Fc(dh)p 1056 1181 V 1065 1181 V
-58 w Fe(.z)p 1188 1181 V 67 w Fd(\244)p 1321 1181 V 84
-w Fc(z)1368 1147 y(.)p 1442 1181 V 1451 1181 V 1495 1132
-a Fe(m)p 1574 1181 V 95 w Fd(\324)p 1694 1181 V 79 w
-Fc(m)p 1816 1181 V 1825 1181 V 235 1295 V 244 1295 V
-269 1246 a Fe(,th)p 404 1295 V 465 1212 a Fd(\011)465
-1221 y(\011)437 1246 y(H)p 528 1295 V 555 1233 a Fc(\023)558
-1246 y(th)p 646 1295 V 655 1295 V 82 w Fe(:d)p 815 1295
-V 868 1196 a Fd(\022)864 1246 y(X)p 935 1295 V 86 w Fc(d)970
-1301 y(\177)p 1056 1295 V 1065 1295 V 1109 1246 a Fe(`)p
-1188 1295 V 90 w Fd(\250)p 1321 1295 V 98 w Fb(,)p 1442
-1295 V 1451 1295 V 97 w Fe(n)p 1574 1295 V 1634 1213
-a Fd(\011)1617 1246 y(\340)p 1694 1295 V 79 w Fc(n)p
-1816 1295 V 1825 1295 V 235 1412 2 118 v 244 1412 V 297
-1363 23 2 v 319 1363 a Fe(s)p 404 1412 2 118 v 459 1339
-a Fd(\021)437 1363 y(H)p 528 1412 V 73 w Fc(t)559 1412
-y(\026)p 646 1412 V 655 1412 V 699 1363 a Fe(,d)p 815
-1412 V 91 w Fd(X)874 1381 y(.)p 935 1412 V 983 1344 a
-Fc(\023)979 1363 y(d)p 1056 1412 V 1065 1412 V 76 w Fe(.g)p
-1188 1412 V 1254 1319 a Fd(\011)1236 1363 y(\250)p 1321
-1412 V 92 w Fc(_)-27 b(g)p 1442 1412 V 1451 1412 V 77
-w Fe(,n)p 1574 1412 V 1629 1329 a Fd(\010)1617 1363 y(\340)p
-1694 1412 V 81 w Fc(\023)-38 b(n)p 1816 1412 V 1825 1412
-V 235 1530 V 244 1530 V 306 1481 a Fe(p)p 404 1530 V
-94 w Fd(H)459 1502 y(\022)p 528 1530 V 570 1481 a Fc(p)p
-646 1530 V 655 1530 V 74 w Fe(,dh)p 815 1530 V 73 w Fd(X)868
-1498 y(\012)p 935 1530 V 965 1462 a Fc(\023)961 1481
-y(dh)p 1056 1530 V 1065 1530 V 76 w Fe(f)p 1188 1530
-V 77 w Fd(\362)p 1321 1530 V 79 w Fc(f)p 1442 1530 V
-1451 1530 V 101 w Fe(w)p 1574 1530 V 82 w Fd(\360)p 1694
-1530 V 82 w Fc(w)p 1816 1530 V 1825 1530 V 235 1645 2
-116 v 244 1645 V 306 1596 a Fe(j)p 404 1645 V 102 w Fd(`)p
-528 1645 V 77 w Fc(\024)k(g)p 646 1645 V 655 1645 V 708
-1596 23 2 v 126 w Fe(d)p 815 1645 2 116 v 874 1556 a
-Fd(\011)864 1596 y(X)p 935 1645 V 86 w Fc(d)967 1645
-y(\026)p 1056 1645 V 1065 1645 V 1091 1596 a Fe(ph)p
-1188 1645 V 1248 1546 a Fd(\020)1248 1556 y(\020)1223
-1596 y(\254)p 1321 1645 V 53 w Fc(ph)p 1442 1645 V 1451
-1645 V 58 w Fe(,h)p 1574 1645 V 80 w Fd(\350)p 1694 1645
-V 87 w Fc(h)p 1816 1645 V 1825 1645 V 235 1759 2 114
-v 244 1759 V 288 1710 a Fe(:j)p 404 1759 V 465 1722 a
-Fd(\011)465 1732 y(.)445 1710 y(h)p 528 1759 V 77 w Fc(\177)k(\021)p
-646 1759 V 655 1759 V 118 w Fe(r)p 815 1759 V 108 w Fd(P)p
-935 1759 V 88 w Fc(r)p 1056 1759 V 1065 1759 V 97 w Fe(q)p
-1188 1759 V 88 w Fd(\364)p 1321 1759 V 84 w Fc(q)p 1442
-1759 V 1451 1759 V 97 w Fe(h)p 1574 1759 V 87 w Fd(\353)p
-1694 1759 V 83 w Fc(h)p 1816 1759 V 1825 1759 V 235 1873
-V 244 1873 V 288 1824 a Fe(jh)p 404 1873 V 73 w Fd(\354)456
-1808 y(c)p 528 1873 V 552 1824 a Fc(\024)c(gh)p 646 1873
-V 655 1873 V 77 w Fe(,r)p 815 1873 V 868 1794 a Fd(\020)868
-1804 y(\020)862 1824 y(P)p 935 1873 V 85 w Fc(\023)h(r)p
-1056 1873 V 1065 1873 V 97 w Fe(k)p 1188 1873 V 79 w
-Fd(\234)p 1321 1873 V 75 w Fc(k)p 1442 1873 V 1451 1873
-V 97 w Fe(y)p 1574 1873 V 79 w Fd(\370)1627 1862 y(\012)p
-1694 1873 V 1739 1824 a Fc(y)p 1816 1873 V 1825 1873
-V 236 1875 1589 2 v 235 1988 2 114 v 244 1988 V 306 1940
-a Fe(a)p 404 1988 V 96 w Fd(\005)462 1917 y(\013)460
-1940 y(\006)o(\007)p 528 1988 V 69 w Fc(a)p 646 1988
-V 655 1988 V 111 w Fe(e)p 815 1988 V 94 w Fd(\005\006)871
-1961 y(\013)888 1940 y(\007)p 935 1988 V 71 w Fc(e)p
-1056 1988 V 1065 1988 V 97 w Fe(i)p 1188 1988 V 81 w
-Fd(\005\006)1250 1961 y(\013)1268 1940 y(\007)p 1321
-1988 V 83 w Fc(i)p 1442 1988 V 1451 1988 V 101 w Fe(o)p
-1574 1988 V 75 w Fd(\005)1630 1917 y(\014)1628 1940 y(\006)o(\007)p
-1694 1988 V 69 w Fc(o)p 1816 1988 V 1825 1988 V 235 2107
-2 119 v 244 2107 V 306 2054 a Fe(u)p 404 2107 V 96 w
-Fd(\005)462 2031 y(\014)460 2054 y(\006)o(\007)p 528
-2107 V 68 w Fc(u)p 646 2107 V 655 2107 V 110 w Fe(A)p
-815 2107 V 106 w Fd(A)879 2031 y(\013)877 2054 y(\007)p
-935 2107 V 81 w Fc(\026)d(a)p 1056 2107 V 1065 2107 V
-94 w Fe(E)p 1188 2107 V 92 w Fd(\377\007)p 1321 2107
-V 84 w Fc(\026)i(e)p 1442 2107 V 1451 2107 V 97 w Fe(I)p
-1574 2107 V 73 w Fd(\371)1617 2099 y(\012)1650 2054 y(\007)1652
-2075 y(\013)p 1694 2107 V 1738 2054 a Fc(\026)-29 b(\020)p
-1816 2107 V 1825 2107 V 235 2221 2 114 v 244 2221 V 306
-2173 a Fe(O)p 404 2221 V 96 w Fd(\361\007)p 528 2221
-V 70 w Fc(\026)-36 b(o)p 646 2221 V 655 2221 V 111 w
-Fe(U)p 815 2221 V 89 w Fd(\361)885 2150 y(\014)883 2173
-y(\007)p 935 2221 V 75 w Fc(\026)f(u)p 1056 2221 V 1065
-2221 V 75 w Fe(ae)p 1188 2221 V 73 w Fd(\377)1261 2150
-y(\013)1259 2173 y(\007)p 1321 2221 V 68 w Fc(ae)p 1442
-2221 V 1451 2221 V 60 w Fe(ao)p 1574 2221 V 52 w Fd(\361)1644
-2150 y(\013)1642 2173 y(\007)p 1694 2221 V 57 w Fc(ao)p
-1816 2221 V 1825 2221 V 235 2355 2 135 v 244 2355 V 306
-2307 a Fe(i)p 404 2355 V 120 w Fd(@)461 2324 y(\013)p
-528 2355 V 577 2307 a Fc(i)p 646 2355 V 655 2355 V 708
-2307 23 2 v 131 w Fe(A)p 815 2355 2 135 v 79 w Fd(\371)892
-2284 y(\013)890 2307 y(\007)p 935 2355 V 68 w Fc(\026)h(a)p
-1056 2355 V 1065 2355 V 76 w Fe('A)p 1188 2355 V 1246
-2244 a Fd(\016)1252 2307 y(@)p 1321 2355 V 95 w Fb(-)-7
-b Fc(\026)-36 b(a)p 1442 2355 V 1451 2355 V 67 w Fe('a)p
-1574 2355 V 1629 2244 a Fd(\015)1631 2307 y(@)p 1694
-2355 V 89 w Fb(-)-7 b Fc(a)p 1816 2355 V 1825 2355 V
-235 2469 2 114 v 244 2469 V 288 2421 a Fe('i)p 404 2469
-V 101 w Fd(@)461 2447 y(\015)p 528 2469 V 573 2421 a
-Fb(-)g Fc(i)p 646 2469 V 655 2469 V 91 w Fe('y)p 815
-2469 V 870 2398 a Fd(\015)852 2421 y(\370)p 935 2469
-V 71 w Fb(-)g Fc(y)p 1056 2469 V 1065 2469 V 69 w Fe('w)p
-1188 2469 V 1250 2390 a Fd(\015)1240 2421 y(\360)p 1321
-2469 V 79 w Fb(-)g Fc(w)p 1442 2469 V 1451 2469 V 61
-w Fe('|)p 1574 2469 V 77 w Fd(Z)p 1694 2469 V 103 w Fb(-)p
-1816 2469 V 1825 2469 V 236 2471 1589 2 v 709 2551 a
-Fj(T)l(able)16 b(1:)21 b(The)c(Sindhi)e(Alphab)q(et)1018
-2744 y(2)p eop
-%%Page: 3 3
-3 2 bop 162 315 a Fk(1:)25 b(a)h(anbu)f(b)g(badaka)g(:b)g(:bilI)g(bh)g
-(bhOli,rO)166 389 y Fa(\360)206 364 y(\020)206 372 y(\020)201
-389 y(Q)o(\313)228 407 y(\013)246 389 y(\361K)279 403
-y(\020)279 411 y(\012)323 389 y Fl(bh)k Fa(H)436 406
-y(\020)436 415 y(\012)649 389 y(\372)656 428 y(\012)680
-389 y(\316)685 431 y(\013)703 382 y(K)708 396 y(\011)708
-405 y(.)705 419 y(\013)746 389 y Fl(:b)h Fa(H)849 406
-y(\011)849 415 y(.)1077 354 y(\013)1056 389 y(\234)1125
-350 y(\013)1115 389 y(Y)1151 361 y(\013)1149 389 y(K)1154
-404 y(.)1192 389 y Fl(b)f Fa(H)1278 407 y(.)1508 367
-y(\014)1486 389 y(I)1511 407 y(.)1548 362 y(\011)1543
-389 y(K)1563 337 y(\013)1564 389 y(@)c Fl(a)1658 337
-y Fa(\013)1660 389 y(@)1843 376 y(:)5 b(1)162 475 y Fk(2:)25
-b(t)h(ti:di)e(th)i(thIlihI)e(,t)h(,tOplO)g(,th)g(,thUn,thi)192
-533 y Fa(\011)192 541 y(\011)166 562 y(I)188 583 y(\013)229
-534 y(\011)224 562 y(K)l(\361)271 511 y(\014)274 526
-y(\011)274 534 y(\011)269 562 y(K)j Fl(,th)438 533 y
-Fa(\011)438 541 y(\011)415 562 y(H)150 b(\361\312K)669
-576 y(\022)692 562 y(\361)725 527 y(\022)725 562 y(K)27
-b Fl(,t)856 534 y Fa(\022)837 562 y(H)159 b(\372)1058
-600 y(\012)1081 562 y(\346\352)1112 593 y(\013)1129 562
-y(\312)1130 579 y(\013)1146 562 y(J)1146 576 y(\012)1163
-526 y(\020)1163 534 y(\020)1163 562 y(K)1164 579 y(\013)1205
-562 y Fl(th)1309 533 y Fa(\020)1309 541 y(\020)1291 562
-y(H)1513 517 y(\022)1504 562 y(Y)1514 579 y(\013)1538
-534 y(\020)1538 562 y(K)1540 579 y(\013)1581 562 y Fl(t)1652
-541 y Fa(\020)1634 562 y(H)1843 548 y(:)5 b(2)162 647
-y Fk(3:)25 b(_s)h(_samara)e(p)h(pakhO)g(j)h(jahAzu)e(:j)h(:jibha)188
-716 y Fa(\013)166 738 y(I)187 755 y(\020)187 764 y(\012)224
-738 y(k)241 752 y(\011)241 760 y(.)237 775 y(\013)290
-738 y Fl(:j)372 748 y Fa(\011)372 756 y(.)355 738 y(h)593
-703 y(\014)586 738 y(R)t(A)634 703 y(\013)631 738 y(\352)665
-703 y(\013)652 738 y(c)h Fl(j)k Fa(`)192 b(\361\272)1073
-709 y(\013)1071 738 y(K)1071 753 y(\022)1116 738 y Fl(p)29
-b Fa(H)1197 756 y(\022)1430 720 y(\013)1424 738 y(Q)1459
-703 y(\013)1451 738 y(\334)1485 676 y(\013)1483 701 y(\021)1481
-735 y(\337)p 1531 738 18 2 v 1548 738 a Fl(s)1620 718
-y Fa(\021)1602 738 y(H)1843 725 y(:)5 b(3)162 820 y Fk(4:)25
-b(jh)h(jihrkI)e(~n)h(:ja~na)g(^c)g(^can,du)f(^ch)h(^cha,tI)166
-894 y Fa(\372)173 932 y(\012)202 860 y(\022)197 894 y(\346)203
-926 y(\013)237 859 y(\013)224 894 y(k)236 908 y(\020)236
-916 y(\012)290 894 y Fl(^c)n(h)418 902 y Fa(\020)418
-910 y(\012)407 894 y(h)602 855 y(\014)592 894 y(Y)606
-909 y(.)631 867 y(\011)626 894 y(J)657 859 y(\013)643
-894 y({)i Fl(^c)j Fa(x)981 859 y(\013)979 906 y(\012)981
-894 y(l)1008 845 y(\013)994 881 y(k)1011 894 y(\011)1011
-903 y(.)1061 894 y Fl(~n)1164 907 y Fa(\012)1153 894
-y(h)145 b(\372)1345 932 y(\012)1369 894 y(\346\237)1416
-912 y(\013)1450 894 y(Q\352c)1513 926 y(\013)1564 894
-y Fl(jh)30 b Fa(\354)1661 881 y(c)142 b(:)5 b(4)162 980
-y Fk(5:)25 b(.h)h(.huqO)e(_h)i(_ha:tu)e(d)i(daru)e(dh)i(dhuka.ra)173
-1028 y Fa(\013)171 1043 y(\020)171 1052 y(\020)166 1069
-y(Q)214 1033 y(\013)193 1069 y(\237)253 1019 y(\014)251
-1035 y(\020)248 1069 y(X)g Fl(dh)396 1035 y Fa(\020)392
-1069 y(X)618 1050 y(\014)611 1069 y(P)648 1033 y(\013)643
-1069 y(X)g Fl(d)k Fa(X)989 1016 y(\014)974 1069 y(\241)1032
-1016 y(\013)1018 1069 y(s)p 1088 1069 V 48 w Fl(h)g Fa(p)196
-b(\361)1443 1038 y(\020)1438 1069 y(\256)1479 1033 y(\014)1466
-1069 y(k)26 b Fl(.h)k Fa(h)1843 1055 y(:)5 b(5)162 1150
-y Fk(6:)25 b(:d)h(:dOlu)e(,d)i(,dAkha)e(,dh)h(,dha:gI)f(_d)i(_da_hIrO)
-158 1238 y Fa(\360)193 1225 y(Q)220 1238 y(\036)220 1253
-y(\012)253 1208 y(\011)236 1238 y(g)250 1256 y(\013)287
-1189 y(\013)290 1205 y(\011)281 1238 y(X)p 334 1238 V
-48 w Fl(d)423 1205 y Fa(\011)415 1238 y(X)174 b(\372)619
-1277 y(\012)643 1238 y(\346\307)679 1252 y(\011)679 1260
-y(.)676 1275 y(\013)699 1203 y(\013)694 1238 y(X)697
-1253 y(\012)743 1238 y Fl(,dh)30 b Fa(X)858 1253 y(\012)1073
-1186 y(\013)1052 1238 y(\270)t(@)1131 1203 y(\013)1126
-1238 y(X)1135 1253 y(.)1175 1238 y Fl(,d)g Fa(X)1262
-1253 y(.)1460 1186 y(\014)1451 1238 y(\310)t(\360)1525
-1197 y(\022)1521 1238 y(X)d Fl(:d)1653 1197 y Fa(\022)1650
-1238 y(X)1843 1225 y(:)5 b(6)162 1324 y Fk(7:)25 b(r)h(rIla)f(,r)g
-(bagha,ru)f(z)i(zAla)e(s)i(sijju)166 1360 y Fa(\014)165
-1373 y(\017)166 1408 y(d)180 1395 y(\031)220 1391 y(\205)220
-1409 y(\013)260 1408 y Fl(s)k Fa(\200)596 1356 y(\013)588
-1408 y(\310)s(@)644 1373 y(\013)637 1408 y(R)25 b Fl(z)30
-b Fa(R)1000 1368 y(\014)998 1383 y(\020)998 1391 y(\020)993
-1408 y(Q)1024 1373 y(\013)1020 1408 y(\352\302)1083 1380
-y(\013)1081 1408 y(K)1086 1423 y(.)1124 1408 y Fl(,r)1198
-1383 y Fa(\020)1198 1391 y(\020)1193 1408 y(P)1454 1356
-y(\013)1441 1408 y(\311K)1481 1423 y(\012)1503 1408 y(P)1509
-1443 y(\013)1556 1408 y Fl(r)21 b Fa(P)1843 1395 y(:)5
-b(7)162 1490 y Fk(8:)25 b(^s)h(^sInhun)e(.s)h(.sUfu)g(.d)g(.da`Ifu)f
-(.t)i(.tO.tO)158 1564 y Fa(\361\243)l(\361\243)f Fl(.t)31
-b Fa(\240)583 1512 y(\014)559 1564 y(\363)q(J)620 1579
-y(\012)637 1564 y(\252)646 1582 y(\013)685 1529 y(\013)668
-1564 y(\233)25 b Fl(.d)30 b Fa(\230)1031 1512 y(\014)1009
-1564 y(\362)l(\361)1113 1529 y(\014)1095 1564 y(\223)c
-Fl(.s)31 b Fa(\220)1443 1551 y(\011)1428 1564 y(\341)1469
-1529 y(\014)1465 1564 y(\352)1491 1537 y(\011)1485 1564
-y(J)q(\034)1504 1579 y(\012)1523 1564 y(\213)1535 1582
-y(\013)1586 1564 y Fl(^s)f Fa(\210)1843 1551 y(:)5 b(8)162
-1646 y Fk(9:)25 b(.z)h(.zAlimu)e(`)h(`aynaka)f(.g)i(.gAlI^cO)e(f)h
-(fawjI)166 1727 y Fa(\372)173 1765 y(\012)197 1727 y(\346c)239
-1758 y(\013)269 1727 y(\361)305 1678 y(\013)309 1693
-y(\011)302 1727 y(\257)h Fl(f)k Fa(\362)154 b(\361zJ)686
-1741 y(\012)703 1727 y(\313)703 1745 y(\013)721 1727
-y(A)742 1678 y(\013)746 1693 y(\011)734 1727 y(\253)26
-b Fl(.g)881 1690 y Fa(\011)866 1727 y(\250)1077 1691
-y(\013)1057 1727 y(\235)1113 1684 y(\013)1116 1700 y(\011)1111
-1727 y(J)q(J)1128 1741 y(\012)1154 1691 y(\013)1145 1727
-y(\253)f Fl(`)31 b Fa(\250)1440 1708 y(\014)1439 1727
-y(\005)q(\322\313)1484 1745 y(\013)1501 1727 y(A)1526
-1674 y(\013)1514 1727 y(\247)25 b Fl(.z)31 b Fa(\244)1843
-1713 y(:)5 b(9)162 1812 y Fk(10:)25 b(ph)g(phUhArO)f(q)i(qalamu)e(k)i
-(kutO)f(kh)g(kha,ta)188 1864 y Fa(\013)187 1878 y(\022)166
-1906 y(I)232 1853 y(\013)224 1906 y(\273)c Fl(kh)29 b
-Fa(\270)144 b(\361)601 1879 y(\020)601 1906 y(J)639 1870
-y(\014)619 1906 y(\237)21 b Fl(k)30 b Fa(\234)965 1887
-y(\014)963 1906 y(\005)q(\322)1010 1853 y(\013)1008 1906
-y(\312)1028 1857 y(\013)1026 1872 y(\020)1024 1906 y(\257)c
-Fl(q)k Fa(\364)145 b(\360)t(P)t(A)1405 1870 y(\013)1397
-1906 y(\353)-5 b(\361)1459 1848 y(\014)1458 1864 y(\020)1458
-1872 y(\020)1456 1906 y(\257)26 b Fl(ph)1618 1864 y Fa(\020)1618
-1872 y(\020)1598 1906 y(\254)1805 1892 y(:)5 b(1)g(0)162
-1987 y Fk(11:)25 b(g)h(ga:dahu)e(:g)h(:gayrO)f(gh)i(ghO,rO)e(:n)i
-(si:na)187 2016 y Fa(\013)185 2031 y(\020)166 2082 y(\301)o(\203)232
-2099 y(\013)284 2082 y Fl(:n)381 2031 y Fa(\020)362 2082
-y(\300)141 b(\360)598 2057 y(\020)598 2065 y(\020)593
-2082 y(P)s(\361\352\303)21 b Fl(gh)30 b Fa(\354)838 2068
-y(\303)1015 2082 y(\360)1050 2068 y(Q)1077 2082 y(\036)1077
-2096 y(\012)1102 2029 y(\013)1094 2082 y(\303)1105 2095
-y(\011)1105 2104 y(.)1146 2082 y Fl(:g)g Fa(\300)1245
-2095 y(\011)1245 2104 y(.)1434 2046 y(\014)1425 2082
-y(\353)1470 2023 y(\013)1468 2037 y(\022)1460 2082 y(Y)1502
-2029 y(\013)1494 2082 y(\303)21 b Fl(g)30 b Fa(\300)1805
-2068 y(:)5 b(1)g(1)162 2163 y Fk(12:)25 b(l)h(la.ga,ru)d(m)j(ma^chI)e
-(n)i(nAngu)f(,n)g(wa,nu)176 2202 y Fa(\014)176 2223 y(\010)166
-2252 y(\340)213 2226 y(\013)204 2252 y(\360)h Fl(,n)350
-2223 y Fa(\010)340 2252 y(\340)599 2199 y(\014)579 2252
-y(\301)638 2224 y(\011)633 2252 y(K)5 b(A)669 2209 y(\013)672
-2224 y(\011)667 2252 y(K)27 b Fl(n)787 2224 y Fa(\011)773
-2252 y(\340)206 b(\372)1019 2290 y(\012)1042 2252 y(\346m)1065
-2282 y(\020)1065 2290 y(\012)1067 2308 y(\013)1084 2202
-y(\013)1077 2238 y(\327)1129 2252 y Fl(m)30 b Fa(\324)1437
-2211 y(\014)1435 2226 y(\020)1435 2235 y(\020)1430 2252
-y(Q)1466 2213 y(\013)1469 2228 y(\011)1457 2252 y(\252)1488
-2199 y(\013)1488 2252 y(\313)c Fl(l)j Fa(\310)1805 2238
-y(:)5 b(1)g(2)162 2356 y Fk(13:)25 b(w)h(wA:jO)e(h)i(hAthI)e('|)i('|)f
-(y)h(yakO)166 2430 y Fa(\361\236)256 2402 y(\013)254
-2430 y(K)254 2445 y(\012)297 2430 y Fl(y)k Fa(\370)372
-2462 y(\012)599 2430 y(Z)d Fk('|)j Fa(Z)198 b(\372)954
-2468 y(\012)978 2388 y(\020)978 2396 y(\020)978 2430
-y(G)980 2472 y(\013)999 2430 y(A)1020 2395 y(\013)1012
-2430 y(\353)26 b Fl(h)k Fa(\353)196 b(\361k)1410 2444
-y(\011)1410 2452 y(.)1438 2430 y(@)1462 2405 y(\013)1453
-2430 y(\360)25 b Fl(w)30 b Fa(\360)1805 2417 y(:)5 b(1)g(3)457
-2555 y Fj(T)l(able)16 b(2:)21 b(Examples)15 b(for)i(the)f(use)g(of)h
-(the)f(Sindhi)f(Alphab)q(et)1018 2744 y(3)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-2.0
+%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
+%%Title: sindhi.dvi
+%%CreationDate: Tue Feb 03 19:04:24 1998
+%%Pages: 3
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%EndComments
+%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe sindhi -pj:F:\TMP\dv2.mfj
+%DVIPSParameters: dpi=300, compressed, comments removed
+%DVIPSSource: TeX output 1997.09.30:1404
+%%BeginProcSet: texc.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
+userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/sindhi.dvi)
+@start /Fa 106 251 df<387FFFC0A3B51280A31206818510>5
+D<1238A813F0EA3BF8EA3FFC139CEA3E1CEA7DFCEAFFF813F0EA7F000E1180900D>8
+D<1220123C127F127EA212FE123C12040808818606>I<EA2020EA3C3CEA7F7FEA7E7EA2
+EAFEFEEA3C3CEA04041008808610>I<133813F8EA03F0EA0FE0EA3F80EAFE0012F81260
+0D0880870D>I<137813FCEA01FE13CEA213DE13FC120013F8A21203EA07D0EA1F80EA3E
+0012FC12F012600F1180900D>I<EB0380A2EA01C3EA41C700E11300EAE3FF5BB45A6CC7
+FC123E110A808911>15 D<EA2020EA3C3CEA7F7FEA7E7EA2EAFEFEEA3C3CEA0404100880
+8610>I<1202EA03C0EA07F013E0A2120FEA03C0EA00401300EA2020EA3C3CEA7F7FEA7E
+7EA2EAFEFEEA3C3CEA04041011808F10>I<EA2020EA3C3CEA7F7FEA7E7EA2EAFEFEEA3C
+3CEA0404EA0200EA03C0EA07F013E0A2120FEA03C0EA00401010808610>I<153E157FA2
+4B7EA25CEC038791380707C0EC0F03023E7F02FE13F8D907FCEBFFC090387FF8013807FF
+F0007F496C13800280137F49C7120FD8FFF891C7FC138000F0CAFC2A14819328>25
+D<1308A21318131C133CA57FA57FA25B1480133FEBE7C0007F13FEA213C300FF13FC1381
+38FE007C171A819915>28 D<7FA21201A21203120F127FA3487E12FB12E31203A27F1201
+7FA27FEA00FEEBFFC0A2137FEB3F80131F1307121A819910>30 D<1230123E127F127E12
+FEA2121C0807818606>46 D<1208120C121E121F1380EA3FC013E013F0EA7FE0A3EAFFC0
+127F123FEA1F80120F1207EA03007E0C13758C21>48 D<122012701278A212FCA2127EA2
+7EA27E1380120F13C01207A2EA03E0A3120113F0A21200A41378A61338A41330A21320A2
+0D28749621>I<0060131000701330A200F8132014607E14C0EAFF03EA7FFF14807E6C13
+006C5A13F8EA07C0A36C7EA21201A27F1200A41378A61338A41330A21320A21428779621
+>I<0020EB8020D87001136014C00078144039F803E0C014FFD8FE0F1380B6FC6C140013
+FC003F133E49C7FCEA1FE090C8FCA27EA37F1207A41203A27FA51201A65BA290C8FCA21B
+287B9621>I<131813301370EA01F0EA03E01207EA0FC0EA1F80EA1E005A12385A127C12
+FEEAFF8013E0EA7FFC123F120F1203EA00F8A21201EA03F0EA07C0EA0F80EA1F00121E5A
+12385A1278127FEAFFF813FFA2EA7FFE121F1201EA000C1028779621>I<132013701378
+13FC487E487E481380EB3FC0380E1FE0EB0FF0EA1C07381803F8383001FC1300002013FE
+0060137E143EA200E0131E7E140C7EA26C13186C1338387F81F8EBFFF07E6C13E06C13C0
+000313803800FE001720799021>I<38200180EA3C07EA7FFFA3B5FC123FEA0FF3EA0003
+14C0A6EB01E0A514F01300A214F8A21478147CA3143EA2143F141EA2140CA2140418257B
+9321>I<002014040070140C00781418007C143800FE147815F0007F1301393F8003C001
+C01380001F1307D80FE013000007130E3803F00C5CEA01F85C00001320EBFC60EB7C40A2
+6D5AA2131E131FA26DC7FCA57FA31306A21304A21E257E9321>I<5BA25BA25BA380A480
+130FA280130BA2EB19F01311EB31F81320EB60FC147E13C000017F018013800003131FD8
+070013C048EB0FE0001EEB07F04814F8EC03FC4813010070EB00F8006014784814304814
+101E257E9321>I<EA01F8EA07FE487E487FA2487FEA3C1FEA3007486C7EA2130112F0A3
+EAF8007EEAFF03EA7FFFA27E6C7FEA0FFEEA01F8C7FC80A21478147CA2147E143E143F80
+1580EC0FC015801407150080A21A287D9621>I<1270127C127E12FE12FCA2123C1200AA
+1270127EA212FE12FCA2121C07187D970D>I<122012601270A212F012F8A2127CA3127E
+127CA21278A61238A4123CA5121CA4121EA6120EA7120CA21208A207317CB00B>64
+D<1220A21260A212E0A27EA61270A61278A51238A6123CA67EA2121FA21380EA0FC013F8
+A21207EA03F01201EA00700D2F7FAE0D>I<13C0A2EA01E0A213F01203EA01F8A2120013
+FC137CA2133CA2131C1318A2133013F0120FEA7FE0A213C0EAFF80EAFE0012F00E1A8199
+10>71 D<170217071880A20020EE0FC0A2006016071703A212E06CEE0180A27EEF03006C
+5E6C161FD87F80157E01E0EC01FED83FFEEC3FFC6CB75A6C5E6C16C000015E6C6C02FCC7
+FC010314C03219809337>I<1220A21260186018E000E0836C16014D7E6C4C7E4DB4FC6C
+041E13C06CEE7E7FD87F80913801FC3F01E0913907F81F80D83FFE91383FF00F6CB7EAE0
+036C4CC7FC6C93C8FC000115FC6C6C14F0010714803A15808F39>I<1360A313F0120148
+7EEA0FFE387FFFC0A2EA7E7F38FC3F80EAF81FEAE007120D818C10>I<1318A2131C133C
+A5131C1318A21330EA01F0127F13E0A2EAFFC01380EAFC000E13819210>I<15201560A2
+15F0A415F81578A31538A61530A21570156015E0EC01C01403EC0F80143F903801FF00EB
+1FFE3803FFFCB55A000F13E038003FC01D20828B1C>80 D<15101518153EA3157CA2153C
+1538A51570A215F015E01401EC03C01407EC1F80147F903801FF00EB1FFE3803FFFCB55A
+000F13E038003FC01F1C82871C>I<1302EB03C0EB07F05CA2130FEB03C0EB004091C7FC
+A815201560A215F0A415F81578A31538A61530A21570156015E0EC01C01403EC0F80143F
+903801FF00EB1FFE3803FFFCB55A000F13E038003FC01D30829B1C>I<136013F013FC7F
+487E148038007FC0EB3FE0EB0FF01307EB03F813011300A21478A21430A21460EB01E0EA
+3FFF14C05A14801400EAFFFC151A7F9917>88 D<144014C080A21301A280A21300A28014
+78A2147CA3147EA2147F14DF9038019F80EA600390380F8FC039703F0FF0B5EA07FE13FE
+EBFC039038F801FC387FE000D81F80133C1F1E7D9D21>I<EA07C0EA1FF0EA3FF81380EA
+7E00127812701278127C127F13FC123F13F8127FA213F0EAFF80EAFC0012C00E137F9210
+>I<90381FFFF048B612FE5EA25A5E3807C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB
+1FC0495A017EC9FC5B13F0485A485A5B48CAFC12065AA25A1210A2123000201320143C00
+60137F147EA200E013FE143C140491C9FC7EA37EA2127CA2127E7E7F6C7E13F06C7EEA07
+FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7FCEC07F8
+2E3A809428>96 D<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF020313FE14
+00140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FCCAFCAA14
+0315C015F014075DA21403EC00402826819328>99 D<EA01F8EBFF8014F04813FEECFFC0
+15F8D8001FEBFF80010114FEEB001F02035B140F023F5B91B5FC010301FCC7FC491380D9
+1FFCC8FCEB3FE0EB7F8001FEC9FCEA01F8485A13C0485A90CAFC120E120CEA1808131F00
+3013C000205B133F006090C9FC130F130300E0CAFCA37EA37EA27E127E127F7FEA3FE07F
+EA1FFC6CB47E6C01F814FC6C90B612F0C61680013FECFC00010F14E0010191C7FC903800
+0FF82E397A930D>I<EB7F803801FFF8000713FF4814C04814F04814FE0100EBFFE0007C
+011F13FF0070010313FE0060130048130F48017F13FC0107B5FC0001B61200007F14E04A
+C7FC14E0B5C8FC13F048C9FC2814819328>103 D<90381FFFF048B612FE5EA25A5E3807
+C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0495A017EC9FC5B13F0485A485A5B48
+CAFC12065AA25A1210A212301220A21260A312E0A47EA37EA2127CA2127E7E7F6C7E13F0
+6C7EEA07FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7
+FCEC07F82E3A809428>I<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF0203
+13FE1400140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FC28
+14819328>107 D<EA01F8EBFF8014F04813FEECFFC015F8D8001FEBFF80010114FEEB00
+1F02035B140F023F5B91B5FC010301FCC7FC491380D91FFCC8FCEB3FE0EB7F8001FEC9FC
+EA01F8485A13C0485A90CAFC120E120C5AA25A1220A21260A312E0A37EA37EA27E127E12
+7F7FEA3FE07FEA1FFC6CB47E6C01F814FC6C90B612F0C61680013FECFC00010F14E00101
+91C7FC9038000FF82E397A930D>I<EA01F8EBFF8014F04813FEECFFC015F8D8001FEBFF
+80010114FEEB001F020313FC140F91B512F8130F48B5EAFE00007F14C002FCC7FC14E048
+48C8FC13F048C9FC2714819306>I<1318131EEB1F80133F91C9FC5B131F130290CAFCA9
+90381FFFF048B612FE5EA25A5E3807C03FC7B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0
+495A017EC9FC5B13F0485A485A5B48CAFC12065AA25A1210A212301220A21260A312E0A4
+7EA37EA2127CA2127E7E7F6C7E13F06C7EEA07FE3803FFC06C01FC14FC6C6CB612F06D15
+80010FECFC00010314E0D9007F90C7FCEC07F82E4B80A528>112
+D<1410141EEC3F8092C7FCA25C141E140291C8FCAAEBFF8014F814FF4814C015F04814FE
+C7EBFFE0021F13FF020313FE1400140F027F13FC0107B5FC48B61200007F14E04AC7FC14
+E0B5C8FC13F048C9FC282681A528>115 D<90381FFFF048B612FE5EA25A5E3807C03FC7
+B448C7FC4913C0D907FEC8FCEB0FF0EB1FC0495A017EC9FC5B13F0485A485A5B48CAFC12
+065AA25A38100202903803C3C0393007F7F00020EBE7E0A238600FEF903803C3C0903800
+404000E06DC8FC143C147F147E7E14FE143C6C130491C9FC127CA2127E7E7F6C7E13F06C
+7EEA07FE3803FFC06C01FC14FC6C6CB612F06D1580010FECFC00010314E0D9007F90C7FC
+EC07F82E3A809428>120 D<EB1FE0EBFFFEECFFE015FC48ECFFC016FF2603C03F5BC712
+03140002075B141F91B512F00103EBFBFC011FEBC1FE3B01FFFE01FFC0007FD9F00013FE
+02C0137F49C7123FD8FFF8EC0FFC01C0140300FCC9127CCBFCAAEC040491380787809138
+0FEFE0EDCFC0EC1FDFA29138078780EC00800340C7FC157815FE5D1401A2EC007815082F
+2F81942D>122 D<EBFF8014F814FF4814C015F04814FEC7EBFFE0021F13FF020313FE14
+00140F027F13FC0107B5FC48B61200007F14E04AC7FC14E0B5C8FC13F048C9FCCAFCAAEC
+3030EC3C3CEC3F3F4A5AEC7E7EA2EC3E3EEC04040203C7FC15C015F014075DA21403EC00
+40282E819328>I<1802EF03071620EE6002EF060F04E0130EEF0F069338F01FFE0301EB
+FFFC93B5FCA2EFF7F80010EEE1F06FEBC0000030037EC7FC00201570A21260A312E01660
+A27EA216406C15C06C5D1501007E1403007F4AC8FCD83FC0131F6D137E391FFC03FE6CB5
+5A6C5C6C5CC614C0013F90C9FCEB07F83828808E37>128 D<1602ED03071420EC400291
+38C0060F160E0101EB0F060103EB1FFE90390FE0FFFC007FB6FCA2EDF7F8D8FFFDEBE1F0
+01F8EBC000D9E07EC7FC280F818E26>131 D<EA0408EA0C1CA3EA1C3C1338123EEA7FF8
+13F0A212FFEAEFE0EAC7C00E0D818C0D>133 D<1704EF0F8018C0A2171F188017071701
+94C7FCEF4040EFF8F8EFFCFCA2EE01FDEFF9F89338007878EF181894C7FCA81802EF0307
+1620EE6002EF060F04E0130EEF0F069338F01FFE0301EBFFFC93B5FCA2EFF7F80010EEE1
+F06FEBC0000030037EC7FC00201570A21260A312E01660A27EA216406C15C06C5D150100
+7E1403007F4AC8FCD83FC0131F6D137E391FFC03FE6CB55A6C5C6C5CC614C0013F90C9FC
+EB07F8384180A737>136 D<1504ED0F8016C0A2151F16801507150192C7FCED4040EDF8
+F8EDFCFCA2EC01FDEDF9F89138007878ED181892C7FCA81602ED03071420EC40029138C0
+060F160E0101EB0F060103EB1FFE90390FE0FFFC007FB6FCA2EDF7F8D8FFFDEBE1F001F8
+EBC000D9E07EC7FC282881A726>139 D<F003F0F01FFCF07FFE95B5FC050314805F9438
+0FF83F030290391FC00F000306EB3F00057E133F030F9038F801FE933801F01F933983E1
+FFFC04E7B55A93B612E0198006FCC7FC001017E06F49C8FC0030ED7F80002092CAFCA212
+60A312E01506A27E15047E150C6C5C007E1438007F5C393FC001F09038F00FE06CB5FC6C
+5C6C5C6C91CBFCC613FCEB1FE0412B809341>144 D<EE0FC0EE3FF0EEFFF8030313FC4B
+13FE151FED3FE0010890387F803C0118EBFE00DA01F813FC903A3C03F007F8913807C03F
+903A7E0F83FFF0D9FF9FB512E0007F90B6128001DFECFE00019F14F0D8FF8F1480010701
+F8C7FC26FE01FEC8FC2F14819330>147 D<1708170FEF1FC060A2173F050FC8FC170194
+C9FCA3F003F0F01FFCF07FFE95B5FC050314805F94380FF83F030290391FC00F000306EB
+3F00057E133F030F9038F801FE933801F01F933983E1FFFC04E7B55A93B612E0198006FC
+C7FC001017E06F49C8FC0030ED7F80002092CAFCA21260A312E01506A27E15047E150C6C
+5C007E1438007F5C393FC001F09038F00FE06CB5FC6C5C6C5C6C91CBFCC613FCEB1FE041
+36809E41>152 D<1530153C153F5D157EA2153E150492C8FCA3EE0FC0EE3FF0EEFFF803
+0313FC4B13FE151FED3FE0010890387F803C0118EBFE00DA01F813FC903A3C03F007F891
+3807C03F903A7E0F83FFF0D9FF9FB512E0007F90B6128001DFECFE00019F14F0D8FF8F14
+80010701F8C7FC26FE01FEC8FC2F1F819E30>155 D<EB01F0EB07F8130F131F5C133FEB
+3C300130CAFC5BA2137013F07F13FE90B812E018F86D16FC6D16FE7F010716FF90CA127F
+181F180FA21806A3181CB912FC123F6C17F81207000117F0D8003F16C0382283A137>I<
+EB01F0EB07F8130F131F5C133FEB3C300130CBFC5BA2137013F07F13FE90B812E018F86D
+826D827F01078290CA7E181F84A21806A3181CBA12E0123F7E000718C01201EA003F3B22
+83A137>I<EB07C0EB1FE0133F137F5C13FF13F001C0CBFC485AA27F12037F13F890B87E
+18E06C836C837F011F8290C91201EF007C183CA21818A31870007FB91280A3BA1200A339
+2281A137>I<EB07C0EB1FE0133F137F5C13FF13F001C0CAFC485AA27F12037F13F890B8
+128018E06C17F06C17F87F011F16FC90C91201EF007C183CA21818A31870007FB812F0A2
+18E0B9FC18C01800362281A137>I<8080A2497EA380A380A45CA25C130080A514701478
+A3EE1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078EC3FF891391F
+F001F89238C00FF0ED80FF030F13E04AB512C0B81200003F15FC6C15E0000792C7FCC614
+F0D91FFCC8FC2E2E81AD2D>I<8080A2497EA380A380A45CA25C130080A514701478A3EE
+1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078EC3FF891391FF001
+F89238C00FF0ED80FF030F13E04AB512C0B812FE123F7E000716FCC614F790391FFC000F
+2F2E81AD2D>I<1360A213F0A37FA37FA45BA313701378A51338133CA3ED0FC0ED7FF090
+391C01FFF8D91E0313FC020F13FE5CEC3FE091387F003C14FC6D4813FC9138E007F8ECC0
+7F913887FFF049B512E0007FB61280EDFE0015F0B6128002F8C7FC49C8FC272D81AC26>
+163 D<8080A2497EA380A380A45CA2ECE00C0100130F02F013C0151F5E153F150FDA7001
+C7FC0278C8FCA3EE1F80EEFFE0DA380313F0DA3C0713F8031F13FC5DED7FC19238FE0078
+EC3FF891391FF001F89238C00FF0ED80FF030F13E04AB512C0B81200003F15FC6C15E000
+0792C7FCC614F0D91FFCC8FC2E2E81AD2D>I<1360A213F0A37FA37FA45BA21406903870
+0780017813E0140F5DA214079038380080013C90C7FCA3ED0FC0ED7FF090391C01FFF8D9
+1E0313FC020F13FE5CEC3FE091387F003C14FC6D4813FC9138E007F8ECC07F913887FFF0
+49B512E0007FB61280EDFE0015F0B6128002F8C7FC49C8FC272D81AC26>167
+D<EB07E0EB3FF8EB7FFE90B5FC91C9FCEA01F813E05BA27FA26D13186D13786D13F83900
+FF03F014FF6D5B5D6D5B6D48C8FCEB07F8EB0FE0495A49C9FC137E13F8485A5B485A485A
+90CAFC120E120C121C1218121012301220A21260A312E0A47EA37EA2127CA2127E7E7F6C
+7E13F06C7EEA07FE3803FFC06C01FC14FC6C90B612F0013F1580010FECFC00010314E0D9
+007F90C7FCEC07F82E44809E26>I<EB01FE90380FFFC0013F13F0A3495B14F3EB6FFF01
+075B6D5B013F13F8007FB61280A214EFB500831300EBFC000180131F211181901F>170
+D<EB01F8EB07FF4913804913C090383FC000013EC7FC133C1370A21378A2137C137E9038
+3F800FECE0FF90381FFFFEA26D13FC5B48B512E0007FEBFE0014F01480D8FFFCC7FC13C0
+00FCC8FC201A81991F>I<EF03E0EF07F8EF0FFEA2845F94381C7F80181FEF3E0F0010EE
+3FFFA21230EF1FFB4893380FF300EF03E3EF00031802180600E0170E60183C18F86C1603
+EF0FF06CEE7FE06C923803FFC0B4037F5BD87FF090267FFFFEC7FC90B712F86C16E06C93
+C8FC000715F8000192C9FCD8003F13803922809F39>I<147F495A4913805BA25B140713
+0CEB18031500A2EB3C021406EB3E0EEB3F3C14FC131F007FB512FCA3B612F8EBFE7FEBE0
+0F1E1781961C>174 D<131FEB3FC0EB7FE014F014F813FFEBC3FC13E00001137C13F0EB
+FFFCA214D87EEB7F98EB1F30EB0070EB01F0EB0FE013FF007F13C014801400EAFFFC13F0
+48C7FC161A819915>I<1906191E19FC1803180FF03FF8F0FFF0050313C0050F1300EF3F
+F8EF7FE0933801FF804C48C7FCEE07F8EE0FE017804CC8FC161C5E16305EA316E0A382A5
+821678A21220167C163C1260A2163E00E0151E7EA26C151C6C150CB4153CD87FF0EB03F8
+90B6FC7E6C5D00075D00011580D8003F01F8C9FC3F3580B137>184
+D<1607161E167EED01FEED07FC151FED7FF8913801FFC0020790C7FCEC1FFCEC7FF09038
+01FFC0010790C8FCEB0FFCEB3FF0EB7FC049C9FCEA01FC13F05BEA0380A27F487E7F7F6C
+7E6CB4FC6C7F6D7EEB3FF06D7E6D7E6D7E6D7E816D13E0EC9FF0EC8FF890380307FC496C
+B4FCD91E017FD97E0013E0D803FCEB7FFC007F91381FFFC0497F497FD8FFC00101138090
+C8127F00F8150F2A3281B128>186 D<1607161E167EED01FEED07FC151FED7FF8913801
+FFC002071300EC1FFCEC7FF0903801FFC0010790C7FCEB0FFCEB3FF0EB7FC049C8FCEA01
+FC13F05BEA0380A27F487E7F7F6C7E6CB4FC6C7F137F6D7E131F130F13071303A26D5AA3
+49C8FC5B131E137EEA03FC127F5B5BEAFFC090C9FC12F8283281B11F>I<193019F81803
+F00FE0F03F80F0FE00943803F80694380FE01E94383F80FCEFFE03933803F80F933907E0
+3FF8943880FFF0DC060313C0DC000F1300EF3FF8EF7FE0933801FF804C48C7FCEE07F8EE
+0FE017804CC8FC161C5E16305EA316E0A382A5821678A21220167C163C1260A2163E00E0
+151E7EA26C151C6C150CB4153CD87FF0EB03F890B6FC7E6C5D00075D00011580D8003F01
+F8C9FC3F3B80B737>192 D<193019F81803F00FE0F03F80F0FE00943803F80694380FE0
+1E94383F80FCEFFE03933803F80F933907E03FF8943880FFF0DC060313C0DC000F1300EF
+3FF8EF7FE0933801FF804C48C7FCEE07F8EE0FE017804CC8FC161C5E16305EA316E0A382
+A5821678A21220167C163C1260A2163E00E0151E7E161F6C16E06C93B5FCB45DD87FF001
+03B6FC90B85A6C15FB6CEDF07F00074BC8FC00011580D8003F01F8C9FC3F3B80B737>I<
+16101678ED01F8ED07F0ED1FC0037FC7FC913801FC07913807F01E91381FC07E91387F01
+FE903901FC07FC903807F01F90391FC07FF890397F01FFC02601FC0790C7FC3903F01FFC
+3901C07FF0390001FFC0010790C8FCEB0FFCEB3FF0EB7FC049C9FCEA01FC13F05BEA0380
+A27F487E7F7F6C7E6CB4FC6C7F6D7EEB3FF06D7E6D7E6D7E6D7E816D13E0EC9FF0EC8FF8
+90380307FC496CB4FCD91E017FD97E0013E0D803FCEB7FFC007F91381FFFC0497F497FD8
+FFC00101138090C8127F00F8150F2A3881B728>I<16101678ED01F8ED07F0ED1FC0ED7F
+00913801FC07913807F01E91381FC07E91387F01FE903901FC07FC903807F01F90391FC0
+7FF890397F01FFC02601FC0713003903F01FFC3901C07FF0390001FFC0010790C7FCEB0F
+FCEB3FF0EB7FC049C8FCEA01FC13F05BEA0380A27F487E7F7F6C7E6CB4FC6C7F137F6D7E
+131F130F13071303A26D5AA349C8FC5B131E137EEA03FC127F5B5BEAFFC090C9FC12F828
+3881B71F>I<1640ED01E01507ED3FC0EDFF00EC03FC91381FE00691387F803E903901FE
+00FC90380FF00790393FC01FF89038FF00FF2607F80313F0261FE00F13803A7F807FFE00
+39FC01FFF0D8700713C026001FFEC7FCEB7FF83801FFE0000790C8FCEA0FFCEA1FF0EA3F
+C090C9FC123C1270A212F87EB4FC7F6C7EEA3FF06C7E6C7E6C7E12011200137F7F7F7FA2
+7F1306A35B133CEA01FC5BA2485A5B1380273887B717>199 D<152015601570A215F015
+F8A3157CA61578A51538A4153CA6151CA40004141E120CA25AA20010140E12301220A212
+60A312E0A27E150CA27E15086C1418007E1430007F1470393FC001F09038F00FE06CB5FC
+6C14C06C14806C1400C613FCEB1FE01F3F80AD1F>I<1502A21507A25DA781A582AA6F7E
+A582A282A28216FEEEFF80A30010EDBF00169F0030158700201580A21260A312E093C7FC
+A27E15027E15066C5C007E141C007F5CD83FC013F89038F807F06CB5FC6C5C6C5C6C5CC6
+49C8FCEB1FF0294280AA28>I<5AA2487EA21207A71203A57FA61201A47FA57FA27FA27F
+13FF387F7FC0A2133F38FE1F80130FEAFC03122B81AA10>I<EA0180A2EA03C0A313E0A3
+13F0A21201A213E0A91200A513F0A61370A31360A213E0EA07C0127F1380A2EAFF005A12
+F00C2D81AC0D>I<1302A21307A25BA76D7EAC1303A580A4130780130DEB1DF0EB39FC90
+3879FF8013F1EA01E00003EB7F0048487E381F800F48C8FC127E127C127812E05A5A1932
+81B117>206 D<EB07C0497E497E497EA2497EEBF0FEEBE07E0001137F0003EB3F803907
+F01FE0D87FF813FCEBFE0F90B5FC00FC14F838F87FFE39F03FFC3839000FF800EB03E01E
+1381901C>210 D<14E0EB01F014F8130314FCA2EB067C143E130FEB1F1EEB3F9E137F38
+01FFDE3807EFEC387FE7FC13C7EB83F8EAFF01EAFC0000F013701714819310>212
+D<EC0780EC0FE0EC1FF015F8143FA2EC30F0146FEB03FF011F13E090B5FC1203000F14C0
+003FEBE000D87FF8C7FC13C0007EC8FC12F812E012801D1481931C>215
+D<EC07FF91B512E0010F14F848B612FE007F15FFA29138F003FEB5C7123E01E0140E00FC
+C81204280A81891F>220 D<EB1FC0EB7FF03801FFFC4813FE4813FF5AEBC0FE381F003E
+001C130E4813040030130012201260A312E07EA27EA27EA2127CA21238A21218181B859A
+15>223 D<15101538A2153C157C157EA2153E153F8112108100301580122015071260A3
+00E01403A36C1500A36C140215066C140E007E5C007F143CD83FC013F8EBF8076CB55A6C
+5C6C5C6C5CC649C7FCEB1FF02125809621>I<ED018016E016F0ED03FEA3001015FCA200
+3015DC0020EC01C0A21260A312E01680A27E16005D6C140215066C140E007E5C007F147C
+D83FC05BEBF8076CB55A6C5C6C5C6C91C7FCC65BEB1FF02721808826>I<14F8EB03FCEB
+0FFE133F497E90B5FC3803FE1F3907F80F80EA0FE0391F8007C0D83F0013F0007E14FC00
+781303127048EB01F84813004814381E1181901C>230 D<5BEB0380EB07C0130FA2131F
+A2EB3B801331EB23001367135F13FE1203387FFFFEA338FFDFFC13FF12F93801CFE013E7
+13E3A213E113F1EBF0C0EA00F813FF1480137FA2EB3F00131E1722819315>234
+D<1302EB078014E080EB0FFC806D7E4913804913C015E04913F015F8EB787F9038703DFC
+EC38FE9038F8187E9038FC387F9038FFF03F151FEB7FFC48B5128F007F14FEA215FC38FF
+F87FEBC00F00FCC712F8201B819A1F>I<137C13FF14F0487F80487FEB07FF1383000714
+809038C3BFC0EBEF1F9038FF0FE0EBFE073803FFC34813FB007FEBFFC0A213DFD8FF0313
+8038FC007F00F0EB0F001B15819410>I<147814FE497E158015C05BEC0FE01487EB0783
+ECC3F014F114FFA26D13F87F7F141FEC0038A61570A215F015E01401EC03C01407EC1F80
+147F903801FF00EB1FFE3803FFFCB55A000F13E038003FC01D267F911F>240
+D<143C147F4A7E81A2497F14876E7EEB03C114E1ECF8F814FE91B512E07F7F6E13C0141F
+14039138001C00A55DA21578157015F04A5A1403EC0FC0143F49B45A011F90C7FC3803FF
+FEB55A000F13F038001FC02326819121>I<8317F0EE01FC5FA21603EE00F0171094C8FC
+A5EF03E0EF07F8EF0FFEA2845F94381C7F80181FEF3E0F0010EE3FFFA21230EF1FFB4893
+380FF300EF03E3EF00031802180600E0170E60183C18F86C1603EF0FF06CEE7FE06C9238
+03FFC0B4037F5BD87FF090267FFFFEC7FC90B712F86C16E06C93C8FC000715F8000192C9
+FCD8003F1380392F80AC39>I<1720177C177E17FEA25F173C170C94C8FCA5187E4DB4FC
+00105E4D1380485EA20060EE1F0FEF1C071718943830030012E0A26CEE7806180E6C173E
+6CEE7DFCB4167FD87FC04A485A01F80103B5FC6CB912F87E7E000304E313F0C6EDFC0001
+0F01FCC7121F3D2680A53C>I<EC040491380F8F80EDEFE0EDCFC0EC1FDFED9F80EC0787
+EC018191C8FCA7ED07C0ED0FF0ED1FF816FC16FE153FED30FFED383FED781F157C0010EC
+7FFF123016F70020143F0060EC1FE6ED07C6ED0006160412E0160C1608161816386C1570
+16F06CEC01E06C14076CEC1FC0D87F80EBFF80D9F00713006CB55A6C5C6C14F06C14C000
+0191C7FC38003FF0283380A828>I<17F8EE03FC160F163FEE7FF816FF923801FE18EEF8
+10923803E00016804BC7FC15065D1508A2151812100030143CED3FC0002015FE0060EDFF
+8017C081150700E01400EE07801601EE03005E6C5D163E6C157E4B5A6CEC07F86CEC1FF0
+D87F80EBFFE0D9F00713806CB6C7FC6C14FC6C14F0000314C0C691C8FCEB1FF02E2B7F98
+2D>248 D<4B7E16F016FC00104AB4FC17C0003016E0030013F00020ED3FF80060ED0FFC
+16031601EE007C00E01638A317706CED01F0EE03E06C150F6CED3FC0B4913801FF80D87F
+C0010F130001FCEBFFFC6CB65A6C15E06C1580000302FCC7FCC614E0D90FFEC8FC2E1D80
+851F>250 D E /Fb 2 46 df<EA01E01207121FEA3E00127812705AA512701278123EEA
+1FE0120712010B117CA014>44 D<12F012FCB4FCEA0F80EA03C01201EA00E0A5EA01C012
+03EA0F80EAFF0012FC12F00B117CA014>I E /Fc 33 128 df<EA01E0EA0630EA083812
+18EA103C123012601378A212C013F01200EA01E0A3EA03C0A3EA0780A21381EA0F03A212
+0EEA1E06A21304130CEA0E18EA0630EA03C0101F7A9E16>16 D<14F8EB018CEB020EEB04
+0F130C1318A21330A2EB601EA21300A2143CA41478A414F0A4EB01E0A4EB03C0A4EB0780
+A4EB0F00A2EA380EEA781CEAF8185BEA7060EA3F80182D839E17>I<131C133C137C13F8
+EA01F0EA03C0EA0780EA0F00120E5A5A12605A0E0D68B124>19 D<38C00180EAE0073870
+0E00EA383CEA1C70EA0FE0EA07806CC7FC11086CAC24>I<6C1320A31440A21480130100
+C01300EA4002EA600CEA3038EA1FF0EA0FC0130D6CB124>I<B512FEA2170270A824>I<12
+3C127E12FEA212FCA212700707788616>46 D<121C123E127E12FEA2127C123807076EB0
+16>95 D<EB07C0EB18639038703780EBE0173801C01FD80380130000077FEA0F00A24813
+1E121E123EA2485BA4485BA31510ECF0305AA2D870011320903803E060EA7802D8380413
+C03918086080380C30313907C01E001C1F789E24>97 D<1378EA0FF8121F12005BA4485A
+A4485AA4485AA3EB8F80380F1860EB6070EBC0381380381F003CA2121EA248133EA3143C
+48137CA44813F8A3EB01F0A214E0EB03C01270EB07801400EA300E6C5AEA0C70EA07C017
+3278B120>I<EB03F0EB1C0CEB3806EBF0033801E0073803C00F3807801FA2380F001E48
+1300121E123EA25AA45AA5140400781306140C1418003813306C1360EB01C038060700EA
+03F8181F789E20>I<157CEC07FC140FEC007C1578A415F0A4EC01E0A4EC03C0A3EB07C3
+9038186780EB7037EBE0173801C01FD80380130000077FEA0F00A248131E121E123EA248
+5BA4485BA31510ECF0305AA2D870011320903803E060EA7802D8380413C0391808608038
+0C30313907C01E001E3278B124>I<EB07C0EB3830EBF0183801C00CEA03801207EA0F00
+121E1418123E48133014E0EB078038FFFC0000F8C7FCA35AA51408140C14180070133014
+606C13C038180380380C0E00EA03F0161F779E20>I<15FCEC0186EC0307EC070FEC0F1F
+140EEC1E0E1500A2141C143CA45CA590381FFFE0A2903800F000A3495AA5495AA6495AA5
+49C7FCA45B131EA45BA45BA313701270EAF8E0A2485AEAE1800063C8FC123E204081B116
+>I<143EECC31890380381BCEB0700010E13FC4913F8013C13785BA201F813F05B1201A2
+3903E001E0A43907C003C0A4EC07801380A20003130FEC1F0013C00001132F0000134FEB
+619EEB3E1E1300A25CA45CA200385B00785B38F801C0495AD8700EC7FCEA1FF81E2D7D9E
+20>I<131F48B4FC5AEA001F131EA45BA45BA45BA3147E3801E3839038E603809038EC01
+C013F8D803F013E013E0A201C013C0000713031380A3390F000780A3EC0F00121EA2141E
+1502481406143CA2150C48133815181510152048EB18400060EB0F801F327BB124>I<13
+07EB0F80A21400130690C7FCACEA01E0EA0630EA08381218EA103C123012605BA212C05B
+1200485AA3485AA3485AA21381485AA2120EEA1E06A21304130CEA0E18EA0630EA03C011
+307AAF16>I<130F48B4FC5AEA001F131EA45BA45BA45BA3EC03E03901E00430EC1878EC
+20F814403903C080F015E001C1C7FC13C2485A1388139013E0120F137C130FEB0380381E
+01C080A21520003C1460A315400078EBC0C0A2ECC180010013004813620060133C1D327B
+B120>107 D<133CEA07FCA2EA007C1378A413F0A4EA01E0A4EA03C0A4EA0780A4EA0F00
+A4121EA45AA45AA31320EAF060A4EAE0C0A213801261EA7300121E0E3279B112>I<3B07
+C00FC007E03B0C60706038303B1870C07060383B10798038C01C3A307B003980017E9038
+3F001ED8607C133EA20178013C131CD8C0F8017C133C4913781200A24848495BA35F4848
+485AA24C5A182027078003C01460EE03C0A218C0270F0007801380EF818018001783001E
+90390F000184000C0106EB00F8331F7A9E39>I<3907801F803908C060E03918E1807039
+30F3003813F6EA60FC49133CA249133800C114785B1201A248485BA34A5AEA0780A24A5A
+1680D80F0013C1EC0781A21600001E5C15021506150448EB03180018EB01F0211F7A9E27
+>I<EB03F0EB0E1CEB3806EB70073901E00380EA03C0018013C01207EA0F005A121E123E
+A2481307A448EB0F80A215005C141EA200785B5C147000385B6C485A380C0380D8060EC7
+FCEA01F81A1F789E24>I<90383E01F0903863030C9038C38C0E903883D807000113F002
+E01380EA030314C0A22606078013C0A21200168090380F000FA4011EEB1F00A3153E5B15
+3C5DA2017C5B017E5B4A5A90387A0380D9F10EC7FCEBF0F891C8FCA2485AA4485AA4485A
+7FEA7FFC12FF222D7F9E24>I<903807C0C09038186180EB7033EBE0173801C01FD80380
+130000077FEA0F00A248131E121E123EA2485BA4485BA45C5AA2EA7001495A1278EA3805
+EA1809380C33C0EA07C3EA0003A2495AA449C7FCA4131E131F3807FFF0A21A2D789E20>
+I<3907C03F80390C60E0E03818718039107B01F0EA307E017C13E0006014C00178C7FCA2
+485AA21200A2485AA4485AA4485AA448C8FCA4121E120C1C1F7A9E1E>I<EB0FE0EB3038
+EBE00C380180061203EB000E48131EA2140C14007F13E013FE3803FF806C13C06C13E0EB
+0FF01301EB00F81478A20070137012F8A24813604813E04813C03840018038600300EA18
+1CEA07F0171F7A9E1D>I<130C131E5BA45BA45BA3387FFFE0B512C03801E000A3485AA4
+485AA448C7FCA4121EA35B485AA213021306EA3804130C5BEA1810EA1C60EA0780132C79
+AB17>I<D801E01338D806381378EA0C18EA181C1210D8303C13F0122012605B00C0EB01
+E0A2EA00F0A2EC03C0EA01E0A33903C00780A315819038800F031207A215020003EB1E06
+A29038C02E0C0001EB46083900E1831890383E01E0201F7A9E26>I<D801E09038380380
+D8063890387807C0EA0C18EA181C1210D8303CEBF0031220006015015B00C0D901E01380
+A2EA00F0A2913903C00300EA01E0A33A03C0078006A35E150013804A5BA25E6D5A000190
+383380602600E0235B903970C1C18090261F807EC7FC2A1F7A9E2F>119
+D<D801E01338D806381378EA0C18EA181C1210D8303C13F0122012605B00C0EB01E0A2EA
+00F0A2EC03C0EA01E0A33903C00780A49038800F001207A30003131EA2EBC03E0001135E
+3800E1BCEB3E3C1300A25CA21470003C13F0007C5B495A3878038012600106C7FC6C5AEA
+1838EA07C01D2D7A9E22>121 D<010F133090383F806090387FC0C0EBFFE03901E0F180
+9038801F0038030006A2C75A5C5C5C5C495A49C7FC13065B5B5B5B49138038018001EA03
+0000061303481400381BC00F381C381E38301FFC00605B6D5A38C003C01C1F7C9E1D>I<
+EBE0023803F00438063008381838303830186038400F800080130017076FAF24>126
+D<381C01C0383E03E0EA7E07EAFE0FA2387C07C03838038013076DB024>I
+E /Fd 51 256 df<003FB512801500A25A5CA2B5FC1907828615>5
+D<003FB512801500A25A5CA2B5FC1907828615>I<003FB512801500A25A5CA2B5FC1907
+828615>I<1218123CA8137C13FEEA3FFF148013C7138FEA3E7F387FFF00485A13F8EA7F
+C01114809310>I<1220123C123FEA7F80A2EAFF00A2127E121E1202090A808809>I<EA20
+08EA3C0F003F13C0387F9FE0A238FF3FC0A2387E1F80EA1E07EA0200130A7F8815>I<13
+06131F137FEA01FEEA0FFCEA3FF0EA7FC0EAFF0012F81260100A808910>I<133FEB7F80
+EBFFC0A213F3A213FFEB7F80A2EB3F00133E137F485AEA03F6EA0FE0EA3FC048C7FC12FE
+12F812601214809310>I<EA03E0EA0FF0121FEA3FE0EA7E0012F85AA2130EEAF83FEA7F
+FFEA3FFEEA1FF8EA3FE0EA7F80EAFE0012F812601012809110>I<1218123E123FEA7FC0
+13F8EA7BFF00F913FE38F07FFF130F386001FE180A808918>I<EA2008EA3C0F003F13C0
+387F9FE0A238FF3FC0A2387E1F80EA1E07EA0200130A7F8815>16
+D<5A13E013F8487EA2485AA26C5A12001310EA2008EA3C0F003F13C0387F9FE0A238FF3F
+C0A2387E1F80EA1E07EA020013147F9215>I<EA2008EA3C0F003F13C0387F9FE0A238FF
+3FC0A2387E1F80EA1E07EA02006C130013E013F8487EA2485AA26C5A1200131013147F88
+15>I<1220123CEA7F80A3EAFF00A2127E120E1202090A808809>46
+D<122012601270A212F8A312FCA312FEA512FCA31278A7127CA3123CA6123EA3121EA612
+1FA3120FA7120EA3120CA3083B7BBA0D>64 D<1230A31270A312F0A37EA21278AA127CA2
+123CAB123EA2121EA4121FA41380120F13C013E013F0EA07FF13FE1203A2EA01FC120013
+3C10387DB711>I<6019C0F003E0A2001018F01807003018F8A218011270180019F000F0
+18707E19607E19E06CEF01C0007F17076D161F01E0EE7F80D83FFCED03FFD9FFF091B512
+006C90B75A6C5F6C5F000117E06C6C1680010F03FCC7FC010015803D1E809742>72
+D<1680A2ED01C0A2150316E01507A21503A2ED01F0A41500A716E01501A2150316C01507
+ED0F80151FED7F00EC01FE1407EC3FFC903803FFF8017F5BB65A6C1480000191C7FC3800
+03FC2427858E20>80 D<143CEC3F80A2147FA292C7FCA2140F91C8FCA91680A2ED01C0A2
+150316E01507A21503A2ED01F0A41500A716E01501A2150316C01507ED0F80151FED7F00
+EC01FE1407EC3FFC903803FFF8017F5BB65A6C1480000191C7FC380003FC2438859F20>
+82 D<13201338133C137F8080497E80EB3FF86D7EEB07FE13036D7E7FEC7F80143F141F
+A2140F150080A21406140E147E383FFFFCA2485BA25CB55A91C7FC19207D9F1D>88
+D<EA03F0EA0FFC48B4FC5A13F01380003EC7FC1278A2127C127EEA7FC0EBFF807EA26C13
+005A485AA213F8EAFF8000FCC7FC12C011177E9615>90 D<903807FFFC017FEBFFFE90B7
+12FCA3485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB
+07FCEB0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA2121000
+30EB078015F0A20070130FA25DA200F0130191CAFCA37EA37EA2127EA2127F7F6C7E7F6C
+7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE000101
+15F06D6C1480020701F8C7FC9138003FC03745809830>96 D<EB1FFC49B47E15F015FC49
+13FF16E016F8D9601F13FFD9000114F06E6C13FF150F1503033F13FE4AB5FC141F0103B6
+12FC90B71200003F15E003FCC7FC15C04801FCC8FC14C001FCC9FCEAFF80CBFCAC151EED
+1FC0824B5AA25EA21507302C829730>99 D<903807FFFC017FEBFFFE90B712FCA3485EA2
+EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB0FF0EB
+1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA212101230A31270A412
+F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE
+013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC0374580
+9830>104 D<EB078014F0A2130FA2495A130FEB01C090CBFCAC903807FFFC017FEBFFFE
+90B712FCA3485EA2EBF801D900075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9
+FCEB07FCEB0FF0EB1FC0495A49CAFC137C5B485A5B485A5B48CBFCA2120E120CA25AA212
+101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C
+13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC
+9138003FC0375980AC30>112 D<903807FFFC017FEBFFFE90B712FCA3485EA2EBF801D9
+00075CC7001F01FCC7FC4A1380DAFFF8C8FC4913C04990C9FCEB07FCEB0FF0EB1FC0495A
+49CAFC137C5B485A5B485A5B48CBFCA2120E120CECF03C489038FE3F80A2D81001137F12
+3002FC90C8FCA23970003C0F91CAFCA2EC078000F014F0A2140FA26C5CA214016C90CAFC
+A2127EA2127F7F6C7E7F6C7EEA0FFC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612
+FC6D16E00107EDFE00010115F06D6C1480020701F8C7FC9138003FC03745809830>120
+D<1AE019C0F180F09438C00181A2160195380383E09438E007C10403EB0FE195383FFFC0
+DC07E1B5FC94B61280A218FB7001F113000018EFE07E700180C7FC00106F48C8FC003016
+F0A31270A25FA212F0A25F7EA25F6C15017E007E4BC9FC007F5D6D5C6C6C141E6D147ED8
+1FF8495A01FEEB07F8390FFFC03F6C90B55A6C5D6C5D6C6C5C011F49CAFC010713F80100
+13C04430809142>128 D<F0078019F0A2180FA261A2180195C8FCA2F0F03C9538FE3F80
+A20501137FA206FC1300A29438003C0F95C8FCAB1AE019C0F180F09438C00181A2160195
+380383E09438E007C10403EB0FE195383FFFC0DC07E1B5FC94B61280A218FB7001F11300
+0018EFE07E700180C7FC00106F48C8FC003016F0A31270A25FA212F0A25F7EA25F6C1501
+7E007E4BC9FC007F5D6D5C6C6C141E6D147ED81FF8495A01FEEB07F8390FFFC03F6C90B5
+5A6C5D6C5D6C6C5C011F49CAFC010713F8010013C0444D80AE42>136
+D<1A7F963803FFC0070F13E0073F13F04F13F84EB512FC604EEB07F895380FF801041890
+381FE000DE3F8013F095387F0007043C01FC133F943A01F801FFE093397E03F00F93267F
+07E1B512C005CFB6128094B6EAFE007015F81AC04FC7FC001818E07049C8FC001017C000
+30031ECAFCA31270A2161CA212F0A216187EA26C151016306C1570007F5D6D130101E0EB
+07C06C6C133F9039FF01FF806C90B5FC6C92CBFC6C5C6C5CC614F0013F13C0D907FECCFC
+4E3380974E>144 D<18041807F00FE08561181FA2611803F0004096C8FCA41A7F963803
+FFC0070F13E0073F13F04F13F84EB512FC604EEB07F895380FF801041890381FE000DE3F
+8013F095387F0007043C01FC133F943A01F801FFE093397E03F00F93267F07E1B512C005
+CFB6128094B6EAFE007015F81AC04FC7FC001818E07049C8FC001017C00030031ECAFCA3
+1270A2161CA212F0A216187EA26C151016306C1570007F5D6D130101E0EB07C06C6C133F
+9039FF01FF806C90B5FC6C92CBFC6C5C6C5CC614F0013F13C0D907FECCFC4E4180A54E>
+152 D<147E49B47E5B4990CBFCA25B5C140E011CCCFC1318A21338A2133C137C137E137F
+14C091B812F86D17FE856D18806D18C07F010018E091CA123F190F1907F103C0A219011A
+801903190FBB12007E001F607E000360C66C5F010F17E0432983A842>156
+D<14081418141C143CA2143E147EA280A381A492C9FCA280141EA3141FA480A481A2EF7F
+800207903801FFE0040713F0041F13F8047F13FC93B512FE15C103C7EB83FC9238CFFC00
+912603DFF0137CDBFFC0137893380003F84B131F4BEBFFF0EDF0074A48B512E092B612C0
+B91200003F16FC6C16E0000793C7FC000115F06C6C91C8FC010713C0373782B634>160
+D<14081418141C143CA2143E147EA280A381A492C9FCA280021E1338167F83021F49C7FC
+A25EA26E131E93C8FCA381A2EF7F800207903801FFE0040713F0041F13F8047F13FC93B5
+12FE15C103C7EB83FC9238CFFC00912603DFF0137CDBFFC0137893380003F84B131F4BEB
+FFF0EDF0074A48B512E092B612C0B91200003F16FC6C16E0000793C7FC000115F06C6C91
+C8FC010713C0373782B634>164 D<EB01FCEB07FF011F13C0497F497FD9FFE0C9FC49CA
+FC13F85B485AA37F16C06DEB03806D130F6CB4133FDAC07FC8FC6DB5FC5D7F6D13F86D13
+E0010313806D90C9FCEB03FC495AEB0FE0495A495A013ECAFC5B5B485A5B485A5B48CBFC
+A2120E120CA25AA212101230A31270A412F0A47EA37EA2127EA2127F7F6C7E7F6C7EEA0F
+FC7F6C6C7E6C13E06C13FC6CD9FFC014FE013F90B612FC6D16E00107EDFE00010115F06D
+6C1480020701F8C7FC9138003FC0375180A42C>168 D<19FC4EB4FC4E13C01AF0A2601A
+F8F00F0FF103FC1981F01FC3000818FF121884001019BC0030711338F003FE0070EF00F8
+F10030A31A601AE0190100F0F003C0190FF11F806C187F953801FF006CEF0FFE6CEF7FFC
+6C6C92380FFFF801E00203B55A6CB4010FB612C091B8C7FC6C17FC6C17E06C94C8FC0003
+16F0C66C4AC9FC010F49CAFC462980A646>172 D<1B70F201F0F207E01A1FF2FFC01903
+190F073F13809638FFFC00060313F0060F13C04E90C7FCF07FFC943801FFE04D13804D48
+C8FCEF0FF8EF1FE0604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015
+001230A2830070167CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91
+B65A7E7E6C5E00015ED8003F4ACAFC010714E04C3F80BB42>184
+D<F207801A1F1A7F963801FF00F107FCF11FF0F17FC0953901FF0070953907FC01F09539
+1FF007E095387FC01F943A01FF00FFC0943807FC0394380FF00FDEC03F1380953900FFFC
+00DD040313F0DD000F13C04E90C7FCF07FFC943801FFE04D13804D48C8FCEF0FF8EF1FE0
+604DC9FC173E177817705F5FA21601A31603A383A4707EA483001015001230A283007016
+7CA2177E12F8173E7E6C163C6C161CEA7FC001F015F86CB46C133F91B65A7E7E6C5E0001
+5ED8003F4ACAFC010714E04C4680C242>192 D<173017F81603EE0FF0EE3FE0EEFF8092
+3803FE0092380FF80392383FE00F9238FF803F913903FE01FE91380FF80791383FE01F91
+39FF807FFC903A03FE01FFF890260FF80713E090263FE01F1380903A7F807FFE009039FE
+01FFF8D9780713C0D9201F90C7FC9038007FFC903801FFF04913C0010F90C8FCEB1FFCEB
+3FF0EB7FC091C9FC13FC5B13E012017F7F487E7F6C7E14C06C7F6D7E6D7E6D7E130F6D7E
+13011300147E143E143C141CA21418A214385C14F01303EB1FE0EA01FF003F5B5C91C9FC
+485A13F813E000FECAFC304382C224>195 D<150215061507A25D1680A216C0A316E0A5
+16C0A3ED0780A716C0A31503A616E0A31501A2120312021206A24815F0A2121C00181400
+A25AA31270A412F016E07EA216C07EA2007EEC0180007F14036D13076C6CEB1F0001F013
+7F391FFE03FE90B5FC6C5C6C5C6C5CC65C013F1380D907FCC7FC244B80B624>200
+D<EC0780EC0FC015E0141F15F0A2143FEC33F81471A2ECF8FC1301903803FC7C1307EB1F
+FE90387F7F3CD803FF13B8D83FFE13F8EBFC3F01F813F0387FF01FEBC00F90380007E000
+FC13011E18829715>212 D<168016C016E0150116F0A2ED03F8A2ED01FCA2150016FE16
+7E1218163E12100030153F161FA21270A2160FA212F0160E7EA2160C7EA26C1518007F15
+386D14786D14F0D83FF0130301FCEB1FE0391FFF80FF6C90B512C06C15806C15006C5C6C
+6C13F8011F13E0010390C7FC282C809B28>224 D<136013F0EA01FC487E7F48138014C0
+120EEB3FE0EA0C1F38180FF01307EA300314F8130112701300A2147800F013707EA26C13
+606C13E0EAFF83EBFFC07E14807E6C13006C5AEA01F81520809F15>232
+D<14C014F0EB01FC80804913C0816D7F497F497F497F8116804914C0EB1E1F9039180FBF
+E090393C079FF0EC038F90397E0707F890387F1F0302FE13FC1501013F13009138FFE0F8
+48B5EAFE78003FECFFF816F0A2387FFE3FD9F80713E0EBC00000FEC7EA0FC02620829F24
+>235 D<EB0FC0EB1FF090383FF9C0017F7FECFDF014FF90B57E01F07F9038C07FFE3801
+E039813803F0709039F9F07F809038FFE03FED1FC06C13F0ECFE0F48EBFFE7003FECFF80
+A21600EA7FE1EBC03F90380007FE00F813002219829815>I<EC07E0EC0FF84A7E81815C
+16801470EC783FED1FC0ECFC0F02FE13E0ECFFC715FF80A26E13F0801407140191C7FCA6
+16E0A2150116C01503A2ED0780150FED1F00157EEC01FEEC07FCEC1FF849B45A013F5BB6
+5A6C5C000149C7FC380003F8242D819424>240 D<EC07E0EC0FF84A7E81815C821470EC
+783F6F7EECFC0F14FE9138FF87E015F76EB512E017C08080020714801401EC003F923800
+F000A55EA215015E1503A24B5A150F4BC7FC157EEC01FEEC07FCEC1FF849B45A013F5BB6
+5A6C5C000149C8FC380003F82B2D819428>I<1840187018FE84601701A260EF003C1804
+95C8FCA519FC4EB4FC4E13C01AF0A2601AF8F00F0FF103FC1981F01FC3000818FF121884
+001019BC0030711338F003FE0070EF00F8F10030A31A601AE0190100F0F003C0190FF11F
+806C187F953801FF006CEF0FFE6CEF7FFC6C6C92380FFFF801E00203B55A6CB4010FB612
+C091B8C7FC6C17FC6C17E06C94C8FC000316F0C66C4AC9FC010F49CAFC463880B546>I<
+ED701C9238FE3F8003FF13C0913901FE7F80A203FC1300A29138003C0F92C8FCAA163FEE
+7FC0EEFFF017FCA25D17FEED03C3EEC0FFEEE07F923807F0FF000892B5FC121881001016
+EF00306E13CE6F138E0070ED3E0E1600170CA31708171812F01730177017F06CED01E016
+036CED0FC06CED1F806C157FD87FC0903801FF0001F0EB0FFED83FFEEBFFFC90B65A6C5D
+6C15C06C92C7FC000114FC6C6C13F0010F90C8FC303D80B030>244
+D<18FCEF03FE170F173FEF7FFC17FF4C13F8933803FE18EE07F8EFE000EE0F8094C7FC16
+1E161C5E1630A25EA21208001815E082001015FF00304A13F817FF007017C018E081163F
+040713C0EE001F170300F0EE0180170317076CEE0F00173F6C167EEE01FE6CED07FC6C4B
+5A6C6CEC3FF001E049B45AD83FF8010F138001FF90B5C7FC6C90B512FC6C5D6C15E06C15
+80C64AC8FC013F13F0010713803734819D34>248 D<EE03FEEE3FFC16FF5D00084A13F8
+1218A2923807FC004815800306C7FC150F007015E0ED1FFEEEFFC017F017F88100F01403
+9238007FF016076C150017E016036CED07C06C151F6C157FD87FC0903803FF8001F0011F
+13003A3FFE01FFFE90B612F86C5D6C15C06C92C7FC000114FC6C6C13E0010F90C8FC2F24
+81862C>I<14F0EB07E0131F137F495A12035A4848C9FCEA1FF813C048CAFC123E003FB8
+FC5A17FEA2B8FC17FC7E30137D8615>255 D E /Fe 37 127 df<1207EA0F80EA1FC0A2
+EA0FE012071201A5120313C012071380120FEA1F00127E5A5A12700B1574AB25>39
+D<120FEA1F80EA3FC013E0A3121F120F1201120313C012071380121FEA7F0012FE5A1270
+0B12748725>44 D<123C127E12FFA4127E123C0808728725>46 D<123C127E12FFA4127E
+123C1200AF123C127E12FFA4127E123C081F729E25>58 D<EB07E0A2497EA3EB0E70EB1E
+78A4EB3E7CA3EB3C3CA2EB7C3EA4497EA53901F00F80A448B512C0A43907E007E0EBC003
+A4390F8001F0A3397FF00FFE39FFF81FFFA2397FF00FFE202C7EAB25>65
+D<007FB512FCB612FEA27E3907C0003EA5151C1500A5141C143EA3EBFFFEA4EBC03EA314
+1C91C7FCA5150E151FA7007FB6FCB7FCA26C14FE202C7EAB25>69
+D<007FB5FCB61280A26C1400D8003EC7FCB3B2007FB5FCB61280A26C1400192C7AAB25>
+73 D<3801FFF8000F13FF4814804814C0EB801F397E0007E0A2007C1303A348EB01F0B3
+A56C1303007C14E0A3007E1307007F130F393FC03FC090B5FC6C14806C1400000113F81C
+2C7CAB25>79 D<3A7FFC03FFE0486C4813F0A26C486C13E03A07C0003E00B3AB6D137E00
+03147CA26C6C5BEBF8016C6C485A90387F0FE06DB45A6D5B6D90C7FCEB03FC242C80AB25
+>85 D<133013FCEA03FF000F13C0003F13F0387FCFF838FF03FCEAFE0138F8007C007013
+38160A79AB25>94 D<EA01C0EA03E01207EA0FC0EA1F00123E123C127C127812F85AA512
+FC7E127FA2123E121C0B1573B025>96 D<3803FF80000F13E04813F8487FEB01FEEB007F
+001E131F000C1480C7120FA3EB01FF133F48B5FC120748138F381FE00FEA3F80EA7E005A
+5AA46C131F007E133F383F81FF6CB512FE6CEBF7FF6C13E30001EB01FE201F7C9E25>I<
+EA7FC0487EA2127F1203A9EBE1FE9038E7FF8001EF7F90B57EEC07F09038FC01F89038F8
+007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038FF07F0ECFFE001
+EF5B01E790C7FC3801C1FC212C7FAB25>I<EB1FFCEB7FFF48B512804814C03807F00FEA
+0FC0391F800780393F000300003E90C7FC5AA212FC5AA77E127CA26CEB01C0003FEB03E0
+EA1F80380FC0073907F03FC06CB512806C14006C6C5AEB1FF01B1F7B9E25>I<EC7FC04A
+7EA2147F1403A9EB1FC3EB7FF33801FFFB4813FF3807F07F380FC01F381F800F383F0007
+123E481303A212FC5AA77E007C1307A27E140F6C131FEA0FC03807F07F6CB6FC6C01FB13
+806C13F3D93FC11300212C7EAB25>I<EB1FE0EBFFF84813FE487F3907F07F80380FC00F
+391F0007C04814E0003E13035A15F000FC13015AB6FCA315E000F8C8FCA27E127C127E00
+3E14E0003FEB01F0EA1F80380FC0073907F81FE06CB512C06C148039007FFE00EB1FF81C
+1F7C9E25>I<EC3FC0ECFFE0010313F04913F8EB0FE1148190381F80F091C7FCA6007FB5
+12C0B612E0A26C14C0D8001FC7FCB3A5001FB5FC481480A26C14001D2C7EAB25>I<9038
+3FC0FE9038FFF3FF4890B512805AD807F0138F3A0FC03F0700391F801F80EB000F488000
+3E1307A5003F130F6C5CEB801F6C6C48C7FCEBF0FEEBFFFC485B001E5BEB3FC090C9FCA2
+121F7EEBFFFE6CEBFFC04814F04880393F0003FC007CEB007E0078141E00F8141F4880A4
+6C5C0078141E007E147E6C6C485A391FF00FF86CB55A000314C0C691C7FCEB1FF821307E
+9E25>I<EA7FC0487EA2127F1203A914FEEBE3FF01EF7F90B57EEC87E0EBFE039038F801
+F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C010F1380222C7FAB25>I<130C131E
+133FA2131E130C90C8FCA8EA3FFE487EA27EEA001FB3A5007FB51280B612C0A26C14801A
+2D7AAC25>I<1430147814FCA2147814301400A83801FFF84813FCA27EC7127CB3B014F8
+1230EA780100FC13F0EB07E0B512C06C13806C1300EA0FFC163D7DAC25>I<EA7F80487E
+A2127F1203A9EC3FFF4A1380A26E1300EC03E04A5A4A5A4AC7FC143E14FCEBC1F8EBC3F0
+EBC7E013CFEBDFF013FE497EEBF87C497EEBE01EEBC01F6E7E6E7E1403816E7E6E7E3A7F
+FE07FF80B54813C0A26C486C1380222C7FAB25>I<EA7FFEB5FCA27EEA001FB3B2007FB5
+12C0B612E0A26C14C01B2C7BAB25>I<397E1F80FC39FF3FC1FE90387FE3FF267FFFF713
+80390FF0FF8749EB07C09038C07E03EB807CA3EB0078B13A7FE1FF0FF8D8FFF3EB9FFCA2
+D87FE1EB0FF8261F819E25>I<387FC0FE38FFE3FF01EF7F6CB57E0003EB87E0EBFE0390
+38F801F0A213F0A213E0B13A7FFF0FFF80B5009F13C0A26C010F1380221F7F9E25>I<EB
+3FC0EBFFF0000313FC487F380FE07F391F801F80EB000F003EEB07C0A248EB03E0A248EB
+01F0A86C1303007C14E0A26CEB07C0003F130F391F801F80EBC03F390FE07F003807FFFE
+6C5BC613F0EB3FC01C1F7C9E25>I<387FC1FE39FFE7FF8001EF7F6CB57E0003EB07F090
+38FC01F89038F8007C497FA2497FA21680150FA7151F16007F153E6D137E5D6D485A9038
+FF07F0ECFFE001EF5B01E790C7FCEBE1FC01E0C8FCACEA7FFFB57EA26C90C8FC212F7F9E
+25>I<90381FC0E09038FFF1F04813FD4813FF3807F07F380FC01F381F000F481307003E
+13035AA200FC13015AA77E007C1303A2007E1307123E6C130F380FC01FEBF07F3807FFFD
+000113F96C13F1EB3FC1EB0001AC91383FFF804A13C0A26E1380222F7D9E25>I<397FF0
+07F839FFF83FFCEC7FFE007F90B5FC3900F9FC3FEBFBE09038FFC01EEC800C91C7FC5BA2
+5BA35BAD387FFFFCB57EA26C5B201F7E9E25>I<3801FFC6000713FF121F5A48C6FC007C
+133F00F07FA3140E00FC90C7FCEA7F80EA3FFC381FFFE06C13F800037F38001FFEEB00FF
+EC1F800070EB07C000F81303A27EA26C13076CEB0F809038C07F00EBFFFE5C00F35B3860
+7FC01A1F7B9E25>I<137013F8A8007FB512C0B612E0A26C14C0D800F8C7FCAF157015F8
+A5EBFC0190387E07F090383FFFE06D13C06D1380903803FE001D287EA725>I<397FC03F
+E0486C487EA2007F133F00031301B31403A2EBF0073801F81F90B612806C15C0EB7FFDD9
+1FF01380221F7F9E25>I<3A7FF807FF80486C4813C0A26C486C1380000FC7EA3C00A66C
+6C5BA2EB81E0EB83F0A33903C7F8F01438A3EBCF3CA200015CEBCE1CEBEE1DA2EBFE1F6C
+486C5AA39038780780221F7F9E25>119 D<397FF00FFE39FFF81FFFA2397FF00FFE3907
+8001F015E013C01203EC03C013E01201EC0780EA00F0A29038F80F001378A2EB7C1E133C
+A26D5AA3EB0F38147813075CA213035CA35CA213075CA2130F91C7FC123CEA7E1E133E5B
+EA7FF8123FEA1FE0EA0F80202F7E9E25>121 D<003FB512F84814FCA3397C0001F8EC03
+F0EC07E0EC0FC00038EB1F80C7EA3F00147E5C495A495A495A495A495A49C7FC137E5B48
+5A485A4848131C4848133E485A48C7FC127EB612FEA36C14FC1F1F7E9E25>I<127012F8
+B3B3B21270053870B125>124 D<3803E006380FF00F381FF83F383FFE7E387E7FFC38FC
+1FF838F00FF0386007C018087AAB25>126 D E /Ff 3 213 df<1340EA01E01207EA1F80
+EA7E0012F8EAE0C0EA01E0EA07C0EA1F00127E12F812600B0D808C0B>19
+D<EA0780EA1FC0EA3FE0EA3E00127812701278127CEA7F9813F0123FA2EA7FE013C0EA7C
+0012E00D107F8F0F>90 D<EB0180EB03C014E0130714F0130D130CEB1E78133E13FF0007
+13B8387FEFF013CF138738FE03E0EAF8001510818F0F>212 D E
+/Fg 1 35 df<133F3801FFC0380381E0380400404813005AA31360EA0B98EA0FF80010C7
+FC5A5AA35A6C1380124038600100EA300EEA1FFCEA07E013177F9517>34
+D E /Fh 1 66 df<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2
+380800E0A2001813F0123838FE03FE17177F961A>65 D E /Fi 12
+125 df<1218123C123E121E120EA5121CA2123812F812F01260070F779D1A>39
+D<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
+130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
+D<126012F0A27E1278127C123C123E121EA2121F7E7F12077F1203A27F12017F12007F13
+78A2137C133C133E131E131F7FA21480130714C0130314E01301A2EB00C013277DA21A>
+92 D<EB0FC0131F130F1301A6EA01F1EA07FDEA0FFFEA1E0FEA3C07EA7803EA700112E0
+A7EA7003A2EA3807EA3E0F381FFFF83807FDFC3801F1F8161E7E9D1A>100
+D<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7FC12
+70A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<127E12FE127E
+120EA6133EEBFF80000F13C013C1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC171E
+7F9D1A>104 D<13C0487EA26C5A90C7FCA6EA7FE0A31200AF387FFF80B512C06C138012
+1F7C9E1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBF
+BF80397F1F1F00191580941A>109 D<EA7E3E38FEFF80007F13C0EA0FC1EB80E0130012
+0EAC387FC3FC38FFE7FE387FC3FC17157F941A>I<3807FB80EA1FFF127FEA7807EAE003
+A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C012E0A2EAF00338FC0780B512
+00EAEFFEEAE3F812157C941A>115 D<487E1203A6387FFFE0B5FCA238038000AA1470A4
+3801C1E013FF6C1380EB3F00141C7F9B1A>I<126012F0B3B31260042775A21A>124
+D E /Fj 51 122 df<90381FC1F090387037189038C03E3C3801807C0003137839070038
+00A9B612C03907003800B2143C397FE1FFC01E2380A21C>11 D<EB1FC0EB7020EBC01038
+01803800031378EA0700143091C7FCA7B512F8380700781438B2397FE1FF80192380A21B
+>I<EA7038EAF87CEAFC7EA2EA743AEA0402A4EA0804A2EA1008A2EA2010EA40200F0F7E
+A218>34 D<127012F812FCA212741204A41208A21210A212201240060F7C840E>44
+D<EAFFF8A20D02808B10>I<127012F8A3127005057C840E>I<EA01F0EA071CEA0C06487E
+00381380A2387001C0A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA
+071CEA01F013227EA018>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018
+>I<EA03F0EA0C1CEA100700201380384003C0A2008013E012F0EAF801A3EA2003120014
+C0A2EB07801400130E5B13185B5B5B485A90C7FC000213205A5A00181360481340383FFF
+C05AB5FC13217EA018>I<EA03F8EA0C1EEA100F38200780004013C01278130313071238
+00001380A214005B130C1338EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8
+A200F013C01240EB0780122038100F00EA0C1CEA03F013227EA018>I<1303A25BA25B13
+17A21327136713471387120113071202120612041208A212101220A2124012C0B512F838
+000700A7EB0F80EB7FF015217FA018>I<00101380381E0700EA1FFF5B13F8EA17E00010
+C7FCA6EA11F8EA120CEA1C07381803801210380001C0A214E0A4127012F0A200E013C012
+80EA4003148038200700EA1006EA0C1CEA03F013227EA018>I<137EEA01C13803008038
+0601C0EA0C03121C381801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380
+EB01C012F014E0A51270A3003813C0A238180380001C1300EA0C06EA070CEA01F013227E
+A018>I<127012F8A312701200AB127012F8A3127005157C940E>58
+D<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B512
+80EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA2
+25>65 D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
+138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
+D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF138014
+601420A491C7FCA9487EEAFFFE1B227EA120>I<EAFFFCEA0FC0EA0780B3ACEA0FC0EAFF
+FC0E227EA112>73 D<EAFFFCEA1F806CC7FCB3A21401A41403A214021406A2141E48137E
+B512FE18227DA11E>76 D<B512F0380F803C0007130FEC078015C0140315E0A615C01407
+1580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA121>80
+D<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C1300A2127812
+7FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C1360A26C13
+C07E38C8018038C60700EA81FC14247DA21B>83 D<007FB512F839780780780060141800
+401408A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>I<39FFFC07
+FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100EB3006EB1C
+08EB03F020237EA125>I<3BFFF03FFC03FE3B1F8007E000F86C486C48137017206E7ED8
+07801540A24A7E2603C0021480A39039E004780100011600A2EC083CD800F01402A2EC10
+1E01785CA2EC200F013C5CA20260138890391E400790A216D090391F8003F0010F5CA2EC
+00016D5CA20106130001025C2F237FA132>87 D<397FF803FF390FE001F83907C000E06C
+6C5B00015CEBF001D800F890C7FCEB7802EB7C04133EEB1E08EB1F10EB0FB0EB07A014C0
+6D7E130180497EEB0278EB047CEB0C3EEB081EEB101F496C7E140701407F496C7E1401D8
+01007F486D7E5AD81F807F3AFFC003FFC022227FA125>I<EA0804EA1008EA2010A2EA40
+20A2EA8040A4EAB85CEAFC7EA2EA7C3EEA381C0F0F7AA218>92 D<EA1FE0EA3038EA780C
+130EEA30071200A313FFEA07C7EA1E07123C1278127000F01308A3130FEA7817383C2390
+380FC1E015157E9418>97 D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E13
+38143C141C141EA7141C143C1438000F1370380C8060EB41C038083F0017237FA21B>I<
+EA01FEEA0703380C0780121C383803000078C7FC127012F0A712700078134012386C1380
+380C0100EA0706EA01F812157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA
+1C01EA38001278127012F0A7127012781238EA1801EA0C0238070CF03801F0FE17237EA2
+1B>I<EA01FCEA0707380C0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512
+700078132012386C13406C138038070300EA00FC13157F9416>I<133E13E33801C780EA
+0387130748C7FCA9EAFFF80007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E
+18EA1C0E38380700A200781380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA2123012
+38EA3FFE381FFFC06C13E0383000F0481330481318A400601330A2003813E0380E038038
+03FE0015217F9518>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF
+38FFE7FF18237FA21B>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227F
+A10E>I<13E0EA01F0A3EA00E01300A81370EA07F012001370B3A51260EAF0E013C0EA61
+80EA3F000C2C83A10F>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B
+133813F8EA0F1CEA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A
+>I<120E12FE121E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E8072
+01C03A0F003C00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C038
+1E80E0380F0070A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0
+003813E0481370A200F01378A700701370007813F0003813E0381C01C0380E0380380707
+00EA01FC15157F9418>I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7
+143CA21438000F1370380E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F8
+2038070460EA0E02EA1C01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA
+01F0C7FCA9EB0FFE171F7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120F
+EAFFF010157F9413>I<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0F
+F0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A4
+1206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E
+137038FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<
+38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A3
+1374A21338A3131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410
+EB0260147000071420EB04301438D803841340EB8818141CD801C81380EBD00C140E3900
+F00F00497EA2EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C06C1380EB81
+00EA0383EA01C2EA00E41378A21338133C134E138FEA0187EB0380380201C0000413E0EA
+0C00383E01F038FF03FE17157F941A>I<38FF80FE381E00781430000E1320A26C1340A2
+EB80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043
+C7FC123C171F7F941A>I E /Fk 47 127 df<121C123E123F1380121F1203A4EA0700A2
+5A121E5A12F85A1260091175A41F>39 D<121C123F5A1380A2123F121F1203EA0700A212
+0E121E12FC5A1260090F75861F>44 D<1238127C12FEA3127C1238070774861F>46
+D<137E3801FF804813C03807C3E0380F00F04813F8001E137848133CA248131EA3007013
+0E00F0130FAB0078131EA3007C133E003C133CA26C1378001F13F8380F81F03807C3E038
+03FFC06C138038007E0018257DA41F>48 D<1370A213F0A2120112031207127F12FE12F8
+1200B3A6387FFFE0B512F06C13E014257AA41F>I<13FE3803FFC0000F13F0381F01F838
+3E007C48133C0078131E5A140F7EA21270C7FCA2141EA3143C147814F8EB01F0EB03E0EB
+07C0EB0F80EB1F00133E5B5B485AEA03C0485A380F000F121E5A007FB5FCB6FC7E18257D
+A41F>I<48B4FC000713C0001F13F0383F01F8383C007C007C133C141EA21238C7FCA214
+3CA2147814F8EB03F03801FFC0A214F0380001F8EB007C143C141EA2140FA2127012F8A2
+141E5A0078133C007C137C383F01F8381FFFF0000713C03800FE0018257DA41F>I<EB03
+F0A21307130EA2131C133C13381378137013F0EA01E013C01203EA0780A2EA0F00121EA2
+5AA25A5AB612C0A3C7EAF000A890381FFF804913C06D13801A257EA41F>I<381FFFFC5A
+A2003CC7FCAB13FF003F13C014F0EB00F8003C137C0018133CC7121EA2140FA3122012F8
+A2140E48131E0078133E143C6C13F8383F03F0380FFFE06C13803800FE0018257DA41F>
+I<EB0FE0EB3FF8EBFFFC3803F03C3807C01EEB803EEA0F00001E131C14005A12381278A3
+EAF07F38F1FFC000F713E038FF81F838FE007C48133C48131EA2140FA31278A46C131EA2
+6C133C6C1378EB81F03807FFE0000113C038007F0018257DA41F>I<12F0B6FCA338F000
+3E143C1478C712F0EB01E0A2EB03C0A2EB078014005B130E131EA25BA213381378A35BA5
+485AA86C5A18267DA51F>I<13FF000713E04813F0381F81F8383E007C48133E0078131E
+48130FA46C131F0078131E6C133C001F13F8380FE7F03803FFC06C1380000713E0381F00
+F8003E137C003C133C48131E00F8131F48130FA50078131EA26C133C003E137C381F81F8
+380FFFF0000313C0C6130018257DA41F>I<137E3803FF804813E0380F81F0381E00F848
+137848133CA248131EA4141FA31278A26C133F003E137F381F81FF3807FFEF6C138F3800
+FE0FEB001EA3141C143CA200381378007C13F01301387803E0383C0FC0383FFF80381FFE
+00EA03F818257DA41F>I<1238127C12FEA3127C12381200AC1238127C12FEA3127C1238
+071A74991F>I<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C
+0FFF5B38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38
+381E3C383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE3800
+7FF8EB1FC019257DA41F>64 D<131E133FA3EB7380A5EBF3C0A313E100017FA43803C0F0
+A538078078EBFFF8A3380F807CEB003CA4001E7FA339FFC0FFC0A31A257EA41F>I<B512
+F0A33800F000B3ADB512F0A314257BA41F>73 D<3803FFC0001F13F84813FC1300007C13
+3E0078131EA348130FB3A30078131EA3007C133E003F13FC13FF6C13F8000313C018257D
+A41F>79 D<397FE01FF839FFF03FFC397FE01FF8390F0003C0B3A73907800780A33903C0
+0F003801E01EEBF03E38007FF86D5AEB0FC01E2580A41F>85 D<13C0EA03F0487EEA1FFE
+387F3F8038FC0FC0EAF8073860018012087AA41F>94 D<387FFFFEB6FCA26C13FE18047D
+7D1F>I<1203EA0780120FEA1E005A5A1270A25AA412FC7E127E123E121C091175A81F>I<
+EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB3FF8EA01FF1207381FE078EA3E
+005A12785AA4007813F8EA7E036CB512E0000F133F3803FC0F1B1A7D991F>I<EA7F8012
+FF127F1207A8EB83E0EB9FFCEBBFFEEBFC1F9038F007809038E003C013C090388001E0A2
+EC00F0A8EC01E013C0EC03C0EBE0079038F00F809038F81F00EBBFFEEB9FF8380387E01C
+2580A41F>I<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C13005AA21270
+12F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80161A7C99
+1F>I<EB01FE13031301EB001EA8137E3801FF9E000713DE380F81FEEA1F00003E137E00
+3C133E48131EA25AA81278143E7E147E6C13FEEA0F833907FFDFE06CEB1FF0D8007C13E0
+1C257EA41F>I<EB01FCEB07FF011F1380EB3F0F133C903878070091C7FCA5387FFFFEB5
+FCA2D80078C7FCB3A2383FFFF0487F6C5B19257FA41F>102 D<90387C0F803901FF3FC0
+0007EBFFE0380F83F1D81F0113C0391E00F000481378A66C5BEA1F01380F83E048B45A00
+1D90C7FCEA1C7C003CC8FCA37E381FFFE06C13F814FE487F393C003F8048130FEC07C048
+1303A40078EB0780A2003EEB1F00381F807E6CB45A000313F038007F801B287E991F>I<
+EA7F8012FF127F1207A8EB83F0EB8FFCEBBFFEEBFC1FEBF00F9038E0078013C0A21380AF
+397FF87FF839FFFCFFFC397FF87FF81E2580A41F>I<137013F8A3137090C7FCA7EA7FF8
+12FF127FEA0078B3A2B512F8A315267BA51F>I<EB0380EB07C0A3EB038090C7FCA73807
+FFC0A3EA0003B3AB38200780127038F80F005BEA7FFE13F8EA1FE012337DA51F>I<EA7F
+8012FF127F1207A8903887FFC015E015C09038807E005CEB81F8EB83F0EB87E0EB8FC0EB
+9F8001BFC7FC13FF808013F3EBE3E0EBC1F0138080147C143C80141F397FF87FE039FFFC
+FFF0397FF87FE01C257FA41F>I<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C
+0F9038FE3F80B5EA7FC0381FCFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3
+EBC7F11E1A80991F>I<387F83F038FF8FFC387FBFFE3807FC1FEBF00F9038E0078013C0
+A21380AF397FF87FF839FFFCFFFC397FF87FF81E1A80991F>I<13FCEA03FF481380381F
+87E0EA1E01383C00F0007C13F800781378A248133CA76C137C00781378A2007C13F8003C
+13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>I<387F83E038FF9FFC387F
+BFFE3807FC1F9038F007809038E003C013C090388001E0A2EC00F0A8EC01E013C0EC03C0
+EBE0079038F00F809038F81F00EBBFFEEB9FF8EB87E00180C7FCAAEA7FF8487E6C5A1C27
+80991F>I<EB3F0F3801FFCF4813EF380FC0FF48C67E001E7F487F5A80127012F0A61270
+12785C7E003E5B6C5B380FC1FF3807FFEF0001138F38007E0F1300AA903801FFF8A31D27
+7E991F>I<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25B
+A35BAC387FFFE0B5FC7E1A1A7E991F>I<3803FC70380FFFF0123FEA7C03EA7001EAE000
+A37E007C1300EA3FE06CB4FC000713C0C613F0EB03F8EB00780070133C00F0131CA27EA2
+6C1338B413F013FF00E713C038E1FE00161A7C991F>I<137013F0A6387FFFFEB5FCA2D8
+00F0C7FCADEC0780A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>I<397F807F8000
+FF13FF007F137F00071307B1140F141F3803C07F6CB512F86CEBE7FC90383F87F81E1A80
+991F>I<39FFE07FF0EBF0FFEBE07F391E000780A56CEB0F00A2130FA2EB1F8FA238071B
+8EEB9B9EA2EBBBDEA213B1000313DCA2EBF1FC13E0A2000113781C1A7F991F>119
+D<397FF0FFE0486C13F06C4813E0390F800F000007131EA2EA03C05CA2EA01E0147C1478
+EA00F0A25C1378A2EB38E01339133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383E
+EA7C3C137C5BEA7FF06C5AEA0F801C277F991F>121 D<003FB512805AA23978001F0014
+3E5C5CC6485A495A495A5C49C7FC131E5B5B5B1201485A485A390F800780EA1F00123E5A
+B6FCA3191A7E991F>I<126012F0B3B3A91260042F73A91F>124 D<38038060380FE0F0EA
+1FE1383CF3C038F87F8000F01300EA601C14077BA41F>126 D E
+/Fl 54 128 df<EB3F80EBE1E03801C070380380780007133C130048133EA5143C147814
+7014E0EB03C038FF1E00EB0380380F01C0EB00E014701478143CA2143EA2141E141FA814
+1E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>25 D<127812FCA212FEA2127A12
+02A41204A31208A212101220124007127B8510>44 D<EAFFFEA30F037F8E14>I<127812
+FCA4127806067B8510>I<137E3801C380380700E0000E1370001E1378001C1338003C13
+3CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C1338001E
+1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF12
+F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001F0
+1260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB0780
+1400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FCA2
+16287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA1307
+381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F012
+60383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
+D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
+3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
+121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
+A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
+A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
+00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
+3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
+381C0F00EA0FFEEA03F818297EA71D>57 D<127812FCA412781200AE127812FCA4127806
+1A7B9910>I<14101438A3147CA314BEA3EB011FA39038020F80A201047F1407A201087F
+1403A2496C7EA3496C7EA390387FFFFCA29038C0007E49133EA248C7123F81A20002EC0F
+80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C>65 D<B6FC15C0390FC003F0
+0007EB00F881157E153E153FA6153E157E157C5D4A5AEC07E090B512809038C001F06E7E
+153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000FEB01F8B65A158022297DA829
+>I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED03E0ED01F0A2ED00F8A216FC
+167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED0780ED1F00153E0007EB01FC
+B612F0158027297EA82D>68 D<B7FCA23907E0003F00031407ED03801501A21500A41640
+5CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391C7FC1640A416C0A215011503
+ED07800007143FB7FCA223297EA828>I<02FF13100107EBE03090381FC07890393E000C
+7001F8EB06F048481303484813014848130048481470A248C812305A123E1610127EA200
+7C150012FCA892B5FC127C007EEC03F01501123EA2123F7E6C7EA26C7E6C7E6C6C13026C
+7E013EEB0C7090391FC03830903907FFE0100100EB8000282B7DA92E>71
+D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
+D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
+18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
+153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
+D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
+A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
+23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
+7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
+7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
+8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
+7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
+ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
+FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
+0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
+387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
+7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
+00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
+007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
+0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
+147E90380FFFF0A229297FA82C>89 D<1203EA0780EA0CC0EA1860EA3030EA6018EAC00C
+EA80040E0879A81D>94 D<1204120812101220A21240A31280A412BC12FEA2127EA2123C
+07127CA910>96 D<EA03FCEA0C0738100380383C01C0003E7F6D7E121C1208C7FCA3137F
+EA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880381E0C7F3907F01E
+001A1A7E991D>I<120FB4FCA2121F7EACEB07E0EB1838EB600EEB8007158090380003C0
+A2EC01E0A215F0A715E0A2140315C01580EB8007000EEB0F00EB401C380C303838080FC0
+1C2A7EA921>I<137F3801C0E038070010000E1378001E13F85A1470007C132000781300
+12F8A81278127C003C1308A26C1310000E13206C13603801C18038007E00151A7E991A>
+I<140F14FFA2141F80AC133F3801C0CF3803802F380F001F121E001C7F123C127C1278A2
+12F8A71278A27EA26C5B000E132F6CEB4F803901C18FF038007E0F1C2A7EA921>I<13FC
+38038780380701C0000E13E0EA1C00003C13F0A2481378A212F8A2B512F800F8C7FCA512
+78A26C1308A26C1310000E13206C13403801C18038007E00151A7E991A>I<131FEB70C0
+EBE1E0EA01C31203EB81C0380780801400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA9
+12>I<140F3901FC308038070743380E03C3001EEBC100486C7EA2007C7FA5003C5BA26C
+485A000E5BD81707C7FCEA11FC0030C8FCA47E381FFF806C13F06C7F3818007C48131E00
+70130E00607F12E0A40070130EA26C5B6C5B380781E0C6B4C7FC19287E9A1D>I<120FB4
+FCA2121F7EACEB07F0EB1838EB201C497E140F1380A21300B139FFF0FFF0A21C2A7EA921
+>I<121E123FA4121EC7FCA9120FB4FCA2121F7EB3A2EAFFF0A20C297EA811>I<137813FC
+A413781300A9133CEA07FCA2EA007C133CB3AAEA703812F8137012F0EA60C0EA1F800E35
+82A812>I<120FB4FCA2121F7EACECFFC0A2EC7E0014305C14405C0103C7FC1304130C13
+1E133E135F138FEB0780801303806D7E1300801478147C147E39FFF1FFE0A21B2A7EA91F
+>I<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F07F007F03AFF183818389039
+201C201C3A1F400E400E000F010F130F01801380A201001300B13BFFF0FFF0FFF0A22C1A
+7E9931>I<380F07F038FF1838EB201C381F400E000F130F1380A21300B139FFF0FFF0A2
+1C1A7E9921>I<137E3803C3C0380700E0000E1370481338003C133CA248131EA200F813
+1FA80078131EA26C133CA2001C13386C13706C13E03803C3C038007E00181A7E991D>I<
+380F07E038FF1838EB601E380F800FEC0780010013C0140315E0A2EC01F0A715E01403A2
+15C0EC07801380EC0F00EB401CEB3078EB0FC090C8FCAAEAFFF0A21C267E9921>I<EB3F
+013801E08338038043380F0027001E1317141F487F127CA2127812F8A7127CA2123C003E
+5B121E6C132F3807804F3801C18F38007E0F1300AAECFFF0A21C267E991F>I<380F0F80
+38FF11C0EB23E0EA1F43EA0F83EB81C0EB800090C7FCB07FEAFFFCA2131A7E9917>I<38
+07F080EA1C0DEA3003EA600112E01300A27E6C1300127EEA7FE0EA3FFC6C7EEA07FF3800
+3F801307388003C0A2130112C0A200E01380130300F01300EACC0EEA83F8121A7E9917>
+I<7FA41201A31203A21207120F381FFF80B5FC38078000AD1440A73803C08012013800E1
+00133E12257FA417>I<000F130FB413FFA2001F131F6C7FB05CA26C132F3903804F8039
+01C08FF038007F0F1C1A7E9921>I<3AFFF3FF83FEA23A1F803C00F8D80F001460EB801C
+0007011E1340A2D9C02E13C00003012F1380A23A01E04701001581A23900F0838215C2A2
+90387901C415E4137B90383E00E815F8A2011C1370A20118133001081320271A7F992A>
+119 D<39FFF01FF0A2390F8007800007EB03001402A26C6C5AA2EBE00C00011308A26C6C
+5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80A26DC7FCA31306A21304A2130C1308A2EA70
+1012F85BA2485AEA6180001FC8FC1C267F991F>121 D<387FFFF8387800F0EA60010040
+13E0EB03C0EAC00700801380EB0F005BEA001E5B137C13785B1201EBE008EA03C0120713
+80380F0018481310121E481330007C1370387801F0B5FC151A7E991A>I<B612F01C0180
+901D>I<000F1340381FC0803833F300EA40FEEA803C12057BA71D>126
+D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA81D>I E /Fm
+12 115 df<1518153CA3157EA315FFA39138019F80A39138030FC0A202077FEC0607A202
+0E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A131FA201038191C712
+0FA249B67EA20106C71207496E7EA3496E7EA201388101301400A20170810160157EA249
+157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB3C>65
+D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170CA21503
+A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706A5170E
+A2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
+D<D90FF0138090387FFE013901F00F813903C001C348C712E3000E143748143F003C141F
+0038140F127800701407A200F01403A415017EA27E007C91C7FC127E7E13C0EA1FF06CB4
+FC6C13F06C13FE6CEBFFC06C14F0011F7F010313FE9038003FFF14039138007F80ED1FC0
+150FED07E01503A2ED01F012C0A21500A37EA216E07E15016C15C0A26CEC03806C140700
+F71500D8E1C0131ED8E0F05BD8C07E13F090380FFFE0D8800190C7FC243D7CBB2C>83
+D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
+00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>I<267FFFE09038
+07FFF8A20003018001011380C690C8EAFE00491578017F15706D6C14605F6D6C13016D6C
+5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E027F137091383F80605EEC1FC19138
+0FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B7EA2913801DFC09138038FE0150F
+91380607F091380E03F8140C4A6C7E91383800FE14304A137F02E06D7E5C49486D7E0103
+6E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E0130157E0170157F01F0ED3F80D8
+03F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C>88 D<EB3F803801C0F03803003C
+00047F000C7F486D7E001C80003E1303003F80A3121EC7FCA3143FEB0FF3EB7E03EA01F8
+EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407A2007C130B127E003E903811F0C0
+6C13603A07C1807F803A00FE003E0023257CA427>97 D<EA03E012FFA212071203B3EC3F
+C0ECE0789038E3001C01E6130F01E8EB078001F8EB03C049EB01E04914F0150016F8A216
+FC167CA2167EA9167CA216FC16F8A2ED01F016E06D130301D814C001C8EB07800184EB0E
+0001835B903881C0F09038003F80273C7EBB2C>I<ED0F80EC03FFA2EC001F150FB3EB03
+F8EB1E07903870018F9038E0004FD803C0132F4848131F120F90C7120F5A123EA2127E12
+7CA212FCA9127CA2127E123EA2121E121F6C141F6C6C133F6C6C136F6C6C13CF3A007001
+8FC090393C0E0FFEEB07F0273C7DBB2C>100 D<EA03E012FFA212071203B3EC1FE0EC60
+7CEC801E9038E3000F01E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FC
+A2283C7EBB2C>104 D<1207EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F
+1207B3ACEA0FE0EAFFFEA20F397DB815>I<3903E01FE000FFEB607CEC801E3907E3000F
+D803E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FCA228257EA42C>
+110 D<3803E03E00FF13C39038E107803907E20FC0EA03E413E8EC0780EC030001F0C7FC
+A35BB3A5487EB512C0A21A257EA41E>114 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 701 411 a Fm(Sindhi)27 b(in)g(ArabT)1255 430
+y(E)1300 411 y(X)853 559 y Fl(Klaus)19 b(Lagally)742
+634 y(Institut)e(f)r(\177)-31 b(ur)19 b(Informatik)724
+708 y(Breit)n(wiesenstra\031e)f(20{22)797 783 y(D-70565)i(Stuttgart)873
+858 y(GERMANY)677 933 y Fk(mailto:lagally)o(k@ac)o(m.or)o(g)823
+1049 y Fl(August)f(06,)h(1997)235 1118 y Fj(There)g(is)g(a)g(new)g
+(ArabT)715 1129 y(E)742 1118 y(X)g(language)h(mo)q(de,)f
+Fi(\\setsindh)o(i)p Fj(,)d(for)k(pro)q(cessing)f(Sindhi)162
+1178 y(texts)c(in)g(the)g(extended)f(Arabic)g(writing.)235
+1238 y(This)23 b(mo)q(de)f(w)o(orks)h(only)g(with)f(ArabT)1001
+1249 y(E)1029 1238 y(X)g(v)o(ersion)g(3.06)i(or)f(later)f(and)i
+(requires)d(an)162 1299 y(up)q(dated)c(v)o(ersion)e(of)i(the)e(fon)o(t)
+h(\\nash14".)24 b(These)16 b(conditions)g(are)g(c)o(hec)o(k)o(ed,)e(if)
+h(L)1692 1287 y Fh(A)1712 1299 y Fj(T)1739 1309 y(E)1766
+1299 y(X2)p Fg(")h Fj(is)162 1359 y(used.)21 b(F)l(or)c(Plain)f(T)535
+1370 y(E)562 1359 y(X)g(there)f(are)i(no)f(c)o(hec)o(ks.)235
+1419 y(T)l(o)f(activ)m(ate)f(the)h(Sindhi)f(mo)q(de,)g(select)f(the)h
+(language)i(b)o(y)e Fi(\\setsindhi)o Fj(.)k(Sindhi)c(input)162
+1479 y(texts)24 b(are)g(enco)q(ded)g(in)g(a)h(mo)q(di\014cation)e(of)i
+(the)f(standard)h(ArabT)1479 1490 y(E)1507 1479 y(X)e(enco)q(ding.)46
+b(The)162 1539 y(alphab)q(et)17 b(is)f(giv)o(en)f(in)h(T)l(able)g(1.)
+235 1600 y(F)l(or)f(the)f(use)g(of)h(the)f(enco)q(ding,)g(see)g(T)l
+(able)h(2.)20 b(It)14 b(con)o(tains)h(all)f(Sindhi)f(letters,)h
+(together)162 1660 y(with)f(their)g(input)h(enco)q(ding)g(and)g(a)g(t)o
+(ypical)e(example)g(of)i(use.)20 b(F)l(or)14 b(ev)o(ery)e(line)g(the)i
+(external)162 1720 y(notation)j(is)f(also)h(giv)o(en.)222
+1834 y(1.)24 b(This)f(is)g(a)g(preliminary)e(v)o(ersion)h(solely)h(in)o
+(tended)f(for)h(insp)q(ection,)h(exp)q(erimen)o(ts,)284
+1894 y(ev)m(aluation,)16 b(and)g(suggestions.)22 b(The)16
+b(\014nal)h(v)o(ersion)e(ma)o(y)f(di\013er)i(in)g(details,)f(dep)q
+(end-)284 1954 y(ing)h(on)h(feedbac)o(k)e(b)o(y)h(the)g(users.)222
+2035 y(2.)24 b(Use)16 b(h)o(yphens)g(to)g(resolv)o(e)f(am)o(biguities)f
+(with)i(aspired)h(consonan)o(ts.)222 2116 y(3.)24 b(If)19
+b(the)g(new)g(fon)o(t)g(is)g(not)h(a)o(v)m(ailable,)f(the)g(\\wide)g
+(letter)g(k)m(af)s(")h(is)f(missing.)29 b(W)l(e)19 b(tem-)284
+2177 y(p)q(orarily)12 b(substitute)g(an)g(ordinary)g(letter)f(k)m(af)h
+(with)g(four)g(dots,)h(whic)o(h)e(do)q(es)i(not)f(exist,)284
+2237 y(but)k(should)h(b)q(e)f(conspicuous)h(enough.)222
+2318 y(4.)24 b(T)l(an)o(w)o(een)16 b(w)o(orks)g(as)h(exp)q(ected:)j
+Fi(miN)f Ff(\324)1004 2337 y(\023)1033 2318 y Fj(,)d
+Fi('|iN)j Ff(Z)1187 2337 y(\023)1216 2318 y Fj(.)222
+2411 y(5.)24 b(The)c(user)f(ma)o(y)g(w)o(an)o(t)g(to)h(break)g(some)f
+(ligatures)g(b)o(y)h(inserting)f(a)h(v)o(ertical)e(bar,)j(to)284
+2471 y(get)16 b(the)g(correct)g(writing,)f(or)i(just)f(for)h(a)f(b)q
+(etter)g(app)q(earance)i(of)e(the)g(script.)1018 2744
+y(1)p eop
+%%Page: 2 2
+2 1 bop 236 348 1589 2 v 235 473 2 126 v 244 473 V 306
+424 a Fe(a)p 404 473 V 461 361 a Fd(\013)463 424 y(@)p
+528 473 V 94 w Fc(a)p 646 473 V 655 473 V 93 w Fe(~n)p
+815 473 V 868 439 a Fd(\012)854 424 y(h)p 935 473 V 77
+w Fc(~)-38 b(n)p 1056 473 V 1065 473 V 93 w Fe(z)p 1188
+473 V 96 w Fd(R)p 1321 473 V 94 w Fc(z)p 1442 473 V 1451
+473 V 79 w Fe(kh)p 1574 473 V 55 w Fd(\270)p 1694 473
+V 51 w Fc(kh)p 1816 473 V 1825 473 V 235 587 2 114 v
+244 587 V 306 538 a Fe(b)p 404 587 V 94 w Fd(H)465 560
+y(.)p 528 587 V 572 538 a Fc(b)p 646 587 V 655 587 V
+95 w Fe(^c)p 815 587 V 81 w Fd(x)p 935 587 V 77 w Fc(\024)k(c)p
+1056 587 V 1065 587 V 96 w Fe(s)p 1188 587 V 79 w Fd(\200)p
+1321 587 V 77 w Fc(s)p 1442 587 V 1451 587 V 98 w Fe(g)p
+1574 587 V 73 w Fd(\300)p 1694 587 V 69 w Fc(g)p 1816
+587 V 1825 587 V 235 701 V 244 701 V 288 652 a Fe(:b)p
+404 701 V 75 w Fd(H)465 672 y(\011)465 683 y(.)p 528
+701 V 572 652 a Fc(b)561 707 y(\177)p 646 701 V 655 701
+V 680 652 a Fe(^ch)p 815 701 V 868 661 a Fd(\020)868
+671 y(\012)854 652 y(h)p 935 701 V 59 w Fc(\024)g(ch)p
+1056 701 V 1065 701 V 60 w Fe(^s)p 1188 701 V 60 w Fd(\210)p
+1321 701 V 73 w Fc(\024)i(s)p 1442 701 V 1451 701 V 79
+w Fe(:g)p 1574 701 V 55 w Fd(\300)1634 668 y(\011)1634
+678 y(.)p 1694 701 V 1740 652 a Fc(g)1729 721 y(\177)p
+1816 701 V 1825 701 V 235 827 2 127 v 244 827 V 288 778
+a Fe(bh)p 404 827 V 75 w Fd(H)459 799 y(\020)459 809
+y(\012)p 528 827 V 554 778 a Fc(bh)p 646 827 V 655 827
+V 77 w Fe(.h)p 815 827 V 81 w Fd(h)p 935 827 V 77 w Fc(h)982
+793 y(.)p 1056 827 V 1065 827 V 1091 778 a Fe(.s)p 1188
+827 V 54 w Fd(\220)p 1321 827 V 71 w Fc(s)1368 793 y(.)p
+1442 827 V 1451 827 V 1476 778 a Fe(gh)p 1574 827 V 62
+w Fd(\354)1633 762 y(\303)p 1694 827 V 1722 778 a Fc(gh)p
+1816 827 V 1825 827 V 235 953 V 244 953 V 306 904 a Fe(t)p
+404 953 V 459 880 a Fd(\020)437 904 y(H)p 528 953 V 73
+w Fc(t)p 646 953 V 655 953 V 708 904 23 2 v 131 w Fe(h)p
+815 953 2 127 v 87 w Fd(p)p 935 953 V 77 w Fc(h)970 962
+y(\025)p 1056 953 V 1065 953 V 1091 904 a Fe(.d)p 1188
+953 V 54 w Fd(\230)p 1321 953 V 67 w Fc(d)1368 919 y(.)p
+1442 953 V 1451 953 V 1476 904 a Fe(:n)p 1574 953 V 1627
+843 a Fd(\020)1605 904 y(\300)p 1694 953 V 65 w Fc(n)1729
+960 y(\177)p 1816 953 V 1825 953 V 235 1067 2 114 v 244
+1067 V 288 1018 a Fe(th)p 404 1067 V 459 984 a Fd(\020)459
+994 y(\020)437 1018 y(H)p 528 1067 V 55 w Fc(th)p 646
+1067 V 655 1067 V 100 w Fe(d)p 815 1067 V 110 w Fd(X)p
+935 1067 V 86 w Fc(d)p 1056 1067 V 1065 1067 V 76 w Fe(.t)p
+1188 1067 V 67 w Fd(\240)p 1321 1067 V 87 w Fc(t)1368
+1033 y(.)p 1442 1067 V 1451 1067 V 1495 1018 a Fe(l)p
+1574 1067 V 87 w Fd(\310)p 1694 1067 V 92 w Fc(l)p 1816
+1067 V 1825 1067 V 235 1181 V 244 1181 V 288 1132 a Fe(,t)p
+404 1181 V 459 1098 a Fd(\022)437 1132 y(H)p 528 1181
+V 573 1119 a Fc(\023)576 1132 y(t)p 646 1181 V 655 1181
+V 100 w Fe(dh)p 815 1181 V 868 1091 a Fd(\020)864 1132
+y(X)p 935 1181 V 68 w Fc(dh)p 1056 1181 V 1065 1181 V
+58 w Fe(.z)p 1188 1181 V 67 w Fd(\244)p 1321 1181 V 84
+w Fc(z)1368 1147 y(.)p 1442 1181 V 1451 1181 V 1495 1132
+a Fe(m)p 1574 1181 V 95 w Fd(\324)p 1694 1181 V 79 w
+Fc(m)p 1816 1181 V 1825 1181 V 235 1295 V 244 1295 V
+269 1246 a Fe(,th)p 404 1295 V 465 1212 a Fd(\011)465
+1221 y(\011)437 1246 y(H)p 528 1295 V 555 1233 a Fc(\023)558
+1246 y(th)p 646 1295 V 655 1295 V 82 w Fe(:d)p 815 1295
+V 868 1196 a Fd(\022)864 1246 y(X)p 935 1295 V 86 w Fc(d)970
+1301 y(\177)p 1056 1295 V 1065 1295 V 1109 1246 a Fe(`)p
+1188 1295 V 90 w Fd(\250)p 1321 1295 V 98 w Fb(,)p 1442
+1295 V 1451 1295 V 97 w Fe(n)p 1574 1295 V 1634 1213
+a Fd(\011)1617 1246 y(\340)p 1694 1295 V 79 w Fc(n)p
+1816 1295 V 1825 1295 V 235 1412 2 118 v 244 1412 V 297
+1363 23 2 v 319 1363 a Fe(s)p 404 1412 2 118 v 459 1339
+a Fd(\021)437 1363 y(H)p 528 1412 V 73 w Fc(t)559 1412
+y(\026)p 646 1412 V 655 1412 V 699 1363 a Fe(,d)p 815
+1412 V 91 w Fd(X)874 1381 y(.)p 935 1412 V 983 1344 a
+Fc(\023)979 1363 y(d)p 1056 1412 V 1065 1412 V 76 w Fe(.g)p
+1188 1412 V 1254 1319 a Fd(\011)1236 1363 y(\250)p 1321
+1412 V 92 w Fc(_)-27 b(g)p 1442 1412 V 1451 1412 V 77
+w Fe(,n)p 1574 1412 V 1629 1329 a Fd(\010)1617 1363 y(\340)p
+1694 1412 V 81 w Fc(\023)-38 b(n)p 1816 1412 V 1825 1412
+V 235 1530 V 244 1530 V 306 1481 a Fe(p)p 404 1530 V
+94 w Fd(H)459 1502 y(\022)p 528 1530 V 570 1481 a Fc(p)p
+646 1530 V 655 1530 V 74 w Fe(,dh)p 815 1530 V 73 w Fd(X)868
+1498 y(\012)p 935 1530 V 965 1462 a Fc(\023)961 1481
+y(dh)p 1056 1530 V 1065 1530 V 76 w Fe(f)p 1188 1530
+V 77 w Fd(\362)p 1321 1530 V 79 w Fc(f)p 1442 1530 V
+1451 1530 V 101 w Fe(w)p 1574 1530 V 82 w Fd(\360)p 1694
+1530 V 82 w Fc(w)p 1816 1530 V 1825 1530 V 235 1645 2
+116 v 244 1645 V 306 1596 a Fe(j)p 404 1645 V 102 w Fd(`)p
+528 1645 V 77 w Fc(\024)k(g)p 646 1645 V 655 1645 V 708
+1596 23 2 v 126 w Fe(d)p 815 1645 2 116 v 874 1556 a
+Fd(\011)864 1596 y(X)p 935 1645 V 86 w Fc(d)967 1645
+y(\026)p 1056 1645 V 1065 1645 V 1091 1596 a Fe(ph)p
+1188 1645 V 1248 1546 a Fd(\020)1248 1556 y(\020)1223
+1596 y(\254)p 1321 1645 V 53 w Fc(ph)p 1442 1645 V 1451
+1645 V 58 w Fe(,h)p 1574 1645 V 80 w Fd(\350)p 1694 1645
+V 87 w Fc(h)p 1816 1645 V 1825 1645 V 235 1759 2 114
+v 244 1759 V 288 1710 a Fe(:j)p 404 1759 V 465 1722 a
+Fd(\011)465 1732 y(.)445 1710 y(h)p 528 1759 V 77 w Fc(\177)k(\021)p
+646 1759 V 655 1759 V 118 w Fe(r)p 815 1759 V 108 w Fd(P)p
+935 1759 V 88 w Fc(r)p 1056 1759 V 1065 1759 V 97 w Fe(q)p
+1188 1759 V 88 w Fd(\364)p 1321 1759 V 84 w Fc(q)p 1442
+1759 V 1451 1759 V 97 w Fe(h)p 1574 1759 V 87 w Fd(\353)p
+1694 1759 V 83 w Fc(h)p 1816 1759 V 1825 1759 V 235 1873
+V 244 1873 V 288 1824 a Fe(jh)p 404 1873 V 73 w Fd(\354)456
+1808 y(c)p 528 1873 V 552 1824 a Fc(\024)c(gh)p 646 1873
+V 655 1873 V 77 w Fe(,r)p 815 1873 V 868 1794 a Fd(\020)868
+1804 y(\020)862 1824 y(P)p 935 1873 V 85 w Fc(\023)h(r)p
+1056 1873 V 1065 1873 V 97 w Fe(k)p 1188 1873 V 79 w
+Fd(\234)p 1321 1873 V 75 w Fc(k)p 1442 1873 V 1451 1873
+V 97 w Fe(y)p 1574 1873 V 79 w Fd(\370)1627 1862 y(\012)p
+1694 1873 V 1739 1824 a Fc(y)p 1816 1873 V 1825 1873
+V 236 1875 1589 2 v 235 1988 2 114 v 244 1988 V 306 1940
+a Fe(a)p 404 1988 V 96 w Fd(\005)462 1917 y(\013)460
+1940 y(\006)o(\007)p 528 1988 V 69 w Fc(a)p 646 1988
+V 655 1988 V 111 w Fe(e)p 815 1988 V 94 w Fd(\005\006)871
+1961 y(\013)888 1940 y(\007)p 935 1988 V 71 w Fc(e)p
+1056 1988 V 1065 1988 V 97 w Fe(i)p 1188 1988 V 81 w
+Fd(\005\006)1250 1961 y(\013)1268 1940 y(\007)p 1321
+1988 V 83 w Fc(i)p 1442 1988 V 1451 1988 V 101 w Fe(o)p
+1574 1988 V 75 w Fd(\005)1630 1917 y(\014)1628 1940 y(\006)o(\007)p
+1694 1988 V 69 w Fc(o)p 1816 1988 V 1825 1988 V 235 2107
+2 119 v 244 2107 V 306 2054 a Fe(u)p 404 2107 V 96 w
+Fd(\005)462 2031 y(\014)460 2054 y(\006)o(\007)p 528
+2107 V 68 w Fc(u)p 646 2107 V 655 2107 V 110 w Fe(A)p
+815 2107 V 106 w Fd(A)879 2031 y(\013)877 2054 y(\007)p
+935 2107 V 81 w Fc(\026)d(a)p 1056 2107 V 1065 2107 V
+94 w Fe(E)p 1188 2107 V 92 w Fd(\377\007)p 1321 2107
+V 84 w Fc(\026)i(e)p 1442 2107 V 1451 2107 V 97 w Fe(I)p
+1574 2107 V 73 w Fd(\371)1617 2099 y(\012)1650 2054 y(\007)1652
+2075 y(\013)p 1694 2107 V 1738 2054 a Fc(\026)-29 b(\020)p
+1816 2107 V 1825 2107 V 235 2221 2 114 v 244 2221 V 306
+2173 a Fe(O)p 404 2221 V 96 w Fd(\361\007)p 528 2221
+V 70 w Fc(\026)-36 b(o)p 646 2221 V 655 2221 V 111 w
+Fe(U)p 815 2221 V 89 w Fd(\361)885 2150 y(\014)883 2173
+y(\007)p 935 2221 V 75 w Fc(\026)f(u)p 1056 2221 V 1065
+2221 V 75 w Fe(ae)p 1188 2221 V 73 w Fd(\377)1261 2150
+y(\013)1259 2173 y(\007)p 1321 2221 V 68 w Fc(ae)p 1442
+2221 V 1451 2221 V 60 w Fe(ao)p 1574 2221 V 52 w Fd(\361)1644
+2150 y(\013)1642 2173 y(\007)p 1694 2221 V 57 w Fc(ao)p
+1816 2221 V 1825 2221 V 235 2355 2 135 v 244 2355 V 306
+2307 a Fe(i)p 404 2355 V 120 w Fd(@)461 2324 y(\013)p
+528 2355 V 577 2307 a Fc(i)p 646 2355 V 655 2355 V 708
+2307 23 2 v 131 w Fe(A)p 815 2355 2 135 v 79 w Fd(\371)892
+2284 y(\013)890 2307 y(\007)p 935 2355 V 68 w Fc(\026)h(a)p
+1056 2355 V 1065 2355 V 76 w Fe('A)p 1188 2355 V 1246
+2244 a Fd(\016)1252 2307 y(@)p 1321 2355 V 95 w Fb(-)-7
+b Fc(\026)-36 b(a)p 1442 2355 V 1451 2355 V 67 w Fe('a)p
+1574 2355 V 1629 2244 a Fd(\015)1631 2307 y(@)p 1694
+2355 V 89 w Fb(-)-7 b Fc(a)p 1816 2355 V 1825 2355 V
+235 2469 2 114 v 244 2469 V 288 2421 a Fe('i)p 404 2469
+V 101 w Fd(@)461 2447 y(\015)p 528 2469 V 573 2421 a
+Fb(-)g Fc(i)p 646 2469 V 655 2469 V 91 w Fe('y)p 815
+2469 V 870 2398 a Fd(\015)852 2421 y(\370)p 935 2469
+V 71 w Fb(-)g Fc(y)p 1056 2469 V 1065 2469 V 69 w Fe('w)p
+1188 2469 V 1250 2390 a Fd(\015)1240 2421 y(\360)p 1321
+2469 V 79 w Fb(-)g Fc(w)p 1442 2469 V 1451 2469 V 61
+w Fe('|)p 1574 2469 V 77 w Fd(Z)p 1694 2469 V 103 w Fb(-)p
+1816 2469 V 1825 2469 V 236 2471 1589 2 v 709 2551 a
+Fj(T)l(able)16 b(1:)21 b(The)c(Sindhi)e(Alphab)q(et)1018
+2744 y(2)p eop
+%%Page: 3 3
+3 2 bop 162 315 a Fk(1:)25 b(a)h(anbu)f(b)g(badaka)g(:b)g(:bilI)g(bh)g
+(bhOli,rO)166 389 y Fa(\360)206 364 y(\020)206 372 y(\020)201
+389 y(Q)o(\313)228 407 y(\013)246 389 y(\361K)279 403
+y(\020)279 411 y(\012)323 389 y Fl(bh)k Fa(H)436 406
+y(\020)436 415 y(\012)649 389 y(\372)656 428 y(\012)680
+389 y(\316)685 431 y(\013)703 382 y(K)708 396 y(\011)708
+405 y(.)705 419 y(\013)746 389 y Fl(:b)h Fa(H)849 406
+y(\011)849 415 y(.)1077 354 y(\013)1056 389 y(\234)1125
+350 y(\013)1115 389 y(Y)1151 361 y(\013)1149 389 y(K)1154
+404 y(.)1192 389 y Fl(b)f Fa(H)1278 407 y(.)1508 367
+y(\014)1486 389 y(I)1511 407 y(.)1548 362 y(\011)1543
+389 y(K)1563 337 y(\013)1564 389 y(@)c Fl(a)1658 337
+y Fa(\013)1660 389 y(@)1843 376 y(:)5 b(1)162 475 y Fk(2:)25
+b(t)h(ti:di)e(th)i(thIlihI)e(,t)h(,tOplO)g(,th)g(,thUn,thi)192
+533 y Fa(\011)192 541 y(\011)166 562 y(I)188 583 y(\013)229
+534 y(\011)224 562 y(K)l(\361)271 511 y(\014)274 526
+y(\011)274 534 y(\011)269 562 y(K)j Fl(,th)438 533 y
+Fa(\011)438 541 y(\011)415 562 y(H)150 b(\361\312K)669
+576 y(\022)692 562 y(\361)725 527 y(\022)725 562 y(K)27
+b Fl(,t)856 534 y Fa(\022)837 562 y(H)159 b(\372)1058
+600 y(\012)1081 562 y(\346\352)1112 593 y(\013)1129 562
+y(\312)1130 579 y(\013)1146 562 y(J)1146 576 y(\012)1163
+526 y(\020)1163 534 y(\020)1163 562 y(K)1164 579 y(\013)1205
+562 y Fl(th)1309 533 y Fa(\020)1309 541 y(\020)1291 562
+y(H)1513 517 y(\022)1504 562 y(Y)1514 579 y(\013)1538
+534 y(\020)1538 562 y(K)1540 579 y(\013)1581 562 y Fl(t)1652
+541 y Fa(\020)1634 562 y(H)1843 548 y(:)5 b(2)162 647
+y Fk(3:)25 b(_s)h(_samara)e(p)h(pakhO)g(j)h(jahAzu)e(:j)h(:jibha)188
+716 y Fa(\013)166 738 y(I)187 755 y(\020)187 764 y(\012)224
+738 y(k)241 752 y(\011)241 760 y(.)237 775 y(\013)290
+738 y Fl(:j)372 748 y Fa(\011)372 756 y(.)355 738 y(h)593
+703 y(\014)586 738 y(R)t(A)634 703 y(\013)631 738 y(\352)665
+703 y(\013)652 738 y(c)h Fl(j)k Fa(`)192 b(\361\272)1073
+709 y(\013)1071 738 y(K)1071 753 y(\022)1116 738 y Fl(p)29
+b Fa(H)1197 756 y(\022)1430 720 y(\013)1424 738 y(Q)1459
+703 y(\013)1451 738 y(\334)1485 676 y(\013)1483 701 y(\021)1481
+735 y(\337)p 1531 738 18 2 v 1548 738 a Fl(s)1620 718
+y Fa(\021)1602 738 y(H)1843 725 y(:)5 b(3)162 820 y Fk(4:)25
+b(jh)h(jihrkI)e(~n)h(:ja~na)g(^c)g(^can,du)f(^ch)h(^cha,tI)166
+894 y Fa(\372)173 932 y(\012)202 860 y(\022)197 894 y(\346)203
+926 y(\013)237 859 y(\013)224 894 y(k)236 908 y(\020)236
+916 y(\012)290 894 y Fl(^c)n(h)418 902 y Fa(\020)418
+910 y(\012)407 894 y(h)602 855 y(\014)592 894 y(Y)606
+909 y(.)631 867 y(\011)626 894 y(J)657 859 y(\013)643
+894 y({)i Fl(^c)j Fa(x)981 859 y(\013)979 906 y(\012)981
+894 y(l)1008 845 y(\013)994 881 y(k)1011 894 y(\011)1011
+903 y(.)1061 894 y Fl(~n)1164 907 y Fa(\012)1153 894
+y(h)145 b(\372)1345 932 y(\012)1369 894 y(\346\237)1416
+912 y(\013)1450 894 y(Q\352c)1513 926 y(\013)1564 894
+y Fl(jh)30 b Fa(\354)1661 881 y(c)142 b(:)5 b(4)162 980
+y Fk(5:)25 b(.h)h(.huqO)e(_h)i(_ha:tu)e(d)i(daru)e(dh)i(dhuka.ra)173
+1028 y Fa(\013)171 1043 y(\020)171 1052 y(\020)166 1069
+y(Q)214 1033 y(\013)193 1069 y(\237)253 1019 y(\014)251
+1035 y(\020)248 1069 y(X)g Fl(dh)396 1035 y Fa(\020)392
+1069 y(X)618 1050 y(\014)611 1069 y(P)648 1033 y(\013)643
+1069 y(X)g Fl(d)k Fa(X)989 1016 y(\014)974 1069 y(\241)1032
+1016 y(\013)1018 1069 y(s)p 1088 1069 V 48 w Fl(h)g Fa(p)196
+b(\361)1443 1038 y(\020)1438 1069 y(\256)1479 1033 y(\014)1466
+1069 y(k)26 b Fl(.h)k Fa(h)1843 1055 y(:)5 b(5)162 1150
+y Fk(6:)25 b(:d)h(:dOlu)e(,d)i(,dAkha)e(,dh)h(,dha:gI)f(_d)i(_da_hIrO)
+158 1238 y Fa(\360)193 1225 y(Q)220 1238 y(\036)220 1253
+y(\012)253 1208 y(\011)236 1238 y(g)250 1256 y(\013)287
+1189 y(\013)290 1205 y(\011)281 1238 y(X)p 334 1238 V
+48 w Fl(d)423 1205 y Fa(\011)415 1238 y(X)174 b(\372)619
+1277 y(\012)643 1238 y(\346\307)679 1252 y(\011)679 1260
+y(.)676 1275 y(\013)699 1203 y(\013)694 1238 y(X)697
+1253 y(\012)743 1238 y Fl(,dh)30 b Fa(X)858 1253 y(\012)1073
+1186 y(\013)1052 1238 y(\270)t(@)1131 1203 y(\013)1126
+1238 y(X)1135 1253 y(.)1175 1238 y Fl(,d)g Fa(X)1262
+1253 y(.)1460 1186 y(\014)1451 1238 y(\310)t(\360)1525
+1197 y(\022)1521 1238 y(X)d Fl(:d)1653 1197 y Fa(\022)1650
+1238 y(X)1843 1225 y(:)5 b(6)162 1324 y Fk(7:)25 b(r)h(rIla)f(,r)g
+(bagha,ru)f(z)i(zAla)e(s)i(sijju)166 1360 y Fa(\014)165
+1373 y(\017)166 1408 y(d)180 1395 y(\031)220 1391 y(\205)220
+1409 y(\013)260 1408 y Fl(s)k Fa(\200)596 1356 y(\013)588
+1408 y(\310)s(@)644 1373 y(\013)637 1408 y(R)25 b Fl(z)30
+b Fa(R)1000 1368 y(\014)998 1383 y(\020)998 1391 y(\020)993
+1408 y(Q)1024 1373 y(\013)1020 1408 y(\352\302)1083 1380
+y(\013)1081 1408 y(K)1086 1423 y(.)1124 1408 y Fl(,r)1198
+1383 y Fa(\020)1198 1391 y(\020)1193 1408 y(P)1454 1356
+y(\013)1441 1408 y(\311K)1481 1423 y(\012)1503 1408 y(P)1509
+1443 y(\013)1556 1408 y Fl(r)21 b Fa(P)1843 1395 y(:)5
+b(7)162 1490 y Fk(8:)25 b(^s)h(^sInhun)e(.s)h(.sUfu)g(.d)g(.da`Ifu)f
+(.t)i(.tO.tO)158 1564 y Fa(\361\243)l(\361\243)f Fl(.t)31
+b Fa(\240)583 1512 y(\014)559 1564 y(\363)q(J)620 1579
+y(\012)637 1564 y(\252)646 1582 y(\013)685 1529 y(\013)668
+1564 y(\233)25 b Fl(.d)30 b Fa(\230)1031 1512 y(\014)1009
+1564 y(\362)l(\361)1113 1529 y(\014)1095 1564 y(\223)c
+Fl(.s)31 b Fa(\220)1443 1551 y(\011)1428 1564 y(\341)1469
+1529 y(\014)1465 1564 y(\352)1491 1537 y(\011)1485 1564
+y(J)q(\034)1504 1579 y(\012)1523 1564 y(\213)1535 1582
+y(\013)1586 1564 y Fl(^s)f Fa(\210)1843 1551 y(:)5 b(8)162
+1646 y Fk(9:)25 b(.z)h(.zAlimu)e(`)h(`aynaka)f(.g)i(.gAlI^cO)e(f)h
+(fawjI)166 1727 y Fa(\372)173 1765 y(\012)197 1727 y(\346c)239
+1758 y(\013)269 1727 y(\361)305 1678 y(\013)309 1693
+y(\011)302 1727 y(\257)h Fl(f)k Fa(\362)154 b(\361zJ)686
+1741 y(\012)703 1727 y(\313)703 1745 y(\013)721 1727
+y(A)742 1678 y(\013)746 1693 y(\011)734 1727 y(\253)26
+b Fl(.g)881 1690 y Fa(\011)866 1727 y(\250)1077 1691
+y(\013)1057 1727 y(\235)1113 1684 y(\013)1116 1700 y(\011)1111
+1727 y(J)q(J)1128 1741 y(\012)1154 1691 y(\013)1145 1727
+y(\253)f Fl(`)31 b Fa(\250)1440 1708 y(\014)1439 1727
+y(\005)q(\322\313)1484 1745 y(\013)1501 1727 y(A)1526
+1674 y(\013)1514 1727 y(\247)25 b Fl(.z)31 b Fa(\244)1843
+1713 y(:)5 b(9)162 1812 y Fk(10:)25 b(ph)g(phUhArO)f(q)i(qalamu)e(k)i
+(kutO)f(kh)g(kha,ta)188 1864 y Fa(\013)187 1878 y(\022)166
+1906 y(I)232 1853 y(\013)224 1906 y(\273)c Fl(kh)29 b
+Fa(\270)144 b(\361)601 1879 y(\020)601 1906 y(J)639 1870
+y(\014)619 1906 y(\237)21 b Fl(k)30 b Fa(\234)965 1887
+y(\014)963 1906 y(\005)q(\322)1010 1853 y(\013)1008 1906
+y(\312)1028 1857 y(\013)1026 1872 y(\020)1024 1906 y(\257)c
+Fl(q)k Fa(\364)145 b(\360)t(P)t(A)1405 1870 y(\013)1397
+1906 y(\353)-5 b(\361)1459 1848 y(\014)1458 1864 y(\020)1458
+1872 y(\020)1456 1906 y(\257)26 b Fl(ph)1618 1864 y Fa(\020)1618
+1872 y(\020)1598 1906 y(\254)1805 1892 y(:)5 b(1)g(0)162
+1987 y Fk(11:)25 b(g)h(ga:dahu)e(:g)h(:gayrO)f(gh)i(ghO,rO)e(:n)i
+(si:na)187 2016 y Fa(\013)185 2031 y(\020)166 2082 y(\301)o(\203)232
+2099 y(\013)284 2082 y Fl(:n)381 2031 y Fa(\020)362 2082
+y(\300)141 b(\360)598 2057 y(\020)598 2065 y(\020)593
+2082 y(P)s(\361\352\303)21 b Fl(gh)30 b Fa(\354)838 2068
+y(\303)1015 2082 y(\360)1050 2068 y(Q)1077 2082 y(\036)1077
+2096 y(\012)1102 2029 y(\013)1094 2082 y(\303)1105 2095
+y(\011)1105 2104 y(.)1146 2082 y Fl(:g)g Fa(\300)1245
+2095 y(\011)1245 2104 y(.)1434 2046 y(\014)1425 2082
+y(\353)1470 2023 y(\013)1468 2037 y(\022)1460 2082 y(Y)1502
+2029 y(\013)1494 2082 y(\303)21 b Fl(g)30 b Fa(\300)1805
+2068 y(:)5 b(1)g(1)162 2163 y Fk(12:)25 b(l)h(la.ga,ru)d(m)j(ma^chI)e
+(n)i(nAngu)f(,n)g(wa,nu)176 2202 y Fa(\014)176 2223 y(\010)166
+2252 y(\340)213 2226 y(\013)204 2252 y(\360)h Fl(,n)350
+2223 y Fa(\010)340 2252 y(\340)599 2199 y(\014)579 2252
+y(\301)638 2224 y(\011)633 2252 y(K)5 b(A)669 2209 y(\013)672
+2224 y(\011)667 2252 y(K)27 b Fl(n)787 2224 y Fa(\011)773
+2252 y(\340)206 b(\372)1019 2290 y(\012)1042 2252 y(\346m)1065
+2282 y(\020)1065 2290 y(\012)1067 2308 y(\013)1084 2202
+y(\013)1077 2238 y(\327)1129 2252 y Fl(m)30 b Fa(\324)1437
+2211 y(\014)1435 2226 y(\020)1435 2235 y(\020)1430 2252
+y(Q)1466 2213 y(\013)1469 2228 y(\011)1457 2252 y(\252)1488
+2199 y(\013)1488 2252 y(\313)c Fl(l)j Fa(\310)1805 2238
+y(:)5 b(1)g(2)162 2356 y Fk(13:)25 b(w)h(wA:jO)e(h)i(hAthI)e('|)i('|)f
+(y)h(yakO)166 2430 y Fa(\361\236)256 2402 y(\013)254
+2430 y(K)254 2445 y(\012)297 2430 y Fl(y)k Fa(\370)372
+2462 y(\012)599 2430 y(Z)d Fk('|)j Fa(Z)198 b(\372)954
+2468 y(\012)978 2388 y(\020)978 2396 y(\020)978 2430
+y(G)980 2472 y(\013)999 2430 y(A)1020 2395 y(\013)1012
+2430 y(\353)26 b Fl(h)k Fa(\353)196 b(\361k)1410 2444
+y(\011)1410 2452 y(.)1438 2430 y(@)1462 2405 y(\013)1453
+2430 y(\360)25 b Fl(w)30 b Fa(\360)1805 2417 y(:)5 b(1)g(3)457
+2555 y Fj(T)l(able)16 b(2:)21 b(Examples)15 b(for)i(the)f(use)g(of)h
+(the)f(Sindhi)f(Alphab)q(et)1018 2744 y(3)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/language/arabic/arabtex/examples/uighur.ps b/language/arabic/arabtex/examples/uighur.ps
index 99851c8929..1b88c12b6a 100644
--- a/language/arabic/arabtex/examples/uighur.ps
+++ b/language/arabic/arabtex/examples/uighur.ps
@@ -1,679 +1,679 @@
-%!PS-Adobe-2.0
-%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
-%%Title: uighur.dvi
-%%CreationDate: Tue Feb 03 19:04:34 1998
-%%Pages: 2
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%EndComments
-%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe uighur -pj:F:\TMP\dv2.mfj
-%DVIPSParameters: dpi=300, compressed, comments removed
-%DVIPSSource: TeX output 1997.09.30:1415
-%%BeginProcSet: texc.pro
-/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
-/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
-mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
-ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
-hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
-TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
-forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
-/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
-/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
-/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
-string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
-end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
-/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
-N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
-length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
-128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
-get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
-dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
-/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
-/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
-0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
-setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
-.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
-/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
-gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
-add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
-/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
-dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
-adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
-idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
-putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
-adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
-{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
-adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
-chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
-}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
-length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
-cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
-0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
-add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
-userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
-known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
-/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
-65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
-0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
-{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
-getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
-ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
-RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
-false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
-round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
-rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
-{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
-B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
-4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
-p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{SS restore}B end
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/uighur.dvi)
-@start /Fa 1 18 df<383C07C038461860384720303887403813801300A2000E1370A4
-4813E0A4383801C0A43870038012301200A2EB0700A4130EA4130C15207E9418>17
-D E /Fb 84 250 df<387FFF80A21400B5FCA2110581840F>5 D<387FFF80A21400B5FC
-A2110581840F>7 D<1230127E127CA212FC12180706818505>9 D<EA30C0EA7FF8EA7DF0
-A212FFEA18600D067F850F>I<EA01C0EA03F0EA07F81338137813F0120313E0A21207EA
-0F40EA3E0012785A12400D0F808E0B>12 D<120E123F127E12F05AA213C0EAFFE0EA7FC0
-EA1F00127C12F012600B0D808C0B>I<EA30C0EA7FF8EA7DF0A212FFEA18600D067F850F>
-16 D<1206EA0FC01380A2121FEA0300C7FCEA30C0EA7FF8EA7DF0A212FFEA18600D0D7F
-8C0F>I<EA30C0EA7FF8EA7DF0A212FFEA1860C7FC1206EA0FC01380A2121FEA03000D0D
-7F850F>I<124012E0A612F01270A61220040F808E05>23 D<EA4040EAE0E012F1EA7FC0
-EA3F80EA0E000B0680850B>I<1230127CA312FC12380606818505>46
-D<12201260A2127012F0A212F8A212FC12F8A312F01270A812781238A8121CA71218A312
-1006297DA809>64 D<12201260A312E0A41260A21270AB12301238A7123CA37E121F13E0
-120F13C0120712010B277EA60C>I<1580A2EC01C0A215E012301270007814F0127C12FE
-6C14E01380EA7FC0D83FE013C0EA1FF0EA0FF81207EA02FCEA007E133FEC8180EB1FC1EB
-0FE11307EB03F1EB01F9EB00FDECFF008080EC1F80140F15C0143F14FF903803FB80EB07
-FFA215005B14FC1C297EA820>I<154015C01220123000781301127C12FE7E138001C07F
-EA7FE0123FEA1FF0EA0FF8EA07FCEA027CEA007E133F131F90380F8160ECC170EB07C2EB
-03E214E6EB01FCA2903800F878A2EB01F049487E90380FC03E90391F803FC090387F001F
-D801FC14804848130FD80FE01303484890C7FC48C9FC123E127812601240222A80A321>
-I<1602160317800020150717C012601603A200E0ED0180A27E17006C5D007C150F007F15
-3E01F0EB03FE6CB65A6C5D6C15E000011580D8003F01F8C7FC2A1580902E>72
-D<1220A21260174017E012E04C7E6C4B7EEE07FE6C92380EFFC0007CED3E7F007F9238FC
-3F8001F0903807F81F6CB6EAF0036C4BC7FC6C158000014AC8FCD8003F13F03212808D31
->I<134013C0A2487E487EEA0FFC387EFF80A2387C7F00487EEAE00F110B818A0F>I<1320
-1360A2137013F01370A21360A3EA01C0127FA21380EAFF0012FC0C10818F0F>I<140414
-06140EA3140F1407A31403A614021406A2140C141C1478EB01F8EB0FF03801FFE0B512C0
-000F1300EA003C181B838916>80 D<140315C0A2EC0780A214031500A414021406A25C14
-1C5C14F8EB03F0EB1FE048B45AB55A000F90C7FCEA003C1A17838516>I<130EEB0F8013
-1FA21400130790C7FCA714041406140EA3140F1407A31403A614021406A2140C141C1478
-EB01F8EB0FF03801FFE0B512C0000F1300EA003C1828839616>I<130EEB0F80131FA291
-C7FC130790C8FCA5140315C0A2EC0780A214031500A414021406A25C141C5C14F8EB03F0
-EB1FE048B45AB55A000F90C7FCEA003C1A22839016>I<130EEB0F80131FA21400130790
-C7FCEB71C0EB7DF013FFA2EBFBE0133890C7FCA414041406140EA3140F1407A31403A614
-021406A2140C141C1478EB01F8EB0FF03801FFE0B512C0000F1300EA003C182C839A16>
-I<130EEB0F80131FA291C7FC130790C8FCEB71C0EB7DF013FFA2EBFBE0133890C8FCA514
-0315C0A2EC0780A214031500A414021406A25C141C5C14F8EB03F0EB1FE048B45AB55A00
-0F90C7FCEA003C1A29839716>I<5A13C0EA03F07F7F6C7E6C7EEB3F80131FEB0FC01307
-1303A2EB0180A3EB0700EA7FFFA25B485A13F012167F9513>88 D<1302A21307A25B7F80
-A2130380A380A3EB02F0130638400CF838603C7C38F0F87E00FFEB3FC013F09038E01F80
-387FC00F381F00031A197C981D>I<EB7FF00003B512C015FF5AA201805BEA0403C64813
-80D91FF0C7FCEB3FC0017EC8FC13F8485AEA03C05B48C9FC12065A120812181210123012
-20497E386003F05CA2130738E000C091C8FCA37EA27E1278127C127E7E7FEA1FE0EA0FF8
-EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D9007FC7FC26318091
-21>96 D<48B47E4813F848EBFFC015FFA2EA0401C75B13034913F090381FF0F890383FC0
-FC90397E007F8001F814F84848133FD803C0EB1FF049130748C71201000E91C7FC120C5A
-A212104813E014F8130112605CEB007000E090C8FCA47EA27EA2127C127E7E13C0EA1FF0
-EA0FFC6CB46C137C6C90B512F0C61580013FEBFC00010713E0D9007FC7FC2630809024>
-I<EBFFC04813FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380FFE7C90
-383FF87E3A03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8FCCAFC
-A81470147C14FCA25C1438261F819024>I<13FE3801FFC04813F814FEECFFC0D8020313
-F8C7387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FC
-C9FCCAFCA81418143F143E147E147C140C211F819021>I<1360137C13FC5BA2133890C9
-FCA7EB7FF00003B512C015FF5AA201805BEA0403C6481380D91FF0C7FCEB3FC0017EC8FC
-13F8485AEA03C05B48C9FC12065A12081218121012301220A21260A412E0A47EA27E1278
-127C127E7E7FEA1FE0EA0FF8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC0001
-0713E0D9007FC7FC263E809E21>112 D<14E014F81301A25CEB007091C8FCA848B47E48
-13F848EBFFC015FFA2EA0401C75B13034913F090381FF0F890383FC0FC90397E007F8001
-F814F84848133FD803C0EB1FF049130748C71201000E91C7FC120C5AA212105AA31260A3
-12E0A47EA27EA2127C127E7E13C0EA1FF0EA0FFC6CB46C137C6C90B512F0C61580013FEB
-FC00010713E0D9007FC7FC263E809E24>I<1470147C14FCA25C143891C8FCA8EBFFC048
-13FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380FFE7C90383FF87E3A
-03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8FC261F819E24>I<
-14C0EB01F85CA21303EB006091C8FCA813FE3801FFC04813F814FEECFFC0D8020313F8C7
-387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC
-211F819E21>I<EB7FF00003B512C015FF5AA201805BEA0403C6481380D91FF0C7FCEB3F
-C0017EC8FC13F8485AEA03C05B48C9FC12065A12081218121038300C3038201FFE147C12
-60EB3FFCEB061890C9FC38E00180EB03F05CA2EAF007EB00C06C90C8FC1278127C127E7E
-7FEA1FE0EA0FF8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D900
-7FC7FC2631809121>120 D<48B47E4813F848EBFFC015FFA2EA0401C75B13034913F090
-381FF0F890383FC0FC90397E007F8001F814F84848133FD803C0EB1FF049130748C71201
-000E91C7FC120C5AEB071C001013DF4848B4FCA214BE3860038E90C9FC14E000E013F813
-01A25C38F0007091C8FC7EA2127C127E7E13C0EA1FF0EA0FFC6CB46C137C6C90B512F0C6
-1580013FEBFC00010713E0D9007FC7FC2630809024>I<EBFFC04813FC48EBFFE0EDFF80
-A2EA0200C7001F1300147F903801FFF890380FFE7C90383FF87E3A03FFC03FC0007F0100
-13FC01FC131F01F0EB0FF8D8FF80130300F8C8FCCAFCA8EC6180EC7DF014FFECFBE0A214
-3891C8FC140CEC0F80141F92C7FCA214072626819024>I<13FE3801FFC04813F814FEEC
-FFC0D8020313F8C7387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8
-FCEAFFC000FCC9FCCAFCA814C3903801FFE0ECF7C0EB03FFECEF80EB006191C8FC141814
-3F143E147E147C140C2126819021>I<170416010308130EA2ED1C03EE070CEE0F8C9238
-3C3FF8ED3FFF16FBEEF3F0002091381FE1E092380F8000030EC7FC1260A300E0140CA315
-087E1518151000781430007C1470007E5C383F80039038E01FC06CB55A6C91C8FC6C5B00
-0113F838003FC02F22808C2E>128 D<1720EE086003401370EDC01817F00201EB38F8EE
-7CFC03C1B5FC4AB612E016DF93389F9FC000206DEB0F0F913900FC000103E090C7FC1260
-A300E05CA35D7E14016C49C9FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C6
-6CCAFC3320808C32>I<1504EC010C0108130EEB18030110131E903830071F91380F9F80
-9039F83FFFE0007FB612FC14FB9138F3F3F839FFBFE1E190390F800038260D818C24>I<
-1680152049EB21C0A2491361EDE18090380701F190391F87FF00007FB6FC81ECFE7E39FF
-F3FC3CD9C1F0C7FC220D818C20>I<160717C0A2160F1780160193C7FCEE38E0EE3EF8A2
-167FEE7DF0EE0C3093C7FCA7170416010308130EA2ED1C03EE070CEE0F8C92383C3FF8ED
-3FFF16FBEEF3F0002091381FE1E092380F8000030EC7FC1260A300E0140CA315087E1518
-151000781430007C1470007E5C383F80039038E01FC06CB55A6C91C8FC6C5B000113F838
-003FC02F3680A02E>136 D<1630163E167E167CA2161C93C8FCED0186EEF7C0ED03FFEE
-EF80A2ED00E393C8FCA71720EE086003401370EDC01817F00201EB38F8EE7CFC03C1B5FC
-4AB612E016DF93389F9FC000206DEB0F0F913900FC000103E090C7FC1260A300E05CA35D
-7E14016C49C9FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C66CCAFC333480
-A032>I<1406EC07C0140F5DA2140391C8FCEC30C0EC3EF8147FEC7DF0A2EC1C7091C8FC
-A71504EC010C0108130EEB18030110131E903830071F91380F9F809039F83FFFE0007FB6
-12FC14FB9138F3F3F839FFBFE1E190390F800038262181A024>I<15E015F8A214015DEC
-003092C7FCEC071C15DFA24AB4FC15BEEC018691C8FCA71680152049EB21C0A2491361ED
-E18090380701F190391F87FF00007FB6FC81ECFE7E39FFF3FC3CD9C1F0C7FC222181A020
->I<131FEB7FC0EBFFF03801FC1001F0C8FC13C0485A90C9FC7FA2EBC003EBE00FEBF83F
-3801FFFEA26C13F8EB7FE0EB1F8049C8FC137C5BEA01E0485A5B48C9FC120E120C5AA212
-105AA31260A312E0A47EA27E1278127C127E7E7FEA1FE0EA0FF8EA07FE2603FFC0137C6C
-90B512F06C6C1480011FEBFC00010713E0D9007FC7FC2639809920>168
-D<EB03FC90381FFF8081495BA214E7D90FFFC7FC7F4913C0013F13FC5B9038FF0FF83801
-F8033903E00078D8078090C7FC90C9FC120E120C5AA212105AA31260A312E0A47EA27E12
-7C127E6C7E7FEA1FF86CB46C137C6C90B512F0000115806C6CEBFC00010F13E0010090C7
-FC262D808D1D>I<EB0FF0EB7FFE80495AA214BEEB3FFC6D5AEB7FFF007FB512F0A29038
-FE3FE038FFF80FEB00011C0E818D1A>I<EB07C0EB1FF0497E497E017EC7FC13F813E05B
-7FA27F6D13E0EB7E0F90387FFFC07F15803903FFFE00007F13E091C7FC13F8EAFFC000FC
-C8FC1B1681951A>I<5BEB0FE0131FEB3FF0A2137FEB6070EBC060A300011340EBE0C013
-F1EBFF807E007F13FFA214FEB5FC13011814819316>174 D<13F0EA01FC48B4FCA25A38
-061F80EA070FEA0FFFA33807FB00EA01F3EA00031306131EEA01FC127F5B5BEAFFC000FC
-C7FC1115819410>I<16801503150FED7F004A5AEC07FEEC1FF8EC7FE0903801FF80D907
-FCC7FCEB1FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA
-01FE6C7E6D7EEB3FE06D7E6D7E6D7E80EB047F90380C3F8090381C1FE09038780FF83903
-F807FE3A7FF003FFE049C6FC49EB7FC048C7121F00F81403232A81A921>186
-D<16801503150FED7F004A5AEC07FEEC1FF8EC7FE0903801FF80D907FCC7FCEB1FF0EB7F
-C049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA01FE1200137F7F7F
-7F1306A21304130C131C1378EA03F8EA7FF05B5B48C9FC12F8212A81A91A>I<5CA2EC03
-80A215C0A315E0A2140115C0A4010213E0EB0F00131E5B5B1370A2017F13F090383FC070
-EB0FE013001383EA01FF14C038007C0090C71260121012300020EB01C0007FB5FC1580A2
-B612006C13FC1C2680A51D>I<154015C0A31401A3140081A41480EB01C01303EB0780EB
-0F00130EA290380FC070381007F0383001F838200038EB10F8EA603F14F090380F007800
-F0C7FC15F86CEB03FC6CEB0FBE007F90387FBFC090B5121F6C01FE13806CEBF80F0007EB
-E003000190C8FC222580A321>I<1840EF01E01707EF1F80EF7E00933801F818933807E0
-7893381F81F0EE7E07923901F83FE0923803E0FFDB018313009238000FFCEE1FF0EE7FC0
-4CC7FCED01FCED03F016C04BC8FC15061504150CA3151CA5151E150EA312200060140FA2
-8100E081A27E6C6EC8FC6C5CD87FC0133E90B512FE7E6C5C00075CC61480353180AE2E>
-192 D<1840EF01E01707EF1F80EF7E00933801F818933807E07893381F81F0EE7E079239
-01F83FE0923803E0FFDB018313009238000FFCEE1FF0EE7FC04CC7FCED01FCED03F016C0
-4BC8FC15061504150CA3151CA5151E150EA312200060140FA28100E081A26C816CEC03F0
-6C913807FFFED87FC0133F90B75A6C5C6CECFC1F00074AC8FCC61480353180AE2E>I<15
-04151E157EEC01F8EC07E091381F8080EC7E03903801F80F903907E07F0090381F81FF90
-387E07FE3901F81FF83903E07FE0390781FF80260207FCC7FC38001FF0EB7FC049C8FCEA
-01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA01FE6C7E6D7EEB3FE06D7E6D7E
-6D7E80EB047F90380C3F8090381C1FE09038780FF83903F807FE3A7FF003FFE049C6FC49
-EB7FC048C7121F00F81403232F81AE21>I<1504151E157EEC01F8EC07E091381F8080EC
-7E03903801F80F903907E07F0090381F81FF90387E07FE3901F81FF83903E07FE0390781
-FF80260207FCC7FC38001FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F
-7F6C7E6C7EEA01FE1200137F7F7F7F1306A21304130C131C1378EA03F8EA7FF05B5B48C9
-FC12F8212F81AE1A>I<14021406A2140FA31580A215C01580A3150080A8EC0380A61208
-A20018EB01C0121012301220A21260A312E01580A36C1400A200785B007C1306007E131E
-383FC07CEBFFFC6C5B6C5B000313C0C690C7FC1A3480A51A>200
-D<154015C0A31401A56E7EAB81A681A38181EDFFC0A21680002014EF15E3EDE0001260A3
-00E05CA35D7E14016C49C7FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C66C
-C8FC223780A321>I<7F1201A31203A37F1201A97FA21200A77FA37F7F387FFF8013BFEB
-3F00487EEAFE07112481A30F>I<12021203A2EA0780A313C0A21203A31380AB1201A213
-C0A51380A3EA0700127FA2127E5A12F00A2681A50C>I<131E133FEB7F8013FF4813C0EA
-03C7EB83E0380701F0380F81F8387FC0FF13F0387BFFFE12F300E113CEC61380EB3F0018
-10818D16>210 D<1307EB0FC0EB1FE014F0133F1331EB60F8EB707813F83801FE383807
-FF30007F13F0EB3FE0EA7E1FEAFC0738F001C01510818F13>I<EB0180EB03C014E01307
-14F0130D130CEB1E78133E13FF000713B8387FEFF013CF138738FE03E0EAF8001510818F
-0F>I<1580140115C0140315E01401A2EC00F0A200201470157812601538A312E0A21530
-7EA26C1420007C1460007E14E0393F8003C0EBE01F6CB512806C14006C5B000113F83800
-3FC01D1E80921D>224 D<15101538153CED3F80157F160012208115381260A3153012E0
-A215207E15606C5C007C1301007E495A383F800FD9E07FC7FC381FFFFE6C5B6C5B000113
-E038003F80211C808720>I<1203EA07C0EA0FE013F0EA1FF81219EA10FCEA207C133C13
-3EEA601EA2130EEAE00CA212F0EAF838EAFFF8127F13F0EA3FE0EA0FC00F1680950F>
-232 D<1340136013E01201120F121F123FA2EA3CF0EA7070A2EAFFF0A27F127FEA1FFCEA
-003EEB3FC0A2EB1F80130F13031216819510>I<1318133CA2137CA213D8139812015B13
-F0EA07E0387FFFC0A21480B5FCA238077E007F139F138FEA038E13C613FCA212015B6C5A
-121B818F10>I<130C131F8014E0497E6D7E497E497E80A201C113809038C0CFC0EBE0C7
-3901F383E013FF6C13810003EBF9C0007F13FFA201E7138048C6FC00F8EB1F001B168195
-1A>I<13F03801FCC0000313E0EBFFF0A238061FF8130C0007137CEA0FB8EBF83E3807FC
-1E380FFF9E007F13FCA2133F38FC07F8EAF000171181900F>I<EB0780EB0FE014F014F8
-131FEB18FCEB3C7CEB3E3EEB3F9EEB1FFE14FF7F7F1301EB0003A514021406A2140C141C
-143814F8EB03F0EB1FE03801FFC0B51280000F1300EA003C18207F8E1A>240
-D<EB03C0EB07F080A2497EEB0C7CEB1C3EEB1E1EEB1F1F14CF90380FFFF8A26D13F07FEB
-007FEC0380A415005CA2140E141E5C14FCEB03F8EB1FF048B45AB55A000F90C7FCEA001E
-1D207F8E1D>I<1630163E167E167CA2161C93C8FCA417F0EE01FC4CB4FCA39338061F80
-170FEE0F07002016FFA2701300006016FBEE01F3EE0002A200E016065F173C17F86C1503
-6CED1FF000FE4AB45A267FC001B55A90B7C7FC6C15FC6C15E0000702FCC8FCC649C9FC31
-2680A431>I<1618163F163E167E167C160C93C8FCA4177CEE01FE002015031607830060
-ED0F0F160CEE080700E0ED1806A216386CED3C0C6C163C6CED3FF8127F01E090381FFFF0
-6CB812E07E000717C0000115C1D8003F9038E0003F331F809E32>I<EC71C0EC7DF0A214
-FFECFBE0EC186091C8FCA715F0EC01FC4AB4FCA25C9138061F80EC070FEC0FFF1220A200
-60903807FB00EC01F3EC00031502A200E014061504150C151C6C5C15F86C495A6CEB07E0
-397F807FC090B55A6C91C7FC6C13FC000713F0C61380212A80A121>I<EC71C0EC7DF0A2
-14FFECFBE0EC186091C8FCA9EC01E0EC03F881811407EC063E81EC0E0F140F158715E700
-20903807FFC0A26E138000607FEC003FED0C00150800E014185D6C14705D6C13036CEB0F
-C0397F807F8090B5C7FC6C5B6C13F8000713E0C690C8FC222D809E21>I<167CED01FE15
-07ED0FFC151FED3F0CED7C08ED70005D5D4A5A92C7FCA200105B5AEC07C015FF006015E0
-16F0809138007FE0150100E0EC006016C015016CEC0780150F6CEC3F00007C14FE007FEB
-07FC9038C03FF06CB55A6C14806C49C7FC000313F838007FC02724819424>248
-D<157FEC03FFEC07FE0020130FA215800060EB1800141CEC1F80EC3FF000E014FCEC1FFE
-1407EC00FC6C141C15186C14786CEB01F8007FEB0FF09038C07FE06CB512C06C14006C13
-FC000313F038007F8020197F8420>I E /Fc 30 127 df<1218123C123E121E120EA512
-1CA2123812F812F01260070F779D1A>39 D<1230127812FCA2127812301200A912301278
-12FCA212781230061576941A>58 D<126012F0A27E1278127C123C123E121EA2121F7E7F
-12077F1203A27F12017F12007F1378A2137C133C133E131E131F7FA21480130714C01303
-14E01301A2EB00C013277DA21A>92 D<EA0180EA07C0EA1FF0EA3EF8EAF83EEAF01EEA40
-040F077B9D1A>94 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA
-3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
-D<127E12FE127E120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E141CA7000F13
-381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF80000313C0000F
-13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380FFFE0000313
-C03800FE0014157D941A>I<EB0FC0131F130F1301A6EA01F1EA07FDEA0FFFEA1E0FEA3C
-07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFF83807FDFC3801F1F8161E7E9D
-1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
-FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
-1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
-80151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C0380EA1E
-07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C48130EA4
-0070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<127E12FE12
-7E120EA6133EEBFF80000F13C013C1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC17
-1E7F9D1A>I<13C0487EA26C5A90C7FCA6EA7FE0A31200AF387FFF80B512C06C1380121F
-7C9E1A>I<130C131EA2130C1300A6EA07FE120F1207EA000EB3A5131C1260EAF038EAFF
-F8EA7FF0EA1FC00F2A7E9E1A>I<12FEA3120EA6EB0FFC131F130FEB03C0EB0780EB0F00
-131E5B5B13FC120F13DE138F380E07801303EB01C014E0EB00F038FFE3FEA3171E7F9D1A
->I<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>I<387CE0E038FFFB
-F8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F1F00191580941A>
-I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC17
-157F941A>I<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0
-01007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<EA7E3E38
-FEFF80007F13E0380FC1F0EB8070EB0038120E141CA7000F13381478EB80F0EBC1E0EBFF
-C0000E1380EB3E0090C7FCA8EA7FC0487E6C5A16207F941A>I<3801F8E0EA07FEEA0FFF
-EA1E07EA3C03EA78011270EAE000A613011270EA7803123CEA1E0FEA0FFFEA07FCEA01F0
-C7FCA8EB0FFEA317207E941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000
-A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB80EA1FFF127FEA7807EAE003A30078C7
-FCEA7FC0EA1FFCEA07FE38003F801307386001C012E0A2EAF00338FC0780B51200EAEFFE
-EAE3F812157C941A>I<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF
-6C1380EB3F00141C7F9B1A>I<387E07E0EAFE0FEA7E07EA0E00AD1301EA0F033807FFFC
-6C13FE3800FCFC17157F941A>I<38FF83FEA338380038A26C1370A31338137CA2380C6C
-60380EEEE0A413C6000613C0EA07C71383A217157F941A>119 D<387FC7F8EBCFFCEBC7
-F8380703C038038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380
-000713C0EA0F01387FC7FC00FF13FE007F13FC17157F941A>I<387F83FC38FFC7FE387F
-83FC380E00E0A27EEB01C0A2EA0381EB838013C31201EBC700EA00E7A213E61366136E13
-3CA31338A35BA2EA30F0EA78E01271EA7FC06C5A001EC7FC17207F941A>I<387FFFF8B5
-FCA238E000F0EB01E0EB03C038000780EB0F00131E137C5B485AEA03C0485A380F003812
-1E5A5AB512F8A315157E941A>I<EA0703381F8780EA3FCF38F9FE00EAF0FCEA60701106
-7C9D1A>126 D E /Fd 50 128 df<EB1FC0EB7020EBC0103801803800031378EA070014
-3091C7FCA7B512F8380700781438B2397FE1FF80192380A21B>12
-D<EAC060EA60C0EA3B80EA1F00120E12040B067A9E18>20 D<132013401380EA01005A12
-061204120CA25AA25AA312701260A312E0AE1260A312701230A37EA27EA2120412067E7E
-EA0080134013200B327CA413>40 D<7E12407E7E12187E12041206A27EA2EA0180A313C0
-1200A313E0AE13C0A312011380A3EA0300A21206A21204120C5A12105A5A5A0B327DA413
->I<127012F812FCA212741204A41208A21210A212201240060F7C840E>44
-D<127012F8A3127005057C840E>46 D<EA01F0EA071CEA0C06487E00381380A2387001C0
-A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA071CEA01F013227EA0
-18>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018>I<EA03F0EA0C1CEA
-100700201380384003C0A2008013E012F0EAF801A3EA2003120014C0A2EB07801400130E
-5B13185B5B5B485A90C7FC000213205A5A00181360481340383FFFC05AB5FC13217EA018
->I<EA03F8EA0C1EEA100F38200780004013C0127813031307123800001380A214005B13
-0C1338EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8A200F013C01240EB07
-80122038100F00EA0C1CEA03F013227EA018>I<1303A25BA25B1317A213271367134713
-87120113071202120612041208A212101220A2124012C0B512F838000700A7EB0F80EB7F
-F015217FA018>I<00101380381E0700EA1FFF5B13F8EA17E00010C7FCA6EA11F8EA120C
-EA1C07381803801210380001C0A214E0A4127012F0A200E013C01280EA40031480382007
-00EA1006EA0C1CEA03F013227EA018>I<137EEA01C138030080380601C0EA0C03121C38
-1801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380EB01C012F014E0A512
-70A3003813C0A238180380001C1300EA0C06EA070CEA01F013227EA018>I<1240126038
-7FFFE014C0A23840008038C0010012801302A2485A5BA25B5BA21360134013C0A21201A2
-5B1203A41207A76CC7FC13237DA118>I<EA01F8EA060EEA0803381001801220386000C0
-A31270A238780180003E1300EA3F02EA1FC4EA0FF812036C7EEA067EEA083F38100F8038
-3007C0EA6003EB00E05A1460A40060134014C06C138038180300EA0E0EEA03F013227EA0
-18>I<EA01F0EA060C487EEA1807383803801270A238F001C0A314E0A5127013031238EA
-1805120CEA0619EA03E1380001C0A3EB0380A21230387807001306EA700CEA20186C5AEA
-0FC013227EA018>I<B612FEA2C9FCA8B612FEA21F0C7D9126>61
-D<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B512
-80EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA2
-25>65 D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
-138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
-D<B512F0380F803C0007130FEC078015C0140315E0A615C014071580EC0F00143CEBFFF0
-0180C7FCAE487EEAFFFC1B227EA121>80 D<007FB512F839780780780060141800401408
-A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>84
-D<39FFFC07FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100
-EB3006EB1C08EB03F020237EA125>I<397FF803FF390FE001F83907C000E06C6C5B0001
-5CEBF001D800F890C7FCEB7802EB7C04133EEB1E08EB1F10EB0FB0EB07A014C06D7E1301
-80497EEB0278EB047CEB0C3EEB081EEB101F496C7E140701407F496C7E1401D801007F48
-6D7E5AD81F807F3AFFC003FFC022227FA125>88 D<EA1FE0EA3038EA780C130EEA300712
-00A313FFEA07C7EA1E07123C1278127000F01308A3130FEA7817383C2390380FC1E01515
-7E9418>97 D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C14
-1EA7141C143C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703
-380C0780121C383803000078C7FC127012F0A712700078134012386C1380380C0100EA07
-06EA01F812157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA380012
-78127012F0A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FC
-EA0707380C0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012
-386C13406C138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7
-FCA9EAFFF80007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E3838
-0700A200781380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381F
-FFC06C13E0383000F0481330481318A400601330A2003813E0380E03803803FE0015217F
-9518>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF1823
-7FA21B>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<13E0EA
-01F0A3EA00E01300A81370EA07F012001370B3A51260EAF0E013C0EA6180EA3F000C2C83
-A10F>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1C
-EA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A>I<120E12FE12
-1E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C
-00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F00
-70A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0003813E04813
-70A200F01378A700701370007813F0003813E0381C01C0380E038038070700EA01FC1515
-7F9418>I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7143CA2143800
-0F1370380E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F82038070460EA
-0E02EA1C01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA01F0C7FCA9EB
-0FFE171F7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEAFFF010157F
-9413>I<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0FF0EA01F8EA00
-3CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A41206A3120E12
-1E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038FE07F0
-EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<38FF80FE381E
-00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A3
-131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410EB0260147000
-071420EB04301438D803841340EB8818141CD801C81380EBD00C140E3900F00F00497EA2
-EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C06C1380EB8100EA0383EA01
-C2EA00E41378A21338133C134E138FEA0187EB0380380201C0000413E0EA0C00383E01F0
-38FF03FE17157F941A>I<38FF80FE381E00781430000E1320A26C1340A2EB80C0000313
-80A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043C7FC123C171F
-7F941A>I<383FFFC038380380EA300700201300EA600EEA401C133C1338C65A5B12015B
-38038040EA07005A000E13C04813805AEA7801EA7007B5FC12157F9416>I<EA6030EAF0
-78EAF8F8EAF078EA60300D057BA118>127 D E /Fe 14 122 df<1238127C12FEA3127C
-1238070774861F>46 D<1238127C12FEA3127C12381200AC1238127C12FEA3127C123807
-1A74991F>58 D<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C
-0FFF5B38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38
-381E3C383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE3800
-7FF8EB1FC019257DA41F>64 D<EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB
-3FF8EA01FF1207381FE078EA3E005A12785AA4007813F8EA7E036CB512E0000F133F3803
-FC0F1B1A7D991F>97 D<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C1300
-5AA2127012F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80
-161A7C991F>99 D<90387C0F803901FF3FC00007EBFFE0380F83F1D81F0113C0391E00F0
-00481378A66C5BEA1F01380F83E048B45A001D90C7FCEA1C7C003CC8FCA37E381FFFE06C
-13F814FE487F393C003F8048130FEC07C0481303A40078EB0780A2003EEB1F00381F807E
-6CB45A000313F038007F801B287E991F>103 D<137013F8A3137090C7FCA7EA7FF812FF
-127FEA0078B3A2B512F8A315267BA51F>105 D<EA7F8012FF127F1207A8903887FFC015
-E015C09038807E005CEB81F8EB83F0EB87E0EB8FC0EB9F8001BFC7FC13FF808013F3EBE3
-E0EBC1F0138080147C143C80141F397FF87FE039FFFCFFF0397FF87FE01C257FA41F>
-107 D<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C0F9038FE3F80B5EA7FC0
-381FCFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3EBC7F11E1A80991F>I<
-13FCEA03FF481380381F87E0EA1E01383C00F0007C13F800781378A248133CA76C137C00
-781378A2007C13F8003C13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>
-111 D<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25BA35B
-AC387FFFE0B5FC7E1A1A7E991F>114 D<137013F0A6387FFFFEB5FCA2D800F0C7FCADEC
-0780A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>116 D<397FF0FFE0486C13F06C
-4813E0390F800F000007131EA2EA03C05CA2EA01E0147C1478EA00F0A25C1378A2EB38E0
-1339133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383EEA7C3C137C5BEA7FF06C5A
-EA0F801C277F991F>121 D E /Ff 41 128 df<EB3F80EBE1E03801C070380380780007
-133C130048133EA5143C1478147014E0EB03C038FF1E00EB0380380F01C0EB00E0147014
-78143CA2143EA2141E141FA8141E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>
-25 D<127812FCA212FEA2127A1202A41204A31208A212101220124007127B8510>44
-D<EAFFFEA30F037F8E14>I<137E3801C380380700E0000E1370001E1378001C1338003C
-133CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C133800
-1E1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF
-12F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001
-F01260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB07
-801400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FC
-A216287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA13
-07381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F0
-1260383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
-D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
-3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
-121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
-A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
-A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
-00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
-3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
-381C0F00EA0FFEEA03F818297EA71D>57 D<14101438A3147CA314BEA3EB011FA3903802
-0F80A201047F1407A201087F1403A2496C7EA3496C7EA390387FFFFCA29038C0007E4913
-3EA248C7123F81A20002EC0F80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C
->65 D<B6FC15C0390FC003F00007EB00F881157E153E153FA6153E157E157C5D4A5AEC07
-E090B512809038C001F06E7E153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000F
-EB01F8B65A158022297DA829>I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED
-03E0ED01F0A2ED00F8A216FC167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED
-0780ED1F00153E0007EB01FCB612F0158027297EA82D>68 D<B7FCA23907E0003F000314
-07ED03801501A21500A416405CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391
-C7FC1640A416C0A215011503ED07800007143FB7FCA223297EA828>I<02FF13100107EB
-E03090381FC07890393E000C7001F8EB06F048481303484813014848130048481470A248
-C812305A123E1610127EA2007C150012FCA892B5FC127C007EEC03F01501123EA2123F7E
-6C7EA26C7E6C7E6C6C13026C7E013EEB0C7090391FC03830903907FFE0100100EB800028
-2B7DA92E>71 D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
-D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
-18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
-153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
-D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
-A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
-23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
-7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
-7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
-8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
-7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
-ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
-FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
-0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
-387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
-7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
-00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
-007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
-0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
-147E90380FFFF0A229297FA82C>89 D<EA03FCEA0C0738100380383C01C0003E7F6D7E12
-1C1208C7FCA3137FEA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880
-381E0C7F3907F01E001A1A7E991D>97 D<13FC38038780380701C0000E13E0EA1C00003C
-13F0A2481378A212F8A2B512F800F8C7FCA51278A26C1308A26C1310000E13206C134038
-01C18038007E00151A7E991A>101 D<131FEB70C0EBE1E0EA01C31203EB81C038078080
-1400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA912>I<140F3901FC30803807074338
-0E03C3001EEBC100486C7EA2007C7FA5003C5BA26C485A000E5BD81707C7FCEA11FC0030
-C8FCA47E381FFF806C13F06C7F3818007C48131E0070130E00607F12E0A40070130EA26C
-5B6C5B380781E0C6B4C7FC19287E9A1D>I<121E123FA4121EC7FCA9120FB4FCA2121F7E
-B3A2EAFFF0A20C297EA811>105 D<120FB4FCA2121F7EACECFFC0A2EC7E0014305C1440
-5C0103C7FC1304130C131E133E135F138FEB0780801303806D7E1300801478147C147E39
-FFF1FFE0A21B2A7EA91F>107 D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F
-07F007F03AFF183818389039201C201C3A1F400E400E000F010F130F01801380A2010013
-00B13BFFF0FFF0FFF0A22C1A7E9931>I<380F07F038FF1838EB201C381F400E000F130F
-1380A21300B139FFF0FFF0A21C1A7E9921>I<137E3803C3C0380700E0000E1370481338
-003C133CA248131EA200F8131FA80078131EA26C133CA2001C13386C13706C13E03803C3
-C038007E00181A7E991D>I<380F0F8038FF11C0EB23E0EA1F43EA0F83EB81C0EB800090
-C7FCB07FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA3003EA600112E01300A27E
-6C1300127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0A2130112C0A200E01380
-130300F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203A21207120F381FFF80B5
-FC38078000AD1440A73803C08012013800E100133E12257FA417>I<000F130FB413FFA2
-001F131F6C7FB05CA26C132F3903804F803901C08FF038007F0F1C1A7E9921>I<3AFFF3
-FF83FEA23A1F803C00F8D80F001460EB801C0007011E1340A2D9C02E13C00003012F1380
-A23A01E04701001581A23900F0838215C2A290387901C415E4137B90383E00E815F8A201
-1C1370A20118133001081320271A7F992A>119 D<39FFF01FF0A2390F8007800007EB03
-001402A26C6C5AA2EBE00C00011308A26C6C5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80
-A26DC7FCA31306A21304A2130C1308A2EA701012F85BA2485AEA6180001FC8FC1C267F99
-1F>121 D<B612F01C0180901D>123 D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA8
-1D>127 D E /Fg 14 118 df<1518153CA3157EA315FFA39138019F80A39138030FC0A2
-02077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A13
-1FA201038191C7120FA249B67EA20106C71207496E7EA3496E7EA201388101301400A201
-70810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB
-3C>65 D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170C
-A21503A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706
-A5170EA2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
-D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
-00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>84
-D<B500F090380FFFF0A2D803FCC813006C48157E173C1718B3B3A300005E7FA2137C5F7F
-5F6D4A5A7F6D6C49C7FC6D6C13066D6C131CD900F85B91383E01E091380FFFC0DA01FEC8
-FC343C7CBA3C>I<267FFFE0903807FFF8A20003018001011380C690C8EAFE0049157801
-7F15706D6C14605F6D6C13016D6C5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E02
-7F137091383F80605EEC1FC191380FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B
-7EA2913801DFC09138038FE0150F91380607F091380E03F8140C4A6C7E91383800FE1430
-4A137F02E06D7E5C49486D7E01036E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E
-0130157E0170157F01F0ED3F80D803F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C
->88 D<EB3F803801C0F03803003C00047F000C7F486D7E001C80003E1303003F80A3121E
-C7FCA3143FEB0FF3EB7E03EA01F8EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407
-A2007C130B127E003E903811F0C06C13603A07C1807F803A00FE003E0023257CA427>97
-D<EA03E012FFA212071203B3EC3FC0ECE0789038E3001C01E6130F01E8EB078001F8EB03
-C049EB01E04914F0150016F8A216FC167CA2167EA9167CA216FC16F8A2ED01F016E06D13
-0301D814C001C8EB07800184EB0E0001835B903881C0F09038003F80273C7EBB2C>I<EB
-07F8EB3C0E9038F001803901E000C0484813604848133048C712704814F81401123EA200
-7EEB00F0007C1400A212FCA9127CA2127E123E150C7E15186C7E000714306C6C13606C6C
-13C03900F0018090383C0E00EB07F81E257DA423>I<ED07C090390FE018609039383820
-709039F01E40F03901E00F802603C00713600007ECC00048486C7EA3001F80A6000F5CA3
-6C6C485A00035C6C6C48C7FC3802F01EEB383838060FE00004C9FCA2120CA2120EA27E7F
-6CB5FC15F06C14FC6C8039078000FF000EC7EA1F8048EC07C048140312780070EC01E012
-F0A50078EC03C000381580003C14076CEC0F000007141CD803C0137839007803C0D90FFE
-C7FC24387EA527>103 D<EA03E012FFA212071203B3EC1FE0EC607CEC801E9038E3000F
-01E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FCA2283C7EBB2C>I<12
-07EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F1207B3ACEA0FE0EAFFFEA2
-0F397DB815>I<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201E8130716
-C013F0A25BB3A6486CEB0FE0B50081B5FCA228257EA42C>110 D<3803E03E00FF13C390
-38E107803907E20FC0EA03E413E8EC0780EC030001F0C7FCA35BB3A5487EB512C0A21A25
-7EA41E>114 D<D803E0EB07C000FFEB01FFA20007EB000F00031407B3A5150FA3000114
-17A26C6C132715470178EB87E090391E0307FFEB03FC28257EA42C>117
-D E end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%PaperSize: a4
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 723 475 a Fg(Uigh)n(uric)27 b(in)g(ArabT)1351
-494 y(E)1396 475 y(X)913 647 y Ff(Klaus)18 b(Lagally)801
-722 y(Institut)f(f)r(\177)-31 b(ur)19 b(Informatik)783
-796 y(Breit)n(wiesenstra\031e)g(20{22)856 871 y(D-70565)h(Stuttgart)932
-946 y(GERMANY)736 1020 y Fe(mailto:lagally)o(k@ac)o(m.or)o(g)882
-1160 y Ff(August)f(06,)h(1997)162 1371 y Fd(There)c(is)h(a)g(new)g
-(ArabT)629 1382 y(E)656 1371 y(X)g(language)g(mo)q(de,)f
-Fc(\\setuighur)o Fd(,)e(for)j(pro)q(cessing)h(Uigh)o(uric)d(texts)h(in)
-162 1431 y(the)g(extended)f(Arabic)h(writing.)162 1515
-y(This)g(mo)q(de)g(w)o(orks)g(only)g(with)g(ArabT)895
-1526 y(E)922 1515 y(X)g(v)o(ersion)g(3.06)h(or)f(later.)162
-1599 y(Uigh)o(uric)f(input)h(texts)g(are)g(enco)q(ded)g(in)g(a)h(mo)q
-(di\014cation)e(of)i(the)f(standard)h(ArabT)1735 1610
-y(E)1762 1599 y(X)f(enco)q(ding,)162 1659 y(see)21 b(column)f(5)i(of)g
-(the)f(T)l(able.)37 b(Please)21 b(observ)o(e)g(that)h(in)f(Uigh)o(uric)
-f(all)h(c)o(haracters)g(are)h(co)q(ded)162 1719 y(v)o(erbatim.)162
-1803 y(This)g(language)i(mo)q(de)e(is)g(strictly)f(exp)q(erimen)o(tal)f
-(and)j(exp)q(ected)e(to)i(con)o(tain)f(errors.)40 b(Please)162
-1863 y(rep)q(ort)17 b(y)o(our)f(exp)q(erience)e(and)j(suggestions)g
-(for)g(c)o(hanges)f(and)h(impro)o(v)o(em)o(en)o(ts)c(to)k(the)f
-(author.)1077 2862 y(1)p eop
-%%Page: 2 2
-2 1 bop 762 274 a Fd(ArabT)896 285 y(E)923 274 y(X)16
-b(enco)q(ding)g(of)h(Uigh)o(uric)p 162 389 846 2 v 161
-484 2 96 v 260 484 V 299 443 a(1)86 b(2)93 b(3)83 b(4)29
-b(=)37 b(5)i(\()12 b(6)g(\))17 b(7)p 1006 484 V 162 486
-846 2 v 161 581 2 96 v 187 540 a(01)p 260 581 V 292 w
-Fb(A\007)89 b(@)34 b Fd(=)29 b Fc(a)45 b Fd(\(01\))17
-b(a)p 1006 581 V 161 677 V 187 635 a(02)p 260 677 V 291
-w Fb(\351\007)85 b(\350)29 b Fd(=)16 b Fc(:a)32 b Fd(\(02\))17
-b(\177)-24 b(a)p 1006 677 V 161 772 V 187 731 a(03)p
-260 772 V 284 w Fb(Y\007)74 b(X)30 b Fd(=)f Fc(d)45 b
-Fd(\(09\))17 b(de)p 1006 772 V 161 868 V 187 826 a(04)p
-260 868 V 283 w Fb(Q\007)77 b(P)32 b Fd(=)d Fc(r)45 b
-Fd(\(10\))17 b(re)p 1006 868 V 161 963 V 187 922 a(05)p
-260 963 V 286 w Fb(S\007)74 b(R)32 b Fd(=)d Fc(z)45 b
-Fd(\(11\))17 b(ze)p 1006 963 V 161 1059 V 187 1017 a(06)p
-260 1059 V 286 w Fb(U\007)74 b(T)32 b Fd(=)16 b Fc(^z)32
-b Fd(\(12\))15 b(\024)-23 b(ze)p 1006 1059 V 161 1154
-V 187 1113 a(07)p 260 1154 V 284 w Fb(\361\007)68 b(\360)29
-b Fd(=)g Fc(o)45 b Fd(\(25\))17 b(o)p 1006 1154 V 161
-1250 V 187 1208 a(08)p 260 1250 V 527 1187 a Fb(\030)519
-1208 y(\361)o(\007)641 1187 y(\030)634 1208 y(\360)26
-b Fd(=)16 b Fc(:o)32 b Fd(\(27\))17 b(\177)-24 b(o)p
-1006 1250 V 161 1345 V 187 1304 a(09)p 260 1345 V 527
-1283 a Fb(\014)519 1304 y(\361)o(\007)641 1283 y(\014)634
-1304 y(\360)26 b Fd(=)j Fc(u)45 b Fd(\(26\))17 b(u)p
-1006 1345 V 161 1441 V 187 1399 a(10)p 260 1441 V 530
-1378 a Fb(\027)519 1399 y(\361)o(\007)644 1378 y(\027)634
-1399 y(\360)26 b Fd(=)16 b Fc(:u)32 b Fd(\(28\))18 b(\177)-26
-b(u)p 1006 1441 V 161 1536 V 187 1495 a(11)p 260 1536
-V 526 1475 a Fb(\021)519 1495 y(\361)o(\007)640 1475
-y(\021)634 1495 y(\360)26 b Fd(=)j Fc(w)45 b Fd(\(29\))17
-b(w)o(e)p 1006 1536 V 161 1632 V 187 1590 a(12)p 260
-1632 V 64 w Fb(\005K)318 1602 y(.)402 1590 y(\005J)421
-1602 y(.)430 1590 y(\007)64 b(I)530 1605 y(.)557 1590
-y(\007)52 b(H)644 1605 y(.)686 1590 y Fd(=)29 b Fc(b)45
-b Fd(\(03\))17 b(b)q(e)p 1006 1632 V 161 1727 V 187 1686
-a(13)p 260 1727 V 64 w Fb(\005K)314 1698 y(\022)402 1686
-y(\005J)417 1698 y(\022)430 1686 y(\007)64 b(I)526 1700
-y(\022)557 1686 y(\007)52 b(H)640 1700 y(\022)686 1686
-y Fd(=)29 b Fc(p)45 b Fd(\(04\))17 b(p)q(e)p 1006 1727
-V 161 1823 V 187 1781 a(14)p 260 1823 V 64 w Fb(\005)314
-1759 y(\020)314 1781 y(K)73 b(\005)417 1759 y(\020)417
-1781 y(J)n(\007)526 1764 y(\020)509 1781 y(I)o(\007)640
-1764 y(\020)624 1781 y(H)16 b Fd(=)29 b Fc(t)45 b Fd(\(05\))17
-b(te)p 1006 1823 V 161 1918 V 187 1877 a(15)p 260 1918
-V 64 w Fb(\005)318 1854 y(\011)314 1877 y(K)73 b(\005)421
-1854 y(\011)417 1877 y(J)n(\007)530 1865 y(\011)517 1877
-y(\341)o(\007)644 1854 y(\011)633 1877 y(\340)24 b Fd(=)29
-b Fc(n)45 b Fd(\(23\))17 b(ne)p 1006 1918 V 161 2014
-V 187 1972 a(16)p 260 2014 V 54 w Fb(\005c)53 b(\005b\007)58
-b(a\007)65 b(`)23 b Fd(=)29 b Fc(j)45 b Fd(\(06\))17
-b(je)p 1006 2014 V 161 2109 V 187 2068 a(17)p 260 2109
-V 54 w Fb(\005{)53 b(\005z\007)58 b(y\007)65 b(x)23 b
-Fd(=)16 b Fc(^c)32 b Fd(\(07\))15 b(\024)-23 b(ce)p 1006
-2109 V 162 2111 846 2 v 1089 389 858 2 v 1088 484 2 96
-v 1187 484 V 1227 443 a(1)85 b(2)95 b(3)86 b(4)30 b(=)38
-b(5)g(\()12 b(6)h(\))j(7)p 1946 484 V 1089 486 858 2
-v 1088 581 2 96 v 1114 540 a(18)p 1187 581 V 55 w Fb(\005s)53
-b(\005r\007)59 b(q\007)68 b(p)24 b Fd(=)29 b Fc(x)45
-b Fd(\(08\))17 b(xe)p 1946 581 V 1088 677 V 1114 635
-a(19)p 1187 677 V 64 w Fb(\005K)73 b(\005J\007)f(\371\007)67
-b(\370)23 b Fd(=)29 b Fc(i)45 b Fd(\(31\))17 b(i)p 1946
-677 V 1088 772 V 1114 731 a(20)p 1187 772 V 64 w Fb(\005K)1245
-742 y(\011)1245 749 y(.)1329 731 y(\005J)1348 742 y(\011)1348
-749 y(.)1357 731 y(\007)74 b(\371)1459 762 y(\011)1459
-769 y(.)1477 731 y(\007)68 b(\370)1576 756 y(\011)1576
-763 y(.)1619 731 y Fd(=)29 b Fc(e)45 b Fd(\(30\))17 b(e)p
-1946 772 V 1088 868 V 1114 826 a(21)p 1187 868 V 64 w
-Fb(\005K)1241 838 y(\012)1329 826 y(\005J)1344 838 y(\012)1357
-826 y(\007)74 b(\371)1455 858 y(\012)1477 826 y(\007)68
-b(\370)1572 853 y(\012)1619 826 y Fd(=)29 b Fc(y)45 b
-Fd(\(32\))17 b(y)p 1946 868 V 1088 963 V 1114 922 a(22)p
-1187 963 V 56 w Fb(\005\203)53 b(\005\202\007)f(\201\007)j(\200)17
-b Fd(=)29 b Fc(s)45 b Fd(\(13\))17 b(se)p 1946 963 V
-1088 1059 V 1114 1017 a(23)p 1187 1059 V 56 w Fb(\005\213)53
-b(\005\212\007)f(\211\007)j(\210)17 b Fd(=)f Fc(^s)32
-b Fd(\(14\))14 b(\024)-22 b(se)p 1946 1059 V 1088 1154
-V 1114 1113 a(24)p 1187 1154 V 59 w Fb(\005)1246 1085
-y(\011)1236 1113 y(\253)62 b(\005)1349 1093 y(\011)1339
-1113 y(\252)n(\007)1459 1093 y(\011)1448 1113 y(\251)o(\007)1576
-1082 y(\011)1563 1113 y(\250)24 b Fd(=)16 b Fc(^g)32
-b Fd(\(15\))17 b(\024)-24 b(ge)p 1946 1154 V 1088 1250
-V 1114 1208 a(25)p 1187 1250 V 63 w Fb(\005)1246 1180
-y(\011)1240 1208 y(\257)69 b(\005)1348 1183 y(\011)1340
-1208 y(\256\007)59 b(\363\007)54 b(\362)15 b Fd(=)29
-b Fc(f)45 b Fd(\(16\))17 b(fe)p 1946 1250 V 1088 1345
-V 1114 1304 a(26)p 1187 1345 V 63 w Fb(\005)1241 1276
-y(\020)1240 1304 y(\257)69 b(\005)1344 1278 y(\020)1340
-1304 y(\256\007)f(\365\007)h(\364)24 b Fd(=)29 b Fc(q)45
-b Fd(\(17\))17 b(qe)p 1946 1345 V 1088 1441 V 1114 1399
-a(27)p 1187 1441 V 61 w Fb(\005\273)55 b(\005\272\007)63
-b(\275\007)72 b(\274)25 b Fd(=)k Fc(k)45 b Fd(\(18\))17
-b(k)o(e)p 1946 1441 V 1088 1544 2 104 v 1114 1503 a(28)p
-1187 1544 V 61 w Fb(\005)1244 1461 y(\021)1238 1503 y(\273)55
-b(\005)1344 1461 y(\021)1334 1503 y(\272\007)1455 1461
-y(\021)1445 1503 y(\275)q(\007)1572 1461 y(\021)1565
-1503 y(\274)25 b Fd(=)16 b Fc(~n)32 b Fd(\(20\))17 b
-Fa(\021)r Fd(e)p 1946 1544 V 1088 1640 2 96 v 1114 1598
-a(29)p 1187 1640 V 61 w Fb(\005\303)55 b(\005\302\007)i(\301\007)f
-(\300)17 b Fd(=)29 b Fc(g)45 b Fd(\(19\))17 b(ge)p 1946
-1640 V 1088 1735 V 1114 1694 a(30)p 1187 1735 V 66 w
-Fb(\005\313)74 b(\005\312\007)d(\311\007)i(\310)27 b
-Fd(=)i Fc(l)45 b Fd(\(21\))17 b(le)p 1946 1735 V 1088
-1831 V 1114 1789 a(31)p 1187 1831 V 62 w Fb(\005\323)67
-b(\005\322\007)f(\005\322\007)77 b(\324)32 b Fd(=)d Fc(m)45
-b Fd(\(22\))17 b(me)p 1946 1831 V 1088 1926 V 1114 1885
-a(32)p 1187 1926 V 59 w Fb(\005\353)66 b(\005\352\007)81
-b(\354)1470 1873 y(\007)1566 1885 y(\353)27 b Fd(=)i
-Fc(h)45 b Fd(\(24\))17 b(he)p 1946 1926 V 1088 2022 V
-1114 1980 a(33)p 1187 2022 V 64 w Fb(\005)1242 1956 y(\015)1241
-1980 y(K)73 b(\005)1345 1956 y(\015)1344 1980 y(J)n(\007)247
-b Fd(=)29 b Fc(')45 b Fd(\()k(\))p 1946 2022 V 1088 2117
-V 1114 2076 a(34)p 1187 2117 V 283 w Fb(C)-33 b(C)q(\007)69
-b(B)-32 b(B)24 b Fd(=)16 b Fc(la)32 b Fd(\()49 b(\))p
-1946 2117 V 1089 2119 858 2 v 222 2207 a(1.)24 b(initial)15
-b(shap)q(e)222 2287 y(2.)24 b(medial)14 b(shap)q(e)222
-2367 y(3.)24 b(\014nal)16 b(shap)q(e)222 2447 y(4.)24
-b(isolated)16 b(shap)q(e)222 2528 y(5.)24 b(external)15
-b(enco)q(ding)222 2608 y(6.)24 b(sorting)17 b(p)q(osition)222
-2688 y(7.)24 b(name)1077 2862 y(2)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
+%!PS-Adobe-2.0
+%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
+%%Title: uighur.dvi
+%%CreationDate: Tue Feb 03 19:04:34 1998
+%%Pages: 2
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%EndComments
+%DVIPSCommandLine: F:\EMTEX\BIN\dvips32.exe uighur -pj:F:\TMP\dv2.mfj
+%DVIPSParameters: dpi=300, compressed, comments removed
+%DVIPSSource: TeX output 1997.09.30:1415
+%%BeginProcSet: texc.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
+/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
+gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
+add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
+/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
+dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
+adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
+idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
+putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
+adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
+{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
+adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
+chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
+}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
+userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 300 300 (/ARABTEX.306/uighur.dvi)
+@start /Fa 1 18 df<383C07C038461860384720303887403813801300A2000E1370A4
+4813E0A4383801C0A43870038012301200A2EB0700A4130EA4130C15207E9418>17
+D E /Fb 84 250 df<387FFF80A21400B5FCA2110581840F>5 D<387FFF80A21400B5FC
+A2110581840F>7 D<1230127E127CA212FC12180706818505>9 D<EA30C0EA7FF8EA7DF0
+A212FFEA18600D067F850F>I<EA01C0EA03F0EA07F81338137813F0120313E0A21207EA
+0F40EA3E0012785A12400D0F808E0B>12 D<120E123F127E12F05AA213C0EAFFE0EA7FC0
+EA1F00127C12F012600B0D808C0B>I<EA30C0EA7FF8EA7DF0A212FFEA18600D067F850F>
+16 D<1206EA0FC01380A2121FEA0300C7FCEA30C0EA7FF8EA7DF0A212FFEA18600D0D7F
+8C0F>I<EA30C0EA7FF8EA7DF0A212FFEA1860C7FC1206EA0FC01380A2121FEA03000D0D
+7F850F>I<124012E0A612F01270A61220040F808E05>23 D<EA4040EAE0E012F1EA7FC0
+EA3F80EA0E000B0680850B>I<1230127CA312FC12380606818505>46
+D<12201260A2127012F0A212F8A212FC12F8A312F01270A812781238A8121CA71218A312
+1006297DA809>64 D<12201260A312E0A41260A21270AB12301238A7123CA37E121F13E0
+120F13C0120712010B277EA60C>I<1580A2EC01C0A215E012301270007814F0127C12FE
+6C14E01380EA7FC0D83FE013C0EA1FF0EA0FF81207EA02FCEA007E133FEC8180EB1FC1EB
+0FE11307EB03F1EB01F9EB00FDECFF008080EC1F80140F15C0143F14FF903803FB80EB07
+FFA215005B14FC1C297EA820>I<154015C01220123000781301127C12FE7E138001C07F
+EA7FE0123FEA1FF0EA0FF8EA07FCEA027CEA007E133F131F90380F8160ECC170EB07C2EB
+03E214E6EB01FCA2903800F878A2EB01F049487E90380FC03E90391F803FC090387F001F
+D801FC14804848130FD80FE01303484890C7FC48C9FC123E127812601240222A80A321>
+I<1602160317800020150717C012601603A200E0ED0180A27E17006C5D007C150F007F15
+3E01F0EB03FE6CB65A6C5D6C15E000011580D8003F01F8C7FC2A1580902E>72
+D<1220A21260174017E012E04C7E6C4B7EEE07FE6C92380EFFC0007CED3E7F007F9238FC
+3F8001F0903807F81F6CB6EAF0036C4BC7FC6C158000014AC8FCD8003F13F03212808D31
+>I<134013C0A2487E487EEA0FFC387EFF80A2387C7F00487EEAE00F110B818A0F>I<1320
+1360A2137013F01370A21360A3EA01C0127FA21380EAFF0012FC0C10818F0F>I<140414
+06140EA3140F1407A31403A614021406A2140C141C1478EB01F8EB0FF03801FFE0B512C0
+000F1300EA003C181B838916>80 D<140315C0A2EC0780A214031500A414021406A25C14
+1C5C14F8EB03F0EB1FE048B45AB55A000F90C7FCEA003C1A17838516>I<130EEB0F8013
+1FA21400130790C7FCA714041406140EA3140F1407A31403A614021406A2140C141C1478
+EB01F8EB0FF03801FFE0B512C0000F1300EA003C1828839616>I<130EEB0F80131FA291
+C7FC130790C8FCA5140315C0A2EC0780A214031500A414021406A25C141C5C14F8EB03F0
+EB1FE048B45AB55A000F90C7FCEA003C1A22839016>I<130EEB0F80131FA21400130790
+C7FCEB71C0EB7DF013FFA2EBFBE0133890C7FCA414041406140EA3140F1407A31403A614
+021406A2140C141C1478EB01F8EB0FF03801FFE0B512C0000F1300EA003C182C839A16>
+I<130EEB0F80131FA291C7FC130790C8FCEB71C0EB7DF013FFA2EBFBE0133890C8FCA514
+0315C0A2EC0780A214031500A414021406A25C141C5C14F8EB03F0EB1FE048B45AB55A00
+0F90C7FCEA003C1A29839716>I<5A13C0EA03F07F7F6C7E6C7EEB3F80131FEB0FC01307
+1303A2EB0180A3EB0700EA7FFFA25B485A13F012167F9513>88 D<1302A21307A25B7F80
+A2130380A380A3EB02F0130638400CF838603C7C38F0F87E00FFEB3FC013F09038E01F80
+387FC00F381F00031A197C981D>I<EB7FF00003B512C015FF5AA201805BEA0403C64813
+80D91FF0C7FCEB3FC0017EC8FC13F8485AEA03C05B48C9FC12065A120812181210123012
+20497E386003F05CA2130738E000C091C8FCA37EA27E1278127C127E7E7FEA1FE0EA0FF8
+EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D9007FC7FC26318091
+21>96 D<48B47E4813F848EBFFC015FFA2EA0401C75B13034913F090381FF0F890383FC0
+FC90397E007F8001F814F84848133FD803C0EB1FF049130748C71201000E91C7FC120C5A
+A212104813E014F8130112605CEB007000E090C8FCA47EA27EA2127C127E7E13C0EA1FF0
+EA0FFC6CB46C137C6C90B512F0C61580013FEBFC00010713E0D9007FC7FC2630809024>
+I<EBFFC04813FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380FFE7C90
+383FF87E3A03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8FCCAFC
+A81470147C14FCA25C1438261F819024>I<13FE3801FFC04813F814FEECFFC0D8020313
+F8C7387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FC
+C9FCCAFCA81418143F143E147E147C140C211F819021>I<1360137C13FC5BA2133890C9
+FCA7EB7FF00003B512C015FF5AA201805BEA0403C6481380D91FF0C7FCEB3FC0017EC8FC
+13F8485AEA03C05B48C9FC12065A12081218121012301220A21260A412E0A47EA27E1278
+127C127E7E7FEA1FE0EA0FF8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC0001
+0713E0D9007FC7FC263E809E21>112 D<14E014F81301A25CEB007091C8FCA848B47E48
+13F848EBFFC015FFA2EA0401C75B13034913F090381FF0F890383FC0FC90397E007F8001
+F814F84848133FD803C0EB1FF049130748C71201000E91C7FC120C5AA212105AA31260A3
+12E0A47EA27EA2127C127E7E13C0EA1FF0EA0FFC6CB46C137C6C90B512F0C61580013FEB
+FC00010713E0D9007FC7FC263E809E24>I<1470147C14FCA25C143891C8FCA8EBFFC048
+13FC48EBFFE0EDFF80A2EA0200C7001F1300147F903801FFF890380FFE7C90383FF87E3A
+03FFC03FC0007F010013FC01FC131F01F0EB0FF8D8FF80130300F8C8FC261F819E24>I<
+14C0EB01F85CA21303EB006091C8FCA813FE3801FFC04813F814FEECFFC0D8020313F8C7
+387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8FCEAFFC000FCC9FC
+211F819E21>I<EB7FF00003B512C015FF5AA201805BEA0403C6481380D91FF0C7FCEB3F
+C0017EC8FC13F8485AEA03C05B48C9FC12065A12081218121038300C3038201FFE147C12
+60EB3FFCEB061890C9FC38E00180EB03F05CA2EAF007EB00C06C90C8FC1278127C127E7E
+7FEA1FE0EA0FF8EA07FE2603FFC0137C6C90B512F06C6C1480011FEBFC00010713E0D900
+7FC7FC2631809121>120 D<48B47E4813F848EBFFC015FFA2EA0401C75B13034913F090
+381FF0F890383FC0FC90397E007F8001F814F84848133FD803C0EB1FF049130748C71201
+000E91C7FC120C5AEB071C001013DF4848B4FCA214BE3860038E90C9FC14E000E013F813
+01A25C38F0007091C8FC7EA2127C127E7E13C0EA1FF0EA0FFC6CB46C137C6C90B512F0C6
+1580013FEBFC00010713E0D9007FC7FC2630809024>I<EBFFC04813FC48EBFFE0EDFF80
+A2EA0200C7001F1300147F903801FFF890380FFE7C90383FF87E3A03FFC03FC0007F0100
+13FC01FC131F01F0EB0FF8D8FF80130300F8C8FCCAFCA8EC6180EC7DF014FFECFBE0A214
+3891C8FC140CEC0F80141F92C7FCA214072626819024>I<13FE3801FFC04813F814FEEC
+FFC0D8020313F8C7387FFF80141FA249B51200130F48B512C0007F01FCC7FC14C001FCC8
+FCEAFFC000FCC9FCCAFCA814C3903801FFE0ECF7C0EB03FFECEF80EB006191C8FC141814
+3F143E147E147C140C2126819021>I<170416010308130EA2ED1C03EE070CEE0F8C9238
+3C3FF8ED3FFF16FBEEF3F0002091381FE1E092380F8000030EC7FC1260A300E0140CA315
+087E1518151000781430007C1470007E5C383F80039038E01FC06CB55A6C91C8FC6C5B00
+0113F838003FC02F22808C2E>128 D<1720EE086003401370EDC01817F00201EB38F8EE
+7CFC03C1B5FC4AB612E016DF93389F9FC000206DEB0F0F913900FC000103E090C7FC1260
+A300E05CA35D7E14016C49C9FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C6
+6CCAFC3320808C32>I<1504EC010C0108130EEB18030110131E903830071F91380F9F80
+9039F83FFFE0007FB612FC14FB9138F3F3F839FFBFE1E190390F800038260D818C24>I<
+1680152049EB21C0A2491361EDE18090380701F190391F87FF00007FB6FC81ECFE7E39FF
+F3FC3CD9C1F0C7FC220D818C20>I<160717C0A2160F1780160193C7FCEE38E0EE3EF8A2
+167FEE7DF0EE0C3093C7FCA7170416010308130EA2ED1C03EE070CEE0F8C92383C3FF8ED
+3FFF16FBEEF3F0002091381FE1E092380F8000030EC7FC1260A300E0140CA315087E1518
+151000781430007C1470007E5C383F80039038E01FC06CB55A6C91C8FC6C5B000113F838
+003FC02F3680A02E>136 D<1630163E167E167CA2161C93C8FCED0186EEF7C0ED03FFEE
+EF80A2ED00E393C8FCA71720EE086003401370EDC01817F00201EB38F8EE7CFC03C1B5FC
+4AB612E016DF93389F9FC000206DEB0F0F913900FC000103E090C7FC1260A300E05CA35D
+7E14016C49C9FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C66CCAFC333480
+A032>I<1406EC07C0140F5DA2140391C8FCEC30C0EC3EF8147FEC7DF0A2EC1C7091C8FC
+A71504EC010C0108130EEB18030110131E903830071F91380F9F809039F83FFFE0007FB6
+12FC14FB9138F3F3F839FFBFE1E190390F800038262181A024>I<15E015F8A214015DEC
+003092C7FCEC071C15DFA24AB4FC15BEEC018691C8FCA71680152049EB21C0A2491361ED
+E18090380701F190391F87FF00007FB6FC81ECFE7E39FFF3FC3CD9C1F0C7FC222181A020
+>I<131FEB7FC0EBFFF03801FC1001F0C8FC13C0485A90C9FC7FA2EBC003EBE00FEBF83F
+3801FFFEA26C13F8EB7FE0EB1F8049C8FC137C5BEA01E0485A5B48C9FC120E120C5AA212
+105AA31260A312E0A47EA27E1278127C127E7E7FEA1FE0EA0FF8EA07FE2603FFC0137C6C
+90B512F06C6C1480011FEBFC00010713E0D9007FC7FC2639809920>168
+D<EB03FC90381FFF8081495BA214E7D90FFFC7FC7F4913C0013F13FC5B9038FF0FF83801
+F8033903E00078D8078090C7FC90C9FC120E120C5AA212105AA31260A312E0A47EA27E12
+7C127E6C7E7FEA1FF86CB46C137C6C90B512F0000115806C6CEBFC00010F13E0010090C7
+FC262D808D1D>I<EB0FF0EB7FFE80495AA214BEEB3FFC6D5AEB7FFF007FB512F0A29038
+FE3FE038FFF80FEB00011C0E818D1A>I<EB07C0EB1FF0497E497E017EC7FC13F813E05B
+7FA27F6D13E0EB7E0F90387FFFC07F15803903FFFE00007F13E091C7FC13F8EAFFC000FC
+C8FC1B1681951A>I<5BEB0FE0131FEB3FF0A2137FEB6070EBC060A300011340EBE0C013
+F1EBFF807E007F13FFA214FEB5FC13011814819316>174 D<13F0EA01FC48B4FCA25A38
+061F80EA070FEA0FFFA33807FB00EA01F3EA00031306131EEA01FC127F5B5BEAFFC000FC
+C7FC1115819410>I<16801503150FED7F004A5AEC07FEEC1FF8EC7FE0903801FF80D907
+FCC7FCEB1FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA
+01FE6C7E6D7EEB3FE06D7E6D7E6D7E80EB047F90380C3F8090381C1FE09038780FF83903
+F807FE3A7FF003FFE049C6FC49EB7FC048C7121F00F81403232A81A921>186
+D<16801503150FED7F004A5AEC07FEEC1FF8EC7FE0903801FF80D907FCC7FCEB1FF0EB7F
+C049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA01FE1200137F7F7F
+7F1306A21304130C131C1378EA03F8EA7FF05B5B48C9FC12F8212A81A91A>I<5CA2EC03
+80A215C0A315E0A2140115C0A4010213E0EB0F00131E5B5B1370A2017F13F090383FC070
+EB0FE013001383EA01FF14C038007C0090C71260121012300020EB01C0007FB5FC1580A2
+B612006C13FC1C2680A51D>I<154015C0A31401A3140081A41480EB01C01303EB0780EB
+0F00130EA290380FC070381007F0383001F838200038EB10F8EA603F14F090380F007800
+F0C7FC15F86CEB03FC6CEB0FBE007F90387FBFC090B5121F6C01FE13806CEBF80F0007EB
+E003000190C8FC222580A321>I<1840EF01E01707EF1F80EF7E00933801F818933807E0
+7893381F81F0EE7E07923901F83FE0923803E0FFDB018313009238000FFCEE1FF0EE7FC0
+4CC7FCED01FCED03F016C04BC8FC15061504150CA3151CA5151E150EA312200060140FA2
+8100E081A27E6C6EC8FC6C5CD87FC0133E90B512FE7E6C5C00075CC61480353180AE2E>
+192 D<1840EF01E01707EF1F80EF7E00933801F818933807E07893381F81F0EE7E079239
+01F83FE0923803E0FFDB018313009238000FFCEE1FF0EE7FC04CC7FCED01FCED03F016C0
+4BC8FC15061504150CA3151CA5151E150EA312200060140FA28100E081A26C816CEC03F0
+6C913807FFFED87FC0133F90B75A6C5C6CECFC1F00074AC8FCC61480353180AE2E>I<15
+04151E157EEC01F8EC07E091381F8080EC7E03903801F80F903907E07F0090381F81FF90
+387E07FE3901F81FF83903E07FE0390781FF80260207FCC7FC38001FF0EB7FC049C8FCEA
+01FCEA03F013C05B0006C9FC1207487E7F7F6C7E6C7EEA01FE6C7E6D7EEB3FE06D7E6D7E
+6D7E80EB047F90380C3F8090381C1FE09038780FF83903F807FE3A7FF003FFE049C6FC49
+EB7FC048C7121F00F81403232F81AE21>I<1504151E157EEC01F8EC07E091381F8080EC
+7E03903801F80F903907E07F0090381F81FF90387E07FE3901F81FF83903E07FE0390781
+FF80260207FCC7FC38001FF0EB7FC049C8FCEA01FCEA03F013C05B0006C9FC1207487E7F
+7F6C7E6C7EEA01FE1200137F7F7F7F1306A21304130C131C1378EA03F8EA7FF05B5B48C9
+FC12F8212F81AE1A>I<14021406A2140FA31580A215C01580A3150080A8EC0380A61208
+A20018EB01C0121012301220A21260A312E01580A36C1400A200785B007C1306007E131E
+383FC07CEBFFFC6C5B6C5B000313C0C690C7FC1A3480A51A>200
+D<154015C0A31401A56E7EAB81A681A38181EDFFC0A21680002014EF15E3EDE0001260A3
+00E05CA35D7E14016C49C7FC007C5B007E131E383FC07EEBFFFC6C5B6C5B000313C0C66C
+C8FC223780A321>I<7F1201A31203A37F1201A97FA21200A77FA37F7F387FFF8013BFEB
+3F00487EEAFE07112481A30F>I<12021203A2EA0780A313C0A21203A31380AB1201A213
+C0A51380A3EA0700127FA2127E5A12F00A2681A50C>I<131E133FEB7F8013FF4813C0EA
+03C7EB83E0380701F0380F81F8387FC0FF13F0387BFFFE12F300E113CEC61380EB3F0018
+10818D16>210 D<1307EB0FC0EB1FE014F0133F1331EB60F8EB707813F83801FE383807
+FF30007F13F0EB3FE0EA7E1FEAFC0738F001C01510818F13>I<EB0180EB03C014E01307
+14F0130D130CEB1E78133E13FF000713B8387FEFF013CF138738FE03E0EAF8001510818F
+0F>I<1580140115C0140315E01401A2EC00F0A200201470157812601538A312E0A21530
+7EA26C1420007C1460007E14E0393F8003C0EBE01F6CB512806C14006C5B000113F83800
+3FC01D1E80921D>224 D<15101538153CED3F80157F160012208115381260A3153012E0
+A215207E15606C5C007C1301007E495A383F800FD9E07FC7FC381FFFFE6C5B6C5B000113
+E038003F80211C808720>I<1203EA07C0EA0FE013F0EA1FF81219EA10FCEA207C133C13
+3EEA601EA2130EEAE00CA212F0EAF838EAFFF8127F13F0EA3FE0EA0FC00F1680950F>
+232 D<1340136013E01201120F121F123FA2EA3CF0EA7070A2EAFFF0A27F127FEA1FFCEA
+003EEB3FC0A2EB1F80130F13031216819510>I<1318133CA2137CA213D8139812015B13
+F0EA07E0387FFFC0A21480B5FCA238077E007F139F138FEA038E13C613FCA212015B6C5A
+121B818F10>I<130C131F8014E0497E6D7E497E497E80A201C113809038C0CFC0EBE0C7
+3901F383E013FF6C13810003EBF9C0007F13FFA201E7138048C6FC00F8EB1F001B168195
+1A>I<13F03801FCC0000313E0EBFFF0A238061FF8130C0007137CEA0FB8EBF83E3807FC
+1E380FFF9E007F13FCA2133F38FC07F8EAF000171181900F>I<EB0780EB0FE014F014F8
+131FEB18FCEB3C7CEB3E3EEB3F9EEB1FFE14FF7F7F1301EB0003A514021406A2140C141C
+143814F8EB03F0EB1FE03801FFC0B51280000F1300EA003C18207F8E1A>240
+D<EB03C0EB07F080A2497EEB0C7CEB1C3EEB1E1EEB1F1F14CF90380FFFF8A26D13F07FEB
+007FEC0380A415005CA2140E141E5C14FCEB03F8EB1FF048B45AB55A000F90C7FCEA001E
+1D207F8E1D>I<1630163E167E167CA2161C93C8FCA417F0EE01FC4CB4FCA39338061F80
+170FEE0F07002016FFA2701300006016FBEE01F3EE0002A200E016065F173C17F86C1503
+6CED1FF000FE4AB45A267FC001B55A90B7C7FC6C15FC6C15E0000702FCC8FCC649C9FC31
+2680A431>I<1618163F163E167E167C160C93C8FCA4177CEE01FE002015031607830060
+ED0F0F160CEE080700E0ED1806A216386CED3C0C6C163C6CED3FF8127F01E090381FFFF0
+6CB812E07E000717C0000115C1D8003F9038E0003F331F809E32>I<EC71C0EC7DF0A214
+FFECFBE0EC186091C8FCA715F0EC01FC4AB4FCA25C9138061F80EC070FEC0FFF1220A200
+60903807FB00EC01F3EC00031502A200E014061504150C151C6C5C15F86C495A6CEB07E0
+397F807FC090B55A6C91C7FC6C13FC000713F0C61380212A80A121>I<EC71C0EC7DF0A2
+14FFECFBE0EC186091C8FCA9EC01E0EC03F881811407EC063E81EC0E0F140F158715E700
+20903807FFC0A26E138000607FEC003FED0C00150800E014185D6C14705D6C13036CEB0F
+C0397F807F8090B5C7FC6C5B6C13F8000713E0C690C8FC222D809E21>I<167CED01FE15
+07ED0FFC151FED3F0CED7C08ED70005D5D4A5A92C7FCA200105B5AEC07C015FF006015E0
+16F0809138007FE0150100E0EC006016C015016CEC0780150F6CEC3F00007C14FE007FEB
+07FC9038C03FF06CB55A6C14806C49C7FC000313F838007FC02724819424>248
+D<157FEC03FFEC07FE0020130FA215800060EB1800141CEC1F80EC3FF000E014FCEC1FFE
+1407EC00FC6C141C15186C14786CEB01F8007FEB0FF09038C07FE06CB512C06C14006C13
+FC000313F038007F8020197F8420>I E /Fc 30 127 df<1218123C123E121E120EA512
+1CA2123812F812F01260070F779D1A>39 D<1230127812FCA2127812301200A912301278
+12FCA212781230061576941A>58 D<126012F0A27E1278127C123C123E121EA2121F7E7F
+12077F1203A27F12017F12007F1378A2137C133C133E131E131F7FA21480130714C01303
+14E01301A2EB00C013277DA21A>92 D<EA0180EA07C0EA1FF0EA3EF8EAF83EEAF01EEA40
+040F077B9D1A>94 D<EA1FF0EA3FFC487EEA780FEA300738000380A2137FEA07FF121FEA
+3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07F016157D941A>97
+D<127E12FE127E120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E141CA7000F13
+381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF80000313C0000F
+13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380FFFE0000313
+C03800FE0014157D941A>I<EB0FC0131F130F1301A6EA01F1EA07FDEA0FFFEA1E0FEA3C
+07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFF83807FDFC3801F1F8161E7E9D
+1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
+FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
+1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
+80151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C0380EA1E
+07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C48130EA4
+0070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<127E12FE12
+7E120EA6133EEBFF80000F13C013C1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC17
+1E7F9D1A>I<13C0487EA26C5A90C7FCA6EA7FE0A31200AF387FFF80B512C06C1380121F
+7C9E1A>I<130C131EA2130C1300A6EA07FE120F1207EA000EB3A5131C1260EAF038EAFF
+F8EA7FF0EA1FC00F2A7E9E1A>I<12FEA3120EA6EB0FFC131F130FEB03C0EB0780EB0F00
+131E5B5B13FC120F13DE138F380E07801303EB01C014E0EB00F038FFE3FEA3171E7F9D1A
+>I<EA7FE012FF127F1200B3A6387FFFC0B512E06C13C0131E7D9D1A>I<387CE0E038FFFB
+F8EA7FFF381F1F1CEA1E1EA2EA1C1CAC387F1F1F39FFBFBF80397F1F1F00191580941A>
+I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAC387FC3FC38FFE7FE387FC3FC17
+157F941A>I<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0
+01007013C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<EA7E3E38
+FEFF80007F13E0380FC1F0EB8070EB0038120E141CA7000F13381478EB80F0EBC1E0EBFF
+C0000E1380EB3E0090C7FCA8EA7FC0487E6C5A16207F941A>I<3801F8E0EA07FEEA0FFF
+EA1E07EA3C03EA78011270EAE000A613011270EA7803123CEA1E0FEA0FFFEA07FCEA01F0
+C7FCA8EB0FFEA317207E941A>I<387F81F838FF8FFC387F9FFE3803FE1EEBF80CEBE000
+A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB80EA1FFF127FEA7807EAE003A30078C7
+FCEA7FC0EA1FFCEA07FE38003F801307386001C012E0A2EAF00338FC0780B51200EAEFFE
+EAE3F812157C941A>I<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF
+6C1380EB3F00141C7F9B1A>I<387E07E0EAFE0FEA7E07EA0E00AD1301EA0F033807FFFC
+6C13FE3800FCFC17157F941A>I<38FF83FEA338380038A26C1370A31338137CA2380C6C
+60380EEEE0A413C6000613C0EA07C71383A217157F941A>119 D<387FC7F8EBCFFCEBC7
+F8380703C038038380EBC700EA01EFEA00FE137C13781338137C13EE120113C738038380
+000713C0EA0F01387FC7FC00FF13FE007F13FC17157F941A>I<387F83FC38FFC7FE387F
+83FC380E00E0A27EEB01C0A2EA0381EB838013C31201EBC700EA00E7A213E61366136E13
+3CA31338A35BA2EA30F0EA78E01271EA7FC06C5A001EC7FC17207F941A>I<387FFFF8B5
+FCA238E000F0EB01E0EB03C038000780EB0F00131E137C5B485AEA03C0485A380F003812
+1E5A5AB512F8A315157E941A>I<EA0703381F8780EA3FCF38F9FE00EAF0FCEA60701106
+7C9D1A>126 D E /Fd 50 128 df<EB1FC0EB7020EBC0103801803800031378EA070014
+3091C7FCA7B512F8380700781438B2397FE1FF80192380A21B>12
+D<EAC060EA60C0EA3B80EA1F00120E12040B067A9E18>20 D<132013401380EA01005A12
+061204120CA25AA25AA312701260A312E0AE1260A312701230A37EA27EA2120412067E7E
+EA0080134013200B327CA413>40 D<7E12407E7E12187E12041206A27EA2EA0180A313C0
+1200A313E0AE13C0A312011380A3EA0300A21206A21204120C5A12105A5A5A0B327DA413
+>I<127012F812FCA212741204A41208A21210A212201240060F7C840E>44
+D<127012F8A3127005057C840E>46 D<EA01F0EA071CEA0C06487E00381380A2387001C0
+A400F013E0AE007013C0A3EA780300381380A2381C0700EA0C06EA071CEA01F013227EA0
+18>48 D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018>I<EA03F0EA0C1CEA
+100700201380384003C0A2008013E012F0EAF801A3EA2003120014C0A2EB07801400130E
+5B13185B5B5B485A90C7FC000213205A5A00181360481340383FFFC05AB5FC13217EA018
+>I<EA03F8EA0C1EEA100F38200780004013C0127813031307123800001380A214005B13
+0C1338EA03F0EA001C130FEB0780A2EB03C0A214E01220127012F8A200F013C01240EB07
+80122038100F00EA0C1CEA03F013227EA018>I<1303A25BA25B1317A213271367134713
+87120113071202120612041208A212101220A2124012C0B512F838000700A7EB0F80EB7F
+F015217FA018>I<00101380381E0700EA1FFF5B13F8EA17E00010C7FCA6EA11F8EA120C
+EA1C07381803801210380001C0A214E0A4127012F0A200E013C01280EA40031480382007
+00EA1006EA0C1CEA03F013227EA018>I<137EEA01C138030080380601C0EA0C03121C38
+1801800038C7FCA212781270A2EAF0F8EAF30CEAF4067F00F81380EB01C012F014E0A512
+70A3003813C0A238180380001C1300EA0C06EA070CEA01F013227EA018>I<1240126038
+7FFFE014C0A23840008038C0010012801302A2485A5BA25B5BA21360134013C0A21201A2
+5B1203A41207A76CC7FC13237DA118>I<EA01F8EA060EEA0803381001801220386000C0
+A31270A238780180003E1300EA3F02EA1FC4EA0FF812036C7EEA067EEA083F38100F8038
+3007C0EA6003EB00E05A1460A40060134014C06C138038180300EA0E0EEA03F013227EA0
+18>I<EA01F0EA060C487EEA1807383803801270A238F001C0A314E0A5127013031238EA
+1805120CEA0619EA03E1380001C0A3EB0380A21230387807001306EA700CEA20186C5AEA
+0FC013227EA018>I<B612FEA2C9FCA8B612FEA21F0C7D9126>61
+D<497EA3497EA3EB05E0A2EB09F01308A2EB1078A3497EA3497EA2EBC01F497EA248B512
+80EB0007A20002EB03C0A348EB01E0A348EB00F0121C003EEB01F839FF800FFF20237EA2
+25>65 D<B612C0380F80070007130114001540A215601520A314201500A3146014E013FF
+138014601420A315081400A21510A31530A2157015E0000F1303B6FC1D227EA121>69
+D<B512F0380F803C0007130FEC078015C0140315E0A615C014071580EC0F00143CEBFFF0
+0180C7FCAE487EEAFFFC1B227EA121>80 D<007FB512F839780780780060141800401408
+A300C0140C00801404A400001400B3A3497E3801FFFE1E227EA123>84
+D<39FFFC07FF390FC000F86C4813701520B3A5000314407FA2000114806C7E9038600100
+EB3006EB1C08EB03F020237EA125>I<397FF803FF390FE001F83907C000E06C6C5B0001
+5CEBF001D800F890C7FCEB7802EB7C04133EEB1E08EB1F10EB0FB0EB07A014C06D7E1301
+80497EEB0278EB047CEB0C3EEB081EEB101F496C7E140701407F496C7E1401D801007F48
+6D7E5AD81F807F3AFFC003FFC022227FA125>88 D<EA1FE0EA3038EA780C130EEA300712
+00A313FFEA07C7EA1E07123C1278127000F01308A3130FEA7817383C2390380FC1E01515
+7E9418>97 D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C14
+1EA7141C143C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703
+380C0780121C383803000078C7FC127012F0A712700078134012386C1380380C0100EA07
+06EA01F812157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA380012
+78127012F0A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FC
+EA0707380C0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012
+386C13406C138038070300EA00FC13157F9416>I<133E13E33801C780EA0387130748C7
+FCA9EAFFF80007C7FCB27FEA7FF0112380A20F>I<14703803F198380E1E18EA1C0E3838
+0700A200781380A400381300A2EA1C0EEA1E1CEA33F00020C7FCA212301238EA3FFE381F
+FFC06C13E0383000F0481330481318A400601330A2003813E0380E03803803FE0015217F
+9518>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F0070A2120EAF38FFE7FF1823
+7FA21B>I<121C123EA3121CC7FCA8120E127E121E120EB1EAFFC00A227FA10E>I<13E0EA
+01F0A3EA00E01300A81370EA07F012001370B3A51260EAF0E013C0EA6180EA3F000C2C83
+A10F>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B5B133813F8EA0F1C
+EA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA21A>I<120E12FE12
+1E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A1E807201C03A0F003C
+00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60C0381E80E0380F00
+70A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C0180381800C0003813E04813
+70A200F01378A700701370007813F0003813E0381C01C0380E038038070700EA01FC1515
+7F9418>I<EA0E1F38FE61C0380E8060380F0070000E1338143CA2141EA7143CA2143800
+0F1370380E80E0EB41C0EB3F0090C7FCA9EAFFE0171F7F941B>I<3801F82038070460EA
+0E02EA1C01003813E0EA7800A25AA71278A2EA3801121CEA0C02EA070CEA01F0C7FCA9EB
+0FFE171F7E941A>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEAFFF010157F
+9413>I<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA0FF0EA01F8EA00
+3CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202A41206A3120E12
+1E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038FE07F0
+EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<38FF80FE381E
+00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2A31374A21338A3
+131017157F941A>I<39FF8FF87F393E01E03C001CEBC01814E0000E1410EB0260147000
+071420EB04301438D803841340EB8818141CD801C81380EBD00C140E3900F00F00497EA2
+EB6006EB400220157F9423>I<38FF83FE381F00F0000E13C06C1380EB8100EA0383EA01
+C2EA00E41378A21338133C134E138FEA0187EB0380380201C0000413E0EA0C00383E01F0
+38FF03FE17157F941A>I<38FF80FE381E00781430000E1320A26C1340A2EB80C0000313
+80A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043C7FC123C171F
+7F941A>I<383FFFC038380380EA300700201300EA600EEA401C133C1338C65A5B12015B
+38038040EA07005A000E13C04813805AEA7801EA7007B5FC12157F9416>I<EA6030EAF0
+78EAF8F8EAF078EA60300D057BA118>127 D E /Fe 14 122 df<1238127C12FEA3127C
+1238070774861F>46 D<1238127C12FEA3127C12381200AC1238127C12FEA3127C123807
+1A74991F>58 D<EB1F80EB7FE03801FFF83803F07C3807C03C48487E1300381E03EF383C
+0FFF5B38381E3F39783C1F80EB780FA238F0700713F0A7017013003878780FA2EB3C1E38
+381E3C383C1FFC6D5A381E03E06CC8FC90388007803807C00F3903F03F003801FFFE3800
+7FF8EB1FC019257DA41F>64 D<EA07FCEA1FFF4813C0383E03E06D7EEA1C00C71278A4EB
+3FF8EA01FF1207381FE078EA3E005A12785AA4007813F8EA7E036CB512E0000F133F3803
+FC0F1B1A7D991F>97 D<EB7FE03801FFF8000713FC380FC07CEA1F00003E1338003C1300
+5AA2127012F0A612701278A26C133C123E6C137C380FC0F83807FFF0000113E038007F80
+161A7C991F>99 D<90387C0F803901FF3FC00007EBFFE0380F83F1D81F0113C0391E00F0
+00481378A66C5BEA1F01380F83E048B45A001D90C7FCEA1C7C003CC8FCA37E381FFFE06C
+13F814FE487F393C003F8048130FEC07C0481303A40078EB0780A2003EEB1F00381F807E
+6CB45A000313F038007F801B287E991F>103 D<137013F8A3137090C7FCA7EA7FF812FF
+127FEA0078B3A2B512F8A315267BA51F>105 D<EA7F8012FF127F1207A8903887FFC015
+E015C09038807E005CEB81F8EB83F0EB87E0EB8FC0EB9F8001BFC7FC13FF808013F3EBE3
+E0EBC1F0138080147C143C80141F397FF87FE039FFFCFFF0397FF87FE01C257FA41F>
+107 D<EAFFF8A3EA0078B3ADB512FCA316257CA41F>I<38FE3C0F9038FE3F80B5EA7FC0
+381FCFF3903887E1E0EB07C1A2001E1381B039FFC7F1FCEBCFF3EBC7F11E1A80991F>I<
+13FCEA03FF481380381F87E0EA1E01383C00F0007C13F800781378A248133CA76C137C00
+781378A2007C13F8003C13F0381E01E0EA1F873807FF806C1300EA00FC161A7C991F>
+111 D<387FE07E39FFE1FF80D87FE313C03801EF87EBFF079038FC038049C7FCA25BA35B
+AC387FFFE0B5FC7E1A1A7E991F>114 D<137013F0A6387FFFFEB5FCA2D800F0C7FCADEC
+0780A5EC0F00EB7C1FEB3FFE6D5AEB07F019217FA01F>116 D<397FF0FFE0486C13F06C
+4813E0390F800F000007131EA2EA03C05CA2EA01E0147C1478EA00F0A25C1378A2EB38E0
+1339133DEB1DC0A2131F130F5CA391C7FCA25B131EA2EA383EEA7C3C137C5BEA7FF06C5A
+EA0F801C277F991F>121 D E /Ff 41 128 df<EB3F80EBE1E03801C070380380780007
+133C130048133EA5143C1478147014E0EB03C038FF1E00EB0380380F01C0EB00E0147014
+78143CA2143EA2141E141FA8141E130CEB1E3CA2EB1C3838FF0870EB07C0182A7EA91D>
+25 D<127812FCA212FEA2127A1202A41204A31208A212101220124007127B8510>44
+D<EAFFFEA30F037F8E14>I<137E3801C380380700E0000E1370001E1378001C1338003C
+133CA20038131C0078131EA400F8131FAF0078131EA4007C133E003C133CA2001C133800
+1E1378000E13706C13E03801C38038007E0018297EA71D>48 D<132013E01201120F12FF
+12F11201B3AD487EB512C0A212287BA71D>I<EA01FCEA07FF380C0FC0381803E0382001
+F01260384000F8A200F813FC7E147CA3007813FCC7FC14F8A2EB01F0A2EB03E014C0EB07
+801400130E5B5B13305B5B485A3803000412024813085A5A481318383FFFF84813F0B5FC
+A216287DA71D>I<00181330001E13E0EA1FFF14C014005BEA11F00010C7FCA813FCEA13
+07381401C0001813E0EA1000C712F01478A3147CA3127012F8A314781280004013F814F0
+1260383001E0381803C0380E0F803807FE00EA01F816297DA71D>53
+D<EB0FC0EB3FF0EBF018EA01C03803803C3807007C5A000E1338001E13005AA35AA3EAF8
+3FEBC1C038F900E000FA1370143800FC133C141EA25A141FA41278A46C131EA2001C133C
+121E000E13786C13703803C1E03801FFC038007E0018297EA71D>I<12201238003FB5FC
+A214FE5A3860000400401308A21410481320A2C712401480A2EB01001302A25BA2130C5B
+A31338A213781370A213F0A51201A76C5A182A7DA81D>I<137E3801FF80380781C0380F
+00E0001E1370481338A248133CA200F8131EA4141FA41278143FA27E001C135F7E6C139F
+3803831FEA00FCEB001EA3143E143CA21438001C1378003E137014E0383C01C038180380
+381C0F00EA0FFEEA03F818297EA71D>57 D<14101438A3147CA314BEA3EB011FA3903802
+0F80A201047F1407A201087F1403A2496C7EA3496C7EA390387FFFFCA29038C0007E4913
+3EA248C7123F81A20002EC0F80A21206ED07C0001FEC0FE0D8FFE0EBFFFEA2272A7EA92C
+>65 D<B6FC15C0390FC003F00007EB00F881157E153E153FA6153E157E157C5D4A5AEC07
+E090B512809038C001F06E7E153E153F811680150F16C0A6ED1F80A2ED3F00A215FE000F
+EB01F8B65A158022297DA829>I<B67E15F03907E001FC0003EB003E81ED0F80ED07C0ED
+03E0ED01F0A2ED00F8A216FC167CA3167EAA167CA216FC16F8A2ED01F0A2ED03E016C0ED
+0780ED1F00153E0007EB01FCB612F0158027297EA82D>68 D<B7FCA23907E0003F000314
+07ED03801501A21500A416405CA21600A25CA2140F90B5FCA2EBE00F1403A2801620A391
+C7FC1640A416C0A215011503ED07800007143FB7FCA223297EA828>I<02FF13100107EB
+E03090381FC07890393E000C7001F8EB06F048481303484813014848130048481470A248
+C812305A123E1610127EA2007C150012FCA892B5FC127C007EEC03F01501123EA2123F7E
+6C7EA26C7E6C7E6C6C13026C7E013EEB0C7090391FC03830903907FFE0100100EB800028
+2B7DA92E>71 D<EAFFFEA2EA0FE0EA07C0B3B1EA0FE0EAFFFEA20F297DA815>73
+D<B538800FFEA23A07F00003F06C48EB01C0160015025D5D5D5D5D5D4AC7FC14025C5C14
+18143C147E14BEEBE11F01E27FEBE40F9038E807C001F07FEBE0036E7E811400157C157E
+153E81A2ED0F8016C0150716E0486C14F8B538803FFFA228297EA82E>75
+D<B512C0A2D807F0C7FC6C5AB3A41501A41502A41506A2150E151E157C0007EB01FCB6FC
+A220297EA825>I<D8FFE0913807FF80A20007EEF000D802F0EC0BE0A201781413A36D14
+23A36D1443A26D1483A3903907800103A3903803C002A2903801E004A3903800F008A2EC
+7810A3EC3C20A3EC1E40A2EC0F80A30007EB0700D80F804A7ED8FFF891B5128014023129
+7EA836>I<D8FFE0EB3FFE7FD803F8EB03E00002EC01C0017CEB0080137E133E7FA26D7E
+8013076D7E8013016D7E80147C80143F80EC0F8015C01407EC03E015F01401EC00F8A215
+7C157E153E151FA2150F1507A200071403486C1301EAFFF8150027297EA82C>I<B512FC
+ECFFC03907E007F00003EB00F8157C81153F811680A61600153EA215784A5AEC07C0D9FF
+FEC7FCEBE007EC03C06E7E6E7E811578157CA4157EA41601157F153F486CEB1F02B53880
+0F82ED0784C8EA01F8282A7EA82B>82 D<EBFE013803FF83380F81E3381E003748131F00
+387F00787F127000F07FA3807EA26C90C7FC127E127FEA3FE0EA1FFE380FFFE06C13F86C
+7FC66C7EEB07FFEB007FEC1F80140FEC07C0A26C1303A47E1580A26C13076C14006C130E
+00EE5B38C3C07838C1FFF038803FC01A2B7DA921>I<D8FFFE903801FF80A2D80FE09038
+007C00000715306C6C142000015D7F00005D6D1301017E91C7FC013E1302133F6D5BEC80
+0C90380FC00801075B14E001035BECF060903801F84001005B14FC027DC8FC147F143EAE
+147E90380FFFF0A229297FA82C>89 D<EA03FCEA0C0738100380383C01C0003E7F6D7E12
+1C1208C7FCA3137FEA03E0EA0F80EA1E005A127C0078144012F8A31301127C393C027880
+381E0C7F3907F01E001A1A7E991D>97 D<13FC38038780380701C0000E13E0EA1C00003C
+13F0A2481378A212F8A2B512F800F8C7FCA51278A26C1308A26C1310000E13206C134038
+01C18038007E00151A7E991A>101 D<131FEB70C0EBE1E0EA01C31203EB81C038078080
+1400A9EAFFFEA2EA0780B3A37FEA7FFCA2132A7FA912>I<140F3901FC30803807074338
+0E03C3001EEBC100486C7EA2007C7FA5003C5BA26C485A000E5BD81707C7FCEA11FC0030
+C8FCA47E381FFF806C13F06C7F3818007C48131E0070130E00607F12E0A40070130EA26C
+5B6C5B380781E0C6B4C7FC19287E9A1D>I<121E123FA4121EC7FCA9120FB4FCA2121F7E
+B3A2EAFFF0A20C297EA811>105 D<120FB4FCA2121F7EACECFFC0A2EC7E0014305C1440
+5C0103C7FC1304130C131E133E135F138FEB0780801303806D7E1300801478147C147E39
+FFF1FFE0A21B2A7EA91F>107 D<120FB4FCA2121F7EB3B2EAFFF0A20C2A7EA911>I<3A0F
+07F007F03AFF183818389039201C201C3A1F400E400E000F010F130F01801380A2010013
+00B13BFFF0FFF0FFF0A22C1A7E9931>I<380F07F038FF1838EB201C381F400E000F130F
+1380A21300B139FFF0FFF0A21C1A7E9921>I<137E3803C3C0380700E0000E1370481338
+003C133CA248131EA200F8131FA80078131EA26C133CA2001C13386C13706C13E03803C3
+C038007E00181A7E991D>I<380F0F8038FF11C0EB23E0EA1F43EA0F83EB81C0EB800090
+C7FCB07FEAFFFCA2131A7E9917>114 D<3807F080EA1C0DEA3003EA600112E01300A27E
+6C1300127EEA7FE0EA3FFC6C7EEA07FF38003F801307388003C0A2130112C0A200E01380
+130300F01300EACC0EEA83F8121A7E9917>I<7FA41201A31203A21207120F381FFF80B5
+FC38078000AD1440A73803C08012013800E100133E12257FA417>I<000F130FB413FFA2
+001F131F6C7FB05CA26C132F3903804F803901C08FF038007F0F1C1A7E9921>I<3AFFF3
+FF83FEA23A1F803C00F8D80F001460EB801C0007011E1340A2D9C02E13C00003012F1380
+A23A01E04701001581A23900F0838215C2A290387901C415E4137B90383E00E815F8A201
+1C1370A20118133001081320271A7F992A>119 D<39FFF01FF0A2390F8007800007EB03
+001402A26C6C5AA2EBE00C00011308A26C6C5AA2EBF830EB7820A26D5AA2EB3EC0EB1E80
+A26DC7FCA31306A21304A2130C1308A2EA701012F85BA2485AEA6180001FC8FC1C267F99
+1F>121 D<B612F01C0180901D>123 D<EA700EEAF81FEAFC3FA2EAF81FEA700E10067AA8
+1D>127 D E /Fg 14 118 df<1518153CA3157EA315FFA39138019F80A39138030FC0A2
+02077FEC0607A2020E7FEC0C03A202187F1501A24A6C7EA34A137EA34A7FA20101814A13
+1FA201038191C7120FA249B67EA20106C71207496E7EA3496E7EA201388101301400A201
+70810160157EA249157F8312016D16801203D80FF0ED7FC0D8FFFE0207B5FCA2383C7EBB
+3C>65 D<B812F0A2D803FCC7123F6C4814071601EE00F81778A21738A21718A4171C170C
+A21503A21700A45DA25D153F90B6FCA29038F8003F150F81A281A41703A292C7FCA21706
+A5170EA2170C171CA2173CA2177CEE01FCEE07F8486C143FB8FCA2303B7CBA36>69
+D<007FB812C0A2903AC003FC003F277E0001F8130F007C160300781601127017001260A2
+00E017E0A2481760A7C71600B3B3EC07FE0107B512FEA2333B7DBA39>84
+D<B500F090380FFFF0A2D803FCC813006C48157E173C1718B3B3A300005E7FA2137C5F7F
+5F6D4A5A7F6D6C49C7FC6D6C13066D6C131CD900F85B91383E01E091380FFFC0DA01FEC8
+FC343C7CBA3C>I<267FFFE0903807FFF8A20003018001011380C690C8EAFE0049157801
+7F15706D6C14605F6D6C13016D6C5C4CC7FC6D6C5B6D6C13065E6D6C131C6D6C13185E02
+7F137091383F80605EEC1FC191380FE18003E3C8FCEC07F7EC03FE5D14016E7EA2157F4B
+7EA2913801DFC09138038FE0150F91380607F091380E03F8140C4A6C7E91383800FE1430
+4A137F02E06D7E5C49486D7E01036E7E91C7FC01066E7E010E6E7E130C496E7E01386E7E
+0130157E0170157F01F0ED3F80D803F8ED7FC0D80FFCEDFFE0B5020313FFA2383B7EBA3C
+>88 D<EB3F803801C0F03803003C00047F000C7F486D7E001C80003E1303003F80A3121E
+C7FCA3143FEB0FF3EB7E03EA01F8EA03E0EA0FC0EA1F80EA3F00123E127E16605AA31407
+A2007C130B127E003E903811F0C06C13603A07C1807F803A00FE003E0023257CA427>97
+D<EA03E012FFA212071203B3EC3FC0ECE0789038E3001C01E6130F01E8EB078001F8EB03
+C049EB01E04914F0150016F8A216FC167CA2167EA9167CA216FC16F8A2ED01F016E06D13
+0301D814C001C8EB07800184EB0E0001835B903881C0F09038003F80273C7EBB2C>I<EB
+07F8EB3C0E9038F001803901E000C0484813604848133048C712704814F81401123EA200
+7EEB00F0007C1400A212FCA9127CA2127E123E150C7E15186C7E000714306C6C13606C6C
+13C03900F0018090383C0E00EB07F81E257DA423>I<ED07C090390FE018609039383820
+709039F01E40F03901E00F802603C00713600007ECC00048486C7EA3001F80A6000F5CA3
+6C6C485A00035C6C6C48C7FC3802F01EEB383838060FE00004C9FCA2120CA2120EA27E7F
+6CB5FC15F06C14FC6C8039078000FF000EC7EA1F8048EC07C048140312780070EC01E012
+F0A50078EC03C000381580003C14076CEC0F000007141CD803C0137839007803C0D90FFE
+C7FC24387EA527>103 D<EA03E012FFA212071203B3EC1FE0EC607CEC801E9038E3000F
+01E41480A201E8130716C013F0A25BB3A6486CEB0FE0B50081B5FCA2283C7EBB2C>I<12
+07EA0F80EA1FC0A3EA0F80EA0700C7FCADEA07C012FFA2120F1207B3ACEA0FE0EAFFFEA2
+0F397DB815>I<3903E01FE000FFEB607CEC801E3907E3000FD803E41480A201E8130716
+C013F0A25BB3A6486CEB0FE0B50081B5FCA228257EA42C>110 D<3803E03E00FF13C390
+38E107803907E20FC0EA03E413E8EC0780EC030001F0C7FCA35BB3A5487EB512C0A21A25
+7EA41E>114 D<D803E0EB07C000FFEB01FFA20007EB000F00031407B3A5150FA3000114
+17A26C6C132715470178EB87E090391E0307FFEB03FC28257EA42C>117
+D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+%%PaperSize: a4
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 723 475 a Fg(Uigh)n(uric)27 b(in)g(ArabT)1351
+494 y(E)1396 475 y(X)913 647 y Ff(Klaus)18 b(Lagally)801
+722 y(Institut)f(f)r(\177)-31 b(ur)19 b(Informatik)783
+796 y(Breit)n(wiesenstra\031e)g(20{22)856 871 y(D-70565)h(Stuttgart)932
+946 y(GERMANY)736 1020 y Fe(mailto:lagally)o(k@ac)o(m.or)o(g)882
+1160 y Ff(August)f(06,)h(1997)162 1371 y Fd(There)c(is)h(a)g(new)g
+(ArabT)629 1382 y(E)656 1371 y(X)g(language)g(mo)q(de,)f
+Fc(\\setuighur)o Fd(,)e(for)j(pro)q(cessing)h(Uigh)o(uric)d(texts)h(in)
+162 1431 y(the)g(extended)f(Arabic)h(writing.)162 1515
+y(This)g(mo)q(de)g(w)o(orks)g(only)g(with)g(ArabT)895
+1526 y(E)922 1515 y(X)g(v)o(ersion)g(3.06)h(or)f(later.)162
+1599 y(Uigh)o(uric)f(input)h(texts)g(are)g(enco)q(ded)g(in)g(a)h(mo)q
+(di\014cation)e(of)i(the)f(standard)h(ArabT)1735 1610
+y(E)1762 1599 y(X)f(enco)q(ding,)162 1659 y(see)21 b(column)f(5)i(of)g
+(the)f(T)l(able.)37 b(Please)21 b(observ)o(e)g(that)h(in)f(Uigh)o(uric)
+f(all)h(c)o(haracters)g(are)h(co)q(ded)162 1719 y(v)o(erbatim.)162
+1803 y(This)g(language)i(mo)q(de)e(is)g(strictly)f(exp)q(erimen)o(tal)f
+(and)j(exp)q(ected)e(to)i(con)o(tain)f(errors.)40 b(Please)162
+1863 y(rep)q(ort)17 b(y)o(our)f(exp)q(erience)e(and)j(suggestions)g
+(for)g(c)o(hanges)f(and)h(impro)o(v)o(em)o(en)o(ts)c(to)k(the)f
+(author.)1077 2862 y(1)p eop
+%%Page: 2 2
+2 1 bop 762 274 a Fd(ArabT)896 285 y(E)923 274 y(X)16
+b(enco)q(ding)g(of)h(Uigh)o(uric)p 162 389 846 2 v 161
+484 2 96 v 260 484 V 299 443 a(1)86 b(2)93 b(3)83 b(4)29
+b(=)37 b(5)i(\()12 b(6)g(\))17 b(7)p 1006 484 V 162 486
+846 2 v 161 581 2 96 v 187 540 a(01)p 260 581 V 292 w
+Fb(A\007)89 b(@)34 b Fd(=)29 b Fc(a)45 b Fd(\(01\))17
+b(a)p 1006 581 V 161 677 V 187 635 a(02)p 260 677 V 291
+w Fb(\351\007)85 b(\350)29 b Fd(=)16 b Fc(:a)32 b Fd(\(02\))17
+b(\177)-24 b(a)p 1006 677 V 161 772 V 187 731 a(03)p
+260 772 V 284 w Fb(Y\007)74 b(X)30 b Fd(=)f Fc(d)45 b
+Fd(\(09\))17 b(de)p 1006 772 V 161 868 V 187 826 a(04)p
+260 868 V 283 w Fb(Q\007)77 b(P)32 b Fd(=)d Fc(r)45 b
+Fd(\(10\))17 b(re)p 1006 868 V 161 963 V 187 922 a(05)p
+260 963 V 286 w Fb(S\007)74 b(R)32 b Fd(=)d Fc(z)45 b
+Fd(\(11\))17 b(ze)p 1006 963 V 161 1059 V 187 1017 a(06)p
+260 1059 V 286 w Fb(U\007)74 b(T)32 b Fd(=)16 b Fc(^z)32
+b Fd(\(12\))15 b(\024)-23 b(ze)p 1006 1059 V 161 1154
+V 187 1113 a(07)p 260 1154 V 284 w Fb(\361\007)68 b(\360)29
+b Fd(=)g Fc(o)45 b Fd(\(25\))17 b(o)p 1006 1154 V 161
+1250 V 187 1208 a(08)p 260 1250 V 527 1187 a Fb(\030)519
+1208 y(\361)o(\007)641 1187 y(\030)634 1208 y(\360)26
+b Fd(=)16 b Fc(:o)32 b Fd(\(27\))17 b(\177)-24 b(o)p
+1006 1250 V 161 1345 V 187 1304 a(09)p 260 1345 V 527
+1283 a Fb(\014)519 1304 y(\361)o(\007)641 1283 y(\014)634
+1304 y(\360)26 b Fd(=)j Fc(u)45 b Fd(\(26\))17 b(u)p
+1006 1345 V 161 1441 V 187 1399 a(10)p 260 1441 V 530
+1378 a Fb(\027)519 1399 y(\361)o(\007)644 1378 y(\027)634
+1399 y(\360)26 b Fd(=)16 b Fc(:u)32 b Fd(\(28\))18 b(\177)-26
+b(u)p 1006 1441 V 161 1536 V 187 1495 a(11)p 260 1536
+V 526 1475 a Fb(\021)519 1495 y(\361)o(\007)640 1475
+y(\021)634 1495 y(\360)26 b Fd(=)j Fc(w)45 b Fd(\(29\))17
+b(w)o(e)p 1006 1536 V 161 1632 V 187 1590 a(12)p 260
+1632 V 64 w Fb(\005K)318 1602 y(.)402 1590 y(\005J)421
+1602 y(.)430 1590 y(\007)64 b(I)530 1605 y(.)557 1590
+y(\007)52 b(H)644 1605 y(.)686 1590 y Fd(=)29 b Fc(b)45
+b Fd(\(03\))17 b(b)q(e)p 1006 1632 V 161 1727 V 187 1686
+a(13)p 260 1727 V 64 w Fb(\005K)314 1698 y(\022)402 1686
+y(\005J)417 1698 y(\022)430 1686 y(\007)64 b(I)526 1700
+y(\022)557 1686 y(\007)52 b(H)640 1700 y(\022)686 1686
+y Fd(=)29 b Fc(p)45 b Fd(\(04\))17 b(p)q(e)p 1006 1727
+V 161 1823 V 187 1781 a(14)p 260 1823 V 64 w Fb(\005)314
+1759 y(\020)314 1781 y(K)73 b(\005)417 1759 y(\020)417
+1781 y(J)n(\007)526 1764 y(\020)509 1781 y(I)o(\007)640
+1764 y(\020)624 1781 y(H)16 b Fd(=)29 b Fc(t)45 b Fd(\(05\))17
+b(te)p 1006 1823 V 161 1918 V 187 1877 a(15)p 260 1918
+V 64 w Fb(\005)318 1854 y(\011)314 1877 y(K)73 b(\005)421
+1854 y(\011)417 1877 y(J)n(\007)530 1865 y(\011)517 1877
+y(\341)o(\007)644 1854 y(\011)633 1877 y(\340)24 b Fd(=)29
+b Fc(n)45 b Fd(\(23\))17 b(ne)p 1006 1918 V 161 2014
+V 187 1972 a(16)p 260 2014 V 54 w Fb(\005c)53 b(\005b\007)58
+b(a\007)65 b(`)23 b Fd(=)29 b Fc(j)45 b Fd(\(06\))17
+b(je)p 1006 2014 V 161 2109 V 187 2068 a(17)p 260 2109
+V 54 w Fb(\005{)53 b(\005z\007)58 b(y\007)65 b(x)23 b
+Fd(=)16 b Fc(^c)32 b Fd(\(07\))15 b(\024)-23 b(ce)p 1006
+2109 V 162 2111 846 2 v 1089 389 858 2 v 1088 484 2 96
+v 1187 484 V 1227 443 a(1)85 b(2)95 b(3)86 b(4)30 b(=)38
+b(5)g(\()12 b(6)h(\))j(7)p 1946 484 V 1089 486 858 2
+v 1088 581 2 96 v 1114 540 a(18)p 1187 581 V 55 w Fb(\005s)53
+b(\005r\007)59 b(q\007)68 b(p)24 b Fd(=)29 b Fc(x)45
+b Fd(\(08\))17 b(xe)p 1946 581 V 1088 677 V 1114 635
+a(19)p 1187 677 V 64 w Fb(\005K)73 b(\005J\007)f(\371\007)67
+b(\370)23 b Fd(=)29 b Fc(i)45 b Fd(\(31\))17 b(i)p 1946
+677 V 1088 772 V 1114 731 a(20)p 1187 772 V 64 w Fb(\005K)1245
+742 y(\011)1245 749 y(.)1329 731 y(\005J)1348 742 y(\011)1348
+749 y(.)1357 731 y(\007)74 b(\371)1459 762 y(\011)1459
+769 y(.)1477 731 y(\007)68 b(\370)1576 756 y(\011)1576
+763 y(.)1619 731 y Fd(=)29 b Fc(e)45 b Fd(\(30\))17 b(e)p
+1946 772 V 1088 868 V 1114 826 a(21)p 1187 868 V 64 w
+Fb(\005K)1241 838 y(\012)1329 826 y(\005J)1344 838 y(\012)1357
+826 y(\007)74 b(\371)1455 858 y(\012)1477 826 y(\007)68
+b(\370)1572 853 y(\012)1619 826 y Fd(=)29 b Fc(y)45 b
+Fd(\(32\))17 b(y)p 1946 868 V 1088 963 V 1114 922 a(22)p
+1187 963 V 56 w Fb(\005\203)53 b(\005\202\007)f(\201\007)j(\200)17
+b Fd(=)29 b Fc(s)45 b Fd(\(13\))17 b(se)p 1946 963 V
+1088 1059 V 1114 1017 a(23)p 1187 1059 V 56 w Fb(\005\213)53
+b(\005\212\007)f(\211\007)j(\210)17 b Fd(=)f Fc(^s)32
+b Fd(\(14\))14 b(\024)-22 b(se)p 1946 1059 V 1088 1154
+V 1114 1113 a(24)p 1187 1154 V 59 w Fb(\005)1246 1085
+y(\011)1236 1113 y(\253)62 b(\005)1349 1093 y(\011)1339
+1113 y(\252)n(\007)1459 1093 y(\011)1448 1113 y(\251)o(\007)1576
+1082 y(\011)1563 1113 y(\250)24 b Fd(=)16 b Fc(^g)32
+b Fd(\(15\))17 b(\024)-24 b(ge)p 1946 1154 V 1088 1250
+V 1114 1208 a(25)p 1187 1250 V 63 w Fb(\005)1246 1180
+y(\011)1240 1208 y(\257)69 b(\005)1348 1183 y(\011)1340
+1208 y(\256\007)59 b(\363\007)54 b(\362)15 b Fd(=)29
+b Fc(f)45 b Fd(\(16\))17 b(fe)p 1946 1250 V 1088 1345
+V 1114 1304 a(26)p 1187 1345 V 63 w Fb(\005)1241 1276
+y(\020)1240 1304 y(\257)69 b(\005)1344 1278 y(\020)1340
+1304 y(\256\007)f(\365\007)h(\364)24 b Fd(=)29 b Fc(q)45
+b Fd(\(17\))17 b(qe)p 1946 1345 V 1088 1441 V 1114 1399
+a(27)p 1187 1441 V 61 w Fb(\005\273)55 b(\005\272\007)63
+b(\275\007)72 b(\274)25 b Fd(=)k Fc(k)45 b Fd(\(18\))17
+b(k)o(e)p 1946 1441 V 1088 1544 2 104 v 1114 1503 a(28)p
+1187 1544 V 61 w Fb(\005)1244 1461 y(\021)1238 1503 y(\273)55
+b(\005)1344 1461 y(\021)1334 1503 y(\272\007)1455 1461
+y(\021)1445 1503 y(\275)q(\007)1572 1461 y(\021)1565
+1503 y(\274)25 b Fd(=)16 b Fc(~n)32 b Fd(\(20\))17 b
+Fa(\021)r Fd(e)p 1946 1544 V 1088 1640 2 96 v 1114 1598
+a(29)p 1187 1640 V 61 w Fb(\005\303)55 b(\005\302\007)i(\301\007)f
+(\300)17 b Fd(=)29 b Fc(g)45 b Fd(\(19\))17 b(ge)p 1946
+1640 V 1088 1735 V 1114 1694 a(30)p 1187 1735 V 66 w
+Fb(\005\313)74 b(\005\312\007)d(\311\007)i(\310)27 b
+Fd(=)i Fc(l)45 b Fd(\(21\))17 b(le)p 1946 1735 V 1088
+1831 V 1114 1789 a(31)p 1187 1831 V 62 w Fb(\005\323)67
+b(\005\322\007)f(\005\322\007)77 b(\324)32 b Fd(=)d Fc(m)45
+b Fd(\(22\))17 b(me)p 1946 1831 V 1088 1926 V 1114 1885
+a(32)p 1187 1926 V 59 w Fb(\005\353)66 b(\005\352\007)81
+b(\354)1470 1873 y(\007)1566 1885 y(\353)27 b Fd(=)i
+Fc(h)45 b Fd(\(24\))17 b(he)p 1946 1926 V 1088 2022 V
+1114 1980 a(33)p 1187 2022 V 64 w Fb(\005)1242 1956 y(\015)1241
+1980 y(K)73 b(\005)1345 1956 y(\015)1344 1980 y(J)n(\007)247
+b Fd(=)29 b Fc(')45 b Fd(\()k(\))p 1946 2022 V 1088 2117
+V 1114 2076 a(34)p 1187 2117 V 283 w Fb(C)-33 b(C)q(\007)69
+b(B)-32 b(B)24 b Fd(=)16 b Fc(la)32 b Fd(\()49 b(\))p
+1946 2117 V 1089 2119 858 2 v 222 2207 a(1.)24 b(initial)15
+b(shap)q(e)222 2287 y(2.)24 b(medial)14 b(shap)q(e)222
+2367 y(3.)24 b(\014nal)16 b(shap)q(e)222 2447 y(4.)24
+b(isolated)16 b(shap)q(e)222 2528 y(5.)24 b(external)15
+b(enco)q(ding)222 2608 y(6.)24 b(sorting)17 b(p)q(osition)222
+2688 y(7.)24 b(name)1077 2862 y(2)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/language/arabic/arabtex/hebtex.tex b/language/arabic/arabtex/hebtex.tex
index 4e2466cd1c..50324fd946 120000..100644
--- a/language/arabic/arabtex/hebtex.tex
+++ b/language/arabic/arabtex/hebtex.tex
@@ -1 +1,122 @@
-texinput/hebtex.tex \ No newline at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hebtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.tex
+% version 3.11
+% Plain TeX loader for ArabTeX, Hebrew mode
+% 08.09.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally EMail: lagallyk@acm.org
+% Institut fuer Formale
+% Methoden der Informatik TEL: +49-711-7816-392
+% Universitaet Stuttgart FAX: +49-711-7816-370
+% Universitaetsstrasse 38
+% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 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 (at your option) any later version.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \input this file at the beginning of an ArabTeX input file running
+% under Plain TeX. This is an adaptation by Tom Koornwinder of
+% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
+% and modified again to switch to Hebrew mode
+% 16.09.2001
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\message { Plain TeX Hebrew setup for ArabTeX }
+
+\input arabtex.tex % load the ArabTeX package
+
+\makeatletter
+\a@ident {hebtex.tex} {3.11 Plain TeX Hebrew loader for ArabTeX} {08.09.2003}
+
+%\def \pheb {\hebfont }
+
+\iffalse
+\input hebtex.sty % load the Hebrew extension
+\input apatch.sty % load any patches
+\input hepatch.sty % load any patches
+\fi
+
+% commands for font selection:
+
+\font \hclassic = hclassic \relax % fix em and ex
+ \fontdimen5\hclassic =.8\fontdimen2\hclassic
+ \fontdimen6\hclassic =3\fontdimen5\hclassic
+\font \hcaption = hcaption \relax % fix em and ex
+ \fontdimen5\hcaption =.8\fontdimen2\hcaption
+ \fontdimen6\hcaption =3\fontdimen5\hcaption
+ \fontdimen1\hcaption =.2pt \relax
+
+\def \hc {\sethebfont {\hclassic}}
+\def \hp {\sethebfont {\hcaption}}
+
+\all@wcmd \hc \all@wcmd \hp % allow these in Hebrew context
+
+\font \jerusalem = jerusalem \relax
+\font \Jerusalem = Jerusalem \relax
+\font \OldJaffa = OldJaffa \relax
+\font \DeadSea = DeadSea \relax
+\font \TelAviv = TelAviv \relax
+
+\def \jm {\sethebfont {\jerusalem}}
+\def \Jm {\sethebfont {\Jerusalem}}
+\def \oj {\sethebfont {\OldJaffa}}
+\def \ds {\sethebfont {\DeadSea}}
+\def \ta {\sethebfont {\TelAviv}} % add others as required
+
+\all@wcmd \ds \all@wcmd \oj \all@wcmd \jm \all@wcmd \ta \all@wcmd \Jm
+
+\font \smold = shlm_old \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmold {\sethebfont {\smold}}
+
+\font \smscr = shlm_scr \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmscr {\sethebfont {\smscr}}
+
+\font \smstk = shlm_stk \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmstk {\sethebfont {smstk}}
+
+\all@wcmd \shlmold \all@wcmd \shlmscr \all@wcmd \shlmstk
+
+\def \fr {\sethebfont {fr}}
+\def \frbx {\sethebfont {frbx}}
+\def \frsl {\sethebfont {frsl}}
+
+\all@wcmd \fr \all@wcmd \frbx \all@wcmd \frsl
+
+\def \crml {\sethebfont {crml10}% fix ex
+ \fontdimen5\font =\fontdimen2\font }
+\def \crmlsl {\sethebfont {crmlsl10}% fix ex
+ \fontdimen5\font =\fontdimen2\font }
+
+\all@wcmd \crml \all@wcmd \crmlsl
+%\makeatother
+
+\input hebtex.sty % load the Hebrew extension
+\input apatch.sty % load any patches
+\input hepatch.sty % load any patches
+
+\hc % define a default Hebrew font choose one !
+%\jm % define a default Hebrew font
+%\ds % define a default Hebrew font
+%\ta % define a default Hebrew font
+%\oj % define a default Hebrew font
+%\hp % define a default Hebrew font
+%\shlmold % define a default Hebrew font
+%\shlmscr % define a default Hebrew font
+%\shlmstk % define a default Hebrew font
+%\fr % define a default Hebrew font
+%\frbx % define a default Hebrew font
+%\frsl % define a default Hebrew font
+%\crml % define a default Hebrew font
+%\crmlsl % define a default Hebrew font
+
+\sethebrew % switch to Hebrew mode
+\makeatother
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/hepatch.sty b/language/arabic/arabtex/hepatch.sty
index 6f958eea84..cd85a8d423 120000..100644
--- a/language/arabic/arabtex/hepatch.sty
+++ b/language/arabic/arabtex/hepatch.sty
@@ -1 +1,37 @@
-texinput/hepatch.sty \ No newline at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hepatch.sty
+% ArabTeX, Hebrew mode
+% last minute corrections
+% see \hversion, \hdatum and \hlevel at the end of the file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is just another *.sty file
+% you do not have to do any manual patching
+% just put this file onto the TEXINPUT path
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = 11
+
+\newtoks \hversion \newtoks \hdatum \hversion = {3.10}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% presently no patches
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\hdatum = {17.09.2001} \def \hlevel {-}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hepatch.sty}
+ {\the\hversion \hlevel \space patches for Hebrew} {\the\hdatum}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`\@ = \patchatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/mfinput/hcaption.mf b/language/arabic/arabtex/mfinput/hcaption.mf
index 4ddaccfd0b..9444665223 100644
--- a/language/arabic/arabtex/mfinput/hcaption.mf
+++ b/language/arabic/arabtex/mfinput/hcaption.mf
@@ -1,28 +1,16 @@
-%(c) 1990,91 by Joel M. Hoffman
-
+%(c) 1990,91,2022 by Joel M. Hoffman
+% You may freely use, modify and/or distribute this file.
+%
%hcaption. Modernized Fancy Classical Hebrew font. Version 0.9.
%calls the file base.
%last update: 5/15/91 by JMH
% modified for use with ArabTeX: 5/25/96 Klaus Lagally
% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL
+% changed license to all-permissive: 2022/06/08 Karl Berry (per Joel)
%This calls the file ``hcbase_pc'' to create a slanted, elongated Hebrew font
%for use in captions. See that file for more information.
-%Use of this material in a commercial venture of any sort requires
-%permission from me. Otherwise, you are free to use this for any
-%legal, non-destructive purpose. If you find this font useful, a
-%contribution to charity will be most appreciated.
-%
-%Send comments or complaints to:
-%
-%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
-%CompuServe: 72700,402 -or- 72700.402@compuserve.com
-%SNAIL: Joel M. Hoffman
-% 19 Hillcrest Lane
-% Rye, NY 10580
-% U.S.A.
-
if unknown mode:
mode:=localfont; fi
mode_setup;
diff --git a/language/arabic/arabtex/mfinput/hcbase.mf b/language/arabic/arabtex/mfinput/hcbase.mf
index 1ff4cae671..6ea5a70874 100644
--- a/language/arabic/arabtex/mfinput/hcbase.mf
+++ b/language/arabic/arabtex/mfinput/hcbase.mf
@@ -1,8 +1,10 @@
-%(c) 1990,91 by Joel M. Hoffman
+%(c) 1990,91,2022 by Joel M. Hoffman
+% You may freely use, modify and/or distribute this file.
%base for hclassic and hcaption. Version 0.9.
%The files hclassic.mf and hcaption.mf call this file.
%updated 5/15/91 by JMH
+% changed license to all-permissive: 2022/06/08 Karl Berry (per Joel)
%This is my first MF attempt, so a lot of this may seem silly. If so,
%please let me know. Some letters still contain bugs: _ayin_, _shin_,
@@ -16,26 +18,12 @@
%purpose dot (for use in _shin_ vs. _sin_, among others). The files
%dots.tex and vowels.tex contain macros for using the vowels.
%
-%Use of this material in a commercial venture of any sort requires
-%permission from me. Otherwise, you are free to use this for any
-%legal, non-destructive purpose. If you find this font useful, a
-%contribution to charity will be most appreciated.
+%If you find this font useful, a contribution to charity will be most
+%appreciated.
%
%Because of the bugs and the lack of punctuation, I have numbered this
%version 0.9. If you fix the bugs or have time to add the necessary
%punctuation, please let me know!
-%
-%Send comments or complaints to:
-%
-%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
-%CompuServe: 72700,402 -or- 72700.402@compuserve.com
-% new : joel@wam.umd.edu (Joel M. Hoffman)
-
-%SNAIL: Joel M. Hoffman
-% 19 Hillcrest Lane
-% Rye, NY 10580
-% U.S.A.
-
beginchar("-",.7let_width#,let_height#,0); "hyphen";
diff --git a/language/arabic/arabtex/mfinput/hclassic.mf b/language/arabic/arabtex/mfinput/hclassic.mf
index 4d54e8dd0e..e2a0b75254 100644
--- a/language/arabic/arabtex/mfinput/hclassic.mf
+++ b/language/arabic/arabtex/mfinput/hclassic.mf
@@ -1,29 +1,16 @@
-%(c) 1990,91 by Joel M. Hoffman
+%(c) 1990,91,2022 by Joel M. Hoffman
+% You may freely use, modify and/or distribute this file.
%hclassic. Modernized Classical Hebrew font. Version 0.9.
%calls the file base.
%last update: 5/15/91 by JMH
% modified for use with ArabTeX: 5/25/96 Klaus Lagally
% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL
+% changed license to all-permissive: 2022/06/08 Karl Berry (per Joel)
%This calls the file ``hcbase_pc'' to create a general purpose classical
%Hebrew font. See that file for more information.
-%Use of this material in a commercial venture of any sort requires
-%permission from me. Otherwise, you are free to use this for any
-%legal, non-destructive purpose. If you find this font useful, a
-%contribution to charity will be most appreciated.
-%
-%Send comments or complaints to:
-%
-%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
-%CompuServe: 72700,402 -or- 72700.402@compuserve.com
-%SNAIL: Joel M. Hoffman
-% 19 Hillcrest Lane
-% Rye, NY 10580
-% U.S.A.
-
-
mode_def testing=
pixels_per_inch:=300*4;
blacker:=.1;
diff --git a/language/arabic/arabtex/readme.txt b/language/arabic/arabtex/readme.txt
index eef60b15d9..a0a8b08f6c 100644
--- a/language/arabic/arabtex/readme.txt
+++ b/language/arabic/arabtex/readme.txt
@@ -1,92 +1,92 @@
-README 23.10.2003
---------------------------------------------------------------------------
- ArabTeX Version 3
- =================
---------------------------------------------------------------------------
- Last changes: Version 3.11d, 23.10.2003
---------------------------------------------------------------------------
- The set of files, of which THIS file is supposed to be part of,
- contains a package extending the capabilities of TeX/LaTeX to
- generate the arabic writing from an ASCII transliteration for
- texts in several languages using the arabic script. Several other
- common encodings are also supported.
-
- The package is available in packed form as "arabtex.zip" and
- "arabtex.tgz". Depending on the server there may be also the
- unpacked files; check for the latest version of "apatch.sty"!
-
- The following ASCII files give more detailed information:
-
- arabtex.doc : a short introduction (rather out of date)
- arabtex.faq : answers to some Frequently Asked Questions
- (updated as necessary)
- changes.txt : release history, new features, and known bugs
- (updated as necessary)
- changes2.txt : older release history up to version 3.00
- install.txt : list of available files, and installation notes
- apatch.sty : last minute corrections; put this file onto the
- TEXINPUT path; it will patch automatically.
- (updated as necessary)
-
- There are also various additional documentation files.
- A subdirectory "REPORT", if still present, is OBSOLETE.
-
- There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
- Version 2 was the first complete release accompanied by a manual,
- but is no more being maintained.
-
- Version 3 is an upward compatible extension of Version 2 with
- many new features, e.g. the possibility to read input files in the
- ASMO 449, ISO 8859-6, and UTF-8 Codes, and many new commands for
- better formatting of Arabic text, or catering for historic writing
- styles. Versions from 3.05 onward contain a package to process
- Hebrew, and provide long right-to-left insertions. For details,
- consult the manual and the ASCII file "readme.305".
-
- ArabTeX is copyrighted by the author. If you use the system for
- scientific work please give appropriate credit to the software
- and the author (e.g. in the colophon of a monograph.) We also
- appreciate a complimentary copy of any scientific work produced
- with ArabTeX.
-
- ArabTeX may be redistributed and/or modified under the terms
- of the LaTeX Project Public License distributed from CTAN
- archives in the directory "macros/latex/base/lppl.txt"; either
- version 1 of the License, or (at your option) any later version.
-
- ArabTeX is an experimental system and supposed to change without
- prior notice. Whoever will use it does so at her/his/its own risk.
- We cannot take any responsibility on correct function, suitability
- for whatever purpose, or correct documentation.
-
- If you have any complaints or suggestions, please forward them to
- the author. We shall consider any reasonable suggestion, but we
- will use our own judgment on any changes, and our resources are
- severely limited.
-
- If problems turn up while running ArabTeX, please check first at
- "ftp.informatik.uni-stuttgart.de" whether there is a new version,
- or whether there are any new corrections in "apatch.sty". If the
- problem goes away with the new version, please inform the server
- you got ArabTeX from; otherwise send a bug report to the author.
-
- The reference site "ftp.informatik.uni-stuttgart.de" always holds
- the current version. We know that the CTAN servers "ftp.tex.ac.uk",
- "ctan.tug.org", and "ftp.dante.de" mirror this site and update on
- a regular schedule.
-
- An empty E-Mail message to "arabtex@informatik.uni-stuttgart.de"
- will produce a current status report.
-
---------------------------------------------------------------------------
- Prof. Klaus Lagally
- Institut fuer Informatik
- Universitaet Stuttgart
- Breitwiesenstrasse 20-22
- D-70565 Stuttgart
- GERMANY
-
- lagally@informatik.uni-stuttgart.de
---------------------------------------------------------------------------
- Copyright (c) 1990 - 2002, Klaus Lagally
---------------------------------------------------------------------------
+README 23.10.2003
+--------------------------------------------------------------------------
+ ArabTeX Version 3
+ =================
+--------------------------------------------------------------------------
+ Last changes: Version 3.11d, 23.10.2003
+--------------------------------------------------------------------------
+ The set of files, of which THIS file is supposed to be part of,
+ contains a package extending the capabilities of TeX/LaTeX to
+ generate the arabic writing from an ASCII transliteration for
+ texts in several languages using the arabic script. Several other
+ common encodings are also supported.
+
+ The package is available in packed form as "arabtex.zip" and
+ "arabtex.tgz". Depending on the server there may be also the
+ unpacked files; check for the latest version of "apatch.sty"!
+
+ The following ASCII files give more detailed information:
+
+ arabtex.doc : a short introduction (rather out of date)
+ arabtex.faq : answers to some Frequently Asked Questions
+ (updated as necessary)
+ changes.txt : release history, new features, and known bugs
+ (updated as necessary)
+ changes2.txt : older release history up to version 3.00
+ install.txt : list of available files, and installation notes
+ apatch.sty : last minute corrections; put this file onto the
+ TEXINPUT path; it will patch automatically.
+ (updated as necessary)
+
+ There are also various additional documentation files.
+ A subdirectory "REPORT", if still present, is OBSOLETE.
+
+ There was a prototype, ArabTeX Version 1, which is now OBSOLETE.
+ Version 2 was the first complete release accompanied by a manual,
+ but is no more being maintained.
+
+ Version 3 is an upward compatible extension of Version 2 with
+ many new features, e.g. the possibility to read input files in the
+ ASMO 449, ISO 8859-6, and UTF-8 Codes, and many new commands for
+ better formatting of Arabic text, or catering for historic writing
+ styles. Versions from 3.05 onward contain a package to process
+ Hebrew, and provide long right-to-left insertions. For details,
+ consult the manual and the ASCII file "readme.305".
+
+ ArabTeX is copyrighted by the author. If you use the system for
+ scientific work please give appropriate credit to the software
+ and the author (e.g. in the colophon of a monograph.) We also
+ appreciate a complimentary copy of any scientific work produced
+ with ArabTeX.
+
+ ArabTeX may be redistributed and/or modified under the terms
+ of the LaTeX Project Public License distributed from CTAN
+ archives in the directory "macros/latex/base/lppl.txt"; either
+ version 1 of the License, or (at your option) any later version.
+
+ ArabTeX is an experimental system and supposed to change without
+ prior notice. Whoever will use it does so at her/his/its own risk.
+ We cannot take any responsibility on correct function, suitability
+ for whatever purpose, or correct documentation.
+
+ If you have any complaints or suggestions, please forward them to
+ the author. We shall consider any reasonable suggestion, but we
+ will use our own judgment on any changes, and our resources are
+ severely limited.
+
+ If problems turn up while running ArabTeX, please check first at
+ "ftp.informatik.uni-stuttgart.de" whether there is a new version,
+ or whether there are any new corrections in "apatch.sty". If the
+ problem goes away with the new version, please inform the server
+ you got ArabTeX from; otherwise send a bug report to the author.
+
+ The reference site "ftp.informatik.uni-stuttgart.de" always holds
+ the current version. We know that the CTAN servers "ftp.tex.ac.uk",
+ "ctan.tug.org", and "ftp.dante.de" mirror this site and update on
+ a regular schedule.
+
+ An empty E-Mail message to "arabtex@informatik.uni-stuttgart.de"
+ will produce a current status report.
+
+--------------------------------------------------------------------------
+ Prof. Klaus Lagally
+ Institut fuer Informatik
+ Universitaet Stuttgart
+ Breitwiesenstrasse 20-22
+ D-70565 Stuttgart
+ GERMANY
+
+ lagally@informatik.uni-stuttgart.de
+--------------------------------------------------------------------------
+ Copyright (c) 1990 - 2002, Klaus Lagally
+--------------------------------------------------------------------------
diff --git a/language/arabic/arabtex/saw.sty b/language/arabic/arabtex/saw.sty
index 5ca630d456..717e479a27 100644
--- a/language/arabic/arabtex/saw.sty
+++ b/language/arabic/arabtex/saw.sty
@@ -1,43 +1,43 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% saw.sty
-% macros for SAW and ALS
-% only available in one size
-% 22.06.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {saw.sty}{1.00 SAW and ALS } {22.06.2006}
-
-\def \SAW {% for Roman mode
-% .salla all-ah `alayhi wa-sallam
-\setbox0 \hbox {\setarab \novocalize \tiny
-\vbox {\hbox {\<.sall_A \hskip-0.6em al-ll_ahu >}%
-\nointerlineskip \vskip -1.5ex
-\hbox {\<wa-salama >}%
-\nointerlineskip \vskip -2.2ex
-\hbox {\hskip .4em \<`alayBBhi >\,}}}%
-\dp0 0pt \leavevmode \lower .20\ht0 \box0 }
-
-\def \ALS {% for Roman mode
-% `alayhi al-ssalAm
-\setbox0 \hbox {\setarab \novocalize \tiny
-\vbox {\hbox {\,\<`alaByBhi >}%
-\nointerlineskip \vskip -1.0ex
-\hbox {\<al-ssalAm >\,}}}%
-\leavevmode \box0 }
-
-\def \a@c@SAW {% for Arabic paragraph mode
-\nospace \putwordb@x {\SAW \hskip -0.3em }\test@token }
-
-\def \a@c@ALS {% for Arabic paragraph mode
-\nospace \putwordb@x {\ALS \hskip -0.3em }\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% saw.sty
+% macros for SAW and ALS
+% only available in one size
+% 22.06.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {saw.sty}{1.00 SAW and ALS } {22.06.2006}
+
+\def \SAW {% for Roman mode
+% .salla all-ah `alayhi wa-sallam
+\setbox0 \hbox {\setarab \novocalize \tiny
+\vbox {\hbox {\<.sall_A \hskip-0.6em al-ll_ahu >}%
+\nointerlineskip \vskip -1.5ex
+\hbox {\<wa-salama >}%
+\nointerlineskip \vskip -2.2ex
+\hbox {\hskip .4em \<`alayBBhi >\,}}}%
+\dp0 0pt \leavevmode \lower .20\ht0 \box0 }
+
+\def \ALS {% for Roman mode
+% `alayhi al-ssalAm
+\setbox0 \hbox {\setarab \novocalize \tiny
+\vbox {\hbox {\,\<`alaByBhi >}%
+\nointerlineskip \vskip -1.0ex
+\hbox {\<al-ssalAm >\,}}}%
+\leavevmode \box0 }
+
+\def \a@c@SAW {% for Arabic paragraph mode
+\nospace \putwordb@x {\SAW \hskip -0.3em }\test@token }
+
+\def \a@c@ALS {% for Arabic paragraph mode
+\nospace \putwordb@x {\ALS \hskip -0.3em }\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/texinput/abidir.sty b/language/arabic/arabtex/texinput/abidir.sty
index 2b390e4609..13e0d5b289 100644
--- a/language/arabic/arabtex/texinput/abidir.sty
+++ b/language/arabic/arabtex/texinput/abidir.sty
@@ -1,240 +1,240 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-% ArabTeX macros for bidirectional linebreaking
-% 22.08.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \a@RL \undefined \else \xpa \endinput \fi
-
-\a@ident {abidir.sty} {3.11 bidirectional linebreaking} {22.08.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% <LR insertion inside Rtext>
-%\def \test@insert #1>{\a@Linsert {#1}}
-
-% \LR{#1} = LR insertion inside Rtext
-\def \a@c@LR {\unarab@codes \a@Linsert }
-\let \a@c@L \a@c@LR % usage: \L {LR text}
-
-% \LR{#1} = LR insertion inside Ltext: trivial
-\let \LR \relax \let \L \relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% \RL{#1} = RL insertion inside Ltext
-\def \RL {\protect \a@RL }
-\let \R \RL % usage: \R {RL text}
-
-% \RL{#1} = RL insertion inside Rtext: trivial
-\def \a@c@RL #1{\test@token #1 } \let \a@c@R \a@c@RL
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \goodpar {% usage: \goodpar {Roman paragraphs}
-% put around one or more paragraphs if the linebreaking is bad
-% caution: may lead to storage overflow
-\dimen0 \prevdepth \setbox0 \vbox \bgroup \prevdepth \dimen0
-\def \par {\egroup \endgraf \goodpar x}% dummy character
-\aftergroup \g@@dpar \let \next=}
-
-\def \g@@dpar {\unvbox0 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen \a@Llength \newdimen \a@Lwidth \newdimen \a@Lindent
-\newdimen \a@Rlength \newdimen \a@Rheight
-\newbox \a@Rboxi \newbox \a@Rboxii \newbox \Rinsertb@x
-\newbox \a@Rdummyi \newbox \a@Rdummyii \newbox \Linsertb@x
-\newbox \a@spacebox \newif \ifR@split \newcount \a@lines
-
-\def \ins@skip {\hskip \z@ plus 0.1em }% before and after insertion
-
-\def \a@vglue {\z@ plus 2ex }% glue at top of the insertion \vbox
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@RL {% RTL insertion inside LRtext
-\ifaRL \else \aRLtrue
- \let \a@RLpar \par % prepare for normal baselines
- \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
- \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
-\fi \lineskiplimit -.9\baselineskip % enforce uniform baselines
-\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
-
-\def \a@@Rinsert #1{% RL insertion inside Ltext
-\ifshow \a@@verb {#1}\fi % verbating listing
-\ifarab \a@Rinsert {#1} \fi % arabic writing
-\iftrans \set@transfont \trans@text #1 \end \/\fi
-\ifnum \tracingarab > \@ne \message {>}\fi
-\unskip \egroup }
-
-\def \a@Rinsert #1{% put a sequence of RL words into Ltext
-\leavevmode % go to hmode if not there already
-\ifinner \a@sequence {#1}% inside a \hbox: append
-\else \a@Rsplit {#1}% splice into the current paragraph
-\fi }
-
-\def \a@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \def \next@command {\test@special}\transfalse \showfalse
-\ifspread \else \def \arab@space {\space }% no infinite stretch !!
- \def \tat@skip {0.04ex plus 0.5ex }%
-\fi
- \a@Rdimen {#1}% get the length of the first 2 RL words
-\ifdim \wd\a@Rboxii = \z@
- \unhbox\a@Rboxi % done with the insertion
-\else \a@Ldimen % get the dimensions of the last line
- \a@Rtobox {#1}% pack the insertion lines into a \vbox
- \a@Runpack % unpack and splice into the current paragraph
-\fi \egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@Rdimen #1{% get the dimensions of the first two words
-\setbox\a@Rboxii \hbox {}\setbox\a@Rdummyii \box\a@Rboxii
-\a@Rfirst #1 \to \a@wordi \a@Rrest
-\xpa \a@Rwordtobox \a@wordi \to \a@Rboxi \a@Rdummyi
-\ifx \space \a@Rrest \else
-\ifx \relax \a@Rrest \relax \else
-\xpa \a@Rfirst \a@Rrest \to \a@wordii \a@Rrest
-\xpa \a@Rwordtobox \a@wordii \to \a@Rboxii \a@Rdummyii
-\fi\fi }
-
-\def \a@Rwordtobox #1\to #2#3{% Rword to \box#2, Rdummy to \box#3
-\a@sequence {#1}\setbox#2 \lastbox
-\setbox#3\hbox to \wd#2{\hfill }\ht#3\ht#2\dp#3\z@}
-
-{\catcode `\^^a0 12
-\gdef \a@Rfirst #1 #2\to #3#4{% split off first word
-\ifx \relax #1\relax \a@Rfirsti #2\to #3#4\else
-\ifx \relax #2\relax \a@Rfirstii #1^^a0\to #3#4\else
-\def #3{#1}\def #4{#2}\fi\fi }
-
-\gdef \a@Rfirstii #1^^a0#2\to #3#4{% split off first word
-\ifx \relax #1\relax \a@Rfirstiii #2\to #3#4\else
-\def #3{#1}\def #4{#2 }\fi }
-}% catcode ^^a0
-
-\def \a@Rfirsti #1\to #2#3{% split off leading space
-\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }%
-\else \a@Rfirst #1\to #2#3\fi }
-
-\def \a@Rfirstiii #1\to #2#3{% split off leading RL space
-\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }%
-\else \a@Rfirstii #1\to #2#3\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@Ldimen {% get the dimensions of the preceding line
-\setbox\a@spacebox \hbox {\arab@space}\tolerance 10000
-\R@splitfalse \leavevmode
-\penalty 0
-\copy \a@Rdummyi \arab@space \copy \a@Rdummyii
-\parfillskip \z@ plus 1fill \relax \tr@ceoff
-$$\global \a@Llength \predisplaysize % dummy display
-\global \a@Lwidth \displaywidth \global \a@Lindent \displayindent
-\hbox to \a@Lwidth {}\postdisplaypenalty \@M
-$$ {\endgraf }% keep paragraph parameters
-\tr@ceon \a@lines \prevgraf \advance \a@lines -3
-\prevgraf \a@lines \prevdepth -\baselineskip
-\a@Ladjust % update \a@Llength and \a@Lindent
-\ifinner \a@killdisplay \else \a@skipback \fi }
-
-\def \a@Ladjust {% correct \a@Llength and \a@Lindent
-\ifdim \a@Llength = \maxdimen \a@Llength \a@Lwidth % flexible line
-\else \advance \a@Llength -2em \advance \a@Llength -\a@Lindent
-\fi
-\advance \a@Llength -\leftskip \advance \a@Llength -\wd\a@Rdummyii
-\ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth
- \advance \a@Llength -\leftskip \advance \a@Llength -\rightskip
-\else \advance \a@Llength -\wd\a@spacebox
-\fi \advance \a@Llength -\wd\a@Rdummyi
-\ifnum \prevgraf = 1
- \ifdim \z@ > \hangindent \advance \a@Llength -\hangindent
- \else \advance \a@Llength \hangindent
- \fi
-\else \ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth
- \fi
-\fi }
-
-\def \a@killdisplay {% vbox: get back to the old position
-\unskip \unskip \unpenalty \setbox0 \lastbox % get rid of garbage
-\ifR@split \unskip \unskip \unpenalty \setbox0 \lastbox \fi
-\unskip \unskip \unpenalty \setbox0 \lastbox % last line
-\dimen0 \baselineskip \advance \dimen0 -\ht0
-\advance \dimen0 -\lastskip \prevdepth \dimen0
-\unskip \vskip -\parskip
-\noindent \unhbox0 % open and trim last line
-\unskip \unskip \unpenalty \setbox0 \lastbox
-\ifR@split \else \unskip \setbox0 \lastbox \fi }
-
-\def \a@skipback {% paragraph: get back to the old position
-\vskip -\belowdisplayskip \vskip -3\baselineskip
-\vskip -\abovedisplayskip \vskip -\parskip
-\ifR@split \ifdim \z@ > \lineskiplimit \vskip -\baselineskip \else
-\vskip -\ht\a@Rdummyii \vskip -\dp\a@Rboxi \vskip -\lineskip
-\fi\fi \noindent \arab@strut \nobreak \hskip \a@Llength }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@normpen #1{% prevent penalty 10000
-\ifnum #1= 10000 #1= 9999 \fi }
-
-\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x
-\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth
-\a@normpen \widowpenalty \a@normpen \clubpenalty
-\leftskip \z@ \rightskip \z@
-\parfillskip \z@ plus 1fil \relax \parskip \z@
-\let \a@@kern \a@kern \let \a@@mkern \a@mkern
-\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}%
-\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000
-\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse
-\test@token #1 \end \unskip \unskip \vskip \a@vglue
-\hbox {\box\lineb@x \hfill }}}
-
-\def \a@Runpack {\ins@skip % unpack all lines from the insertion
-\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
-\ifvbox \Rinsertb@x \repeat \unpenalty \ins@skip }
-
-\def \a@Rgetline {% unpack the next line globally to \box \tempb@x
-{\vbadness 10000 \splittopskip \a@vglue
-\dimen0 \baselineskip \advance \dimen0 1ex
-\setbox \tempb@x \vsplit \Rinsertb@x to \dimen0
-\setbox0 \vbox {\unvbox \tempb@x \setbox2 \lastbox \unhbox2
-\unskip \unskip \unpenalty \global \setbox \tempb@x \lastbox }}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@Linsert #1{% splice Ltext into RL paragraph
-\putwordb@x {\ins@skip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
-\putwordb@x {\ins@skip }\a@spacetrue \arab@codes
-\tracingmacros 0
-\test@token }
-
-\def \a@@Linsert #1{% splice Ltext into RL paragraph
-\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox
-{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne
-\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil
-\vskip \a@vglue \everypar {}\parskip \z@
-\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking
-\noindent \null \hskip 0pt plus .001fil \relax #1
-\clubpenalty 0 \widowpenalty 0 \tolerance 10000
-\endgraf \fontdimen4\font \dimen2 }}
-
-\def \a@Lunpack {% unpack all lines from the insertion
-\loop \a@Lgetline \putwordb@x
-{\unhbox \tempb@x \unskip \unskip }\a@spacefalse
-\ifvbox \Linsertb@x \put@line \a@spacefalse \repeat }
-
-\def \a@Lgetline {% unpack the next line globally to \box \tempb@x
-{\vbadness 10000 \splittopskip \a@vglue \dimen0 \baselineskip
-\setbox \tempb@x \vsplit \Linsertb@x to \dimen0
-\setbox0 \vbox {\unvbox \tempb@x \global \setbox \tempb@x \lastbox }}}
-
-%\testoutput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+% ArabTeX macros for bidirectional linebreaking
+% 22.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \a@RL \undefined \else \xpa \endinput \fi
+
+\a@ident {abidir.sty} {3.11 bidirectional linebreaking} {22.08.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% <LR insertion inside Rtext>
+%\def \test@insert #1>{\a@Linsert {#1}}
+
+% \LR{#1} = LR insertion inside Rtext
+\def \a@c@LR {\unarab@codes \a@Linsert }
+\let \a@c@L \a@c@LR % usage: \L {LR text}
+
+% \LR{#1} = LR insertion inside Ltext: trivial
+\let \LR \relax \let \L \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \RL{#1} = RL insertion inside Ltext
+\def \RL {\protect \a@RL }
+\let \R \RL % usage: \R {RL text}
+
+% \RL{#1} = RL insertion inside Rtext: trivial
+\def \a@c@RL #1{\test@token #1 } \let \a@c@R \a@c@RL
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \goodpar {% usage: \goodpar {Roman paragraphs}
+% put around one or more paragraphs if the linebreaking is bad
+% caution: may lead to storage overflow
+\dimen0 \prevdepth \setbox0 \vbox \bgroup \prevdepth \dimen0
+\def \par {\egroup \endgraf \goodpar x}% dummy character
+\aftergroup \g@@dpar \let \next=}
+
+\def \g@@dpar {\unvbox0 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen \a@Llength \newdimen \a@Lwidth \newdimen \a@Lindent
+\newdimen \a@Rlength \newdimen \a@Rheight
+\newbox \a@Rboxi \newbox \a@Rboxii \newbox \Rinsertb@x
+\newbox \a@Rdummyi \newbox \a@Rdummyii \newbox \Linsertb@x
+\newbox \a@spacebox \newif \ifR@split \newcount \a@lines
+
+\def \ins@skip {\hskip \z@ plus 0.1em }% before and after insertion
+
+\def \a@vglue {\z@ plus 2ex }% glue at top of the insertion \vbox
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@RL {% RTL insertion inside LRtext
+\ifaRL \else \aRLtrue
+ \let \a@RLpar \par % prepare for normal baselines
+ \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
+ \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
+\fi \lineskiplimit -.9\baselineskip % enforce uniform baselines
+\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
+
+\def \a@@Rinsert #1{% RL insertion inside Ltext
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1} \fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+\def \a@Rinsert #1{% put a sequence of RL words into Ltext
+\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\def \a@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \def \next@command {\test@special}\transfalse \showfalse
+\ifspread \else \def \arab@space {\space }% no infinite stretch !!
+ \def \tat@skip {0.04ex plus 0.5ex }%
+\fi
+ \a@Rdimen {#1}% get the length of the first 2 RL words
+\ifdim \wd\a@Rboxii = \z@
+ \unhbox\a@Rboxi % done with the insertion
+\else \a@Ldimen % get the dimensions of the last line
+ \a@Rtobox {#1}% pack the insertion lines into a \vbox
+ \a@Runpack % unpack and splice into the current paragraph
+\fi \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@Rdimen #1{% get the dimensions of the first two words
+\setbox\a@Rboxii \hbox {}\setbox\a@Rdummyii \box\a@Rboxii
+\a@Rfirst #1 \to \a@wordi \a@Rrest
+\xpa \a@Rwordtobox \a@wordi \to \a@Rboxi \a@Rdummyi
+\ifx \space \a@Rrest \else
+\ifx \relax \a@Rrest \relax \else
+\xpa \a@Rfirst \a@Rrest \to \a@wordii \a@Rrest
+\xpa \a@Rwordtobox \a@wordii \to \a@Rboxii \a@Rdummyii
+\fi\fi }
+
+\def \a@Rwordtobox #1\to #2#3{% Rword to \box#2, Rdummy to \box#3
+\a@sequence {#1}\setbox#2 \lastbox
+\setbox#3\hbox to \wd#2{\hfill }\ht#3\ht#2\dp#3\z@}
+
+{\catcode `\^^a0 12
+\gdef \a@Rfirst #1 #2\to #3#4{% split off first word
+\ifx \relax #1\relax \a@Rfirsti #2\to #3#4\else
+\ifx \relax #2\relax \a@Rfirstii #1^^a0\to #3#4\else
+\def #3{#1}\def #4{#2}\fi\fi }
+
+\gdef \a@Rfirstii #1^^a0#2\to #3#4{% split off first word
+\ifx \relax #1\relax \a@Rfirstiii #2\to #3#4\else
+\def #3{#1}\def #4{#2 }\fi }
+}% catcode ^^a0
+
+\def \a@Rfirsti #1\to #2#3{% split off leading space
+\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }%
+\else \a@Rfirst #1\to #2#3\fi }
+
+\def \a@Rfirstiii #1\to #2#3{% split off leading RL space
+\ifx \relax #1\relax \def #2{\relax }\def #3{\relax }%
+\else \a@Rfirstii #1\to #2#3\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@Ldimen {% get the dimensions of the preceding line
+\setbox\a@spacebox \hbox {\arab@space}\tolerance 10000
+\R@splitfalse \leavevmode
+\penalty 0
+\copy \a@Rdummyi \arab@space \copy \a@Rdummyii
+\parfillskip \z@ plus 1fill \relax \tr@ceoff
+$$\global \a@Llength \predisplaysize % dummy display
+\global \a@Lwidth \displaywidth \global \a@Lindent \displayindent
+\hbox to \a@Lwidth {}\postdisplaypenalty \@M
+$$ {\endgraf }% keep paragraph parameters
+\tr@ceon \a@lines \prevgraf \advance \a@lines -3
+\prevgraf \a@lines \prevdepth -\baselineskip
+\a@Ladjust % update \a@Llength and \a@Lindent
+\ifinner \a@killdisplay \else \a@skipback \fi }
+
+\def \a@Ladjust {% correct \a@Llength and \a@Lindent
+\ifdim \a@Llength = \maxdimen \a@Llength \a@Lwidth % flexible line
+\else \advance \a@Llength -2em \advance \a@Llength -\a@Lindent
+\fi
+\advance \a@Llength -\leftskip \advance \a@Llength -\wd\a@Rdummyii
+\ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth
+ \advance \a@Llength -\leftskip \advance \a@Llength -\rightskip
+\else \advance \a@Llength -\wd\a@spacebox
+\fi \advance \a@Llength -\wd\a@Rdummyi
+\ifnum \prevgraf = 1
+ \ifdim \z@ > \hangindent \advance \a@Llength -\hangindent
+ \else \advance \a@Llength \hangindent
+ \fi
+\else \ifdim \a@Llength = \z@ \R@splittrue \a@Llength \a@Lwidth
+ \fi
+\fi }
+
+\def \a@killdisplay {% vbox: get back to the old position
+\unskip \unskip \unpenalty \setbox0 \lastbox % get rid of garbage
+\ifR@split \unskip \unskip \unpenalty \setbox0 \lastbox \fi
+\unskip \unskip \unpenalty \setbox0 \lastbox % last line
+\dimen0 \baselineskip \advance \dimen0 -\ht0
+\advance \dimen0 -\lastskip \prevdepth \dimen0
+\unskip \vskip -\parskip
+\noindent \unhbox0 % open and trim last line
+\unskip \unskip \unpenalty \setbox0 \lastbox
+\ifR@split \else \unskip \setbox0 \lastbox \fi }
+
+\def \a@skipback {% paragraph: get back to the old position
+\vskip -\belowdisplayskip \vskip -3\baselineskip
+\vskip -\abovedisplayskip \vskip -\parskip
+\ifR@split \ifdim \z@ > \lineskiplimit \vskip -\baselineskip \else
+\vskip -\ht\a@Rdummyii \vskip -\dp\a@Rboxi \vskip -\lineskip
+\fi\fi \noindent \arab@strut \nobreak \hskip \a@Llength }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@normpen #1{% prevent penalty 10000
+\ifnum #1= 10000 #1= 9999 \fi }
+
+\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x
+\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth
+\a@normpen \widowpenalty \a@normpen \clubpenalty
+\leftskip \z@ \rightskip \z@
+\parfillskip \z@ plus 1fil \relax \parskip \z@
+\let \a@@kern \a@kern \let \a@@mkern \a@mkern
+\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}%
+\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000
+\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse
+\test@token #1 \end \unskip \unskip \vskip \a@vglue
+\hbox {\box\lineb@x \hfill }}}
+
+\def \a@Runpack {\ins@skip % unpack all lines from the insertion
+\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
+\ifvbox \Rinsertb@x \repeat \unpenalty \ins@skip }
+
+\def \a@Rgetline {% unpack the next line globally to \box \tempb@x
+{\vbadness 10000 \splittopskip \a@vglue
+\dimen0 \baselineskip \advance \dimen0 1ex
+\setbox \tempb@x \vsplit \Rinsertb@x to \dimen0
+\setbox0 \vbox {\unvbox \tempb@x \setbox2 \lastbox \unhbox2
+\unskip \unskip \unpenalty \global \setbox \tempb@x \lastbox }}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@Linsert #1{% splice Ltext into RL paragraph
+\putwordb@x {\ins@skip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
+\putwordb@x {\ins@skip }\a@spacetrue \arab@codes
+\tracingmacros 0
+\test@token }
+
+\def \a@@Linsert #1{% splice Ltext into RL paragraph
+\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox
+{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne
+\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil
+\vskip \a@vglue \everypar {}\parskip \z@
+\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking
+\noindent \null \hskip 0pt plus .001fil \relax #1
+\clubpenalty 0 \widowpenalty 0 \tolerance 10000
+\endgraf \fontdimen4\font \dimen2 }}
+
+\def \a@Lunpack {% unpack all lines from the insertion
+\loop \a@Lgetline \putwordb@x
+{\unhbox \tempb@x \unskip \unskip }\a@spacefalse
+\ifvbox \Linsertb@x \put@line \a@spacefalse \repeat }
+
+\def \a@Lgetline {% unpack the next line globally to \box \tempb@x
+{\vbadness 10000 \splittopskip \a@vglue \dimen0 \baselineskip
+\setbox \tempb@x \vsplit \Linsertb@x to \dimen0
+\setbox0 \vbox {\unvbox \tempb@x \global \setbox \tempb@x \lastbox }}}
+
+%\testoutput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/language/arabic/arabtex/texinput/abjad.sty b/language/arabic/arabtex/texinput/abjad.sty
index cbf617018a..19cd089f12 100644
--- a/language/arabic/arabtex/texinput/abjad.sty
+++ b/language/arabic/arabtex/texinput/abjad.sty
@@ -1,68 +1,68 @@
-% abjad.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% defines the command \abjad {#1}
-% to produce the `abjad' rendering of the argument,
-% which must be (or expand within Tex's mouth to)
-% a legal number between 1 and 1999
-% This command works both inside and outside an Arabic environment.
-% 26.04.2003
-% no warranty whatsoever
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \abjatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \abjatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {abjad.sty} {3.11 abjad numerals } {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \abj@d #1{% convert to abjad notation if possible
-\ifnum #1>1999 #1 \else \ifnum #1=0 0 \else
-\ifnum #1>999 \xpa\@bjad \number #1\else
-\ifnum #1>099 \xpa\@bjad \xpa0\number#1\else
-\ifnum #1>009 \xpa\@bjad \xpa0\xpa0\number#1\else
-\xpa\@bjad \xpa0\xpa0\xpa0\number#1%
-\fi\fi\fi\fi\fi }
-
-\def \@bjad #1#2#3#4{% convert to abjad notation
-\ifx #10\else .g\fi
-\ifcase #2 \or q\or r\or ^s\or t\or _t \or _h\or _d\or .d\or .z\fi
-\ifcase #3 \or Y\or k\or l\or m\or n\or s\or `\or f\or .s\fi
-\ifcase #4 \or |A\or .b\or .h-\or d\or h\or w\or z\or .h\or .t\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \abjad #1{% inside a Roman environment
-\edef \the@bjad {\abj@d {#1}}%
-\novocalize \arabtrue \transfalse \RL {\stdcode {\the@bjad }}%
-\iftrans {\set@transfont \ \trans@text #1 \end }\fi }
-
-\def \a@c@abjad #1{% inside an Arabic environment
-\putwordb@x {\transfalse \showfalse \abjad {#1}}%
-\iftrans {\set@transfont \trans@text #1 \end }\fi
-\arab@tail }
-
-\allowarab \the@bjad
-
-% NOTE: \abj@d is fully expandable
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \Abjad #1{\xpa \@Abjad \csname c@#1\endcsname }
-
-\let \@Abjad \abj@d
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode `\@ = \abjatcode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
+% abjad.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% defines the command \abjad {#1}
+% to produce the `abjad' rendering of the argument,
+% which must be (or expand within Tex's mouth to)
+% a legal number between 1 and 1999
+% This command works both inside and outside an Arabic environment.
+% 26.04.2003
+% no warranty whatsoever
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \abjatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \abjatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {abjad.sty} {3.11 abjad numerals } {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \abj@d #1{% convert to abjad notation if possible
+\ifnum #1>1999 #1 \else \ifnum #1=0 0 \else
+\ifnum #1>999 \xpa\@bjad \number #1\else
+\ifnum #1>099 \xpa\@bjad \xpa0\number#1\else
+\ifnum #1>009 \xpa\@bjad \xpa0\xpa0\number#1\else
+\xpa\@bjad \xpa0\xpa0\xpa0\number#1%
+\fi\fi\fi\fi\fi }
+
+\def \@bjad #1#2#3#4{% convert to abjad notation
+\ifx #10\else .g\fi
+\ifcase #2 \or q\or r\or ^s\or t\or _t \or _h\or _d\or .d\or .z\fi
+\ifcase #3 \or Y\or k\or l\or m\or n\or s\or `\or f\or .s\fi
+\ifcase #4 \or |A\or .b\or .h-\or d\or h\or w\or z\or .h\or .t\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \abjad #1{% inside a Roman environment
+\edef \the@bjad {\abj@d {#1}}%
+\novocalize \arabtrue \transfalse \RL {\stdcode {\the@bjad }}%
+\iftrans {\set@transfont \ \trans@text #1 \end }\fi }
+
+\def \a@c@abjad #1{% inside an Arabic environment
+\putwordb@x {\transfalse \showfalse \abjad {#1}}%
+\iftrans {\set@transfont \trans@text #1 \end }\fi
+\arab@tail }
+
+\allowarab \the@bjad
+
+% NOTE: \abj@d is fully expandable
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \Abjad #1{\xpa \@Abjad \csname c@#1\endcsname }
+
+\let \@Abjad \abj@d
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode `\@ = \abjatcode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/texinput/aboxes.sty b/language/arabic/arabtex/texinput/aboxes.sty
index 095db6eb43..fe4b75a5b9 100644
--- a/language/arabic/arabtex/texinput/aboxes.sty
+++ b/language/arabic/arabtex/texinput/aboxes.sty
@@ -1,401 +1,401 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aboxes.sty
-% ArabTeX
-% deposit character into output box
-% called in HMODE
-% Version 28.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {aboxes.sty} {3.11 build output boxes} {28.05.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \def@arabaccent {% define accent macros for Arabic
-\gdef \put@fatha {\put@acc@hi {\char \a@fatha }}
-\gdef \put@damma {\put@acc@hi {\char \a@damma }}
-\gdef \put@kasra {\put@acc@lo {\char \a@kasra }}
-\gdef \put@shadda {\put@acc@hi {\char \a@shadda }}
-\gdef \put@hamza {\put@hi {\char \a@hamza }}
-\gdef \put@hamzalo {\put@lo {\char \a@hamza }}
-\gdef \put@madda {\put@hi {\a@madda@up }}
-\gdef \put@sukun {\put@acc@hi {\char \a@sukun }}
-\gdef \put@wasla {\put@acc@hi {\char \a@wasla }}
-\gdef \put@fathatan {\put@acc@hi {\char \a@fathatan }}
-\gdef \put@dammatan {\put@acc@hi {\char \a@dammatan }}
-\gdef \put@kasratan {\put@acc@lo {\char \a@kasratan }}
-\gdef \put@fathaspec {\put@acc@hi {\char \a@quran@alif }}
-\gdef \put@kasraspec {\put@acc@lo {\char \a@quran@alif }}
-\gdef \put@ammad {\put@acc@hi {\char \a@ammad }}
-\gdef \put@zwarakay {\put@acc@hi {\char \a@zwarakay }}
-\gdef \put@barslo {\put@lo {\char \a@bars }}
-\gdef \put@kh@hamza {\put@hi {\char \a@hamza }}
-\gdef \put@kl@hamza {\put@lo {\char \a@hamza }}
-\gdef \put@kh@hamz@s {\put@hi {\char \a@hamz@s }}
-\gdef \put@kl@hamz@s {\put@lo {\char \a@hamz@s }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen \a@dp \newdimen \a@ht \newdimen \a@wd
-\newdimen \dia@dx \newdimen \dia@dy \newdimen \dia@ht
-\newdimen \a@disp \newdimen \a@ic
-\newbox \ab@x \newbox \dia@box
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%em# := 25.4dx#; %ex# := 8dy#;
-
-\def \a@kern {\kern.05em } \def \a@mkern {\kern-.05em }% Arabic kerning
-\def \acc@hi {1.8ex } \def \acc@lo {0.4ex } % positions for .harakAt
-\def \tat@ht {0.20ex } \def \tat@wd {0.007em } % kashida dimensions
-\def \tat@skip {0.014em plus 0.2fil }
-\def \a@dsp {.5ex } % shift for raised characters
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% global: \act@cd, \act@mod, \act@dia, \act@tie
-
-\def \put@skel #1#2#3*{% deposit writing syllable % f d m *
-\put@act@box #1#2\put@mod #3*\dep@sitb@x
-\fix@act@box }
-
-\def \put@lig@skel #1#2#3*#4*{% deposit 2char ligature % f d m * m *
-\put@act@box #1#2\global\a@wd .5\wd\ab@x
-\wd\ab@x \a@wd \dimen4 \a@ht \dimen6 \a@dp
-\global\setbox \ab@x \vbox {\box \ab@x }\put@mod #3*\dep@sitb@x
-\setbox0 \hbox to\a@wd {\hfill }\dp0 \dimen6 \ht0 \dimen4
-\global\a@ht \dimen4 \global\a@dp \dimen6
-\global\setbox \ab@x \vbox {\box0 }\put@mod #4*\dep@sitb@x
-\fix@act@box }
-
-\def \put@act@box #1#2{% set tie and open character box
-\ifnum \act@tie = 0 \else \advance\act@tie \a@f@mid \put@tie \fi
-\advance\act@cd #2\xpa \dia@pos \act@dia #1\relax
-\put@b@x {\the\act@cd }\if@mod@act \put@d@t {\the\act@mod }\fi }
-
-\def \put@tie {% deposit ties between characters
-\setbox0 \hbox {\char \the\act@tie }%
-\setbox2 \hbox {\char \the\act@tie \/}%
-\ifdim \a@disp = \z@ \unhcopy0
-\else \raise\a@disp \hbox {\unhcopy0 }\fi
-\advance\a@disp \wd2 \advance\a@disp -\wd0 }
-
-\def \set@high@act {% prepare raising of actual character
-\advance \a@disp \a@dsp \@high@acttrue }
-
-\def \set@low@act {% lower actual character
-\advance \a@disp -.25ex }
-
-\def \set@loww@act {% lower actual character
-\advance \a@disp -.50ex }
-
-\def \set@lowww@act {% lower actual character
-\advance \a@disp -.75ex }
-
-\def \fix@act@box {% fixup position and set tatwil
-\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi
-\advance\a@min@dp \a@ic \advance\a@disp \a@ic
-\if@tat \put@tat \@tatfalse \fi }
-
-\def \put@tat {% deposit a keshide
-\dimen@ \a@disp \advance\dimen@ \tat@ht \nobreak \hskip-\tat@wd
-\leaders \hrule height\dimen@ depth-\a@disp \hskip\tat@skip \hskip-\tat@wd }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@b@x #1{% evaluate the argument
-\edef \t@mp {\nxp\put@box {\char #1}}\t@mp }
-
-\def \put@box #1{% pack and get dimensions, also ic and baseline skew
-\setbox0 \hbox {#1\/}\global\a@ic \wd0
-\global\setbox \ab@x \hbox{#1}% put into box
-\global\a@ht \ht\ab@x \global\a@wd \wd\ab@x
-\global\a@dp \dp\ab@x \global\advance \a@ic -\a@wd
-\a@adj@lo \a@min@dp
-\ifnum \a@min > 0 \global\a@min@dp \a@dp \global\advance\a@min -1
-\else \global\a@min@dp \z@ \fi }
-%\global\a@sk -\a@skew\a@wd
-%\ifa@sk \global\a@skfalse \else \global\a@sk -\a@sk \fi }
-
-\def \dep@sitb@x {% put contents into output, unpack if possible
-\ifhbox \ab@x \ifdim \a@disp = \z@ \unhbox \ab@x
- \else \raise\a@disp \hbox {\unhbox\ab@x }%
- \fi
-\else \global\advance \a@ht \a@disp \global\advance \a@dp -\a@disp
- \ht\ab@x \a@ht \dp\ab@x \a@dp \box \ab@x
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@mod #1+#2*{% put modifier onto contents of "\ab@x" % m1 + m2 *
- \global\red@mod 0#1\relax
- \ifnum 0#1> 9 \global\advance \red@mod -10 \relax \fi
-\ifnum 0#2= \c@kasra \xpa\a@putkasra \xpa{\the\red@mod }\else
-\ifnum 0#2= \c@kasratan \xpa\a@putkasratan \xpa{\the\red@mod }\else
- \ifcase \red@mod
- \relax \or \put@shadda \or
- \put@hamza \or \put@hamza \put@shadda \or
- \put@madda \or \put@hamzalo \or
- \fi
- \put@voc 0#2*%
-\fi \fi }
-
-\def \a@putkasra #1{% modification at kasra % m1
-\ifcase 0#1\put@kasra \or \put@k@sra \put@shadda \or
-\put@ihamza \put@kasra \or \put@k@sra \put@hamza \put@shadda \or
-\put@madda \put@kasra \or \put@hamzalo \put@kasra \or
-\fi }
-
-\def \a@putkasratan #1{% modification at kasratan % m1
-\ifcase 0#1\put@kasratan \or \put@k@sratan \put@shadda \or
-\put@ihamza \put@kasratan \or \put@k@sratan \put@hamza \put@shadda \or
-\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or
-\fi }
-
-\def \put@k@sra {% high or low
-\ifk@sra \put@kasra \else \put@fatha \fi }
-
-\def \put@k@sratan {% high or low
-\ifk@sra \put@kasratan \else \put@fathatan \fi }
-
-\def \put@voc #1*{% put .harakAt % m2
-\ifcase 0#1\relax \or \put@sukun \or \put@fatha \or \put@kasra \or
-\put@damma \or \put@fathatan \or \put@kasratan \or \put@dammatan \or
-\put@zwarakay \or \put@wasla \or \put@fathaspec \or \put@kasraspec \or
-\put@ammad \or \put@fatha\put@kasra \or \put@barslo \or \put@kh@hamza \or
-\put@kl@hamza \or\put@kh@hamz@s \or \put@kl@hamz@s \or
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@ihamza {% hamza at <i> depending on carrier
-\ifnum \act@cd = \a@alif@iso \put@hamzalo \else
-\ifnum \act@cd = \a@alif@end \put@hamzalo \else
-\ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else
-\ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else
- \put@hamza
-\fi\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@one@up {\char \a@one@dot@up }
-
-\def \a@two@up {\char \a@two@dots@up }
-
-\def \a@twov@up {\setbox0 \hbox {\char \a@one@dot@up }%
-\setbox2 \hbox {\char \a@one@dot@up }\dimen@ .6\ht2
-\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0
-\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
-
-\def \a@three@up {\char \a@three@dots@up }
-
-\def \a@threev@up {\setbox0 \hbox {\char \a@three@dots@down }%
-\ht0 \dp0 \dp0 .5\dp0 \box0 }
-
-\def \a@four@up {\setbox0 \hbox {\char \a@two@dots@up }%
-\setbox2 \hbox {\char \a@two@dots@up }\dimen@ .6\ht2
-\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0
-\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
-
-\def \a@hamza@up {\setbox0 \hbox {\char \a@hamza }%
-\dp0 -\ht0 \box0 }
-
-\def \a@alif@up {\char \a@quran@alif }
-
-\def \a@ttah@up {\char \a@ttah@dia }
-
-\def \a@bow@up {\char\a@bow@dia }
-
-\def \a@madda@up {\setbox0 \hbox {\char \a@madda \kern .02em}\box0 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@one@down {\char \a@one@dot@down }
-
-\def \a@two@down {\char \a@two@dots@down }
-
-\def \a@twov@down {\setbox2 \hbox {\char \a@one@dot@down }%
-\setbox0 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0
-\setbox0 \hbox {\char \a@one@dot@down }% correct depth
-\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2
-\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
-
-\def \a@three@down {\setbox0 \hbox {\char \a@three@dots@down }%
-\dp0 .7\dp0 \box0 }
-
-\def \a@four@down {\setbox0 \hbox {\char \a@two@dots@down }%
-\setbox2 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0
-\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2
-\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@d@t #1{% evaluate the argument
-\edef \t@mp {\nxp\put@dot {#1}}\t@mp }
-
-\def \put@dot #1{% modify character skeleton
-\ifcase 0#1%
-\relax \or % 0
-% . .. ^
-% 1 --- 2 --- 3 --- 4 --- 5 --- 6 ---
-% . .. v
-\put@hi {\a@one@up }\or % 1
-\put@hi {\a@two@up }\or % 2
-\put@hi {\a@three@up }\or % 3
-\put@lo {\a@one@down }\or % 4
-\put@lo {\a@two@down }\or % 5
-\put@lo {\a@three@down }\or % 6
-% c b . u
-% 7 --- 8 --- 9 --- 10 --- 11 --- 12 ---
-% : . 6
-\put@hi {\a@hamza@up }\or % 7
-\put@hi {\a@ttah@up }\or % 8
-\put@lo {\a@twov@down }\or % 9
-\put@hi {\a@one@up }\put@lo {\a@one@down }\or % 10
-\put@lo {\char\a@h@dia }\or % 11
-\put@hi {\a@bow@up }\or % 12
-% u : v ::
-% 13 --- 14 --- 15 --- 16 --- 17 --- 18 ---
-% u .. ::
-\put@lo {\a@bow@up }\or % 13
-\put@lo {\a@two@down }\put@hi {\a@bow@up }\or % 14
-\put@hi {\a@twov@up }\or % 15
-\put@hi {\a@threev@up }\or % 16
-\put@hi {\a@four@up }\or % 17
-\put@lo {\a@four@down }\or % 18
-% 9 | b ^ . ^
-% 19 --- 20 --- 21 --- 22 --- 23 --- 24 ---
-% . v v .
-\put@hi {\char\a@damma }\or % 19
-\put@hi {\a@alif@up }\or % 20
-\put@hi {\a@ttah@up }\put@lo {\a@one@down }\or % 21
-\put@hi {\a@three@up }\put@lo {\a@three@down }\or % 22
-\put@hi {\a@one@up }\put@lo {\a@three@down }\or % 23
-\put@hi {\a@three@up }\put@lo {\a@one@down }\or % 24
-% ^ C
-% 25 --- 26 --- 27 --- 28 --- 29 --- 30 ---
-% H C
-%
-\put@hi {\char\a@roof }\or % 25
-\put@lo {\char\a@bars }\or % 26
-\put@hi {\char\a@hamz@s}\or % 27
-\put@lo {\char\a@hamz@s}\or % 28
- \put@hi {\char 2 }\or % illegal
-\else \put@hi {\char 2 }\or % illegal
-\fi}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@hi #1{% deposit upper modifier, slanted
-\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
-\dia@dy \a@ht \hi@dia \put@upper }
-
-\def \put@acc@hi #1{% deposit upper accent
-\ifacc@hi \a@adj@hi \acc@hi \fi
-\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
-\dia@dy \a@ht \a@ubox@u \put@upper }
-
-\def \put@lo #1{% deposit lower modifier, slanted
-\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
-\a@adj@lo \a@min@dp \dia@dy \a@dp \lo@dia \put@lower }
-
-\def \put@acc@lo #1{% deposit lower accent
-\ifacc@hi \a@adj@lo \acc@lo \fi
-\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
-\dia@dy \a@dp \a@lbox@d \put@lower }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hi@dia {% position of upper diacritic
-\ifcase \dia@mod \relax
-\a@ubox@u \or \a@ubox@d \or \a@ubox@u \or
-\a@ubox@d \or \a@ubox@u \or \a@ubox@d \or
-\a@ubox@c \or \a@ubox@c \or \a@ubox@c \or
-\fi }
-
-\def \lo@dia {% position of lower diacritic
-\ifcase \dia@mod \relax
-\a@lbox@d \or \a@lbox@d \or \a@lbox@u \or
-\a@lbox@u \or \a@lbox@c \or \a@lbox@c \or
-\a@lbox@d \or \a@lbox@u \or \a@lbox@c \fi }
-
-\def \a@adj@hi #1{% adjustment of box height
-\dimen@ #1\advance\dimen@ -\a@disp
-\ifdim \dimen@ > \a@ht \advance\dimen@ -\a@ht
- \global\advance\a@ht \dimen@ \global\setbox\ab@x \vbox
- {\kern\dimen@ \nointerlineskip
- \ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\fi }
-
-\def \a@adj@lo #1{% adjustment of box depth
-\dimen@ #1\advance\dimen@ \a@disp
-\ifdim \dimen@ > \a@dp \advance\dimen@ -\a@dp
- \global\advance\a@dp \dimen@ \global\setbox\ab@x \vbox
- {\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi
- \nointerlineskip \kern\dimen@ }\fi }
-
-\def \a@ubox@u {% upper box above
-\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
-\advance\dia@dy .5\dimen@ \global\advance \a@ht \dimen@ }
-
-\def \a@ubox@d {% upper box lowered
-\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
-\advance\dia@dy -.5\dimen@ \dp\dia@box -\ht\dia@box }
-
-\def \a@ubox@c {% upper box centered
-\dimen@ .5\ht\dia@box \advance\dimen@ .5\dp\dia@box
-\global\advance \a@ht \dimen@
-\advance\dimen@ -\ht\dia@box \dp\dia@box \dimen@ }
-
-\def \a@lbox@d {% lower box below
-\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
-\advance \dia@dy .5\dimen@ \global\advance \a@dp \dimen@ }
-
-\def \a@lbox@u {% lower box raised
-\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
-\advance \dia@dy -.5\dimen@ \ht\dia@box -\dp\dia@box }
-
-\def \a@lbox@c {% lower box centered
-\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
-\advance \dia@dy -.5\dimen@ \advance \dia@dy -.75\a@dp
-\advance\dimen@ -2\ht\dia@box \advance\dimen@ 1.5\a@dp
-\dp\dia@box .4\dimen@ \ht\dia@box -\dp\dia@box }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@upper {\dia@dx \a@slant\dia@dy \advance\dia@dx .5\a@wd
-\advance\dia@dx \dia@hadj\a@dx \global\setbox\ab@x \vbox
-{\moveright\dia@dx \box\dia@box \nointerlineskip
-\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\wd\ab@x \a@wd }
-
-\def \put@lower {\dia@dx -\a@slant\dia@dy \advance\dia@dx .5\a@wd
-\advance\dia@dx \dia@hadj\a@dx \global\setbox \ab@x \vbox
-{\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi
-\nointerlineskip \moveright\dia@dx \box\dia@box }\wd\ab@x \a@wd }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\iffalse % cf. aparse.sty
-\chardef \c@shadda = 1 \chardef \c@hamza = 2
-\chardef \c@hamzalow = 3 \chardef \c@madda = 4
-\chardef \c@high = 10
-
-\chardef \c@sukun = 1 \chardef \c@fatha = 2
-\chardef \c@kasra = 3 \chardef \c@damma = 4
-\chardef \c@fathatan = 5 \chardef \c@kasratan = 6
-\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8
-\chardef \c@wasla = 9 \chardef \c@fathaspec = 10
-\chardef \c@kasraspec = 11 \chardef \c@ammad = 12
-\chardef \c@kas@fath = 13 \chardef \c@bars = 14
-\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16
-\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aboxes.sty
+% ArabTeX
+% deposit character into output box
+% called in HMODE
+% Version 28.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {aboxes.sty} {3.11 build output boxes} {28.05.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \def@arabaccent {% define accent macros for Arabic
+\gdef \put@fatha {\put@acc@hi {\char \a@fatha }}
+\gdef \put@damma {\put@acc@hi {\char \a@damma }}
+\gdef \put@kasra {\put@acc@lo {\char \a@kasra }}
+\gdef \put@shadda {\put@acc@hi {\char \a@shadda }}
+\gdef \put@hamza {\put@hi {\char \a@hamza }}
+\gdef \put@hamzalo {\put@lo {\char \a@hamza }}
+\gdef \put@madda {\put@hi {\a@madda@up }}
+\gdef \put@sukun {\put@acc@hi {\char \a@sukun }}
+\gdef \put@wasla {\put@acc@hi {\char \a@wasla }}
+\gdef \put@fathatan {\put@acc@hi {\char \a@fathatan }}
+\gdef \put@dammatan {\put@acc@hi {\char \a@dammatan }}
+\gdef \put@kasratan {\put@acc@lo {\char \a@kasratan }}
+\gdef \put@fathaspec {\put@acc@hi {\char \a@quran@alif }}
+\gdef \put@kasraspec {\put@acc@lo {\char \a@quran@alif }}
+\gdef \put@ammad {\put@acc@hi {\char \a@ammad }}
+\gdef \put@zwarakay {\put@acc@hi {\char \a@zwarakay }}
+\gdef \put@barslo {\put@lo {\char \a@bars }}
+\gdef \put@kh@hamza {\put@hi {\char \a@hamza }}
+\gdef \put@kl@hamza {\put@lo {\char \a@hamza }}
+\gdef \put@kh@hamz@s {\put@hi {\char \a@hamz@s }}
+\gdef \put@kl@hamz@s {\put@lo {\char \a@hamz@s }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen \a@dp \newdimen \a@ht \newdimen \a@wd
+\newdimen \dia@dx \newdimen \dia@dy \newdimen \dia@ht
+\newdimen \a@disp \newdimen \a@ic
+\newbox \ab@x \newbox \dia@box
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%em# := 25.4dx#; %ex# := 8dy#;
+
+\def \a@kern {\kern.05em } \def \a@mkern {\kern-.05em }% Arabic kerning
+\def \acc@hi {1.8ex } \def \acc@lo {0.4ex } % positions for .harakAt
+\def \tat@ht {0.20ex } \def \tat@wd {0.007em } % kashida dimensions
+\def \tat@skip {0.014em plus 0.2fil }
+\def \a@dsp {.5ex } % shift for raised characters
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% global: \act@cd, \act@mod, \act@dia, \act@tie
+
+\def \put@skel #1#2#3*{% deposit writing syllable % f d m *
+\put@act@box #1#2\put@mod #3*\dep@sitb@x
+\fix@act@box }
+
+\def \put@lig@skel #1#2#3*#4*{% deposit 2char ligature % f d m * m *
+\put@act@box #1#2\global\a@wd .5\wd\ab@x
+\wd\ab@x \a@wd \dimen4 \a@ht \dimen6 \a@dp
+\global\setbox \ab@x \vbox {\box \ab@x }\put@mod #3*\dep@sitb@x
+\setbox0 \hbox to\a@wd {\hfill }\dp0 \dimen6 \ht0 \dimen4
+\global\a@ht \dimen4 \global\a@dp \dimen6
+\global\setbox \ab@x \vbox {\box0 }\put@mod #4*\dep@sitb@x
+\fix@act@box }
+
+\def \put@act@box #1#2{% set tie and open character box
+\ifnum \act@tie = 0 \else \advance\act@tie \a@f@mid \put@tie \fi
+\advance\act@cd #2\xpa \dia@pos \act@dia #1\relax
+\put@b@x {\the\act@cd }\if@mod@act \put@d@t {\the\act@mod }\fi }
+
+\def \put@tie {% deposit ties between characters
+\setbox0 \hbox {\char \the\act@tie }%
+\setbox2 \hbox {\char \the\act@tie \/}%
+\ifdim \a@disp = \z@ \unhcopy0
+\else \raise\a@disp \hbox {\unhcopy0 }\fi
+\advance\a@disp \wd2 \advance\a@disp -\wd0 }
+
+\def \set@high@act {% prepare raising of actual character
+\advance \a@disp \a@dsp \@high@acttrue }
+
+\def \set@low@act {% lower actual character
+\advance \a@disp -.25ex }
+
+\def \set@loww@act {% lower actual character
+\advance \a@disp -.50ex }
+
+\def \set@lowww@act {% lower actual character
+\advance \a@disp -.75ex }
+
+\def \fix@act@box {% fixup position and set tatwil
+\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi
+\advance\a@min@dp \a@ic \advance\a@disp \a@ic
+\if@tat \put@tat \@tatfalse \fi }
+
+\def \put@tat {% deposit a keshide
+\dimen@ \a@disp \advance\dimen@ \tat@ht \nobreak \hskip-\tat@wd
+\leaders \hrule height\dimen@ depth-\a@disp \hskip\tat@skip \hskip-\tat@wd }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@b@x #1{% evaluate the argument
+\edef \t@mp {\nxp\put@box {\char #1}}\t@mp }
+
+\def \put@box #1{% pack and get dimensions, also ic and baseline skew
+\setbox0 \hbox {#1\/}\global\a@ic \wd0
+\global\setbox \ab@x \hbox{#1}% put into box
+\global\a@ht \ht\ab@x \global\a@wd \wd\ab@x
+\global\a@dp \dp\ab@x \global\advance \a@ic -\a@wd
+\a@adj@lo \a@min@dp
+\ifnum \a@min > 0 \global\a@min@dp \a@dp \global\advance\a@min -1
+\else \global\a@min@dp \z@ \fi }
+%\global\a@sk -\a@skew\a@wd
+%\ifa@sk \global\a@skfalse \else \global\a@sk -\a@sk \fi }
+
+\def \dep@sitb@x {% put contents into output, unpack if possible
+\ifhbox \ab@x \ifdim \a@disp = \z@ \unhbox \ab@x
+ \else \raise\a@disp \hbox {\unhbox\ab@x }%
+ \fi
+\else \global\advance \a@ht \a@disp \global\advance \a@dp -\a@disp
+ \ht\ab@x \a@ht \dp\ab@x \a@dp \box \ab@x
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@mod #1+#2*{% put modifier onto contents of "\ab@x" % m1 + m2 *
+ \global\red@mod 0#1\relax
+ \ifnum 0#1> 9 \global\advance \red@mod -10 \relax \fi
+\ifnum 0#2= \c@kasra \xpa\a@putkasra \xpa{\the\red@mod }\else
+\ifnum 0#2= \c@kasratan \xpa\a@putkasratan \xpa{\the\red@mod }\else
+ \ifcase \red@mod
+ \relax \or \put@shadda \or
+ \put@hamza \or \put@hamza \put@shadda \or
+ \put@madda \or \put@hamzalo \or
+ \fi
+ \put@voc 0#2*%
+\fi \fi }
+
+\def \a@putkasra #1{% modification at kasra % m1
+\ifcase 0#1\put@kasra \or \put@k@sra \put@shadda \or
+\put@ihamza \put@kasra \or \put@k@sra \put@hamza \put@shadda \or
+\put@madda \put@kasra \or \put@hamzalo \put@kasra \or
+\fi }
+
+\def \a@putkasratan #1{% modification at kasratan % m1
+\ifcase 0#1\put@kasratan \or \put@k@sratan \put@shadda \or
+\put@ihamza \put@kasratan \or \put@k@sratan \put@hamza \put@shadda \or
+\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or
+\fi }
+
+\def \put@k@sra {% high or low
+\ifk@sra \put@kasra \else \put@fatha \fi }
+
+\def \put@k@sratan {% high or low
+\ifk@sra \put@kasratan \else \put@fathatan \fi }
+
+\def \put@voc #1*{% put .harakAt % m2
+\ifcase 0#1\relax \or \put@sukun \or \put@fatha \or \put@kasra \or
+\put@damma \or \put@fathatan \or \put@kasratan \or \put@dammatan \or
+\put@zwarakay \or \put@wasla \or \put@fathaspec \or \put@kasraspec \or
+\put@ammad \or \put@fatha\put@kasra \or \put@barslo \or \put@kh@hamza \or
+\put@kl@hamza \or\put@kh@hamz@s \or \put@kl@hamz@s \or
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@ihamza {% hamza at <i> depending on carrier
+\ifnum \act@cd = \a@alif@iso \put@hamzalo \else
+\ifnum \act@cd = \a@alif@end \put@hamzalo \else
+\ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else
+\ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else
+ \put@hamza
+\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@one@up {\char \a@one@dot@up }
+
+\def \a@two@up {\char \a@two@dots@up }
+
+\def \a@twov@up {\setbox0 \hbox {\char \a@one@dot@up }%
+\setbox2 \hbox {\char \a@one@dot@up }\dimen@ .6\ht2
+\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0
+\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
+
+\def \a@three@up {\char \a@three@dots@up }
+
+\def \a@threev@up {\setbox0 \hbox {\char \a@three@dots@down }%
+\ht0 \dp0 \dp0 .5\dp0 \box0 }
+
+\def \a@four@up {\setbox0 \hbox {\char \a@two@dots@up }%
+\setbox2 \hbox {\char \a@two@dots@up }\dimen@ .6\ht2
+\advance \dimen@ -.4\dp0 \ht2 \dimen@ \advance \dimen@ \dp0
+\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
+
+\def \a@hamza@up {\setbox0 \hbox {\char \a@hamza }%
+\dp0 -\ht0 \box0 }
+
+\def \a@alif@up {\char \a@quran@alif }
+
+\def \a@ttah@up {\char \a@ttah@dia }
+
+\def \a@bow@up {\char\a@bow@dia }
+
+\def \a@madda@up {\setbox0 \hbox {\char \a@madda \kern .02em}\box0 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@one@down {\char \a@one@dot@down }
+
+\def \a@two@down {\char \a@two@dots@down }
+
+\def \a@twov@down {\setbox2 \hbox {\char \a@one@dot@down }%
+\setbox0 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0
+\setbox0 \hbox {\char \a@one@dot@down }% correct depth
+\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2
+\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
+
+\def \a@three@down {\setbox0 \hbox {\char \a@three@dots@down }%
+\dp0 .7\dp0 \box0 }
+
+\def \a@four@down {\setbox0 \hbox {\char \a@two@dots@down }%
+\setbox2 \hbox {\char \a@two@dots@down }\dimen@ .6\dp0
+\advance \dimen@ -.4\ht2 \dp0 \dimen@ \advance \dimen@ \ht2
+\vbox {\moveright \a@slant\dimen@ \box0 \nointerlineskip \box2 }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@d@t #1{% evaluate the argument
+\edef \t@mp {\nxp\put@dot {#1}}\t@mp }
+
+\def \put@dot #1{% modify character skeleton
+\ifcase 0#1%
+\relax \or % 0
+% . .. ^
+% 1 --- 2 --- 3 --- 4 --- 5 --- 6 ---
+% . .. v
+\put@hi {\a@one@up }\or % 1
+\put@hi {\a@two@up }\or % 2
+\put@hi {\a@three@up }\or % 3
+\put@lo {\a@one@down }\or % 4
+\put@lo {\a@two@down }\or % 5
+\put@lo {\a@three@down }\or % 6
+% c b . u
+% 7 --- 8 --- 9 --- 10 --- 11 --- 12 ---
+% : . 6
+\put@hi {\a@hamza@up }\or % 7
+\put@hi {\a@ttah@up }\or % 8
+\put@lo {\a@twov@down }\or % 9
+\put@hi {\a@one@up }\put@lo {\a@one@down }\or % 10
+\put@lo {\char\a@h@dia }\or % 11
+\put@hi {\a@bow@up }\or % 12
+% u : v ::
+% 13 --- 14 --- 15 --- 16 --- 17 --- 18 ---
+% u .. ::
+\put@lo {\a@bow@up }\or % 13
+\put@lo {\a@two@down }\put@hi {\a@bow@up }\or % 14
+\put@hi {\a@twov@up }\or % 15
+\put@hi {\a@threev@up }\or % 16
+\put@hi {\a@four@up }\or % 17
+\put@lo {\a@four@down }\or % 18
+% 9 | b ^ . ^
+% 19 --- 20 --- 21 --- 22 --- 23 --- 24 ---
+% . v v .
+\put@hi {\char\a@damma }\or % 19
+\put@hi {\a@alif@up }\or % 20
+\put@hi {\a@ttah@up }\put@lo {\a@one@down }\or % 21
+\put@hi {\a@three@up }\put@lo {\a@three@down }\or % 22
+\put@hi {\a@one@up }\put@lo {\a@three@down }\or % 23
+\put@hi {\a@three@up }\put@lo {\a@one@down }\or % 24
+% ^ C
+% 25 --- 26 --- 27 --- 28 --- 29 --- 30 ---
+% H C
+%
+\put@hi {\char\a@roof }\or % 25
+\put@lo {\char\a@bars }\or % 26
+\put@hi {\char\a@hamz@s}\or % 27
+\put@lo {\char\a@hamz@s}\or % 28
+ \put@hi {\char 2 }\or % illegal
+\else \put@hi {\char 2 }\or % illegal
+\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@hi #1{% deposit upper modifier, slanted
+\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
+\dia@dy \a@ht \hi@dia \put@upper }
+
+\def \put@acc@hi #1{% deposit upper accent
+\ifacc@hi \a@adj@hi \acc@hi \fi
+\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
+\dia@dy \a@ht \a@ubox@u \put@upper }
+
+\def \put@lo #1{% deposit lower modifier, slanted
+\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
+\a@adj@lo \a@min@dp \dia@dy \a@dp \lo@dia \put@lower }
+
+\def \put@acc@lo #1{% deposit lower accent
+\ifacc@hi \a@adj@lo \acc@lo \fi
+\setbox\dia@box \hbox to \z@ {\hss #1\hss }%
+\dia@dy \a@dp \a@lbox@d \put@lower }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hi@dia {% position of upper diacritic
+\ifcase \dia@mod \relax
+\a@ubox@u \or \a@ubox@d \or \a@ubox@u \or
+\a@ubox@d \or \a@ubox@u \or \a@ubox@d \or
+\a@ubox@c \or \a@ubox@c \or \a@ubox@c \or
+\fi }
+
+\def \lo@dia {% position of lower diacritic
+\ifcase \dia@mod \relax
+\a@lbox@d \or \a@lbox@d \or \a@lbox@u \or
+\a@lbox@u \or \a@lbox@c \or \a@lbox@c \or
+\a@lbox@d \or \a@lbox@u \or \a@lbox@c \fi }
+
+\def \a@adj@hi #1{% adjustment of box height
+\dimen@ #1\advance\dimen@ -\a@disp
+\ifdim \dimen@ > \a@ht \advance\dimen@ -\a@ht
+ \global\advance\a@ht \dimen@ \global\setbox\ab@x \vbox
+ {\kern\dimen@ \nointerlineskip
+ \ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\fi }
+
+\def \a@adj@lo #1{% adjustment of box depth
+\dimen@ #1\advance\dimen@ \a@disp
+\ifdim \dimen@ > \a@dp \advance\dimen@ -\a@dp
+ \global\advance\a@dp \dimen@ \global\setbox\ab@x \vbox
+ {\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi
+ \nointerlineskip \kern\dimen@ }\fi }
+
+\def \a@ubox@u {% upper box above
+\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
+\advance\dia@dy .5\dimen@ \global\advance \a@ht \dimen@ }
+
+\def \a@ubox@d {% upper box lowered
+\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
+\advance\dia@dy -.5\dimen@ \dp\dia@box -\ht\dia@box }
+
+\def \a@ubox@c {% upper box centered
+\dimen@ .5\ht\dia@box \advance\dimen@ .5\dp\dia@box
+\global\advance \a@ht \dimen@
+\advance\dimen@ -\ht\dia@box \dp\dia@box \dimen@ }
+
+\def \a@lbox@d {% lower box below
+\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
+\advance \dia@dy .5\dimen@ \global\advance \a@dp \dimen@ }
+
+\def \a@lbox@u {% lower box raised
+\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
+\advance \dia@dy -.5\dimen@ \ht\dia@box -\dp\dia@box }
+
+\def \a@lbox@c {% lower box centered
+\dimen@ \ht\dia@box \advance\dimen@ \dp\dia@box
+\advance \dia@dy -.5\dimen@ \advance \dia@dy -.75\a@dp
+\advance\dimen@ -2\ht\dia@box \advance\dimen@ 1.5\a@dp
+\dp\dia@box .4\dimen@ \ht\dia@box -\dp\dia@box }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@upper {\dia@dx \a@slant\dia@dy \advance\dia@dx .5\a@wd
+\advance\dia@dx \dia@hadj\a@dx \global\setbox\ab@x \vbox
+{\moveright\dia@dx \box\dia@box \nointerlineskip
+\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi }\wd\ab@x \a@wd }
+
+\def \put@lower {\dia@dx -\a@slant\dia@dy \advance\dia@dx .5\a@wd
+\advance\dia@dx \dia@hadj\a@dx \global\setbox \ab@x \vbox
+{\ifvbox\ab@x \unvbox\ab@x \else \box\ab@x \fi
+\nointerlineskip \moveright\dia@dx \box\dia@box }\wd\ab@x \a@wd }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iffalse % cf. aparse.sty
+\chardef \c@shadda = 1 \chardef \c@hamza = 2
+\chardef \c@hamzalow = 3 \chardef \c@madda = 4
+\chardef \c@high = 10
+
+\chardef \c@sukun = 1 \chardef \c@fatha = 2
+\chardef \c@kasra = 3 \chardef \c@damma = 4
+\chardef \c@fathatan = 5 \chardef \c@kasratan = 6
+\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8
+\chardef \c@wasla = 9 \chardef \c@fathaspec = 10
+\chardef \c@kasraspec = 11 \chardef \c@ammad = 12
+\chardef \c@kas@fath = 13 \chardef \c@bars = 14
+\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16
+\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/acjk.sty b/language/arabic/arabtex/texinput/acjk.sty
index ae8ff4bce2..d4f7ad120a 100644
--- a/language/arabic/arabtex/texinput/acjk.sty
+++ b/language/arabic/arabtex/texinput/acjk.sty
@@ -1,33 +1,33 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% acjk.sty
-% for CJK compatibility of ArabTeX
-% or rather the other way around
-% 24.10.1998
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx \CJK \undefined \else
-
-\chardef \acjkatcode = \catcode`\@ \catcode`\@ = 11
-\a@ident {acjk.sty} {3.08 ArabTeX extensions for CJK} {24.10.1998}
-
-\ifx \CJK \undefined \else
-\global\def\CJK@input#1{
- \makeatletter
- \edef\CJK@lscode{\noexpand\catcode`<\the\catcode`<}
- \catcode `< 12
- \endlinechar \m@ne
- \input #1\relax
- \endlinechar `\^^M
- \CJK@lscode
- \makeatother}
-\fi
-
-\catcode`\@ = \acjkatcode
-\fi
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% acjk.sty
+% for CJK compatibility of ArabTeX
+% or rather the other way around
+% 24.10.1998
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \CJK \undefined \else
+
+\chardef \acjkatcode = \catcode`\@ \catcode`\@ = 11
+\a@ident {acjk.sty} {3.08 ArabTeX extensions for CJK} {24.10.1998}
+
+\ifx \CJK \undefined \else
+\global\def\CJK@input#1{
+ \makeatletter
+ \edef\CJK@lscode{\noexpand\catcode`<\the\catcode`<}
+ \catcode `< 12
+ \endlinechar \m@ne
+ \input #1\relax
+ \endlinechar `\^^M
+ \CJK@lscode
+ \makeatother}
+\fi
+
+\catcode`\@ = \acjkatcode
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+
diff --git a/language/arabic/arabtex/texinput/acmd.sty b/language/arabic/arabtex/texinput/acmd.sty
index 10cf141cae..a34f058f82 100644
--- a/language/arabic/arabtex/texinput/acmd.sty
+++ b/language/arabic/arabtex/texinput/acmd.sty
@@ -1,335 +1,335 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% acmd.sty
-% ArabTeX command processing
-% 20.08.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {acmd.sty} {3.11 Arabic command processing } {20.08.2003}
-
-\def \a@command #1{% process an internal command
-\iftest@command \tracingmacros 1 \fi
- \def@@cmd #1\xpa
-\ifx \the\a@@cmd \relax % no special handling?
- \if\is@in@set #1\a@@listreg
-% \def \next {\xpa \test@token #1}\else
- \def \next {\xpa \arab@tail #1}\else
- \if\is@in@set #1\a@@listzero
- \unarab@codes \def \next {#1\arab@tail }\else
- \if\is@in@set #1\a@@listone
- \unarab@codes \def \next ##1{#1{##1}\arab@tail }\else
- \if\is@in@set #1\a@@listtwo
- \unarab@codes \def \next ##1##2{#1{##1}{##2}\arab@tail }\else
- \def \next {\a@cmderr #1}% disallowed
- \fi\fi\fi\fi
-\else \def \next {\the\a@@cmd }% local routine
-\fi \next }
-
-\def \a@cmderr #1{% complain and substitute a dummy command
- \errhelp {Your command will be echoed in the output}%
-\ifx #1\undefined \def \next {\a@puttt #1\test@token }%
- \errmessage {Unknown arabic command: \nxp #1}%
-\else \errmessage {Illegal arabic command: \nxp #1}%
- \a@@cmd = {{\a@puttt #1\arab@tail }}
- \immediate\openout \a@@err = \jobname.err
- \immediate\write \a@@err {\string \gdef \string \next \space
- \xpa \a@@pat \meaning #1:->\pat@end \the\a@@cmd }% substitution
- \immediate\closeout \a@@err
- {\catcode `\@=11 \input \jobname.err }%
-\fi \next }
-
-\def \def@@cmd #1{% define \a@@cmd as \a@c@#1
-\ifcat \nxp #1\nxp ~%
-\global\a@@cmd = \xpa {\csname a@c@\string #1\endcsname }\else
-\global\a@@cmd = \xpa {\csname a@c@\xpa \@gobble \string #1\endcsname }\fi }
-
-\def \arab@tail {\arab@codes \set@arabfont \test@token }
-
-\def \a@@pat #1:#2->#3\pat@end {#2}
-
-\def \a@puttt #1{\putwordb@x {\tt \string #1}}
-
-%%%%%%%%%%%%%%%%%%%%%% enable internal commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newtoks \a@@listzero \newtoks \a@@listone
-\newtoks \a@@listtwo \newtoks \a@@listreg
-
-\long\def \a@@addcmd #1#2{% #1 cmd, #2 list
-\global #2 = \xpa {\the #2#1}}
-
-\long\def \all@wcmd #1{% enable parameterless command in arabic environment
-\a@@addcmd #1\a@@listzero }
-
-\long\def \all@w@ne #1{% enable command with 1 param in arabic environment
-\a@@addcmd #1\a@@listone }
-
-\long\def \all@wtw@ #1{% enable command with 2 params in arabic environment
-\a@@addcmd #1\a@@listtwo }
-
-\long\def \all@wif #1{% enable \#1true, \#1false
-\a@@name = \xpa \xpa \xpa {\xpa \@gobble \string #1}%
-\xpa \all@wcmd \csname \the\a@@name true\endcsname
-\xpa \all@wcmd \csname \the\a@@name false\endcsname }
-
-\long\def \all@whcmd #1{% enable command for horizontal mode
-\def@@cmd #1\all@wcmd #1%
-\xpa \def \the\a@@cmd {\putwordb@x {\leavevmode #1}\test@token }}
-
-\long\def \all@wvcmd #1{% enable command for vertical mode
-\def@@cmd #1\all@wcmd #1%
-\xpa \def \the\a@@cmd {\a@@par #1\test@token }}
-
-%%%%%%%%%%%%%%%%%%%%%% enable command definitions %%%%%%%%%%%%%%%%%%%%%%%%
-
-\long\def \allowarab #1{% enable new command in arabic environment
-\a@@addcmd #1\a@@listreg }
-
-\def \a@@def #1#2#3#4{% define command in RL mode
-\allowarab #2#1#2#3{#4}\test@token }
-
-\def \a@c@def #1#2#{\a@@def \def {#1}{#2}}
-
-\def \a@c@edef #1#2#{\a@@def \edef {#1}{#2}}
-
-\def \a@c@gdef #1#2#{\a@@def \gdef {#1}{#2}}
-
-\def \a@c@xdef #1#2#{\a@@def \xdef {#1}{#2}}
-
-%%%%%%%%%%%%%%%%%%%%%% enable ArabTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\all@wcmd \novocalize \all@wcmd \vocalize \all@wcmd \fullvocalize
-\all@wcmd \setnash \all@wcmd \setnashbf \all@wcmd \setnastaliq
-\all@wcmd \setarab \all@wcmd \setmaghribi \all@wcmd \setfarsi
-\all@wcmd \setturk \all@wcmd \setkurdish \all@wcmd \setbalut
-\all@wcmd \seturdu \all@wcmd \setpashto \all@wcmd \setverb
-\all@wcmd \yahdots \all@wcmd \yahnodots \all@wcmd \oldtanwin
-\all@wcmd \newtanwin \all@wcmd \accentshigh \all@wcmd \accentslow
-\all@wcmd \oldhamza \all@wcmd \newhamza \all@w@ne \setarabfont
-\all@w@ne \setcode \all@wcmd \endsetcode \all@wcmd \setuighur
-\iffalse
-\all@w@ne \input \all@w@ne \end
-\all@wcmd \relax \all@wcmd \indent \all@wcmd \noindent
-\all@w@ne \emphasize \all@wtw@ \footnote \all@w@ne \marginpar
-\all@w@ne \docommand \all@wtw@ \doassign \all@w@ne \mbox
-\all@w@ne \centerline \all@w@ne \spreadline \all@wtw@ \spreadbox
-\all@wcmd \nospace \all@w@ne \hspace \all@w@ne \tracingmacros
-\fi
-
-\all@wif \arab \all@wif \trans \all@wif \show
-\all@wif \spread \all@wif \ligs \all@wif \RL
-
-\all@whcmd \bigskip \all@whcmd \medskip \all@whcmd \smallskip
-\all@whcmd \hfill \all@whcmd \hfil \all@whcmd \space
-\all@whcmd \hss
-
-\ifx \LaTeX \undefined
-\all@wvcmd \bigskip \all@wvcmd \medskip \all@wvcmd \smallskip
-\fi
-
-\all@wvcmd \newpage \all@wvcmd \clearpage
-\all@wvcmd \vfil \all@wvcmd \vfill
-
-
-%%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@spec@def #1#2{% define routine for special character
-\def@@cmd #1\xpa \gdef \the\a@@cmd {#2}}
-
-\def \a@@chardef #1{\begingroup \lccode `\0 #1\lowercase
-{\endgroup \ifarab \putwordb@x {\a@rabwrite {0}}\fi
-\a@showinput {0}}\obey@space }
-
-\a@spec@def \#{\a@@chardef {`\#}} \a@spec@def \${\a@@chardef {`\$}}
-\a@spec@def \%{\a@@chardef {`\%}} \a@spec@def \&{\a@@chardef {`\&}}
-\a@spec@def \^{\a@@chardef {`\^}} \a@spec@def \_{\a@@chardef {`\_}}
-
-\a@spec@def \ {\a@spacefalse \putwordb@x {\arab@space }\test@token }
-
-\def \a@c@arabchar #1{% single character in the font
-\ifarab \putwordb@x {\char #1}\fi \a@showinput {\arabchar #1}\obey@space }
-
-\def \a@c@char {% read char number
-\begingroup \afterassignment \a@@char \count0=}
-
-\def \a@@char {% deposit character
-\edef \a@ch@r {\noexpand\a@c@arabchar {\the\count0}}%
-\xpa\endgroup \a@ch@r }
-
-%%%%%%%%%%%%%%%%%%% miscellaneous commands %%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@end {\end } \def \a@c@relax {\test@token }
-
-\def \a@c@par {\a@@par \test@token }
-
-\def \a@c@indent {\arab@indent \test@token }
-
-\def \a@c@noindent {\arab@noindent \test@token }
-
-\def \a@c@input {% \input inside arabic environment, Plain version
-\xpa \test@token \input }
-
-\def \a@c@doassign #1#2{% execute assignment
-#1#2\relax \test@token }
-
-\def \a@c@docommand #1{% expand and process user command
-\xpa \test@token \xpa {#1} }
-
-\def \a@c@bf {\setnashbf \arab@tail }
-\def \a@c@rm {\setnash \arab@tail }
-
-\def \a@c@today {\xpa \a@c@mbox \xpa {\a@@today }}
-
-\edef \a@@today {\number\day \space \ifcase\month\or
-yanAyir \or febrAyir \or mAris \or 'abrIl \or
-mAyU \or yUniyU \or yUliyU \or 'a.gus.tus \or
-sibtambar \or 'uktUbar \or nUfambar \or disambar \fi ,
-\number\year}
-
-\def \a@c@protect {\test@token }
-
-\long\def \a@c@cond #1#2#3\fi {% call conditional
-#1\ReturnElseFi {\test@token #2}%
-\else \ReturnFi {\test@token #3}\fi }
-
-\def \a@c@endinput {\endinput \test@token }
-
-%%%%%%%%%%%%%% \begin ... \end {romantext} %%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@romantext {% end Arabic mode and switch down (!) to Roman
-\endgroup \endarabtext \endgroup
-\def \@currenvir {romantext}\let \end \a@r@end \ignorespaces }
-
-\def \endromantext {% switch up (!) to Arabic mode
-\endgraf
-\def \@currenvir {document}\begingroup
-\def \@currenvir {arabtext}\arabtext }
-
-\let \a@l@end \end % save current meaning of \end
-
-\def \a@r@end #1{% new \end for the base level
-\def \@romantext {romantext}\def \@tempa {#1}%
-\ifx \@tempa \@romantext \let \@tempa \endromantext
-\else \def \@tempa {\a@l@end {#1}}%
-\fi \@tempa }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% boxes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@centerline #1{% new line, centered
-\a@@par \centerline {\a@showinput {#1}}%
-\ifarab \putwordb@x {\hss \a@sequence {#1}\hss }\a@put@line
-\fi \test@token }
-
-\def \a@c@spreadline #1{% new line, spread out
-\a@@par \initlineb@x \centerline {\a@showinput {#1}}%
-\ifarab \putwordb@x
-{\spreadtrue \a@sequence {#1}\setbox0 \lastbox \unhbox0 }\a@put@line
-\fi \test@token }
-
-\def \a@c@mbox #1{% put the argument into a box
-\ifarab \putwordb@x {\a@sequence {#1}}\fi
-\a@spacefalse \a@showinput {#1}\test@token }
-
-\def \a@c@spreadbox {% {width}{text} put the text into a box
-\unarab@codes \a@@spreadbox }
-
-\def \a@@spreadbox #1{% {width}{text} get the width
-\def \a@bwidth {#1}\arab@codes \a@spreadbox }
-
-\def \a@spreadbox #1{% {width}{text} get the text
-\ifarab \putwordb@x {\spreadtrue
-\setspace {3pt plus .3fil}%
-\a@sequence {#1}%
-\setbox0 \lastbox \hbox to \a@bwidth {\unhbox0 }}\fi
-\a@spacefalse \a@showinput {#1}\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% spacing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@nospace {% concatenate neighboring items
-\a@spacefalse \test@token }
-
-\let \nospace \relax
-
-\def \a@c@hspace {% horizontal space
-\unarab@codes \a@@hspace }
-
-\def \a@@hspace #1{% get argument
-\a@spacefalse \ifarab \putwordb@x {\hskip #1\relax }\fi
-\arab@codes \test@token }
-
-\def \a@c@pagebreak
-{\a@@par \@ifnextchar [{\a@@pagebreak }{\a@@pagebreak [4]}}
-
-\def \a@@pagebreak [#1]{\pagebreak [#1]\test@token }
-
-\def \a@c@hskip {\afterassignment \a@hskip \dimen0=}
-
-\def \a@hskip {\putwordb@x {\hskip \dimen0 }\test@token }
-
-\def \a@c@vskip {\afterassignment \a@vskip \dimen0=}
-
-\def \a@vskip {\a@@par \vskip \dimen0 \test@token }
-
-\def \a@c@vspace {% vertical space
-\unarab@codes \a@@vspace }
-
-\def \a@@vspace #1{% get argument
-\ifarab \a@@par \vskip #1\relax \fi
-\arab@codes \test@token }
-
-\def \a@c@break {\a@put@line \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% emphasis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@emphasize {% get next token
-\def \next@command {\arab@em}%
-\futurelet \next@token \test@space }
-
-\def \arab@em #1 {% overstrike group
-\def \next@command {\test@special}%
-\ifarab \setbox0 \hbox {\a@sequence {#1}}%
- \putwordb@x {\vbox {\hrule \kern 1pt \box0}}%
-\fi
-\ifshow {\tt \string \emphasize \ }%
-\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
-\fi\fi
-\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
-\fi \test@token }
-
-%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
-
-\def \a@c@footnote #1{% Plain TeX arabic footnote
-\rm \parindent \a@parindent \unarab@codes \def \@foot
-{\unskip \strut \egroup \arab@codes \set@arabfont \test@token }%
-\putwordb@x {#1}\a@spacetrue \vfootnote {#1}}
-
-%%%%%%%%%%%%%%%%%% \marginpar in an arabic environment %%%%%%%%%%%%%%%
-
-\def \a@c@marginpar {% for Arabic environments only
-\setbox0 \vtop \bgroup \unarab@codes \a@@marginpar }
-
-\long \def \a@@marginpar #1{% get text of note
-\hsize \marginparwidth \parskip 0pt \raggedright
-\noindent \rm \strut #1\vss \egroup \dp0 \z@
-\setbox\lineb@x \hbox {\unhbox\lineb@x
-\rlap {\hskip \marginparsep \box0 \hss }}\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\all@w@ne \settrans
-
-\def \a@c@tracingmacros {\afterassignment \test@token \tracingmacros=}
-
-\def \a@c@test #1{\csname test@#1true\endcsname \test@token }
-
-\def \a@c@untest #1{\csname test@#1false\endcsname \test@token }
-
-\a@spec@def \<{\a@get@ins }
-
-\def \a@get@ins #1>{\test@token #1 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% acmd.sty
+% ArabTeX command processing
+% 20.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {acmd.sty} {3.11 Arabic command processing } {20.08.2003}
+
+\def \a@command #1{% process an internal command
+\iftest@command \tracingmacros 1 \fi
+ \def@@cmd #1\xpa
+\ifx \the\a@@cmd \relax % no special handling?
+ \if\is@in@set #1\a@@listreg
+% \def \next {\xpa \test@token #1}\else
+ \def \next {\xpa \arab@tail #1}\else
+ \if\is@in@set #1\a@@listzero
+ \unarab@codes \def \next {#1\arab@tail }\else
+ \if\is@in@set #1\a@@listone
+ \unarab@codes \def \next ##1{#1{##1}\arab@tail }\else
+ \if\is@in@set #1\a@@listtwo
+ \unarab@codes \def \next ##1##2{#1{##1}{##2}\arab@tail }\else
+ \def \next {\a@cmderr #1}% disallowed
+ \fi\fi\fi\fi
+\else \def \next {\the\a@@cmd }% local routine
+\fi \next }
+
+\def \a@cmderr #1{% complain and substitute a dummy command
+ \errhelp {Your command will be echoed in the output}%
+\ifx #1\undefined \def \next {\a@puttt #1\test@token }%
+ \errmessage {Unknown arabic command: \nxp #1}%
+\else \errmessage {Illegal arabic command: \nxp #1}%
+ \a@@cmd = {{\a@puttt #1\arab@tail }}
+ \immediate\openout \a@@err = \jobname.err
+ \immediate\write \a@@err {\string \gdef \string \next \space
+ \xpa \a@@pat \meaning #1:->\pat@end \the\a@@cmd }% substitution
+ \immediate\closeout \a@@err
+ {\catcode `\@=11 \input \jobname.err }%
+\fi \next }
+
+\def \def@@cmd #1{% define \a@@cmd as \a@c@#1
+\ifcat \nxp #1\nxp ~%
+\global\a@@cmd = \xpa {\csname a@c@\string #1\endcsname }\else
+\global\a@@cmd = \xpa {\csname a@c@\xpa \@gobble \string #1\endcsname }\fi }
+
+\def \arab@tail {\arab@codes \set@arabfont \test@token }
+
+\def \a@@pat #1:#2->#3\pat@end {#2}
+
+\def \a@puttt #1{\putwordb@x {\tt \string #1}}
+
+%%%%%%%%%%%%%%%%%%%%%% enable internal commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newtoks \a@@listzero \newtoks \a@@listone
+\newtoks \a@@listtwo \newtoks \a@@listreg
+
+\long\def \a@@addcmd #1#2{% #1 cmd, #2 list
+\global #2 = \xpa {\the #2#1}}
+
+\long\def \all@wcmd #1{% enable parameterless command in arabic environment
+\a@@addcmd #1\a@@listzero }
+
+\long\def \all@w@ne #1{% enable command with 1 param in arabic environment
+\a@@addcmd #1\a@@listone }
+
+\long\def \all@wtw@ #1{% enable command with 2 params in arabic environment
+\a@@addcmd #1\a@@listtwo }
+
+\long\def \all@wif #1{% enable \#1true, \#1false
+\a@@name = \xpa \xpa \xpa {\xpa \@gobble \string #1}%
+\xpa \all@wcmd \csname \the\a@@name true\endcsname
+\xpa \all@wcmd \csname \the\a@@name false\endcsname }
+
+\long\def \all@whcmd #1{% enable command for horizontal mode
+\def@@cmd #1\all@wcmd #1%
+\xpa \def \the\a@@cmd {\putwordb@x {\leavevmode #1}\test@token }}
+
+\long\def \all@wvcmd #1{% enable command for vertical mode
+\def@@cmd #1\all@wcmd #1%
+\xpa \def \the\a@@cmd {\a@@par #1\test@token }}
+
+%%%%%%%%%%%%%%%%%%%%%% enable command definitions %%%%%%%%%%%%%%%%%%%%%%%%
+
+\long\def \allowarab #1{% enable new command in arabic environment
+\a@@addcmd #1\a@@listreg }
+
+\def \a@@def #1#2#3#4{% define command in RL mode
+\allowarab #2#1#2#3{#4}\test@token }
+
+\def \a@c@def #1#2#{\a@@def \def {#1}{#2}}
+
+\def \a@c@edef #1#2#{\a@@def \edef {#1}{#2}}
+
+\def \a@c@gdef #1#2#{\a@@def \gdef {#1}{#2}}
+
+\def \a@c@xdef #1#2#{\a@@def \xdef {#1}{#2}}
+
+%%%%%%%%%%%%%%%%%%%%%% enable ArabTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\all@wcmd \novocalize \all@wcmd \vocalize \all@wcmd \fullvocalize
+\all@wcmd \setnash \all@wcmd \setnashbf \all@wcmd \setnastaliq
+\all@wcmd \setarab \all@wcmd \setmaghribi \all@wcmd \setfarsi
+\all@wcmd \setturk \all@wcmd \setkurdish \all@wcmd \setbalut
+\all@wcmd \seturdu \all@wcmd \setpashto \all@wcmd \setverb
+\all@wcmd \yahdots \all@wcmd \yahnodots \all@wcmd \oldtanwin
+\all@wcmd \newtanwin \all@wcmd \accentshigh \all@wcmd \accentslow
+\all@wcmd \oldhamza \all@wcmd \newhamza \all@w@ne \setarabfont
+\all@w@ne \setcode \all@wcmd \endsetcode \all@wcmd \setuighur
+\iffalse
+\all@w@ne \input \all@w@ne \end
+\all@wcmd \relax \all@wcmd \indent \all@wcmd \noindent
+\all@w@ne \emphasize \all@wtw@ \footnote \all@w@ne \marginpar
+\all@w@ne \docommand \all@wtw@ \doassign \all@w@ne \mbox
+\all@w@ne \centerline \all@w@ne \spreadline \all@wtw@ \spreadbox
+\all@wcmd \nospace \all@w@ne \hspace \all@w@ne \tracingmacros
+\fi
+
+\all@wif \arab \all@wif \trans \all@wif \show
+\all@wif \spread \all@wif \ligs \all@wif \RL
+
+\all@whcmd \bigskip \all@whcmd \medskip \all@whcmd \smallskip
+\all@whcmd \hfill \all@whcmd \hfil \all@whcmd \space
+\all@whcmd \hss
+
+\ifx \LaTeX \undefined
+\all@wvcmd \bigskip \all@wvcmd \medskip \all@wvcmd \smallskip
+\fi
+
+\all@wvcmd \newpage \all@wvcmd \clearpage
+\all@wvcmd \vfil \all@wvcmd \vfill
+
+
+%%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@spec@def #1#2{% define routine for special character
+\def@@cmd #1\xpa \gdef \the\a@@cmd {#2}}
+
+\def \a@@chardef #1{\begingroup \lccode `\0 #1\lowercase
+{\endgroup \ifarab \putwordb@x {\a@rabwrite {0}}\fi
+\a@showinput {0}}\obey@space }
+
+\a@spec@def \#{\a@@chardef {`\#}} \a@spec@def \${\a@@chardef {`\$}}
+\a@spec@def \%{\a@@chardef {`\%}} \a@spec@def \&{\a@@chardef {`\&}}
+\a@spec@def \^{\a@@chardef {`\^}} \a@spec@def \_{\a@@chardef {`\_}}
+
+\a@spec@def \ {\a@spacefalse \putwordb@x {\arab@space }\test@token }
+
+\def \a@c@arabchar #1{% single character in the font
+\ifarab \putwordb@x {\char #1}\fi \a@showinput {\arabchar #1}\obey@space }
+
+\def \a@c@char {% read char number
+\begingroup \afterassignment \a@@char \count0=}
+
+\def \a@@char {% deposit character
+\edef \a@ch@r {\noexpand\a@c@arabchar {\the\count0}}%
+\xpa\endgroup \a@ch@r }
+
+%%%%%%%%%%%%%%%%%%% miscellaneous commands %%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@end {\end } \def \a@c@relax {\test@token }
+
+\def \a@c@par {\a@@par \test@token }
+
+\def \a@c@indent {\arab@indent \test@token }
+
+\def \a@c@noindent {\arab@noindent \test@token }
+
+\def \a@c@input {% \input inside arabic environment, Plain version
+\xpa \test@token \input }
+
+\def \a@c@doassign #1#2{% execute assignment
+#1#2\relax \test@token }
+
+\def \a@c@docommand #1{% expand and process user command
+\xpa \test@token \xpa {#1} }
+
+\def \a@c@bf {\setnashbf \arab@tail }
+\def \a@c@rm {\setnash \arab@tail }
+
+\def \a@c@today {\xpa \a@c@mbox \xpa {\a@@today }}
+
+\edef \a@@today {\number\day \space \ifcase\month\or
+yanAyir \or febrAyir \or mAris \or 'abrIl \or
+mAyU \or yUniyU \or yUliyU \or 'a.gus.tus \or
+sibtambar \or 'uktUbar \or nUfambar \or disambar \fi ,
+\number\year}
+
+\def \a@c@protect {\test@token }
+
+\long\def \a@c@cond #1#2#3\fi {% call conditional
+#1\ReturnElseFi {\test@token #2}%
+\else \ReturnFi {\test@token #3}\fi }
+
+\def \a@c@endinput {\endinput \test@token }
+
+%%%%%%%%%%%%%% \begin ... \end {romantext} %%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@romantext {% end Arabic mode and switch down (!) to Roman
+\endgroup \endarabtext \endgroup
+\def \@currenvir {romantext}\let \end \a@r@end \ignorespaces }
+
+\def \endromantext {% switch up (!) to Arabic mode
+\endgraf
+\def \@currenvir {document}\begingroup
+\def \@currenvir {arabtext}\arabtext }
+
+\let \a@l@end \end % save current meaning of \end
+
+\def \a@r@end #1{% new \end for the base level
+\def \@romantext {romantext}\def \@tempa {#1}%
+\ifx \@tempa \@romantext \let \@tempa \endromantext
+\else \def \@tempa {\a@l@end {#1}}%
+\fi \@tempa }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% boxes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@centerline #1{% new line, centered
+\a@@par \centerline {\a@showinput {#1}}%
+\ifarab \putwordb@x {\hss \a@sequence {#1}\hss }\a@put@line
+\fi \test@token }
+
+\def \a@c@spreadline #1{% new line, spread out
+\a@@par \initlineb@x \centerline {\a@showinput {#1}}%
+\ifarab \putwordb@x
+{\spreadtrue \a@sequence {#1}\setbox0 \lastbox \unhbox0 }\a@put@line
+\fi \test@token }
+
+\def \a@c@mbox #1{% put the argument into a box
+\ifarab \putwordb@x {\a@sequence {#1}}\fi
+\a@spacefalse \a@showinput {#1}\test@token }
+
+\def \a@c@spreadbox {% {width}{text} put the text into a box
+\unarab@codes \a@@spreadbox }
+
+\def \a@@spreadbox #1{% {width}{text} get the width
+\def \a@bwidth {#1}\arab@codes \a@spreadbox }
+
+\def \a@spreadbox #1{% {width}{text} get the text
+\ifarab \putwordb@x {\spreadtrue
+\setspace {3pt plus .3fil}%
+\a@sequence {#1}%
+\setbox0 \lastbox \hbox to \a@bwidth {\unhbox0 }}\fi
+\a@spacefalse \a@showinput {#1}\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% spacing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@nospace {% concatenate neighboring items
+\a@spacefalse \test@token }
+
+\let \nospace \relax
+
+\def \a@c@hspace {% horizontal space
+\unarab@codes \a@@hspace }
+
+\def \a@@hspace #1{% get argument
+\a@spacefalse \ifarab \putwordb@x {\hskip #1\relax }\fi
+\arab@codes \test@token }
+
+\def \a@c@pagebreak
+{\a@@par \@ifnextchar [{\a@@pagebreak }{\a@@pagebreak [4]}}
+
+\def \a@@pagebreak [#1]{\pagebreak [#1]\test@token }
+
+\def \a@c@hskip {\afterassignment \a@hskip \dimen0=}
+
+\def \a@hskip {\putwordb@x {\hskip \dimen0 }\test@token }
+
+\def \a@c@vskip {\afterassignment \a@vskip \dimen0=}
+
+\def \a@vskip {\a@@par \vskip \dimen0 \test@token }
+
+\def \a@c@vspace {% vertical space
+\unarab@codes \a@@vspace }
+
+\def \a@@vspace #1{% get argument
+\ifarab \a@@par \vskip #1\relax \fi
+\arab@codes \test@token }
+
+\def \a@c@break {\a@put@line \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% emphasis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@emphasize {% get next token
+\def \next@command {\arab@em}%
+\futurelet \next@token \test@space }
+
+\def \arab@em #1 {% overstrike group
+\def \next@command {\test@special}%
+\ifarab \setbox0 \hbox {\a@sequence {#1}}%
+ \putwordb@x {\vbox {\hrule \kern 1pt \box0}}%
+\fi
+\ifshow {\tt \string \emphasize \ }%
+\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
+\fi\fi
+\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
+\fi \test@token }
+
+%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
+
+\def \a@c@footnote #1{% Plain TeX arabic footnote
+\rm \parindent \a@parindent \unarab@codes \def \@foot
+{\unskip \strut \egroup \arab@codes \set@arabfont \test@token }%
+\putwordb@x {#1}\a@spacetrue \vfootnote {#1}}
+
+%%%%%%%%%%%%%%%%%% \marginpar in an arabic environment %%%%%%%%%%%%%%%
+
+\def \a@c@marginpar {% for Arabic environments only
+\setbox0 \vtop \bgroup \unarab@codes \a@@marginpar }
+
+\long \def \a@@marginpar #1{% get text of note
+\hsize \marginparwidth \parskip 0pt \raggedright
+\noindent \rm \strut #1\vss \egroup \dp0 \z@
+\setbox\lineb@x \hbox {\unhbox\lineb@x
+\rlap {\hskip \marginparsep \box0 \hss }}\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\all@w@ne \settrans
+
+\def \a@c@tracingmacros {\afterassignment \test@token \tracingmacros=}
+
+\def \a@c@test #1{\csname test@#1true\endcsname \test@token }
+
+\def \a@c@untest #1{\csname test@#1false\endcsname \test@token }
+
+\a@spec@def \<{\a@get@ins }
+
+\def \a@get@ins #1>{\test@token #1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/aconfig.sty b/language/arabic/arabtex/texinput/aconfig.sty
index fa3cf81b0d..47f837fa60 100644
--- a/language/arabic/arabtex/texinput/aconfig.sty
+++ b/language/arabic/arabtex/texinput/aconfig.sty
@@ -1,95 +1,95 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aconfig.sty
-% determine the configuration for ArabTeX
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%\a@ident {aconfig.sty}{3.11 get ArabTeX configuration } {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%% check environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@@Plain {Plain} \def \a@@LaTeX {LaTeX}
-\def \a@@LaTeXiizix {LaTeX2.09} \def \a@@LaTeXiie {LaTeX2e}
-\def \a@@EDMAC {EDMAC} \def \a@@EDMACiii {EDMAC3.00}
-\def \a@@EDMACiiixv {EDMAC3.15}
-\def \a@config {aconfig} \def \a@sty {sty}
-
-\def \UsePackage #1{\input {#1.sty}}
-
-\ifx \undefined \LaTeX \let \a@@env \a@@Plain
- \wlog {Plain TeX detected }\let \a@@var \a@@Plain
- \newcount \@listdepth \@listdepth \z@
- \newdimen \linewidth \linewidth \hsize
-\else \let \a@@env \a@@LaTeX
-\ifx \undefined \NeedsTeXFormat
- \wlog {LaTeX 2.09 detected }\let \a@@var \a@@LaTeXiizix
-\else \wlog {LaTeX2e detected }\let \a@@var \a@@LaTeXiie
- \listfiles
- \ifx \undefined \xpt \def \UsePackage {\usepackage }
- \fi
-\fi\fi
-
-\ifx \edmacloaded \relax \let \a@@env \a@@EDMAC
-\ifx \end@lemmas \undefined
- \wlog {EDMAC 3.00 detected }\let \a@@var \a@@EDMACiii
-\else \wlog {EDMAC 3.15 or later detected }\let \a@@var \a@@EDMACiiixv
-\fi\fi
-
-\ifx \undefined \originalTeX \else
- \wlog {BABEL detected}\def \a@babel {BABEL}%
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%% module reporting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcount \a@moduledate \newcount \a@maindate \a@maindate 0
-\def \arabtexconfig {$ArabTeX configuration:$}%
-
-\def \a@LaTeXdate #1#2#3#4#5#6#7#8{% fixed Y2k problem !!
-#1#2#3#4/#5#6/#7#8}% standard format
-
-\def \a@getstem #1.#2\relax {\def \a@stem {#1}\def \a@ext {#2}}
-
-\def \a@geteight #1#2#3#4#5#6#7#8#9\relax % pad to 8 characters
-{\def \a@eight {#1#2#3#4#5#6#7#8}\xpa \a@getpad \a@eight\space..\relax }
-
-\def \a@getpad #1.#2.#3\relax {\def \a@pad {#2}}
-
-\def \a@newdate #1.#2.#3.#4\@{\a@moduledate 0#3\relax
-\ifnum \a@moduledate < 100 \advance \a@moduledate 1900
-\message {^^J*** fix date (\a@@date ) of module \a@@module ! ***^^J^^J}%
-\ifnum \a@moduledate < 1990 \advance \a@moduledate 100
-\fi\fi
-\multiply \a@moduledate 100 \advance \a@moduledate 0#2
-\multiply \a@moduledate 100 \advance \a@moduledate 0#1 }
-
-\def \a@report {% identify actual run
-\typeout {Arabic processor `ArabTeX' [\number\a@maindate \space
-patch level \a@patchlevel ]}}
-
-\def \a@ident #1#2#3{% report loaded modules
-\def \a@@module {#1}\edef \a@@date {#3}%
-\xpa\a@newdate \a@@date ...\@ % format date of module
-\ifnum \a@moduledate > \a@maindate \a@maindate \a@moduledate \fi
-\edef \a@descr {\xpa \a@LaTeXdate \the\a@moduledate \space\space #2}
-\a@getstem #1\relax
-\ifx \a@@var \a@@LaTeXiie
- \ifx \a@stem \a@config \else
- \ifx \a@ext \a@sty \ProvidesPackage {\a@stem }[\a@descr ]%
- \fi
- \fi
-\else \message {#2} \message {(#3)}
-\fi
-\xpa \a@geteight \a@stem.\space\space\space\space\space\space\relax
-\edef \arabtexconfig {\arabtexconfig $\a@pad #1 \space\a@descr }}
-
-\a@ident {aconfig.sty}{3.08 get ArabTeX configuration } {01.11.1998}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aconfig.sty
+% determine the configuration for ArabTeX
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\a@ident {aconfig.sty}{3.11 get ArabTeX configuration } {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%% check environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@@Plain {Plain} \def \a@@LaTeX {LaTeX}
+\def \a@@LaTeXiizix {LaTeX2.09} \def \a@@LaTeXiie {LaTeX2e}
+\def \a@@EDMAC {EDMAC} \def \a@@EDMACiii {EDMAC3.00}
+\def \a@@EDMACiiixv {EDMAC3.15}
+\def \a@config {aconfig} \def \a@sty {sty}
+
+\def \UsePackage #1{\input {#1.sty}}
+
+\ifx \undefined \LaTeX \let \a@@env \a@@Plain
+ \wlog {Plain TeX detected }\let \a@@var \a@@Plain
+ \newcount \@listdepth \@listdepth \z@
+ \newdimen \linewidth \linewidth \hsize
+\else \let \a@@env \a@@LaTeX
+\ifx \undefined \NeedsTeXFormat
+ \wlog {LaTeX 2.09 detected }\let \a@@var \a@@LaTeXiizix
+\else \wlog {LaTeX2e detected }\let \a@@var \a@@LaTeXiie
+ \listfiles
+ \ifx \undefined \xpt \def \UsePackage {\usepackage }
+ \fi
+\fi\fi
+
+\ifx \edmacloaded \relax \let \a@@env \a@@EDMAC
+\ifx \end@lemmas \undefined
+ \wlog {EDMAC 3.00 detected }\let \a@@var \a@@EDMACiii
+\else \wlog {EDMAC 3.15 or later detected }\let \a@@var \a@@EDMACiiixv
+\fi\fi
+
+\ifx \undefined \originalTeX \else
+ \wlog {BABEL detected}\def \a@babel {BABEL}%
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%% module reporting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcount \a@moduledate \newcount \a@maindate \a@maindate 0
+\def \arabtexconfig {$ArabTeX configuration:$}%
+
+\def \a@LaTeXdate #1#2#3#4#5#6#7#8{% fixed Y2k problem !!
+#1#2#3#4/#5#6/#7#8}% standard format
+
+\def \a@getstem #1.#2\relax {\def \a@stem {#1}\def \a@ext {#2}}
+
+\def \a@geteight #1#2#3#4#5#6#7#8#9\relax % pad to 8 characters
+{\def \a@eight {#1#2#3#4#5#6#7#8}\xpa \a@getpad \a@eight\space..\relax }
+
+\def \a@getpad #1.#2.#3\relax {\def \a@pad {#2}}
+
+\def \a@newdate #1.#2.#3.#4\@{\a@moduledate 0#3\relax
+\ifnum \a@moduledate < 100 \advance \a@moduledate 1900
+\message {^^J*** fix date (\a@@date ) of module \a@@module ! ***^^J^^J}%
+\ifnum \a@moduledate < 1990 \advance \a@moduledate 100
+\fi\fi
+\multiply \a@moduledate 100 \advance \a@moduledate 0#2
+\multiply \a@moduledate 100 \advance \a@moduledate 0#1 }
+
+\def \a@report {% identify actual run
+\typeout {Arabic processor `ArabTeX' [\number\a@maindate \space
+patch level \a@patchlevel ]}}
+
+\def \a@ident #1#2#3{% report loaded modules
+\def \a@@module {#1}\edef \a@@date {#3}%
+\xpa\a@newdate \a@@date ...\@ % format date of module
+\ifnum \a@moduledate > \a@maindate \a@maindate \a@moduledate \fi
+\edef \a@descr {\xpa \a@LaTeXdate \the\a@moduledate \space\space #2}
+\a@getstem #1\relax
+\ifx \a@@var \a@@LaTeXiie
+ \ifx \a@stem \a@config \else
+ \ifx \a@ext \a@sty \ProvidesPackage {\a@stem }[\a@descr ]%
+ \fi
+ \fi
+\else \message {#2} \message {(#3)}
+\fi
+\xpa \a@geteight \a@stem.\space\space\space\space\space\space\relax
+\edef \arabtexconfig {\arabtexconfig $\a@pad #1 \space\a@descr }}
+
+\a@ident {aconfig.sty}{3.08 get ArabTeX configuration } {01.11.1998}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/aedpatch.sty b/language/arabic/arabtex/texinput/aedpatch.sty
index 17ae709d35..f5f8296fcc 100644
--- a/language/arabic/arabtex/texinput/aedpatch.sty
+++ b/language/arabic/arabtex/texinput/aedpatch.sty
@@ -1,220 +1,220 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aedpatch.sty
-% patches for EDMAC to operate with ArabTeX
-% 19.03.93 2.07 EDMAC 3.00
-% 19.06.94 3.02 EDMAC 3.15 compatible
-% \pstart, \pend, \autopar within Arabic
-% 06.05.97 3.05 bug fixes, works with EDMAC 3.17
-% 05.07.97 3.06 for edmacfss.sty
-% 22.01.98 3.06a fixed parafootnote format
-% 07.02.98 3.06a fixed parafootnote format for LaTeX
-% 08.07.98 3.07 new ArabTeX version
-% 10.04.99 3.08 fixed spurious space
-% 20.08.03 3.11 cleanup
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \aedatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \aedatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {aedpatch.sty} {3.11 ArabTeX extensions for EDMAC} {20.08.2003}
-
-\def \tr@ce@n {\tracingmacros 0}
-
-\def \tr@ce@ff {\edef \tr@ce@n
- {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0}
-\let \tr@ce@n \relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% modify some EDMAC commands in a compatible way
-
-\long \def \text #1#2/{% inside Roman text
-% depends on EDMAC version used
-\leavevmode
-\begingroup \no@expands
- \xdef\@tag{#1}%
- \set@line \global\insert@count=0
- \ignorespaces #2\relax \flag@start
-\endgroup
-#1%
-\a@end@lemma
-\flag@end }
-
-\def \a@end@lemma {% for EDMAC 3.00 and EDMAC 3.15
-\ifx \end@lemma \undefined % as in EDMAC 3.15 - 3.17
- \ifx\end@lemmas\empty \else
- \gl@p\end@lemmas\to\x@lemma
- \x@lemma
- \global\let\x@lemma=\relax
- \fi
-\else \the\end@lemma % defined or EDMAC 3.00
-\fi }
-
-\def \lemma #1{% in argument of \text
-% care for delayed expansion of some ArabTeX commands
- \begingroup \def \protect {\noexpand \protect \noexpand }%
- \xdef\@tag{#1}%
- \endgroup \ignorespaces }
-
-\def \do@line {% break off a line from \raw@text
- {\vbadness=10000 \splittopskip=0pt
- \advance \baselineskip 1ex
-% guard against some overfull \vboxes !
-% Arabic lines have a greater height and depth
- \global \setbox\one@line
- \vsplit \raw@text to \baselineskip }%
- \unvbox\one@line \global \setbox\one@line \lastbox \getline@num
- \hbox to \hsize {\affixline@num {\hfil
- \hbox to \wd\one@line {\new@line \unhbox\one@line }}}%
- \add@inserts
- \add@penalties }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% variants for use inside an Arabic environment
-
-\def \<#1>{\RL{#1}} % allow long insertions
-
-{\catcode `< \active
-\gdef <#1>{\RL{#1}}} % allow long insertions
-
-\def \a@c@text {% internal version of \text
-% parameters will have the original catcodes
-\tr@ce@n \leavea@vmode \unarab@codes \begingroup
-\tr@ce@ff \rm \tr@ce@n \a@@text }
-
-\long \def \a@@text #1{% auxiliary routine
-% to kill leading blanks and remove spurious braces from #2
-\def \next@command {\a@@@text {#1}}%
-\futurelet \next@token \test@space }
-
-\def \a@append #1{% to the \lineb@x
-\setbox \lineb@x \hbox {\unhbox \lineb@x #1}}
-
-\def \a@get@text #1\@@ {% get flags and lemma
-\a@append {\flag@start }\a@@Linsert {#1}}
-
-\def \a@put@text {% unpack \Linsertb@x
-\a@Lunpack \putwordb@x {\ins@skip }}
-
-\long \def \a@@@text #1#2/{% inside arabic enviroment:
-% stay in vertical mode, put the text into a \hbox
-% and deposit the box *and* the \writes in the Arabic line
- \no@expands
- \def \next@command {\test@special}%
- \xdef \@tag{#1}\set@line \global\insert@count=0
- \aftergroup \a@get@text
- % prepare for collecting any side effects of #2
- \ignorespaces #2\relax
-\endgroup
- #1\a@end@lemma \@@ % close the text
- \a@put@text \a@append {\flag@end }%
- \arab@codes \a@spacetrue
-\tr@ce@ff \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@label #1{% outside the arguments of \text
-% hide the \write commands inside a box in the Arabic line
-% otherwise \do@line will not find the correct line breaks
- \do@labelsfile
- \ifx \labelref@list \empty \xdef \label@refs {\zz@@@ }%
- \else \gl@p \labelref@list \to \label@refs
- \fi
- \edef \next {\write\@aux {\string\make@labels \label@refs|{#1}}}%
- \global \setbox \wordb@x \hbox
- {\write\linenum@out {\string\@lab }\next }%
- \put@word \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \a@par \a@@par % save for \a@@everypar in \a@c@autopar
-
-\def \a@c@pstart {\pstart \test@token }
-
-\def \a@c@pend {\a@par \pend \a@par \test@token }
-
-\def \a@c@autopar {% use inside Arabic environment
-\ifnumbering \else \errmessage
- {\string\autopar\space must be used within a numbered section}%
- \beginnumbering
-\fi
-\a@@everypar= {\setbox0 = \box \lineb@x \let \next \test@token
- \a@par \pstart % starts a group
- \def \a@@par {\a@par \pend \a@par }%
- \def \end {\a@par \pend \test@token \end }%
- \a@@everypar= {}\arab@indent }%
-\a@spacefalse \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% allow still more EDMAC commands in Arabic text also
-
-\all@w@ne \pageref \all@w@ne \lineref \all@w@ne \sublineref
-\all@w@ne \xpageref \all@w@ne \xlineref \all@w@ne \xsublineref
-\all@wtw@ \makelabel \all@wtw@ \xxref
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% fix some bugs in EDMAC (Plain TeX and LaTeX2e versions)
-
-\xpa\def \xpa\no@expands \xpa{\no@expands \let ~=0\relax }
-
-\ifx\selectfont\undefined
-
-\font \nashix =nash14 scaled 900
-\font \nashviii =nash14 scaled 800
-
-\xpa\def \xpa\eightpoint \xpa{\eightpoint % Arabic is higher
-\normalbaselineskip=15.99pt
-\setbox\strutbox=\hbox{\vrule height10pt depth6pt width0pt}%
-\normallineskiplimit -16pt
-\setarabfont \nashviii
-\normalbaselines \rm }
-
-\else
-\listfiles
-
-\def\notefontsetup{\rm\fontsize{8}{15.99pt}\selectfont
-\lineskiplimit -\baselineskip }
-
-\def \begin #1{% call \a@c@#1
-% enable local \end
-\@ifundefined {#1}%
-{\def \@tempa {\@latexerr {Environment #1 undefined}\@eha }}%
-{\def \@tempa {\def \@currenvir {#1}\csname #1\endcsname }}%
-\begingroup \let \end \a@l@end \@endpefalse \@tempa }
-
-\def \a@l@end #1{% call \end#1
-% local version of \end
-\csname end#1\endcsname \@checkend {#1}%
-\if@endpe \global \let \@gtempa \@doendpe
-\else \global \let \@gtempa \relax
-\fi \endgroup \@gtempa }
-
-\fi
-
-\interparanoteglue{1em plus2em minus.4em}
-% more stretch for Arabic text
-
-\ifx \LaTeX \undefined \else \listfiles \fi
-
-\def \end {\newlinechar `$\wlog {\arabtexconfig }\@@end }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \edmacloaded \relax
- \ifx \selectfont \undefined
- \let \notefontsetup \eightpoint
- \fi
- \footnormal{A} \footnormal{B} \footnormal{C}
- \footnormal{D} \footnormal{E}
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode`\@ = \aedatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aedpatch.sty
+% patches for EDMAC to operate with ArabTeX
+% 19.03.93 2.07 EDMAC 3.00
+% 19.06.94 3.02 EDMAC 3.15 compatible
+% \pstart, \pend, \autopar within Arabic
+% 06.05.97 3.05 bug fixes, works with EDMAC 3.17
+% 05.07.97 3.06 for edmacfss.sty
+% 22.01.98 3.06a fixed parafootnote format
+% 07.02.98 3.06a fixed parafootnote format for LaTeX
+% 08.07.98 3.07 new ArabTeX version
+% 10.04.99 3.08 fixed spurious space
+% 20.08.03 3.11 cleanup
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \aedatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \aedatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {aedpatch.sty} {3.11 ArabTeX extensions for EDMAC} {20.08.2003}
+
+\def \tr@ce@n {\tracingmacros 0}
+
+\def \tr@ce@ff {\edef \tr@ce@n
+ {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0}
+\let \tr@ce@n \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% modify some EDMAC commands in a compatible way
+
+\long \def \text #1#2/{% inside Roman text
+% depends on EDMAC version used
+\leavevmode
+\begingroup \no@expands
+ \xdef\@tag{#1}%
+ \set@line \global\insert@count=0
+ \ignorespaces #2\relax \flag@start
+\endgroup
+#1%
+\a@end@lemma
+\flag@end }
+
+\def \a@end@lemma {% for EDMAC 3.00 and EDMAC 3.15
+\ifx \end@lemma \undefined % as in EDMAC 3.15 - 3.17
+ \ifx\end@lemmas\empty \else
+ \gl@p\end@lemmas\to\x@lemma
+ \x@lemma
+ \global\let\x@lemma=\relax
+ \fi
+\else \the\end@lemma % defined or EDMAC 3.00
+\fi }
+
+\def \lemma #1{% in argument of \text
+% care for delayed expansion of some ArabTeX commands
+ \begingroup \def \protect {\noexpand \protect \noexpand }%
+ \xdef\@tag{#1}%
+ \endgroup \ignorespaces }
+
+\def \do@line {% break off a line from \raw@text
+ {\vbadness=10000 \splittopskip=0pt
+ \advance \baselineskip 1ex
+% guard against some overfull \vboxes !
+% Arabic lines have a greater height and depth
+ \global \setbox\one@line
+ \vsplit \raw@text to \baselineskip }%
+ \unvbox\one@line \global \setbox\one@line \lastbox \getline@num
+ \hbox to \hsize {\affixline@num {\hfil
+ \hbox to \wd\one@line {\new@line \unhbox\one@line }}}%
+ \add@inserts
+ \add@penalties }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% variants for use inside an Arabic environment
+
+\def \<#1>{\RL{#1}} % allow long insertions
+
+{\catcode `< \active
+\gdef <#1>{\RL{#1}}} % allow long insertions
+
+\def \a@c@text {% internal version of \text
+% parameters will have the original catcodes
+\tr@ce@n \leavea@vmode \unarab@codes \begingroup
+\tr@ce@ff \rm \tr@ce@n \a@@text }
+
+\long \def \a@@text #1{% auxiliary routine
+% to kill leading blanks and remove spurious braces from #2
+\def \next@command {\a@@@text {#1}}%
+\futurelet \next@token \test@space }
+
+\def \a@append #1{% to the \lineb@x
+\setbox \lineb@x \hbox {\unhbox \lineb@x #1}}
+
+\def \a@get@text #1\@@ {% get flags and lemma
+\a@append {\flag@start }\a@@Linsert {#1}}
+
+\def \a@put@text {% unpack \Linsertb@x
+\a@Lunpack \putwordb@x {\ins@skip }}
+
+\long \def \a@@@text #1#2/{% inside arabic enviroment:
+% stay in vertical mode, put the text into a \hbox
+% and deposit the box *and* the \writes in the Arabic line
+ \no@expands
+ \def \next@command {\test@special}%
+ \xdef \@tag{#1}\set@line \global\insert@count=0
+ \aftergroup \a@get@text
+ % prepare for collecting any side effects of #2
+ \ignorespaces #2\relax
+\endgroup
+ #1\a@end@lemma \@@ % close the text
+ \a@put@text \a@append {\flag@end }%
+ \arab@codes \a@spacetrue
+\tr@ce@ff \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@label #1{% outside the arguments of \text
+% hide the \write commands inside a box in the Arabic line
+% otherwise \do@line will not find the correct line breaks
+ \do@labelsfile
+ \ifx \labelref@list \empty \xdef \label@refs {\zz@@@ }%
+ \else \gl@p \labelref@list \to \label@refs
+ \fi
+ \edef \next {\write\@aux {\string\make@labels \label@refs|{#1}}}%
+ \global \setbox \wordb@x \hbox
+ {\write\linenum@out {\string\@lab }\next }%
+ \put@word \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \a@par \a@@par % save for \a@@everypar in \a@c@autopar
+
+\def \a@c@pstart {\pstart \test@token }
+
+\def \a@c@pend {\a@par \pend \a@par \test@token }
+
+\def \a@c@autopar {% use inside Arabic environment
+\ifnumbering \else \errmessage
+ {\string\autopar\space must be used within a numbered section}%
+ \beginnumbering
+\fi
+\a@@everypar= {\setbox0 = \box \lineb@x \let \next \test@token
+ \a@par \pstart % starts a group
+ \def \a@@par {\a@par \pend \a@par }%
+ \def \end {\a@par \pend \test@token \end }%
+ \a@@everypar= {}\arab@indent }%
+\a@spacefalse \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% allow still more EDMAC commands in Arabic text also
+
+\all@w@ne \pageref \all@w@ne \lineref \all@w@ne \sublineref
+\all@w@ne \xpageref \all@w@ne \xlineref \all@w@ne \xsublineref
+\all@wtw@ \makelabel \all@wtw@ \xxref
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% fix some bugs in EDMAC (Plain TeX and LaTeX2e versions)
+
+\xpa\def \xpa\no@expands \xpa{\no@expands \let ~=0\relax }
+
+\ifx\selectfont\undefined
+
+\font \nashix =nash14 scaled 900
+\font \nashviii =nash14 scaled 800
+
+\xpa\def \xpa\eightpoint \xpa{\eightpoint % Arabic is higher
+\normalbaselineskip=15.99pt
+\setbox\strutbox=\hbox{\vrule height10pt depth6pt width0pt}%
+\normallineskiplimit -16pt
+\setarabfont \nashviii
+\normalbaselines \rm }
+
+\else
+\listfiles
+
+\def\notefontsetup{\rm\fontsize{8}{15.99pt}\selectfont
+\lineskiplimit -\baselineskip }
+
+\def \begin #1{% call \a@c@#1
+% enable local \end
+\@ifundefined {#1}%
+{\def \@tempa {\@latexerr {Environment #1 undefined}\@eha }}%
+{\def \@tempa {\def \@currenvir {#1}\csname #1\endcsname }}%
+\begingroup \let \end \a@l@end \@endpefalse \@tempa }
+
+\def \a@l@end #1{% call \end#1
+% local version of \end
+\csname end#1\endcsname \@checkend {#1}%
+\if@endpe \global \let \@gtempa \@doendpe
+\else \global \let \@gtempa \relax
+\fi \endgroup \@gtempa }
+
+\fi
+
+\interparanoteglue{1em plus2em minus.4em}
+% more stretch for Arabic text
+
+\ifx \LaTeX \undefined \else \listfiles \fi
+
+\def \end {\newlinechar `$\wlog {\arabtexconfig }\@@end }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \edmacloaded \relax
+ \ifx \selectfont \undefined
+ \let \notefontsetup \eightpoint
+ \fi
+ \footnormal{A} \footnormal{B} \footnormal{C}
+ \footnormal{D} \footnormal{E}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`\@ = \aedatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/afonts.sty b/language/arabic/arabtex/texinput/afonts.sty
index 675681bed7..4b7303ad24 100644
--- a/language/arabic/arabtex/texinput/afonts.sty
+++ b/language/arabic/arabtex/texinput/afonts.sty
@@ -1,52 +1,52 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% afonts.sty
-% 18.07.91 1.0
-% 20.09.91 1.1 added NFSS macros (br)
-% 19.11.91 1.2 magstephalf
-% 24.12.91 1.3 format
-% 12.02.92 1.4 message delayed
-% 27.02.92 1.5 nash14 font
-% 31.08.93 1.6 added support for NFSS2, missing `pt' in NFSS1 def. (br)
-% 14.03.94 1.7 identify lfonts.tex or NFSS version used
-% 16.11.95 3.04 split into separate files
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% load this file only, if \pnash not defined
-
-\expandafter \ifx \csname pnash\endcsname \relax \else
- \expandafter \endinput \fi
-
-\a@ident {afonts.sty} {3.04 define Naskh font } {16.11.1995}
-
-\def\nash {\protect\pnash}
-\def\nashbf {\protect\pnashbf}
-% select the nash font with \nash
-
-\expandafter\ifx\csname DeclareFontShape\endcsname\relax
-
-% If we are using the NFSS, Version 2, \DeclareFontShape
-% is defined.
-% (The \expandafter\ifx\csname...\endcsname\relax is necessary,
-% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined
-% command.)
-
-\expandafter\ifx\csname selectfont\endcsname\relax
-
-% Now it's possible that NFSS, Version 1, is used.
-% If \selectfont is defined, NFSS is active, otherwise
-% we assume LaTeX's `lfonts.tex'.
-
- % OLD FONT SELECTION
- \UsePackage {afonts0}
- \else % NEW FONT SELECTION -- Version 1
- \UsePackage {afonts1}
- \fi
-\else % NEW FONT SELECTION -- Version 2
- \UsePackage {afonts2}
-\fi
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% afonts.sty
+% 18.07.91 1.0
+% 20.09.91 1.1 added NFSS macros (br)
+% 19.11.91 1.2 magstephalf
+% 24.12.91 1.3 format
+% 12.02.92 1.4 message delayed
+% 27.02.92 1.5 nash14 font
+% 31.08.93 1.6 added support for NFSS2, missing `pt' in NFSS1 def. (br)
+% 14.03.94 1.7 identify lfonts.tex or NFSS version used
+% 16.11.95 3.04 split into separate files
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% load this file only, if \pnash not defined
+
+\expandafter \ifx \csname pnash\endcsname \relax \else
+ \expandafter \endinput \fi
+
+\a@ident {afonts.sty} {3.04 define Naskh font } {16.11.1995}
+
+\def\nash {\protect\pnash}
+\def\nashbf {\protect\pnashbf}
+% select the nash font with \nash
+
+\expandafter\ifx\csname DeclareFontShape\endcsname\relax
+
+% If we are using the NFSS, Version 2, \DeclareFontShape
+% is defined.
+% (The \expandafter\ifx\csname...\endcsname\relax is necessary,
+% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined
+% command.)
+
+\expandafter\ifx\csname selectfont\endcsname\relax
+
+% Now it's possible that NFSS, Version 1, is used.
+% If \selectfont is defined, NFSS is active, otherwise
+% we assume LaTeX's `lfonts.tex'.
+
+ % OLD FONT SELECTION
+ \UsePackage {afonts0}
+ \else % NEW FONT SELECTION -- Version 1
+ \UsePackage {afonts1}
+ \fi
+\else % NEW FONT SELECTION -- Version 2
+ \UsePackage {afonts2}
+\fi
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/afonts0.sty b/language/arabic/arabtex/texinput/afonts0.sty
index f5d8b7b416..e123923825 100644
--- a/language/arabic/arabtex/texinput/afonts0.sty
+++ b/language/arabic/arabtex/texinput/afonts0.sty
@@ -1,60 +1,60 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% afonts0.sty
-% ArabTeX
-% load Naskh14 for old LateX
-% 16.11.95
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {afonts0.sty} {3.04 define Naskh font for old LaTeX} {16.11.1995}
-
-% OLD FONT SELECTION
-% load all necessary fonts
-
-\newfont {\tennash }{nash14}
-\newfont {\elvnnash}{nash14 scaled 1095}
-\newfont {\twlvnash}{nash14 \@magscale1}
-\newfont {\frtnnash}{nash14 \@magscale2}
-\newfont {\svtnnash}{nash14 \@magscale3}
-\newfont {\twtynash}{nash14 \@magscale4}
-\newfont {\twfvnash}{nash14 \@magscale5}
-
-\newfont {\tennashbf }{nash14bf}
-\newfont {\elvnnashbf}{nash14bf scaled 1095}
-\newfont {\twlvnashbf}{nash14bf \@magscale1}
-\newfont {\frtnnashbf}{nash14bf \@magscale2}
-\newfont {\svtnnashbf}{nash14bf \@magscale3}
-\newfont {\twtynashbf}{nash14bf \@magscale4}
-\newfont {\twfvnashbf}{nash14bf \@magscale5}
-
-% add the \pnash command to the size changing hooks
-
-\@addfontinfo \@vpt {\def\pnash {\tennash}}
-\@addfontinfo \@viipt {\def\pnash {\tennash}}
-\@addfontinfo \@viiipt {\def\pnash {\tennash}}
-\@addfontinfo \@ixpt {\def\pnash {\tennash}}
-\@addfontinfo \@xpt {\def\pnash {\tennash}}
-\@addfontinfo \@xipt {\def\pnash {\elvnnash}}
-\@addfontinfo \@xiipt {\def\pnash {\twlvnash}}
-\@addfontinfo \@xivpt {\def\pnash {\frtnnash}}
-\@addfontinfo \@xviipt {\def\pnash {\svtnnash}}
-\@addfontinfo \@xxpt {\def\pnash {\twtynash}}
-\@addfontinfo \@xxvpt {\def\pnash {\twfvnash}}
-
-\@addfontinfo \@vpt {\def\pnashbf {\tennashbf}}
-\@addfontinfo \@viipt {\def\pnashbf {\tennashbf}}
-\@addfontinfo \@viiipt {\def\pnashbf {\tennashbf}}
-\@addfontinfo \@ixpt {\def\pnashbf {\tennashbf}}
-\@addfontinfo \@xpt {\def\pnashbf {\tennashbf}}
-\@addfontinfo \@xipt {\def\pnashbf {\elvnnashbf}}
-\@addfontinfo \@xiipt {\def\pnashbf {\twlvnashbf}}
-\@addfontinfo \@xivpt {\def\pnashbf {\frtnnashbf}}
-\@addfontinfo \@xviipt {\def\pnashbf {\svtnnashbf}}
-\@addfontinfo \@xxpt {\def\pnashbf {\twtynashbf}}
-\@addfontinfo \@xxvpt {\def\pnashbf {\twfvnashbf}}
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% afonts0.sty
+% ArabTeX
+% load Naskh14 for old LateX
+% 16.11.95
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {afonts0.sty} {3.04 define Naskh font for old LaTeX} {16.11.1995}
+
+% OLD FONT SELECTION
+% load all necessary fonts
+
+\newfont {\tennash }{nash14}
+\newfont {\elvnnash}{nash14 scaled 1095}
+\newfont {\twlvnash}{nash14 \@magscale1}
+\newfont {\frtnnash}{nash14 \@magscale2}
+\newfont {\svtnnash}{nash14 \@magscale3}
+\newfont {\twtynash}{nash14 \@magscale4}
+\newfont {\twfvnash}{nash14 \@magscale5}
+
+\newfont {\tennashbf }{nash14bf}
+\newfont {\elvnnashbf}{nash14bf scaled 1095}
+\newfont {\twlvnashbf}{nash14bf \@magscale1}
+\newfont {\frtnnashbf}{nash14bf \@magscale2}
+\newfont {\svtnnashbf}{nash14bf \@magscale3}
+\newfont {\twtynashbf}{nash14bf \@magscale4}
+\newfont {\twfvnashbf}{nash14bf \@magscale5}
+
+% add the \pnash command to the size changing hooks
+
+\@addfontinfo \@vpt {\def\pnash {\tennash}}
+\@addfontinfo \@viipt {\def\pnash {\tennash}}
+\@addfontinfo \@viiipt {\def\pnash {\tennash}}
+\@addfontinfo \@ixpt {\def\pnash {\tennash}}
+\@addfontinfo \@xpt {\def\pnash {\tennash}}
+\@addfontinfo \@xipt {\def\pnash {\elvnnash}}
+\@addfontinfo \@xiipt {\def\pnash {\twlvnash}}
+\@addfontinfo \@xivpt {\def\pnash {\frtnnash}}
+\@addfontinfo \@xviipt {\def\pnash {\svtnnash}}
+\@addfontinfo \@xxpt {\def\pnash {\twtynash}}
+\@addfontinfo \@xxvpt {\def\pnash {\twfvnash}}
+
+\@addfontinfo \@vpt {\def\pnashbf {\tennashbf}}
+\@addfontinfo \@viipt {\def\pnashbf {\tennashbf}}
+\@addfontinfo \@viiipt {\def\pnashbf {\tennashbf}}
+\@addfontinfo \@ixpt {\def\pnashbf {\tennashbf}}
+\@addfontinfo \@xpt {\def\pnashbf {\tennashbf}}
+\@addfontinfo \@xipt {\def\pnashbf {\elvnnashbf}}
+\@addfontinfo \@xiipt {\def\pnashbf {\twlvnashbf}}
+\@addfontinfo \@xivpt {\def\pnashbf {\frtnnashbf}}
+\@addfontinfo \@xviipt {\def\pnashbf {\svtnnashbf}}
+\@addfontinfo \@xxpt {\def\pnashbf {\twtynashbf}}
+\@addfontinfo \@xxvpt {\def\pnashbf {\twfvnashbf}}
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/afonts1.sty b/language/arabic/arabtex/texinput/afonts1.sty
index 669ccb6a60..3d074dea54 100644
--- a/language/arabic/arabtex/texinput/afonts1.sty
+++ b/language/arabic/arabtex/texinput/afonts1.sty
@@ -1,61 +1,61 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% afonts1.sty
-% ArabTeX
-% load Naskh14 for NFSS1
-% 16.11.95
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {afonts1.sty} {3.04 define Naskh font for NFSS1} {16.11.1995}
-
-\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11
-\chardef \fntlscode = \catcode`\< \catcode`\< = 12
-
-% NEW FONT SELECTION -- Version 1
-
-% define \pnash to use the `nash' family, `m'edium series, `n'ormal shape.
-
-\def\pnash{\family{nash}\series{m}\shape{n}\selectfont}
-\def\pnashbf{\family{nash}\series{bx}\shape{n}\selectfont}
-
-% setup the font definition table
-% (`1' at the beginning of a fontname: size not available, print
-% warning to inform the user)
-
-\new@fontshape{nash}{m}{n}{%
- <5>1nash14%
- <6>1nash14%
- <7>1nash14%
- <8>1nash14%
- <9>1nash14%
- <10>nash14 at14.4pt%
- <11>nash14 at15.77441pt%
- <12>nash14 at17.28pt%
- <14>nash14 at20.736pt%
- <17>nash14 at24.8832pt%
- <20>1nash14 at29.85984pt%
- <25>1nash14 at35.831808pt}{}
-
-\new@fontshape{nash}{bx}{n}{%
- <5>1nash14bf%
- <6>1nash14bf%
- <7>1nash14bf%
- <8>1nash14bf%
- <9>1nash14bf%
- <10>nash14bf at14.4pt%
- <11>nash14bf at15.77441pt%
- <12>nash14bf at17.28pt%
- <14>nash14bf at20.736pt%
- <17>nash14bf at24.8832pt%
- <20>nash14bf at29.85984pt%
- <25>nash14bf at35.831808pt}{}
-
-\extra@def{nash}{}{}
-
-\catcode`\@ = \fntatcode \catcode`\< = \fntlscode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% afonts1.sty
+% ArabTeX
+% load Naskh14 for NFSS1
+% 16.11.95
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {afonts1.sty} {3.04 define Naskh font for NFSS1} {16.11.1995}
+
+\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11
+\chardef \fntlscode = \catcode`\< \catcode`\< = 12
+
+% NEW FONT SELECTION -- Version 1
+
+% define \pnash to use the `nash' family, `m'edium series, `n'ormal shape.
+
+\def\pnash{\family{nash}\series{m}\shape{n}\selectfont}
+\def\pnashbf{\family{nash}\series{bx}\shape{n}\selectfont}
+
+% setup the font definition table
+% (`1' at the beginning of a fontname: size not available, print
+% warning to inform the user)
+
+\new@fontshape{nash}{m}{n}{%
+ <5>1nash14%
+ <6>1nash14%
+ <7>1nash14%
+ <8>1nash14%
+ <9>1nash14%
+ <10>nash14 at14.4pt%
+ <11>nash14 at15.77441pt%
+ <12>nash14 at17.28pt%
+ <14>nash14 at20.736pt%
+ <17>nash14 at24.8832pt%
+ <20>1nash14 at29.85984pt%
+ <25>1nash14 at35.831808pt}{}
+
+\new@fontshape{nash}{bx}{n}{%
+ <5>1nash14bf%
+ <6>1nash14bf%
+ <7>1nash14bf%
+ <8>1nash14bf%
+ <9>1nash14bf%
+ <10>nash14bf at14.4pt%
+ <11>nash14bf at15.77441pt%
+ <12>nash14bf at17.28pt%
+ <14>nash14bf at20.736pt%
+ <17>nash14bf at24.8832pt%
+ <20>nash14bf at29.85984pt%
+ <25>nash14bf at35.831808pt}{}
+
+\extra@def{nash}{}{}
+
+\catcode`\@ = \fntatcode \catcode`\< = \fntlscode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/afonts2.sty b/language/arabic/arabtex/texinput/afonts2.sty
index b65bd57300..6d3c75fd08 100644
--- a/language/arabic/arabtex/texinput/afonts2.sty
+++ b/language/arabic/arabtex/texinput/afonts2.sty
@@ -1,54 +1,54 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% afonts2.sty
-% ArabTeX
-% load Naskh14 for NFSS2
-% 19.10.1999
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {afonts2.sty} {3.10 define Naskh fonts for LaTeX2e} {19.10.1998}
-
-% NEW FONT SELECTION -- Version 2
-
-% define \pnash to use the `unknown' fontencoding, `nash' fontfamily,
-% `m'edium fontseries und `n'ormal fontshape.
-
-\def\pnash{\fontencoding{U}\fontfamily{nash}%
- \fontseries{m}\fontshape{n}\selectfont}
-
-% define \pnashbf to use the `unknown' fontencoding, `nash' fontfamily,
-% `b'old e`x'tended fontseries und `n'ormal fontshape.
-
-\def\pnashbf{\fontencoding{U}\fontfamily{nash}%
- \fontseries{bx}\fontshape{n}\selectfont}
-
-% extended Nash fonts (14pt @ 12pt):
-
-\def \xnash {\protect \pxnash }
-\def \xnashbf {\protect \pxnashbf }
-
-\def \pxnash {\fontencoding {U}\fontfamily {xnsh}%
- \fontseries {m}\fontshape {n}\selectfont }
-
-\def \pxnashbf {\fontencoding {U}\fontfamily {xnsh}%
- \fontseries {bx}\fontshape {n}\selectfont }
-
-% smaller fonts (12pt @ 12pt):
-
-\def \snash {\protect \psnash }
-\def \snashbf {\protect \psnashbf }
-
-\def \psnash {\fontencoding {U}\fontfamily {xnsh}%
- \fontseries {m}\fontshape {s}\selectfont }
-
-\def \psnashbf {\fontencoding {U}\fontfamily {xnsh}%
- \fontseries {bx}\fontshape {s}\selectfont }
-
-% All other definitions are done in the files `Unash.fd' and `Uxnsh.fd',
-% which are loaded on demand.
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% afonts2.sty
+% ArabTeX
+% load Naskh14 for NFSS2
+% 19.10.1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {afonts2.sty} {3.10 define Naskh fonts for LaTeX2e} {19.10.1998}
+
+% NEW FONT SELECTION -- Version 2
+
+% define \pnash to use the `unknown' fontencoding, `nash' fontfamily,
+% `m'edium fontseries und `n'ormal fontshape.
+
+\def\pnash{\fontencoding{U}\fontfamily{nash}%
+ \fontseries{m}\fontshape{n}\selectfont}
+
+% define \pnashbf to use the `unknown' fontencoding, `nash' fontfamily,
+% `b'old e`x'tended fontseries und `n'ormal fontshape.
+
+\def\pnashbf{\fontencoding{U}\fontfamily{nash}%
+ \fontseries{bx}\fontshape{n}\selectfont}
+
+% extended Nash fonts (14pt @ 12pt):
+
+\def \xnash {\protect \pxnash }
+\def \xnashbf {\protect \pxnashbf }
+
+\def \pxnash {\fontencoding {U}\fontfamily {xnsh}%
+ \fontseries {m}\fontshape {n}\selectfont }
+
+\def \pxnashbf {\fontencoding {U}\fontfamily {xnsh}%
+ \fontseries {bx}\fontshape {n}\selectfont }
+
+% smaller fonts (12pt @ 12pt):
+
+\def \snash {\protect \psnash }
+\def \snashbf {\protect \psnashbf }
+
+\def \psnash {\fontencoding {U}\fontfamily {xnsh}%
+ \fontseries {m}\fontshape {s}\selectfont }
+
+\def \psnashbf {\fontencoding {U}\fontfamily {xnsh}%
+ \fontseries {bx}\fontshape {s}\selectfont }
+
+% All other definitions are done in the files `Unash.fd' and `Uxnsh.fd',
+% which are loaded on demand.
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/afoot.sty b/language/arabic/arabtex/texinput/afoot.sty
index 97ebef55f7..2d0bde03ce 100644
--- a/language/arabic/arabtex/texinput/afoot.sty
+++ b/language/arabic/arabtex/texinput/afoot.sty
@@ -1,100 +1,100 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% afoot.sty
-% ArabTeX footnotes
-% 12.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \undefined \LaTeX \xpa \endinput \fi
-
-\a@ident {afoot.sty} {3.11 ArabTeX footnotes} {12.05.2003}
-
-%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
-% footnotes inside an Arabic environment, Roman document style
-
-\let \a@@footnotemark \@footnotemark
-\let \a@@footnotetext \@footnotetext
-
-\def \a@footnotemark {% inside Arabic environment
-\iftrans \unskip \unskip \nobreak \@makefnmark \fi
-\ifarab \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \fi }
-
-\long\def \a@footnotetext #1{\a@@footnotetext {#1}\arab@tail }
-
-\at@arabtext {% inside Arabic environments
-\let \@footnotemark \a@footnotemark
-\let \@footnotetext \a@footnotetext }
-
-\def \a@c@footnote {% ArabTeX-LaTeX version
-\let \@footnotemark \a@footnotemark
-\unarab@codes \footnote }
-
-\def \a@c@footnotemark {% ArabTeX-LaTeX version
-\def \@footnotemark {\a@footnotemark \arab@tail }%
-\unarab@codes \footnotemark }
-
-\long\def \a@c@footnotetext {% ArabTeX-LaTeX version
-\unarab@codes \footnotetext }
-
-\def \LRfootnotes {% left to right footnotes
-\def \a@fnhook {\a@@mkfntext }% Roman document
-%\def \a@fnhook {\a@rmfntext }% Roman document
-\def \a@@fnhook {\a@rmfntext }% Arabic document
-}
-
-\all@wcmd \LRfootnotes \LRfootnotes % default
-
-%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
-% footnotes inside an Arabic environment, Arabic document style
-
-\iffalse
-\def \a@@footnote {% ArabTeX-LaTeX version
-\def \@footnotemark {%
- \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
-\def \a@@fntext ##1{% common part for footnote text
- \def \end {\a@par \egroup \test@token }%
- \hsize \columnwidth \@parboxrestore
- \initlineb@x \@footnotemark \test@token ##1 \end }
-}
-
-\def \a@@footnotemark {%
-\def \@footnotemark % ArabTeX-LaTeX version
- {\a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \test@token }%
-\footnotemark }
-\fi
-
-\long\def \a@@fntext #1{% common part for footnote text
-%\def \@footnotemark {%
-% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
-\def \end {\a@par \egroup \test@token }%
- \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore
- \initlineb@x \putwordb@x \@makefnmark \a@spacetrue
-\set@arabfont
- \arabtrue \test@token #1 \end }
-
-\long\def \a@@@fntext #1{% common part for RL footnote text, Roman mode
-%\def \@footnotemark {%
-% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
-\def \end {\a@par \egroup }%
- \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore
- \the\arabtext@hook \putwordb@x \@makefnmark \a@spacetrue
- \test@token #1 \end }
-
-%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%w%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \RLfootnotes {% right to left footnotes
-\def \a@fnhook {\a@@@fntext }% Roman document
-\def \a@@fnhook {\a@@fntext }% Arabic document
-}
-
-\all@wcmd \RLfootnotes
-
-\let \arabfootnotes \RLfootnotes \all@wcmd \arabfootnotes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% afoot.sty
+% ArabTeX footnotes
+% 12.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \undefined \LaTeX \xpa \endinput \fi
+
+\a@ident {afoot.sty} {3.11 ArabTeX footnotes} {12.05.2003}
+
+%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
+% footnotes inside an Arabic environment, Roman document style
+
+\let \a@@footnotemark \@footnotemark
+\let \a@@footnotetext \@footnotetext
+
+\def \a@footnotemark {% inside Arabic environment
+\iftrans \unskip \unskip \nobreak \@makefnmark \fi
+\ifarab \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \fi }
+
+\long\def \a@footnotetext #1{\a@@footnotetext {#1}\arab@tail }
+
+\at@arabtext {% inside Arabic environments
+\let \@footnotemark \a@footnotemark
+\let \@footnotetext \a@footnotetext }
+
+\def \a@c@footnote {% ArabTeX-LaTeX version
+\let \@footnotemark \a@footnotemark
+\unarab@codes \footnote }
+
+\def \a@c@footnotemark {% ArabTeX-LaTeX version
+\def \@footnotemark {\a@footnotemark \arab@tail }%
+\unarab@codes \footnotemark }
+
+\long\def \a@c@footnotetext {% ArabTeX-LaTeX version
+\unarab@codes \footnotetext }
+
+\def \LRfootnotes {% left to right footnotes
+\def \a@fnhook {\a@@mkfntext }% Roman document
+%\def \a@fnhook {\a@rmfntext }% Roman document
+\def \a@@fnhook {\a@rmfntext }% Arabic document
+}
+
+\all@wcmd \LRfootnotes \LRfootnotes % default
+
+%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
+% footnotes inside an Arabic environment, Arabic document style
+
+\iffalse
+\def \a@@footnote {% ArabTeX-LaTeX version
+\def \@footnotemark {%
+ \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
+\def \a@@fntext ##1{% common part for footnote text
+ \def \end {\a@par \egroup \test@token }%
+ \hsize \columnwidth \@parboxrestore
+ \initlineb@x \@footnotemark \test@token ##1 \end }
+}
+
+\def \a@@footnotemark {%
+\def \@footnotemark % ArabTeX-LaTeX version
+ {\a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \test@token }%
+\footnotemark }
+\fi
+
+\long\def \a@@fntext #1{% common part for footnote text
+%\def \@footnotemark {%
+% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
+\def \end {\a@par \egroup \test@token }%
+ \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore
+ \initlineb@x \putwordb@x \@makefnmark \a@spacetrue
+\set@arabfont
+ \arabtrue \test@token #1 \end }
+
+\long\def \a@@@fntext #1{% common part for RL footnote text, Roman mode
+%\def \@footnotemark {%
+% \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue }%
+\def \end {\a@par \egroup }%
+ \a@hsize \columnwidth \hsize \columnwidth \@parboxrestore
+ \the\arabtext@hook \putwordb@x \@makefnmark \a@spacetrue
+ \test@token #1 \end }
+
+%%%%%%%%%%%%%%%%%%% \footnote in an arabic environment %%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%w%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \RLfootnotes {% right to left footnotes
+\def \a@fnhook {\a@@@fntext }% Roman document
+\def \a@@fnhook {\a@@fntext }% Arabic document
+}
+
+\all@wcmd \RLfootnotes
+
+\let \arabfootnotes \RLfootnotes \all@wcmd \arabfootnotes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/alatex.sty b/language/arabic/arabtex/texinput/alatex.sty
index f347f236d4..44a4443819 100644
--- a/language/arabic/arabtex/texinput/alatex.sty
+++ b/language/arabic/arabtex/texinput/alatex.sty
@@ -1,164 +1,164 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alatex.sty
-% LaTeX extensions for ArabTeX
-% 04.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \undefined \LaTeX \xpa \endinput \fi
-
-\a@ident {alatex.sty} {3.11 ArabTeX extensions for LaTeX } {04.05.2003}
-
-%%%%%%%%%%%%%%%%%%% modify \document command %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \a@document \document \let \a@enddocument \enddocument
-
-\def \document {% activate Arabic insertions
- \a@document \setarab }
-\ifx \@listfiles \undefined
-\def \enddocument {% report the configuration
- {\newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument }
-\fi
-
-\UsePackage {afoot} % ArabTeX footnotes
-
-%%%%%%%%%%%%%%%%%%%%%%% verbatim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% patch for LaTeX2e
-% thanks to Andreas Scherer
-% <scherer@imib.rwth-aachen.de>
-
-\def \verb {% make < safe
-\ifx \undefined\documentclass % LaTeX 2.09
-\begingroup \catcode ``=13 \tt
-\else
-\relax \ifmmode \hbox \fi \bgroup \verbatim@font
-\fi
-\catcode `<=12 \@noligs \let \do \@makeother \dospecials
-\@ifstar {\@sverb }{\@verb }}
-
-%%%%%%%%%%%%%%%%%%%%%% enable LaTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \fdef #1#2#3#4{% define NFSS2 font
-\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
-\fontseries {#3}\fontshape {#4}\selectfont }%
-\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi
-\setarabfont \pheb \set@arabfont }%
-\all@wcmd #1}
-
-\all@wcmd \tiny \all@wcmd \footnotesize \all@wcmd \small
-\all@wcmd \normalsize \all@wcmd \large \all@wcmd \Large
-\all@wcmd \LARGE \all@wcmd \huge \all@wcmd \Huge
-
-\all@wcmd \mdseries \all@wcmd \bfseries \all@wcmd \a@normalfont
-\all@wcmd \upshape \all@wcmd \itshape \all@wcmd \slshape
-\all@wcmd \rmfamily \all@wcmd \sffamily \all@wcmd \ttfamily
-\all@wcmd \a@normalfont
-
-\def \a@c@input {\expandafter \test@token \@@input }
-
-\def \@abj #1{\abj@d {#1}}
-
-\def \Arabic #1{\expandafter \@Arabic \csname c@#1\endcsname }
-\def \arab #1{\expandafter \@arab \csname c@#1\endcsname }
-\def \Arab #1{\expandafter \@Arab \csname c@#1\endcsname }
-\def \abj #1{\expandafter \@abj \csname c@#1\endcsname }
-\def \Abj #1{\expandafter \@Abj \csname c@#1\endcsname }
-
-\let \@Arab \@arabic \let \@arab \@arabic \let \@Arabic \@arabic
-\let \@abjad \@abj \let \@Abj \@abj
-
-%%%%%%%%%%%%%%%%%%%%%% Math in Arabic mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@spec@def \({% inline math insertion in Arabic mode
-\unarab@codes \test@mathx }
-
-\def \test@mathx #1\){% finish inline math insertion
-\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token }
-
-\def \a@c@math {% inline math environment in Arabic mode
- \def \endmath {$\egroup \aftergroup \test@mathy }%
-\unarab@codes \global\setbox1 \hbox \bgroup $}
-
-\def \a@c@test@mathy {% finish inline math environment
-\a@spacetrue \putwordb@x {\box1 }\a@spacetrue \test@token }
-
-\a@spec@def \[{% math display in Arabic mode
-\begingroup \endarabtext \leavevmode \let \a@end@dis \]%
- \def \]{\a@end@dis \endgroup \a@spacefalse \test@token }\[}
-
-\def \a@c@displaymath {% displaymath environment in Arabic mode
-\endarabtext \leavevmode \displaymath }
-
-\def \a@c@equation {\endarabtext \equation }
-
-\def \a@c@eqnarray {\endarabtext \eqnarray }
-
-\xpa\def \csname a@c@eqnarray*\endcsname {% eqnarray* environment
-\endarabtext \csname eqnarray*\endcsname }
-
-%%%%%%%%%%%%%%%%%%%%% inner environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \end #1{% modified LaTeX version: tail supplied by \begin
- \csname end#1\endcsname \@checkend {#1}%
-\if@endpe \aftergroup \@doendpe \fi
-\endgroup }
-
-\def \a@c@@doendpe {% called in Arabic mode
-\@doendpe \test@token }
-
-\def \begin #1{% from LaTeX2e; after \end stay in Roman mode
-\@ifundefined {#1}%
- {\def \reserved@a {\@latex@error
- {Environment #1 undefined}\@eha }}%
- {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}%
- \csname #1\endcsname }}%
-\@ignorefalse \begingroup \aftergroup \a@endx
-\@endpefalse \reserved@a }
-
-\def \a@endx {% after \end in Roman mode
-\if@ignore \@ignorefalse \ignorespaces \fi}
-
-\def \a@c@begin #1{% Arabic version; after \end set Arabic mode
-\@ifundefined {a@c@#1}%
- {\def \reserved@a {\@latex@error
- {Arabic mode: Environment #1 undefined}\@eha \test@token }}%
- {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}%
- \csname a@c@#1\endcsname }}%
-\@ignorefalse \begingroup \aftergroup \a@endy
-\@endpefalse \reserved@a }
-
-\def \a@endy {% after \end in Arabic mode
-\a@spacefalse \test@token }
-
-%%%%%%%%%%%%%%%%%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@newcommand #1#2#{\a@@def \newcommand {#1}{#2}}
-
-\def \a@c@renewcommand #1#2#{\a@@def \renewcommand {#1}{#2}}
-
-\def \a@c@providecommand #1#2#{\a@@def \providecommand {#1}{#2}}
-
-\def \a@c@@env {\putwordb@x {\unhbox1 }\a@spacetrue \test@token }
-
-\def \a@@env #1#2#3#4#5{% define environment in RL mode
-\xpa \def \csname end#2\endcsname
-{\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}\aftergroup \@env }%
-\test@token #5 \end }%
-\xpa #1\csname a@c@#2\endcsname #3%
-%{\setbox\lineb@x \box\lineb@x \a@spacetrue \test@token #4}%
-{\setbox\lineb@x \box\lineb@x \let\ifa@space \ifa@space \test@token #4}%
-\test@token }
-
-\def \a@c@newenvironment #1#2#{\a@@env \newcommand {#1}{#2}}
-
-\def \a@c@renewenvironment #1#2#{\a@@env \renewcommand {#1}{#2}}
-
-\def \a@c@protect {\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.sty
+% LaTeX extensions for ArabTeX
+% 04.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \undefined \LaTeX \xpa \endinput \fi
+
+\a@ident {alatex.sty} {3.11 ArabTeX extensions for LaTeX } {04.05.2003}
+
+%%%%%%%%%%%%%%%%%%% modify \document command %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \a@document \document \let \a@enddocument \enddocument
+
+\def \document {% activate Arabic insertions
+ \a@document \setarab }
+\ifx \@listfiles \undefined
+\def \enddocument {% report the configuration
+ {\newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument }
+\fi
+
+\UsePackage {afoot} % ArabTeX footnotes
+
+%%%%%%%%%%%%%%%%%%%%%%% verbatim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% patch for LaTeX2e
+% thanks to Andreas Scherer
+% <scherer@imib.rwth-aachen.de>
+
+\def \verb {% make < safe
+\ifx \undefined\documentclass % LaTeX 2.09
+\begingroup \catcode ``=13 \tt
+\else
+\relax \ifmmode \hbox \fi \bgroup \verbatim@font
+\fi
+\catcode `<=12 \@noligs \let \do \@makeother \dospecials
+\@ifstar {\@sverb }{\@verb }}
+
+%%%%%%%%%%%%%%%%%%%%%% enable LaTeX commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \fdef #1#2#3#4{% define NFSS2 font
+\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
+\fontseries {#3}\fontshape {#4}\selectfont }%
+\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi
+\setarabfont \pheb \set@arabfont }%
+\all@wcmd #1}
+
+\all@wcmd \tiny \all@wcmd \footnotesize \all@wcmd \small
+\all@wcmd \normalsize \all@wcmd \large \all@wcmd \Large
+\all@wcmd \LARGE \all@wcmd \huge \all@wcmd \Huge
+
+\all@wcmd \mdseries \all@wcmd \bfseries \all@wcmd \a@normalfont
+\all@wcmd \upshape \all@wcmd \itshape \all@wcmd \slshape
+\all@wcmd \rmfamily \all@wcmd \sffamily \all@wcmd \ttfamily
+\all@wcmd \a@normalfont
+
+\def \a@c@input {\expandafter \test@token \@@input }
+
+\def \@abj #1{\abj@d {#1}}
+
+\def \Arabic #1{\expandafter \@Arabic \csname c@#1\endcsname }
+\def \arab #1{\expandafter \@arab \csname c@#1\endcsname }
+\def \Arab #1{\expandafter \@Arab \csname c@#1\endcsname }
+\def \abj #1{\expandafter \@abj \csname c@#1\endcsname }
+\def \Abj #1{\expandafter \@Abj \csname c@#1\endcsname }
+
+\let \@Arab \@arabic \let \@arab \@arabic \let \@Arabic \@arabic
+\let \@abjad \@abj \let \@Abj \@abj
+
+%%%%%%%%%%%%%%%%%%%%%% Math in Arabic mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@spec@def \({% inline math insertion in Arabic mode
+\unarab@codes \test@mathx }
+
+\def \test@mathx #1\){% finish inline math insertion
+\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token }
+
+\def \a@c@math {% inline math environment in Arabic mode
+ \def \endmath {$\egroup \aftergroup \test@mathy }%
+\unarab@codes \global\setbox1 \hbox \bgroup $}
+
+\def \a@c@test@mathy {% finish inline math environment
+\a@spacetrue \putwordb@x {\box1 }\a@spacetrue \test@token }
+
+\a@spec@def \[{% math display in Arabic mode
+\begingroup \endarabtext \leavevmode \let \a@end@dis \]%
+ \def \]{\a@end@dis \endgroup \a@spacefalse \test@token }\[}
+
+\def \a@c@displaymath {% displaymath environment in Arabic mode
+\endarabtext \leavevmode \displaymath }
+
+\def \a@c@equation {\endarabtext \equation }
+
+\def \a@c@eqnarray {\endarabtext \eqnarray }
+
+\xpa\def \csname a@c@eqnarray*\endcsname {% eqnarray* environment
+\endarabtext \csname eqnarray*\endcsname }
+
+%%%%%%%%%%%%%%%%%%%%% inner environments %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \end #1{% modified LaTeX version: tail supplied by \begin
+ \csname end#1\endcsname \@checkend {#1}%
+\if@endpe \aftergroup \@doendpe \fi
+\endgroup }
+
+\def \a@c@@doendpe {% called in Arabic mode
+\@doendpe \test@token }
+
+\def \begin #1{% from LaTeX2e; after \end stay in Roman mode
+\@ifundefined {#1}%
+ {\def \reserved@a {\@latex@error
+ {Environment #1 undefined}\@eha }}%
+ {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}%
+ \csname #1\endcsname }}%
+\@ignorefalse \begingroup \aftergroup \a@endx
+\@endpefalse \reserved@a }
+
+\def \a@endx {% after \end in Roman mode
+\if@ignore \@ignorefalse \ignorespaces \fi}
+
+\def \a@c@begin #1{% Arabic version; after \end set Arabic mode
+\@ifundefined {a@c@#1}%
+ {\def \reserved@a {\@latex@error
+ {Arabic mode: Environment #1 undefined}\@eha \test@token }}%
+ {\def \reserved@a {\def \@currenvir {#1}\edef \@currenvline {\on@line}%
+ \csname a@c@#1\endcsname }}%
+\@ignorefalse \begingroup \aftergroup \a@endy
+\@endpefalse \reserved@a }
+
+\def \a@endy {% after \end in Arabic mode
+\a@spacefalse \test@token }
+
+%%%%%%%%%%%%%%%%%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@newcommand #1#2#{\a@@def \newcommand {#1}{#2}}
+
+\def \a@c@renewcommand #1#2#{\a@@def \renewcommand {#1}{#2}}
+
+\def \a@c@providecommand #1#2#{\a@@def \providecommand {#1}{#2}}
+
+\def \a@c@@env {\putwordb@x {\unhbox1 }\a@spacetrue \test@token }
+
+\def \a@@env #1#2#3#4#5{% define environment in RL mode
+\xpa \def \csname end#2\endcsname
+{\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}\aftergroup \@env }%
+\test@token #5 \end }%
+\xpa #1\csname a@c@#2\endcsname #3%
+%{\setbox\lineb@x \box\lineb@x \a@spacetrue \test@token #4}%
+{\setbox\lineb@x \box\lineb@x \let\ifa@space \ifa@space \test@token #4}%
+\test@token }
+
+\def \a@c@newenvironment #1#2#{\a@@env \newcommand {#1}{#2}}
+
+\def \a@c@renewenvironment #1#2#{\a@@env \renewcommand {#1}{#2}}
+
+\def \a@c@protect {\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/aligs.sty b/language/arabic/arabtex/texinput/aligs.sty
index a5fbbc38f6..4fb971563e 100644
--- a/language/arabic/arabtex/texinput/aligs.sty
+++ b/language/arabic/arabtex/texinput/aligs.sty
@@ -1,635 +1,635 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-% ArabTeX
-% Ligatures
-% called in HMODE
-% Version 26.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {aligs.sty} {3.11 compute ligatures} {26.05.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \is@end@char #1{00% does not connect to the left ?
-\a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax
-\ifnum \skl@con = 0 \else \xpa \setiffalse \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures
-% c1 m1 * c2 m2 * c3
-\ifcase \act@cls \lam@lig #3#5% % 0 l
-\or % 1 YntCbyp
- \ifnum \act@cd = \a@yah \yah@end #1#3#5\else
- \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else
- \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@nun \nun@end #1#3#5\else
- \bah@end #1%
- \fi\fi\fi\fi\fi
-\or \sin@lig #1#5% % 2 sxSD
-\or \gim@lig #1#3#5% % 3 GHXJ
- \a@min 0
-\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR
-\or \kaf@end #3#5% % 5 kgM
-\or \fah@end #1% % 6 fqv
-\or \ttah@lig #1#5% % 7 VZ
-\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R
-\or % 9 \a@t \a@n
- \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else
- \bah@end #1%
- \fi\fi
-\else \global\@highfalse \@mod@acttrue % 10 ...
- \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else
- \ifnum \act@cd = \a@h@s \hah@urd #3\else
- \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else
- \put@tatwil
- \ifnum \act@cd = \a@dal \gim@test #5\else
- \ifnum \act@cd = \a@dal@p \gim@test #5\else
- \fi\fi
- \fi\fi\fi
-\fi \aw@lower #5}
-
-%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bah@end #1{% bah skeleton
-% c1
-\ifnum \act@cls = 1 \set@act\sk@b % YntCbyp
-\else \set@act\sk@b@p
-\fi
-\put@tatwil \@mod@acttrue \global\@hightrue }
-
-%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \gim@lig #1#2#3{% gim, hhah, khah, tchah etc.
-% c1 c2 c3
-\ifnum \act@cd = \a@khah \else
- \@mod@acttrue
- \ifnum \act@cd = \a@gim@close \else \set@act\sk@hh
- \fi
-\fi
-\ifs@nd \else
-\if\is@end@char #3\gim@one #1#2#3\else
- \gim@more #1#2#3%
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \gim@one #1#2#3{% gim, hhah, khah, tchah % and one char
-% c1 c2 c3
-%\ifligs
-\ifcase \chr@cls
- \act@gim #1\set@chr\sk@l@g@s % 0 l
-\or \act@gim #1\chr@tie\a@g@to@bb % 1 YntCbyp
- \set@chr\sk@spc
-\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD
-\or \act@gim #1% % 3 GHXJ
-\or \put@tatwil % 4 cR
-\or \act@gim #1% % 5 kgM
-\or \act@gim #1% % 6 fqv
-\else \ifx #2m\act@gim #1\set@chr\sk@m@s
- \else \put@tatwil
- \fi
-%\fi
-\fi }
-
-\def \gim@more #1#2#3{% gim, hhah, khah, tchah
-% and more than one char
-% c1 c2 c3
-\ifligs
-\ifcase \chr@cls
- \act@gim #1\set@chr\sk@l@y % 0 l
-\or \act@gim #1\chr@tie\a@g@to@mb % 1 YntCbyp
- \set@chr\sk@b@y
-\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD
-\or \put@tatwil % 3 GHXJ
-\or \put@tatwil % 4 cR
-\or \act@gim #1% % 5 kgM
-\else \ifx #2m\ifx #3l\act@gim #1\set@chr\sk@m@l@g
- \fi\fi
-\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s
-% c1 c3
-\put@tatwil \@mod@acttrue
-\ifnum \chr@cls = 1 % YntCbyp
- \if\is@end@char #2\set@chr\sk@b@h \else
- \ifx #1s\set@chr\sk@b@h \else
- \ifx #1x\set@chr\sk@b@h \else
- \fi\fi\fi
-\fi }
-
-\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s
-% c1 c3
-\put@tatwil \@mod@acttrue
-\ifnum \chr@cls = 1 % YntCbyp
- \if\is@end@char #2\set@chr\sk@b@h \else
- \ifnum \act@cd = \a@sin \set@chr\sk@b@h \else
- \fi\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ttah@lig #1#2{% ttah, tthah
-% c1 c3
-\put@tatwil \@mod@acttrue
-\ifnum \chr@cls = 1 % YntCbyp
- \if\is@end@char #2\set@chr\sk@b@h
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% rah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \rah@end #1#2*#3#4{% final r, z, j
-% c1 m1 * c2 c3
-\@mod@acttrue
-\ifcase \chr@cls
- \put@tatwil % 0 l
-\or \if\is@end@char #4% % 1 YntCbyp
- \else \set@chr\sk@b@sp \set@high@act
- \fi
-\or \chr@tie\a@er@to@s \chr@sin % 2 sxSD
-\or \put@tatwil % 3 GHXJ
-\or \put@tatwil % 4 cR
-\or \ifligs % 5 kgM
- \ifx #1r\if\is@updia #2*\put@tatwil
- \else \kaf@lig
- \fi
- \else \put@tatwil
- \fi
- \else \put@tatwil
- \fi
-\else \put@tatwil
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% fah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \fah@end #1{% fah family
-% c1
-\ifnum \act@cd = \a@qaf
- \ifnewfont \set@act\sk@q@s \@mod@acttrue
- \fi
-\else \@mod@acttrue
-\fi \global\@highfalse }
-
-%%%%%%%%%%%%%%%%%%%%%% kaf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \kaf@end #1#2{% kaf family
-% c2 c3
-\ifnum \act@cd = \a@kaf
- \gim@test #2% closed gim?
- \kaf@test #1% kaf-kaf ?
-\fi
-\@mod@acttrue }
-
-%%%%%%%%%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \lam@lig #1#2{% lam family
-% c2 c3
-\global\@highfalse
-\ifnum \act@cd = \a@lam@gim
- \if\is@end@char #1\chr@tie\a@skip
- \fi \else
-\ifnum \act@cd = \a@lam@spec@low \else
- \@mod@acttrue
- \gim@test #2% closed gim?
- \kaf@test #1% kaf-lam ?
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \mim@end #1*#2#3{% final mIm
-% m1 * c2 c3
-\ifs@nd \if\is@lodia #1*% simulate tail
- \if\is@end@char #2\set@act\sk@m@s
- \else \set@act\sk@B \chr@tie\a@mim
- \fi
- \else \set@act\sk@m@s
- \fi
-\else
-\ifcase \chr@cls
- \set@act\sk@m@s % 0 l
- \if\is@end@char #3\else \set@chr\sk@l@m
- \fi
-\or \set@act\sk@m@s % 1 YntCbyp
- \if\is@end@char #3\chr@tie\a@em@to@bb \set@chr\sk@spc
- \else \set@chr\sk@b@e@m
- \fi
-\or \set@act\sk@m@s \chr@tie\a@em@to@s \chr@sin % 2 sxSD
-\or \put@tatwil % 3 GHXJ
-\or \put@tatwil % 4 cR
-\or \if\is@updia #1*\put@tatwil % 5 kgM
- \else \set@act\sk@m@s %\kaf@lig
- \fi
-\or \set@act\sk@m@s % 6 fqv
-\else \ifx #2m\set@act\sk@m@s
- \if\is@end@char #3\set@chr\sk@m@s \else
- \set@chr\sk@m@s@h
- \fi
- \else \put@tatwil
- \fi
-\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \nun@end #1#2#3{% final nun
-% c1 c2 c3
-\global\@highfalse \@mod@acttrue
-\ifnum \chr@cls = 1 % YntCbyp
- \if\is@end@char #3\else
- \set@chr\sk@b@sp \set@high@act
- \fi
-\else \put@tatwil
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
-% c1 m1 * c2 m21 + m22 * c3
-\ifu@gh
-\ifx #1\a@H \else
-\set@act \sk@h@u
-\fi
-\else
-\ifurd@ \ifm@lay \else \set@act \sk@h@s \fi % two eyes
- \ifx #1T\else
- \ifx #1\a@H
- \ifx #3l\ifx #6l% % 0 l
- \ifnum #4 = \c@shadda \set@chr\sk@l@w
- % special short form of lam for the Name of God
- \fi\fi
- \put@tatwil
- \fi
- \else \set@act\sk@h@u
- \if\is@end@char #3%
- \else \set@loww@act \global\a@min 1
- \fi
- \fi\fi
-\else
-\ifx #3l\ifx #6l% % 0 l
- \ifnum #4 = \c@shadda \set@chr\sk@l@w
- % special short form of lam for the Name of God
- \fi\fi
- \put@tatwil
-\else
-\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
-\else
-\ifnum \chr@cls = 3 % 3 GHX
-% \if\is@updia #4+#5*\chr@tie\a@tatwil \else
- \put@tatwil
-% \fi
-\else \gim@test #6\put@tatwil
-\fi\fi\fi\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% wavy hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hah@urd #1{% wavy hah
-% c2
-\if\is@end@char #1\set@act\sk@h % isolated round h
-\fi
-\@mod@actfalse % no mark below
-\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@end #1#2#3{% yah or alif maqsoura
-% y/Y/L c2 c3
- \global\@highfalse
-%\global \a@min 1
-\ifx #1y\ifyahd@ts \@mod@acttrue \fi
-\else \@mod@acttrue
-\fi
-\if\is@end@char #3\yah@one #2\else \yah@more #2%
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@one #1{% yah or alif maqsoura % and one char
-% c2
-\ifcase \chr@cls
- \act@yah \set@chr\sk@l@lng % 0 l
-\or % 1 YntCbyp
- \ifh@mza \act@yah \set@chr\sk@b@y \else
- \ifk@fs \act@yah \set@chr\sk@b@y \else % ++++
- \ifx #1y\else
- \ifx #1Y\else
- \act@yah \set@chr\sk@b@y
- \fi\fi\fi\fi % ++++
-\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD
-\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ
-\or \act@yah % 4 cR
-\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 5 kgM
-\or \act@yah % 6 fqv
-\else \ifx #1m\act@yah \set@chr\sk@m@s \else
- \put@tatwil
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@more #1{% yah or alif maqsoura % and more than one char
-% c2
-\ifcase \chr@cls % 0 l
- \act@yah \set@chr\sk@l@y
- \set@low@act
-\or \ifiz@fet % 1 YntCbyp
- \ifx #1y\else
- \ifx #1Y\else
- \act@yah \set@chr\sk@b@e@m
- \fi\fi
- \else \act@yah \set@chr\sk@b@e@m
- \fi
-\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD
-\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ
-\or \put@tatwil % 4 cR
-\or \act@yah \kaf@lig % 5 kgM
- \ifs@nd \chr@tie\a@em@to@s \fi
-\or \ifs@nd \act@yah \else \put@tatwil \fi % 6 fqv
-\else \ifx #1h\act@yah \chr@tie\a@em@to@s
- \else \put@tatwil
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% long yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@p@end #1#2#3{% long (Urdu) yah bari
-% c2 c3
- \global\@highfalse
-\global \a@min 2
-\ifx #1E\ifyahd@ts \@mod@acttrue
- \fi
-\else \@mod@acttrue
-\fi
-\if\is@end@char #3\yah@p@one #2\else \yah@p@more #2%
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@p@one #1{% yah bari and one char
-% c2
-\ifcase \chr@cls \relax \set@chr\sk@l@lng % 0 l
-\or \set@chr\sk@b@g % 1 YntCbyp
-\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD
-\else \ifx #1m\set@chr\sk@m@s
- \else \put@tatwil
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yah@p@more #1{% yah bari and more than one char c2 X
-% c2
-\ifcase \chr@cls \relax \set@chr\sk@l@y % 0 l
-\or \set@chr\sk@b@g % 1 YntCbyp
-\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD
-\else \ifx #1m\set@chr\sk@m@s@h \else
- \ifx #1h\set@chr\sk@h@s@l
- \else
- \put@tatwil
- \fi\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \aw@midligs #1#2*#3#4{% check for medial ligatures
-% c1 m1 * c2 c3
-\ifcase \act@cls \lam@lig #3#4% % 0 l
-\or \bah@mid #2*#3#4% % 1 YntCbyp
-\or \sin@lig #1#4% % 2 sxSD
-\or \gim@lig #1#3#4% % 3 GHXJ
-\or \global\@highfalse \put@tatwil % 4 cR
-\or \global\@highfalse \put@tatwil % 5 kgM
-\or \global\@highfalse \put@tatwil % 6 fqv
-\or \ttah@lig #1#4% % 7 VZ
-\else \global\@highfalse
- \ifx #1m\mim@mid #2*#3#4\else
- \ifx #1h\hah@mid #1#3#4\else % two-eyed hah
- \ifx #1\a@h\hah@urd@mid #1#3#4\else
- \put@tatwil
- \fi\fi\fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \chr@fam #1{% put family
-% c2
-\if@con \@mod@chrtrue
-\ifcase \chr@cls % 0 l
-\or \set@chr\sk@b % 1 YntCbyp
- \ifx #1\a@am \chr@mod 6 \fi % Malay
-\or % 2 sxSD
-\or \set@chr\sk@hh \@mod@chrtrue % 3 GHXJ
-\or % 4 cR
-\or \kaf@fam % 5 kgM
-\or \set@chr\sk@f@s % 6 fqv
-\or % 7 VZ
-\or % 8 rzj
-\or \set@chr\sk@b@p % 9 \a@t \a@n
-\else
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bah@mid #1+#2*#3#4{% long form of bah etc.
-% m11 + m12 * c2 c3
-\put@tatwil
-\ifnum \act@cd = \a@bah@s % normal shape
- \@mod@acttrue
- \if@high \ifnum #1 > 9 \set@act\sk@b@h \global\@highfalse
- \fi
- \else \global\@hightrue
- \fi
- \else
-\ifnum \act@cd = \a@bah@high % higher shape
- \global\@highfalse
- \else
-\ifnum \act@cd = \a@bah@spec@gim % before medial gim
- \global\@highfalse
- \else
-\ifnum \act@cd = \a@bah@spec@yah % before final yah
- \global\@highfalse
- \else
-\ifnum \act@cd = \a@bah@mid@mim % before medial mim
- \global\@highfalse
- \else
-\ifnum \act@cd = \a@bah@spec % before rah
- \gim@test #4% closed gim ?
- \global\@highfalse
- \else
-\fi\fi\fi\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \mim@mid #1*#2#3{% medial mIm
-% m1 * c2 c3
-\ifnum \act@cd = \a@mim@spec@alif % s-m-a
- \ifnum \chr@cls = 2 \chr@sin
- \fi
- \else
-\ifligs \mim@mid@lig #1*#2#3\else
-\if\is@end@char #3\mim@mid@lig #1*#2#3\else
- \put@tatwil
-\fi\fi\fi }
-
-\def \mim@mid@lig #1*#2#3{% ligature for medial mIm
-% m1 * c2 c3
-\ifcase \chr@cls % 0 l
- \ifnum \act@cd = \a@mim@lam@gim % l-m-^g
- \if\is@end@char #3\set@chr\sk@l@h \else
- \set@chr\sk@l@y
- \fi
- \if\is@updia #1*\set@act\sk@m@s@l
- \fi
- \else
- \if\is@end@char #3\act@mim@spec #1*\set@chr\sk@l@m
- \fi\fi
-%\or \set@act\sk@m@s \set@chr\sk@b@m@m % 1 YntCbyp
-\or \act@mim@spec #1*\set@chr\sk@b@m@m % 1 YntCbyp
-%\or \act@mim@spec #1*\chr@tie\a@bah@mid@mim % 2 sxSD
-\or \set@act\sk@m@s \chr@tie\a@bah@mid@mim % 2 sxSD
- \chr@sin
-\or \set@act\sk@m@s@h \gim@test #3% % 3 GHXJ
-\or \set@act\sk@m@s@h % 4 cR
-\or \put@tatwil % 5 kgM
-\or \set@act\sk@m@s@h % 6 fqv
-\else
- \ifx #2m\if\is@end@char #3%
-% \act@mim@spec #1*\set@chr\sk@m@s@m
- \set@act\sk@m@s@l \set@chr\sk@m@s@m
- \if\is@updia #1*\set@act\sk@m@s@l
- \fi
- \else \put@tatwil
- \fi
- \else \put@tatwil
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hah@mid #1#2#3{% medial hah, no ligature in Urdu
-% c1 c2 c3
-\ifurd@ \ifnum \chr@cls = 0 % 0 l
- \if\is@end@char #3\set@act\sk@h@s@l
- \set@chr\sk@l@h
- \else \put@tatwil
- \fi
- \else \put@tatwil
- \fi
-\else
-\ifcase \chr@cls % 0 l
- \ifligs \set@act\sk@h@s@l
- \if\is@end@char #3\set@chr\sk@l@h
- \else \set@chr\sk@l@m
- \fi\fi
-\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp
-\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD
-\else \ifnum \chr@cls = 9 % \a@t \a@n
- \act@hah \set@chr\sk@b@e@h
- \else \put@tatwil
- \fi
-\fi
-\fi }
-
-\def \hah@urd@mid #1#2#3{% medial (wavy) hah
-% c1 c2 c3
-\ifcase \chr@cls \set@act\sk@h@s@l % 0 l
- \if\is@end@char #3\set@chr\sk@l@h \else
- \set@chr\sk@l@m
- \fi
-\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp
-\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD
-\else \ifnum \chr@cls = 9 % \a@t \a@n
- \act@hah \set@chr\sk@b@e@h
- \else \put@tatwil
- \fi
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \gim@test #1{% closed gim ?
-% c3
-\ifnum \chr@cls = \gim@cls % GHXJ
-\if\is@end@char #1\set@chr\sk@j@cl
- \@mod@chrtrue \global\@highfalse
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \kaf@test #1{% short kaf ?
-%\ifx #1\a@ax \put@tatwil % swash kaf
-\ifnum \chr@cd = \a@kaf@w \put@tatwil % swash kaf
-\else \ifnum \chr@cls = \kaf@cls
- \kaf@lig \global\@highfalse
-\else \put@tatwil
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% change chr@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \chr@sin {% shape without tooth % c
-\@mod@chrtrue
-\ifnum \chr@cd = \a@sin \set@chr\sk@sn@s \else
-\ifnum \chr@cd = \a@sad \set@chr\sk@sd@s \else
-\fi\fi }
-
-\def \kaf@lig {% put short kaf-alif ligature
-\@mod@chrtrue
-\ifnum \chr@cd = \a@kaf \set@chr\sk@k@sh \else
-\ifnum \chr@cd = \a@kaf@s \set@chr\sk@k@sh \else
-\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@sp \else
-\ifnum \chr@cd = \a@kaf@p@s \set@chr\sk@k@sp \else
-\ifnum \chr@cd = \a@gaf \set@chr\sk@g@sh \else
-\ifnum \chr@cd = \a@gaf@s \set@chr\sk@g@sh \else
-\ifnum \chr@cd = \a@gaf@p@s \set@chr\sk@g@sp \else
-\fi\fi\fi\fi\fi\fi\fi }
-
-\def \kaf@fam {% no mark
-\ifnum \chr@cd = \a@kaf \set@chr\sk@k@s \else
-\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@p \else
-\ifnum \chr@cd = \a@gaf \set@chr\sk@g@s \else
-\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% change act@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \act@yah {% short yah
-\global\a@min 1
-\ifnum \act@cd = \a@yah \set@act\sk@y@s \else
-\ifnum \act@cd = \a@yah@h \set@act\sk@y@h@s
-\fi\fi }
-
-\def \act@hah {% short hah
-\ifurd@ \else
-\ifnum \act@cd = \a@hah \set@act\sk@h@s
-\fi\fi }
-
-\def \act@gim #1{% deposit ligature
-\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0
-\else \set@act\sk@hh@s \@mod@acttrue
-\fi \a@min 1 }
-%\fi }
-
-\def \act@mim@spec #1*{% lam-mim etc.
-\if\is@updia #1*\set@act\sk@m@s@l
-\else \set@act\sk@m@s
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% keshide %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@tatwil {% deposit keshide
-\ifspread \if@con \@tattrue
-\fi\fi }
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+% ArabTeX
+% Ligatures
+% called in HMODE
+% Version 26.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {aligs.sty} {3.11 compute ligatures} {26.05.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \is@end@char #1{00% does not connect to the left ?
+\a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax
+\ifnum \skl@con = 0 \else \xpa \setiffalse \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures
+% c1 m1 * c2 m2 * c3
+\ifcase \act@cls \lam@lig #3#5% % 0 l
+\or % 1 YntCbyp
+ \ifnum \act@cd = \a@yah \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi\fi\fi\fi
+\or \sin@lig #1#5% % 2 sxSD
+\or \gim@lig #1#3#5% % 3 GHXJ
+ \a@min 0
+\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR
+\or \kaf@end #3#5% % 5 kgM
+\or \fah@end #1% % 6 fqv
+\or \ttah@lig #1#5% % 7 VZ
+\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R
+\or % 9 \a@t \a@n
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi
+\else \global\@highfalse \@mod@acttrue % 10 ...
+ \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else
+ \ifnum \act@cd = \a@h@s \hah@urd #3\else
+ \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else
+ \put@tatwil
+ \ifnum \act@cd = \a@dal \gim@test #5\else
+ \ifnum \act@cd = \a@dal@p \gim@test #5\else
+ \fi\fi
+ \fi\fi\fi
+\fi \aw@lower #5}
+
+%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bah@end #1{% bah skeleton
+% c1
+\ifnum \act@cls = 1 \set@act\sk@b % YntCbyp
+\else \set@act\sk@b@p
+\fi
+\put@tatwil \@mod@acttrue \global\@hightrue }
+
+%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \gim@lig #1#2#3{% gim, hhah, khah, tchah etc.
+% c1 c2 c3
+\ifnum \act@cd = \a@khah \else
+ \@mod@acttrue
+ \ifnum \act@cd = \a@gim@close \else \set@act\sk@hh
+ \fi
+\fi
+\ifs@nd \else
+\if\is@end@char #3\gim@one #1#2#3\else
+ \gim@more #1#2#3%
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \gim@one #1#2#3{% gim, hhah, khah, tchah % and one char
+% c1 c2 c3
+%\ifligs
+\ifcase \chr@cls
+ \act@gim #1\set@chr\sk@l@g@s % 0 l
+\or \act@gim #1\chr@tie\a@g@to@bb % 1 YntCbyp
+ \set@chr\sk@spc
+\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD
+\or \act@gim #1% % 3 GHXJ
+\or \put@tatwil % 4 cR
+\or \act@gim #1% % 5 kgM
+\or \act@gim #1% % 6 fqv
+\else \ifx #2m\act@gim #1\set@chr\sk@m@s
+ \else \put@tatwil
+ \fi
+%\fi
+\fi }
+
+\def \gim@more #1#2#3{% gim, hhah, khah, tchah
+% and more than one char
+% c1 c2 c3
+\ifligs
+\ifcase \chr@cls
+ \act@gim #1\set@chr\sk@l@y % 0 l
+\or \act@gim #1\chr@tie\a@g@to@mb % 1 YntCbyp
+ \set@chr\sk@b@y
+\or \act@gim #1\chr@tie\a@g@to@s \chr@sin % 2 sxSD
+\or \put@tatwil % 3 GHXJ
+\or \put@tatwil % 4 cR
+\or \act@gim #1% % 5 kgM
+\else \ifx #2m\ifx #3l\act@gim #1\set@chr\sk@m@l@g
+ \fi\fi
+\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s
+% c1 c3
+\put@tatwil \@mod@acttrue
+\ifnum \chr@cls = 1 % YntCbyp
+ \if\is@end@char #2\set@chr\sk@b@h \else
+ \ifx #1s\set@chr\sk@b@h \else
+ \ifx #1x\set@chr\sk@b@h \else
+ \fi\fi\fi
+\fi }
+
+\def \sin@lig #1#2{% sin, shin, ssad, ddad, \a@s
+% c1 c3
+\put@tatwil \@mod@acttrue
+\ifnum \chr@cls = 1 % YntCbyp
+ \if\is@end@char #2\set@chr\sk@b@h \else
+ \ifnum \act@cd = \a@sin \set@chr\sk@b@h \else
+ \fi\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ttah@lig #1#2{% ttah, tthah
+% c1 c3
+\put@tatwil \@mod@acttrue
+\ifnum \chr@cls = 1 % YntCbyp
+ \if\is@end@char #2\set@chr\sk@b@h
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% rah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \rah@end #1#2*#3#4{% final r, z, j
+% c1 m1 * c2 c3
+\@mod@acttrue
+\ifcase \chr@cls
+ \put@tatwil % 0 l
+\or \if\is@end@char #4% % 1 YntCbyp
+ \else \set@chr\sk@b@sp \set@high@act
+ \fi
+\or \chr@tie\a@er@to@s \chr@sin % 2 sxSD
+\or \put@tatwil % 3 GHXJ
+\or \put@tatwil % 4 cR
+\or \ifligs % 5 kgM
+ \ifx #1r\if\is@updia #2*\put@tatwil
+ \else \kaf@lig
+ \fi
+ \else \put@tatwil
+ \fi
+ \else \put@tatwil
+ \fi
+\else \put@tatwil
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% fah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \fah@end #1{% fah family
+% c1
+\ifnum \act@cd = \a@qaf
+ \ifnewfont \set@act\sk@q@s \@mod@acttrue
+ \fi
+\else \@mod@acttrue
+\fi \global\@highfalse }
+
+%%%%%%%%%%%%%%%%%%%%%% kaf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \kaf@end #1#2{% kaf family
+% c2 c3
+\ifnum \act@cd = \a@kaf
+ \gim@test #2% closed gim?
+ \kaf@test #1% kaf-kaf ?
+\fi
+\@mod@acttrue }
+
+%%%%%%%%%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \lam@lig #1#2{% lam family
+% c2 c3
+\global\@highfalse
+\ifnum \act@cd = \a@lam@gim
+ \if\is@end@char #1\chr@tie\a@skip
+ \fi \else
+\ifnum \act@cd = \a@lam@spec@low \else
+ \@mod@acttrue
+ \gim@test #2% closed gim?
+ \kaf@test #1% kaf-lam ?
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \mim@end #1*#2#3{% final mIm
+% m1 * c2 c3
+\ifs@nd \if\is@lodia #1*% simulate tail
+ \if\is@end@char #2\set@act\sk@m@s
+ \else \set@act\sk@B \chr@tie\a@mim
+ \fi
+ \else \set@act\sk@m@s
+ \fi
+\else
+\ifcase \chr@cls
+ \set@act\sk@m@s % 0 l
+ \if\is@end@char #3\else \set@chr\sk@l@m
+ \fi
+\or \set@act\sk@m@s % 1 YntCbyp
+ \if\is@end@char #3\chr@tie\a@em@to@bb \set@chr\sk@spc
+ \else \set@chr\sk@b@e@m
+ \fi
+\or \set@act\sk@m@s \chr@tie\a@em@to@s \chr@sin % 2 sxSD
+\or \put@tatwil % 3 GHXJ
+\or \put@tatwil % 4 cR
+\or \if\is@updia #1*\put@tatwil % 5 kgM
+ \else \set@act\sk@m@s %\kaf@lig
+ \fi
+\or \set@act\sk@m@s % 6 fqv
+\else \ifx #2m\set@act\sk@m@s
+ \if\is@end@char #3\set@chr\sk@m@s \else
+ \set@chr\sk@m@s@h
+ \fi
+ \else \put@tatwil
+ \fi
+\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \nun@end #1#2#3{% final nun
+% c1 c2 c3
+\global\@highfalse \@mod@acttrue
+\ifnum \chr@cls = 1 % YntCbyp
+ \if\is@end@char #3\else
+ \set@chr\sk@b@sp \set@high@act
+ \fi
+\else \put@tatwil
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh
+\ifx #1\a@H \else
+\set@act \sk@h@u
+\fi
+\else
+\ifurd@ \ifm@lay \else \set@act \sk@h@s \fi % two eyes
+ \ifx #1T\else
+ \ifx #1\a@H
+ \ifx #3l\ifx #6l% % 0 l
+ \ifnum #4 = \c@shadda \set@chr\sk@l@w
+ % special short form of lam for the Name of God
+ \fi\fi
+ \put@tatwil
+ \fi
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi
+\else
+\ifx #3l\ifx #6l% % 0 l
+ \ifnum #4 = \c@shadda \set@chr\sk@l@w
+ % special short form of lam for the Name of God
+ \fi\fi
+ \put@tatwil
+\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 % 3 GHX
+% \if\is@updia #4+#5*\chr@tie\a@tatwil \else
+ \put@tatwil
+% \fi
+\else \gim@test #6\put@tatwil
+\fi\fi\fi\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% wavy hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hah@urd #1{% wavy hah
+% c2
+\if\is@end@char #1\set@act\sk@h % isolated round h
+\fi
+\@mod@actfalse % no mark below
+\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@end #1#2#3{% yah or alif maqsoura
+% y/Y/L c2 c3
+ \global\@highfalse
+%\global \a@min 1
+\ifx #1y\ifyahd@ts \@mod@acttrue \fi
+\else \@mod@acttrue
+\fi
+\if\is@end@char #3\yah@one #2\else \yah@more #2%
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@one #1{% yah or alif maqsoura % and one char
+% c2
+\ifcase \chr@cls
+ \act@yah \set@chr\sk@l@lng % 0 l
+\or % 1 YntCbyp
+ \ifh@mza \act@yah \set@chr\sk@b@y \else
+ \ifk@fs \act@yah \set@chr\sk@b@y \else % ++++
+ \ifx #1y\else
+ \ifx #1Y\else
+ \act@yah \set@chr\sk@b@y
+ \fi\fi\fi\fi % ++++
+\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD
+\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ
+\or \act@yah % 4 cR
+\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 5 kgM
+\or \act@yah % 6 fqv
+\else \ifx #1m\act@yah \set@chr\sk@m@s \else
+ \put@tatwil
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@more #1{% yah or alif maqsoura % and more than one char
+% c2
+\ifcase \chr@cls % 0 l
+ \act@yah \set@chr\sk@l@y
+ \set@low@act
+\or \ifiz@fet % 1 YntCbyp
+ \ifx #1y\else
+ \ifx #1Y\else
+ \act@yah \set@chr\sk@b@e@m
+ \fi\fi
+ \else \act@yah \set@chr\sk@b@e@m
+ \fi
+\or \act@yah \chr@tie\a@em@to@s \chr@sin % 2 sxSD
+\or \act@yah \ifs@nd \chr@tie\a@em@to@s \fi % 3 GHXJ
+\or \put@tatwil % 4 cR
+\or \act@yah \kaf@lig % 5 kgM
+ \ifs@nd \chr@tie\a@em@to@s \fi
+\or \ifs@nd \act@yah \else \put@tatwil \fi % 6 fqv
+\else \ifx #1h\act@yah \chr@tie\a@em@to@s
+ \else \put@tatwil
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% long yah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@p@end #1#2#3{% long (Urdu) yah bari
+% c2 c3
+ \global\@highfalse
+\global \a@min 2
+\ifx #1E\ifyahd@ts \@mod@acttrue
+ \fi
+\else \@mod@acttrue
+\fi
+\if\is@end@char #3\yah@p@one #2\else \yah@p@more #2%
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@p@one #1{% yah bari and one char
+% c2
+\ifcase \chr@cls \relax \set@chr\sk@l@lng % 0 l
+\or \set@chr\sk@b@g % 1 YntCbyp
+\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD
+\else \ifx #1m\set@chr\sk@m@s
+ \else \put@tatwil
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yah@p@more #1{% yah bari and more than one char c2 X
+% c2
+\ifcase \chr@cls \relax \set@chr\sk@l@y % 0 l
+\or \set@chr\sk@b@g % 1 YntCbyp
+\or \chr@tie\a@g@to@s \chr@sin % 2 sxSD
+\else \ifx #1m\set@chr\sk@m@s@h \else
+ \ifx #1h\set@chr\sk@h@s@l
+ \else
+ \put@tatwil
+ \fi\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \aw@midligs #1#2*#3#4{% check for medial ligatures
+% c1 m1 * c2 c3
+\ifcase \act@cls \lam@lig #3#4% % 0 l
+\or \bah@mid #2*#3#4% % 1 YntCbyp
+\or \sin@lig #1#4% % 2 sxSD
+\or \gim@lig #1#3#4% % 3 GHXJ
+\or \global\@highfalse \put@tatwil % 4 cR
+\or \global\@highfalse \put@tatwil % 5 kgM
+\or \global\@highfalse \put@tatwil % 6 fqv
+\or \ttah@lig #1#4% % 7 VZ
+\else \global\@highfalse
+ \ifx #1m\mim@mid #2*#3#4\else
+ \ifx #1h\hah@mid #1#3#4\else % two-eyed hah
+ \ifx #1\a@h\hah@urd@mid #1#3#4\else
+ \put@tatwil
+ \fi\fi\fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \chr@fam #1{% put family
+% c2
+\if@con \@mod@chrtrue
+\ifcase \chr@cls % 0 l
+\or \set@chr\sk@b % 1 YntCbyp
+ \ifx #1\a@am \chr@mod 6 \fi % Malay
+\or % 2 sxSD
+\or \set@chr\sk@hh \@mod@chrtrue % 3 GHXJ
+\or % 4 cR
+\or \kaf@fam % 5 kgM
+\or \set@chr\sk@f@s % 6 fqv
+\or % 7 VZ
+\or % 8 rzj
+\or \set@chr\sk@b@p % 9 \a@t \a@n
+\else
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%% bah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bah@mid #1+#2*#3#4{% long form of bah etc.
+% m11 + m12 * c2 c3
+\put@tatwil
+\ifnum \act@cd = \a@bah@s % normal shape
+ \@mod@acttrue
+ \if@high \ifnum #1 > 9 \set@act\sk@b@h \global\@highfalse
+ \fi
+ \else \global\@hightrue
+ \fi
+ \else
+\ifnum \act@cd = \a@bah@high % higher shape
+ \global\@highfalse
+ \else
+\ifnum \act@cd = \a@bah@spec@gim % before medial gim
+ \global\@highfalse
+ \else
+\ifnum \act@cd = \a@bah@spec@yah % before final yah
+ \global\@highfalse
+ \else
+\ifnum \act@cd = \a@bah@mid@mim % before medial mim
+ \global\@highfalse
+ \else
+\ifnum \act@cd = \a@bah@spec % before rah
+ \gim@test #4% closed gim ?
+ \global\@highfalse
+ \else
+\fi\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \mim@mid #1*#2#3{% medial mIm
+% m1 * c2 c3
+\ifnum \act@cd = \a@mim@spec@alif % s-m-a
+ \ifnum \chr@cls = 2 \chr@sin
+ \fi
+ \else
+\ifligs \mim@mid@lig #1*#2#3\else
+\if\is@end@char #3\mim@mid@lig #1*#2#3\else
+ \put@tatwil
+\fi\fi\fi }
+
+\def \mim@mid@lig #1*#2#3{% ligature for medial mIm
+% m1 * c2 c3
+\ifcase \chr@cls % 0 l
+ \ifnum \act@cd = \a@mim@lam@gim % l-m-^g
+ \if\is@end@char #3\set@chr\sk@l@h \else
+ \set@chr\sk@l@y
+ \fi
+ \if\is@updia #1*\set@act\sk@m@s@l
+ \fi
+ \else
+ \if\is@end@char #3\act@mim@spec #1*\set@chr\sk@l@m
+ \fi\fi
+%\or \set@act\sk@m@s \set@chr\sk@b@m@m % 1 YntCbyp
+\or \act@mim@spec #1*\set@chr\sk@b@m@m % 1 YntCbyp
+%\or \act@mim@spec #1*\chr@tie\a@bah@mid@mim % 2 sxSD
+\or \set@act\sk@m@s \chr@tie\a@bah@mid@mim % 2 sxSD
+ \chr@sin
+\or \set@act\sk@m@s@h \gim@test #3% % 3 GHXJ
+\or \set@act\sk@m@s@h % 4 cR
+\or \put@tatwil % 5 kgM
+\or \set@act\sk@m@s@h % 6 fqv
+\else
+ \ifx #2m\if\is@end@char #3%
+% \act@mim@spec #1*\set@chr\sk@m@s@m
+ \set@act\sk@m@s@l \set@chr\sk@m@s@m
+ \if\is@updia #1*\set@act\sk@m@s@l
+ \fi
+ \else \put@tatwil
+ \fi
+ \else \put@tatwil
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% hah %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hah@mid #1#2#3{% medial hah, no ligature in Urdu
+% c1 c2 c3
+\ifurd@ \ifnum \chr@cls = 0 % 0 l
+ \if\is@end@char #3\set@act\sk@h@s@l
+ \set@chr\sk@l@h
+ \else \put@tatwil
+ \fi
+ \else \put@tatwil
+ \fi
+\else
+\ifcase \chr@cls % 0 l
+ \ifligs \set@act\sk@h@s@l
+ \if\is@end@char #3\set@chr\sk@l@h
+ \else \set@chr\sk@l@m
+ \fi\fi
+\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp
+\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD
+\else \ifnum \chr@cls = 9 % \a@t \a@n
+ \act@hah \set@chr\sk@b@e@h
+ \else \put@tatwil
+ \fi
+\fi
+\fi }
+
+\def \hah@urd@mid #1#2#3{% medial (wavy) hah
+% c1 c2 c3
+\ifcase \chr@cls \set@act\sk@h@s@l % 0 l
+ \if\is@end@char #3\set@chr\sk@l@h \else
+ \set@chr\sk@l@m
+ \fi
+\or \act@hah \set@chr\sk@b@e@h % 1 YntCbyp
+\or \act@hah \chr@tie\a@mh@to@s \chr@sin % 2 sxSD
+\else \ifnum \chr@cls = 9 % \a@t \a@n
+ \act@hah \set@chr\sk@b@e@h
+ \else \put@tatwil
+ \fi
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \gim@test #1{% closed gim ?
+% c3
+\ifnum \chr@cls = \gim@cls % GHXJ
+\if\is@end@char #1\set@chr\sk@j@cl
+ \@mod@chrtrue \global\@highfalse
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \kaf@test #1{% short kaf ?
+%\ifx #1\a@ax \put@tatwil % swash kaf
+\ifnum \chr@cd = \a@kaf@w \put@tatwil % swash kaf
+\else \ifnum \chr@cls = \kaf@cls
+ \kaf@lig \global\@highfalse
+\else \put@tatwil
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% change chr@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \chr@sin {% shape without tooth % c
+\@mod@chrtrue
+\ifnum \chr@cd = \a@sin \set@chr\sk@sn@s \else
+\ifnum \chr@cd = \a@sad \set@chr\sk@sd@s \else
+\fi\fi }
+
+\def \kaf@lig {% put short kaf-alif ligature
+\@mod@chrtrue
+\ifnum \chr@cd = \a@kaf \set@chr\sk@k@sh \else
+\ifnum \chr@cd = \a@kaf@s \set@chr\sk@k@sh \else
+\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@sp \else
+\ifnum \chr@cd = \a@kaf@p@s \set@chr\sk@k@sp \else
+\ifnum \chr@cd = \a@gaf \set@chr\sk@g@sh \else
+\ifnum \chr@cd = \a@gaf@s \set@chr\sk@g@sh \else
+\ifnum \chr@cd = \a@gaf@p@s \set@chr\sk@g@sp \else
+\fi\fi\fi\fi\fi\fi\fi }
+
+\def \kaf@fam {% no mark
+\ifnum \chr@cd = \a@kaf \set@chr\sk@k@s \else
+\ifnum \chr@cd = \a@kaf@p \set@chr\sk@k@p \else
+\ifnum \chr@cd = \a@gaf \set@chr\sk@g@s \else
+\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% change act@cd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \act@yah {% short yah
+\global\a@min 1
+\ifnum \act@cd = \a@yah \set@act\sk@y@s \else
+\ifnum \act@cd = \a@yah@h \set@act\sk@y@h@s
+\fi\fi }
+
+\def \act@hah {% short hah
+\ifurd@ \else
+\ifnum \act@cd = \a@hah \set@act\sk@h@s
+\fi\fi }
+
+\def \act@gim #1{% deposit ligature
+\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0
+\else \set@act\sk@hh@s \@mod@acttrue
+\fi \a@min 1 }
+%\fi }
+
+\def \act@mim@spec #1*{% lam-mim etc.
+\if\is@updia #1*\set@act\sk@m@s@l
+\else \set@act\sk@m@s
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% keshide %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@tatwil {% deposit keshide
+\ifspread \if@con \@tattrue
+\fi\fi }
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/alists.sty b/language/arabic/arabtex/texinput/alists.sty
index 1f1272a1ba..209af440c6 100644
--- a/language/arabic/arabtex/texinput/alists.sty
+++ b/language/arabic/arabtex/texinput/alists.sty
@@ -1,211 +1,211 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alists.sty
-% called by altxext.sty
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% chapter = al-fa.slu
-% tableofcontents = al-mu.htawayAtu
-% listoffigures = qA'imaTu al-.suwaru
-% listoftables = qA'imaTu al-^gadAwilu
-% listofpictures = qA'imaTu al-rusUmu
-% index = al-fihrisu (al-fihristu)
-% bibliography = al-marA^gi`u
-% references = al-ma.sAdiru
-% abstract = al-mula_h_ha.su
-% appendix = al-mul.haqu
-% attachments = al-murfaqAtu
-% number = al-raqmu
-
-\a@ident {alists.sty} {3.11 inverted list macros} {26.04.2003}
-
-\iffalse %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\center{\trivlist \centering\item[]}
-
-%\let\endcenter=\endtrivlist
-
-\def\centering{\let\\=\@centercr\rightskip\@flushglue\leftskip\@flushglue
-\parindent\z@\parfillskip\z@}
-
-%\let\enddescription\endlist
-
-\def\flushleft{\trivlist \raggedright\item[]}
-
-\def\raggedright
-{\let\\=\@centercr\@rightskip\@flushglue \rightskip\@rightskip
- \leftskip\z@ \parindent\z@}
-
-\let\endflushleft=\endtrivlist
-
-\def\flushright{\trivlist \raggedleft\item[]}
-
-\def\raggedleft
-{\let\\=\@centercr\rightskip\z@\leftskip\@flushglue
- \parindent\z@ \parfillskip\z@}
-
-\let\endflushright=\endtrivlist
-
-\def\@centercr{\ifhmode \unskip\else \@badcrerr\fi
- \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}}
-
-\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
- [{\@icentercr}{\ignorespaces}}
-
-\def\@icentercr[#1]{\vskip #1\ignorespaces}
-
-\fi %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@itemize
-{\ifnum \@itemdepth >3 \@toodeep
-\else \advance \@itemdepth \@ne
- \edef \@itemitem {labelitem\romannumeral \the \@itemdepth }%
- \a@@list {\csname \@itemitem \endcsname }%
- {\def \makelabel ##1{\hbox to 1sp {##1\hss }\hfil }}%
-\fi \test@token }
-
-\def \a@c@enumerate
-{\ifnum \@enumdepth >3 \@toodeep
-\else \advance \@enumdepth \@ne
- \edef \@enumctr {enum\romannumeral \the \@enumdepth }%
- \a@@list {\csname label\@enumctr \endcsname }%
- {\usecounter {\@enumctr }%
- \def \makelabel ##1%
- {\edef \a@@tmp {##1}\hbox to 1sp
- {\expandafter \<\a@@tmp >\hss }\hfil }}%
-\fi \test@token }
-
-\def \a@c@description {\a@@list {}%
-{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}%
-\def \enddescription {\endlist }\test@token}
-
-\def \a@c@trivlist {\a@trivlist \test@token }
-
-\def \a@trivlist
-{\parsep \a@parskip \@nmbrlistfalse \a@@trivlist
-\labelwidth \z@ \leftmargin \z@ \itemindent \z@
-\let \@itemlabel \@empty \def \makelabel ##1{##1}}
-
-\def \a@c@center {%
-\let\endcenter \a@@endtrivlist
-\a@trivlist \a@@centering \a@@item[]}
-
-\def \a@c@flushright {%
-\let\endflushright \a@@endtrivlist
-\a@trivlist \a@@raggedright \a@@item[]}
-
-\def \a@c@flushleft {%
-\let\endflushleft \a@@endtrivlist
-\a@trivlist \a@@raggedleft \a@@item[]}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@@raggedright
-{\let \a@last@line \put@line
-\rightskip \@flushglue \@rightskip \@flushglue \leftskip \z@
-\a@parindent \z@ \spreadfalse }
-
-\def \a@@raggedleft
-{\let \a@last@line \put@line
-\rightskip \z@ \leftskip \@flushglue
-\parfillskip \z@ \a@parindent \z@ \spreadfalse }
-
-\def \a@@centering
-{\let \a@last@line \put@line
-\rightskip \@flushglue \leftskip \@flushglue
-\a@parindent \z@ \spreadfalse \parfillskip \z@ }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\a@centercr {% end of line
-%{\ifhmode \unskip\else \@badcrerr\fi
-%\par
-\a@last@line
-\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@@list #1#2{%
-\ifnum \@listdepth >5\relax \@toodeep
- \else \global \advance \@listdepth \@ne \fi
-\rightmargin \z@ \listparindent \z@ \itemindent \z@
-\csname @list\romannumeral \the \@listdepth \endcsname
-\def \@itemlabel {#1}\let \makelabel \a@@mklab \@nmbrlistfalse #2\relax
-\a@@trivlist \a@parskip \parsep \a@parindent \listparindent
-\advance \a@hsize -\leftmargin \advance \a@hsize -\rightmargin
-\advance \@totalleftmargin \leftmargin \advance \a@leftmargin \rightmargin
-\ignorespaces }
-
-\def \a@@trivlist
-{\@topsepadd \topsep
-\if@noskipsec \leavea@vmode \fi % \a@@everypar
-\ifa@vmode \advance \@topsepadd \partopsep \fi \a@@par
-\if@inlabel \@noparitemtrue \@noparlisttrue
- \else \@noparlistfalse \@topsep \@topsepadd \fi
-\advance \@topsep \a@parskip \leftskip \z@ \rightskip \@rightskip
-\parfillskip \@flushglue
-%\@setpar {\if@newlist \else {\@@par }\fi }% ??
-\let \endtrivlist \a@@endtrivlist
-\global \@newlisttrue \@outerparskip \a@parskip }
-
-\def \a@@mklab #1{#1\hfil }
-
-\def \a@@endtrivlist
-{\if@inlabel \putwordb@x {}\fi % \a@@everypar
-\if@newlist \@noitemerr \fi
-\a@@par
-\if@noparlist \else
-\ifdim \lastskip >\z@
- \@tempskipa \lastskip \vskip -\lastskip
- \advance \@tempskipa \a@parskip
- \advance \@tempskipa -\@outerparskip
- \vskip \@tempskipa
-\fi \@endparenv
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@@item [#1]{% for arabic lists running from right to left
-\if@noparitem \a@@donoparitem \else
- \if@inlabel \putwordb@x {\arab@space }\a@@par \fi
- \a@@par
- \if@newlist \if@nobreak \@nbitem \else
- \addpenalty \@beginparpenalty
- \addvspace \@topsep \addvspace {-\a@parskip }\fi
- \else \addpenalty \@itempenalty \addvspace \itemsep
- \fi \global \@inlabeltrue
-\fi
-\a@@everypar {\global \@minipagefalse \global \@newlistfalse
- \if@inlabel \global \@inlabelfalse \a@spacefalse
- \putwordb@x {\box \@labels \hskip -\a@parindent }%
- \fi \a@@everypar {}}%
-\global \@nobreakfalse
-\if@noitemarg \@noitemargfalse
- \if@nmbrlist \refstepcounter {\@listctr }\fi
-\fi
-\setbox \@tempboxa \hbox {\makelabel {#1}}%
-\global \setbox \@labels \hbox
- {\hskip \labelsep
- \ifdim \wd \@tempboxa >\labelwidth \box \@tempboxa
- \else \hbox to\labelwidth {\unhbox \@tempboxa }\fi
- \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep
- \unhbox \@labels }%
-%\test@token }
-\arab@tail }
-
-\def \a@@donoparitem
-{\@noparitemfalse \global \setbox \@labels \hbox
- {\hskip \leftmargin \unhbox \@labels \hskip -\leftmargin }%
-\if@minipage \else
- \@tempskipa \lastskip \vskip -\lastskip
- \advance \@tempskipa \@outerparskip
- \advance \@tempskipa -\a@parskip \vskip \@tempskipa
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alists.sty
+% called by altxext.sty
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% chapter = al-fa.slu
+% tableofcontents = al-mu.htawayAtu
+% listoffigures = qA'imaTu al-.suwaru
+% listoftables = qA'imaTu al-^gadAwilu
+% listofpictures = qA'imaTu al-rusUmu
+% index = al-fihrisu (al-fihristu)
+% bibliography = al-marA^gi`u
+% references = al-ma.sAdiru
+% abstract = al-mula_h_ha.su
+% appendix = al-mul.haqu
+% attachments = al-murfaqAtu
+% number = al-raqmu
+
+\a@ident {alists.sty} {3.11 inverted list macros} {26.04.2003}
+
+\iffalse %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\center{\trivlist \centering\item[]}
+
+%\let\endcenter=\endtrivlist
+
+\def\centering{\let\\=\@centercr\rightskip\@flushglue\leftskip\@flushglue
+\parindent\z@\parfillskip\z@}
+
+%\let\enddescription\endlist
+
+\def\flushleft{\trivlist \raggedright\item[]}
+
+\def\raggedright
+{\let\\=\@centercr\@rightskip\@flushglue \rightskip\@rightskip
+ \leftskip\z@ \parindent\z@}
+
+\let\endflushleft=\endtrivlist
+
+\def\flushright{\trivlist \raggedleft\item[]}
+
+\def\raggedleft
+{\let\\=\@centercr\rightskip\z@\leftskip\@flushglue
+ \parindent\z@ \parfillskip\z@}
+
+\let\endflushright=\endtrivlist
+
+\def\@centercr{\ifhmode \unskip\else \@badcrerr\fi
+ \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}}
+
+\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
+ [{\@icentercr}{\ignorespaces}}
+
+\def\@icentercr[#1]{\vskip #1\ignorespaces}
+
+\fi %%%%%%%%%%%%%%%%%%% LaTeX 2.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@itemize
+{\ifnum \@itemdepth >3 \@toodeep
+\else \advance \@itemdepth \@ne
+ \edef \@itemitem {labelitem\romannumeral \the \@itemdepth }%
+ \a@@list {\csname \@itemitem \endcsname }%
+ {\def \makelabel ##1{\hbox to 1sp {##1\hss }\hfil }}%
+\fi \test@token }
+
+\def \a@c@enumerate
+{\ifnum \@enumdepth >3 \@toodeep
+\else \advance \@enumdepth \@ne
+ \edef \@enumctr {enum\romannumeral \the \@enumdepth }%
+ \a@@list {\csname label\@enumctr \endcsname }%
+ {\usecounter {\@enumctr }%
+ \def \makelabel ##1%
+ {\edef \a@@tmp {##1}\hbox to 1sp
+ {\expandafter \<\a@@tmp >\hss }\hfil }}%
+\fi \test@token }
+
+\def \a@c@description {\a@@list {}%
+{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}%
+\def \enddescription {\endlist }\test@token}
+
+\def \a@c@trivlist {\a@trivlist \test@token }
+
+\def \a@trivlist
+{\parsep \a@parskip \@nmbrlistfalse \a@@trivlist
+\labelwidth \z@ \leftmargin \z@ \itemindent \z@
+\let \@itemlabel \@empty \def \makelabel ##1{##1}}
+
+\def \a@c@center {%
+\let\endcenter \a@@endtrivlist
+\a@trivlist \a@@centering \a@@item[]}
+
+\def \a@c@flushright {%
+\let\endflushright \a@@endtrivlist
+\a@trivlist \a@@raggedright \a@@item[]}
+
+\def \a@c@flushleft {%
+\let\endflushleft \a@@endtrivlist
+\a@trivlist \a@@raggedleft \a@@item[]}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@@raggedright
+{\let \a@last@line \put@line
+\rightskip \@flushglue \@rightskip \@flushglue \leftskip \z@
+\a@parindent \z@ \spreadfalse }
+
+\def \a@@raggedleft
+{\let \a@last@line \put@line
+\rightskip \z@ \leftskip \@flushglue
+\parfillskip \z@ \a@parindent \z@ \spreadfalse }
+
+\def \a@@centering
+{\let \a@last@line \put@line
+\rightskip \@flushglue \leftskip \@flushglue
+\a@parindent \z@ \spreadfalse \parfillskip \z@ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\a@centercr {% end of line
+%{\ifhmode \unskip\else \@badcrerr\fi
+%\par
+\a@last@line
+\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@@list #1#2{%
+\ifnum \@listdepth >5\relax \@toodeep
+ \else \global \advance \@listdepth \@ne \fi
+\rightmargin \z@ \listparindent \z@ \itemindent \z@
+\csname @list\romannumeral \the \@listdepth \endcsname
+\def \@itemlabel {#1}\let \makelabel \a@@mklab \@nmbrlistfalse #2\relax
+\a@@trivlist \a@parskip \parsep \a@parindent \listparindent
+\advance \a@hsize -\leftmargin \advance \a@hsize -\rightmargin
+\advance \@totalleftmargin \leftmargin \advance \a@leftmargin \rightmargin
+\ignorespaces }
+
+\def \a@@trivlist
+{\@topsepadd \topsep
+\if@noskipsec \leavea@vmode \fi % \a@@everypar
+\ifa@vmode \advance \@topsepadd \partopsep \fi \a@@par
+\if@inlabel \@noparitemtrue \@noparlisttrue
+ \else \@noparlistfalse \@topsep \@topsepadd \fi
+\advance \@topsep \a@parskip \leftskip \z@ \rightskip \@rightskip
+\parfillskip \@flushglue
+%\@setpar {\if@newlist \else {\@@par }\fi }% ??
+\let \endtrivlist \a@@endtrivlist
+\global \@newlisttrue \@outerparskip \a@parskip }
+
+\def \a@@mklab #1{#1\hfil }
+
+\def \a@@endtrivlist
+{\if@inlabel \putwordb@x {}\fi % \a@@everypar
+\if@newlist \@noitemerr \fi
+\a@@par
+\if@noparlist \else
+\ifdim \lastskip >\z@
+ \@tempskipa \lastskip \vskip -\lastskip
+ \advance \@tempskipa \a@parskip
+ \advance \@tempskipa -\@outerparskip
+ \vskip \@tempskipa
+\fi \@endparenv
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@@item [#1]{% for arabic lists running from right to left
+\if@noparitem \a@@donoparitem \else
+ \if@inlabel \putwordb@x {\arab@space }\a@@par \fi
+ \a@@par
+ \if@newlist \if@nobreak \@nbitem \else
+ \addpenalty \@beginparpenalty
+ \addvspace \@topsep \addvspace {-\a@parskip }\fi
+ \else \addpenalty \@itempenalty \addvspace \itemsep
+ \fi \global \@inlabeltrue
+\fi
+\a@@everypar {\global \@minipagefalse \global \@newlistfalse
+ \if@inlabel \global \@inlabelfalse \a@spacefalse
+ \putwordb@x {\box \@labels \hskip -\a@parindent }%
+ \fi \a@@everypar {}}%
+\global \@nobreakfalse
+\if@noitemarg \@noitemargfalse
+ \if@nmbrlist \refstepcounter {\@listctr }\fi
+\fi
+\setbox \@tempboxa \hbox {\makelabel {#1}}%
+\global \setbox \@labels \hbox
+ {\hskip \labelsep
+ \ifdim \wd \@tempboxa >\labelwidth \box \@tempboxa
+ \else \hbox to\labelwidth {\unhbox \@tempboxa }\fi
+ \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep
+ \unhbox \@labels }%
+%\test@token }
+\arab@tail }
+
+\def \a@@donoparitem
+{\@noparitemfalse \global \setbox \@labels \hbox
+ {\hskip \leftmargin \unhbox \@labels \hskip -\leftmargin }%
+\if@minipage \else
+ \@tempskipa \lastskip \vskip -\lastskip
+ \advance \@tempskipa \@outerparskip
+ \advance \@tempskipa -\a@parskip \vskip \@tempskipa
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/alocal.sty b/language/arabic/arabtex/texinput/alocal.sty
index 626d644581..c0e0ad3dc1 100644
--- a/language/arabic/arabtex/texinput/alocal.sty
+++ b/language/arabic/arabtex/texinput/alocal.sty
@@ -1,20 +1,20 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alocal.sty
-% ArabTeX
-% stub for local extensions
-% should normally be empty!
-% Version 26.02.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {3.11 local stub, 26.02.2006}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alocal.sty
+% ArabTeX
+% stub for local extensions
+% should normally be empty!
+% Version 26.02.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {3.11 local stub, 26.02.2006}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/language/arabic/arabtex/texinput/altxext.sty b/language/arabic/arabtex/texinput/altxext.sty
index 536d0357c0..c4a7138339 100644
--- a/language/arabic/arabtex/texinput/altxext.sty
+++ b/language/arabic/arabtex/texinput/altxext.sty
@@ -1,101 +1,101 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% altxext.sty
-% patches for LaTeX in arabic mode
-% for use with arabart.cls
-% ArabTeX 3.11
-% 04.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {altxext.sty} {3.11 LaTeX extensions for Arabic mode} {04.05.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@outputdblcol {% part of output routine for Arabic mode
-\if@firstcolumn \global\@firstcolumnfalse
- \global\setbox\@leftcolumn \box\@outputbox
-\else \global\@firstcolumntrue
- \setbox\@outputbox \vbox {\hbox to\textwidth {%
- \hskip \columnwidth
- \hfil \vrule width\columnseprule \hfil
- \hbox to\columnwidth {\box\@leftcolumn \hss}%
- \hskip -\textwidth
- \hbox to\columnwidth{\box\@outputbox \hss}%
- \hskip \columnsep
- \hskip \columnwidth }}%
- \@combinedblfloats \@outputpage
- \begingroup \@dblfloatplacement \@startdblcolumn
- \@whilesw\if@fcolmade \fi
- {\@outputpage \@startdblcolumn }\endgroup
-\fi}
-
-\let \@outputdblcol \a@outputdblcol % for Arabic mode
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@addmarginpar {% part of output routine for Arabic mode
-\@next \@marbox \@currlist
-{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug
-\@tempcnta \m@ne
-\if@twocolumn
- \if@firstcolumn \@tempcnta \@ne \fi
-\else \if@mparswitch
- \ifodd \c@page \else \@tempcnta \@ne \fi
- \fi
- \if@reversemargin \@tempcnta -\@tempcnta \fi
-\fi
-\ifnum \@tempcnta < \z@
- \global\setbox\@marbox \box\@currbox
-\fi
-\@tempdima \@mparbottom \advance\@tempdima -\@pageht
-\advance\@tempdima \ht \@marbox
-\ifdim \@tempdima > \z@
- \@@warning {Marginpar on page \thepage\space moved}%
-\else \@tempdima \z@
-\fi
-\global\@mparbottom \@pageht
-\global\advance\@mparbottom \@tempdima
-\global\advance\@mparbottom \dp\@marbox
-\global\advance\@mparbottom \marginparpush
-\advance\@tempdima -\ht\@marbox
-\global\ht\@marbox \z@ \global\dp\@marbox \z@
-\vskip -\@pagedp \vskip\@tempdima \nointerlineskip
-\hbox to\columnwidth
- {\ifnum \@tempcnta > \z@
- \hskip\columnwidth \hskip\marginparsep
- \else \hskip -\marginparsep \hskip -\marginparwidth
- \fi \box\@marbox \hss}%
-\nobreak %% RmS 91/06/21 \nobreak added
-\vskip -\@tempdima \nointerlineskip
-\hbox {\vrule \@height\z@ \@width\z@ \@depth\@pagedp }}
-
-\let \@addmarginpar \a@addmarginpar % for Arabic mode
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\markright#1{{\let\protect\noexpand
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
-
-\def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}}
-
-\def \markleft #1{{\let\protect\noexpand
-\let\label\relax \let\index\relax \let\glossary\relax
-\expandafter\@markleft \@themark {#1}%
-\mark {\@themark }}%
-\if@nobreak \ifvmode \nobreak \fi \fi }
-
-\def \@markleft #1#2#3{\gdef\@themark {{#3}{#2}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\UsePackage {alists} % load LaTeX extensions for Arabic lists
-\UsePackage {asect} % load LaTeX extensions for Arabic sections
-\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% altxext.sty
+% patches for LaTeX in arabic mode
+% for use with arabart.cls
+% ArabTeX 3.11
+% 04.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {altxext.sty} {3.11 LaTeX extensions for Arabic mode} {04.05.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@outputdblcol {% part of output routine for Arabic mode
+\if@firstcolumn \global\@firstcolumnfalse
+ \global\setbox\@leftcolumn \box\@outputbox
+\else \global\@firstcolumntrue
+ \setbox\@outputbox \vbox {\hbox to\textwidth {%
+ \hskip \columnwidth
+ \hfil \vrule width\columnseprule \hfil
+ \hbox to\columnwidth {\box\@leftcolumn \hss}%
+ \hskip -\textwidth
+ \hbox to\columnwidth{\box\@outputbox \hss}%
+ \hskip \columnsep
+ \hskip \columnwidth }}%
+ \@combinedblfloats \@outputpage
+ \begingroup \@dblfloatplacement \@startdblcolumn
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage \@startdblcolumn }\endgroup
+\fi}
+
+\let \@outputdblcol \a@outputdblcol % for Arabic mode
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@addmarginpar {% part of output routine for Arabic mode
+\@next \@marbox \@currlist
+{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug
+\@tempcnta \m@ne
+\if@twocolumn
+ \if@firstcolumn \@tempcnta \@ne \fi
+\else \if@mparswitch
+ \ifodd \c@page \else \@tempcnta \@ne \fi
+ \fi
+ \if@reversemargin \@tempcnta -\@tempcnta \fi
+\fi
+\ifnum \@tempcnta < \z@
+ \global\setbox\@marbox \box\@currbox
+\fi
+\@tempdima \@mparbottom \advance\@tempdima -\@pageht
+\advance\@tempdima \ht \@marbox
+\ifdim \@tempdima > \z@
+ \@@warning {Marginpar on page \thepage\space moved}%
+\else \@tempdima \z@
+\fi
+\global\@mparbottom \@pageht
+\global\advance\@mparbottom \@tempdima
+\global\advance\@mparbottom \dp\@marbox
+\global\advance\@mparbottom \marginparpush
+\advance\@tempdima -\ht\@marbox
+\global\ht\@marbox \z@ \global\dp\@marbox \z@
+\vskip -\@pagedp \vskip\@tempdima \nointerlineskip
+\hbox to\columnwidth
+ {\ifnum \@tempcnta > \z@
+ \hskip\columnwidth \hskip\marginparsep
+ \else \hskip -\marginparsep \hskip -\marginparwidth
+ \fi \box\@marbox \hss}%
+\nobreak %% RmS 91/06/21 \nobreak added
+\vskip -\@tempdima \nointerlineskip
+\hbox {\vrule \@height\z@ \@width\z@ \@depth\@pagedp }}
+
+\let \@addmarginpar \a@addmarginpar % for Arabic mode
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\markright#1{{\let\protect\noexpand
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi}
+
+\def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}}
+
+\def \markleft #1{{\let\protect\noexpand
+\let\label\relax \let\index\relax \let\glossary\relax
+\expandafter\@markleft \@themark {#1}%
+\mark {\@themark }}%
+\if@nobreak \ifvmode \nobreak \fi \fi }
+
+\def \@markleft #1#2#3{\gdef\@themark {{#3}{#2}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\UsePackage {alists} % load LaTeX extensions for Arabic lists
+\UsePackage {asect} % load LaTeX extensions for Arabic sections
+\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/language/arabic/arabtex/texinput/amac.sty b/language/arabic/arabtex/texinput/amac.sty
index 52a00e1b13..9124169026 100644
--- a/language/arabic/arabtex/texinput/amac.sty
+++ b/language/arabic/arabtex/texinput/amac.sty
@@ -1,164 +1,164 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% amac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% amac.sty
-% Scanner for MAC Arabic
-% to install it, include it as a LaTeX package or style option "amac"
-% with Plain TeX, say "\input amac.sty"
-% to activate it, say "\setcode{amac}"
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \amacatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \amacatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {amac.sty} {3.11 MAC Arabic encoding} {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \amac@catcodes {% assignments for MAC Hebrew
-\countdef \is@m=2 \countdef \is@n=4
-\is@m = 128 \is@n = 64
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m = 160 \is@n = 32
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^^a0 12 }
-
-{\amac@catcodes
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for MAC Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setamac@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^80 {@} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@}
-\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@}
-\def \sc@^^88 {@} \def \sc@^^89 {@} \def \sc@^^8a {@}
-\def \sc@^^8b {\n@xp\a@n}
-\def \sc@^^8c {@} \def \sc@^^8d {@} \def \sc@^^8e {@} \def \sc@^^8f {@}
-
-\def \sc@^^90 {@} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {\a@ell}
-\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@}
-\def \sc@^^98 {@} \def \sc@^^99 {@} \def \sc@^^9a {@} \def \sc@^^9b {\a@div}
-\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@} \def \sc@^^9f {@}
-
-\def \sc@^^a0 {@} \def \sc@^^a1 {!}
-\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh}
-\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
-\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt}
-\def \sc@^^a8 {)} \def \sc@^^a9 {(} \def \sc@^^aa {*} \def \sc@^^ab {+}
-\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/}
-%
-\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
-\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
-\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
-\def \sc@^^bc {\a@rab} \def \sc@^^bd {=}
-\def \sc@^^be {\a@lab} \def \sc@^^bf {?}
-%
-\def \sc@^^c0 {*} \def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa}
-\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A}
-\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C}
-\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d}
-
-\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s}
-\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {V}
-\def \sc@^^d8 {Z} \def \sc@^^d9 {P} \def \sc@^^da {R} \def \sc@^^db {]}
-\def \sc@^^dc {\a@bsl} \def \sc@^^dd {[}
-\def \sc@^^de {\a@up} \def \sc@^^df {\a@dn}
-
-\def \sc@^^e0 {B} \def \sc@^^e1 {f} \def \sc@^^e2 {q} \def \sc@^^e3 {k}
-\def \sc@^^e4 {l} \def \sc@^^e5 {m} \def \sc@^^e6 {n} \def \sc@^^e7 {h}
-\def \sc@^^e8 {w} \def \sc@^^e9 {Y} \def \sc@^^ea {y} \def \sc@^^eb {"aN}
-\def \sc@^^ec {"uN}\def \sc@^^ed {"iN} \def \sc@^^ee {"a} \def \sc@^^ef {"u}
-
-\def \sc@^^f0 {"i} \def \sc@^^f1 {\n@xp\a@Ze}
-\def \sc@^^f2 {""} \def \sc@^^f3 {p}
-\def \sc@^^f4 {\n@xp\a@t} \def \sc@^^f5 {J}
-\def \sc@^^f6 {\n@xp\a@H} \def \sc@^^f7 {v}
-\def \sc@^^f8 {g} \def \sc@^^f9 {\n@xp\a@d}
-\def \sc@^^fa {\n@xp\a@r} \def \sc@^^fb {\a@rbc}
-\def \sc@^^fc {\a@bar} \def \sc@^^fd {\a@lbc}
-\def \sc@^^fe {j} \def \sc@^^ff {E}
-\a@digits = {0123456789}
-\a@paren = {()[]}
-\a@first = {"`^^e6\a@tok \lq \rq \cap \MIN \IN }
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for MAC Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \amac@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase{\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \amac@beg {% start MAC Arabic scanner
-\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
-\amac@word }
-
-{\catcode `\^^M=13 \endlinechar = -1
-\gdef \amac@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\sc@endscan }\else % finished
-\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
-\if \nxp ^^M\nxp #1\def \next {\amac@par #1}% active character
-\else \def \next {\amac@w@rd #1}%
-\fi\fi\fi \next }%
-} % catcode 13
-
-\gdef \amac@w@rd #1#2{% special cases
-\case #1\of
-{ #2{\amac@word #1-#2}
- -{\amac@minus #2}
- ^^a0{\sc@back #2}
- ^^ad{\amac@minus #2}
-\default {\amac@@word #1#2}
-}\endcase }
-
-\gdef \amac@@word #1{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put \amac@word }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \amac@minus {% hyphen between words
-\def \sc@char {-}\sc@put \amac@beg }
-
-\gdef \amac@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\gdef \amac@endscan \@@ {\global\let \a@scan \amac@scan }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-} % \amac@catcodes
-
-\def \set@amac {% select the MAC Hebrew scanner
-\let \sc@beg \amac@beg \let \sc@word \amac@word
-\let \sc@back \sc@@back \let \sc@endscan \amac@endscan
-\global\let \a@scan \amac@scan \setamac@codes
-\amac@catcodes
-\a@message {input encoding set to MAC Arabic and ISO 8859-6 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding
-iso88596\set@amac iso8859-6\set@amac amac\set@amac }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for MAC Arabic code installed.}
-
-\catcode `\@ = \amacatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% amac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% amac.sty
+% Scanner for MAC Arabic
+% to install it, include it as a LaTeX package or style option "amac"
+% with Plain TeX, say "\input amac.sty"
+% to activate it, say "\setcode{amac}"
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \amacatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \amacatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {amac.sty} {3.11 MAC Arabic encoding} {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \amac@catcodes {% assignments for MAC Hebrew
+\countdef \is@m=2 \countdef \is@n=4
+\is@m = 128 \is@n = 64
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m = 160 \is@n = 32
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+{\amac@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for MAC Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setamac@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^80 {@} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@}
+\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@}
+\def \sc@^^88 {@} \def \sc@^^89 {@} \def \sc@^^8a {@}
+\def \sc@^^8b {\n@xp\a@n}
+\def \sc@^^8c {@} \def \sc@^^8d {@} \def \sc@^^8e {@} \def \sc@^^8f {@}
+
+\def \sc@^^90 {@} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {\a@ell}
+\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@}
+\def \sc@^^98 {@} \def \sc@^^99 {@} \def \sc@^^9a {@} \def \sc@^^9b {\a@div}
+\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@} \def \sc@^^9f {@}
+
+\def \sc@^^a0 {@} \def \sc@^^a1 {!}
+\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh}
+\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
+\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt}
+\def \sc@^^a8 {)} \def \sc@^^a9 {(} \def \sc@^^aa {*} \def \sc@^^ab {+}
+\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/}
+%
+\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
+\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
+\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
+\def \sc@^^bc {\a@rab} \def \sc@^^bd {=}
+\def \sc@^^be {\a@lab} \def \sc@^^bf {?}
+%
+\def \sc@^^c0 {*} \def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa}
+\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A}
+\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C}
+\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d}
+
+\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s}
+\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {V}
+\def \sc@^^d8 {Z} \def \sc@^^d9 {P} \def \sc@^^da {R} \def \sc@^^db {]}
+\def \sc@^^dc {\a@bsl} \def \sc@^^dd {[}
+\def \sc@^^de {\a@up} \def \sc@^^df {\a@dn}
+
+\def \sc@^^e0 {B} \def \sc@^^e1 {f} \def \sc@^^e2 {q} \def \sc@^^e3 {k}
+\def \sc@^^e4 {l} \def \sc@^^e5 {m} \def \sc@^^e6 {n} \def \sc@^^e7 {h}
+\def \sc@^^e8 {w} \def \sc@^^e9 {Y} \def \sc@^^ea {y} \def \sc@^^eb {"aN}
+\def \sc@^^ec {"uN}\def \sc@^^ed {"iN} \def \sc@^^ee {"a} \def \sc@^^ef {"u}
+
+\def \sc@^^f0 {"i} \def \sc@^^f1 {\n@xp\a@Ze}
+\def \sc@^^f2 {""} \def \sc@^^f3 {p}
+\def \sc@^^f4 {\n@xp\a@t} \def \sc@^^f5 {J}
+\def \sc@^^f6 {\n@xp\a@H} \def \sc@^^f7 {v}
+\def \sc@^^f8 {g} \def \sc@^^f9 {\n@xp\a@d}
+\def \sc@^^fa {\n@xp\a@r} \def \sc@^^fb {\a@rbc}
+\def \sc@^^fc {\a@bar} \def \sc@^^fd {\a@lbc}
+\def \sc@^^fe {j} \def \sc@^^ff {E}
+\a@digits = {0123456789}
+\a@paren = {()[]}
+\a@first = {"`^^e6\a@tok \lq \rq \cap \MIN \IN }
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for MAC Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \amac@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase{\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \amac@beg {% start MAC Arabic scanner
+\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
+\amac@word }
+
+{\catcode `\^^M=13 \endlinechar = -1
+\gdef \amac@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\if \nxp ^^M\nxp #1\def \next {\amac@par #1}% active character
+\else \def \next {\amac@w@rd #1}%
+\fi\fi\fi \next }%
+} % catcode 13
+
+\gdef \amac@w@rd #1#2{% special cases
+\case #1\of
+{ #2{\amac@word #1-#2}
+ -{\amac@minus #2}
+ ^^a0{\sc@back #2}
+ ^^ad{\amac@minus #2}
+\default {\amac@@word #1#2}
+}\endcase }
+
+\gdef \amac@@word #1{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put \amac@word }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \amac@minus {% hyphen between words
+\def \sc@char {-}\sc@put \amac@beg }
+
+\gdef \amac@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\gdef \amac@endscan \@@ {\global\let \a@scan \amac@scan }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+} % \amac@catcodes
+
+\def \set@amac {% select the MAC Hebrew scanner
+\let \sc@beg \amac@beg \let \sc@word \amac@word
+\let \sc@back \sc@@back \let \sc@endscan \amac@endscan
+\global\let \a@scan \amac@scan \setamac@codes
+\amac@catcodes
+\a@message {input encoding set to MAC Arabic and ISO 8859-6 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding
+iso88596\set@amac iso8859-6\set@amac amac\set@amac }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for MAC Arabic code installed.}
+
+\catcode `\@ = \amacatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/aoutput.sty b/language/arabic/arabtex/texinput/aoutput.sty
index da7edc579e..b066d950d9 100644
--- a/language/arabic/arabtex/texinput/aoutput.sty
+++ b/language/arabic/arabtex/texinput/aoutput.sty
@@ -1,173 +1,173 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aoutput.sty
-% ArabTeX
-% Version 04.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {aoutput.sty} {3.10 build output lines} {04.06.2000}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen \a@hsize \newdimen \a@limit \newdimen \a@leftmargin
-\newcount \a@prevgraf \newcount \a@@prevgraf \newbox \a@tempb@x
-
-\def \setspace #1{\def \arab@space {\hskip #1\relax }}% redefine ?
-
-\def \arab@space {\space \hskip 0pt plus 0.001fil \relax }
-
-\def \def@arabstrut {\def \arab@strut {\if@vocals
-%\vrule height2.5ex depth2.0ex width\z@ \relax \else
-\vrule height2ex depth1.5ex width\z@ \relax \else
-%\vrule height3ex depth1.5ex width\z@ \relax \else
-\vrule height2ex depth1.0ex width\z@ \relax \fi }}
-
-\def \a@parparams {% get paragraph dimensions
-\ifnum \parshape = \z@ \a@hsize \hsize
-\a@leftmargin \z@
-\else \a@hsize \linewidth \a@leftmargin \@totalleftmargin
-\fi
-\a@leftmargin \z@
-\a@prevgraf \z@ \spreadfalse }
-
-\def \a@resetpar {% called by \a@par
-\a@prevgraf \z@ }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% control variables for the "arabtext" environment:
-%
-% \the\arabtext@hook: executed when entering the environment
-%
-% \ifa@vmode: Arabic paragraph closed?
-%
-% \ifa@space: deposit a space?
-%
-% \ifspread: fill line by spreading the words?
-%
-% \ifarab: ignore Arabic script output?
-%
-% \a@parindent: skip at beginning of first line of paragraph
-% \a@parindent: saved value from Roman mode
-%
-% \a@parskip: saved value from Roman mode
-%
-% \the\a@@everypar: token list, executed when starting a paragraph
-%
-% \a@oldhmode: saved value from outside
-%
-% \a@short@line: finish last line, close paragraph
-%
-% \a@put@line: deposit current line buffer, continue paragraph
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% TeX/LaTeX parameters influencing the shape of a paragraph:
-%
-% \hsize, \leftskip, \rightskip, \parindent, \parskip
-% \parshape, \hangindent, \hangafter, \linewidth, \@totalleftmargin
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% internal control:
-%
-% \a@hsize = length of line buffer including \leftskip, \rightskip
-% \a@limit = maximal Arabic text length
-%
-% \a@vmodetrue : linebuffer undefined, \a@hsize valid
-% \a@vmodefalse: linebuffer valid, \a@limit valid, \a@@everypar used
-%
-%%%%%%%%%%%%%%%%%%%%%%% output routines %%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \putwordb@x #1{% deposit a word
-\ifa@vmode \arab@indent \fi
-\setbox \wordb@x \hbox {#1}\put@word }
-
-\def \arab@indent {% like \indent for Arabic
-\ifa@vmode \putlineb@x {\hskip \a@parindent }\the\a@@everypar
-\else \setbox \wordb@x \hbox {\hskip \a@parindent }\add@word \fi }
-
-\def \arab@noindent {% like \noindent for Arabic
-\ifa@vmode \initlineb@x \the\a@@everypar \fi }
-
-\def \leavea@vmode {% like \leavevmode for Arabic
-\ifa@vmode \arab@indent \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \initlineb@x {% make an empty Arabic line
-\putlineb@x {\arab@strut }\a@spacefalse }
-
-\def \putlineb@x #1{% open the line box
-\a@vmodefalse \a@limit \a@hsize
-\advance \a@limit -\leftskip \advance \a@limit -\rightskip
-\setbox \lineb@x \hbox {#1}\a@spacefalse }
-
-\def \add@word {% add word to line without space
-\putlineb@x {\unhbox \wordb@x \unhbox \lineb@x }}
-
-\def \addt@line {% add word to line unconditionally, spacing ?
-\ifa@space \putlineb@x
- {\unhcopy \wordb@x \arab@space \unhcopy \lineb@x }%
-\else \add@word \fi }
-
-\def \put@word {% add word to line, spacing, break line if necessary
-\setbox \a@tempb@x \hbox
-{\unhcopy \wordb@x \ifa@space \arab@space \fi \unhcopy \lineb@x }%
-\ifdim \a@limit < \wd\lineb@x \put@line \add@word \else
-\ifdim \a@limit < \wd\a@tempb@x \put@line \add@word \else
-\setbox \lineb@x \box \a@tempb@x
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@line {% output the line, adjusted
-\ifarab \setbox\a@tempb@x \hbox to \a@hsize
- {\hskip \rightskip \arab@strut
- \charsubdefmax \m@ne \unhbox \lineb@x \hskip \leftskip }%
- \put@ab@x
-\fi \ifnum \tracingarab > 1 \message {|}\fi }
-
-\def \short@line{% put line without adjustment, close line
-\ifarab \ifdim \wd\lineb@x = \z@ \else
-\ifspread \dimen0 \a@limit \divide \dimen0 8
- \dimen2 \a@limit \advance \dimen2 -\wd\lineb@x
- \setbox\a@tempb@x \hbox to \a@hsize
- {\hskip \rightskip
- \loop \hskip \parfillskip \advance \dimen2 -\dimen0
- \ifdim \dimen2 > \z@ \repeat
- \arab@strut \charsubdefmax \m@ne
- \unhbox \lineb@x \hskip \leftskip }%
-\else \setbox\a@tempb@x \hbox to \a@hsize
- {\hskip \rightskip \hskip \parfillskip
- \arab@strut \charsubdefmax \m@ne
- \unhbox \lineb@x \hskip \leftskip }%
-\fi \put@ab@x
-\fi\fi
-\ifnum \tracingarab > 1 \message {/}\fi }
-
-\def \put@ab@x {% deposit line
-\ifhmode \unskip {\endgraf }\penalty \clubpenalty
-\parindent \z@ \parskip \z@ \else
-\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
-\fi\fi
-\begingroup \parfillskip 0pt plus 1fill
- \leftskip \z@ \rightskip \z@ \noindent
- \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
- \box\a@tempb@x \endgraf
-\endgroup \parindent \z@ \parskip \z@ \initlineb@x
-\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
-\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \a@par@hook \relax % reserved
-
-\def \testoutput {% show output box
-\showboxbreadth = \maxdimen \showboxdepth = 6
-\message {"testoutput" activated.}
-\tracingoutput = 1 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aoutput.sty
+% ArabTeX
+% Version 04.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {aoutput.sty} {3.10 build output lines} {04.06.2000}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen \a@hsize \newdimen \a@limit \newdimen \a@leftmargin
+\newcount \a@prevgraf \newcount \a@@prevgraf \newbox \a@tempb@x
+
+\def \setspace #1{\def \arab@space {\hskip #1\relax }}% redefine ?
+
+\def \arab@space {\space \hskip 0pt plus 0.001fil \relax }
+
+\def \def@arabstrut {\def \arab@strut {\if@vocals
+%\vrule height2.5ex depth2.0ex width\z@ \relax \else
+\vrule height2ex depth1.5ex width\z@ \relax \else
+%\vrule height3ex depth1.5ex width\z@ \relax \else
+\vrule height2ex depth1.0ex width\z@ \relax \fi }}
+
+\def \a@parparams {% get paragraph dimensions
+\ifnum \parshape = \z@ \a@hsize \hsize
+\a@leftmargin \z@
+\else \a@hsize \linewidth \a@leftmargin \@totalleftmargin
+\fi
+\a@leftmargin \z@
+\a@prevgraf \z@ \spreadfalse }
+
+\def \a@resetpar {% called by \a@par
+\a@prevgraf \z@ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% control variables for the "arabtext" environment:
+%
+% \the\arabtext@hook: executed when entering the environment
+%
+% \ifa@vmode: Arabic paragraph closed?
+%
+% \ifa@space: deposit a space?
+%
+% \ifspread: fill line by spreading the words?
+%
+% \ifarab: ignore Arabic script output?
+%
+% \a@parindent: skip at beginning of first line of paragraph
+% \a@parindent: saved value from Roman mode
+%
+% \a@parskip: saved value from Roman mode
+%
+% \the\a@@everypar: token list, executed when starting a paragraph
+%
+% \a@oldhmode: saved value from outside
+%
+% \a@short@line: finish last line, close paragraph
+%
+% \a@put@line: deposit current line buffer, continue paragraph
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TeX/LaTeX parameters influencing the shape of a paragraph:
+%
+% \hsize, \leftskip, \rightskip, \parindent, \parskip
+% \parshape, \hangindent, \hangafter, \linewidth, \@totalleftmargin
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% internal control:
+%
+% \a@hsize = length of line buffer including \leftskip, \rightskip
+% \a@limit = maximal Arabic text length
+%
+% \a@vmodetrue : linebuffer undefined, \a@hsize valid
+% \a@vmodefalse: linebuffer valid, \a@limit valid, \a@@everypar used
+%
+%%%%%%%%%%%%%%%%%%%%%%% output routines %%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \putwordb@x #1{% deposit a word
+\ifa@vmode \arab@indent \fi
+\setbox \wordb@x \hbox {#1}\put@word }
+
+\def \arab@indent {% like \indent for Arabic
+\ifa@vmode \putlineb@x {\hskip \a@parindent }\the\a@@everypar
+\else \setbox \wordb@x \hbox {\hskip \a@parindent }\add@word \fi }
+
+\def \arab@noindent {% like \noindent for Arabic
+\ifa@vmode \initlineb@x \the\a@@everypar \fi }
+
+\def \leavea@vmode {% like \leavevmode for Arabic
+\ifa@vmode \arab@indent \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \initlineb@x {% make an empty Arabic line
+\putlineb@x {\arab@strut }\a@spacefalse }
+
+\def \putlineb@x #1{% open the line box
+\a@vmodefalse \a@limit \a@hsize
+\advance \a@limit -\leftskip \advance \a@limit -\rightskip
+\setbox \lineb@x \hbox {#1}\a@spacefalse }
+
+\def \add@word {% add word to line without space
+\putlineb@x {\unhbox \wordb@x \unhbox \lineb@x }}
+
+\def \addt@line {% add word to line unconditionally, spacing ?
+\ifa@space \putlineb@x
+ {\unhcopy \wordb@x \arab@space \unhcopy \lineb@x }%
+\else \add@word \fi }
+
+\def \put@word {% add word to line, spacing, break line if necessary
+\setbox \a@tempb@x \hbox
+{\unhcopy \wordb@x \ifa@space \arab@space \fi \unhcopy \lineb@x }%
+\ifdim \a@limit < \wd\lineb@x \put@line \add@word \else
+\ifdim \a@limit < \wd\a@tempb@x \put@line \add@word \else
+\setbox \lineb@x \box \a@tempb@x
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@line {% output the line, adjusted
+\ifarab \setbox\a@tempb@x \hbox to \a@hsize
+ {\hskip \rightskip \arab@strut
+ \charsubdefmax \m@ne \unhbox \lineb@x \hskip \leftskip }%
+ \put@ab@x
+\fi \ifnum \tracingarab > 1 \message {|}\fi }
+
+\def \short@line{% put line without adjustment, close line
+\ifarab \ifdim \wd\lineb@x = \z@ \else
+\ifspread \dimen0 \a@limit \divide \dimen0 8
+ \dimen2 \a@limit \advance \dimen2 -\wd\lineb@x
+ \setbox\a@tempb@x \hbox to \a@hsize
+ {\hskip \rightskip
+ \loop \hskip \parfillskip \advance \dimen2 -\dimen0
+ \ifdim \dimen2 > \z@ \repeat
+ \arab@strut \charsubdefmax \m@ne
+ \unhbox \lineb@x \hskip \leftskip }%
+\else \setbox\a@tempb@x \hbox to \a@hsize
+ {\hskip \rightskip \hskip \parfillskip
+ \arab@strut \charsubdefmax \m@ne
+ \unhbox \lineb@x \hskip \leftskip }%
+\fi \put@ab@x
+\fi\fi
+\ifnum \tracingarab > 1 \message {/}\fi }
+
+\def \put@ab@x {% deposit line
+\ifhmode \unskip {\endgraf }\penalty \clubpenalty
+\parindent \z@ \parskip \z@ \else
+\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
+\fi\fi
+\begingroup \parfillskip 0pt plus 1fill
+ \leftskip \z@ \rightskip \z@ \noindent
+ \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
+ \box\a@tempb@x \endgraf
+\endgroup \parindent \z@ \parskip \z@ \initlineb@x
+\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
+\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \a@par@hook \relax % reserved
+
+\def \testoutput {% show output box
+\showboxbreadth = \maxdimen \showboxdepth = 6
+\message {"testoutput" activated.}
+\tracingoutput = 1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/aparse.sty b/language/arabic/arabtex/texinput/aparse.sty
index af54ac6f1f..9ebcf73c35 100644
--- a/language/arabic/arabtex/texinput/aparse.sty
+++ b/language/arabic/arabtex/texinput/aparse.sty
@@ -1,1123 +1,1123 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-% ArabTeX
-% Parser 26.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {aparse.sty} {3.11 get syllables } {26.05.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \def@arabvoc {% define vowel parsing routines for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@a {\sv@@a }% short a
-\def \sv@e {\sv@@e }% short e
-\def \sv@i {\sv@@i }% short i
-\def \sv@o {\sv@@o }% short o
-\def \sv@u {\sv@@u }% short u
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, plene %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@A {\sv@@A }% long a
-\def \sv@E {\sv@@E }% long e
-\def \sv@I {\sv@@I }% long i
-\def \sv@O {\sv@@O }% long o
-\def \sv@U {\sv@@U }% long u
-\def \sv@Y {\sv@Ytest }% alif maqsura or tooth
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\sv@def \a@a {\sv@a@a }% defective long a = Qur'an alif
-\sv@def \a@e {\sv@a@e }% explicit sukun
-\sv@def \a@i {\sv@a@i }% defective long i
-\sv@def \a@o {\sv@U }% special short u
-\sv@def \a@u {\sv@a@u }% defective long u
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%\sv@def \a@A {\sv@a }% Turkish "a
-\sv@def \a@A {\sv@a@A }% Turkish "a
-\sv@def \a@E {\sv@a@E }% Kurdish ^e
-\sv@def \a@I {\sv@i }% Turkish "i
-\sv@def \a@O {\sv@a@O }% Kurdish and Turkish "o
-%\sv@def \a@U {\sv@u }% Turkish "u
-\sv@def \a@U {\sv@a@U }% Turkish "u
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% extra vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\sv@def \a@Za {\sv@Za }% Kashmiri .a
-\sv@def \a@Ze {\sv@Ze }% explicit shadda
-\sv@def \a@Zi {\sv@Zi }% Sindhi -IN
-\sv@def \a@Zo {\sv@Zo }% Kashmiri .o
-\sv@def \a@Zu {\sv@Zu }% Kashmiri .u
-
-\sv@def \a@ZA {\sv@ZA }% Kashmiri .A
-\sv@def \a@ZE {\sv@ZE }% explicit madda
-\sv@def \a@ZI {\sv@ZI }% Kashmiri .y
-\sv@def \a@ZO {\sv@ZO }% Kashmiri .O
-\sv@def \a@ZU {\sv@ZU }% Kashmiri .U
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@hamzabeg {\syl@@hamzabeg }% initial hamza
-
-\def \syl@hamza {\syl@@hamza }% non-initial hamza, context #1'
-
-\def \syl@test@voc {\syl@@test@voc }% vowel or sukun ?
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% miscellaneous %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \check@high {\check@@high }% long form for tooth ?
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% static definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@def #1{% define \sv@#1
-\xpa \def \csname sv@\string #1\endcsname }
-
-\newtoks \a@revwd
-\newtoks \sv@revwd \newtoks \last@con
-\newcount \last@mod \newcount \last@voc
-\newif \ifsyl@wdend \newif \ifm@dda
-
-\def \a@parse #1>{% parse token sequence into syllables
-\iftest@parse \tracingmacros = 1
-\iftest@scan \else \a@verb (#1)>\fi\fi
-\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
-\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
-\iftest@parse \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@revwd )>\fi }
-
-\def \test@wdend #1#2#3{% test for end of word: k #1 #2 #3
-\case #1\of
-{ N<{\syl@wdendtrue }
- |"{\test@wdend #2#3<}
-\default {\if\is@shortvowel #1\test@wdend #2#3<\else
- \ifcat -\nxp #1\syl@wdendtrue \else \syl@wdendfalse
- \fi\fi }
-}\endcase }
-
-\def \isat@wdend #1#2#3{00% at end of word?
-\test@wdend #1#2#3\ifsyl@wdend \else \xpa \setiffalse \fi }
-
-\def \is@vowel #1{% test for all vowels
-\is@in@list #1aeiouAEIOUY%
-\a@a \a@e \a@i \a@o \a@u
-\a@A \a@E \a@I \a@O \a@U
-\a@Za \a@Ze \a@Zi \a@Zo \a@Zu
-\a@ZA \a@ZE \a@ZI \a@ZO \a@ZU >}
-
-\def \is@shortvowel #1{% test for short vowels
-\is@in@list #1aeiou\a@a >}
-
-\def \syl@end #1>{% kill the rest
-\relax }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of word %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@beg #1{% start new word
-\global\@highfalse
-\case #1\of
-{ <{\syl@end }
- Q{\syl@hamzabeg }
- ^{\syl@hamzabeg A}
- B{\syl@tatwilbeg }
- "{\syl@quote@beg }
- |{\syl@bar }
- Y{\syl@con Y}
- \cap {\syl@beg }
-\default {\syl@@beg #1}
-}\endcase }
-
-\def \syl@@beg #1{% start new word
-\ifcat -\nxp #1\def \next {\syl@spec #1}\else
-\if\is@vowel #1\def \next {\syl@wasla #1}% check for wasla
- \else \def \next {\syl@con #1}% start syllable
-\fi\fi \next }
-
-\def \syl@bar #1{% check for || as "|
-\case #1\of
-{ |{\syl@quote@beg #1}
- B{\syl@con |B}
-\default {\put@con W\v@cfalse \@sukfalse\syl@voctest #1}
-}\endcase }
-
-\def \syl@wasla #1{% start word with vowel without hamza
-\put@con a\def \next {\syl@voc #1}% prepare for vowel
-\ifx \a@lang \a@hebr % Hebrew mode
- \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows
- \ifx #1A\add@fathaspec % Hebrew: qames
-\fi\fi\fi
-\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else
-\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else
-\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else
- \def \next {\syl@voctest }%
- \fi \else
-\ifiz@fet \else % wasla only in Arabic ?
-\ifh@mza \if\is@shortvowel #1%
- \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable
- \fi\fi
-\fi\fi\fi\fi\fi \next }
-
-\def \syl@wasla #1{% start word with vowel without hamza
-\def \next {\syl@voc #1}% prepare for vowel
-\ifu@gh \put@con Y\add@hamza\else \put@con a%
-\ifx \a@lang \a@hebr % Hebrew mode
- \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows
- \ifx #1A\add@fathaspec % Hebrew: qames
-\fi\fi\fi
-\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else
-\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else
-\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else
- \def \next {\syl@voctest }%
- \fi \else
-\ifiz@fet \else % wasla only in Arabic ?
-\ifh@mza \if\is@shortvowel #1%
- \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable
- \fi\fi
-\fi\fi\fi\fi\fi\fi \next }
-
-\def \syl@tatwilbeg #1{% start word with tatwIl: -- #1
- \put@con B%
-\if\is@vowel #1\def \next {\syl@voc #1}% harakat on tatwil
-\else \put@syl \def \next {\syl@con #1}% join
-\fi \next }
-
-\def \syl@spec #1#2{% deposit special character
-\ifx #1<\let \next \syl@end
-\else \put@spec #1% deposit character
- \ifx #1-\def \next {\syl@con #2}\else % create joining form
- \ifx #2<\let \next \syl@end \else % isolated character
- \def \next {\syl@beg #2}% % start new word
- \fi\fi
-\fi \next }
-
-\def \sv@syl #1#2#3{% explicit syllable
-\put@con #1\last@mod 0#2\last@voc 0#3\@highfalse \put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of syllable %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@con #1{% start a new syllable
-\case #1\of
-{ <{\syl@end }% not done
- Q{\syl@hamza } % no Hamza
- B{\put@con B\put@syl \syl@con }
- W{\put@con w\syl@Wspec }% no ending wA or w-
- "{\syl@quote@con }
- |{\syl@bar@con }
- \cap {\syl@con }
- \sv@syl {\sv@syl }
-\default {\syl@@con #1}
-}\endcase }
-
-\def \syl@@con #1#2{% start a new syllable
- \def \next {\syl@voctest #2}%
-\ifx #2\cap \def \next {\syl@@con #1}\else
-\ifx #1-\ifx #2<\def \next {\syl@spec #1#2}% joining form
- \else \def \next {\syl@beg #2}% ignore hyphen, tie
- \fi \else
-\ifcat -\nxp #1\def \next {\syl@spec #1#2}\else % special character
-\ifx #2-\def \next {\syl@assim #1}% assimilate?
-\else \put@con #1% deposit consonant
- \ifx #1#2\if@ssim \add@shadda
- \def \next {\syl@shadd@voctest #2}%
- \fi\fi
- \ifiz@fet\ifx #1X\ifx #2w\put@syl
- \def \next {\syl@con #2}% waw-e-ma`dul
- \fi\fi\fi
-\fi\fi\fi\fi \next }
-
-\def \syl@bar@con #1{% |
-\case #1\of
-{ |{\syl@quote@con #1}
- B{\syl@tatwil }
-\default {\put@con |\@sukfalse \syl@voctest #1}
-}\endcase }
-
-\def \syl@tatwil #1{% test for 2 tatwils
-\put@con B%
-\ifx #1B\add@shadda \def \next {\syl@voctest }%
-\else \def \next {\syl@voctest #1}%
-\fi \next }
-
-\def\syl@shadd@voctest #1#2{% hyphen after shadda ? context #1#1 #2
-\ifx #2-\def \next {\syl@hyphen #1}\else
- \def \next {\syl@voctest #2}%
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% hyphen %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@hyphen #1#2#3{% hyphen after consonant, #1 - #2 #3
-\ifx #2<\add@sukun \put@syl \def \next {\syl@con -#2#3}\else % k - ||
-\ifx #3<\def \next {\syl@contie #1#2#3}\else % k - x ||
-\ifx #3N\def \next {\syl@contie #1#2#3}\else % k - x N
-\ifcat -\nxp #3\def \next {\syl@contie #1#2#3}\else % k - x -
-\ifx #1l\def \next {\syl@art #2#3}\else % l - #2 #3
-\ifx #1\a@H \put@syl \put@spec W\def \next {\syl@beg #2#3}\else % H - x
-\ifiz@fet \def \next {\syl@voctest #2#3}% Persian suffix
-\else \add@sukun \put@syl \def \next {\syl@beg #2#3}% start new word
-\fi\fi\fi\fi\fi\fi\fi \next }
-
-\def \syl@art #1#2#3{% article, (a)l-#1#2#3
- \def \next {\syl@beg #1#2#3}% ought to test for sun letter !
-\ifx #1#2% no sukun before double (sun) letter
- \ifx #1Q\add@sukun \else
- \ifx #2#3\def \next {\syl@beg #2#3}% special case l-ll
- \fi \fi
-\else \add@sukun % moon letter
-\fi \put@syl \next }
-
-\def \syl@assim #1#2{% test for assimilation #1 - #2
-\ifx #2\cap \def \next {\syl@assim #1}\else
- \put@con #1\def \next {\syl@hyphen #1#2}% #1 - #2
-\if@ssim\ifx #1#2% ought to test for sun letter !
- \put@con l\def\next {\syl@art #1#2}% substitute l - #1 #2
- \fi
-\fi\fi \next }
-
-\def \syl@contie #1#2#3{% connecting vowel, #1 - #2#3
- \def \next {\syl@voctest #2#3}%
-\ifiz@fet \sv@test@izafet #1#2#3%
-\fi \next }
-
-\def \syl@voctie #1#2#3{% hyphen after vowel, #1 - #2 #3
- \def \next {\put@syl \syl@con -#2#3}% close syllable
-\ifiz@fet\ifx #3<\sv@test@izafet #1#2#3\else
- \ifcat -\nxp #3\sv@test@izafet #1#2#3\else
- \ifx #1a\put@con \a@H % supply final silent H
- \def \next {\syl@hyphen \a@H #2#3}\else
- \ifx #1e\put@con \a@H % supply final silent H
- \def \next {\syl@hyphen \a@H #2#3}%
- \fi\fi\fi\fi
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% special cases for Persian %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@hahtie #1#2#3{% connecting vowel, H - #2#3
- \def \next {\syl@hah #2#3}%
-\case #2\of
-{ IE{}
-\default {\sv@test@izafet #1#2#3}
-}\endcase \next }
-
-\def \syl@hah{% H at the end, ha-ye hawwaz-e ma.hfi
-\put@syl \put@spec W\syl@beg }
-
-\def \sv@izafet #1#2{% #1 - i/e/_i
-\case #1\of
-{ I\a@H{\add@hamza }
- AU{\put@syl \put@con y}
-}\endcase
-\ifx #2\a@i \add@kasraspec \else \add@kasra % long izafet ?
-\fi \put@syl \syl@con }
-
-\def \sv@wahdat #1#2{% #1 - I/E
-\case #1\of
-{ I\a@H{\put@syl \put@spec W\put@con a}
- AU{\put@syl \put@con Y\add@hamza }
-}\endcase
-\ifx #2I\add@kasra \fi
-\put@syl \put@con y\put@syl \syl@con }
-
-\def \sv@test@izafet #1#2#3{% special cases for -e, -i, -_e, -_i, -I, -E
-\case #2\of
-{ e{\def \next {\sv@izafet #1e#3}}
-i\a@i\a@E{\def \next {\sv@izafet #1i#3}}
- y{\def \next {\sv@izafet #1e}}
- I{\def \next {\sv@wahdat #1I#3}}
- E{\def \next {\sv@wahdat #1E#3}}
-}\endcase }
-
-\def \syl@endvoc #1{% test for H
- \def \next {\syl@con #1}%
-\ifiz@fet \ifx #1\a@H \put@con \a@H
- \def \next {\syl@@endvoc }%
-\fi\fi \next }
-
-\def \syl@@endvoc #1#2{% char after H
-\case #1\of
-{ -{\syl@hahtie \a@H #2}
- Q{\add@hamza \syl@voc }
- <{\put@syl \syl@end #2}
- "{\put@syl \syl@quote@beg #2}
- |{\put@syl \syl@bar #2}
-\default {\put@syl
- \ifcat -\nxp #1\def \next {\syl@spec #1#2}\else
- \def \next {\syl@beg #1#2}% start a new word
- \fi \next }
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% quoting %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@quote@beg #1#2{% start word with quote: " #1 #2
-\case #1\of
-{ '{\put@con Q\syl@voctest #2}
- Q{\put@con Q\syl@voctest }
- |{\put@spec W\syl@beg #2}% start new word
-\default {\syl@@quote@beg #1#2}
-}\endcase }
-
-\def \syl@@quote@beg #1{% start word with quote: " #1 #2
-\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel
-% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi
- \if@wasla \v@ctrue \@waslafalse \else \@waslatrue \togglev@c \fi
-\else \put@con a\togglev@c \add@wasla \put@syl % alif implied
- \ifx #1"\def \next {\syl@con }% " " k: alif wasla
- \else \def \next {\syl@con #1}% " k: alif wasla
- \fi
-\fi \next }
-
-\def \syl@quote@con #1#2{% start syllable with quote: " #1 #2
-\case #1\of
-{ '{\put@con Q\syl@voctest #2}
- Q{\put@con Q\syl@voctest }
- |{\put@con W\syl@voctest #2}
-\default {\togglev@c \syl@con #2}
-}\endcase }
-
-% original version of logic:
-\def \syl@quote@voc #1#2{% continue syllable with quote: " #1 #2
-\case #1\of
-{ B{\togglev@c \add@sukun \put@syl \syl@con #1#2}
- "{\togglev@c \add@sukun \put@syl \syl@beg #2}
- |{\syl@@quote@voc #2}
- '{\add@hamza \syl@voctest #2}
- Q{\add@hamza \syl@voctest }
-\default {\togglev@c \syl@voctest #1#2}% vowel: sukun
-}\endcase }
-
-% patches for Arnoud Vrolijk:
-% make "' sukun hamza instead of hamza modifier
-\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2
-\case #1\of
-{ B{\togglev@c \add@sukun \put@syl \syl@con #1}
- "{\togglev@c \add@sukun \put@syl \syl@beg }
- |{\syl@@quote@voc }
-\default {\togglev@c \syl@voctest #1}% vowel: sukun
-}\endcase }
-
-\def \syl@@quote@voc #1{% continue syllable with quote: "| #1 #2
- \put@syl \put@spec W%
-\if\is@vowel #1\def \next {\syl@wasla #1}% vowel: wasla
-\else \def \next {\syl@con #1}% consonant
-\fi \next }
-
-\def \togglev@c {% toggle diacritic
-\ifv@c \v@cfalse \else \v@ctrue \fi % toggle vowel indicator
-\if@suk \@sukfalse \else \@suktrue \fi % toggle sukun, wasla
-}
-
-\def \voc@suk {% normalize vowels and sukun
-\let \ifv@c \if@vocals \let \if@suk \if@sukun }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% vowel or end of syllable %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@@test@voc #1{% vowel or sukun ? variant in Hebrew!
-\if\is@vowel #1\def \next {\syl@voc #1}% test for vowel
-\else \def \next {\syl@con #1}%
- \ifurd@ \ifx #1h\else \add@sukun \fi
- \else \add@sukun
- \fi \put@syl
-\fi \next }
-
-\def \syl@voctest #1{% continue open syllable: K #1
-\case #1\of
-{ "{\syl@quote@voc }
- ^{\m@ddatrue \syl@voctest }
- |{\syl@bar@voc }
- B{\syl@tatwil@voc }
- \cap {\syl@voctest }
-\default {\syl@test@voc #1}
-}\endcase }
-
-\def \syl@bar@voc #1{% K | #1
-\ifx #1|\def \next {\syl@quote@voc |}\else
-\ifx #1"\def \next {\syl@test@quote }\else
-\if\is@vowel #1\def \next {\syl@test@voc #1|}\else
- \def \next {\syl@test@voc |#1}% no bar
-\fi\fi\fi \next }
-
-\def \syl@tatwil@voc #1{% K B #1
-\if\is@vowel #1\def \next {\syl@test@voc #1B}\else
- \def \next {\syl@test@voc B#1}% no vowel
-\fi \next }
-
-\def \syl@test@quote #1{% K |" #1
-\if\is@vowel #1\def \next {\syl@quote@voc #1|}\else
- \put@syl \put@con |\def \next {\syl@quote@voc "#1}%
-\fi \next }
-
-\iffalse % deleted for efficiency; for documentation only !
-% and also for compatibility with the Hebrew mode !!
-\def \syl@voc #1{% test for vowel
-\case #1\of
-{ <{\syl@end }% this cannot happen! or can it?
- -{\syl@voc }% ignore hyphen here
- a \a@A{\sv@@a }% short a, Turkish "a
- e {\sv@@e }% short e
- i \a@I{\sv@@i }% short i, Turkish "i
- o {\sv@@o }% short o
- u \a@U{\sv@@u }% short u, Turkish "u
- A {\sv@@A }% long a
- E {\sv@@E }% long e
- I {\sv@@I }% long i
- O {\sv@@O }% long o
- U \a@o{\sv@@U }% long u, special short u
- Y {\sv@Ytest }% alif maqsura or tooth
- \a@a {\sv@a@a }% Qur'an alif
- \a@e {\sv@a@e }% frei
- \a@i {\sv@a@i }% defective long i
- \a@u {\sv@a@u }% defective long u
- \a@E {\sv@a@E }% kurdish ^e
- \a@O {\sv@a@O }% Kurdish and Turkish "o
- \a@Za {\sv@Za }% Kashmiri .A
- \a@Ze {\sv@Ze }% Kashmiri .a
- \a@Zi {\sv@Zi }% Sindhi -IN
- \a@Zo {\sv@Zo }% Kashmiri u'
- \a@Zu {\sv@Zu }% Kashmiri U'
-\default {\csname sv@\string #1\endcsname}% switch on vowel
-}\endcase }
-\fi
-
-\def \syl@voc #1{% test for vowel, also for Hebrew mode
-\case #1\of
-{ <{\syl@end }% this cannot happen! or can it?
- -{\syl@voc }% ignore hyphen here
-\default {\csname sv@\string #1\endcsname}% switch on vowel
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% auxiliary vowel routines
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \test@B #1#2{% tatweel or ligature break
-\case #1\of
-{ |B{\put@con #1\put@syl #2}
-\default {#2#1}% deposit vowel carrier
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@a #1{% short a
-\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else
-\def \next {\sv@aInt #1}\fi \next }
-
-\def \sv@@a #1{% short a
-\ifu@gh \put@syl \put@con a\put@syl \def \next {\syl@con #1}\else
-\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else
- \def \next {\sv@aInt #1}%
-\fi\fi \next }
-
-\def \sv@a@Hvwl {% kurdish aH carrier
-\put@con \a@H \put@syl \syl@endvoc }
-
-\def \sv@aInt #1{% short a
-\ifx #1N\def \next {\syl@Nspec }% tanwin alif
-\else \add@fatha \put@syl \def \next {\sv@@aInt #1}%
-\fi \next }
-
-\def \sv@@aInt #1{% short a
-\case #1\of
-{ e{\ifurd@ \put@con E\else \put@con Y\add@hamza
- \fi \put@syl \syl@con }\else
- ou{\put@con w\put@syl \syl@con }\else
- i{\put@con y\put@syl \syl@con }\else
-\default {\syl@endvoc #1}% test for H
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@e {% short e
-\ifk@rd \xpa \sv@a \else
-\ift@rk \xxpa \sv@a \else \xxpa \sv@eInt \fi\fi }
-
-\def \sv@@e {% short e
-\ifk@rd \def \next {\sv@a }\else
-\ift@rk \def \next {\sv@a }\else
-\ifu@gh \put@syl \put@con \a@Y \put@syl \def \next {\syl@con }\else
-\def \next {\sv@eInt }\fi\fi\fi \next }
-
-\def \sv@eInt #1{% zwarakay in Pashto, otherwise short a
-\ifk@sh \put@syl \put@con \a@E \put@syl \def \next {\syl@con #1}%
-\else \def \next {\syl@endvoc #1}% test for H
- \ifp@sht \add@zwarakay \put@syl
- \ifx #1e\def \next {\syl@con }\put@con Y\add@hamza \put@syl
- \fi
- \else \add@kasra \put@syl
- \ifiz@fet % provisions for the preposition be-
- \if\is@vowel #1\def \next {\syl@beg #1}%
- \fi\fi
- \fi
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@i #1{% short i
-\case #1\of
-{ y{\sv@@I }% iy -> I
- N{\add@kasratan \put@syl \syl@ignore }% tanwin yah
- -{\add@kasra \syl@voctie i}
-\default {\add@kasra \put@syl \syl@con #1}% next syllable
-}\endcase }
-
-\def \sv@@i {% short i
-\ifu@gh \put@syl \put@con Y\put@syl \xpa \syl@con
-\else \xpa \sv@@iInt \fi }
-
-\def \sv@@iInt #1{% short i
-\case #1\of
-{ y{\sv@@I }% iy -> I
- N{\add@kasratan \put@syl \syl@ignore }% tanwin yah
- -{\add@kasra \syl@voctie i}
-\default {\add@kasra \put@syl \syl@con #1}% next syllable
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@o #1{% ammad in Pashto, otherwise short u
-\ifk@sh \put@syl \put@con \a@W \put@syl
- \def \next {\syl@con #1}\else
-\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else
- \def \next {\sv@oInt #1}%
-\fi\fi \next }
-
-\def \sv@@o #1{% ammad in Pashto, otherwise short u
-\ifk@sh \put@syl \put@con \a@W \put@syl
- \def \next {\syl@con #1}\else
-\ifu@gh \put@syl \put@con w\put@syl
- \def \next {\syl@con #1}\else
-\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else
- \def \next {\sv@oInt #1}%
-\fi\fi\fi \next }
-
-\def \sv@a@Wvwl {% kurdish O carrier
-\put@con \a@W \put@syl \syl@con }
-
-\def \sv@oInt #1{% ammad in Pashto, otherwise short u
-\ifp@sht \add@ammad \else \add@damma
-\fi \put@syl
-\ifx #1i\put@con y\put@syl \def \next {\syl@con }\else
- \def \next {\syl@endvoc #1}% test for H
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@u {% short u
-\ifk@rd \put@syl \xpa \sv@ukurd \else \xpa \sv@uInt \fi }
-
-\def \sv@@u {% short u
-\ifk@rd \put@syl \def \next {\sv@ukurd }\else
-\ifu@gh \put@syl \put@con \a@w \put@syl \def \next {\syl@con }\else
-\def \next {\sv@uInt }\fi\fi \next }
-
-\def \sv@ukurd #1{% short u, for Kurdish
-\ifx #1Q\def \next {\syl@hamza }\else
-\def \next {\test@B #1\sv@wvwl }\fi \next }
-
-\def \sv@wvwl {% w carrier
-\put@con w\put@syl \syl@con }
-
-\def \sv@uInt #1{% short u, otherwise
-\case #1\of
-{ w{\sv@UInt }% uw -> U
- N{\add@dammatan \put@syl \syl@ignore }% tanwin waw
-\default {\add@damma \put@syl \syl@con #1}% next syllable
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@A #1{% long A
-\ifk@rd \else \add@fatha \fi
-\put@syl \test@B #1\sv@Avwl }
-
-\def \sv@Avwl #1{% long A vowel
- \put@con a% may also serve as consonant, carry vowels
- \ifm@dda \add@madda \m@ddafalse \fi
-\ifx #1-\def \next {\syl@voctie A}\else
- \def \next {\syl@voctest #1}\@sukfalse % next syllable
-\fi \next }
-
-\def \sv@Aa #1{% long a + a ? whence ??
-\case #1\of
-{ |B{\put@con #1\put@syl \put@con a%
- \ifm@dda \add@madda \m@ddafalse
- \fi \put@syl \syl@con }
- -{\ifm@dda \add@madda \m@ddafalse
- \fi \syl@voctie A}
- a{\ifm@dda \add@madda \m@ddafalse
- \fi \sv@AaN }
- "{\ifm@dda \add@madda \m@ddafalse
- \fi \v@ctrue \@suktrue \sv@Aa }
-\default {\ifm@dda \add@madda \m@ddafalse
- \fi \put@syl \syl@con #1}% next syllable
-}\endcase }
-
-\def \sv@AaN #1{% long a + aN ?
- \def \next {\syl@con a#1}% next syllable
-\ifx #1N\def \next {\syl@aN}\else \put@syl
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@E {% long e
-\ift@rk \xpa \sv@I \else \xpa \sv@EInt \fi }
-
-\def \sv@EInt #1{% long E
-\ifk@sh \put@syl \put@con E\put@syl \def \next {\syl@con #1}%
-\else \def \next {\test@B #1\sv@Evwl }%
- \ifp@sht \add@zwarakay \else
- \ifiz@fet \else \add@kasra
- \fi\fi \put@syl
-\fi \next }
-
-\def \sv@Evwl #1{% long E vowel
-\ifx #1e\put@con L\def \next {\syl@con }\else % ey
- \def \next {\syl@con #1}% next syllable
-\ifp@sht \put@con \a@Y \else
-\ifurd@ \put@con E\else
- \put@con y%
-\fi\fi\fi \put@syl \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@I #1{% long i
-\ifk@sh \put@syl \put@con y\add@kasraspec \put@syl
- \def \next {\syl@con #1}\else
- \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }%
-\fi \next }
-
-\def \sv@Ivwl #1{% long i carrier
- \put@con y\ifm@dda \add@madda \m@ddafalse \fi % -I becomes -iy,
-\case #1\of
-{ y{\@sukfalse \add@shadda \syl@voctest} % -Iy becomes -iyy
- -{\syl@voctie I}
-\default {\@sukfalse \syl@voctest #1}% next syllable
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@O #1{% long o
-\ifp@sht \add@ammad \else
-\ifiz@fet \else \add@damma
-\fi\fi \put@syl \test@B #1\sv@Ovwl }
-
-\def \sv@Ovwl {% long o carrier
-\put@con w\put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@@U #1{% long u
-\ifk@sh \put@syl \put@con w\add@ammad \put@syl
- \def \next {\syl@con #1}\else
-\ifk@rd \put@syl \def \next {\test@B #1\sv@wwvwl }\else
- \def \next {\sv@UInt #1}%
-\fi\fi \next }
-
-\def \sv@wwvwl {% kurdish double w carrier
-\put@con w\put@syl \put@con w\put@syl \syl@con }
-
-\def \sv@UInt #1{% long u
-\add@damma \put@syl \test@B #1\sv@Uvwl }
-
-\def \sv@Uvwl #1{% long u carrier
- \put@con w\ifm@dda \add@madda \m@ddafalse \fi % -U becomes -uw
-\case #1\of
-{ w{\@sukfalse\add@shadda \syl@voctest} % -Uw becomes -uww
- -{\syl@voctie U} % not -U-
- A{\put@syl \put@con a\put@syl \syl@con } % not -UA
-\default {\sv@@Uvwl #1}
-}\endcase }
-
-\def \sv@@Uvwl #1{% long u carrier
-\ifiz@fet\ifx #1Q\def \next {\sv@UQ}\else % not -U'
- \def \next {\syl@voctest #1}\@sukfalse % next syllable
- \fi
-\else \def \next {\syl@voctest #1}\@sukfalse % next syllable
-\fi \next }
-
-\def \sv@UQ #1#2#3#4{% UQU#2#3#4, U' in Farsi
-\if\isat@wdend #2#3#4\add@hamza % final hamza on waw ?
- \ifx #2-\def \next {\syl@hyphen Q#3#4}% ezafe ?
- \else \def \next {\syl@voctest #2#3#4}% vowel ?
- \fi
-\else \put@syl \def \next {\syl@hamza U#2#3#4}% next syllable
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@Ytest #1{% is alif maqsura vowel or consonant?
-\case #1\of
-{ "{\put@syl \syl@con Y#1}
- < B{\sv@YInt #1}
-\default {\ifcat -\nxp #1\def \next {\sv@YInt #1}%
- \else \put@syl \def \next {\syl@con Y#1}%
- \fi \next }
-}\endcase }
-
-\def \sv@YInt #1{% alif maqsura is vowel
-\add@fatha \put@syl \test@B #1\sv@Yvwl }
-
-\def \sv@Yvwl {% put alif maqsura
-\put@con Y\ifqur@n \add@fathaspec \fi \put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@a@a #1{% Qur'an alif
- \add@fathaspec \put@syl
-\case #1\of
-{ \a@H {\put@con \a@H\put@syl \syl@con }%
- U{\put@con w\put@syl \syl@con }%
- Y{\put@con Y\put@syl \syl@con }%
- I{\put@con y\put@syl \syl@con }%
-\default {\syl@con #1}%
-}\endcase }
-
-\def \sv@a@e {% explicit sukun
-\add@sukun \put@syl \syl@con }
-
-\def \sv@a@i {% defective long i
-\add@kasraspec \put@syl \syl@con }
-
-\def \sv@a@u {% defective long u
-\add@ammad \put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@a@A {% Uighuric and Turkish
-\ifu@gh \put@syl \put@con \a@H \put@syl \xpa \syl@con
-\else \xpa \sv@a \fi }
-
-\def \sv@a@E #1{% kurdish ^e
-\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Evwl }\else
-\add@kasraspec \put@syl \def \next {\syl@con #1}\fi \next }
-
-\def \sv@a@Evwl {% kurdish E carrier
-\put@con \a@E \put@syl \syl@con }
-
-\def \sv@a@O #1{% Kurdish and Turkish "o
-\put@syl
-\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else
-\def \next {\test@B #1\sv@wvwl }\fi \next }
-
-\def \sv@a@O #1{% Kurdish and Turkish "o
-\put@syl
-\ifu@gh \put@con \a@W \put@syl \def \next {\syl@con #1}\else
-\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else
-\def \next {\test@B #1\sv@wvwl }\fi\fi \next }
-
-\def \sv@wa@Evwl {% kurdish W E carrier
-\put@con w\put@syl \put@con \a@E \put@syl \syl@con }
-
-\def \sv@a@U {% Uighuric and Turkish
-\ifu@gh \put@syl \put@con \a@aw \put@syl \xpa \syl@con
-\else \xpa \sv@u \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@Za {% Kashmiri .a
-\add@kh@hamza \put@syl \syl@con }
-
-\def \sv@Ze {% explicit shadda
-%\add@shadda \put@syl \syl@con }
-%\add@shadda \syl@voctest }
-\voc@suk \add@shadda \syl@voctest }
-
-\def \sv@Zi {% Sindhi -IN
-\add@bars \put@syl \syl@con }
-
-\def \sv@Zo {% Kashmiri .o
-\put@syl \put@con \a@aU \put@syl \syl@con }
-
-\def \sv@Zu {% Kashmiri .u
-\add@kl@hamza \put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@ZA {% Kashmiri .A
-\put@syl \put@con A%
-\add@kh@hamzl \put@syl \syl@con }
-
-\def \sv@ZE {% explicit madda
-\add@madda \put@syl \syl@con }
-
-\def \sv@ZI {% Kashmiri .y
-\put@syl \put@con \a@as \syl@voctest }
-
-\def \sv@ZO {% Kashmiri .O
-\put@syl \put@con \a@aU \put@syl \put@con A\add@fatha \put@syl \syl@con }
-
-\def \sv@ZU {% Kashmiri .U
-\add@kl@hamzl \put@syl \syl@con }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% Nunation %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \syl@Nspec {% tanwin fatha
-\ifh@mza \ifaN@alif \def \next {\syl@aN@alif }%
- \else \def \next {\syl@aN }%
- \fi
-\else \add@fathatan \put@syl \def \next {\syl@ignore }%
-\fi \next }
-
-\def \syl@aN #1{% tanwin fatha on actual character, alif required ?
- \add@fathatan \put@syl \def \next {\syl@ignore #1}%
-\ifcat -\nxp #1%
- \xpa\if \xpa\is@in@list \the\last@con YTaB>\else
- \put@con a\put@syl % deposit alif
- \fi
-\fi \next }
-
-\def \syl@aN@alif #1{% tanwin fatha at the end, alif required ?
-\ifcat -\nxp #1\def \next {\syl@ignore #1}%
- \xpa\if \xpa\is@in@list \the\last@con YTaB>\else
- \ifv@c \put@syl \v@ctrue \else \put@syl
- \fi \put@con a% % deposit alif
- \fi
-\else \def \next {\syl@ignore }%
- \ifv@c \put@syl \v@ctrue \else \put@syl
- \fi \put@con #1% % deposit character
-\fi \add@fathatan \put@syl \next }
-
-\def \syl@Wspec #1{% final w with silent alif ?
-\case #1\of
-{ -{\syl@Wspec }% ignore hyphen
- u{\add@damma \put@syl
- \put@con a\put@syl \syl@con }% % ending w-u
-\default {\add@sukun \put@syl
- \put@con a\put@syl \syl@con }% % ending w
-}\endcase }
-
-\def \syl@ignore #1{% kill the rest after Tanwin except U, A, a, y, and Y
-\case #1\of
-{ -{\syl@ignore }
- U{\put@con w\put@syl \syl@ignore }
- aA{\put@con a\put@syl \syl@ignore }
- Y{\put@con Y\put@syl \syl@ignore }
- y{\put@con y\put@syl \syl@ignore }
-\default {\let \next \syl@ignore
- \ifcat -\nxp #1\def \next {\syl@con #1}% % tie
- \fi \next }
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% Hamza %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \if@ay
-
-\def \syl@@hamzabeg #1#2{% initial hamza
-\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif
- \add@hamza \add@hamzalow \put@syl
- \else \put@con Y\add@hamza \def \next {\syl@voctest #2}%
- \fi \else
-\ifh@mza \def \next {\syl@beghamza #1#2}\else
- \def \next {\syl@hamzaverb #1#2}% verbatim mode
-\fi\fi \next }
-
-\def \syl@@hamzabeg #1#2{% initial hamza
-\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif
- \add@hamza \add@hamzalow \put@syl
- \else \put@con Y\add@hamza \def \next {\syl@voctest #2}%
- \fi \else
-\ifu@gh \put@con Y\add@hamza \def \next {\syl@voctest #2}\else
-\ifh@mza \def \next {\syl@beghamza #1#2}\else
- \def \next {\syl@hamzaverb #1#2}% verbatim mode
-\fi\fi\fi \next }
-
-\def \syl@@hamza #1{% non-initial hamza, context #1'
-\ifx #1-\def \next {\syl@hamzabeg #1}\else
-\ifh@mza \def \next {\syl@arabhamza #1}\else
- \def \next {\syl@hamzaverb #1}% verbatim mode
-\fi\fi \next }
-
-\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
-\case #1\of
-{ |{\put@con Q}
- A{\put@con a\add@madda \@sukfalse }
- y{\put@con Y\add@hamza }
- u{\put@con w\add@hamza }
- i{\put@con a\add@hamza \add@hamzalow }
-\default {\put@con #1\add@hamza }
-}\endcase \syl@voctest }
-
-\def \syl@beghamza #1#2{% start word with hamza, context '#2
-\ifx #2"\def \next {\syl@beghamza #1}\togglev@c % toggle vowel
-\else \def \next {\syl@@beghamza #2}%
-\fi \next }
-
-\def \syl@@beghamza #1{% start word with hamza, context '#1
-\put@con a\def \next {\syl@con }% alif
-\case #1\of
-{ A{\add@madda }
- \a@a {\add@fathaspec }
- a\a@A{\add@hamza \add@fatha }
-i\a@i\a@I{\add@hamza \add@kasra \add@hamzalow }
-ou\a@O\a@U{\add@hamza \add@damma }
- eE\a@E{\add@hamza \ifp@sht \add@zwarakay \else \add@kasra \fi }
- I\a@e{\add@hamza \add@kasra \add@hamzalow \put@syl \put@con y}
-OU\a@o\a@p\a@w{\add@hamza \add@damma \put@syl \put@con w}
-\default {\add@hamza \add@sukun \def \next {\syl@con #1}}
-}\endcase
-\put@syl \next }
-
-\def \syl@arabhamza #1#2#3{% non-initial hamza, context #1'#2#3
-\case #2\of
-{ "{\togglev@c \syl@hamza #1#3} % toggle vowel
- |{\syl@hamza #1#3} % ignore bar
- AIUYEO{\syl@hamzamid #1#2#3#3} % arabic rules
-\default {\syl@@arabhamza #1#2#3} % test for final position
-}\endcase }
-
-\def \syl@@arabhamza #1#2#3#4{% non-initial hamza, context #1'#2#3#4
- \def \next {\syl@hamzamid #1#2#3#3#4}%
-\if\isat@wdend #2#3#4% test for hamza as last consonant
-\ifiz@fet \else \def \next {\syl@hamzaend #1#2#3#4}%
-\fi\fi \next }
-
-\def \syl@hamzamid #1#2#3{% test for #1 a y ; obsolete?
- \@ayfalse
-\ifx #2a\ifx #3y\@aytrue
-\fi\fi \syl@@hamzamid #1#2#3}
-
-\def \syl@@hamzamid #1#2#3{% intermediate hamza, context #1'#2#3
- \def \next {\syl@voctest #2}%
-\ifx #1I\ifqur@n \put@con B\else \put@con Y\fi \add@hamza \else
-\if\is@in@list #1iy>\put@con Y\add@hamza \else
-\if\is@in@list #2iIE>\put@con Y\add@hamza
- \ifqur@n \add@hamzalow \fi \else
-\if\is@in@list #1uo>\put@con w\add@hamza \else
-\if\is@in@list #2uo>\put@con w\add@hamza \else
-\if\is@in@list #2UO>%
- \ifqur@n \put@Q #1\else \put@con w\add@hamza \fi \else
-\if\is@in@list #1AUO>\put@Q #1\else
-\if\is@in@list #2A>\put@con a\add@madda
- \put@syl \def \next {\syl@con }\else
-\if\is@in@list #2\a@a>\put@con a\add@fathaspec
- \put@syl \def \next {\syl@con }\else
-\ifx #1a\put@con a\add@hamza \else
-\ifx #2a\ifqur@n \put@Q #1\else \put@con a\add@hamza \fi \else
- \put@Q #1% deposit Hamza
-\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
-\ifx #2Q\def \next {\syl@doublehamza }%
-\fi \next }
-
-\def \syl@hamzaend #1{% final hamza, context #1'
-\case #1\of
-{ i{\put@con Y\add@hamza \syl@voctest }
- u{\put@con w\add@hamza \syl@voctest }
- a{\put@con a\add@hamza \syl@voctest }
-\default {\syl@@hamzaend #1}
-}\endcase }
-
-\def \syl@@hamzaend #1#2#3{% final hamza, context #1'#2#3
-\put@con Q\def \next {\syl@voctest #2#3}% deposit Hamza
-\ifx #2a\ifx #3N\def \next {\syl@hamza@Nspec #1}%
-\fi\fi \next }
-
-\def \syl@hamza@Nspec #1#2{% #1'aN , put alif ?
-\ifx #1A\else
-\ifx #1U\else
-\if\is@end@char #1\else
- \ifqur@n \put@con B\else \put@con Y\fi \add@hamza
-\fi\fi\fi
- \add@fathatan \put@syl
-\ifx #1A\else
- \ifx #2Y\put@con Y% put alif maqsoura
- \else \put@con a% put alif
- \fi
- \put@syl
-\fi \syl@ignore #2}
-
-\def \syl@doublehamza #1{% double Hamza
-\add@shadda \syl@voctest }
-
-\def \put@Q #1{% deposit isolated hamza after #1
-\ifqur@n \if\is@end@char #1\put@con Q\else \put@con B\add@hamza \fi
-\else\put@con Q%
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%% deposit characters %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \check@@high #1{% % long form for tooth ?
-\if\is@in@list #1YntCbyp>% % YntCbyp : toggle
- \if@high \global\@highfalse \else \global\@hightrue
- \fi \else
-\if\is@in@list #1sxSD>\global\@hightrue \else % sxSD : force high
- \global\@highfalse % otherwise : force low
-\fi\fi }
-
-\def \put@con #1{% start syllable
-\last@con ={#1}}
-
-\def \put@syl {% deposit syllable
-\if@high \advance \last@mod \c@high \fi
-\xpa \check@high \the\last@con
-\let \ifv@c \if@vocals \let \if@suk \if@sukun
-\def \rev@wd {\the\last@con \the\last@mod +\the\last@voc *}\put@rev@wd
-\global \@waslatrue }
-
-\def \put@spec #1{% deposit special character
-\last@con={#1}\def \rev@wd {#10+0*}\put@rev@wd
-\global \@waslafalse }
-
-\def \put@rev@wd {% deposit output item % no group!
-\edef \temp {\global \nxp\a@revwd {\rev@wd \the\a@revwd }% % \temp
-\global \nxp\sv@revwd {\the\sv@revwd \rev@wd }}\temp
-\last@mod = 0 \last@voc = 0 }
-
-%%%%%%%%%%%%%%%%%%%%%% deposit .harakAt %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \add@shadda {\advance \last@mod \c@shadda }
-\def \add@hamza {\advance \last@mod \c@hamza }
-\def \add@hamzalow {\advance \last@mod \c@hamzalow }
-\def \add@madda {\advance \last@mod \c@madda }
-
-\def \add@wasla {\if@suk \last@voc \c@wasla \fi }
-\def \add@sukun {\if@suk \last@voc \c@sukun \fi }
-\def \add@fatha {\ifv@c \last@voc \c@fatha \fi }
-\def \add@kasra {\ifv@c \last@voc \c@kasra \fi }
-\def \add@damma {\ifv@c \last@voc \c@damma \fi }
-\def \add@zwarakay {\ifv@c \last@voc \c@zwarakay \fi }
-\def \add@fathatan {\ifv@c \last@voc \c@fathatan \fi }
-\def \add@kasratan {\ifv@c \last@voc \c@kasratan \fi }
-\def \add@dammatan {\ifv@c \last@voc \c@dammatan \fi }
-\def \add@fathaspec {\ifv@c \last@voc \c@fathaspec \fi }
-\def \add@kasraspec {\ifv@c \last@voc \c@kasraspec \fi }
-\def \add@ammad {\ifv@c \last@voc \c@ammad \fi }
-\def \add@bars {\ifv@c \last@voc \c@bars \fi }
-\def \add@kh@hamza {\ifv@c \last@voc \c@kh@hamza \fi }
-\def \add@kl@hamza {\ifv@c \last@voc \c@kl@hamza \fi }
-\def \add@kh@hamzl {\ifv@c \last@voc \c@kh@hamzl \fi }
-\def \add@kl@hamzl {\ifv@c \last@voc \c@kl@hamzl \fi }
-
-%%%%%%%%%%%%%%%%%%%%% output code constants %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \c@shadda = 1 \chardef \c@hamza = 2
-\chardef \c@hamzalow = 3 \chardef \c@madda = 4
-\chardef \c@high = 10
-
-\chardef \c@sukun = 1 \chardef \c@fatha = 2
-\chardef \c@kasra = 3 \chardef \c@damma = 4
-\chardef \c@fathatan = 5 \chardef \c@kasratan = 6
-\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8
-\chardef \c@wasla = 9 \chardef \c@fathaspec = 10
-\chardef \c@kasraspec = 11 \chardef \c@ammad = 12
-\chardef \c@kas@fath = 13 \chardef \c@bars = 14
-\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16
-\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18
-
-%%%%%%%%%%%%%%%%%%%%%%%% end of routines %%%%%%%%%%%%%%%%%%%%%%%%
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+% ArabTeX
+% Parser 26.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {aparse.sty} {3.11 get syllables } {26.05.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \def@arabvoc {% define vowel parsing routines for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@a {\sv@@a }% short a
+\def \sv@e {\sv@@e }% short e
+\def \sv@i {\sv@@i }% short i
+\def \sv@o {\sv@@o }% short o
+\def \sv@u {\sv@@u }% short u
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, plene %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@A {\sv@@A }% long a
+\def \sv@E {\sv@@E }% long e
+\def \sv@I {\sv@@I }% long i
+\def \sv@O {\sv@@O }% long o
+\def \sv@U {\sv@@U }% long u
+\def \sv@Y {\sv@Ytest }% alif maqsura or tooth
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\sv@def \a@a {\sv@a@a }% defective long a = Qur'an alif
+\sv@def \a@e {\sv@a@e }% explicit sukun
+\sv@def \a@i {\sv@a@i }% defective long i
+\sv@def \a@o {\sv@U }% special short u
+\sv@def \a@u {\sv@a@u }% defective long u
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\sv@def \a@A {\sv@a }% Turkish "a
+\sv@def \a@A {\sv@a@A }% Turkish "a
+\sv@def \a@E {\sv@a@E }% Kurdish ^e
+\sv@def \a@I {\sv@i }% Turkish "i
+\sv@def \a@O {\sv@a@O }% Kurdish and Turkish "o
+%\sv@def \a@U {\sv@u }% Turkish "u
+\sv@def \a@U {\sv@a@U }% Turkish "u
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% extra vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\sv@def \a@Za {\sv@Za }% Kashmiri .a
+\sv@def \a@Ze {\sv@Ze }% explicit shadda
+\sv@def \a@Zi {\sv@Zi }% Sindhi -IN
+\sv@def \a@Zo {\sv@Zo }% Kashmiri .o
+\sv@def \a@Zu {\sv@Zu }% Kashmiri .u
+
+\sv@def \a@ZA {\sv@ZA }% Kashmiri .A
+\sv@def \a@ZE {\sv@ZE }% explicit madda
+\sv@def \a@ZI {\sv@ZI }% Kashmiri .y
+\sv@def \a@ZO {\sv@ZO }% Kashmiri .O
+\sv@def \a@ZU {\sv@ZU }% Kashmiri .U
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@hamzabeg {\syl@@hamzabeg }% initial hamza
+
+\def \syl@hamza {\syl@@hamza }% non-initial hamza, context #1'
+
+\def \syl@test@voc {\syl@@test@voc }% vowel or sukun ?
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% miscellaneous %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \check@high {\check@@high }% long form for tooth ?
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% static definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@def #1{% define \sv@#1
+\xpa \def \csname sv@\string #1\endcsname }
+
+\newtoks \a@revwd
+\newtoks \sv@revwd \newtoks \last@con
+\newcount \last@mod \newcount \last@voc
+\newif \ifsyl@wdend \newif \ifm@dda
+
+\def \a@parse #1>{% parse token sequence into syllables
+\iftest@parse \tracingmacros = 1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
+\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
+\iftest@parse \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@revwd )>\fi }
+
+\def \test@wdend #1#2#3{% test for end of word: k #1 #2 #3
+\case #1\of
+{ N<{\syl@wdendtrue }
+ |"{\test@wdend #2#3<}
+\default {\if\is@shortvowel #1\test@wdend #2#3<\else
+ \ifcat -\nxp #1\syl@wdendtrue \else \syl@wdendfalse
+ \fi\fi }
+}\endcase }
+
+\def \isat@wdend #1#2#3{00% at end of word?
+\test@wdend #1#2#3\ifsyl@wdend \else \xpa \setiffalse \fi }
+
+\def \is@vowel #1{% test for all vowels
+\is@in@list #1aeiouAEIOUY%
+\a@a \a@e \a@i \a@o \a@u
+\a@A \a@E \a@I \a@O \a@U
+\a@Za \a@Ze \a@Zi \a@Zo \a@Zu
+\a@ZA \a@ZE \a@ZI \a@ZO \a@ZU >}
+
+\def \is@shortvowel #1{% test for short vowels
+\is@in@list #1aeiou\a@a >}
+
+\def \syl@end #1>{% kill the rest
+\relax }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of word %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@beg #1{% start new word
+\global\@highfalse
+\case #1\of
+{ <{\syl@end }
+ Q{\syl@hamzabeg }
+ ^{\syl@hamzabeg A}
+ B{\syl@tatwilbeg }
+ "{\syl@quote@beg }
+ |{\syl@bar }
+ Y{\syl@con Y}
+ \cap {\syl@beg }
+\default {\syl@@beg #1}
+}\endcase }
+
+\def \syl@@beg #1{% start new word
+\ifcat -\nxp #1\def \next {\syl@spec #1}\else
+\if\is@vowel #1\def \next {\syl@wasla #1}% check for wasla
+ \else \def \next {\syl@con #1}% start syllable
+\fi\fi \next }
+
+\def \syl@bar #1{% check for || as "|
+\case #1\of
+{ |{\syl@quote@beg #1}
+ B{\syl@con |B}
+\default {\put@con W\v@cfalse \@sukfalse\syl@voctest #1}
+}\endcase }
+
+\def \syl@wasla #1{% start word with vowel without hamza
+\put@con a\def \next {\syl@voc #1}% prepare for vowel
+\ifx \a@lang \a@hebr % Hebrew mode
+ \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows
+ \ifx #1A\add@fathaspec % Hebrew: qames
+\fi\fi\fi
+\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else
+\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else
+\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else
+ \def \next {\syl@voctest }%
+ \fi \else
+\ifiz@fet \else % wasla only in Arabic ?
+\ifh@mza \if\is@shortvowel #1%
+ \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable
+ \fi\fi
+\fi\fi\fi\fi\fi \next }
+
+\def \syl@wasla #1{% start word with vowel without hamza
+\def \next {\syl@voc #1}% prepare for vowel
+\ifu@gh \put@con Y\add@hamza\else \put@con a%
+\ifx \a@lang \a@hebr % Hebrew mode
+ \ifx #1U\put@con W\else % Hebrew: no carrier, shureq follows
+ \ifx #1A\add@fathaspec % Hebrew: qames
+\fi\fi\fi
+\ifx #1E\put@con E\put@syl \def \next {\syl@con }\else
+\ifx #1\a@ZA \add@kh@hamzl \put@syl \def \next {\syl@con }\else
+\ifx #1A\ifiz@fet \add@madda \put@syl \def \next {\syl@con }\else
+ \def \next {\syl@voctest }%
+ \fi \else
+\ifiz@fet \else % wasla only in Arabic ?
+\ifh@mza \if\is@shortvowel #1%
+ \if@wasla \add@wasla \put@syl \def \next {\syl@con }% next syllable
+ \fi\fi
+\fi\fi\fi\fi\fi\fi \next }
+
+\def \syl@tatwilbeg #1{% start word with tatwIl: -- #1
+ \put@con B%
+\if\is@vowel #1\def \next {\syl@voc #1}% harakat on tatwil
+\else \put@syl \def \next {\syl@con #1}% join
+\fi \next }
+
+\def \syl@spec #1#2{% deposit special character
+\ifx #1<\let \next \syl@end
+\else \put@spec #1% deposit character
+ \ifx #1-\def \next {\syl@con #2}\else % create joining form
+ \ifx #2<\let \next \syl@end \else % isolated character
+ \def \next {\syl@beg #2}% % start new word
+ \fi\fi
+\fi \next }
+
+\def \sv@syl #1#2#3{% explicit syllable
+\put@con #1\last@mod 0#2\last@voc 0#3\@highfalse \put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% start of syllable %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@con #1{% start a new syllable
+\case #1\of
+{ <{\syl@end }% not done
+ Q{\syl@hamza } % no Hamza
+ B{\put@con B\put@syl \syl@con }
+ W{\put@con w\syl@Wspec }% no ending wA or w-
+ "{\syl@quote@con }
+ |{\syl@bar@con }
+ \cap {\syl@con }
+ \sv@syl {\sv@syl }
+\default {\syl@@con #1}
+}\endcase }
+
+\def \syl@@con #1#2{% start a new syllable
+ \def \next {\syl@voctest #2}%
+\ifx #2\cap \def \next {\syl@@con #1}\else
+\ifx #1-\ifx #2<\def \next {\syl@spec #1#2}% joining form
+ \else \def \next {\syl@beg #2}% ignore hyphen, tie
+ \fi \else
+\ifcat -\nxp #1\def \next {\syl@spec #1#2}\else % special character
+\ifx #2-\def \next {\syl@assim #1}% assimilate?
+\else \put@con #1% deposit consonant
+ \ifx #1#2\if@ssim \add@shadda
+ \def \next {\syl@shadd@voctest #2}%
+ \fi\fi
+ \ifiz@fet\ifx #1X\ifx #2w\put@syl
+ \def \next {\syl@con #2}% waw-e-ma`dul
+ \fi\fi\fi
+\fi\fi\fi\fi \next }
+
+\def \syl@bar@con #1{% |
+\case #1\of
+{ |{\syl@quote@con #1}
+ B{\syl@tatwil }
+\default {\put@con |\@sukfalse \syl@voctest #1}
+}\endcase }
+
+\def \syl@tatwil #1{% test for 2 tatwils
+\put@con B%
+\ifx #1B\add@shadda \def \next {\syl@voctest }%
+\else \def \next {\syl@voctest #1}%
+\fi \next }
+
+\def\syl@shadd@voctest #1#2{% hyphen after shadda ? context #1#1 #2
+\ifx #2-\def \next {\syl@hyphen #1}\else
+ \def \next {\syl@voctest #2}%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% hyphen %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@hyphen #1#2#3{% hyphen after consonant, #1 - #2 #3
+\ifx #2<\add@sukun \put@syl \def \next {\syl@con -#2#3}\else % k - ||
+\ifx #3<\def \next {\syl@contie #1#2#3}\else % k - x ||
+\ifx #3N\def \next {\syl@contie #1#2#3}\else % k - x N
+\ifcat -\nxp #3\def \next {\syl@contie #1#2#3}\else % k - x -
+\ifx #1l\def \next {\syl@art #2#3}\else % l - #2 #3
+\ifx #1\a@H \put@syl \put@spec W\def \next {\syl@beg #2#3}\else % H - x
+\ifiz@fet \def \next {\syl@voctest #2#3}% Persian suffix
+\else \add@sukun \put@syl \def \next {\syl@beg #2#3}% start new word
+\fi\fi\fi\fi\fi\fi\fi \next }
+
+\def \syl@art #1#2#3{% article, (a)l-#1#2#3
+ \def \next {\syl@beg #1#2#3}% ought to test for sun letter !
+\ifx #1#2% no sukun before double (sun) letter
+ \ifx #1Q\add@sukun \else
+ \ifx #2#3\def \next {\syl@beg #2#3}% special case l-ll
+ \fi \fi
+\else \add@sukun % moon letter
+\fi \put@syl \next }
+
+\def \syl@assim #1#2{% test for assimilation #1 - #2
+\ifx #2\cap \def \next {\syl@assim #1}\else
+ \put@con #1\def \next {\syl@hyphen #1#2}% #1 - #2
+\if@ssim\ifx #1#2% ought to test for sun letter !
+ \put@con l\def\next {\syl@art #1#2}% substitute l - #1 #2
+ \fi
+\fi\fi \next }
+
+\def \syl@contie #1#2#3{% connecting vowel, #1 - #2#3
+ \def \next {\syl@voctest #2#3}%
+\ifiz@fet \sv@test@izafet #1#2#3%
+\fi \next }
+
+\def \syl@voctie #1#2#3{% hyphen after vowel, #1 - #2 #3
+ \def \next {\put@syl \syl@con -#2#3}% close syllable
+\ifiz@fet\ifx #3<\sv@test@izafet #1#2#3\else
+ \ifcat -\nxp #3\sv@test@izafet #1#2#3\else
+ \ifx #1a\put@con \a@H % supply final silent H
+ \def \next {\syl@hyphen \a@H #2#3}\else
+ \ifx #1e\put@con \a@H % supply final silent H
+ \def \next {\syl@hyphen \a@H #2#3}%
+ \fi\fi\fi\fi
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% special cases for Persian %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@hahtie #1#2#3{% connecting vowel, H - #2#3
+ \def \next {\syl@hah #2#3}%
+\case #2\of
+{ IE{}
+\default {\sv@test@izafet #1#2#3}
+}\endcase \next }
+
+\def \syl@hah{% H at the end, ha-ye hawwaz-e ma.hfi
+\put@syl \put@spec W\syl@beg }
+
+\def \sv@izafet #1#2{% #1 - i/e/_i
+\case #1\of
+{ I\a@H{\add@hamza }
+ AU{\put@syl \put@con y}
+}\endcase
+\ifx #2\a@i \add@kasraspec \else \add@kasra % long izafet ?
+\fi \put@syl \syl@con }
+
+\def \sv@wahdat #1#2{% #1 - I/E
+\case #1\of
+{ I\a@H{\put@syl \put@spec W\put@con a}
+ AU{\put@syl \put@con Y\add@hamza }
+}\endcase
+\ifx #2I\add@kasra \fi
+\put@syl \put@con y\put@syl \syl@con }
+
+\def \sv@test@izafet #1#2#3{% special cases for -e, -i, -_e, -_i, -I, -E
+\case #2\of
+{ e{\def \next {\sv@izafet #1e#3}}
+i\a@i\a@E{\def \next {\sv@izafet #1i#3}}
+ y{\def \next {\sv@izafet #1e}}
+ I{\def \next {\sv@wahdat #1I#3}}
+ E{\def \next {\sv@wahdat #1E#3}}
+}\endcase }
+
+\def \syl@endvoc #1{% test for H
+ \def \next {\syl@con #1}%
+\ifiz@fet \ifx #1\a@H \put@con \a@H
+ \def \next {\syl@@endvoc }%
+\fi\fi \next }
+
+\def \syl@@endvoc #1#2{% char after H
+\case #1\of
+{ -{\syl@hahtie \a@H #2}
+ Q{\add@hamza \syl@voc }
+ <{\put@syl \syl@end #2}
+ "{\put@syl \syl@quote@beg #2}
+ |{\put@syl \syl@bar #2}
+\default {\put@syl
+ \ifcat -\nxp #1\def \next {\syl@spec #1#2}\else
+ \def \next {\syl@beg #1#2}% start a new word
+ \fi \next }
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% quoting %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@quote@beg #1#2{% start word with quote: " #1 #2
+\case #1\of
+{ '{\put@con Q\syl@voctest #2}
+ Q{\put@con Q\syl@voctest }
+ |{\put@spec W\syl@beg #2}% start new word
+\default {\syl@@quote@beg #1#2}
+}\endcase }
+
+\def \syl@@quote@beg #1{% start word with quote: " #1 #2
+\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel
+% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi
+ \if@wasla \v@ctrue \@waslafalse \else \@waslatrue \togglev@c \fi
+\else \put@con a\togglev@c \add@wasla \put@syl % alif implied
+ \ifx #1"\def \next {\syl@con }% " " k: alif wasla
+ \else \def \next {\syl@con #1}% " k: alif wasla
+ \fi
+\fi \next }
+
+\def \syl@quote@con #1#2{% start syllable with quote: " #1 #2
+\case #1\of
+{ '{\put@con Q\syl@voctest #2}
+ Q{\put@con Q\syl@voctest }
+ |{\put@con W\syl@voctest #2}
+\default {\togglev@c \syl@con #2}
+}\endcase }
+
+% original version of logic:
+\def \syl@quote@voc #1#2{% continue syllable with quote: " #1 #2
+\case #1\of
+{ B{\togglev@c \add@sukun \put@syl \syl@con #1#2}
+ "{\togglev@c \add@sukun \put@syl \syl@beg #2}
+ |{\syl@@quote@voc #2}
+ '{\add@hamza \syl@voctest #2}
+ Q{\add@hamza \syl@voctest }
+\default {\togglev@c \syl@voctest #1#2}% vowel: sukun
+}\endcase }
+
+% patches for Arnoud Vrolijk:
+% make "' sukun hamza instead of hamza modifier
+\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2
+\case #1\of
+{ B{\togglev@c \add@sukun \put@syl \syl@con #1}
+ "{\togglev@c \add@sukun \put@syl \syl@beg }
+ |{\syl@@quote@voc }
+\default {\togglev@c \syl@voctest #1}% vowel: sukun
+}\endcase }
+
+\def \syl@@quote@voc #1{% continue syllable with quote: "| #1 #2
+ \put@syl \put@spec W%
+\if\is@vowel #1\def \next {\syl@wasla #1}% vowel: wasla
+\else \def \next {\syl@con #1}% consonant
+\fi \next }
+
+\def \togglev@c {% toggle diacritic
+\ifv@c \v@cfalse \else \v@ctrue \fi % toggle vowel indicator
+\if@suk \@sukfalse \else \@suktrue \fi % toggle sukun, wasla
+}
+
+\def \voc@suk {% normalize vowels and sukun
+\let \ifv@c \if@vocals \let \if@suk \if@sukun }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% vowel or end of syllable %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@@test@voc #1{% vowel or sukun ? variant in Hebrew!
+\if\is@vowel #1\def \next {\syl@voc #1}% test for vowel
+\else \def \next {\syl@con #1}%
+ \ifurd@ \ifx #1h\else \add@sukun \fi
+ \else \add@sukun
+ \fi \put@syl
+\fi \next }
+
+\def \syl@voctest #1{% continue open syllable: K #1
+\case #1\of
+{ "{\syl@quote@voc }
+ ^{\m@ddatrue \syl@voctest }
+ |{\syl@bar@voc }
+ B{\syl@tatwil@voc }
+ \cap {\syl@voctest }
+\default {\syl@test@voc #1}
+}\endcase }
+
+\def \syl@bar@voc #1{% K | #1
+\ifx #1|\def \next {\syl@quote@voc |}\else
+\ifx #1"\def \next {\syl@test@quote }\else
+\if\is@vowel #1\def \next {\syl@test@voc #1|}\else
+ \def \next {\syl@test@voc |#1}% no bar
+\fi\fi\fi \next }
+
+\def \syl@tatwil@voc #1{% K B #1
+\if\is@vowel #1\def \next {\syl@test@voc #1B}\else
+ \def \next {\syl@test@voc B#1}% no vowel
+\fi \next }
+
+\def \syl@test@quote #1{% K |" #1
+\if\is@vowel #1\def \next {\syl@quote@voc #1|}\else
+ \put@syl \put@con |\def \next {\syl@quote@voc "#1}%
+\fi \next }
+
+\iffalse % deleted for efficiency; for documentation only !
+% and also for compatibility with the Hebrew mode !!
+\def \syl@voc #1{% test for vowel
+\case #1\of
+{ <{\syl@end }% this cannot happen! or can it?
+ -{\syl@voc }% ignore hyphen here
+ a \a@A{\sv@@a }% short a, Turkish "a
+ e {\sv@@e }% short e
+ i \a@I{\sv@@i }% short i, Turkish "i
+ o {\sv@@o }% short o
+ u \a@U{\sv@@u }% short u, Turkish "u
+ A {\sv@@A }% long a
+ E {\sv@@E }% long e
+ I {\sv@@I }% long i
+ O {\sv@@O }% long o
+ U \a@o{\sv@@U }% long u, special short u
+ Y {\sv@Ytest }% alif maqsura or tooth
+ \a@a {\sv@a@a }% Qur'an alif
+ \a@e {\sv@a@e }% frei
+ \a@i {\sv@a@i }% defective long i
+ \a@u {\sv@a@u }% defective long u
+ \a@E {\sv@a@E }% kurdish ^e
+ \a@O {\sv@a@O }% Kurdish and Turkish "o
+ \a@Za {\sv@Za }% Kashmiri .A
+ \a@Ze {\sv@Ze }% Kashmiri .a
+ \a@Zi {\sv@Zi }% Sindhi -IN
+ \a@Zo {\sv@Zo }% Kashmiri u'
+ \a@Zu {\sv@Zu }% Kashmiri U'
+\default {\csname sv@\string #1\endcsname}% switch on vowel
+}\endcase }
+\fi
+
+\def \syl@voc #1{% test for vowel, also for Hebrew mode
+\case #1\of
+{ <{\syl@end }% this cannot happen! or can it?
+ -{\syl@voc }% ignore hyphen here
+\default {\csname sv@\string #1\endcsname}% switch on vowel
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% auxiliary vowel routines
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \test@B #1#2{% tatweel or ligature break
+\case #1\of
+{ |B{\put@con #1\put@syl #2}
+\default {#2#1}% deposit vowel carrier
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@a #1{% short a
+\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else
+\def \next {\sv@aInt #1}\fi \next }
+
+\def \sv@@a #1{% short a
+\ifu@gh \put@syl \put@con a\put@syl \def \next {\syl@con #1}\else
+\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Hvwl }\else
+ \def \next {\sv@aInt #1}%
+\fi\fi \next }
+
+\def \sv@a@Hvwl {% kurdish aH carrier
+\put@con \a@H \put@syl \syl@endvoc }
+
+\def \sv@aInt #1{% short a
+\ifx #1N\def \next {\syl@Nspec }% tanwin alif
+\else \add@fatha \put@syl \def \next {\sv@@aInt #1}%
+\fi \next }
+
+\def \sv@@aInt #1{% short a
+\case #1\of
+{ e{\ifurd@ \put@con E\else \put@con Y\add@hamza
+ \fi \put@syl \syl@con }\else
+ ou{\put@con w\put@syl \syl@con }\else
+ i{\put@con y\put@syl \syl@con }\else
+\default {\syl@endvoc #1}% test for H
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@e {% short e
+\ifk@rd \xpa \sv@a \else
+\ift@rk \xxpa \sv@a \else \xxpa \sv@eInt \fi\fi }
+
+\def \sv@@e {% short e
+\ifk@rd \def \next {\sv@a }\else
+\ift@rk \def \next {\sv@a }\else
+\ifu@gh \put@syl \put@con \a@Y \put@syl \def \next {\syl@con }\else
+\def \next {\sv@eInt }\fi\fi\fi \next }
+
+\def \sv@eInt #1{% zwarakay in Pashto, otherwise short a
+\ifk@sh \put@syl \put@con \a@E \put@syl \def \next {\syl@con #1}%
+\else \def \next {\syl@endvoc #1}% test for H
+ \ifp@sht \add@zwarakay \put@syl
+ \ifx #1e\def \next {\syl@con }\put@con Y\add@hamza \put@syl
+ \fi
+ \else \add@kasra \put@syl
+ \ifiz@fet % provisions for the preposition be-
+ \if\is@vowel #1\def \next {\syl@beg #1}%
+ \fi\fi
+ \fi
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@i #1{% short i
+\case #1\of
+{ y{\sv@@I }% iy -> I
+ N{\add@kasratan \put@syl \syl@ignore }% tanwin yah
+ -{\add@kasra \syl@voctie i}
+\default {\add@kasra \put@syl \syl@con #1}% next syllable
+}\endcase }
+
+\def \sv@@i {% short i
+\ifu@gh \put@syl \put@con Y\put@syl \xpa \syl@con
+\else \xpa \sv@@iInt \fi }
+
+\def \sv@@iInt #1{% short i
+\case #1\of
+{ y{\sv@@I }% iy -> I
+ N{\add@kasratan \put@syl \syl@ignore }% tanwin yah
+ -{\add@kasra \syl@voctie i}
+\default {\add@kasra \put@syl \syl@con #1}% next syllable
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@o #1{% ammad in Pashto, otherwise short u
+\ifk@sh \put@syl \put@con \a@W \put@syl
+ \def \next {\syl@con #1}\else
+\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else
+ \def \next {\sv@oInt #1}%
+\fi\fi \next }
+
+\def \sv@@o #1{% ammad in Pashto, otherwise short u
+\ifk@sh \put@syl \put@con \a@W \put@syl
+ \def \next {\syl@con #1}\else
+\ifu@gh \put@syl \put@con w\put@syl
+ \def \next {\syl@con #1}\else
+\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Wvwl }\else
+ \def \next {\sv@oInt #1}%
+\fi\fi\fi \next }
+
+\def \sv@a@Wvwl {% kurdish O carrier
+\put@con \a@W \put@syl \syl@con }
+
+\def \sv@oInt #1{% ammad in Pashto, otherwise short u
+\ifp@sht \add@ammad \else \add@damma
+\fi \put@syl
+\ifx #1i\put@con y\put@syl \def \next {\syl@con }\else
+ \def \next {\syl@endvoc #1}% test for H
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@u {% short u
+\ifk@rd \put@syl \xpa \sv@ukurd \else \xpa \sv@uInt \fi }
+
+\def \sv@@u {% short u
+\ifk@rd \put@syl \def \next {\sv@ukurd }\else
+\ifu@gh \put@syl \put@con \a@w \put@syl \def \next {\syl@con }\else
+\def \next {\sv@uInt }\fi\fi \next }
+
+\def \sv@ukurd #1{% short u, for Kurdish
+\ifx #1Q\def \next {\syl@hamza }\else
+\def \next {\test@B #1\sv@wvwl }\fi \next }
+
+\def \sv@wvwl {% w carrier
+\put@con w\put@syl \syl@con }
+
+\def \sv@uInt #1{% short u, otherwise
+\case #1\of
+{ w{\sv@UInt }% uw -> U
+ N{\add@dammatan \put@syl \syl@ignore }% tanwin waw
+\default {\add@damma \put@syl \syl@con #1}% next syllable
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@A #1{% long A
+\ifk@rd \else \add@fatha \fi
+\put@syl \test@B #1\sv@Avwl }
+
+\def \sv@Avwl #1{% long A vowel
+ \put@con a% may also serve as consonant, carry vowels
+ \ifm@dda \add@madda \m@ddafalse \fi
+\ifx #1-\def \next {\syl@voctie A}\else
+ \def \next {\syl@voctest #1}\@sukfalse % next syllable
+\fi \next }
+
+\def \sv@Aa #1{% long a + a ? whence ??
+\case #1\of
+{ |B{\put@con #1\put@syl \put@con a%
+ \ifm@dda \add@madda \m@ddafalse
+ \fi \put@syl \syl@con }
+ -{\ifm@dda \add@madda \m@ddafalse
+ \fi \syl@voctie A}
+ a{\ifm@dda \add@madda \m@ddafalse
+ \fi \sv@AaN }
+ "{\ifm@dda \add@madda \m@ddafalse
+ \fi \v@ctrue \@suktrue \sv@Aa }
+\default {\ifm@dda \add@madda \m@ddafalse
+ \fi \put@syl \syl@con #1}% next syllable
+}\endcase }
+
+\def \sv@AaN #1{% long a + aN ?
+ \def \next {\syl@con a#1}% next syllable
+\ifx #1N\def \next {\syl@aN}\else \put@syl
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@E {% long e
+\ift@rk \xpa \sv@I \else \xpa \sv@EInt \fi }
+
+\def \sv@EInt #1{% long E
+\ifk@sh \put@syl \put@con E\put@syl \def \next {\syl@con #1}%
+\else \def \next {\test@B #1\sv@Evwl }%
+ \ifp@sht \add@zwarakay \else
+ \ifiz@fet \else \add@kasra
+ \fi\fi \put@syl
+\fi \next }
+
+\def \sv@Evwl #1{% long E vowel
+\ifx #1e\put@con L\def \next {\syl@con }\else % ey
+ \def \next {\syl@con #1}% next syllable
+\ifp@sht \put@con \a@Y \else
+\ifurd@ \put@con E\else
+ \put@con y%
+\fi\fi\fi \put@syl \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@I #1{% long i
+\ifk@sh \put@syl \put@con y\add@kasraspec \put@syl
+ \def \next {\syl@con #1}\else
+ \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }%
+\fi \next }
+
+\def \sv@Ivwl #1{% long i carrier
+ \put@con y\ifm@dda \add@madda \m@ddafalse \fi % -I becomes -iy,
+\case #1\of
+{ y{\@sukfalse \add@shadda \syl@voctest} % -Iy becomes -iyy
+ -{\syl@voctie I}
+\default {\@sukfalse \syl@voctest #1}% next syllable
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@O #1{% long o
+\ifp@sht \add@ammad \else
+\ifiz@fet \else \add@damma
+\fi\fi \put@syl \test@B #1\sv@Ovwl }
+
+\def \sv@Ovwl {% long o carrier
+\put@con w\put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@@U #1{% long u
+\ifk@sh \put@syl \put@con w\add@ammad \put@syl
+ \def \next {\syl@con #1}\else
+\ifk@rd \put@syl \def \next {\test@B #1\sv@wwvwl }\else
+ \def \next {\sv@UInt #1}%
+\fi\fi \next }
+
+\def \sv@wwvwl {% kurdish double w carrier
+\put@con w\put@syl \put@con w\put@syl \syl@con }
+
+\def \sv@UInt #1{% long u
+\add@damma \put@syl \test@B #1\sv@Uvwl }
+
+\def \sv@Uvwl #1{% long u carrier
+ \put@con w\ifm@dda \add@madda \m@ddafalse \fi % -U becomes -uw
+\case #1\of
+{ w{\@sukfalse\add@shadda \syl@voctest} % -Uw becomes -uww
+ -{\syl@voctie U} % not -U-
+ A{\put@syl \put@con a\put@syl \syl@con } % not -UA
+\default {\sv@@Uvwl #1}
+}\endcase }
+
+\def \sv@@Uvwl #1{% long u carrier
+\ifiz@fet\ifx #1Q\def \next {\sv@UQ}\else % not -U'
+ \def \next {\syl@voctest #1}\@sukfalse % next syllable
+ \fi
+\else \def \next {\syl@voctest #1}\@sukfalse % next syllable
+\fi \next }
+
+\def \sv@UQ #1#2#3#4{% UQU#2#3#4, U' in Farsi
+\if\isat@wdend #2#3#4\add@hamza % final hamza on waw ?
+ \ifx #2-\def \next {\syl@hyphen Q#3#4}% ezafe ?
+ \else \def \next {\syl@voctest #2#3#4}% vowel ?
+ \fi
+\else \put@syl \def \next {\syl@hamza U#2#3#4}% next syllable
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@Ytest #1{% is alif maqsura vowel or consonant?
+\case #1\of
+{ "{\put@syl \syl@con Y#1}
+ < B{\sv@YInt #1}
+\default {\ifcat -\nxp #1\def \next {\sv@YInt #1}%
+ \else \put@syl \def \next {\syl@con Y#1}%
+ \fi \next }
+}\endcase }
+
+\def \sv@YInt #1{% alif maqsura is vowel
+\add@fatha \put@syl \test@B #1\sv@Yvwl }
+
+\def \sv@Yvwl {% put alif maqsura
+\put@con Y\ifqur@n \add@fathaspec \fi \put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@a@a #1{% Qur'an alif
+ \add@fathaspec \put@syl
+\case #1\of
+{ \a@H {\put@con \a@H\put@syl \syl@con }%
+ U{\put@con w\put@syl \syl@con }%
+ Y{\put@con Y\put@syl \syl@con }%
+ I{\put@con y\put@syl \syl@con }%
+\default {\syl@con #1}%
+}\endcase }
+
+\def \sv@a@e {% explicit sukun
+\add@sukun \put@syl \syl@con }
+
+\def \sv@a@i {% defective long i
+\add@kasraspec \put@syl \syl@con }
+
+\def \sv@a@u {% defective long u
+\add@ammad \put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@a@A {% Uighuric and Turkish
+\ifu@gh \put@syl \put@con \a@H \put@syl \xpa \syl@con
+\else \xpa \sv@a \fi }
+
+\def \sv@a@E #1{% kurdish ^e
+\ifk@rd \put@syl \def \next {\test@B #1\sv@a@Evwl }\else
+\add@kasraspec \put@syl \def \next {\syl@con #1}\fi \next }
+
+\def \sv@a@Evwl {% kurdish E carrier
+\put@con \a@E \put@syl \syl@con }
+
+\def \sv@a@O #1{% Kurdish and Turkish "o
+\put@syl
+\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else
+\def \next {\test@B #1\sv@wvwl }\fi \next }
+
+\def \sv@a@O #1{% Kurdish and Turkish "o
+\put@syl
+\ifu@gh \put@con \a@W \put@syl \def \next {\syl@con #1}\else
+\ifk@rd \def \next {\test@B #1\sv@wa@Evwl }\else
+\def \next {\test@B #1\sv@wvwl }\fi\fi \next }
+
+\def \sv@wa@Evwl {% kurdish W E carrier
+\put@con w\put@syl \put@con \a@E \put@syl \syl@con }
+
+\def \sv@a@U {% Uighuric and Turkish
+\ifu@gh \put@syl \put@con \a@aw \put@syl \xpa \syl@con
+\else \xpa \sv@u \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@Za {% Kashmiri .a
+\add@kh@hamza \put@syl \syl@con }
+
+\def \sv@Ze {% explicit shadda
+%\add@shadda \put@syl \syl@con }
+%\add@shadda \syl@voctest }
+\voc@suk \add@shadda \syl@voctest }
+
+\def \sv@Zi {% Sindhi -IN
+\add@bars \put@syl \syl@con }
+
+\def \sv@Zo {% Kashmiri .o
+\put@syl \put@con \a@aU \put@syl \syl@con }
+
+\def \sv@Zu {% Kashmiri .u
+\add@kl@hamza \put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@ZA {% Kashmiri .A
+\put@syl \put@con A%
+\add@kh@hamzl \put@syl \syl@con }
+
+\def \sv@ZE {% explicit madda
+\add@madda \put@syl \syl@con }
+
+\def \sv@ZI {% Kashmiri .y
+\put@syl \put@con \a@as \syl@voctest }
+
+\def \sv@ZO {% Kashmiri .O
+\put@syl \put@con \a@aU \put@syl \put@con A\add@fatha \put@syl \syl@con }
+
+\def \sv@ZU {% Kashmiri .U
+\add@kl@hamzl \put@syl \syl@con }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Nunation %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \syl@Nspec {% tanwin fatha
+\ifh@mza \ifaN@alif \def \next {\syl@aN@alif }%
+ \else \def \next {\syl@aN }%
+ \fi
+\else \add@fathatan \put@syl \def \next {\syl@ignore }%
+\fi \next }
+
+\def \syl@aN #1{% tanwin fatha on actual character, alif required ?
+ \add@fathatan \put@syl \def \next {\syl@ignore #1}%
+\ifcat -\nxp #1%
+ \xpa\if \xpa\is@in@list \the\last@con YTaB>\else
+ \put@con a\put@syl % deposit alif
+ \fi
+\fi \next }
+
+\def \syl@aN@alif #1{% tanwin fatha at the end, alif required ?
+\ifcat -\nxp #1\def \next {\syl@ignore #1}%
+ \xpa\if \xpa\is@in@list \the\last@con YTaB>\else
+ \ifv@c \put@syl \v@ctrue \else \put@syl
+ \fi \put@con a% % deposit alif
+ \fi
+\else \def \next {\syl@ignore }%
+ \ifv@c \put@syl \v@ctrue \else \put@syl
+ \fi \put@con #1% % deposit character
+\fi \add@fathatan \put@syl \next }
+
+\def \syl@Wspec #1{% final w with silent alif ?
+\case #1\of
+{ -{\syl@Wspec }% ignore hyphen
+ u{\add@damma \put@syl
+ \put@con a\put@syl \syl@con }% % ending w-u
+\default {\add@sukun \put@syl
+ \put@con a\put@syl \syl@con }% % ending w
+}\endcase }
+
+\def \syl@ignore #1{% kill the rest after Tanwin except U, A, a, y, and Y
+\case #1\of
+{ -{\syl@ignore }
+ U{\put@con w\put@syl \syl@ignore }
+ aA{\put@con a\put@syl \syl@ignore }
+ Y{\put@con Y\put@syl \syl@ignore }
+ y{\put@con y\put@syl \syl@ignore }
+\default {\let \next \syl@ignore
+ \ifcat -\nxp #1\def \next {\syl@con #1}% % tie
+ \fi \next }
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Hamza %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \if@ay
+
+\def \syl@@hamzabeg #1#2{% initial hamza
+\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif
+ \add@hamza \add@hamzalow \put@syl
+ \else \put@con Y\add@hamza \def \next {\syl@voctest #2}%
+ \fi \else
+\ifh@mza \def \next {\syl@beghamza #1#2}\else
+ \def \next {\syl@hamzaverb #1#2}% verbatim mode
+\fi\fi \next }
+
+\def \syl@@hamzabeg #1#2{% initial hamza
+\ifk@rd \ifx #2i\def \next {\syl@con }\put@con a% alif
+ \add@hamza \add@hamzalow \put@syl
+ \else \put@con Y\add@hamza \def \next {\syl@voctest #2}%
+ \fi \else
+\ifu@gh \put@con Y\add@hamza \def \next {\syl@voctest #2}\else
+\ifh@mza \def \next {\syl@beghamza #1#2}\else
+ \def \next {\syl@hamzaverb #1#2}% verbatim mode
+\fi\fi\fi \next }
+
+\def \syl@@hamza #1{% non-initial hamza, context #1'
+\ifx #1-\def \next {\syl@hamzabeg #1}\else
+\ifh@mza \def \next {\syl@arabhamza #1}\else
+ \def \next {\syl@hamzaverb #1}% verbatim mode
+\fi\fi \next }
+
+\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
+\case #1\of
+{ |{\put@con Q}
+ A{\put@con a\add@madda \@sukfalse }
+ y{\put@con Y\add@hamza }
+ u{\put@con w\add@hamza }
+ i{\put@con a\add@hamza \add@hamzalow }
+\default {\put@con #1\add@hamza }
+}\endcase \syl@voctest }
+
+\def \syl@beghamza #1#2{% start word with hamza, context '#2
+\ifx #2"\def \next {\syl@beghamza #1}\togglev@c % toggle vowel
+\else \def \next {\syl@@beghamza #2}%
+\fi \next }
+
+\def \syl@@beghamza #1{% start word with hamza, context '#1
+\put@con a\def \next {\syl@con }% alif
+\case #1\of
+{ A{\add@madda }
+ \a@a {\add@fathaspec }
+ a\a@A{\add@hamza \add@fatha }
+i\a@i\a@I{\add@hamza \add@kasra \add@hamzalow }
+ou\a@O\a@U{\add@hamza \add@damma }
+ eE\a@E{\add@hamza \ifp@sht \add@zwarakay \else \add@kasra \fi }
+ I\a@e{\add@hamza \add@kasra \add@hamzalow \put@syl \put@con y}
+OU\a@o\a@p\a@w{\add@hamza \add@damma \put@syl \put@con w}
+\default {\add@hamza \add@sukun \def \next {\syl@con #1}}
+}\endcase
+\put@syl \next }
+
+\def \syl@arabhamza #1#2#3{% non-initial hamza, context #1'#2#3
+\case #2\of
+{ "{\togglev@c \syl@hamza #1#3} % toggle vowel
+ |{\syl@hamza #1#3} % ignore bar
+ AIUYEO{\syl@hamzamid #1#2#3#3} % arabic rules
+\default {\syl@@arabhamza #1#2#3} % test for final position
+}\endcase }
+
+\def \syl@@arabhamza #1#2#3#4{% non-initial hamza, context #1'#2#3#4
+ \def \next {\syl@hamzamid #1#2#3#3#4}%
+\if\isat@wdend #2#3#4% test for hamza as last consonant
+\ifiz@fet \else \def \next {\syl@hamzaend #1#2#3#4}%
+\fi\fi \next }
+
+\def \syl@hamzamid #1#2#3{% test for #1 a y ; obsolete?
+ \@ayfalse
+\ifx #2a\ifx #3y\@aytrue
+\fi\fi \syl@@hamzamid #1#2#3}
+
+\def \syl@@hamzamid #1#2#3{% intermediate hamza, context #1'#2#3
+ \def \next {\syl@voctest #2}%
+\ifx #1I\ifqur@n \put@con B\else \put@con Y\fi \add@hamza \else
+\if\is@in@list #1iy>\put@con Y\add@hamza \else
+\if\is@in@list #2iIE>\put@con Y\add@hamza
+ \ifqur@n \add@hamzalow \fi \else
+\if\is@in@list #1uo>\put@con w\add@hamza \else
+\if\is@in@list #2uo>\put@con w\add@hamza \else
+\if\is@in@list #2UO>%
+ \ifqur@n \put@Q #1\else \put@con w\add@hamza \fi \else
+\if\is@in@list #1AUO>\put@Q #1\else
+\if\is@in@list #2A>\put@con a\add@madda
+ \put@syl \def \next {\syl@con }\else
+\if\is@in@list #2\a@a>\put@con a\add@fathaspec
+ \put@syl \def \next {\syl@con }\else
+\ifx #1a\put@con a\add@hamza \else
+\ifx #2a\ifqur@n \put@Q #1\else \put@con a\add@hamza \fi \else
+ \put@Q #1% deposit Hamza
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+\ifx #2Q\def \next {\syl@doublehamza }%
+\fi \next }
+
+\def \syl@hamzaend #1{% final hamza, context #1'
+\case #1\of
+{ i{\put@con Y\add@hamza \syl@voctest }
+ u{\put@con w\add@hamza \syl@voctest }
+ a{\put@con a\add@hamza \syl@voctest }
+\default {\syl@@hamzaend #1}
+}\endcase }
+
+\def \syl@@hamzaend #1#2#3{% final hamza, context #1'#2#3
+\put@con Q\def \next {\syl@voctest #2#3}% deposit Hamza
+\ifx #2a\ifx #3N\def \next {\syl@hamza@Nspec #1}%
+\fi\fi \next }
+
+\def \syl@hamza@Nspec #1#2{% #1'aN , put alif ?
+\ifx #1A\else
+\ifx #1U\else
+\if\is@end@char #1\else
+ \ifqur@n \put@con B\else \put@con Y\fi \add@hamza
+\fi\fi\fi
+ \add@fathatan \put@syl
+\ifx #1A\else
+ \ifx #2Y\put@con Y% put alif maqsoura
+ \else \put@con a% put alif
+ \fi
+ \put@syl
+\fi \syl@ignore #2}
+
+\def \syl@doublehamza #1{% double Hamza
+\add@shadda \syl@voctest }
+
+\def \put@Q #1{% deposit isolated hamza after #1
+\ifqur@n \if\is@end@char #1\put@con Q\else \put@con B\add@hamza \fi
+\else\put@con Q%
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%% deposit characters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \check@@high #1{% % long form for tooth ?
+\if\is@in@list #1YntCbyp>% % YntCbyp : toggle
+ \if@high \global\@highfalse \else \global\@hightrue
+ \fi \else
+\if\is@in@list #1sxSD>\global\@hightrue \else % sxSD : force high
+ \global\@highfalse % otherwise : force low
+\fi\fi }
+
+\def \put@con #1{% start syllable
+\last@con ={#1}}
+
+\def \put@syl {% deposit syllable
+\if@high \advance \last@mod \c@high \fi
+\xpa \check@high \the\last@con
+\let \ifv@c \if@vocals \let \if@suk \if@sukun
+\def \rev@wd {\the\last@con \the\last@mod +\the\last@voc *}\put@rev@wd
+\global \@waslatrue }
+
+\def \put@spec #1{% deposit special character
+\last@con={#1}\def \rev@wd {#10+0*}\put@rev@wd
+\global \@waslafalse }
+
+\def \put@rev@wd {% deposit output item % no group!
+\edef \temp {\global \nxp\a@revwd {\rev@wd \the\a@revwd }% % \temp
+\global \nxp\sv@revwd {\the\sv@revwd \rev@wd }}\temp
+\last@mod = 0 \last@voc = 0 }
+
+%%%%%%%%%%%%%%%%%%%%%% deposit .harakAt %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \add@shadda {\advance \last@mod \c@shadda }
+\def \add@hamza {\advance \last@mod \c@hamza }
+\def \add@hamzalow {\advance \last@mod \c@hamzalow }
+\def \add@madda {\advance \last@mod \c@madda }
+
+\def \add@wasla {\if@suk \last@voc \c@wasla \fi }
+\def \add@sukun {\if@suk \last@voc \c@sukun \fi }
+\def \add@fatha {\ifv@c \last@voc \c@fatha \fi }
+\def \add@kasra {\ifv@c \last@voc \c@kasra \fi }
+\def \add@damma {\ifv@c \last@voc \c@damma \fi }
+\def \add@zwarakay {\ifv@c \last@voc \c@zwarakay \fi }
+\def \add@fathatan {\ifv@c \last@voc \c@fathatan \fi }
+\def \add@kasratan {\ifv@c \last@voc \c@kasratan \fi }
+\def \add@dammatan {\ifv@c \last@voc \c@dammatan \fi }
+\def \add@fathaspec {\ifv@c \last@voc \c@fathaspec \fi }
+\def \add@kasraspec {\ifv@c \last@voc \c@kasraspec \fi }
+\def \add@ammad {\ifv@c \last@voc \c@ammad \fi }
+\def \add@bars {\ifv@c \last@voc \c@bars \fi }
+\def \add@kh@hamza {\ifv@c \last@voc \c@kh@hamza \fi }
+\def \add@kl@hamza {\ifv@c \last@voc \c@kl@hamza \fi }
+\def \add@kh@hamzl {\ifv@c \last@voc \c@kh@hamzl \fi }
+\def \add@kl@hamzl {\ifv@c \last@voc \c@kl@hamzl \fi }
+
+%%%%%%%%%%%%%%%%%%%%% output code constants %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \c@shadda = 1 \chardef \c@hamza = 2
+\chardef \c@hamzalow = 3 \chardef \c@madda = 4
+\chardef \c@high = 10
+
+\chardef \c@sukun = 1 \chardef \c@fatha = 2
+\chardef \c@kasra = 3 \chardef \c@damma = 4
+\chardef \c@fathatan = 5 \chardef \c@kasratan = 6
+\chardef \c@dammatan = 7 \chardef \c@zwarakay = 8
+\chardef \c@wasla = 9 \chardef \c@fathaspec = 10
+\chardef \c@kasraspec = 11 \chardef \c@ammad = 12
+\chardef \c@kas@fath = 13 \chardef \c@bars = 14
+\chardef \c@kh@hamza = 15 \chardef \c@kl@hamza = 16
+\chardef \c@kh@hamzl = 17 \chardef \c@kl@hamzl = 18
+
+%%%%%%%%%%%%%%%%%%%%%%%% end of routines %%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/apatch.sty b/language/arabic/arabtex/texinput/apatch.sty
index 9fdcfe2c10..cf3eb20933 100644
--- a/language/arabic/arabtex/texinput/apatch.sty
+++ b/language/arabic/arabtex/texinput/apatch.sty
@@ -1,2397 +1,2397 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% apatch.sty
-% last minute corrections
-% see \a@pdatum and \a@level at the end of the file
-% template: 22.08.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% this is just another *.sty file
-% you do not have to do any manual patching
-% just put this file onto the TEXINPUT path
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \patchatcode = \catcode`\@ \catcode`\@ = 11
-\chardef \patchdqcode = \catcode`\" \catcode`\" = 12
-
-\def \a@version {3.11} % compare to arabtex::theversion
-
-\ifx \a@version \theversion \else \edef \next {\errmessage
-{This patch file only works with ArabTeX version \a@version }}
-\next \def \a@patchlevel {-undefined-}
-\xpa \endinput
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% presently no patches
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% two passes with LaTeX; see: alatex.sty
-
-%\iffalse % no patches yet; otherwise: delete !
-\ifx \LaTeX \undefined \else
-\ifx \a@patchlevel \undefined % first patching run
-\let \a@@@document \a@document
-\a@extend \document {\setnone \input {apatch.sty}}
-\else % second pass after loading all modules
-\let \a@document \a@@@document
-\fi\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% patch patterns:
-
-\ifx \a@patchlevel \undefined % load only the first time
-% patches on first pass
-\else
-% patches on second pass
-\fi
-
-\ifx \a@hebr \undefined \else
-%\a@message {Hebrew mode patches}
-\fi
-
-\ifx \LaTeX \undefined \else
-%\a@message {LaTeX mode patches}
-\fi
-%\fi % no patches yet; otherwise: delete !
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {22.08.2003} \def \a@level {-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-
-\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
-% c1 m1 * c2 m21 + m22 * c3
-\ifu@gh \ifx #1\a@H
- \else \set@act \sk@h@u
- \fi
-\else
-\ifurd@ \ifm@lay
- \else \set@act \sk@h@s \hah@urd #3% round h?
- \fi
- \ifx #1T\else
- \ifx #3l\test@allah #4#6\else
- \ifx #1\a@H
- \else \set@act\sk@h@u
- \if\is@end@char #3%
- \else \set@loww@act \global\a@min 1
- \fi
- \fi\fi\fi
-\else
-\ifx #3l\test@allah #4#6\else
-\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
-\else
-\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
-\else \gim@test #6\put@tatwil
-\fi\fi\fi\fi\fi }
-
-\def \test@allah #1#2{% special ligature
-\ifx #2l\ifnum #1 = \c@shadda \set@chr\sk@l@w
- % special short form of lam for the Name of God
-\fi\fi \put@tatwil }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-
-\def \setarabfont #1{% define font switching
- \def \the@arabfont {\tr@ceoff #1\tr@ceon }}
-
-\def \arab@output {\ifx \a@lang \a@arab \else
-\tr@ceoff % switch to Arabic output conventions
-\def@arabchars % define character macros for Arabic
-\def@arabaccent % define accent macros for Arabic
-\def@arabvoc % define vowel parsing routines for Arabic
-\def@arabstrut % define strut for Arabic
-\tr@zdmg % define standard transliteration
-\global\let \a@write \a@@write \global\let \a@write@hook \relax
-\def \set@arabfont {\the@arabfont }%
-\tr@ceon \let \a@lang \a@arab \fi }
-
-%\setnash
-
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.sty
-
-\def \heb@output {\ifx \a@lang \a@hebr \else
-\tr@ceoff % switch to Hebrew output conventions
-\def@hebchars % define character macros for Hebrew
-\def@hebvoc % define vowel parsing routines for Hebrew
-\def@hebstrut % define strut for Hebrew
-\global\let \a@write \heb@write \global\let \a@write@hook \relax
-%\def \set@arabfont {\the@hebfont }%
-%\def \set@arabfont {\pheb }%
-\def \set@arabfont {\hebfont }%
-\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
-
-\def \sethebfont #1{% define font switching
- \def \hebfont {\tr@ceoff #1\tr@ceon }}
-
-\pdef \sethebrew {% switch to hebrew writing
-\all@false \@ssimtrue \yahd@tstrue \heb@output }
-
-\let \setheb \sethebrew
-
-\ifx \LaTeX \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts2.sty
-
-\def \fdef #1#2#3#4{% define NFSS2 font command
-\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
-\fontseries {#3}\fontshape {#4}\selectfont }%
-\sethebfont \pheb }%
-\all@wcmd #1}
-
-\hdef \hc {m}{n}
-\hdef \hp {bx}{n}
-\hdef \Jm {m}{Jm}
-\hdef \jm {m}{jm}
-\hdef \ds {m}{ds}
-\hdef \oj {m}{oj}
-\hdef \ta {m}{ta}
-\hdef \shlmold {m}{so}
-\hdef \shlmscr {m}{sr}
-\hdef \shlmstk {m}{sk}
-\hdef \fr {m}{fr}
-\hdef \frbx {bx}{fr}
-\hdef \frsl {sl}{fr}
-\hdef \crml {m}{crml}
-\hdef \crmlsl {sl}{crml}
-
-\sethebfont \hc
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % LaTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % Hebrew
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {27.08.2003} \def \a@level {a}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \LaTeX \undefined
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.tex
-
-\def\smash{\relax % \relax, in case this comes first in \halign
-\ifmmode \xpa\mathpalette \xpa\mathsm@sh \else \xpa\makesm@sh
-\fi }
-
-\def \jm {\sethebfont {\jerusalem}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % Plain
-
-\hc % default Hebrew font
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % Hebrew
-
-\ifx \a@patchlevel \undefined % load only the first time
-\ifx \LaTeX \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alatex.tex
-
-\UsePackage {alists} % load LaTeX extensions for Arabic lists
-\UsePackage {asect} % load LaTeX extensions for Arabic sections
-\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % LaTeX
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {08.09.2003} \def \a@level {b}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% heparse.sty
-
-\def \add@@shewa {% put shewa on final kaf
-\xpa\case \the\last@con \of
-%{ k R {\add@shewa }}
-{ k {\add@shewa }}
-\endcase }
-
-\let \sv@qameslongum \sv@qamesaleph
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.sty
-
-\pdef \setjudarab {% switch to hebrew writing
-\all@false \@ssimtrue \yahd@tstrue \jud@output }
-
-\all@wcmd \setjudarab
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \jud@output {\ifx \a@lang \a@juda \else
-\heb@output \tr@ceoff % switch to Hebrew output conventions
-\def@judchars % define character macros for Judeo-Arabic
-\tr@zdmg % standard transliteration
-\tr@ceon \global\let \a@lang \a@juda \fi }
-
-\def \a@juda {JUDARAB}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebchrs.sty
-
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \def@judchars {% define character macros for Judeo-Arabic
-\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
-\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
-\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
-\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
-\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
-\gdef \tc@R {\act@cd\hc@j \act@mod \j@@@d@t } % .g
-\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
-\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
-\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
-}}% end of dynamic definitions
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi %\a@hebr
-
-\ifx \setjudarab \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-
-\chardef \j@d@t 5 \chardef \j@@d@t 6 \chardef \j@@@d@t 7
-
-\def \h@putmod #1{% deposit modifier
-\ifcase #1\relax
-\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe
-\or \j@dot \or \j@@dot \or \j@@@dot \fi }
-
-\def \the@dots {\the@dot \kern2\h@p \the@dot }
-
-\def \the@gim {\raise \h@p \hbox {\the@dot }%
-\the@dot \raise \h@p \hbox {\the@dot }}
-
-\def \j@dot {\j@put@dia {.5}{1.3}{\the@dot }}
-\def \j@@dot {\j@put@dia {.5}{1.3}{\the@dots }}
-\def \j@@@dot {\j@put@dia {.5}{1.3}{\the@gim}}
-
-\def \j@put@dia #1#2#3{% put diacritic #3 at (#1,#2)
-\setbox0 \hbox to \z@ {\hss #3\hss}\dimen@ #2\a@ht
-\dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi %\setjudarab
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {17.09.2003} \def \a@level {c}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% acmd.sty
-
-\let \a@c@emph \a@c@emphasize
-
-\def \arab@em #1{% overstrike group
-\def \next@command {\test@special}%
-\ifarab \setbox0 \hbox {\a@sequence {#1}}%
- \putwordb@x {\vbox {\hrule \kern 1pt \box0}}%
-\fi
-\ifshow {\tt \string \emphasize \ }%
-\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
-\fi\fi
-\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
-\fi \test@token }
-
-\def \a@c@textbf #1{\a@c@bf #1\rm }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% for LyX: spacing.sty
-
-\let \a@c@noun \test@token
-
-\def \a@spacing {\let \a@@restore@spacing \restore@spacing
-\let \restore@spacing \a@restore@spacing }
-
-\def \a@restore@spacing {\a@par \a@@restore@spacing }
-
-\def \a@c@singlespace {\a@par \a@spacing
-\def \endsinglespace {\a@par \par }%
-\singlespace \test@token }
-
-\def \a@c@onehalfspace {\a@par \a@spacing \onehalfspace \test@token }
-
-\def \a@c@doublespace {\a@par \a@spacing \doublespace \test@token }
-
-\def \a@c@spacing #1{\a@par \a@spacing \spacing {#1}\test@token }
-
-\xpa\def \csname a@c@singlespace*\endcsname
-{\a@par \a@spacing
-\xpa\let \xpa\a@endsinglespace \csname endsinglespace*\endcsname
-\xpa\def \csname endsinglespace*\endcsname
-{\a@par \a@endsinglespace \vskip -\baselineskip }%
-\csname singlespace*\endcsname \test@token }
-
-\let \a@c@textsf \test@token % these are preliminary
-\let \a@c@textsf \a@c@textbf
-
-\let \a@c@textit \test@token
-\let \a@c@textit \a@c@textbf
-\let \a@c@textit \a@c@emph
-
-\let \a@c@textsl \test@token
-\let \a@c@textsl \a@c@textbf
-
-\let \a@c@texttt \test@token
-\let \a@c@texttt \a@c@textbf
-
-\let \a@c@underbar \test@token
-\let \a@c@underbar \a@c@textbf
-
-\def \a@c@underbar {% get next token
-\def \next@command {\arab@ub }%
-\futurelet \next@token \test@space }
-
-\def \arab@ub #1 {% underbar
-\def \next@command {\test@special}%
-\ifarab \setbox0 \hbox {\a@sequence {#1}}%
- \putwordb@x {\vtop {\box0 \kern -5pt \hrule }}%
-\fi
-\ifshow {\tt \string \underbar \ }%
-\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
-\fi\fi
-\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
-\fi \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% awrite.sty
-
-\def \arab@testfont {% diagnose font, look for vowels and ayin
-\edef \next {\the\font }%
-\ifx \next \a@font \else
-\ifnum \tracingarab > 0 \a@message{Arabic font \next selected.}\fi
-\global\let \a@font \next \a@testfont \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-
-\def \heb@testfont {% diagnose font, look for vowels and ayin
-\edef \next {\the\font }%
-\ifx \next \h@font \else
-\ifnum \tracingarab > 0 \a@message {Hebrew font \next selected.}\fi
-\global\let \h@font \next \h@testfont \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabrep.cls
-
-\at@arabtext {%
- \def\a@l@section{\@dottedtocline{1}{1.0em}{1.8em}}%
- \def\a@l@subsection{\@dottedtocline{2}{2.8em}{2.1em}}%
- \def\a@l@subsubsectiom{\@dottedtocline{3}{4.9}{2.8em}}%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabaux.sty
-
-\def \a@gextend #1#2{% global extend command definition, no pars!
-\xpa\gdef \xpa#1\xpa{#1#2}}
-
-\def \a@extend #1#2{% extend command definition, no pars!
-\xpa\def \xpa#1\xpa{#1#2}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-
-\def \syl@@quote@beg #1{% start word with quote: " #1 #2
-\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel
-% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi
- \if@wasla \v@ctrue \global\@waslafalse
- \else \global\@waslatrue \togglev@c \fi
-\else \put@con a\togglev@c \add@wasla \put@syl % alif implied
- \ifx #1"\def \next {\syl@con }% " " k: alif wasla
- \else \def \next {\syl@con #1}% " k: alif wasla
- \fi
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% asect.sty
-
-\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno
-% for Arabic mode
-\ifnum #1>\c@tocdepth
-\else \vskip \z@ plus.2\p@
- \begin{arabtext}
-% \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
- \tocp@rs {#2}{#3}#4 \le@ders \thep@geno {#5}
- \end{arabtext}
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aboxes.sty
-
-\def \fix@act@box {% fixup position and set tatwil
-\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi
-%\advance\a@min@dp \a@ic \advance\a@disp \a@ic
-\global\advance\a@min@dp \a@ic \advance\a@disp \a@ic
-\if@tat \put@tat \@tatfalse \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-
-\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures
-% c1 m1 * c2 m2 * c3
-\ifcase \act@cls \lam@lig #3#5% % 0 l
-\or % 1 YntCbyp
- \ifnum \act@cd = \a@yah \yah@end #1#3#5\else
- \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else
- \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@nun \nun@end #1#3#5\else
- \bah@end #1%
- \fi\fi\fi\fi\fi
-\or \sin@lig #1#5% % 2 sxSD
-\or \gim@lig #1#3#5% % 3 GHXJ
- \global\a@min 0
-\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR
-\or \kaf@end #3#5% % 5 kgM
-\or \fah@end #1% % 6 fqv
-\or \ttah@lig #1#5% % 7 VZ
-\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R
-\or % 9 \a@t \a@n
- \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
- \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else
- \bah@end #1%
- \fi\fi
-\else \global\@highfalse \@mod@acttrue % 10 ...
- \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else
- \ifnum \act@cd = \a@h@s \hah@urd #3\else
- \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else
- \put@tatwil
- \ifnum \act@cd = \a@dal \gim@test #5\else
- \ifnum \act@cd = \a@dal@p \gim@test #5\else
- \fi\fi
- \fi\fi\fi
-\fi \aw@lower #5}
-
-\def \act@gim #1{% deposit ligature
-\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0
-\else \set@act\sk@hh@s \@mod@acttrue
-%\fi \a@min 1 }
-\fi \global\a@min 1 }
-
-\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
-% c1 m1 * c2 m21 + m22 * c3
-\ifu@gh \ifx #1\a@H
- \else \set@act \sk@h@u
- \fi
-\else
-\ifurd@ \ifm@lay
- \else \set@act \sk@h@s \hah@urd #3% round h?
- \fi
- \ifx #1T\else
-% \ifx #3l\test@allah #4#6\else
- \ifx #3l\test@allah {#4}{#6}\else
- \ifx #1\a@H
- \else \set@act\sk@h@u
- \if\is@end@char #3%
- \else \set@loww@act \global\a@min 1
- \fi
- \fi\fi\fi
-\else
-%\ifx #3l\test@allah #4#6\else
-\ifx #3l\test@allah {#4}{#6}\else
-\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
-\else
-\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
-\else \gim@test #6\put@tatwil
-\fi\fi\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aoutput.sty
-
-\def \put@ab@x {% deposit line
-\ifhmode \unskip {\endgraf }\penalty \clubpenalty
-\parindent \z@ \parskip \z@ \else
-\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
-\fi\fi
-\begingroup \parfillskip 0pt plus 1fill
- \leftskip \z@ \rightskip \z@ \noindent
- \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
- \box\a@tempb@x \endgraf
-%\endgroup \parindent \z@ \parskip \z@ \initlineb@x
-\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
-\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
-\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {23.10.2003} \def \a@level {d}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-
-\newarabfont % as a side effect an Arabic font default is defined!
-%\setnash
-
-% wg. utfcode.sty und inputenc.sty:
-
-\long\def \test@special #1{% check for special cases
-\if \bgroup \nxp \next@token % arabic group
- \a@@putword \def \next {\arab@group {#1}}\else
-\if \relax \nxp #1% % command
- \if\is@in@set #1\a@accent % known to scanner
- \a@@append {#1}\def \next {\get@token }%
- \else % general command
- \a@@putword \def \next {\test@command #1}%
- \fi \else
-%\if \sp@ce \nxp \next@token % RTL space
-% \a@@putword \def \next {\get@token }\else
-\ifnum `#1 > 127 % inputenc command
- \a@@append {#1}\def \next {\get@token}\else
-\ifcat \nxp ~\nxp #1% % active character
- \a@@putword \def \next {\test@command #1}\else
-\if \nxp <\nxp #1\unarab@codes % Roman insert
- \a@@putword \let \next \test@insert \else
-\ifx $#1\unarab@codes % Math insert
- \a@@putword \let \next \test@math
-\else \a@@append {#1}\def \next {\get@token}% % normal case
-\fi\fi\fi\fi\fi\fi \next }
-
-{\catcode `\< = \@other % better make sure
-\gdef \a@ins {% arabic insertion or 'less'
-\ifmmode \global\let \a@less <
-%\else \global\let \a@less \arab@insert \leavevmode
-\else \global\let \a@less \a@@insert \leavevmode
- \bgroup \arab@codes \set@arabfont \global\@waslafalse \@wasfalse
-\fi \a@less }
-} % catcode <
-
-\def \a@@insert #1{% check for < >
-\ifx #1>\egroup \unskip \else \xpa \arab@insert \xpa #1\fi}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ascan.sty
-
-{\arab@codes % because of special characters
-
-\gdef \t@b@g #1{% start \ArabTeX scanner
- \def \next {\sc@word {#1}}\def \sc@char {@}%
-\ifcat a\nxp #1\else % letter
-\apply \set@next \tocase #1\of
-{ \@{\sc@endscan } % finished
- '{\t@rquote }
- `{\t@lquote }
- *{\t@star }
-\default {\sc@word {#1}}
-}\endcase
-\fi \next }
-
-\gdef \t@w@rd #1{% transform input into internal notation
- \def \next {\sc@word }%
-\ifx #1\@\def \next {\sc@endscan }\else % finished
-\ifcat \nxp #1a%
- \ifx #1a\def \next {\t@aa }\else % test for aa -> A
- \ifx #1n\def \next {\t@nn }\else % test for ng, ny
- \edef \sc@char {\csname sc@#1\endcsname }% letter
- \ifx \sc@char \relax \def \sc@char {#1}% undef letter
- \fi
- \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
- \fi
- \fi\fi \else % other character
-\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
-\ifx #1'\def \next {\t@hamza }\else % hamza
- \def \sc@char {#1}%
-\apply \set@next \tocase #1\of
-{~\@ldtie{\t@tie }
- .{\t@dot }
- ,{\t@comma }
- -{\t@minus }
- `{\t@ain }
- "{\t@dquote }
- :={\t@colon }
- ^{\t@up }
- _{\t@down }
- |{\t@bar }
- *{\t@shadda }
-\default {\t@w@@rd {#1}}
-}\endcase
-\fi\fi\fi\fi \next }
-
-} % \arab@codes
-
-\def \t@star {\sc@dep *}
-
-\let \sc@beg \t@b@g % apatch only
-\let \sc@word \t@w@rd % apatch only
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-
-\def \test@allah #1#2{% special ligature
-\ifx #2l%
-%\ifnum #1 = \c@shadda
-\set@chr\sk@l@w
- % special short form of lam for the Name of God
-%\fi
-\fi \put@tatwil }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-
-\def \set@shadda {\advance \last@mod \c@shadda }
-
-\def \add@shadda {\ifcase \last@mod % set bit 1
-\set@shadda \or\or \set@shadda \or\or \set@shadda \or\or \set@shadda
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\ifx \a@hebr \undefined \else
-\iffalse
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.sty
-
-\def \heb@output {\ifx \a@lang \a@hebr \else
-\tr@ceoff % switch to Hebrew output conventions
-\def@hebchars % define character macros for Hebrew
-\def@hebvoc % define vowel parsing routines for Hebrew
-\def@hebstrut % define strut for Hebrew
-\global\let \a@write \heb@write \global\let \a@write@hook \relax
-\def \set@arabfont {\the@hebfont }%
-\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
-
-\def \sethebfont #1{% define font switching
- \def \the@hebfont {\tr@ceoff #1\tr@ceon }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts2.sty % apatch.sty only!
-
-\hdef \hc {m}{n}
-\sethebfont \hc
-
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x
-\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth
-\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
-\a@normpen \widowpenalty \a@normpen \clubpenalty
-\leftskip \z@ \rightskip \z@
-\parfillskip \z@ plus 1fil \relax \parskip \z@
-\let \a@@kern \a@kern \let \a@@mkern \a@mkern
-\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}%
-\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000
-\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse
-\test@token #1 \end \unskip \unskip \vskip \a@vglue
-\hbox {\box\lineb@x \hfill }}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-
-\gdef \h@putvowel #1{% vowel mark
-\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
-\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
-%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
-\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
-\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
-\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
-\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
-\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
-\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
-\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
-\fi\fi\fi\fi\fi\fi\fi\fi
-\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
-\advance \dimen@ -2\h@p
-\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
-
-\gdef \h@putvowel #1{% vowel mark
-\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
-\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
-%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
-\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
-\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
-\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
-\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
-\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
-\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
-\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
-\fi\fi\fi\fi\fi\fi\fi\fi
-\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
-\advance \dimen@ -2\h@p
-\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
-
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% utfcode.sty
-
-\ifx \utfatcode \undefined \else
-
-{\catcode `\^ 7 \catcode `\^^M=13
-\gdef \utf@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\utf@end }\else % finished
-\ifx #1-\def \next {\utf@minus }\else %
-\ifx #1/\def \next {\sc@back #1}\else %
-\ifnum `#1="D6 \def \next {\utf@dvi }\else %
-\ifnum `#1="D7 \def \next {\utf@dvii }\else %
-\ifnum `#1="D8 \def \next {\utf@dviii }\else %
-\ifnum `#1="D9 \def \next {\utf@dix }\else %
-\ifnum `#1="DA \def \next {\utf@da }\else %
-\ifnum `#1="DB \def \next {\utf@db }\else %
-\ifnum `#1="E2 \def \next {\utf@eii }\else %
- \def \next {\utf@asci #1}%
-\fi %
-\fi\fi\fi\fi\fi\fi %
-\fi\fi\fi \next }%
-} % catcode 13
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@eii #1#2{% segment E2
- \u@lb `#1\relax \advance \u@lb -128
- \u@lq `#2\relax \advance \u@lq -128
- \edef \sc@char {}%
-\ifnum \u@lb = 0
-\ifnum \u@lq = 12 % ZERO WIDTH NON-JOINER (U+200C)
-% \edef \sc@char {||}\else
- \edef \sc@char {\n@xp\a@ba}\else
-\ifnum \u@lq = 13 % ZERO WIDTH JOINER (U+200D)
- \edef \sc@char {-}\else
-% \edef \sc@char {\n@xp\a@bb}\else
-\fi\fi\fi \utf@next }
-
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@dix #1{% segment D9
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
- B\or f\or q\or k\or l\or m\or n\or h\or \fi }%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
- "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or
- "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }%
-\or \advance \u@lb -"18 \edef \sc@char {}%
-\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
- 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }%
-\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
- 8\or 9\or \a@pc\or \f@sila\or
- \f@sila\or *\or \n@xp\a@b\or \n@xp\a@bq\or \fi }%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or
-% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }%
-N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
-% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
- N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
- \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@db #1{% segment DB
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
- Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or
- \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or
- Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or
- B\or \n@xp\a@H\or \or \or \fi }%
-\or \advance \u@lb -"18 \edef \sc@char {}%
-\or \advance \u@lb -"20 \edef \sc@char {}%
-\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
- \or \or \or \or
- \or \or \n@xp\a@bd\or \n@xp\a@br\or \fi }%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- 0\or 1\or 2\or 3\or
- 4\or 5\or 6\or 7\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
- 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or
- \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or
- \n@xp\a@ao"\n@xp\a@Zi\or \n@xp\a@bh-\or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtoks.sty
-
-\def \a@br {\sk@r ,25 } % rah with roof
-\def \a@ba {\sk@W , 0 } % ZERO WIDTH NON-JOINER
-\def \a@bb {\sk@spc , 0 } % ZERO WIDTH JOINER
-\def \a@bb {\sk@N , 0 } % ZERO WIDTH JOINER
-\def \a@bd {\sk@d ,25 } % dal with roof
-\def \a@bh {\sk@h ,25 } % hah with roof
-\def \a@bq {\sk@q@s , 0 } % qaf without dots
-\def \a@br {\sk@r ,25 } % rah with roof
-
-\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
-\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
-\gdef \sk@Wp {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
-\gdef \sk@N {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
-\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
-\gdef \sk@spcn {10 ,\a@smspc ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
-\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
-\gdef \sk@skipn{10 ,\a@skip ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
-
-\def \a@bc {\sk@@ , 0 } % empty
-%\def \a@bc {\sk@skipn , 0 } % empty
-\def \a@be {\sk@@ , 0 } % empty
-%\def \a@be {\sk@spc , 0 } % empty
-\def \a@bf {\sk@@ , 0 } % empty
-%\def \a@bf {\sk@spcn , 0 } % empty
-\def \a@bg {\sk@@ , 0 } % empty
-%\def \a@bg {\sk@skip , 0 } % empty
-\def \a@bi {\sk@@ , 0 } % empty
-%\def \a@bi {\sk@Wp , 0 } % empty
-\def \a@bj {\sk@@ , 0 } % empty
-\def \a@bk {\sk@@ , 0 } % empty
-\def \a@bl {\sk@@ , 0 } % empty
-\def \a@bm {\sk@@ , 0 } % empty
-\def \a@bn {\sk@@ , 0 } % empty
-\def \a@bo {\sk@@ , 0 } % empty
-\def \a@bp {\sk@@ , 0 } % empty
-\def \a@bs {\sk@@ , 0 } % empty
-\def \a@bt {\sk@@ , 0 } % empty
-\def \a@bu {\sk@@ , 0 } % empty
-\def \a@bv {\sk@@ , 0 } % empty
-\def \a@bw {\sk@@ , 0 } % empty
-\def \a@bx {\sk@@ , 0 } % empty
-\def \a@by {\sk@@ , 0 } % empty
-\def \a@bz {\sk@@ , 0 } % empty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% atrans.sty
-
-\let \tr@@zdmg \tr@zdmg
-
-\iffalse % inserted in 3.11f
-\def \tr@zdmg {% patches for Uzbek
-\tr@def \a@H {\"a}%
-\tr@def \a@ab {\"e}%
-}
-\fi % inserted in 3.11f
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ascan.sty
-
-\def \setcode #1{% switch the input encoding
-\lowercase {\def \sc@code {#1}%
-\ifx \sc@code \sc@oldcode \else
-\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}%
-\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }%
-%\let \sc@oldcode \sc@code }
-\global\let \sc@oldcode \sc@code }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-
-\def \hah@urd #1{% wavy hah
-% c2
-\if\is@end@char #1\set@act\sk@h % isolated round h
-\fi
-\ifx #1\a@h
-\@mod@actfalse % no mark below
-\fi
-\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {16.11.2003} \def \a@level {d+UCS}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% witbhs.sty
-
-\if\AND{\isx\bhscode\undefined}{\isx\buckatcode\undefined}\else
-\def \test@@token {\iftest@command \tracingmacros 0 \fi
-\futurelet \next@token \test@space }
-
-\let \test@token \test@@token % get next token
-
-\xpa\def \xpa\kill@space \space {% gobble LTR space
-\futurelet \next@token \test@space }
-
-\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space
-\futurelet \next@token \test@space }
-
-\def \test@space {% check for LTR space
-\if \space \nxp\next@token \xpa\kill@space
-\else \xpa\test@sp@ce \fi }
-
-\def \test@sp@ce {% check for RTL space
-\if \sp@ce \nxp\next@token \xpa\kill@sp@ce
-\else \xpa\next@command \fi }
-
-\long\def \test@special #1{% check for special cases
-\ifcat \bgroup \nxp \next@token % arabic group
- \def \next {\arab@group {#1}}\else
-\if\is@in@set #1\a@first % normal case
- \def \next {\test@word #1}\else
-\if \relax \nxp #1% % command
- \def \next {\test@command #1}\else
-\ifcat \nxp ~\nxp #1% % active character
- \def \next {\test@command #1}\else
-\if \nxp <\nxp #1\unarab@codes % Roman insert
- \let \next \test@insert \else
-\ifx $#1\unarab@codes % Math insert
- \let \next \test@math \else
- \def \next {\test@word #1}% % normal case
-\fi\fi\fi\fi\fi\fi \next }
-
-{\catcode `\^^a0 12
-\gdef \test@word #1 {% process next RTL word
-\a@test@word #1^^a0\@@ }
-
-\gdef \a@test@word #1^^a0#2\@@ {% process next RTL word
-\ifarab \putwordb@x {\arab@item #1\@@ }\fi
-\a@spacetrue \a@showinput {#1}%
-\ifx \relax #2\relax \def \next {\test@token }\else
-\def \next {\test@token #2 }\fi
-\next }
-}% catcode ^^a0
-
-\fi % witbhs
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabaux.sty
-
-\def \tr@ceoff {% suspend temporarily, local, no nesting!
-\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros \relax }%
-\tracingmacros 0 }
-
-\def \notr@ce {% suspend temporarily, for NFSS only, no nesting!
-\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros \relax}%
-\tracingmacros 0 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {08.12.2003} \def \a@level {e}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aboxes.sty
-
-\def \put@tie {% deposit ties between characters
-\setbox0 \hbox {\char \the\act@tie }%
-\setbox2 \hbox {\char \the\act@tie \/}%
-\ifdim \a@disp = \z@ \unhcopy0
-\else \raise\a@disp \hbox {\unhcopy0 }\fi
-\global\advance\a@disp \wd2 \global\advance\a@disp -\wd0 }
-
-\def \set@high@act {% prepare raising of actual character
-\global\advance \a@disp \a@dsp \global\@high@acttrue }
-
-\def \set@low@act {% lower actual character
-\global\advance \a@disp -.25ex }
-
-\def \set@loww@act {% lower actual character
-\global\advance \a@disp -.50ex }
-
-\def \set@lowww@act {% lower actual character
-\global\advance \a@disp -.75ex }
-
-\def \fix@act@box {% fixup position and set tatwil
-\if@high@act \global\advance\a@disp -\a@dsp \global\@high@actfalse \fi
-\global\advance\a@min@dp \a@ic \global\advance\a@disp \a@ic
-\if@tat \put@tat \@tatfalse \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\ifx \a@patchlevel \undefined % load only the first time
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% atrans.sty
-
-\iffalse
-\def \tr@zdmg {% patches for Uzbek
-\tr@@zdmg
-\tr@def \a@H {\"a}%
-\tr@def \a@ab {\"e}%
-}
-\fi
-\let \tr@zdmg \tr@@zdmg % nullify problems in version 3.11d
-
-\gdef \tr@@aword #1{% transcribe rest of word
-\let \tr@old \tr@act \def \tr@act {#1}%
-\case #1\of
-{ >{\@gobble }
- \cap {\c@ptrue \tr@aword }
-% |"^\a@e{\tr@aword }
- |"^{\tr@aword }
- -{-\tr@aword }
-% XlEeQ{\csname tr@@\string #1\endcsname }
- TXlEeQ{\csname tr@@\string #1\endcsname }
- \a@a NUW{\setc@p #1\kill@alif }
- P{\tr@P \tr@aword }
- aiu{\tr@wasla #1}
- \a@Ze{\xpa\tr@aword \tr@old }
-\default {\@vocalfalse
- \ifcat \nxp #1-#1\else \setc@p #1%
- \fi \tr@aword }
-}\endcase }
-
-\gdef \tr@@T #1{\@vocalfalse
-\ifx #1|h\let \next \tr@aword \else
-t\def \next {\tr@aword #1}\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\fi
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebchrs.sty
-
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \def@judchars {% define character macros for Judeo-Arabic
-\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
-\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
-\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
-\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
-\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
-\gdef \tc@H {\act@cd \hc@hh } % .h
-\gdef \tc@R {\act@cd \hc@j } % .g
-\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
-\gdef \tc@V {\act@cd \hc@tt } % .t
-\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
-\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
-}}% end of dynamic definitions
-
-\fi % Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {12.02.2004} \def \a@level {f}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% cp1256.sty
-
-\ifx \awinatcode \undefined \else
-
-\def \set@awin {% select the CP 1256 scanner
-\let \sc@beg \awin@beg \let \sc@word \awin@word
-\let \sc@back \sc@@back \let \sc@endscan \awin@endscan
-\global\let \a@scan \awin@scan \setawin@codes
-\awin@catcodes \yahdots
-\global \a@paren {}%
-\a@message {input encoding set to Windows CP 1256 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding
-arabwin\set@awin cp1256\set@awin }
-
-\gdef \awin@beg #1{% start CP 1256 scanner
-\h@mzafalse \iz@fetfalse \yahdots \@ssimfalse
-\novocalize % because of explicit quoting
-\ifx #1"\def \next {\awin@lquote}\else
-\ifx #1^^c7\def \next {\awin@alif}\else
-\def \next {\awin@word #1}\fi\fi \next }
-
-\gdef \awin@lquote {% initial quote
-\def \sc@char {`}\sc@put \awin@beg }
-
-\gdef \awin@dquote {% double quote, intermediate version
-%\def \sc@char {\a@dq}\sc@put \awin@word }
-\def \sc@char {\nxp\a@dq }\sc@put \awin@word }
-
-\gdef \awin@dquote {% right quote
-\def \sc@char {'}\sc@put \awin@word }
-
-\fi % cp1256
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-
-\long\def \test@special #1{% check for special cases
-%\if \bgroup \nxp \next@token % arabic group
-\ifcat \bgroup \nxp \next@token % arabic group
- \a@@putword \def \next {\arab@group {#1}}\else
-\if \relax \nxp #1% % command
- \if\is@in@set #1\a@accent % known to scanner
- \a@@append {#1}\def \next {\get@token }%
- \else % general command
- \a@@putword \def \next {\test@command #1}%
- \fi \else
-%\if \sp@ce \nxp \next@token % RTL space
-% \a@@putword \def \next {\get@token }\else
-\ifnum `#1 > 127 % inputenc command
- \a@@append {#1}\def \next {\get@token}\else
-\ifcat \nxp ~\nxp #1% % active character
- \a@@putword \def \next {\test@command #1}\else
-\if \nxp <\nxp #1\unarab@codes % Roman insert
- \a@@putword \let \next \test@insert \else
-\ifx $#1\unarab@codes % Math insert
- \a@@putword \let \next \test@math
-\else \a@@append {#1}\def \next {\get@token}% % normal case
-\fi\fi\fi\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ascan.sty
-
-{\arab@codes % because of special characters
-
-\gdef \t@b@g #1{% start \ArabTeX scanner
- \def \next {\sc@word {#1}}\def \sc@char {@}%
-\ifcat a\nxp #1\else % letter
-\apply \set@next \tocase #1\of
-{ \@{\sc@endscan } % finished
- '{\t@rquote }
- `{\t@lquote }
- *{\t@star }
- +{\t@plus }
- ={\t@equ }
-\default {\sc@word {#1}}
-}\endcase
-\fi \next }
-
-\gdef \t@w@rd #1{% transform input into internal notation
- \def \next {\sc@word }%
-\ifx #1\@\def \next {\sc@endscan }\else % finished
-\ifcat \nxp #1a%
- \ifx #1a\def \next {\t@aa }\else % test for aa -> A
- \ifx #1n\def \next {\t@nn }\else % test for ng, ny
- \edef \sc@char {\csname sc@#1\endcsname }% letter
- \ifx \sc@char \relax \def \sc@char {#1}% undef letter
- \fi
- \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
- \fi
- \fi\fi \else % other character
-\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
-\ifx #1'\def \next {\t@hamza }\else % hamza
- \def \sc@char {#1}%
-\apply \set@next \tocase #1\of
-{~\@ldtie{\t@tie }
- .{\t@dot }
- ,{\t@comma }
- -{\t@minus }
- `{\t@ain }
- "{\t@dquote }
- :{\t@colon }
- ^{\t@up }
- _{\t@down }
- |{\t@bar }
- *{\t@shadda }
- +{\t@madda }
- ={\t@sukun }
-\default {\t@w@@rd {#1}}
-}\endcase
-\fi\fi\fi\fi \next }
-
-} % \arab@codes
-
-\def \t@star {\sc@dep *}
-\def \t@plus {\sc@dep +}
-\def \t@equ {\sc@dep =}
-
-\let \sc@beg \t@b@g % apatch only
-\let \sc@word \t@w@rd % apatch only
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-
-\def \a@parse #1>{% parse token sequence into syllables
-\iftest@parse \tracingmacros = 1
-\iftest@scan \else \a@verb (#1)>\fi\fi
-\csname a@parse@hook\endcsname
-\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
-\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
-\iftest@parse \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@revwd )>\fi }
-
-\def \sv@@I #1{% long i
-\ifx #1N\def \next {\sv@Zi }\else
-\ifk@sh \put@syl \put@con y\add@kasraspec
- \put@syl \def \next {\syl@con #1}%
-\else \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }%
-\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% verses.sty
-
-\ifx \verseatcode \undefined \else
-
-% define some verse dimensions, verses will be centered
-\def \setversedim #1#2{% set length of half-verse, separation
-\a@hvlen #1\relax \a@hvsep #2\relax
-\ifx \LaTeX \undefined \a@hvind \hsize
-\else \a@hvind \textwidth \fi
-\advance \a@hvind -\a@hvsep
-\divide \a@hvind 2 \advance \a@hvind -\a@hvlen }
-
-\def \connverses #1#2#3{% first half-verse, connection, second half-verse
-\cond{\ifdim 0pt > \a@hvind }%
-{\spreadbox \a@hvlen {#1}\par \hfill }% first block
-{\noindent \hspace \a@hvind \spreadbox \a@hvlen {#1}}\fi
-\spreadbox \a@hvsep {#2}% separator
-\spreadbox \a@hvlen {#3}% second block
-\par }
-
-\fi % verses.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% awrite.sty
-
-\def \a@@write #1>{% Arabic output
-\iftest@write \tracingmacros 1
-\iftest@parse \else \a@verb (#1 )>\fi\fi
-\csname a@write@hook\endcsname
-\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi
-\iftest@write \tracingmacros 0 \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-
-\ifx \a@hebr \undefined \else
-
-\def \heb@write #1>{% Hebrew output routine
-\iftest@write \tracingmacros = 1
-\iftest@parse \else \a@verb (#1)>\fi\fi
-\csname a@write@hook\endcsname
-\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
-\iftest@write \tracingmacros = 0
-\fi }
-
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {26.02.2004} \def \a@level {g}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ascan.sty
-
-\def \sc@restore {% restore scanner defaults
-\let \vocalize \v@calize \let \fullvocalize \fullv@calize
-\let \sc@beg \t@b@g \let \sc@word \t@w@rd
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\global\let \a@scan \a@@scan \seta@codes
-\let \arab@codes \a@arab@codes
-\let \unarab@codes \a@unarab@codes }
-
-\def \t@comma #1{% after ,
-\apply \set@char \tocase #1\of
-{ a{a\nxp \a@H }
- A{\nxp \a@a \nxp \a@H }
- c{\ift@rk J\else \nxp \a@c \fi }
- d{\ifp@sht \nxp \a@aA \else
- \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi }
- e{e\nxp \a@H }
- g{\nxp \a@L }
- h{\nxp \a@h }
-% n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi }
- n{\ifs@nd \nxp \a@an \else \nxp \a@m \fi }
- r{\ifp@sht \nxp \a@q \else
- \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi }
- s{\ift@rk x\else \nxp \a@s \fi }
- t{\ifp@sht \nxp \a@v \else
- \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi }
- z{\ift@rk D\else \nxp \a@z \fi }
-}\endcase \t@tail ,#1}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% utf8.sty
-
-\ifx \utfatcode \undefined \else
-
-\gdef \set@utfc {% select the UTF-8 scanner
-\global\let \a@scan \utfc@scan
-\let \sc@beg \utf@beg
-\let \sc@word \utf@word
-\global\a@digits = {0123456789}%
-\global\a@first = {ÍÎÏ•’}%
-\catcode `á 11
-\a@message {input encoding set to UTF-8 conventions}}
-
-\fi % utf8.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% bhs.sty
-
-\ifx \bhsatcode \undefined \else
-
-% dynamic definitions for BHS Hebrew coding
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\"=12 \catcode `\&=12 \catcode `\$ 12
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setbhs@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d}
-\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h}
-\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l}
-%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p}
-\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p}
-\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
-%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X}
-\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X}
-\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ}
-\a@digits = {0123456789} \a@paren = {[]}
-\a@first = {)+(##&$":.,*0123456789}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for BHS
-
-{\arab@codes
-\catcode `\& 12 \catcode `\$ 12
-
-\gdef \bhs@beg #1#2{% start BHS scanner
-\@ssimfalse \def \next {\bhs@word #1#2}%
-\ifx #1\@\def \next {\sc@endscan #2}\else % finished
-\ifx #2\@\def \next {\bhs@testpara #1#2}\else
-\ifx #2?\def \next {\bhs@testpara #1#2}\else
-\fi\fi\fi \next }
-
-\gdef \bhs@word #1#2{% transform input into internal notation
- \def \next {\bhs@word #2}%
-\ifx #1\@\def \next {\sc@endscan #2}\else % finished
-\ifx #1]\def \next {\bhs@word }\else
-\ifx #10\def \next {\bhs@zero #2}\else
-\ifx #17\def \next {\bhs@seven #2}\else
-%
-\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
-\ifx #1?\def \next {\bhs@query #2}\else
-\ifx #1:\def \next {\bhs@colon #2}\else
-\ifx #1|\def \sc@char {|}\sc@put \else
-%
-\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else
-\ifx #1'\def \sc@char {'}\sc@put \else
-\ifx #1)\def \sc@char {Q}\sc@put \else
-\ifx #1+\def \sc@char {C}\sc@put \else
-%
-\ifx #1(\def \sc@char {P}\sc@put \else
-\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else
-\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else
-\ifx #1$\def \sc@char {x}\sc@put \else
-%
-\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else
-\ifx #1-\def \sc@char {B}\sc@put \else
-\ifx #1*\def \sc@char {*}\sc@put \else
-\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
- \sc@put
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-\next }
-} % arabcodes
-
-\fi % bhs.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% cp1255.sty
-
-\ifx \hwinatcode \undefined \else
-
-\def \hwin@catcodes {% assignments for CP 1255
-\countdef \is@m=2 \is@m = 192 \is@n = 64
-\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^^a0 12 }
-
-{\hwin@catcodes
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \sethwin@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I}
-\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O}
-\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E}
-\def \sc@^^c6 {"e} \def \sc@^^c7 {"a}
-\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o}
-\def \sc@^^ca {L} \def \sc@^^cb {"u}
-\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|}
-\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo}
-
-\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze}
-\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:}
-\def \sc@^^d4 {"\n@xp\a@Zi} \def \sc@^^d5 {w-w}
-\def \sc@^^d6 {wy} \def \sc@^^d7 {y-y}
-\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@}
-\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@}
-
-\def \sc@M {M} %\def \sc@N {N}
-\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
-\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
-\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
-\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
-
-\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
-\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
-\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@}
-\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@}
-\a@digits = {0123456789}
-\a@paren = {()[]}
-\a@first = {"`^^e6}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\fi % cp1255.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx \a@hebr \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hescan.sty
-
-\def \hwin@catcodes {% assignments for CP 1255
-\countdef \is@m=2 \is@m = 192 \is@n = 64
-\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^^a0 12 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% heparse.sty
-
-\def \sv@ay {% Yiddish ay
-\put@syl \put@con \a@h \v@ctrue \add@fatha \put@syl \test@patf }
-
-\def \sv@ey {% Yiddish ey
-\put@syl \put@con \a@h \put@syl \test@patf }
-
-\def \sv@oy {% Yiddish oy
-\put@syl \put@con \a@p \put@syl \test@patf }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebchrs.sty
-
-\tc@def \a@h {\act@cd \hc@ey } % yod yod
-\tc@def \a@p {\act@cd \hc@oy } % waw yod
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % Hebrew
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% verses.sty
-
-\ifx \verseatcode \undefined \else
-
-%\newdimen \a@@hvlen
-\csname newdimen\endcsname \a@@hvlen
-
-% define some verse dimensions, verses will be centered
-\def \setversedim #1#2{% set lengths of half-verse, separation
-\ifx \LaTeX \undefined \a@hvind \hsize
-\else \a@hvind \textwidth \fi
-\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
-\ifx [#2\def \next {\set@verseI [}\else
-\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
-
-\def \set@verseI [#1]{% optional parameter
-\a@@hvlen #1\relax \set@@verse }
-
-\def \set@@verse #1{% separation
-\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
-\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
-
-\def \connverses #1#2#3{% first half-verse, connection, second half-verse
-\cond{\ifdim 0pt > \a@hvind }%
-{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
-{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
-\spreadbox \a@hvsep {#2}% separator
-\spreadbox \a@@hvlen {#3}% second block
-\tracingmacros 0
-\par }
-
-\def \a@c@halfverses #1#2{% optional parameter?
-%\tracingmacros 1
-\cond{\ifx [#2}{\half@verses {#1}[}%
-{\half@verses {#1}[\hfill]{#2}}\fi }
-
-\def \half@verses #1[#2]#3{% first[mid]second
-\test@token \connverses {#1}{#2}{#3}}
-
-\fi % verses.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% utfcode.sty
-
-\ifx \utfatcode \undefined \else
-
-\def \utf@dvii #1{% segment D7
- \u@lb `#1\relax \advance \u@lb -128
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char
- {\ifcase \u@lb
- K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or
- \fi }%
-\or \advance \u@lb -8 \edef \sc@char {}%
-\or \advance \u@lb -16 \edef \sc@char
- {\ifcase \u@lb
- Q\or b\or g\or d\or h\or w\or z\or X\or
- \fi }%
-\or \advance \u@lb -24 \edef \sc@char
- {\ifcase \u@lb
- C\or y\or k\or k\or l\or m\or m\or n\or
- \fi }%
-\or \advance \u@lb -32 \edef \sc@char
- {\ifcase \u@lb
- n\or s\or P\or p\or p\or S\or S\or q\or
- \fi }%
-\or \advance \u@lb -40 \edef \sc@char
- {\ifcase \u@lb
- r\or \n@xp\a@S \or t\or \or \or \or \or \or
- \fi }%
-\or \advance \u@lb -48 \edef \sc@char
- {\ifcase \u@lb
-% w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or
- \n@xp\a@w \or \n@xp\a@p \or \n@xp\a@h \or '\or
- ''\or \or \or \or
- \fi }%
-\or \advance \u@lb -56 \edef \sc@char
- {\ifcase \u@lb
- \or \or \or \or \or \or \or "|\or
- \fi }%
-\fi \utf@next }
-
-\fi % utfcode.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% yiddish.sty
-
-\ifx \yidatcode \undefined \else
-
-\def \yid@t #1{% ts ?
-\ifx #1s\def \next {\yid@ts }\else
-\def \sc@char {C}\def \next {\yid@word #1}\sc@put
-\fi \next }
-
-\def \yid@ts #1{% tsh ?
-\ifx #1h\def \sc@char {C\nxp\a@S}\def \next {\yid@word }\else
-\def \sc@char {S}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\fi % yiddish.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {15.03.2004} \def \a@level {h}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\ifx \a@patchlevel \undefined % first patching run
-
-\csname newtoks\endcsname \a@oldoutput
-\csname newbox\endcsname \a@oldbox
-\csname newbox\endcsname \a@newbox
-\csname newdimen\endcsname \a@prevdepth
-
-\def \a@@Rinsert #1{% RL insertion inside Ltext
-%\tracingmacros 1
-\ifshow \a@@verb {#1}\fi % verbating listing
-\ifarab \a@Rinsert {#1}\fi % arabic writing
-\iftrans \set@transfont \trans@text #1 \end \/\fi
-\ifnum \tracingarab > \@ne \message {>}\fi
-\unskip \egroup }
-
-\def \a@Rinsert #1{% put a sequence of RL words into Ltext
-%\leavevmode % go to hmode if not there already
-\ifinner \a@sequence {#1}% inside a \hbox: append
-\else \a@@Rsplit {#1}% splice into the current paragraph
-\fi }
-
-\def \a@box@aparm {% Arabic parameters for vbox
-\let \end \relax \def \next@command {\test@special}\transfalse
-\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
-\showfalse \spreadtrue \a@hsize \a@Lwidth
-\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
-\leftskip \z@ \rightskip \z@
-%\advance \a@hsize 20pt % TENTATIVE
-\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
-\def \tat@skip {0.04ex plus 0.5ex }}
-
-\def \a@box@rparm {% Roman parameters for vbox
-\hbadness 10000 \tolerance 5000
-\parskip \z@ \parfillskip \z@ plus 1fil \relax \vskip \a@vglue }
-
-\def \a@@Rsplit #1{% splice RL words into the current paragraph
-\tracingmacros 0
-\bgroup \global\a@oldoutput = \output
-$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
-$${\endgraf }%
-\ifinner \a@back@line \else
-\global\output = {\a@newoutput }\eject
-\fi \vskip -\parskip \prevdepth \a@prevdepth
-\ifvoid \a@oldbox
-\else \advance \a@lines -1 \setbox\a@oldbox \hbox
-{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
-\putlineb@x {\copy\a@oldbox }\a@spacefalse
-\test@token #1 \end \unskip \unskip
-\vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@lines
-\ifdim \wd\a@newbox = 0pt \unhbox \tempb@x
-\else \unhbox \a@newbox
-\ifdim \wd\tempb@x = 0pt
-\else \space \ins@skip \unhbox \tempb@x
-\fi\fi \penalty -9999
-\ifvbox \Rinsertb@x \break \a@Runpack \fi
-\egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \a@back@line {% skip back
-\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
-\dimen2 \lastskip \unskip \unskip \unpenalty
-\global\setbox \a@oldbox \lastbox
-\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
-\advance\dimen0 -\ht\a@oldbox \fi
-\advance\dimen0 -\dimen2 \global\a@prevdepth \dimen0 \unskip }%
-
-\gdef \a@newoutput {% intermediate output routine
-\global\output = \a@oldoutput
-%\showbox 255
-\setbox 255 \vbox {\unvbox 255 % put back to MVL
-\a@back@line }\unvbox 255 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fi % first run
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {29.04.2004} \def \a@level {i2}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% buck.sty
-
-\ifx \buckatcode \undefined \else
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setbuck@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@}
-\def \sc@B {@} \def \sc@C {J} \def \sc@G {g} \def \sc@I {Qi}
-\def \sc@J {j} \def \sc@L {@} \def \sc@M {@} \def \sc@O {Qa}
-\def \sc@P {p} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {Qw}
-\def \sc@V {v} \def \sc@W {Qw} \def \sc@X {@}
-
-\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw}
-\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b}
-\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G}
-\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F}
-\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x}
-\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z}
-\def \sc@E {P} \def \sc@g {R} \sc@def _ {|B}
-\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l}
-\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w}
-\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN}
-\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i}
-%\sc@def ~ {@} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
-\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
-\sc@def ^ {"'}
-\sc@def = {"\n@xp \a@ZE }
-
-\a@digits = {0123456789} \a@paren = {()[]}
-\a@first = {"`}
-\setbuck@codes@hook
-\globaldefs=0 }
-\global\let \setbuck@codes@hook \relax
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\catcode `\[ 1 \catcode `\{ 11
-\gdef \buck@beg #1[% start the TB scanner
-\h@mzafalse \iz@fetfalse \novocalize \@ssimfalse
- \def \next [\buck@word #1}%
-\ifx #1\@ \def \next [\sc@endscan }\else % finished
-\ifx #1{\def \next [\buck@lbrace }\else
-\ifx #1"\def \next [\buck@lquote }\else
-\ifx #1A\def \next [\buck@alif }\else
-\fi\fi\fi\fi \next }
-} % catcodes 1 and 11
-
-{\catcode `\^^M=13 \catcode `\~ 11 %
-\gdef \buck@word #1#2{% transform input into internal notation
- \def \next {\buck@word #2}%
-\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
-\ifx #1-\def \next {\buck@minus #2}\else %
-\ifx #1"\def \next {\buck@rquote #2}\else %
-\ifx #1y\def \next {\buck@yah #2}\else %
-\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character
-\ifx #1#2\def \next {\buck@two #1}\else %
- \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
- \else \def \sc@char {\nxp #1}%
- \fi %
- \sc@put %
-\fi\fi\fi\fi\fi\fi \next }%
-} % catcodes 13 and 11
-
-\def \buck@alif #1{% specials?
-\def \next {\buck@word }%
-\if \nxp #1=\def \sc@char {QA}\sc@put \else
-\if \nxp #1@\def \sc@char {"}\sc@put \else
-\if \nxp #1^\def \sc@char {Qa}\sc@put \else
-\if \nxp #1_\def \sc@char {Qi}\sc@put \else
-\def \sc@char {A}\def \next {\buck@word #1}\sc@put
-\fi\fi \fi\fi \next }
-
-\def \buck@yah #1{% hamza?
-\def \next {\buck@word }%
-\if \nxp #1^\def \sc@char {Qy}\sc@put \else
-\def \sc@char {y}\def \next {\buck@word #1}\sc@put
-\fi \next }
-
-\def \set@buck {% substitute new scanner
-\let \sc@beg \buck@beg \let \sc@word \buck@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\global\let \a@scan \a@@scan \setbuck@codes
-\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes
-\let \test@special \buck@special
-\message {input coding set to Tim Buckwalter's encoding conventions}}
-
-\def \buck@cat {% change catcodes
-\catcode `\# 11 \catcode `\= 11 \catcode `\^ 11 \catcode `\~ 11
-\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11
-\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11
-\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 }
-
-\def \buck@recat {% change catcodes back
-\catcode `\# 6 \catcode `\= 12 \catcode `\^ 7 \catcode `\~ 13
-\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4
-\catcode `\< 12 \catcode `\} 2 \catcode `\* 12 \catcode `\$ 3
-\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 }
-
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-
-\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
-\case #1\of
-{ |{\put@con Q}
- A{\put@con a\add@madda \@sukfalse }
- y{\put@con Y\add@hamza \ifqur@n \add@hamzalow \fi }
- u{\put@con w\add@hamza }
- i{\put@con a\add@hamza \add@hamzalow }
-\default {\put@con #1\add@hamza }
-}\endcase \syl@voctest }
-
-\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2
-\case #1\of
-{ B{\togglev@c \add@sukun \put@syl \syl@con #1}
- "{\togglev@c \add@sukun \put@syl \syl@beg }
- |{\syl@@quote@voc }
- '{\add@hamza \syl@voctest }
-\default {\togglev@c \syl@voctest #1}% vowel: sukun
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-
-\ifx \a@hebr \undefined \else
-
-\ifx \a@patchlevel \undefined % load only the first time
-\else
-\global\let \@@set@hcls \set@hcls
-
-\gdef \set@hcls {%
-\@@set@hcls
-\global\let \h@putvowel \h@put@@vowel
-}
-
-\fi
-
-\gdef \h@put@@vowel #1{% vowel mark
-\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
-\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
-%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
-\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.80}\else % final kaph
-\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
-\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
-\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
-\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
-\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
-\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
-\fi\fi\fi\fi\fi\fi\fi\fi
-\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
-\advance \dimen@ -1\h@p
-\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
-
-\fi % a@hebr
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {17.05.2004} \def \a@level {j}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\def \a@RL {% RTL insertion inside LRtext
-\ifaRL \else \aRLtrue
- \let \a@RLpar \par % prepare for normal baselines
- \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
- \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
-\fi
-\ifhmode \lineskiplimit -.9\baselineskip
-\fi % enforce uniform baselines
-\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
-
-\def \a@Rinsert #1{% put a sequence of RL words into Ltext
-\leavevmode % go to hmode if not there already
-\ifinner \a@sequence {#1}% inside a \hbox: append
-\else \a@@Rsplit {#1}% splice into the current paragraph
-\fi }
-
-\def \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
-$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
-$${\endgraf }%
-\ifinner \a@back@line \else
-\global\output = {\a@newoutput }\eject
-\fi \vskip -\parskip \global\prevdepth \a@prevdepth
-\ifvoid \a@oldbox \else
-\advance \a@lines -1 \setbox\a@oldbox \hbox
-{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
- \putlineb@x {\copy\a@oldbox }\a@spacefalse
- \test@token #1 \end \unskip \unskip
- \vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@lines \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else \space \ins@skip
-\fi\fi \unhbox \tempb@x \penalty -9999
-\ifvbox \Rinsertb@x \break \a@Runpack \fi
-\egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alatex.sty
-
-\def \a@endx {\if@ignore \@ignorefalse \xpa\ignorespaces \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {24.05.2004} \def \a@level {k}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-
-\def \all@false {% reset language code to default
-\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse
-\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse \k@shfalse
-\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse
-\let \vocalize \v@calize \let \fullvocalize \fullv@calize
-\arab@output \catcode`\<=\active }
-
-\pdef \setuighur {% switch language specific processing
-\let \vocalize \novocalize \let \fullvocalize \novocalize
-\novocalize \all@false \@ssimfalse \h@mzafalse
-\u@ghtrue \def \a@defaultfont {\setnash }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\def \a@RL {% RTL insertion inside LRtext
-\ifaRL \else \aRLtrue
- \let \a@RLpar \par % prepare for normal baselines
- \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
- \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
-\fi
-\lineskiplimit -.9\baselineskip % enforce uniform baselines
-\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
-
-\def \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
-$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
-$${\endgraf }%
-\ifinner \a@back@line \else
-\global\output = {\a@newoutput }\eject
-\fi \global\prevdepth \a@prevdepth
-\ifvoid \a@oldbox \else \advance \a@lines -1
-\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
- \unskip \unskip \unpenalty \unpenalty }%
-\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
- \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
- \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@lines \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else
-\ifdim \wd\tempb@x = 0pt \else
- \space \LRskip
-\fi\fi\fi \unhbox \tempb@x
-\ifvbox \Rinsertb@x \break \a@Runpack \fi
-\egroup }
-
-\gdef \a@newoutput {% intermediate output routine
-\global\output = \a@oldoutput
-%\showbox 255
-\setbox 255 \vbox {\unvbox 255 % put back to MVL
-\a@back@line }\unvbox 255 }
-
-\def \a@Runpack {% unpack all lines from the insertion
-\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
-\ifvbox \Rinsertb@x \repeat \unpenalty \RLskip }
-
-\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (right)
-\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (left)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@Linsert #1{% splice Ltext into RL paragraph
-\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
-\putwordb@x {\LRskip }\a@spacetrue \arab@codes
-\tracingmacros 0
-\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {22.06.2004} \def \a@level {l}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alists.sty
-
-\def \a@c@item
-{\@ifnextchar [{\a@@item }{\@noitemargtrue
-\expandafter \a@@item \expandafter [\@itemlabel ]}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% awrite.sty
-
-\let \ac@high \relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabrep.cls
-
-\at@arabtext {% switch to Arabic terms
- \def\labelenumi{\theenumi\nospace-}
- \def\labelenumiii{\theenumiii\nospace)}
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {23.01.2005} \def \a@level {m}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabext.sty
-
-\ifx \a@@figure \undefined \else
-
-\def \a@@figure {% figure within Arabic environment
-\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }%
-\a@par \figure }
-
-\def \a@@table {% table within Arabic environment
-\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }%
-\a@par \table }
-
-\fi
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {06.04.2005} \def \a@level {n}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-% for use with abidir.sty version 3.12a:
-\csname newcount\endcsname \a@lines
-\csname newdimen\endcsname \a@Lwidth
-
-%\newdimen \a@prevdepth
-%\newdimen \a@displaywidth
-%\newcount \a@prevgraf
-%\newtoks \a@oldoutput
-
-\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (right)
-\def \LRskip {\hskip 1em plus 0.1em }% before RL insertion (left)
-
-\def \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
-\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
-$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
-$${\endgraf }%
-\ifinner \a@back@line \else
-\global\output = {\a@newoutput }\eject
-\fi \global\prevdepth \a@prevdepth
-\ifvoid \a@oldbox \else \advance \a@prevgraf -1
-\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
- \unskip \unskip \unpenalty \unpenalty }%
-\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
- \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
- \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else
-\ifdim \wd\tempb@x = 0pt \else
- \space \LRskip
-\fi\fi\fi \unhbox \tempb@x
-\ifvbox \Rinsertb@x \break \a@Runpack
-\else \RLskip
-\fi
-\egroup }
-
-\gdef \a@back@line {% skip back over empty display
-\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
-\dimen2 \lastskip \unskip \unskip \unpenalty
-\global\setbox \a@oldbox \lastbox % last line
-\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
-\advance\dimen0 -\ht\a@oldbox \fi
-\advance\dimen0 -\dimen2 % compute \prevdepth
-\global\a@prevdepth \dimen0 \unskip }%
-
-\gdef \a@newoutput {% intermediate output routine
-\global\output = \a@oldoutput
-%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
-\setbox 255 \vbox {\unvbox 255 % put back into MVL
-\a@back@line }\unvbox 255 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% atrans.sty
-% because of an incompatible change in Plain 3.1415926
-
-\gdef \x@s #1{\oalign{#1\crcr\hidewidth \nsh@ft{34}% accent for _h
- \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}}
-
-\gdef \x@x #1{\oalign{#1\crcr\hidewidth \nsh@ft{29}% accent for .s in Urdu
- \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}}
-
-\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
- \kern.0156\dimen\z@} % positive kern for slant
-
-\def \rsh@ft #1#2{\ish@ft{#1}#2\nsh@ft{#1}}
-
-\def \nsh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
- \kern-.0156\dimen\z@} % compensate for slant in lowered accents
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {25.01.2006} \def \a@level {o}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% version 3.11i::abidir.sty
-
-%\csname newbox\endcsname for \newbox etc. (inner!)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aligs.sty
-
-\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
-% c1 m1 * c2 m21 + m22 * c3
-\ifu@gh \ifx #1\a@H
- \else \set@act \sk@h@u
- \fi
-\else
-\ifm@lay \else
-\ifurd@ \set@act \sk@h@s \hah@urd #3% round h?
- \ifx #1T\else
- \ifx #3l\test@allah {#4}{#6}\else
- \ifx #1\a@H
- \else \set@act\sk@h@u
- \if\is@end@char #3%
- \else \set@loww@act \global\a@min 1
- \fi
- \fi\fi\fi
-\else
-\ifx #3l\test@allah {#4}{#6}\else
-\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
-\else
-\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
-\else \gim@test #6\put@tatwil
-\fi
-\fi\fi\fi\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {08.02.2006} \def \a@level {p}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\csname newdimen\endcsname \a@displaywidth
-
-\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (left)
-
-\def \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
-\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
-$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
-$${\par }%
-\ifinner \a@back@line \else
-\global\output = {\a@newoutput }\eject
-\fi \global\prevdepth \a@prevdepth
-\ifvoid \a@oldbox \else \advance \a@prevgraf -1
-\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
- \unskip \unskip \unpenalty \unpenalty }%
-\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
- \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
- \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else
-\ifdim \wd\tempb@x = 0pt \else
- \space \LRskip
-\fi\fi\fi \unhbox \tempb@x
-\ifvbox \Rinsertb@x \break \a@Runpack
-\else \RLskip
-\fi
-\egroup }
-
-\def \a@box@aparm {% Arabic parameters for vbox
-\let \end \relax \def \next@command {\test@special}\transfalse
-\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
-\showfalse \spreadtrue \a@hsize \a@displaywidth
-\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
-\leftskip \z@ \rightskip \z@
-%\advance \a@hsize 20pt % TENTATIVE
-\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
-\def \tat@skip {0.04ex plus 0.5ex }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aoutput.sty
-
-\def \put@ab@x {% deposit line
-\ifhmode \unskip {\par }\penalty \clubpenalty
-\parindent \z@ \parskip \z@ \else
-\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
-\fi\fi
-\begingroup \parfillskip 0pt plus 1fill
- \leftskip \z@ \rightskip \z@ \noindent
- \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
- \box\a@tempb@x \par
-\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
-\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
-\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% altxext.sty
-
-\ifx \a@olddisp \undefined
-\let \a@olddisp \[ % for lineno.sty
-\ifx \linenumbers \undefined \else
- \def \[{\par\nobreak\noindent \a@olddisp}
- \all@w@ne \linelabel
-\fi
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% for acmd.sty in version 3.11 only!
-
-\def \a@c@smallskip {\a@@par \smallskip \test@token }
-\def \a@c@medskip {\a@@par \medskip \test@token }
-\def \a@c@bigskip {\a@@par \bigskip \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aparse.sty
-
-{\catcode `\< = \@other % better make sure
-\gdef \a@parse #1>{% parse token sequence into syllables
-\iftest@parse \tracingmacros = 1
-\iftest@scan \else \a@verb (#1)>\fi\fi
-\csname a@parse@hook\endcsname
-\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
-\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
-\iftest@parse \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@revwd )>\fi }
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {01.03.2006} \def \a@level {q}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% alatex.sty
-
-\ifx \linenumbers \undefined
-\global\let \linenumbers \relax \fi
-\global\let \ifLineNumbers \iffalse
-% CAUTION: must be in \outer context!
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\gdef \a@Rinsert #1{% put a sequence of RL words into Ltext
-\leavevmode % go to hmode if not there already
-\ifinner \a@sequence {#1}% inside a \hbox: append
-\else \a@@Rsplit {#1}% splice into the current paragraph
-\fi }
-
-\gdef \a@@Rinsert #1{% RL insertion inside Ltext
-%\tracingmacros 1
-\ifshow \a@@verb {#1}\fi % verbating listing
-\ifarab \a@Rinsert {#1}\fi % arabic writing
-\iftrans \set@transfont \trans@text #1 \end \/\fi
-\ifnum \tracingarab > \@ne \message {>}\fi
-\unskip \egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \a@back@line {% skip back over last line
-\ifLineNumbers % undo last linenumber
- \unskip \unkern \unskip \unpenalty \setbox0 \lastbox
- \ifvoid0 \else \global \advance \c@linenumber -1
- \fi \unkern \unskip
-\fi \global\setbox \a@oldbox \lastbox % grab last text line
-\ifvoid \a@oldbox \prevdepth 0pt % start of paragraph
-\else \dimen0 \baselineskip \advance\dimen0 -\ht\a@oldbox
- \advance\dimen0 -\lastskip \prevdepth \dimen0 % compute \prevdepth
-\fi \unskip }
-
-\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
-\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
-\everypar {}%
-\par \global\a@prevgraf \prevgraf
-\ifinner \a@back@line \else
- \global\output = {\a@newoutput }\break
-\fi
-\dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
-\ifvoid \a@oldbox \global \a@displaywidth \hsize
-\else \advance \a@prevgraf -1 \vskip -\parskip
- \global \a@displaywidth \wd \a@oldbox
- \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
- \unskip \unskip \unpenalty \unpenalty }%
-\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
- \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
- \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else
-\ifdim \wd\tempb@x = 0pt \else \space \LRskip
-\fi\fi\fi
-\unhbox \tempb@x
-\ifvbox \Rinsertb@x \break \a@Runpack \else \RLskip
-\fi \egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \a@newoutput {% intermediate output routine
-\global\output = \a@oldoutput
-%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
-%\showbox255
-\setbox 255 \vbox {\unvbox 255 % put back into MVL
-%\tracingmacros 1
-\a@back@line }\unvbox 255 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \a@Linsert #1{% splice Ltext into RL paragraph
-%\tracingmacros 1
-\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
-\putwordb@x {\LRskip }\a@spacetrue \arab@codes
-%\tracingmacros 0
-\test@token }
-
-\gdef \a@@Linsert #1{% splice Ltext into RL paragraph
-\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox
-{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne
-\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil
-\vskip \a@vglue \everypar {}\parskip \z@
-\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking
-\noindent \null #1\clubpenalty 0 \widowpenalty 0 \tolerance 10000
-\endgraf \fontdimen4\font \dimen2 }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabaux.sty
-
-\ifx \a@check@mathfonts \undefined
-\global\let \a@check@mathfonts \check@mathfonts
-\gdef\check@mathfonts{\tr@ceoff % dont trace fonts
-\a@check@mathfonts \tr@ceon }
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% aedpatch.sty
-
-\let \ins@skip \relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-
-%\long\def \test@@special #1{% check for special cases
-\long\gdef \test@special #1{% check for special cases
-\ifcat \bgroup \nxp \next@token % arabic group
- \a@@putword \def \next {\arab@group {#1}}\else
-\if \relax \nxp #1% % command
- \if\is@in@set #1\a@accent % known to scanner
- \a@@append {#1}\def \next {\get@token }%
- \else % general command
- \a@@putword \def \next {\test@command #1}%
- \fi \else
-\if \sp@ce \nxp \next@token % RTL space
- \a@@putword \def \next {\get@token }\else
-\ifnum `#1 > 127 % inputenc command
- \a@@append {#1}\def \next {\get@token}\else
-\ifcat \nxp ~\nxp #1% % active character
- \a@@putword \def \next {\test@command #1}\else
-\if \nxp <\nxp #1\unarab@codes % Roman insert
- \a@@putword \let \next \test@insert \else
-\ifx $#1\unarab@codes % Math insert
- \a@@putword \let \next \test@math
-\else \a@@append {#1}\def \next {\get@token}% % normal case
-\fi\fi\fi\fi\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {16.04.2006} \def \a@level {r}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% abidir.sty
-
-\gdef \a@@Rinsert #1{% RL insertion inside Ltext
-%\tracingmacros 1
-\ifshow \a@@verb {#1}\fi % verbating listing
-\ifarab \a@Rinsert {#1}\fi % arabic writing
-\iftrans \set@transfont \trans@text #1 \end \/\fi
-\ifnum \tracingarab > \@ne \message {>}\fi
-\RLskip \egroup }
-
-\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
-\bgroup \global\a@oldoutput = \output
- \dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
- \skip0 \lastskip \everypar {}\par \global\a@prevgraf \prevgraf
-\ifinner \a@back@line \else \global\output = {\a@newoutput }\break
-\fi
- \dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
- \global\prevdepth \a@prevdepth
-\ifvoid \a@oldbox \global \a@displaywidth \hsize
-\else \advance \a@prevgraf -1 \vskip -\parskip
- \global \a@displaywidth \wd \a@oldbox
- \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
- \unskip \unskip \unpenalty \unpenalty }%
-\fi
-\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
- \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
- \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
-\a@Rgetline
-\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
- \global\setbox \a@newbox \lastbox }%
-\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
-\ifdim \wd\a@newbox = 0pt \else
-\ifdim \wd\a@newbox = \parindent \else
-\ifdim \wd\tempb@x = 0pt \else
- \ifdim \skip0 = 0pt \else \hskip \skip0
- \fi \LRskip
-\fi\fi\fi
-\unhbox \tempb@x
-\ifvbox \Rinsertb@x \break \a@Runpack
-\fi \egroup }
-
-\def \a@Runpack {% unpack all lines from the insertion
-\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
-\ifvbox \Rinsertb@x \repeat \unpenalty }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \a@pdatum {02.07.2006} \def \a@level {s}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\input alocal.sty % local patches!
-% must be idempotent!
-
-\ifx \a@patchlevel \undefined % first patching run
-\a@ident {apatch.sty}
- {\a@version\a@level\space last minute patches } {\a@pdatum }
- \edef \a@patchlevel {\a@version \a@level \space (\a@pdatum )}
-\else \a@message {version \a@patchlevel: second phase of patching}
-\fi
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode`\" = \patchdqcode \catcode`\@ = \patchatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% apatch.sty
+% last minute corrections
+% see \a@pdatum and \a@level at the end of the file
+% template: 22.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is just another *.sty file
+% you do not have to do any manual patching
+% just put this file onto the TEXINPUT path
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \patchatcode = \catcode`\@ \catcode`\@ = 11
+\chardef \patchdqcode = \catcode`\" \catcode`\" = 12
+
+\def \a@version {3.11} % compare to arabtex::theversion
+
+\ifx \a@version \theversion \else \edef \next {\errmessage
+{This patch file only works with ArabTeX version \a@version }}
+\next \def \a@patchlevel {-undefined-}
+\xpa \endinput
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% presently no patches
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% two passes with LaTeX; see: alatex.sty
+
+%\iffalse % no patches yet; otherwise: delete !
+\ifx \LaTeX \undefined \else
+\ifx \a@patchlevel \undefined % first patching run
+\let \a@@@document \a@document
+\a@extend \document {\setnone \input {apatch.sty}}
+\else % second pass after loading all modules
+\let \a@document \a@@@document
+\fi\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% patch patterns:
+
+\ifx \a@patchlevel \undefined % load only the first time
+% patches on first pass
+\else
+% patches on second pass
+\fi
+
+\ifx \a@hebr \undefined \else
+%\a@message {Hebrew mode patches}
+\fi
+
+\ifx \LaTeX \undefined \else
+%\a@message {LaTeX mode patches}
+\fi
+%\fi % no patches yet; otherwise: delete !
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {22.08.2003} \def \a@level {-}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifurd@ \ifm@lay
+ \else \set@act \sk@h@s \hah@urd #3% round h?
+ \fi
+ \ifx #1T\else
+ \ifx #3l\test@allah #4#6\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+\ifx #3l\test@allah #4#6\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi\fi\fi\fi\fi }
+
+\def \test@allah #1#2{% special ligature
+\ifx #2l\ifnum #1 = \c@shadda \set@chr\sk@l@w
+ % special short form of lam for the Name of God
+\fi\fi \put@tatwil }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\def \setarabfont #1{% define font switching
+ \def \the@arabfont {\tr@ceoff #1\tr@ceon }}
+
+\def \arab@output {\ifx \a@lang \a@arab \else
+\tr@ceoff % switch to Arabic output conventions
+\def@arabchars % define character macros for Arabic
+\def@arabaccent % define accent macros for Arabic
+\def@arabvoc % define vowel parsing routines for Arabic
+\def@arabstrut % define strut for Arabic
+\tr@zdmg % define standard transliteration
+\global\let \a@write \a@@write \global\let \a@write@hook \relax
+\def \set@arabfont {\the@arabfont }%
+\tr@ceon \let \a@lang \a@arab \fi }
+
+%\setnash
+
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\def \heb@output {\ifx \a@lang \a@hebr \else
+\tr@ceoff % switch to Hebrew output conventions
+\def@hebchars % define character macros for Hebrew
+\def@hebvoc % define vowel parsing routines for Hebrew
+\def@hebstrut % define strut for Hebrew
+\global\let \a@write \heb@write \global\let \a@write@hook \relax
+%\def \set@arabfont {\the@hebfont }%
+%\def \set@arabfont {\pheb }%
+\def \set@arabfont {\hebfont }%
+\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
+
+\def \sethebfont #1{% define font switching
+ \def \hebfont {\tr@ceoff #1\tr@ceon }}
+
+\pdef \sethebrew {% switch to hebrew writing
+\all@false \@ssimtrue \yahd@tstrue \heb@output }
+
+\let \setheb \sethebrew
+
+\ifx \LaTeX \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts2.sty
+
+\def \fdef #1#2#3#4{% define NFSS2 font command
+\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
+\fontseries {#3}\fontshape {#4}\selectfont }%
+\sethebfont \pheb }%
+\all@wcmd #1}
+
+\hdef \hc {m}{n}
+\hdef \hp {bx}{n}
+\hdef \Jm {m}{Jm}
+\hdef \jm {m}{jm}
+\hdef \ds {m}{ds}
+\hdef \oj {m}{oj}
+\hdef \ta {m}{ta}
+\hdef \shlmold {m}{so}
+\hdef \shlmscr {m}{sr}
+\hdef \shlmstk {m}{sk}
+\hdef \fr {m}{fr}
+\hdef \frbx {bx}{fr}
+\hdef \frsl {sl}{fr}
+\hdef \crml {m}{crml}
+\hdef \crmlsl {sl}{crml}
+
+\sethebfont \hc
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % LaTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {27.08.2003} \def \a@level {a}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \LaTeX \undefined
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.tex
+
+\def\smash{\relax % \relax, in case this comes first in \halign
+\ifmmode \xpa\mathpalette \xpa\mathsm@sh \else \xpa\makesm@sh
+\fi }
+
+\def \jm {\sethebfont {\jerusalem}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Plain
+
+\hc % default Hebrew font
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+\ifx \a@patchlevel \undefined % load only the first time
+\ifx \LaTeX \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.tex
+
+\UsePackage {alists} % load LaTeX extensions for Arabic lists
+\UsePackage {asect} % load LaTeX extensions for Arabic sections
+\UsePackage {atabg} % load LaTeX extensions for Arabic tabbing
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % LaTeX
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.09.2003} \def \a@level {b}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% heparse.sty
+
+\def \add@@shewa {% put shewa on final kaf
+\xpa\case \the\last@con \of
+%{ k R {\add@shewa }}
+{ k {\add@shewa }}
+\endcase }
+
+\let \sv@qameslongum \sv@qamesaleph
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\pdef \setjudarab {% switch to hebrew writing
+\all@false \@ssimtrue \yahd@tstrue \jud@output }
+
+\all@wcmd \setjudarab
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \jud@output {\ifx \a@lang \a@juda \else
+\heb@output \tr@ceoff % switch to Hebrew output conventions
+\def@judchars % define character macros for Judeo-Arabic
+\tr@zdmg % standard transliteration
+\tr@ceon \global\let \a@lang \a@juda \fi }
+
+\def \a@juda {JUDARAB}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@judchars {% define character macros for Judeo-Arabic
+\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
+\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
+\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
+\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
+\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
+\gdef \tc@R {\act@cd\hc@j \act@mod \j@@@d@t } % .g
+\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
+\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
+\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
+}}% end of dynamic definitions
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi %\a@hebr
+
+\ifx \setjudarab \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\chardef \j@d@t 5 \chardef \j@@d@t 6 \chardef \j@@@d@t 7
+
+\def \h@putmod #1{% deposit modifier
+\ifcase #1\relax
+\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe
+\or \j@dot \or \j@@dot \or \j@@@dot \fi }
+
+\def \the@dots {\the@dot \kern2\h@p \the@dot }
+
+\def \the@gim {\raise \h@p \hbox {\the@dot }%
+\the@dot \raise \h@p \hbox {\the@dot }}
+
+\def \j@dot {\j@put@dia {.5}{1.3}{\the@dot }}
+\def \j@@dot {\j@put@dia {.5}{1.3}{\the@dots }}
+\def \j@@@dot {\j@put@dia {.5}{1.3}{\the@gim}}
+
+\def \j@put@dia #1#2#3{% put diacritic #3 at (#1,#2)
+\setbox0 \hbox to \z@ {\hss #3\hss}\dimen@ #2\a@ht
+\dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi %\setjudarab
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {17.09.2003} \def \a@level {c}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% acmd.sty
+
+\let \a@c@emph \a@c@emphasize
+
+\def \arab@em #1{% overstrike group
+\def \next@command {\test@special}%
+\ifarab \setbox0 \hbox {\a@sequence {#1}}%
+ \putwordb@x {\vbox {\hrule \kern 1pt \box0}}%
+\fi
+\ifshow {\tt \string \emphasize \ }%
+\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
+\fi\fi
+\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
+\fi \test@token }
+
+\def \a@c@textbf #1{\a@c@bf #1\rm }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for LyX: spacing.sty
+
+\let \a@c@noun \test@token
+
+\def \a@spacing {\let \a@@restore@spacing \restore@spacing
+\let \restore@spacing \a@restore@spacing }
+
+\def \a@restore@spacing {\a@par \a@@restore@spacing }
+
+\def \a@c@singlespace {\a@par \a@spacing
+\def \endsinglespace {\a@par \par }%
+\singlespace \test@token }
+
+\def \a@c@onehalfspace {\a@par \a@spacing \onehalfspace \test@token }
+
+\def \a@c@doublespace {\a@par \a@spacing \doublespace \test@token }
+
+\def \a@c@spacing #1{\a@par \a@spacing \spacing {#1}\test@token }
+
+\xpa\def \csname a@c@singlespace*\endcsname
+{\a@par \a@spacing
+\xpa\let \xpa\a@endsinglespace \csname endsinglespace*\endcsname
+\xpa\def \csname endsinglespace*\endcsname
+{\a@par \a@endsinglespace \vskip -\baselineskip }%
+\csname singlespace*\endcsname \test@token }
+
+\let \a@c@textsf \test@token % these are preliminary
+\let \a@c@textsf \a@c@textbf
+
+\let \a@c@textit \test@token
+\let \a@c@textit \a@c@textbf
+\let \a@c@textit \a@c@emph
+
+\let \a@c@textsl \test@token
+\let \a@c@textsl \a@c@textbf
+
+\let \a@c@texttt \test@token
+\let \a@c@texttt \a@c@textbf
+
+\let \a@c@underbar \test@token
+\let \a@c@underbar \a@c@textbf
+
+\def \a@c@underbar {% get next token
+\def \next@command {\arab@ub }%
+\futurelet \next@token \test@space }
+
+\def \arab@ub #1 {% underbar
+\def \next@command {\test@special}%
+\ifarab \setbox0 \hbox {\a@sequence {#1}}%
+ \putwordb@x {\vtop {\box0 \kern -5pt \hrule }}%
+\fi
+\ifshow {\tt \string \underbar \ }%
+\if \bgroup \nxp \next@token \a@@verb {{#1}}\else \a@@verb {#1}%
+\fi\fi
+\iftrans \underbar {{\set@transfont \trans@text #1 \end }}%
+\fi \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\def \arab@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \a@font \else
+\ifnum \tracingarab > 0 \a@message{Arabic font \next selected.}\fi
+\global\let \a@font \next \a@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\def \heb@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \h@font \else
+\ifnum \tracingarab > 0 \a@message {Hebrew font \next selected.}\fi
+\global\let \h@font \next \h@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+
+\at@arabtext {%
+ \def\a@l@section{\@dottedtocline{1}{1.0em}{1.8em}}%
+ \def\a@l@subsection{\@dottedtocline{2}{2.8em}{2.1em}}%
+ \def\a@l@subsubsectiom{\@dottedtocline{3}{4.9}{2.8em}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\def \a@gextend #1#2{% global extend command definition, no pars!
+\xpa\gdef \xpa#1\xpa{#1#2}}
+
+\def \a@extend #1#2{% extend command definition, no pars!
+\xpa\def \xpa#1\xpa{#1#2}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \syl@@quote@beg #1{% start word with quote: " #1 #2
+\if\is@vowel #1\def \next {\syl@wasla #1}% " v k: alif vowel
+% \if@wasla \v@ctrue \else \add@wasla \togglev@c \fi
+ \if@wasla \v@ctrue \global\@waslafalse
+ \else \global\@waslatrue \togglev@c \fi
+\else \put@con a\togglev@c \add@wasla \put@syl % alif implied
+ \ifx #1"\def \next {\syl@con }% " " k: alif wasla
+ \else \def \next {\syl@con #1}% " k: alif wasla
+ \fi
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asect.sty
+
+\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno
+% for Arabic mode
+\ifnum #1>\c@tocdepth
+\else \vskip \z@ plus.2\p@
+ \begin{arabtext}
+% \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
+ \tocp@rs {#2}{#3}#4 \le@ders \thep@geno {#5}
+ \end{arabtext}
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aboxes.sty
+
+\def \fix@act@box {% fixup position and set tatwil
+\if@high@act \advance\a@disp -\a@dsp \@high@actfalse \fi
+%\advance\a@min@dp \a@ic \advance\a@disp \a@ic
+\global\advance\a@min@dp \a@ic \advance\a@disp \a@ic
+\if@tat \put@tat \@tatfalse \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \aw@endligs #1#2*#3#4*#5{% test for final ligatures
+% c1 m1 * c2 m2 * c3
+\ifcase \act@cls \lam@lig #3#5% % 0 l
+\or % 1 YntCbyp
+ \ifnum \act@cd = \a@yah \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@h \yah@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi\fi\fi\fi
+\or \sin@lig #1#5% % 2 sxSD
+\or \gim@lig #1#3#5% % 3 GHXJ
+ \global\a@min 0
+\or \global\@highfalse \@mod@acttrue \put@tatwil % 4 cR
+\or \kaf@end #3#5% % 5 kgM
+\or \fah@end #1% % 6 fqv
+\or \ttah@lig #1#5% % 7 VZ
+\or \rah@end #1#2*#3#5% % 8 rzj \a@r \a@R
+\or % 9 \a@t \a@n
+ \ifnum \act@cd = \a@yah@p@s \yah@p@end #1#3#5\else
+ \ifnum \act@cd = \a@nun@p \nun@end #1#3#5\else
+ \bah@end #1%
+ \fi\fi
+\else \global\@highfalse \@mod@acttrue % 10 ...
+ \ifnum \act@cd = \a@hah \hah@end #1#2*#3#4*#5\else
+ \ifnum \act@cd = \a@h@s \hah@urd #3\else
+ \ifnum \act@cd = \a@mim \mim@end #2*#3#5\else
+ \put@tatwil
+ \ifnum \act@cd = \a@dal \gim@test #5\else
+ \ifnum \act@cd = \a@dal@p \gim@test #5\else
+ \fi\fi
+ \fi\fi\fi
+\fi \aw@lower #5}
+
+\def \act@gim #1{% deposit ligature
+\ifnum \act@cd = \a@khah \set@act\sk@kh@s \act@mod = 0
+\else \set@act\sk@hh@s \@mod@acttrue
+%\fi \a@min 1 }
+\fi \global\a@min 1 }
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifurd@ \ifm@lay
+ \else \set@act \sk@h@s \hah@urd #3% round h?
+ \fi
+ \ifx #1T\else
+% \ifx #3l\test@allah #4#6\else
+ \ifx #3l\test@allah {#4}{#6}\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+%\ifx #3l\test@allah #4#6\else
+\ifx #3l\test@allah {#4}{#6}\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aoutput.sty
+
+\def \put@ab@x {% deposit line
+\ifhmode \unskip {\endgraf }\penalty \clubpenalty
+\parindent \z@ \parskip \z@ \else
+\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
+\fi\fi
+\begingroup \parfillskip 0pt plus 1fill
+ \leftskip \z@ \rightskip \z@ \noindent
+ \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
+ \box\a@tempb@x \endgraf
+%\endgroup \parindent \z@ \parskip \z@ \initlineb@x
+\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
+\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
+\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {23.10.2003} \def \a@level {d}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\newarabfont % as a side effect an Arabic font default is defined!
+%\setnash
+
+% wg. utfcode.sty und inputenc.sty:
+
+\long\def \test@special #1{% check for special cases
+\if \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+%\if \sp@ce \nxp \next@token % RTL space
+% \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+{\catcode `\< = \@other % better make sure
+\gdef \a@ins {% arabic insertion or 'less'
+\ifmmode \global\let \a@less <
+%\else \global\let \a@less \arab@insert \leavevmode
+\else \global\let \a@less \a@@insert \leavevmode
+ \bgroup \arab@codes \set@arabfont \global\@waslafalse \@wasfalse
+\fi \a@less }
+} % catcode <
+
+\def \a@@insert #1{% check for < >
+\ifx #1>\egroup \unskip \else \xpa \arab@insert \xpa #1\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+{\arab@codes % because of special characters
+
+\gdef \t@b@g #1{% start \ArabTeX scanner
+ \def \next {\sc@word {#1}}\def \sc@char {@}%
+\ifcat a\nxp #1\else % letter
+\apply \set@next \tocase #1\of
+{ \@{\sc@endscan } % finished
+ '{\t@rquote }
+ `{\t@lquote }
+ *{\t@star }
+\default {\sc@word {#1}}
+}\endcase
+\fi \next }
+
+\gdef \t@w@rd #1{% transform input into internal notation
+ \def \next {\sc@word }%
+\ifx #1\@\def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1a%
+ \ifx #1a\def \next {\t@aa }\else % test for aa -> A
+ \ifx #1n\def \next {\t@nn }\else % test for ng, ny
+ \edef \sc@char {\csname sc@#1\endcsname }% letter
+ \ifx \sc@char \relax \def \sc@char {#1}% undef letter
+ \fi
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
+ \fi
+ \fi\fi \else % other character
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\ifx #1'\def \next {\t@hamza }\else % hamza
+ \def \sc@char {#1}%
+\apply \set@next \tocase #1\of
+{~\@ldtie{\t@tie }
+ .{\t@dot }
+ ,{\t@comma }
+ -{\t@minus }
+ `{\t@ain }
+ "{\t@dquote }
+ :={\t@colon }
+ ^{\t@up }
+ _{\t@down }
+ |{\t@bar }
+ *{\t@shadda }
+\default {\t@w@@rd {#1}}
+}\endcase
+\fi\fi\fi\fi \next }
+
+} % \arab@codes
+
+\def \t@star {\sc@dep *}
+
+\let \sc@beg \t@b@g % apatch only
+\let \sc@word \t@w@rd % apatch only
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \test@allah #1#2{% special ligature
+\ifx #2l%
+%\ifnum #1 = \c@shadda
+\set@chr\sk@l@w
+ % special short form of lam for the Name of God
+%\fi
+\fi \put@tatwil }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \set@shadda {\advance \last@mod \c@shadda }
+
+\def \add@shadda {\ifcase \last@mod % set bit 1
+\set@shadda \or\or \set@shadda \or\or \set@shadda \or\or \set@shadda
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\ifx \a@hebr \undefined \else
+\iffalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+
+\def \heb@output {\ifx \a@lang \a@hebr \else
+\tr@ceoff % switch to Hebrew output conventions
+\def@hebchars % define character macros for Hebrew
+\def@hebvoc % define vowel parsing routines for Hebrew
+\def@hebstrut % define strut for Hebrew
+\global\let \a@write \heb@write \global\let \a@write@hook \relax
+\def \set@arabfont {\the@hebfont }%
+\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
+
+\def \sethebfont #1{% define font switching
+ \def \the@hebfont {\tr@ceoff #1\tr@ceon }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts2.sty % apatch.sty only!
+
+\hdef \hc {m}{n}
+\sethebfont \hc
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@Rtobox #1{% pack the insertion into \Rinsertb@x
+\setbox \Rinsertb@x \vbox {\a@hsize \a@Lwidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\a@normpen \widowpenalty \a@normpen \clubpenalty
+\leftskip \z@ \rightskip \z@
+\parfillskip \z@ plus 1fil \relax \parskip \z@
+\let \a@@kern \a@kern \let \a@@mkern \a@mkern
+\def \a@kern {\nobreak \a@@kern}\def \a@mkern {\nobreak \a@@mkern}%
+\let \end \relax \spreadtrue \vskip \a@vglue \hbadness 10000
+\putlineb@x {\arab@strut \hskip \a@Llength }\a@spacefalse
+\test@token #1 \end \unskip \unskip \vskip \a@vglue
+\hbox {\box\lineb@x \hfill }}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\gdef \h@putvowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\gdef \h@putvowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.75}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utfcode.sty
+
+\ifx \utfatcode \undefined \else
+
+{\catcode `\^ 7 \catcode `\^^M=13
+\gdef \utf@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\utf@end }\else % finished
+\ifx #1-\def \next {\utf@minus }\else %
+\ifx #1/\def \next {\sc@back #1}\else %
+\ifnum `#1="D6 \def \next {\utf@dvi }\else %
+\ifnum `#1="D7 \def \next {\utf@dvii }\else %
+\ifnum `#1="D8 \def \next {\utf@dviii }\else %
+\ifnum `#1="D9 \def \next {\utf@dix }\else %
+\ifnum `#1="DA \def \next {\utf@da }\else %
+\ifnum `#1="DB \def \next {\utf@db }\else %
+\ifnum `#1="E2 \def \next {\utf@eii }\else %
+ \def \next {\utf@asci #1}%
+\fi %
+\fi\fi\fi\fi\fi\fi %
+\fi\fi\fi \next }%
+} % catcode 13
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@eii #1#2{% segment E2
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq `#2\relax \advance \u@lq -128
+ \edef \sc@char {}%
+\ifnum \u@lb = 0
+\ifnum \u@lq = 12 % ZERO WIDTH NON-JOINER (U+200C)
+% \edef \sc@char {||}\else
+ \edef \sc@char {\n@xp\a@ba}\else
+\ifnum \u@lq = 13 % ZERO WIDTH JOINER (U+200D)
+ \edef \sc@char {-}\else
+% \edef \sc@char {\n@xp\a@bb}\else
+\fi\fi\fi \utf@next }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dix #1{% segment D9
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ B\or f\or q\or k\or l\or m\or n\or h\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or
+ "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \a@pc\or \f@sila\or
+ \f@sila\or *\or \n@xp\a@b\or \n@xp\a@bq\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or
+% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }%
+N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@db #1{% segment DB
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or
+ \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or
+ Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or
+ B\or \n@xp\a@H\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {}%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ \or \or \or \or
+ \or \or \n@xp\a@bd\or \n@xp\a@br\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or
+ 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or
+ \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or
+ \n@xp\a@ao"\n@xp\a@Zi\or \n@xp\a@bh-\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtoks.sty
+
+\def \a@br {\sk@r ,25 } % rah with roof
+\def \a@ba {\sk@W , 0 } % ZERO WIDTH NON-JOINER
+\def \a@bb {\sk@spc , 0 } % ZERO WIDTH JOINER
+\def \a@bb {\sk@N , 0 } % ZERO WIDTH JOINER
+\def \a@bd {\sk@d ,25 } % dal with roof
+\def \a@bh {\sk@h ,25 } % hah with roof
+\def \a@bq {\sk@q@s , 0 } % qaf without dots
+\def \a@br {\sk@r ,25 } % rah with roof
+
+\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
+\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@Wp {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@N {10 ,\a@break ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@spcn {10 ,\a@smspc ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+\gdef \sk@skipn{10 ,\a@skip ,0 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+
+\def \a@bc {\sk@@ , 0 } % empty
+%\def \a@bc {\sk@skipn , 0 } % empty
+\def \a@be {\sk@@ , 0 } % empty
+%\def \a@be {\sk@spc , 0 } % empty
+\def \a@bf {\sk@@ , 0 } % empty
+%\def \a@bf {\sk@spcn , 0 } % empty
+\def \a@bg {\sk@@ , 0 } % empty
+%\def \a@bg {\sk@skip , 0 } % empty
+\def \a@bi {\sk@@ , 0 } % empty
+%\def \a@bi {\sk@Wp , 0 } % empty
+\def \a@bj {\sk@@ , 0 } % empty
+\def \a@bk {\sk@@ , 0 } % empty
+\def \a@bl {\sk@@ , 0 } % empty
+\def \a@bm {\sk@@ , 0 } % empty
+\def \a@bn {\sk@@ , 0 } % empty
+\def \a@bo {\sk@@ , 0 } % empty
+\def \a@bp {\sk@@ , 0 } % empty
+\def \a@bs {\sk@@ , 0 } % empty
+\def \a@bt {\sk@@ , 0 } % empty
+\def \a@bu {\sk@@ , 0 } % empty
+\def \a@bv {\sk@@ , 0 } % empty
+\def \a@bw {\sk@@ , 0 } % empty
+\def \a@bx {\sk@@ , 0 } % empty
+\def \a@by {\sk@@ , 0 } % empty
+\def \a@bz {\sk@@ , 0 } % empty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+
+\let \tr@@zdmg \tr@zdmg
+
+\iffalse % inserted in 3.11f
+\def \tr@zdmg {% patches for Uzbek
+\tr@def \a@H {\"a}%
+\tr@def \a@ab {\"e}%
+}
+\fi % inserted in 3.11f
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+\def \setcode #1{% switch the input encoding
+\lowercase {\def \sc@code {#1}%
+\ifx \sc@code \sc@oldcode \else
+\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}%
+\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }%
+%\let \sc@oldcode \sc@code }
+\global\let \sc@oldcode \sc@code }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@urd #1{% wavy hah
+% c2
+\if\is@end@char #1\set@act\sk@h % isolated round h
+\fi
+\ifx #1\a@h
+\@mod@actfalse % no mark below
+\fi
+\ifnum \chr@cls = 1 \set@chr\sk@b % YntCbyp normal height
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {16.11.2003} \def \a@level {d+UCS}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% witbhs.sty
+
+\if\AND{\isx\bhscode\undefined}{\isx\buckatcode\undefined}\else
+\def \test@@token {\iftest@command \tracingmacros 0 \fi
+\futurelet \next@token \test@space }
+
+\let \test@token \test@@token % get next token
+
+\xpa\def \xpa\kill@space \space {% gobble LTR space
+\futurelet \next@token \test@space }
+
+\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space
+\futurelet \next@token \test@space }
+
+\def \test@space {% check for LTR space
+\if \space \nxp\next@token \xpa\kill@space
+\else \xpa\test@sp@ce \fi }
+
+\def \test@sp@ce {% check for RTL space
+\if \sp@ce \nxp\next@token \xpa\kill@sp@ce
+\else \xpa\next@command \fi }
+
+\long\def \test@special #1{% check for special cases
+\ifcat \bgroup \nxp \next@token % arabic group
+ \def \next {\arab@group {#1}}\else
+\if\is@in@set #1\a@first % normal case
+ \def \next {\test@word #1}\else
+\if \relax \nxp #1% % command
+ \def \next {\test@command #1}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \let \next \test@math \else
+ \def \next {\test@word #1}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+{\catcode `\^^a0 12
+\gdef \test@word #1 {% process next RTL word
+\a@test@word #1^^a0\@@ }
+
+\gdef \a@test@word #1^^a0#2\@@ {% process next RTL word
+\ifarab \putwordb@x {\arab@item #1\@@ }\fi
+\a@spacetrue \a@showinput {#1}%
+\ifx \relax #2\relax \def \next {\test@token }\else
+\def \next {\test@token #2 }\fi
+\next }
+}% catcode ^^a0
+
+\fi % witbhs
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\def \tr@ceoff {% suspend temporarily, local, no nesting!
+\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros \relax }%
+\tracingmacros 0 }
+
+\def \notr@ce {% suspend temporarily, for NFSS only, no nesting!
+\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros \relax}%
+\tracingmacros 0 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.12.2003} \def \a@level {e}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aboxes.sty
+
+\def \put@tie {% deposit ties between characters
+\setbox0 \hbox {\char \the\act@tie }%
+\setbox2 \hbox {\char \the\act@tie \/}%
+\ifdim \a@disp = \z@ \unhcopy0
+\else \raise\a@disp \hbox {\unhcopy0 }\fi
+\global\advance\a@disp \wd2 \global\advance\a@disp -\wd0 }
+
+\def \set@high@act {% prepare raising of actual character
+\global\advance \a@disp \a@dsp \global\@high@acttrue }
+
+\def \set@low@act {% lower actual character
+\global\advance \a@disp -.25ex }
+
+\def \set@loww@act {% lower actual character
+\global\advance \a@disp -.50ex }
+
+\def \set@lowww@act {% lower actual character
+\global\advance \a@disp -.75ex }
+
+\def \fix@act@box {% fixup position and set tatwil
+\if@high@act \global\advance\a@disp -\a@dsp \global\@high@actfalse \fi
+\global\advance\a@min@dp \a@ic \global\advance\a@disp \a@ic
+\if@tat \put@tat \@tatfalse \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\ifx \a@patchlevel \undefined % load only the first time
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+
+\iffalse
+\def \tr@zdmg {% patches for Uzbek
+\tr@@zdmg
+\tr@def \a@H {\"a}%
+\tr@def \a@ab {\"e}%
+}
+\fi
+\let \tr@zdmg \tr@@zdmg % nullify problems in version 3.11d
+
+\gdef \tr@@aword #1{% transcribe rest of word
+\let \tr@old \tr@act \def \tr@act {#1}%
+\case #1\of
+{ >{\@gobble }
+ \cap {\c@ptrue \tr@aword }
+% |"^\a@e{\tr@aword }
+ |"^{\tr@aword }
+ -{-\tr@aword }
+% XlEeQ{\csname tr@@\string #1\endcsname }
+ TXlEeQ{\csname tr@@\string #1\endcsname }
+ \a@a NUW{\setc@p #1\kill@alif }
+ P{\tr@P \tr@aword }
+ aiu{\tr@wasla #1}
+ \a@Ze{\xpa\tr@aword \tr@old }
+\default {\@vocalfalse
+ \ifcat \nxp #1-#1\else \setc@p #1%
+ \fi \tr@aword }
+}\endcase }
+
+\gdef \tr@@T #1{\@vocalfalse
+\ifx #1|h\let \next \tr@aword \else
+t\def \next {\tr@aword #1}\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@judchars {% define character macros for Judeo-Arabic
+\gdef \tc@f {\act@cd\hc@f \@finaltrue } % f
+\gdef \tc@C {\act@cd\hc@t \act@mod \j@d@t } % _t
+\gdef \tc@D {\act@cd\hc@ss \act@mod \j@d@t \@finaltrue } % .d
+\gdef \tc@F {\act@cd\hc@d \act@mod \j@d@t } % _d
+\gdef \tc@G {\act@cd\hc@j \act@mod \j@d@t } % ^g
+\gdef \tc@H {\act@cd \hc@hh } % .h
+\gdef \tc@R {\act@cd \hc@j } % .g
+\gdef \tc@T {\act@cd\hc@h \act@mod \j@@d@t } % T
+\gdef \tc@V {\act@cd \hc@tt } % .t
+\gdef \tc@X {\act@cd\hc@k \act@mod \j@d@t \@finaltrue } % _h
+\gdef \tc@Z {\act@cd\hc@tt \act@mod \j@d@t } % .z
+}}% end of dynamic definitions
+
+\fi % Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {12.02.2004} \def \a@level {f}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cp1256.sty
+
+\ifx \awinatcode \undefined \else
+
+\def \set@awin {% select the CP 1256 scanner
+\let \sc@beg \awin@beg \let \sc@word \awin@word
+\let \sc@back \sc@@back \let \sc@endscan \awin@endscan
+\global\let \a@scan \awin@scan \setawin@codes
+\awin@catcodes \yahdots
+\global \a@paren {}%
+\a@message {input encoding set to Windows CP 1256 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding
+arabwin\set@awin cp1256\set@awin }
+
+\gdef \awin@beg #1{% start CP 1256 scanner
+\h@mzafalse \iz@fetfalse \yahdots \@ssimfalse
+\novocalize % because of explicit quoting
+\ifx #1"\def \next {\awin@lquote}\else
+\ifx #1^^c7\def \next {\awin@alif}\else
+\def \next {\awin@word #1}\fi\fi \next }
+
+\gdef \awin@lquote {% initial quote
+\def \sc@char {`}\sc@put \awin@beg }
+
+\gdef \awin@dquote {% double quote, intermediate version
+%\def \sc@char {\a@dq}\sc@put \awin@word }
+\def \sc@char {\nxp\a@dq }\sc@put \awin@word }
+
+\gdef \awin@dquote {% right quote
+\def \sc@char {'}\sc@put \awin@word }
+
+\fi % cp1256
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\long\def \test@special #1{% check for special cases
+%\if \bgroup \nxp \next@token % arabic group
+\ifcat \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+%\if \sp@ce \nxp \next@token % RTL space
+% \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+{\arab@codes % because of special characters
+
+\gdef \t@b@g #1{% start \ArabTeX scanner
+ \def \next {\sc@word {#1}}\def \sc@char {@}%
+\ifcat a\nxp #1\else % letter
+\apply \set@next \tocase #1\of
+{ \@{\sc@endscan } % finished
+ '{\t@rquote }
+ `{\t@lquote }
+ *{\t@star }
+ +{\t@plus }
+ ={\t@equ }
+\default {\sc@word {#1}}
+}\endcase
+\fi \next }
+
+\gdef \t@w@rd #1{% transform input into internal notation
+ \def \next {\sc@word }%
+\ifx #1\@\def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1a%
+ \ifx #1a\def \next {\t@aa }\else % test for aa -> A
+ \ifx #1n\def \next {\t@nn }\else % test for ng, ny
+ \edef \sc@char {\csname sc@#1\endcsname }% letter
+ \ifx \sc@char \relax \def \sc@char {#1}% undef letter
+ \fi
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
+ \fi
+ \fi\fi \else % other character
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\ifx #1'\def \next {\t@hamza }\else % hamza
+ \def \sc@char {#1}%
+\apply \set@next \tocase #1\of
+{~\@ldtie{\t@tie }
+ .{\t@dot }
+ ,{\t@comma }
+ -{\t@minus }
+ `{\t@ain }
+ "{\t@dquote }
+ :{\t@colon }
+ ^{\t@up }
+ _{\t@down }
+ |{\t@bar }
+ *{\t@shadda }
+ +{\t@madda }
+ ={\t@sukun }
+\default {\t@w@@rd {#1}}
+}\endcase
+\fi\fi\fi\fi \next }
+
+} % \arab@codes
+
+\def \t@star {\sc@dep *}
+\def \t@plus {\sc@dep +}
+\def \t@equ {\sc@dep =}
+
+\let \sc@beg \t@b@g % apatch only
+\let \sc@word \t@w@rd % apatch only
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \a@parse #1>{% parse token sequence into syllables
+\iftest@parse \tracingmacros = 1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+\csname a@parse@hook\endcsname
+\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
+\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
+\iftest@parse \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@revwd )>\fi }
+
+\def \sv@@I #1{% long i
+\ifx #1N\def \next {\sv@Zi }\else
+\ifk@sh \put@syl \put@con y\add@kasraspec
+ \put@syl \def \next {\syl@con #1}%
+\else \add@kasra \put@syl \def \next {\test@B #1\sv@Ivwl }%
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+
+\ifx \verseatcode \undefined \else
+
+% define some verse dimensions, verses will be centered
+\def \setversedim #1#2{% set length of half-verse, separation
+\a@hvlen #1\relax \a@hvsep #2\relax
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\advance \a@hvind -\a@hvsep
+\divide \a@hvind 2 \advance \a@hvind -\a@hvlen }
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\par \hfill }% first block
+{\noindent \hspace \a@hvind \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@hvlen {#3}% second block
+\par }
+
+\fi % verses.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\def \a@@write #1>{% Arabic output
+\iftest@write \tracingmacros 1
+\iftest@parse \else \a@verb (#1 )>\fi\fi
+\csname a@write@hook\endcsname
+\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi
+\iftest@write \tracingmacros 0 \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\ifx \a@hebr \undefined \else
+
+\def \heb@write #1>{% Hebrew output routine
+\iftest@write \tracingmacros = 1
+\iftest@parse \else \a@verb (#1)>\fi\fi
+\csname a@write@hook\endcsname
+\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
+\iftest@write \tracingmacros = 0
+\fi }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {26.02.2004} \def \a@level {g}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+
+\def \sc@restore {% restore scanner defaults
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\let \sc@beg \t@b@g \let \sc@word \t@w@rd
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\global\let \a@scan \a@@scan \seta@codes
+\let \arab@codes \a@arab@codes
+\let \unarab@codes \a@unarab@codes }
+
+\def \t@comma #1{% after ,
+\apply \set@char \tocase #1\of
+{ a{a\nxp \a@H }
+ A{\nxp \a@a \nxp \a@H }
+ c{\ift@rk J\else \nxp \a@c \fi }
+ d{\ifp@sht \nxp \a@aA \else
+ \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi }
+ e{e\nxp \a@H }
+ g{\nxp \a@L }
+ h{\nxp \a@h }
+% n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi }
+ n{\ifs@nd \nxp \a@an \else \nxp \a@m \fi }
+ r{\ifp@sht \nxp \a@q \else
+ \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi }
+ s{\ift@rk x\else \nxp \a@s \fi }
+ t{\ifp@sht \nxp \a@v \else
+ \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi }
+ z{\ift@rk D\else \nxp \a@z \fi }
+}\endcase \t@tail ,#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utf8.sty
+
+\ifx \utfatcode \undefined \else
+
+\gdef \set@utfc {% select the UTF-8 scanner
+\global\let \a@scan \utfc@scan
+\let \sc@beg \utf@beg
+\let \sc@word \utf@word
+\global\a@digits = {0123456789}%
+\global\a@first = {ÍÎÏ•’}%
+\catcode `á 11
+\a@message {input encoding set to UTF-8 conventions}}
+
+\fi % utf8.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bhs.sty
+
+\ifx \bhsatcode \undefined \else
+
+% dynamic definitions for BHS Hebrew coding
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\"=12 \catcode `\&=12 \catcode `\$ 12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbhs@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d}
+\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h}
+\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l}
+%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p}
+\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p}
+\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
+%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X}
+\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X}
+\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ}
+\a@digits = {0123456789} \a@paren = {[]}
+\a@first = {)+(##&$":.,*0123456789}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for BHS
+
+{\arab@codes
+\catcode `\& 12 \catcode `\$ 12
+
+\gdef \bhs@beg #1#2{% start BHS scanner
+\@ssimfalse \def \next {\bhs@word #1#2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #2\@\def \next {\bhs@testpara #1#2}\else
+\ifx #2?\def \next {\bhs@testpara #1#2}\else
+\fi\fi\fi \next }
+
+\gdef \bhs@word #1#2{% transform input into internal notation
+ \def \next {\bhs@word #2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #1]\def \next {\bhs@word }\else
+\ifx #10\def \next {\bhs@zero #2}\else
+\ifx #17\def \next {\bhs@seven #2}\else
+%
+\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
+\ifx #1?\def \next {\bhs@query #2}\else
+\ifx #1:\def \next {\bhs@colon #2}\else
+\ifx #1|\def \sc@char {|}\sc@put \else
+%
+\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else
+\ifx #1'\def \sc@char {'}\sc@put \else
+\ifx #1)\def \sc@char {Q}\sc@put \else
+\ifx #1+\def \sc@char {C}\sc@put \else
+%
+\ifx #1(\def \sc@char {P}\sc@put \else
+\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else
+\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else
+\ifx #1$\def \sc@char {x}\sc@put \else
+%
+\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else
+\ifx #1-\def \sc@char {B}\sc@put \else
+\ifx #1*\def \sc@char {*}\sc@put \else
+\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \sc@put
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\next }
+} % arabcodes
+
+\fi % bhs.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cp1255.sty
+
+\ifx \hwinatcode \undefined \else
+
+\def \hwin@catcodes {% assignments for CP 1255
+\countdef \is@m=2 \is@m = 192 \is@n = 64
+\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+{\hwin@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \sethwin@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I}
+\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O}
+\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E}
+\def \sc@^^c6 {"e} \def \sc@^^c7 {"a}
+\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o}
+\def \sc@^^ca {L} \def \sc@^^cb {"u}
+\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|}
+\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo}
+
+\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze}
+\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:}
+\def \sc@^^d4 {"\n@xp\a@Zi} \def \sc@^^d5 {w-w}
+\def \sc@^^d6 {wy} \def \sc@^^d7 {y-y}
+\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@}
+\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@}
+
+\def \sc@M {M} %\def \sc@N {N}
+\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
+\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
+\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
+\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
+
+\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
+\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
+\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@}
+\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@}
+\a@digits = {0123456789}
+\a@paren = {()[]}
+\a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\fi % cp1255.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx \a@hebr \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hescan.sty
+
+\def \hwin@catcodes {% assignments for CP 1255
+\countdef \is@m=2 \is@m = 192 \is@n = 64
+\loop \catcode \is@m = 11 \global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% heparse.sty
+
+\def \sv@ay {% Yiddish ay
+\put@syl \put@con \a@h \v@ctrue \add@fatha \put@syl \test@patf }
+
+\def \sv@ey {% Yiddish ey
+\put@syl \put@con \a@h \put@syl \test@patf }
+
+\def \sv@oy {% Yiddish oy
+\put@syl \put@con \a@p \put@syl \test@patf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+
+\tc@def \a@h {\act@cd \hc@ey } % yod yod
+\tc@def \a@p {\act@cd \hc@oy } % waw yod
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % Hebrew
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+
+\ifx \verseatcode \undefined \else
+
+%\newdimen \a@@hvlen
+\csname newdimen\endcsname \a@@hvlen
+
+% define some verse dimensions, verses will be centered
+\def \setversedim #1#2{% set lengths of half-verse, separation
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
+\ifx [#2\def \next {\set@verseI [}\else
+\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
+
+\def \set@verseI [#1]{% optional parameter
+\a@@hvlen #1\relax \set@@verse }
+
+\def \set@@verse #1{% separation
+\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
+\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
+{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@@hvlen {#3}% second block
+\tracingmacros 0
+\par }
+
+\def \a@c@halfverses #1#2{% optional parameter?
+%\tracingmacros 1
+\cond{\ifx [#2}{\half@verses {#1}[}%
+{\half@verses {#1}[\hfill]{#2}}\fi }
+
+\def \half@verses #1[#2]#3{% first[mid]second
+\test@token \connverses {#1}{#2}{#3}}
+
+\fi % verses.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utfcode.sty
+
+\ifx \utfatcode \undefined \else
+
+\def \utf@dvii #1{% segment D7
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char
+ {\ifcase \u@lb
+ K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or
+ \fi }%
+\or \advance \u@lb -8 \edef \sc@char {}%
+\or \advance \u@lb -16 \edef \sc@char
+ {\ifcase \u@lb
+ Q\or b\or g\or d\or h\or w\or z\or X\or
+ \fi }%
+\or \advance \u@lb -24 \edef \sc@char
+ {\ifcase \u@lb
+ C\or y\or k\or k\or l\or m\or m\or n\or
+ \fi }%
+\or \advance \u@lb -32 \edef \sc@char
+ {\ifcase \u@lb
+ n\or s\or P\or p\or p\or S\or S\or q\or
+ \fi }%
+\or \advance \u@lb -40 \edef \sc@char
+ {\ifcase \u@lb
+ r\or \n@xp\a@S \or t\or \or \or \or \or \or
+ \fi }%
+\or \advance \u@lb -48 \edef \sc@char
+ {\ifcase \u@lb
+% w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or
+ \n@xp\a@w \or \n@xp\a@p \or \n@xp\a@h \or '\or
+ ''\or \or \or \or
+ \fi }%
+\or \advance \u@lb -56 \edef \sc@char
+ {\ifcase \u@lb
+ \or \or \or \or \or \or \or "|\or
+ \fi }%
+\fi \utf@next }
+
+\fi % utfcode.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% yiddish.sty
+
+\ifx \yidatcode \undefined \else
+
+\def \yid@t #1{% ts ?
+\ifx #1s\def \next {\yid@ts }\else
+\def \sc@char {C}\def \next {\yid@word #1}\sc@put
+\fi \next }
+
+\def \yid@ts #1{% tsh ?
+\ifx #1h\def \sc@char {C\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {S}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\fi % yiddish.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {15.03.2004} \def \a@level {h}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\ifx \a@patchlevel \undefined % first patching run
+
+\csname newtoks\endcsname \a@oldoutput
+\csname newbox\endcsname \a@oldbox
+\csname newbox\endcsname \a@newbox
+\csname newdimen\endcsname \a@prevdepth
+
+\def \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+\def \a@Rinsert #1{% put a sequence of RL words into Ltext
+%\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\def \a@box@aparm {% Arabic parameters for vbox
+\let \end \relax \def \next@command {\test@special}\transfalse
+\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
+\showfalse \spreadtrue \a@hsize \a@Lwidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\leftskip \z@ \rightskip \z@
+%\advance \a@hsize 20pt % TENTATIVE
+\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
+\def \tat@skip {0.04ex plus 0.5ex }}
+
+\def \a@box@rparm {% Roman parameters for vbox
+\hbadness 10000 \tolerance 5000
+\parskip \z@ \parfillskip \z@ plus 1fil \relax \vskip \a@vglue }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\tracingmacros 0
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \vskip -\parskip \prevdepth \a@prevdepth
+\ifvoid \a@oldbox
+\else \advance \a@lines -1 \setbox\a@oldbox \hbox
+{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+\putlineb@x {\copy\a@oldbox }\a@spacefalse
+\test@token #1 \end \unskip \unskip
+\vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines
+\ifdim \wd\a@newbox = 0pt \unhbox \tempb@x
+\else \unhbox \a@newbox
+\ifdim \wd\tempb@x = 0pt
+\else \space \ins@skip \unhbox \tempb@x
+\fi\fi \penalty -9999
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@back@line {% skip back
+\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
+\dimen2 \lastskip \unskip \unskip \unpenalty
+\global\setbox \a@oldbox \lastbox
+\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
+\advance\dimen0 -\ht\a@oldbox \fi
+\advance\dimen0 -\dimen2 \global\a@prevdepth \dimen0 \unskip }%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\showbox 255
+\setbox 255 \vbox {\unvbox 255 % put back to MVL
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % first run
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {29.04.2004} \def \a@level {i2}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% buck.sty
+
+\ifx \buckatcode \undefined \else
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbuck@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@}
+\def \sc@B {@} \def \sc@C {J} \def \sc@G {g} \def \sc@I {Qi}
+\def \sc@J {j} \def \sc@L {@} \def \sc@M {@} \def \sc@O {Qa}
+\def \sc@P {p} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {Qw}
+\def \sc@V {v} \def \sc@W {Qw} \def \sc@X {@}
+
+\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw}
+\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b}
+\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G}
+\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F}
+\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x}
+\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z}
+\def \sc@E {P} \def \sc@g {R} \sc@def _ {|B}
+\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w}
+\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN}
+\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i}
+%\sc@def ~ {@} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
+\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
+\sc@def ^ {"'}
+\sc@def = {"\n@xp \a@ZE }
+
+\a@digits = {0123456789} \a@paren = {()[]}
+\a@first = {"`}
+\setbuck@codes@hook
+\globaldefs=0 }
+\global\let \setbuck@codes@hook \relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\[ 1 \catcode `\{ 11
+\gdef \buck@beg #1[% start the TB scanner
+\h@mzafalse \iz@fetfalse \novocalize \@ssimfalse
+ \def \next [\buck@word #1}%
+\ifx #1\@ \def \next [\sc@endscan }\else % finished
+\ifx #1{\def \next [\buck@lbrace }\else
+\ifx #1"\def \next [\buck@lquote }\else
+\ifx #1A\def \next [\buck@alif }\else
+\fi\fi\fi\fi \next }
+} % catcodes 1 and 11
+
+{\catcode `\^^M=13 \catcode `\~ 11 %
+\gdef \buck@word #1#2{% transform input into internal notation
+ \def \next {\buck@word #2}%
+\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
+\ifx #1-\def \next {\buck@minus #2}\else %
+\ifx #1"\def \next {\buck@rquote #2}\else %
+\ifx #1y\def \next {\buck@yah #2}\else %
+\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character
+\ifx #1#2\def \next {\buck@two #1}\else %
+ \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+ \else \def \sc@char {\nxp #1}%
+ \fi %
+ \sc@put %
+\fi\fi\fi\fi\fi\fi \next }%
+} % catcodes 13 and 11
+
+\def \buck@alif #1{% specials?
+\def \next {\buck@word }%
+\if \nxp #1=\def \sc@char {QA}\sc@put \else
+\if \nxp #1@\def \sc@char {"}\sc@put \else
+\if \nxp #1^\def \sc@char {Qa}\sc@put \else
+\if \nxp #1_\def \sc@char {Qi}\sc@put \else
+\def \sc@char {A}\def \next {\buck@word #1}\sc@put
+\fi\fi \fi\fi \next }
+
+\def \buck@yah #1{% hamza?
+\def \next {\buck@word }%
+\if \nxp #1^\def \sc@char {Qy}\sc@put \else
+\def \sc@char {y}\def \next {\buck@word #1}\sc@put
+\fi \next }
+
+\def \set@buck {% substitute new scanner
+\let \sc@beg \buck@beg \let \sc@word \buck@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\global\let \a@scan \a@@scan \setbuck@codes
+\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes
+\let \test@special \buck@special
+\message {input coding set to Tim Buckwalter's encoding conventions}}
+
+\def \buck@cat {% change catcodes
+\catcode `\# 11 \catcode `\= 11 \catcode `\^ 11 \catcode `\~ 11
+\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11
+\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11
+\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 }
+
+\def \buck@recat {% change catcodes back
+\catcode `\# 6 \catcode `\= 12 \catcode `\^ 7 \catcode `\~ 13
+\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4
+\catcode `\< 12 \catcode `\} 2 \catcode `\* 12 \catcode `\$ 3
+\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 }
+
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
+\case #1\of
+{ |{\put@con Q}
+ A{\put@con a\add@madda \@sukfalse }
+ y{\put@con Y\add@hamza \ifqur@n \add@hamzalow \fi }
+ u{\put@con w\add@hamza }
+ i{\put@con a\add@hamza \add@hamzalow }
+\default {\put@con #1\add@hamza }
+}\endcase \syl@voctest }
+
+\def \syl@quote@voc #1{% continue syllable with quote: " #1 #2
+\case #1\of
+{ B{\togglev@c \add@sukun \put@syl \syl@con #1}
+ "{\togglev@c \add@sukun \put@syl \syl@beg }
+ |{\syl@@quote@voc }
+ '{\add@hamza \syl@voctest }
+\default {\togglev@c \syl@voctest #1}% vowel: sukun
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+
+\ifx \a@hebr \undefined \else
+
+\ifx \a@patchlevel \undefined % load only the first time
+\else
+\global\let \@@set@hcls \set@hcls
+
+\gdef \set@hcls {%
+\@@set@hcls
+\global\let \h@putvowel \h@put@@vowel
+}
+
+\fi
+
+\gdef \h@put@@vowel #1{% vowel mark
+\ifx #1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+%\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.80}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss #1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -1\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }
+
+\fi % a@hebr
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {17.05.2004} \def \a@level {j}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@RL {% RTL insertion inside LRtext
+\ifaRL \else \aRLtrue
+ \let \a@RLpar \par % prepare for normal baselines
+ \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
+ \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
+\fi
+\ifhmode \lineskiplimit -.9\baselineskip
+\fi % enforce uniform baselines
+\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
+
+\def \a@Rinsert #1{% put a sequence of RL words into Ltext
+\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \vskip -\parskip \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else
+\advance \a@lines -1 \setbox\a@oldbox \hbox
+{\hskip -\leftskip \unhbox\a@oldbox \unskip \unskip \unpenalty }\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\copy\a@oldbox }\a@spacefalse
+ \test@token #1 \end \unskip \unskip
+ \vskip \a@vglue \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else \space \ins@skip
+\fi\fi \unhbox \tempb@x \penalty -9999
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.sty
+
+\def \a@endx {\if@ignore \@ignorefalse \xpa\ignorespaces \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {24.05.2004} \def \a@level {k}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+\def \all@false {% reset language code to default
+\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse
+\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse \k@shfalse
+\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\arab@output \catcode`\<=\active }
+
+\pdef \setuighur {% switch language specific processing
+\let \vocalize \novocalize \let \fullvocalize \novocalize
+\novocalize \all@false \@ssimfalse \h@mzafalse
+\u@ghtrue \def \a@defaultfont {\setnash }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\def \a@RL {% RTL insertion inside LRtext
+\ifaRL \else \aRLtrue
+ \let \a@RLpar \par % prepare for normal baselines
+ \edef \a@lslimit {\lineskiplimit \the\lineskiplimit}%
+ \def \par {\a@RLpar \let \par \a@RLpar \a@lslimit \aRLfalse }%
+\fi
+\lineskiplimit -.9\baselineskip % enforce uniform baselines
+\bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse \a@@Rinsert }
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+$$\global\a@lines \prevgraf \global\a@Lwidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@lines -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@lines \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack \fi
+\egroup }
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\showbox 255
+\setbox 255 \vbox {\unvbox 255 % put back to MVL
+\a@back@line }\unvbox 255 }
+
+\def \a@Runpack {% unpack all lines from the insertion
+\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
+\ifvbox \Rinsertb@x \repeat \unpenalty \RLskip }
+
+\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (right)
+\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (left)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@Linsert #1{% splice Ltext into RL paragraph
+\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
+\putwordb@x {\LRskip }\a@spacetrue \arab@codes
+\tracingmacros 0
+\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {22.06.2004} \def \a@level {l}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alists.sty
+
+\def \a@c@item
+{\@ifnextchar [{\a@@item }{\@noitemargtrue
+\expandafter \a@@item \expandafter [\@itemlabel ]}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+
+\let \ac@high \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+
+\at@arabtext {% switch to Arabic terms
+ \def\labelenumi{\theenumi\nospace-}
+ \def\labelenumiii{\theenumiii\nospace)}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {23.01.2005} \def \a@level {m}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabext.sty
+
+\ifx \a@@figure \undefined \else
+
+\def \a@@figure {% figure within Arabic environment
+\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }%
+\a@par \figure }
+
+\def \a@@table {% table within Arabic environment
+\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }%
+\a@par \table }
+
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {06.04.2005} \def \a@level {n}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+% for use with abidir.sty version 3.12a:
+\csname newcount\endcsname \a@lines
+\csname newdimen\endcsname \a@Lwidth
+
+%\newdimen \a@prevdepth
+%\newdimen \a@displaywidth
+%\newcount \a@prevgraf
+%\newtoks \a@oldoutput
+
+\def \RLskip {\hskip \z@ plus 0.1em }% after RL insertion (right)
+\def \LRskip {\hskip 1em plus 0.1em }% before RL insertion (left)
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
+$${\endgraf }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@prevgraf -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\else \RLskip
+\fi
+\egroup }
+
+\gdef \a@back@line {% skip back over empty display
+\dimen0 \baselineskip \unskip \unpenalty \setbox0 \lastbox
+\dimen2 \lastskip \unskip \unskip \unpenalty
+\global\setbox \a@oldbox \lastbox % last line
+\ifvoid \a@oldbox \else \dimen2 \lastskip \unskip
+\advance\dimen0 -\ht\a@oldbox \fi
+\advance\dimen0 -\dimen2 % compute \prevdepth
+\global\a@prevdepth \dimen0 \unskip }%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
+\setbox 255 \vbox {\unvbox 255 % put back into MVL
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+% because of an incompatible change in Plain 3.1415926
+
+\gdef \x@s #1{\oalign{#1\crcr\hidewidth \nsh@ft{34}% accent for _h
+ \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}}
+
+\gdef \x@x #1{\oalign{#1\crcr\hidewidth \nsh@ft{29}% accent for .s in Urdu
+ \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}}
+
+\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
+ \kern.0156\dimen\z@} % positive kern for slant
+
+\def \rsh@ft #1#2{\ish@ft{#1}#2\nsh@ft{#1}}
+
+\def \nsh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
+ \kern-.0156\dimen\z@} % compensate for slant in lowered accents
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {25.01.2006} \def \a@level {o}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% version 3.11i::abidir.sty
+
+%\csname newbox\endcsname for \newbox etc. (inner!)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aligs.sty
+
+\def \hah@end #1#2*#3#4+#5*#6{% hah, test for ligature
+% c1 m1 * c2 m21 + m22 * c3
+\ifu@gh \ifx #1\a@H
+ \else \set@act \sk@h@u
+ \fi
+\else
+\ifm@lay \else
+\ifurd@ \set@act \sk@h@s \hah@urd #3% round h?
+ \ifx #1T\else
+ \ifx #3l\test@allah {#4}{#6}\else
+ \ifx #1\a@H
+ \else \set@act\sk@h@u
+ \if\is@end@char #3%
+ \else \set@loww@act \global\a@min 1
+ \fi
+ \fi\fi\fi
+\else
+\ifx #3l\test@allah {#4}{#6}\else
+\ifnum \chr@cls = 1 \set@chr\sk@b \put@tatwil % 1 YntCbyp
+\else
+\ifnum \chr@cls = 3 \put@tatwil % 3 GHX
+\else \gim@test #6\put@tatwil
+\fi
+\fi\fi\fi\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {08.02.2006} \def \a@level {p}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\csname newdimen\endcsname \a@displaywidth
+
+\def \LRskip {\hskip \z@ plus 0.1em }% before RL insertion (left)
+
+\def \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+$$\global\a@prevgraf \prevgraf \global\a@displaywidth \displaywidth
+$${\par }%
+\ifinner \a@back@line \else
+\global\output = {\a@newoutput }\eject
+\fi \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \else \advance \a@prevgraf -1
+\setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \space \LRskip
+\fi\fi\fi \unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\else \RLskip
+\fi
+\egroup }
+
+\def \a@box@aparm {% Arabic parameters for vbox
+\let \end \relax \def \next@command {\test@special}\transfalse
+\def \a@kern {\nobreak\kern.05em } \def \a@mkern {\nobreak\kern-.05em }
+\showfalse \spreadtrue \a@hsize \a@displaywidth
+\advance \a@hsize -\leftskip \advance \a@hsize -\rightskip
+\leftskip \z@ \rightskip \z@
+%\advance \a@hsize 20pt % TENTATIVE
+\def \arab@space {\nobreak\hskip 5pt plus 4pt minus 1pt }%
+\def \tat@skip {0.04ex plus 0.5ex }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aoutput.sty
+
+\def \put@ab@x {% deposit line
+\ifhmode \unskip {\par }\penalty \clubpenalty
+\parindent \z@ \parskip \z@ \else
+\ifnum \a@prevgraf = \z@ \else \penalty \widowpenalty
+\fi\fi
+\begingroup \parfillskip 0pt plus 1fill
+ \leftskip \z@ \rightskip \z@ \noindent
+ \ifdim \a@leftmargin = \z@ \else \hskip \a@leftmargin \fi
+ \box\a@tempb@x \par
+\endgroup \parindent \z@ \parskip \z@ plus 1pt \initlineb@x
+\advance \a@prevgraf \@ne \a@@prevgraf \prevgraf
+\advance \a@@prevgraf \@ne \prevgraf \a@@prevgraf }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% altxext.sty
+
+\ifx \a@olddisp \undefined
+\let \a@olddisp \[ % for lineno.sty
+\ifx \linenumbers \undefined \else
+ \def \[{\par\nobreak\noindent \a@olddisp}
+ \all@w@ne \linelabel
+\fi
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for acmd.sty in version 3.11 only!
+
+\def \a@c@smallskip {\a@@par \smallskip \test@token }
+\def \a@c@medskip {\a@@par \medskip \test@token }
+\def \a@c@bigskip {\a@@par \bigskip \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aparse.sty
+
+{\catcode `\< = \@other % better make sure
+\gdef \a@parse #1>{% parse token sequence into syllables
+\iftest@parse \tracingmacros = 1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+\csname a@parse@hook\endcsname
+\last@con ={.}\last@mod = 0 \last@voc = 0 \global\@highfalse
+\global \sv@revwd ={}\global \a@revwd ={}\syl@beg #1<<<>%
+\iftest@parse \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@revwd )>\fi }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {01.03.2006} \def \a@level {q}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alatex.sty
+
+\ifx \linenumbers \undefined
+\global\let \linenumbers \relax \fi
+\global\let \ifLineNumbers \iffalse
+% CAUTION: must be in \outer context!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\gdef \a@Rinsert #1{% put a sequence of RL words into Ltext
+\leavevmode % go to hmode if not there already
+\ifinner \a@sequence {#1}% inside a \hbox: append
+\else \a@@Rsplit {#1}% splice into the current paragraph
+\fi }
+
+\gdef \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@back@line {% skip back over last line
+\ifLineNumbers % undo last linenumber
+ \unskip \unkern \unskip \unpenalty \setbox0 \lastbox
+ \ifvoid0 \else \global \advance \c@linenumber -1
+ \fi \unkern \unskip
+\fi \global\setbox \a@oldbox \lastbox % grab last text line
+\ifvoid \a@oldbox \prevdepth 0pt % start of paragraph
+\else \dimen0 \baselineskip \advance\dimen0 -\ht\a@oldbox
+ \advance\dimen0 -\lastskip \prevdepth \dimen0 % compute \prevdepth
+\fi \unskip }
+
+\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+\dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+\everypar {}%
+\par \global\a@prevgraf \prevgraf
+\ifinner \a@back@line \else
+ \global\output = {\a@newoutput }\break
+\fi
+\dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
+\ifvoid \a@oldbox \global \a@displaywidth \hsize
+\else \advance \a@prevgraf -1 \vskip -\parskip
+ \global \a@displaywidth \wd \a@oldbox
+ \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else \space \LRskip
+\fi\fi\fi
+\unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack \else \RLskip
+\fi \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@newoutput {% intermediate output routine
+\global\output = \a@oldoutput
+%\ifnum \tracingmacros = 0 \else \showbox 255 \fi
+%\showbox255
+\setbox 255 \vbox {\unvbox 255 % put back into MVL
+%\tracingmacros 1
+\a@back@line }\unvbox 255 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@Linsert #1{% splice Ltext into RL paragraph
+%\tracingmacros 1
+\putwordb@x {\RLskip }\a@spacefalse \a@@Linsert {#1}\a@Lunpack
+\putwordb@x {\LRskip }\a@spacetrue \arab@codes
+%\tracingmacros 0
+\test@token }
+
+\gdef \a@@Linsert #1{% splice Ltext into RL paragraph
+\dimen0 \wd \lineb@x \setbox \Linsertb@x \vbox
+{\hsize \a@hsize \hangindent -\dimen0 \hangafter -\@ne
+\tr@ceoff \rm \tr@ceon \rightskip \z@ plus .001fil
+\vskip \a@vglue \everypar {}\parskip \z@
+\dimen2 \fontdimen4\font \fontdimen4\font 0pt % prevent shrinking
+\noindent \null #1\clubpenalty 0 \widowpenalty 0 \tolerance 10000
+\endgraf \fontdimen4\font \dimen2 }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+
+\ifx \a@check@mathfonts \undefined
+\global\let \a@check@mathfonts \check@mathfonts
+\gdef\check@mathfonts{\tr@ceoff % dont trace fonts
+\a@check@mathfonts \tr@ceon }
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% aedpatch.sty
+
+\let \ins@skip \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+
+%\long\def \test@@special #1{% check for special cases
+\long\gdef \test@special #1{% check for special cases
+\ifcat \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+\if \sp@ce \nxp \next@token % RTL space
+ \a@@putword \def \next {\get@token }\else
+\ifnum `#1 > 127 % inputenc command
+ \a@@append {#1}\def \next {\get@token}\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {16.04.2006} \def \a@level {r}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% abidir.sty
+
+\gdef \a@@Rinsert #1{% RL insertion inside Ltext
+%\tracingmacros 1
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@Rinsert {#1}\fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\RLskip \egroup }
+
+\gdef \a@@Rsplit #1{% splice RL words into the current paragraph
+\bgroup \global\a@oldoutput = \output
+ \dimen0 \vsize \advance \dimen0 100pt \pagegoal \dimen0
+ \skip0 \lastskip \everypar {}\par \global\a@prevgraf \prevgraf
+\ifinner \a@back@line \else \global\output = {\a@newoutput }\break
+\fi
+ \dimen0 \pagegoal \advance \dimen0 -100pt \pagegoal \dimen0
+ \global\prevdepth \a@prevdepth
+\ifvoid \a@oldbox \global \a@displaywidth \hsize
+\else \advance \a@prevgraf -1 \vskip -\parskip
+ \global \a@displaywidth \wd \a@oldbox
+ \setbox\a@oldbox \hbox {\hskip -\leftskip \unhbox\a@oldbox
+ \unskip \unskip \unpenalty \unpenalty }%
+\fi
+\setbox\Rinsertb@x \vbox {\a@box@rparm \a@box@aparm \let \par \endgraf
+ \putlineb@x {\hbox {\unhcopy\a@oldbox }}\a@spacefalse
+ \test@token #1 \end \hbox {\box\lineb@x \hfill }}%
+\a@Rgetline
+\setbox\tempb@x \hbox {\unhbox \tempb@x \unskip \unpenalty
+ \global\setbox \a@newbox \lastbox }%
+\noindent \prevgraf \a@prevgraf \unhcopy \a@newbox
+\ifdim \wd\a@newbox = 0pt \else
+\ifdim \wd\a@newbox = \parindent \else
+\ifdim \wd\tempb@x = 0pt \else
+ \ifdim \skip0 = 0pt \else \hskip \skip0
+ \fi \LRskip
+\fi\fi\fi
+\unhbox \tempb@x
+\ifvbox \Rinsertb@x \break \a@Runpack
+\fi \egroup }
+
+\def \a@Runpack {% unpack all lines from the insertion
+\loop \a@Rgetline \unhbox \tempb@x \unskip \unskip \break
+\ifvbox \Rinsertb@x \repeat \unpenalty }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \a@pdatum {02.07.2006} \def \a@level {s}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\input alocal.sty % local patches!
+% must be idempotent!
+
+\ifx \a@patchlevel \undefined % first patching run
+\a@ident {apatch.sty}
+ {\a@version\a@level\space last minute patches } {\a@pdatum }
+ \edef \a@patchlevel {\a@version \a@level \space (\a@pdatum )}
+\else \a@message {version \a@patchlevel: second phase of patching}
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`\" = \patchdqcode \catcode`\@ = \patchatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/arababel.sty b/language/arabic/arabtex/texinput/arababel.sty
index 04e750d52d..a714bd2380 100644
--- a/language/arabic/arabtex/texinput/arababel.sty
+++ b/language/arabic/arabtex/texinput/arababel.sty
@@ -1,39 +1,39 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arababel.sty
-% protect against a conflict with the BABEL package
-% as suggested by Olaf Kummer and Johannes Braams
-% 10.03.98
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {arababel.sty}{3.07 BABEL compatibility } {10.03.1998}
-
-\def\peek@token#1#2{%
- \expandafter\let\expandafter\bbl@nexta\csname #1\string#2\endcsname
- \expandafter\let\expandafter\bbl@nextb
- \csname system@active\string#2\endcsname
- \futurelet\bbl@token\bbl@test@token}
-
-\def\bbl@test@token{%
- \let\bbl@next\bbl@nexta
- \ifcat\noexpand\bbl@token a%
- \else
- \ifcat\noexpand\bbl@token=%
- \else
- \ifcat\noexpand\bbl@token\noexpand\bbl@next
- \else
- \let\bbl@next\bbl@nextb
- \fi
- \fi
- \fi
- \bbl@next}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arababel.sty
+% protect against a conflict with the BABEL package
+% as suggested by Olaf Kummer and Johannes Braams
+% 10.03.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {arababel.sty}{3.07 BABEL compatibility } {10.03.1998}
+
+\def\peek@token#1#2{%
+ \expandafter\let\expandafter\bbl@nexta\csname #1\string#2\endcsname
+ \expandafter\let\expandafter\bbl@nextb
+ \csname system@active\string#2\endcsname
+ \futurelet\bbl@token\bbl@test@token}
+
+\def\bbl@test@token{%
+ \let\bbl@next\bbl@nexta
+ \ifcat\noexpand\bbl@token a%
+ \else
+ \ifcat\noexpand\bbl@token=%
+ \else
+ \ifcat\noexpand\bbl@token\noexpand\bbl@next
+ \else
+ \let\bbl@next\bbl@nextb
+ \fi
+ \fi
+ \fi
+ \bbl@next}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/texinput/arabart.cls b/language/arabic/arabtex/texinput/arabart.cls
index 2763605723..429618e62b 100644
--- a/language/arabic/arabtex/texinput/arabart.cls
+++ b/language/arabic/arabtex/texinput/arabart.cls
@@ -1,24 +1,24 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabart.cls
-% ArabTeX extension
-% Arabic version of article.cls
-% for use with ArabTeX Version 3.04
-%
-% Copyright (C) 1995 by Klaus Lagally
-% 21.05.96
-%
-% reusing arabrep.cls of 21 May 1996
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NeedsTeXFormat {LaTeX2e}[1995/06/01]
-\ProvidesClass {arabart}[1996/05/21 v0.01 arabic article format]
-
-\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}}
-\ProcessOptions
-\LoadClass [article]{arabrep}[1996/05/21] % load the Arabic report class
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% end of file arabart.cls
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabart.cls
+% ArabTeX extension
+% Arabic version of article.cls
+% for use with ArabTeX Version 3.04
+%
+% Copyright (C) 1995 by Klaus Lagally
+% 21.05.96
+%
+% reusing arabrep.cls of 21 May 1996
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat {LaTeX2e}[1995/06/01]
+\ProvidesClass {arabart}[1996/05/21 v0.01 arabic article format]
+
+\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}}
+\ProcessOptions
+\LoadClass [article]{arabrep}[1996/05/21] % load the Arabic report class
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% end of file arabart.cls
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/arabaux.sty b/language/arabic/arabtex/texinput/arabaux.sty
index 466c0cfef7..490c00af79 100644
--- a/language/arabic/arabtex/texinput/arabaux.sty
+++ b/language/arabic/arabtex/texinput/arabaux.sty
@@ -1,134 +1,134 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabaux.sty
-% auxiliary macros for ArabTeX
-% 27.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {arabaux.sty} {3.11 auxiliary macros for ArabTeX} {21.05.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@message #1{% ArabTeX message
-\message{(ArabTeX) #1}}
-
-\def \isfalse {\xxpa \iffalse \fi } % invert condition before \fi
-\def \setiffalse {\xpa \iffalse \fi } % invert condition before \fi
-
-\def \NOT #1{00\if #1\xpa \setiffalse \fi }
-
-\def \AND #1#2{00\if #1\if #2\else \xxpa \setiffalse \fi
-\else \xpa \setiffalse \fi }
-
-\def \OR #1#2{00\if #1\else \if #2\else \xpa \setiffalse \fi \fi }
-
-\def \isx #1#2{00\ifx #1#2\else\xpa \setiffalse \fi }
-
-\def \iscat #1#2{00\ifcat #1#2\else\xpa \setiffalse \fi }
-
-\def \is #1#2{00\if #1#2\else\xpa \setiffalse \fi }
-
-\long\def \Return #1\fi {\fi #1}
-\long\def \ReturnFi #1\fi {\fi #1}
-\long\def \ReturnElseFi #1\else #2\fi {\fi #1}
-
-\long\def \cond #1#2#3\fi {% call conditional
-#1\ReturnElseFi {#2}\else \ReturnFi {#3}\fi }
-
-%%%%%%%%%%%%%%%%%%%%
-
-\def \@gobble #1{}
-
-\let \protect \relax
-
-\ifx \@\undefined \def \@{@}\fi
-
-\ifx \nil \undefined \def \nil {NIL}\fi
-
-\def \pdef #1{% define robust command
-\edef #1{\nxp\protect \xpa\nxp\csname \xpa\@gobble\string #1 \endcsname }%
-\xpa\def \csname \xpa\@gobble\string #1 \endcsname }
-
-\def \a@extend #1#2{% extend command definition, no pars!
-\xpa\gdef \xpa#1\xpa{#1#2}}
-
-%%%%%%%%%%%%%%%%%%%%
-
-% map token to action
-% allow list of labels
-\def \case #1\of #{%
- \begingroup \tracingmacros 0
- \def \l@@kup ##1#1##2##{\h@@d }%
- \getc@se #1\of }
-
-\def \getc@se #1\of #2#3\endcase {%
- \doc@se #1#2\default {}\@end }
-
-\def \doc@se #1#2\default #3#4\@end {%
- \l@@kup #2#1{#3}\@end }
-
-\def \h@@d #1#2\@end {\endgroup #1}
-
-% evaluate map: sets \result
-\def \evalcase #1\of #{%
- \begingroup \tracingmacros 0
- \def \l@@kup ##1#1##2##{\r@sult }%
- \getc@se #1\of }
-
-\def \r@sult #1#2\@end {\endgroup \def \result {#1}}
-
-% apply function to map:
-\def \apply #1\tocase #2\of #{%
- \begingroup \tracingmacros 0
- \def \l@@kup ##1#2##2##{\@pply {#1}}%
- \getc@se #2\of }
-
-\def \@pply #1#2#3\@end {\endgroup #1{#2}}
-
-%%%%%%%%%%%%%%%%%%%%%%%% tracing control %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \tr@ceoff {% suspend temporarily, local, no nesting!
-\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 }
-
-\def \notr@ce {% suspend temporarily, for NFSS only, no nesting!
-\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 }
-
-\let \tr@ceon \relax \let \dotr@ce \relax
-
-\let \a@setfontsize \@setfontsize
-
-\def \@setfontsize #1#2#3{% do not trace NFSS routine
-\notr@ce \a@setfontsize {#1}{#2}{#3}\dotr@ce }
-
-%%%%%%%%%%%%%%%%%%%%%%%% list utilities %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\long\def \is@in@list #1#2>{00% #1 token, #2 list
- \begingroup \tracingmacros 0
- \def \l@@kup ##1#1##2\@ {\endgroup \ifx >##2\isfalse \fi }%
- \l@@kup #2#1>\@ }
-
-\long\def \ismember #1#2{00% #1 token, #2 list
- \begingroup \tracingmacros 0
- \def \l@@kup ##1#1##2\@@ {\endgroup \ifx \nil ##2\xpa \setiffalse \fi }%
- \l@@kup #2#1\nil \@@ }
-
-\long\def \is@in@set #1#2{% #1 = symbol, #2 = token list of symbols
-\xpa \ismember \xpa #1\xpa {\the #2}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcount \hours \newcount \mins
-
-\def \timeofday
-{\hours \time \divide \hours 60 \the\hours:%
-\mins \time \multiply \hours 60 \advance \mins -\hours
-\ifnum 10 > \mins \relax 0\fi \the\mins }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabaux.sty
+% auxiliary macros for ArabTeX
+% 27.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {arabaux.sty} {3.11 auxiliary macros for ArabTeX} {21.05.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@message #1{% ArabTeX message
+\message{(ArabTeX) #1}}
+
+\def \isfalse {\xxpa \iffalse \fi } % invert condition before \fi
+\def \setiffalse {\xpa \iffalse \fi } % invert condition before \fi
+
+\def \NOT #1{00\if #1\xpa \setiffalse \fi }
+
+\def \AND #1#2{00\if #1\if #2\else \xxpa \setiffalse \fi
+\else \xpa \setiffalse \fi }
+
+\def \OR #1#2{00\if #1\else \if #2\else \xpa \setiffalse \fi \fi }
+
+\def \isx #1#2{00\ifx #1#2\else\xpa \setiffalse \fi }
+
+\def \iscat #1#2{00\ifcat #1#2\else\xpa \setiffalse \fi }
+
+\def \is #1#2{00\if #1#2\else\xpa \setiffalse \fi }
+
+\long\def \Return #1\fi {\fi #1}
+\long\def \ReturnFi #1\fi {\fi #1}
+\long\def \ReturnElseFi #1\else #2\fi {\fi #1}
+
+\long\def \cond #1#2#3\fi {% call conditional
+#1\ReturnElseFi {#2}\else \ReturnFi {#3}\fi }
+
+%%%%%%%%%%%%%%%%%%%%
+
+\def \@gobble #1{}
+
+\let \protect \relax
+
+\ifx \@\undefined \def \@{@}\fi
+
+\ifx \nil \undefined \def \nil {NIL}\fi
+
+\def \pdef #1{% define robust command
+\edef #1{\nxp\protect \xpa\nxp\csname \xpa\@gobble\string #1 \endcsname }%
+\xpa\def \csname \xpa\@gobble\string #1 \endcsname }
+
+\def \a@extend #1#2{% extend command definition, no pars!
+\xpa\gdef \xpa#1\xpa{#1#2}}
+
+%%%%%%%%%%%%%%%%%%%%
+
+% map token to action
+% allow list of labels
+\def \case #1\of #{%
+ \begingroup \tracingmacros 0
+ \def \l@@kup ##1#1##2##{\h@@d }%
+ \getc@se #1\of }
+
+\def \getc@se #1\of #2#3\endcase {%
+ \doc@se #1#2\default {}\@end }
+
+\def \doc@se #1#2\default #3#4\@end {%
+ \l@@kup #2#1{#3}\@end }
+
+\def \h@@d #1#2\@end {\endgroup #1}
+
+% evaluate map: sets \result
+\def \evalcase #1\of #{%
+ \begingroup \tracingmacros 0
+ \def \l@@kup ##1#1##2##{\r@sult }%
+ \getc@se #1\of }
+
+\def \r@sult #1#2\@end {\endgroup \def \result {#1}}
+
+% apply function to map:
+\def \apply #1\tocase #2\of #{%
+ \begingroup \tracingmacros 0
+ \def \l@@kup ##1#2##2##{\@pply {#1}}%
+ \getc@se #2\of }
+
+\def \@pply #1#2#3\@end {\endgroup #1{#2}}
+
+%%%%%%%%%%%%%%%%%%%%%%%% tracing control %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \tr@ceoff {% suspend temporarily, local, no nesting!
+\edef \tr@ceon {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 }
+
+\def \notr@ce {% suspend temporarily, for NFSS only, no nesting!
+\edef \dotr@ce {\nxp\tracingmacros \the\tracingmacros }\tracingmacros 0 }
+
+\let \tr@ceon \relax \let \dotr@ce \relax
+
+\let \a@setfontsize \@setfontsize
+
+\def \@setfontsize #1#2#3{% do not trace NFSS routine
+\notr@ce \a@setfontsize {#1}{#2}{#3}\dotr@ce }
+
+%%%%%%%%%%%%%%%%%%%%%%%% list utilities %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\long\def \is@in@list #1#2>{00% #1 token, #2 list
+ \begingroup \tracingmacros 0
+ \def \l@@kup ##1#1##2\@ {\endgroup \ifx >##2\isfalse \fi }%
+ \l@@kup #2#1>\@ }
+
+\long\def \ismember #1#2{00% #1 token, #2 list
+ \begingroup \tracingmacros 0
+ \def \l@@kup ##1#1##2\@@ {\endgroup \ifx \nil ##2\xpa \setiffalse \fi }%
+ \l@@kup #2#1\nil \@@ }
+
+\long\def \is@in@set #1#2{% #1 = symbol, #2 = token list of symbols
+\xpa \ismember \xpa #1\xpa {\the #2}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcount \hours \newcount \mins
+
+\def \timeofday
+{\hours \time \divide \hours 60 \the\hours:%
+\mins \time \multiply \hours 60 \advance \mins -\hours
+\ifnum 10 > \mins \relax 0\fi \the\mins }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/arabbook.cls b/language/arabic/arabtex/texinput/arabbook.cls
index 2677d06ab7..45b3b9e0cd 100644
--- a/language/arabic/arabtex/texinput/arabbook.cls
+++ b/language/arabic/arabtex/texinput/arabbook.cls
@@ -1,23 +1,23 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabbook.cls
-% ArabTeX extension
-% Arabic version of book.cls
-% for use with ArabTeX Version 3.04
-%
-% Copyright (C) 1995 by Klaus Lagally
-% 21.05.96
-%
-% reusing arabrep.cls of 18 May 1996
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NeedsTeXFormat {LaTeX2e}[1995/06/01]
-\ProvidesClass {arabbook}[1996/05/21 v0.01 arabic book format]
-
-\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}}
-\ProcessOptions
-\LoadClass [book]{arabrep}[1996/05/18] % load the Arabic report class
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% end of file arabbook.cls
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabbook.cls
+% ArabTeX extension
+% Arabic version of book.cls
+% for use with ArabTeX Version 3.04
+%
+% Copyright (C) 1995 by Klaus Lagally
+% 21.05.96
+%
+% reusing arabrep.cls of 18 May 1996
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat {LaTeX2e}[1995/06/01]
+\ProvidesClass {arabbook}[1996/05/21 v0.01 arabic book format]
+
+\DeclareOption* {\PassOptionsToClass {\CurrentOption}{arabrep}}
+\ProcessOptions
+\LoadClass [book]{arabrep}[1996/05/18] % load the Arabic report class
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% end of file arabbook.cls
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/arabchrs.sty b/language/arabic/arabtex/texinput/arabchrs.sty
index f5486e59d0..3980ffdcb1 100644
--- a/language/arabic/arabtex/texinput/arabchrs.sty
+++ b/language/arabic/arabtex/texinput/arabchrs.sty
@@ -1,77 +1,77 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabchrs.sty
-% ArabTeX
-% dynamic letter token definitions for Arabic
-% Version 11.07.98
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {arabchrs.sty} {3.07 letter token definitions } {11.07.1998}
-
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \def@arabchars {% define character macros for Arabic
-% dynamic letter token definitions for Arabic
-% pattern: skeleton, modifier
-\gdef \tc@@ {\sk@@ , 0 } % illegal
-\gdef \tc@a {\sk@a , 0 } % alif
-\gdef \tc@b {\sk@b , 4 } % bah
-\gdef \tc@c {\sk@hh , 7 } % gim with hamza
-\gdef \tc@d {\sk@d , 0 } % dal
-\gdef \tc@e {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@f {\sk@f@s , 1 } % fah
-\gdef \tc@g {\sk@g@s , 0 } % gaf with bar
-\gdef \tc@h {\sk@h , 0 } % hah
-\gdef \tc@i {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@j {\sk@r , 3 } % zhah
-\gdef \tc@k {\sk@k , 0 } % kaf
-\gdef \tc@l {\sk@l , 0 } % lam
-\gdef \tc@m {\sk@m , 0 } % mim
-\gdef \tc@n {\sk@n , 1 } % nun
-\gdef \tc@o {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@p {\sk@b , 6 } % pah
-\gdef \tc@q {\sk@q , 2 } % qaf
-\gdef \tc@r {\sk@r , 0 } % rah
-\gdef \tc@s {\sk@s , 0 } % sin
-\gdef \tc@t {\sk@b , 2 } % tah
-\gdef \tc@u {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@v {\sk@f@s , 3 } % vah
-\gdef \tc@w {\sk@w , 0 } % waw
-\gdef \tc@x {\sk@s , 3 } % shin
-\gdef \tc@y {\sk@y , 5 } % yah
-\gdef \tc@z {\sk@r , 1 } % zay
-%
-\gdef \tc@A {\sk@a , 0 } % alif also
-\gdef \tc@B {\sk@B , 0 } % tatwil
-\gdef \tc@C {\sk@b , 3 } % thah
-\gdef \tc@D {\sk@ss , 1 } % ddad
-\gdef \tc@E {\sk@y@p , 5 } % yah bari
-\gdef \tc@F {\sk@d , 1 } % dhal
-\gdef \tc@G {\sk@hh , 4 } % gim
-\gdef \tc@H {\sk@hh , 0 } % hhah
-\gdef \tc@I {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@J {\sk@hh , 6 } % tchah
-\gdef \tc@K {\sk@k , 3 } % kaf-i-nun
-\gdef \tc@L {\sk@y@h , 0 } % yah with stroke
-\gdef \tc@M {\sk@n , 6 } % nya (Malay)
-\gdef \tc@N {\sk@W , 0 } % small space
-\gdef \tc@O {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@P {\sk@ain , 0 } % `ain
-\gdef \tc@Q {\sk@Q , 0 } % hamza
-\gdef \tc@R {\sk@ain , 1 } % ghain
-\gdef \tc@S {\sk@ss , 0 } % ssad
-\gdef \tc@T {\sk@h@m , 2 } % tah marbuta
-\gdef \tc@U {\sk@@ , 0 } % reserved for vowel
-\gdef \tc@V {\sk@tt , 0 } % ttah
-\gdef \tc@W {\sk@W , 0 } % small space
-\gdef \tc@X {\sk@kh , 1 } % khah
-\gdef \tc@Y {\sk@y , 0 } % alif maqsura
-\gdef \tc@Z {\sk@tt , 1 } % zzah
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}}% end of dynamic letter token definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabchrs.sty
+% ArabTeX
+% dynamic letter token definitions for Arabic
+% Version 11.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {arabchrs.sty} {3.07 letter token definitions } {11.07.1998}
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@arabchars {% define character macros for Arabic
+% dynamic letter token definitions for Arabic
+% pattern: skeleton, modifier
+\gdef \tc@@ {\sk@@ , 0 } % illegal
+\gdef \tc@a {\sk@a , 0 } % alif
+\gdef \tc@b {\sk@b , 4 } % bah
+\gdef \tc@c {\sk@hh , 7 } % gim with hamza
+\gdef \tc@d {\sk@d , 0 } % dal
+\gdef \tc@e {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@f {\sk@f@s , 1 } % fah
+\gdef \tc@g {\sk@g@s , 0 } % gaf with bar
+\gdef \tc@h {\sk@h , 0 } % hah
+\gdef \tc@i {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@j {\sk@r , 3 } % zhah
+\gdef \tc@k {\sk@k , 0 } % kaf
+\gdef \tc@l {\sk@l , 0 } % lam
+\gdef \tc@m {\sk@m , 0 } % mim
+\gdef \tc@n {\sk@n , 1 } % nun
+\gdef \tc@o {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@p {\sk@b , 6 } % pah
+\gdef \tc@q {\sk@q , 2 } % qaf
+\gdef \tc@r {\sk@r , 0 } % rah
+\gdef \tc@s {\sk@s , 0 } % sin
+\gdef \tc@t {\sk@b , 2 } % tah
+\gdef \tc@u {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@v {\sk@f@s , 3 } % vah
+\gdef \tc@w {\sk@w , 0 } % waw
+\gdef \tc@x {\sk@s , 3 } % shin
+\gdef \tc@y {\sk@y , 5 } % yah
+\gdef \tc@z {\sk@r , 1 } % zay
+%
+\gdef \tc@A {\sk@a , 0 } % alif also
+\gdef \tc@B {\sk@B , 0 } % tatwil
+\gdef \tc@C {\sk@b , 3 } % thah
+\gdef \tc@D {\sk@ss , 1 } % ddad
+\gdef \tc@E {\sk@y@p , 5 } % yah bari
+\gdef \tc@F {\sk@d , 1 } % dhal
+\gdef \tc@G {\sk@hh , 4 } % gim
+\gdef \tc@H {\sk@hh , 0 } % hhah
+\gdef \tc@I {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@J {\sk@hh , 6 } % tchah
+\gdef \tc@K {\sk@k , 3 } % kaf-i-nun
+\gdef \tc@L {\sk@y@h , 0 } % yah with stroke
+\gdef \tc@M {\sk@n , 6 } % nya (Malay)
+\gdef \tc@N {\sk@W , 0 } % small space
+\gdef \tc@O {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@P {\sk@ain , 0 } % `ain
+\gdef \tc@Q {\sk@Q , 0 } % hamza
+\gdef \tc@R {\sk@ain , 1 } % ghain
+\gdef \tc@S {\sk@ss , 0 } % ssad
+\gdef \tc@T {\sk@h@m , 2 } % tah marbuta
+\gdef \tc@U {\sk@@ , 0 } % reserved for vowel
+\gdef \tc@V {\sk@tt , 0 } % ttah
+\gdef \tc@W {\sk@W , 0 } % small space
+\gdef \tc@X {\sk@kh , 1 } % khah
+\gdef \tc@Y {\sk@y , 0 } % alif maqsura
+\gdef \tc@Z {\sk@tt , 1 } % zzah
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}}% end of dynamic letter token definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/arabext.sty b/language/arabic/arabtex/texinput/arabext.sty
index 3e10ffc7e7..136d05566a 100644
--- a/language/arabic/arabtex/texinput/arabext.sty
+++ b/language/arabic/arabtex/texinput/arabext.sty
@@ -1,103 +1,103 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabext.sty
-% ArabTeX
-% 21.08.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% patches for arabtex.sty etc
-% for use with arabart.cls
-% ArabTeX 3.11
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {arabext.sty} {3.11 patches for use with arabart.cls} {21.08.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@ignorespaces {\test@token }
-
-\def \a@c@ref {\unarab@codes \a@@ref }
-
-\def \a@@ref #1{\putwordb@x {\ref {#1}}\arab@codes \test@token }
-
-\def \a@c@cite {\unarab@codes \a@@cite }
-
-\def \a@@cite #1{\putwordb@x {\rm \cite {#1}}\arab@codes \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \arabdef #1{% define command valid for Arabic environment only
-\begingroup \escapechar -1
-\xdef \reserved@a {\xpa \nxp \csname a@\string #1\endcsname }\endgroup
-\toks@ \xpa {\xpa \let \xpa #1\reserved@a }\allowarab #1%
-\xpa \at@arabtext \xpa {\the\toks@ }\xpa \def \reserved@a }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@table {\unarab@codes \a@@table }
-
-\def \a@@table [#1]{% table within Arabic environment
-\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }%
-\table [#1]%
-\arab@tail }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@figure {\unarab@codes \a@@figure }
-
-\def \a@@figure [#1]{% figure within Arabic environment
-\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }%
-\figure [#1]%
-\arab@tail }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\all@w@ne \label
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@endtabular {\a@@endtabular \advance \parfillskip \rightskip
-\rightskip \leftskip \leftskip \parfillskip \parfillskip \z@ \par }
-
-\def \a@c@hline {% \\ missing
-\errmessage{table row not terminated: \string\\ inserted; proceed.}%
-\test@token \\ \hline }
-
-\def \a@c@tabular {\unarab@codes \let \@mkpream \a@mkpream
-\let \a@@endtabular \endtabular \let \endtabular \a@endtabular
-\a@@par \leavevmode \tabular }
-
-\def \a@c@array {\unarab@codes
-\let \a@@endtabular \endarray \let \endarray \a@endtabular
-\a@@par \leavevmode \array }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \a@@mkpream \@mkpream
-
-\def \a@c@a@RL {\test@token }
-
-\def \a@c@protect {\test@token }
-
-\def \a@mkpream #1{\a@@mkpream {#1}\let \@@sharp \relax \let \a@END \relax
-\edef \@sharp {\protect\a@SEQ \@@sharp \a@END }%
-\edef \@preamble {\@preamble}%
-\def \@@sharp {\@sharp }\let \@sharp \relax
-\edef \@preamble {\@preamble}}
-
-\def \a@SEQ {% put a sequence of words into a \hbox
-\begingroup \transfalse \showfalse
-\arab@codes \set@arabfont \@waslafalse \@wasfalse
-\def \next@command {\test@special}\let \a@put@line \break@line
-\def \a@last@line {\let \next \a@NL }\let \put@word \addt@line
-\initlineb@x \test@token }
-
-\def \a@c@a@END {\box\lineb@x \endgroup }
-
-\def \a@NL {\box\lineb@x \endgroup \\}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabext.sty
+% ArabTeX
+% 21.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% patches for arabtex.sty etc
+% for use with arabart.cls
+% ArabTeX 3.11
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {arabext.sty} {3.11 patches for use with arabart.cls} {21.08.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@ignorespaces {\test@token }
+
+\def \a@c@ref {\unarab@codes \a@@ref }
+
+\def \a@@ref #1{\putwordb@x {\ref {#1}}\arab@codes \test@token }
+
+\def \a@c@cite {\unarab@codes \a@@cite }
+
+\def \a@@cite #1{\putwordb@x {\rm \cite {#1}}\arab@codes \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \arabdef #1{% define command valid for Arabic environment only
+\begingroup \escapechar -1
+\xdef \reserved@a {\xpa \nxp \csname a@\string #1\endcsname }\endgroup
+\toks@ \xpa {\xpa \let \xpa #1\reserved@a }\allowarab #1%
+\xpa \at@arabtext \xpa {\the\toks@ }\xpa \def \reserved@a }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@table {\unarab@codes \a@@table }
+
+\def \a@@table [#1]{% table within Arabic environment
+\let \a@endtable \endtable \def \endtable {\a@par \a@endtable }%
+\table [#1]%
+\arab@tail }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@figure {\unarab@codes \a@@figure }
+
+\def \a@@figure [#1]{% figure within Arabic environment
+\let \a@endfigure \endfigure \def \endfigure {\a@par \a@endfigure }%
+\figure [#1]%
+\arab@tail }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\all@w@ne \label
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@endtabular {\a@@endtabular \advance \parfillskip \rightskip
+\rightskip \leftskip \leftskip \parfillskip \parfillskip \z@ \par }
+
+\def \a@c@hline {% \\ missing
+\errmessage{table row not terminated: \string\\ inserted; proceed.}%
+\test@token \\ \hline }
+
+\def \a@c@tabular {\unarab@codes \let \@mkpream \a@mkpream
+\let \a@@endtabular \endtabular \let \endtabular \a@endtabular
+\a@@par \leavevmode \tabular }
+
+\def \a@c@array {\unarab@codes
+\let \a@@endtabular \endarray \let \endarray \a@endtabular
+\a@@par \leavevmode \array }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \a@@mkpream \@mkpream
+
+\def \a@c@a@RL {\test@token }
+
+\def \a@c@protect {\test@token }
+
+\def \a@mkpream #1{\a@@mkpream {#1}\let \@@sharp \relax \let \a@END \relax
+\edef \@sharp {\protect\a@SEQ \@@sharp \a@END }%
+\edef \@preamble {\@preamble}%
+\def \@@sharp {\@sharp }\let \@sharp \relax
+\edef \@preamble {\@preamble}}
+
+\def \a@SEQ {% put a sequence of words into a \hbox
+\begingroup \transfalse \showfalse
+\arab@codes \set@arabfont \@waslafalse \@wasfalse
+\def \next@command {\test@special}\let \a@put@line \break@line
+\def \a@last@line {\let \next \a@NL }\let \put@word \addt@line
+\initlineb@x \test@token }
+
+\def \a@c@a@END {\box\lineb@x \endgroup }
+
+\def \a@NL {\box\lineb@x \endgroup \\}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/arabrep.cls b/language/arabic/arabtex/texinput/arabrep.cls
index f901f18d61..378e40c97f 100644
--- a/language/arabic/arabtex/texinput/arabrep.cls
+++ b/language/arabic/arabtex/texinput/arabrep.cls
@@ -1,1076 +1,1076 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabrep.cls
-% ArabTeX extension
-% Arabic version of report.cls
-% for use with ArabTeX Version 3.08 - 3.10
-%
-% Copyright (C) 1997 - 2003 by Klaus Lagally
-% 16.05.1997
-% 21.03.1999
-% 26.04.2003
-%
-% reusing report.cls (and book.cls) of 19 Jun 1995
-% reusing report.cls (and book.cls) of 26 May 1996
-% patches for pagenumbering 25 March 1999
-% 15.07.1999
-% 21.04.2000 % new font handling
-% 14.09.2001 % RTL footnotes, chapter names etc.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NeedsTeXFormat {LaTeX2e}[1996/06/01]
-\ProvidesClass {arabrep}[2003/04/26 v3.11 arabic report format]
-
-\newif\if@mainmatter \@mainmattertrue
-\newif\ifa@book \a@bookfalse
-\newif\ifa@article \a@articlefalse
-\DeclareOption {book}{\a@booktrue \@mainmattertrue }
-\DeclareOption {article}{\a@articletrue \@mainmattertrue }
-\DeclareOption* {\PassOptionsToClass {\CurrentOption}{report}}
-\ProcessOptions
-\LoadClass {report}[1996/05/26] % load the LaTeX standard class
-
-\ifa@book \@openrighttrue \fi
-%\input{bk1\@ptsize.clo} % collision on \small !!
-
-\ifa@article \@titlepagefalse \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%\RequirePackage {arabtex}[1997/05/08] % load the ArabTeX processor
-\RequirePackage {arabtex}[2003/04/26] % load the ArabTeX processor
-
-\UsePackage {altxext} % load local patches for LaTeX
-
-% ****************************************
-% * PAGE STYLES *
-% ****************************************
-
-\if@twoside % If two-sided printing.
- \def \ps@headings {% for arabic mode
- \let \@mkboth \markboth \def\@oddfoot{}\def\@evenfoot{}%
- \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
- \a@normalfont \leftmark \hfil \thep@ge }%
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \chaptermark ##1{\markboth {##1%
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \hskip 1em\relax \RL{\@chapapp \space \thechapter. }%
- \fi\fi }{}}%
- \def \sectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
- \hskip 1em\relax \RL{\thesection }\fi }}%
- \ifa@article
- \def \subsectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
- \hskip 1em\relax \RL{\thesubsection }\fi }}%
- \fi }
-\else % If one-sided printing.
- \def \ps@headings {% for arabic mode
- \let \@mkboth \markboth \def \@oddfoot{}\def \@evenfoot{}%
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \chaptermark ##1{\markright {##1%
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \hskip 1em\relax \RL{\@chapapp\space \thechapter. }%
- \fi\fi }}}
-\fi
-
-\def \ps@plain {% for arabic mode
- \let \@mkboth\@gobbletwo \let\@oddhead\@empty \let\@evenhead\@empty
- \def \@oddfoot {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \hfil \thep@ge \hfil }%
- \let \@evenfoot\@oddfoot }
-
-\def \ps@myheadings {% for arabic mode
- \let\@oddfoot \@empty \let\@evenfoot \@empty
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
- \a@normalfont \leftmark \hfil \thep@ge }%
- \let\@mkboth\@gobbletwo \let\subsectionmark\@gobble
- \let\chaptermark\@gobble \let\sectionmark\@gobble }
-
-% ****************************************
-% * TITLE AND ABSTRACT *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\if@titlepage
- \newcommand\maketitle{\begin{titlepage}%
- \let\footnotesize\small
- \let\footnoterule\relax
- \null\vfil
- \vskip 60\p@
- \begin{center}%
- {\LARGE \@title \par}%
- \vskip 3em%
- {\large
- \lineskip .75em%
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}\par}%
- \vskip 1.5em%
- {\large \@date \par}% % Set date in \large size.
- \end{center}\par
- \@thanks
- \vfil\null
- \end{titlepage}%
- \setcounter{footnote}{0}%
- \let\thanks\relax\let\maketitle\relax
- \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
-\else
- \newcommand\maketitle{\par
- \begingroup
- \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
- \def\@makefnmark{\hb@xt@\z@{$\m@th^{\@thefnmark}$\hss}}%
- \long\def\@makefntext##1{\parindent 1em\noindent
- \hb@xt@1.8em{\hss\@makefnmark}##1}%
- \if@twocolumn
- \ifnum \col@number=\@ne
- \@maketitle
- \else
- \twocolumn[\@maketitle]%
- \fi
- \else
- \newpage
- \global\@topnum\z@ % Prevents figures from going at top of page.
- \@maketitle
- \fi
- \thispagestyle{plain}\@thanks
- \endgroup
- \setcounter{footnote}{0}%
- \let\thanks\relax
- \let\maketitle\relax\let\@maketitle\relax
- \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
-
- \def\@maketitle{%
- \newpage
- \null
- \vskip 2em%
- \begin{center}%
- {\LARGE \@title \par}%
- \vskip 1.5em%
- {\large
- \lineskip .5em%
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}\par}%
- \vskip 1em%
- {\large \@date}%
- \end{center}%
- \par
- \vskip 1.5em}
-\fi
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * UNITS *
-% ****************************************
-
-\ifa@book
-\newcommand\frontmatter
- {\cleardoublepage \@mainmatterfalse \pagenumbering{Abjad}}
-% {\cleardoublepage \@mainmatterfalse \pagenumbering{Abj}}
-\newcommand\mainmatter
- {\cleardoublepage \@mainmattertrue \pagenumbering{arabic}}
-% {\cleardoublepage \@mainmattertrue \pagenumbering{arab}}
-\newcommand\backmatter
- {\if@openright \cleardoublepage \else \clearpage
- \fi \@mainmatterfalse }
-\fi
-
-\ifa@article
-\renewcommand\thesection {\@arabic\c@section}
-\fi
-
-%\allowarab \@chapapp
-
-% ****************************************
-% * PARTS *
-% ****************************************
-
-\renewcommand \thepart {\@arabic\c@part }
-
-\def \a@c@part {\a@@par
-\ifa@article \addvspace{4ex}\@afterindentfalse
-\else \cleardoublepage \thispagestyle{plain}%
- \if@twocolumn \onecolumn \@tempswatrue
- \else \@tempswafalse
- \fi
- \hbox{}\vfil
-\fi \secdef \a@part \a@spart }
-
-\ifa@article
-
-\def \a@part [#1]#2{% numbered part
-\ifnum \c@secnumdepth > \m@ne
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
-\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
-\fi
-\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
- \a@normalfont \bfseries \interlinepenalty \@M
-\ifnum \c@secnumdepth >\m@ne
- \Large \set@arabfont
- \test@token \partname \abjad{\thepart } \end \nobreak
-\fi
- \huge \set@arabfont \test@token #2 \end
- \markboth {}{}
-\endgroup
-\nobreak \vskip 3ex
-\a@afterheading \test@token }
-
-\def \a@spart #1{% unnumbered part
-\begingroup \let \end \a@@par \a@@raggedright \a@parindent \z@
- \interlinepenalty \@M
- \a@normalfont \huge \bffamily \set@arabfont \test@token #1 \end
-\endgroup
-\nobreak \vskip 3ex
-\a@afterheading \test@token }
-
-\else % report or book
-
-\def \a@part [#1]#2{% numbered part
- \ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
- \else \addcontentsline {toc}{part}{\protect\RL {#1}}%
- \fi
- \markboth{}{}
-\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
- \a@normalfont \bfseries
- \ifnum \c@secnumdepth > -2\relax
- \huge \set@arabfont
- \test@token \partname \abjad{\thepart } \end
- \vskip 20\p@
- \fi
- \Huge \set@arabfont \test@token #2 \end
-\endgroup
-\@endpart \test@token }
-
-\def \a@spart #1{% unnumbered part
-\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
- \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
-\endgroup
-\@endpart \test@token }
-
-\fi % article, report or book
-
-\def\@part[#1]#2{% \part outside Arabic text
-\begin{arabtext}
-\a@part[\LR{#1}]{\LR{#2}}
-\end{arabtext}}
-
-\def\@spart#1{% \part* outside Arabic text
-\begin{arabtext}
-\a@spart {\LR{#1}}
-\end{arabtext}}
-
-% ****************************************
-% * CHAPTERS *
-% ****************************************
-
-
-\ifa@article \else % report or book
-\allowarab \thechapter
-
-\newcommand \a@c@chapter {\a@@par
- \if@openright \cleardoublepage \else \clearpage \fi
- \thispagestyle {plain}%
- \global\@topnum \z@ \@afterindentfalse
- \secdef \a@chapter \a@schapter }
-
-\def \a@chapter [#1]#2{% numbered chapter
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \refstepcounter {chapter}%
- \typeout {\@chapapp \space \thechapter.}%
- \addcontentsline {toc}{chapter}%
- {\protect\numberline {\thechapter }\protect\RL {#1}}%
- \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
- \fi
- \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
- \fi
-\chaptermark{\RL {#1}}%
-\addtocontents {lof}{\protect\addvspace {10\p@}}%
-\addtocontents {lot}{\protect\addvspace {10\p@}}%
- \if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
- \else \a@makechapterhead {#2}\a@afterheading
- \fi
-\tracingmacros 0
-\test@token }
-
-\def\a@makechapterhead #1{% make heading with number
- \null \vskip 50\p@
-\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
- \a@normalfont \bfseries
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \edef \thechapter {\@chapapp \space \thechapter . }%
- \huge \set@arabfont \test@token {\thechapter } \end
- \nobreak \vskip 20\p@
- \fi\fi
- \Huge \set@arabfont \test@token #1 \end
- \nobreak \vskip 40\p@
-\endgroup }
-
-\def\a@schapter #1{% unnumbered chapter
- \if@twocolumn \@topnewpage [\a@makeschapterhead {#1}]%
- \else \a@makeschapterhead {#1}\a@afterheading
- \fi
-\test@token }
-
-\def\a@makeschapterhead #1{%
-\null \vskip 50\p@
-\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
- \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
-\endgroup
-\nobreak \vskip 40\p@ }
-
-\fi % report or book
-
-%*********************************************************************
-%*********************************************************************
-%************************* rest not yet adapted **********************
-%*********************************************************************
-%*********************************************************************
-
-% ****************************************
-% * SECTIONS *
-% ****************************************
-
-\def \a@c@section {\a@startsection
-{section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}%
-%{\reset@font \Large\setnashbf }}
-{\a@normalfont \Large \bfseries }}
-
-\def \a@c@subsection {\a@startsection
-{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}%
-{\a@normalfont \large \bfseries }}
-
-\def \a@c@subsubsection {\a@startsection
-{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}%
-{\a@normalfont \normalsize \bfseries }}
-
-\def \a@c@paragraph {\a@startsection
-{paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}%
-{\a@normalfont \normalsize \bfseries }}
-
-\def\a@c@subparagraph {\a@startsection
-{subparagraph}{5}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}%
-{\a@normalfont \normalsize \bfseries }}
-
-% ****************************************
-% * LISTS *
-% ****************************************
-
-\at@arabtext {% switch to Arabic terms
- \def\theenumii{\arabic{enumii}}
- \def\theenumiii{\arabic{enumiii}}
- \def\theenumiv{\arabic{enumiv}}
-%
- \def\labelenumi{\theenumi\space-}
- \def\labelenumii{\abj@d{\theenumii}-}
- \def\labelenumiii{\theenumiii\nospace(}
- \def\labelenumiv{\abj@d{\theenumiv}\nospace)}
-%
- \def\labelitemi{$\circ$}
- \def\labelitemii{$-$}
- \def\labelitemiii{$\star$}
- \def\labelitemiv{$+$}
-}
-
-% ****************************************
-% * OTHER ENVIRONMENTS *
-% ****************************************
-
-% DESCRIPTION
-
-\def \descriptionlabel #1{\setnashbf \RL{#1}\hskip \labelsep }
-\def \descriptionlabel #1{\bfseries \RL{#1}\hskip \labelsep }
-
-% THEOREM
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% EQUATION and EQNARRAY
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% TITLEPAGE
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% TABBING
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% MINIPAGE
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% FRAMEBOX
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% ****************************************
-% * ABSTRACT *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifa@book
-\else
-\if@titlepage
- \newenvironment{abstract}{%
- \titlepage
- \null\vfil
- \begin{center}%
- \bfseries \abstractname
- \@endparpenalty\@M
- \end{center}}%
- {\par\vfil\null\endtitlepage}
-\else
- \newenvironment{abstract}{%
- \if@twocolumn
- \section*{\abstractname}%
- \else
- \small
- \begin{center}%
- {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
- \end{center}%
- \quotation
- \fi}
- {\if@twocolumn\else\endquotation\fi}
-\fi
-\fi
-
-\else %============= arabart.cls ==================================
-
-\ifa@book
-\else
-\if@titlepage
-\iffalse
-\newenvironment{abstract}{%
- \titlepage
- \null\vfil
- \begin{center}%
- \bfseries \abstractname
- \@endparpenalty\@M
- \end{center}}%
- {\par\vfil\null\endtitlepage}
-\fi
-\else
-
-\def \a@c@abstract{%
-\if@twocolumn \def \next
- {\a@c@section*{\abstractname}}%
-\else \def \next
- {\small
- \begingroup \center
-% \setnashbf \abstractname
- \a@normalfont \bfseries \abstractname
- \vspace{-.5em}\vspace{\z@}%
- \endcenter \endgroup
- \a@c@quotation }%
-\fi
- \def \endabstract
- {\if@twocolumn\else\endquotation\fi}%
-\next }
-
-\fi
-\fi
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * OTHER ENVIRONMENTS *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newenvironment{verse}
- {\let\\=\@centercr
- \list{}{\itemsep \z@
- \itemindent -1.5em%
- \listparindent\itemindent
- \rightmargin \leftmargin
- \advance\leftmargin 1.5em}%
- \item[]}
- {\endlist}
-
-\newenvironment{quotation}
- {\list{}{\listparindent 1.5em%
- \itemindent \listparindent
- \rightmargin \leftmargin
- \parsep \z@ \@plus\p@}%
- \item[]}
- {\endlist}
-
-\newenvironment{quote}
- {\list{}{\rightmargin\leftmargin}%
- \item[]}
- {\endlist}
-
-\else %============= arabart.cls ==================================
-
-\def \a@c@verse {%
-%\tracingmacros 1
-\let \endverse \a@@endtrivlist
-\a@@list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent
- \rightmargin\leftmargin \advance\leftmargin 1.5em}\a@@item[]}
-
-\def \a@c@quotation {%
-%\tracingmacros 1
-\a@@list{}{\listparindent 1.5em \itemindent\listparindent
- \rightmargin\leftmargin \parsep \z@ plus\p@}\a@@item[]}
-
-\def \a@c@quote {%
-%\tracingmacros 1
-\let \endquote \a@@endtrivlist
-\a@@list{}{\rightmargin\leftmargin}\a@@item[]}
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * TITLE PAGE *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newenvironment{titlepage}
-{% \titlepage
- \ifa@book
- \cleardoublepage
- \fi
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse\newpage
- \fi
- \thispagestyle{empty}%
- \if@compatibility
- \setcounter{page}{0}
- \else
- \ifa@book \else
- \setcounter{page}{1}%
- \fi
- \fi }%
-{% \endtitlepage
- \if@restonecol\twocolumn \else \newpage \fi
- \ifa@book \else
- \setcounter{page}{1}%
- \fi }
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * APPENDIX *
-% ****************************************
-
-\def\a@c@appendix{%\par
- \setcounter{section}{0}%
- \renewcommand\@chapapp {\appendixname }%
-\ifa@article \renewcommand\thesection {\@Abjad \c@section }%
- \setcounter{subsection}{0}%
-\else \renewcommand\thechapter {\@Abjad \c@chapter }%
- \setcounter{chapter}{0}%
-\fi \test@token }
-
-% ****************************************
-% * FIGURES AND TABLES *
-% ****************************************
-
-\ifa@article
- \renewcommand\theequation{\@arabic\c@equation}
- \renewcommand\thefigure{\@arabic\c@figure}
- \renewcommand\thetable{\@arabic\c@table}
-\fi
-
-\def\fnum@figure {\figurename \space \thefigure }
-
-\def\fnum@table {\tablename \space \thetable }
-
-\long\def \a@makecaption #1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#2 : #1}%
- \ifdim \wd\@tempboxa >\hsize
- #2 : #1\par
- \else
- \global \@minipagefalse
- \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip }
-
-\let \@makecaption \a@makecaption
-
-\long\def \a@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect #2}%
-\begingroup \@parboxrestore \normalsize
- \edef \reserved@a {\csname fnum@#1\endcsname }%
- \@makecaption {\xpa \RL \xpa {\reserved@a }}{#3}\par
-\endgroup}
-
-\let \@caption \a@caption
-
-\long\def \a@@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
-\begingroup \@parboxrestore \normalsize
- \edef \reserved@a {\csname fnum@#1\endcsname }%
- \@makecaption {\xpa \RL \xpa {\reserved@a }}{\RL {#3}}\par
-\endgroup \test@token }
-
-\at@arabtext {\let \@caption \a@@caption }
-
-\let \a@c@caption \caption
-
-% ****************************************
-% * TABLE OF CONTENTS, ETC. *
-% ****************************************
-
-\ifa@article \setcounter{tocdepth}{3}
-\else \setcounter{tocdepth}{2}
-\fi
-
-\setcounter{tocdepth}{5} % for test only
-
-\def \a@c@tableofcontents {\a@t@ble {\contentsname }{toc}}
-%\def \a@c@tableofcontents {\a@t@ble {\RL{\contentsname }}{toc}}
-
-\def \a@c@starttoc #1{\endarabtext
-\the\arabtext@hook
-\@starttoc {#1}\arabtext }
-
-%\def \a@t@ble #1#2{% \tableofcontents etc.
-% \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
-
-%\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
-
-\def \a@l@section #1#2{% for arabic mode
-\ifnum \c@tocdepth >\z@
- \addpenalty {\@secpenalty }\addvspace {1.0em plus\p@ }
- \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
-\fi }
-
-\def \a@l@part #1#2{% for arabic mode
-\ifnum \c@tocdepth >-2\relax
- \addpenalty {-\@highpenalty }\addvspace {2.25em plus\p@ }
- \if@twocolumn \@tempdima 2.0em \else \@tempdima 3.0em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
-\fi }
-
-\def \a@l@chapter #1#2{% for arabic mode
-\ifnum \c@tocdepth >\m@ne
- \addpenalty {-\@highpenalty }\addvspace {1.0em plus\p@ }
- \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
- \penalty\@highpenalty
-\fi }
-
-\at@arabtext {% switch to Arabic terms
- \let \l@part \a@l@part
- \let \l@section \a@l@section
- \let \l@chapter \a@l@chapter
-}
-
-\if@twocolumn
- \def\l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
- \def\l@subsubsection{\@dottedtocline{3}{2.5em}{2.3em}}
- \def\l@paragraph{\@dottedtocline{4}{4.8em}{3.1em}}
- \def\l@subparagraph{\@dottedtocline{5}{7.9em}{3.9em}}
- \def\@tocrmarg {1.55em}
-\fi
-
-\def \a@c@listoffigures {\a@t@ble {\listfigurename }{lof}}
-
-\def \a@c@listoftables {\a@t@ble {\listtablename }{lot}}
-
-% ****************************************
-% * BIBLIOGRAPHY *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen\bibindent
-\bibindent=1.5em
-
-\newenvironment{thebibliography}[1]
-% {\chapter*{\bibname
- {\section*{\bibname
- \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
- \list{\@biblabel{\@arabic\c@enumiv}}%
- {\settowidth\labelwidth{\@biblabel{#1}}%
- \leftmargin\labelwidth
- \advance\leftmargin\labelsep
- \@openbib@code
- \usecounter{enumiv}%
- \let\p@enumiv\@empty
- \renewcommand\theenumiv{\@arabic\c@enumiv}}%
- \sloppy\clubpenalty4000\widowpenalty4000%
- \sfcode`\.=\@m}
- {\def\@noitemerr
- {\@latex@warning{Empty `thebibliography' environment}}%
- \endlist}
-
-%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
-%\let\@openbib@code\@empty
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * THE INDEX *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand\newblock{}
-
-\newenvironment{theindex}
- {\if@twocolumn
- \@restonecolfalse
- \else
- \@restonecoltrue
- \fi
- \columnseprule \z@
- \columnsep 35\p@
- \twocolumn[\@makeschapterhead{\indexname}]%
- \@mkboth{\MakeUppercase\indexname}%
- {\MakeUppercase\indexname}%
- \thispagestyle{plain}\parindent\z@
- \parskip\z@ \@plus .3\p@\relax
- \let\item\@idxitem}
- {\if@restonecol\onecolumn\else\clearpage\fi}
-
-\newcommand\@idxitem{\hangindent 40\p@}
-\newcommand\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
-\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
-\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * FOOTNOTES *
-% ****************************************
-
-% Default definition
-\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
-
-\def \footnoterule{%
- \kern-3\p@
- \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
- \kern2.6\p@}
-
-\RLfootnotes
-
-% see also "alatex.sty"
-
-% ****************************************
-% * LANGUAGE DEPENDENT NAMES *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand\contentsname{Contents}
-\newcommand\listfigurename{List of Figures}
-\newcommand\listtablename{List of Tables}
-\newcommand\bibname{Bibliography}
-\newcommand\refname{References}
-\newcommand\indexname{Index}
-\newcommand\figurename{Figure}
-\newcommand\tablename{Table}
-\newcommand\partname{Part}
-\newcommand\chaptername{Chapter}
-\newcommand\appendixname{Appendix}
-\newcommand\abstractname{Abstract}
-
-\else %============= arabart.cls ==================================
-
-% tableofcontents = al-mu.htawayAtu
-% listoffigures = qA'imaTu al-.suwaru
-% listoftables = qA'imaTu al-^gadAwilu
-% listofpictures = qA'imaTu al-rusUmu
-% bibliography = al-marA^gi`u
-% references = al-ma.sAdiru
-% index = al-fihrisu (al-fihristu)
-% chapter = al-fa.slu
-% appendix = al-mul.haqu
-% abstract = al-mula_h_ha.su
-% attachments = al-murfaqAtu
-% number = al-raqmu
-
-%\at@arabtext {% switch to Arabic terms
- \def\bibname {\a@tok(al-marAGiPu)}
- \def\refname {\a@tok(al-maSAdiru)}
- \def\indexname {\a@tok(al-fihristu)}
- \def\figurename {\a@tok(SUraTuN)}
- \def\tablename {\a@tok(GadwaluN)}
- \def\partname {\a@tok(al-GuzQzu)}
- \def\chaptername {\a@tok(al-faSlu)}
- \def\appendixname {\a@tok(al-mulHaqu)}
- \def\abstractname {\a@tok(al-mulaXXaSu)}
-%}
-
-\allowarab \contentsname
-\allowarab \listfigurename
-\allowarab \listtablename
-\allowarab \bibname
-\allowarab \refname
-\allowarab \indexname
-\allowarab \figurename
-\allowarab \tablename
-\allowarab \partname
-\allowarab \chaptername
-\allowarab \appendixname
-\allowarab \abstractname
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * INITIALIZATION *
-% ****************************************
-
-% Default initializations
-
-\ifa@book \pagestyle{headings}
-\else \pagestyle{plain}
-\fi
-
-\pagenumbering{arabic} % Arabic page numbers
-
-% ****************************************
-% * SIZE DEPENDENT PATCHES *
-% ****************************************
-
-\input {asize1\@ptsize.clo}
-
-\UsePackage {arabext} % load local patches for ArabTeX
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \contentsname{Contents}
-\gdef \listfigurename{List of Figures}
-\gdef \listtablename{List of Tables}
-
-\at@arabtext {% switch to Arabic terms
- \def\contentsname {\a@tok(al-muHtawayAtu)}
- \def\listfigurename {\a@tok(qAQAimaTu aS-Suwari)}
- \def\listtablename {\a@tok(qAQAimaTu al-GadAwili)}
- \def\chaptername {\a@tok(al-faSlu)}
-}
-
-\ifx \a@part \undefined \else
-
-% tableofcontents = al-mu.htawayAtu
-% listoffigures = qA'imaTu al-.suwaru
-% listoftables = qA'imaTu al-^gadAwilu
-% listofpictures = qA'imaTu al-rusUmu
-% bibliography = al-marA^gi`u
-% references = al-ma.sAdiru
-% index = al-fihrisu (al-fihristu)
-% chapter = al-fa.slu
-% appendix = al-mul.haqu
-% abstract = al-mula_h_ha.su
-% attachments = al-murfaqAtu
-% number = al-raqmu
-
-\def\bibname {\stdcode{al-marA^gi`u}}
-\def\refname {\stdcode{al-ma.sAdiru}}
-\def\indexname {\stdcode{al-fihristu}}
-\def\figurename {\stdcode{.sUraTuN}}
-\def\tablename {\stdcode{^gadwaluN}}
-\def\partname {\stdcode{al-^guz'u}}
-\def\chaptername {\stdcode{al-fa.slu}}
-\def\appendixname {\stdcode{al-mul.haqu}}
-\def\abstractname {\stdcode{al-mula_h_ha.su}}
-
-\at@arabtext {% switch to Arabic terms
-\def\contentsname {\stdcode{al-mu.htawayAtu}}
-\def\listfigurename {\stdcode{qA'imaTu al-.suwari}}
-\def\listtablename {\stdcode{qA'imaTu al-^gadAwili}}
-}
-\fi
-
-\def\a@makechapterhead #1{% make heading with number
- \null \vskip 50\p@
-\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
- \a@normalfont \bfseries
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \edef \thechapter {\thechapter }%
- \huge \set@arabfont \test@token \@chapapp {\thechapter} \end
- \nobreak \vskip 20\p@
- \fi\fi
- \Huge \set@arabfont \test@token #1 \end
- \nobreak \vskip 40\p@
-\endgroup }
-
-\allowarab \@chapapp
-
-\def\a@c@appendix{%\par
- \setcounter{section}{0}%
- \renewcommand\@chapapp {\appendixname }%
-\ifa@article \renewcommand\thesection {\@abjad \c@section }%
- \setcounter{subsection}{0}%
-\else \renewcommand\thechapter {\@abjad \c@chapter }%
- \setcounter{chapter}{0}%
-\fi \test@token }
-
-\def \a@chapter [#1]#2{% numbered chapter
-\ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \refstepcounter {chapter}%
- \typeout {\@chapapp \space \thechapter.}%
- \addcontentsline {toc}{chapter}%
- {\protect\numberline
- {\protect\RL{\protect\stdcode{\thechapter }}}%
- \protect\RL {#1}}%
- \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
- \fi
-\else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
-\fi
-\chaptermark{\RL {#1}}%
-\addtocontents {lof}{\protect\addvspace {10\p@}}%
-\addtocontents {lot}{\protect\addvspace {10\p@}}%
-\if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
-\else \a@makechapterhead {#2}\a@afterheading
-\fi \test@token }
-
-\long\def \a@@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
-\begingroup \@parboxrestore \normalsize
- \def \protect {\nxp\protect\nxp}
- \edef \thecaption {\csname fnum@#1\endcsname }%
- \let \protect \relax
- \@makecaption {\RL {\thecaption }}{\RL {#3}}\par
-\endgroup \test@token }
-
-\long\def \a@makecaption #1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{\RL{#1: #2}}%
- \ifdim \wd\@tempboxa >\hsize
-\begin{arabtext} #1: #2
-\end{arabtext}
- \else
- \global \@minipagefalse
- \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip }
-
-\allowarab \caption
-\allowarab \thecaption
-
-\at@arabtext {\let \@caption \a@@caption
-\let \@makecaption \a@makecaption }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@l@section #1#2{% Text, Pageno
-% for arabic mode
-\ifnum \c@tocdepth >\z@
- \addpenalty {\@secpenalty }%
- \addvspace {1.0em plus\p@ }%
-% \@tempdima 1.5em
- \@tempdima 1.0em
-% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
-\fi }
-
-\def \a@l@part #1#2{% Text, Pageno
-% for arabic mode
-\ifnum \c@tocdepth >-2\relax
- \addpenalty {-\@highpenalty }%
- \addvspace {2.25em plus\p@ }%
- \@tempdima 2.0em
-% \@tempdima \if@twocolumn 2.0em \else 3.0em \fi \relax
- \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
-\fi }
-
-\def \a@l@chapter #1#2{% Text, Pageno
-% for arabic mode
-\ifnum \c@tocdepth >\m@ne
- \addpenalty {-\@highpenalty }%
- \addvspace {1.0em plus\p@ }%
-% \@tempdima 1.5em
- \@tempdima 1.0em
-% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
- \penalty\@highpenalty
-\fi }
-
-\def \a@x@sect {% arabic section TOC formats if article
- \def\a@l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
- \def\a@l@subsubsection{\@dottedtocline{3}{2.5em}{2.1em}}
- \def\a@l@paragraph{\@dottedtocline{4}{4.6em}{2.8em}}
- \def\a@l@subparagraph{\@dottedtocline{5}{9.4em}{3.4em}}
-}
-
-\def \a@y@sect {% arabic section TOC formats if report or book
- \def\a@l@section{\@dottedtocline{1}{1.0em}{1.5em}}
- \def\a@l@subsection{\@dottedtocline{2}{2.5em}{2.1em}}
- \def\a@l@subsubsection{\@dottedtocline{3}{4.6em}{2.8em}}
- \def\a@l@paragraph{\@dottedtocline{4}{9.4em}{3.4em}}
- \def\a@l@subparagraph{\@dottedtocline{5}{23.8em}{4.1em}}
-}
-
-\def \a@xy@sect {% arabic section TOC formats
-\ifa@article \a@x@sect \else \a@y@sect \fi }
-
-\def \a@c@tableofcontents {\a@xy@sect % define arabic section TOC formats
-\a@t@ble {\contentsname }{toc}}
-
-% CAUTION: \a@xy@sect must be executed before expanding \the\arabtex@hook
-% and prior to \@starttoc within \a@t@ble, see arabrep.cls
-
-\def\a@l@figure{\@dottedtocline{1}{1.0em}{1.5em}}
-\def\a@l@table{\@dottedtocline{1}{1.0em}{1.5em}}
-
-\at@arabtext {% switch to Arabic terms, execute from asect::a@t@ble
- \let \l@part \a@l@part
- \let \l@chapter \a@l@chapter
- \let \l@section \a@l@section
- \let \l@subsection \a@l@subsection
- \let \l@subsubsection \a@l@subsubsection
- \let \l@paragraph \a@l@paragraph
- \let \l@subparagraph \a@l@subparagraph
- \let \l@figure \a@l@figure
- \let \l@table \a@l@table
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% restore LaTeX version, delete \a@caption!
-
-\long\def\@caption#1[#2]#3{%
- \par
- \addcontentsline{\csname ext@#1\endcsname}{#1}%
- {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
- \begingroup
- \@parboxrestore
- \if@minipage
- \@setminipage
- \fi
- \normalsize
- \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
- \endgroup}
-
-\long\def \a@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect #2}%
-\begingroup \@parboxrestore \normalsize
- \protected@edef \reserved@a {\csname fnum@#1\endcsname }%
- \xpa\@makecaption \xpa{\xpa\RL \xpa{\reserved@a }}{#3}\par
-\endgroup}
-
-%\let \@caption \a@caption
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% end of file arabrep.cls
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+% ArabTeX extension
+% Arabic version of report.cls
+% for use with ArabTeX Version 3.08 - 3.10
+%
+% Copyright (C) 1997 - 2003 by Klaus Lagally
+% 16.05.1997
+% 21.03.1999
+% 26.04.2003
+%
+% reusing report.cls (and book.cls) of 19 Jun 1995
+% reusing report.cls (and book.cls) of 26 May 1996
+% patches for pagenumbering 25 March 1999
+% 15.07.1999
+% 21.04.2000 % new font handling
+% 14.09.2001 % RTL footnotes, chapter names etc.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat {LaTeX2e}[1996/06/01]
+\ProvidesClass {arabrep}[2003/04/26 v3.11 arabic report format]
+
+\newif\if@mainmatter \@mainmattertrue
+\newif\ifa@book \a@bookfalse
+\newif\ifa@article \a@articlefalse
+\DeclareOption {book}{\a@booktrue \@mainmattertrue }
+\DeclareOption {article}{\a@articletrue \@mainmattertrue }
+\DeclareOption* {\PassOptionsToClass {\CurrentOption}{report}}
+\ProcessOptions
+\LoadClass {report}[1996/05/26] % load the LaTeX standard class
+
+\ifa@book \@openrighttrue \fi
+%\input{bk1\@ptsize.clo} % collision on \small !!
+
+\ifa@article \@titlepagefalse \fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\RequirePackage {arabtex}[1997/05/08] % load the ArabTeX processor
+\RequirePackage {arabtex}[2003/04/26] % load the ArabTeX processor
+
+\UsePackage {altxext} % load local patches for LaTeX
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+
+\if@twoside % If two-sided printing.
+ \def \ps@headings {% for arabic mode
+ \let \@mkboth \markboth \def\@oddfoot{}\def\@evenfoot{}%
+ \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
+ \a@normalfont \leftmark \hfil \thep@ge }%
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \chaptermark ##1{\markboth {##1%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \hskip 1em\relax \RL{\@chapapp \space \thechapter. }%
+ \fi\fi }{}}%
+ \def \sectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
+ \hskip 1em\relax \RL{\thesection }\fi }}%
+ \ifa@article
+ \def \subsectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
+ \hskip 1em\relax \RL{\thesubsection }\fi }}%
+ \fi }
+\else % If one-sided printing.
+ \def \ps@headings {% for arabic mode
+ \let \@mkboth \markboth \def \@oddfoot{}\def \@evenfoot{}%
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \chaptermark ##1{\markright {##1%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \hskip 1em\relax \RL{\@chapapp\space \thechapter. }%
+ \fi\fi }}}
+\fi
+
+\def \ps@plain {% for arabic mode
+ \let \@mkboth\@gobbletwo \let\@oddhead\@empty \let\@evenhead\@empty
+ \def \@oddfoot {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \hfil \thep@ge \hfil }%
+ \let \@evenfoot\@oddfoot }
+
+\def \ps@myheadings {% for arabic mode
+ \let\@oddfoot \@empty \let\@evenfoot \@empty
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
+ \a@normalfont \leftmark \hfil \thep@ge }%
+ \let\@mkboth\@gobbletwo \let\subsectionmark\@gobble
+ \let\chaptermark\@gobble \let\sectionmark\@gobble }
+
+% ****************************************
+% * TITLE AND ABSTRACT *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\if@titlepage
+ \newcommand\maketitle{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \let\thanks\relax\let\maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+\else
+ \newcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\hb@xt@\z@{$\m@th^{\@thefnmark}$\hss}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{\hss\@makefnmark}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \let\thanks\relax
+ \let\maketitle\relax\let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+
+ \def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\fi
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * UNITS *
+% ****************************************
+
+\ifa@book
+\newcommand\frontmatter
+ {\cleardoublepage \@mainmatterfalse \pagenumbering{Abjad}}
+% {\cleardoublepage \@mainmatterfalse \pagenumbering{Abj}}
+\newcommand\mainmatter
+ {\cleardoublepage \@mainmattertrue \pagenumbering{arabic}}
+% {\cleardoublepage \@mainmattertrue \pagenumbering{arab}}
+\newcommand\backmatter
+ {\if@openright \cleardoublepage \else \clearpage
+ \fi \@mainmatterfalse }
+\fi
+
+\ifa@article
+\renewcommand\thesection {\@arabic\c@section}
+\fi
+
+%\allowarab \@chapapp
+
+% ****************************************
+% * PARTS *
+% ****************************************
+
+\renewcommand \thepart {\@arabic\c@part }
+
+\def \a@c@part {\a@@par
+\ifa@article \addvspace{4ex}\@afterindentfalse
+\else \cleardoublepage \thispagestyle{plain}%
+ \if@twocolumn \onecolumn \@tempswatrue
+ \else \@tempswafalse
+ \fi
+ \hbox{}\vfil
+\fi \secdef \a@part \a@spart }
+
+\ifa@article
+
+\def \a@part [#1]#2{% numbered part
+\ifnum \c@secnumdepth > \m@ne
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+\fi
+\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
+ \a@normalfont \bfseries \interlinepenalty \@M
+\ifnum \c@secnumdepth >\m@ne
+ \Large \set@arabfont
+ \test@token \partname \abjad{\thepart } \end \nobreak
+\fi
+ \huge \set@arabfont \test@token #2 \end
+ \markboth {}{}
+\endgroup
+\nobreak \vskip 3ex
+\a@afterheading \test@token }
+
+\def \a@spart #1{% unnumbered part
+\begingroup \let \end \a@@par \a@@raggedright \a@parindent \z@
+ \interlinepenalty \@M
+ \a@normalfont \huge \bffamily \set@arabfont \test@token #1 \end
+\endgroup
+\nobreak \vskip 3ex
+\a@afterheading \test@token }
+
+\else % report or book
+
+\def \a@part [#1]#2{% numbered part
+ \ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+ \else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+ \fi
+ \markboth{}{}
+\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
+ \a@normalfont \bfseries
+ \ifnum \c@secnumdepth > -2\relax
+ \huge \set@arabfont
+ \test@token \partname \abjad{\thepart } \end
+ \vskip 20\p@
+ \fi
+ \Huge \set@arabfont \test@token #2 \end
+\endgroup
+\@endpart \test@token }
+
+\def \a@spart #1{% unnumbered part
+\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
+ \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
+\endgroup
+\@endpart \test@token }
+
+\fi % article, report or book
+
+\def\@part[#1]#2{% \part outside Arabic text
+\begin{arabtext}
+\a@part[\LR{#1}]{\LR{#2}}
+\end{arabtext}}
+
+\def\@spart#1{% \part* outside Arabic text
+\begin{arabtext}
+\a@spart {\LR{#1}}
+\end{arabtext}}
+
+% ****************************************
+% * CHAPTERS *
+% ****************************************
+
+
+\ifa@article \else % report or book
+\allowarab \thechapter
+
+\newcommand \a@c@chapter {\a@@par
+ \if@openright \cleardoublepage \else \clearpage \fi
+ \thispagestyle {plain}%
+ \global\@topnum \z@ \@afterindentfalse
+ \secdef \a@chapter \a@schapter }
+
+\def \a@chapter [#1]#2{% numbered chapter
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter {chapter}%
+ \typeout {\@chapapp \space \thechapter.}%
+ \addcontentsline {toc}{chapter}%
+ {\protect\numberline {\thechapter }\protect\RL {#1}}%
+ \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+ \fi
+ \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+ \fi
+\chaptermark{\RL {#1}}%
+\addtocontents {lof}{\protect\addvspace {10\p@}}%
+\addtocontents {lot}{\protect\addvspace {10\p@}}%
+ \if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
+ \else \a@makechapterhead {#2}\a@afterheading
+ \fi
+\tracingmacros 0
+\test@token }
+
+\def\a@makechapterhead #1{% make heading with number
+ \null \vskip 50\p@
+\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
+ \a@normalfont \bfseries
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \edef \thechapter {\@chapapp \space \thechapter . }%
+ \huge \set@arabfont \test@token {\thechapter } \end
+ \nobreak \vskip 20\p@
+ \fi\fi
+ \Huge \set@arabfont \test@token #1 \end
+ \nobreak \vskip 40\p@
+\endgroup }
+
+\def\a@schapter #1{% unnumbered chapter
+ \if@twocolumn \@topnewpage [\a@makeschapterhead {#1}]%
+ \else \a@makeschapterhead {#1}\a@afterheading
+ \fi
+\test@token }
+
+\def\a@makeschapterhead #1{%
+\null \vskip 50\p@
+\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
+ \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
+\endgroup
+\nobreak \vskip 40\p@ }
+
+\fi % report or book
+
+%*********************************************************************
+%*********************************************************************
+%************************* rest not yet adapted **********************
+%*********************************************************************
+%*********************************************************************
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+
+\def \a@c@section {\a@startsection
+{section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}%
+%{\reset@font \Large\setnashbf }}
+{\a@normalfont \Large \bfseries }}
+
+\def \a@c@subsection {\a@startsection
+{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}%
+{\a@normalfont \large \bfseries }}
+
+\def \a@c@subsubsection {\a@startsection
+{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}%
+{\a@normalfont \normalsize \bfseries }}
+
+\def \a@c@paragraph {\a@startsection
+{paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}%
+{\a@normalfont \normalsize \bfseries }}
+
+\def\a@c@subparagraph {\a@startsection
+{subparagraph}{5}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}%
+{\a@normalfont \normalsize \bfseries }}
+
+% ****************************************
+% * LISTS *
+% ****************************************
+
+\at@arabtext {% switch to Arabic terms
+ \def\theenumii{\arabic{enumii}}
+ \def\theenumiii{\arabic{enumiii}}
+ \def\theenumiv{\arabic{enumiv}}
+%
+ \def\labelenumi{\theenumi\space-}
+ \def\labelenumii{\abj@d{\theenumii}-}
+ \def\labelenumiii{\theenumiii\nospace(}
+ \def\labelenumiv{\abj@d{\theenumiv}\nospace)}
+%
+ \def\labelitemi{$\circ$}
+ \def\labelitemii{$-$}
+ \def\labelitemiii{$\star$}
+ \def\labelitemiv{$+$}
+}
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+
+% DESCRIPTION
+
+\def \descriptionlabel #1{\setnashbf \RL{#1}\hskip \labelsep }
+\def \descriptionlabel #1{\bfseries \RL{#1}\hskip \labelsep }
+
+% THEOREM
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% EQUATION and EQNARRAY
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% TITLEPAGE
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% TABBING
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% MINIPAGE
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% FRAMEBOX
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% ****************************************
+% * ABSTRACT *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifa@book
+\else
+\if@titlepage
+ \newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \begin{center}%
+ \bfseries \abstractname
+ \@endparpenalty\@M
+ \end{center}}%
+ {\par\vfil\null\endtitlepage}
+\else
+ \newenvironment{abstract}{%
+ \if@twocolumn
+ \section*{\abstractname}%
+ \else
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \quotation
+ \fi}
+ {\if@twocolumn\else\endquotation\fi}
+\fi
+\fi
+
+\else %============= arabart.cls ==================================
+
+\ifa@book
+\else
+\if@titlepage
+\iffalse
+\newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \begin{center}%
+ \bfseries \abstractname
+ \@endparpenalty\@M
+ \end{center}}%
+ {\par\vfil\null\endtitlepage}
+\fi
+\else
+
+\def \a@c@abstract{%
+\if@twocolumn \def \next
+ {\a@c@section*{\abstractname}}%
+\else \def \next
+ {\small
+ \begingroup \center
+% \setnashbf \abstractname
+ \a@normalfont \bfseries \abstractname
+ \vspace{-.5em}\vspace{\z@}%
+ \endcenter \endgroup
+ \a@c@quotation }%
+\fi
+ \def \endabstract
+ {\if@twocolumn\else\endquotation\fi}%
+\next }
+
+\fi
+\fi
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\itemsep \z@
+ \itemindent -1.5em%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin 1.5em}%
+ \item[]}
+ {\endlist}
+
+\newenvironment{quotation}
+ {\list{}{\listparindent 1.5em%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@}%
+ \item[]}
+ {\endlist}
+
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item[]}
+ {\endlist}
+
+\else %============= arabart.cls ==================================
+
+\def \a@c@verse {%
+%\tracingmacros 1
+\let \endverse \a@@endtrivlist
+\a@@list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent
+ \rightmargin\leftmargin \advance\leftmargin 1.5em}\a@@item[]}
+
+\def \a@c@quotation {%
+%\tracingmacros 1
+\a@@list{}{\listparindent 1.5em \itemindent\listparindent
+ \rightmargin\leftmargin \parsep \z@ plus\p@}\a@@item[]}
+
+\def \a@c@quote {%
+%\tracingmacros 1
+\let \endquote \a@@endtrivlist
+\a@@list{}{\rightmargin\leftmargin}\a@@item[]}
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * TITLE PAGE *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newenvironment{titlepage}
+{% \titlepage
+ \ifa@book
+ \cleardoublepage
+ \fi
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \if@compatibility
+ \setcounter{page}{0}
+ \else
+ \ifa@book \else
+ \setcounter{page}{1}%
+ \fi
+ \fi }%
+{% \endtitlepage
+ \if@restonecol\twocolumn \else \newpage \fi
+ \ifa@book \else
+ \setcounter{page}{1}%
+ \fi }
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * APPENDIX *
+% ****************************************
+
+\def\a@c@appendix{%\par
+ \setcounter{section}{0}%
+ \renewcommand\@chapapp {\appendixname }%
+\ifa@article \renewcommand\thesection {\@Abjad \c@section }%
+ \setcounter{subsection}{0}%
+\else \renewcommand\thechapter {\@Abjad \c@chapter }%
+ \setcounter{chapter}{0}%
+\fi \test@token }
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+
+\ifa@article
+ \renewcommand\theequation{\@arabic\c@equation}
+ \renewcommand\thefigure{\@arabic\c@figure}
+ \renewcommand\thetable{\@arabic\c@table}
+\fi
+
+\def\fnum@figure {\figurename \space \thefigure }
+
+\def\fnum@table {\tablename \space \thetable }
+
+\long\def \a@makecaption #1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#2 : #1}%
+ \ifdim \wd\@tempboxa >\hsize
+ #2 : #1\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip }
+
+\let \@makecaption \a@makecaption
+
+\long\def \a@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect #2}%
+\begingroup \@parboxrestore \normalsize
+ \edef \reserved@a {\csname fnum@#1\endcsname }%
+ \@makecaption {\xpa \RL \xpa {\reserved@a }}{#3}\par
+\endgroup}
+
+\let \@caption \a@caption
+
+\long\def \a@@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
+\begingroup \@parboxrestore \normalsize
+ \edef \reserved@a {\csname fnum@#1\endcsname }%
+ \@makecaption {\xpa \RL \xpa {\reserved@a }}{\RL {#3}}\par
+\endgroup \test@token }
+
+\at@arabtext {\let \@caption \a@@caption }
+
+\let \a@c@caption \caption
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+
+\ifa@article \setcounter{tocdepth}{3}
+\else \setcounter{tocdepth}{2}
+\fi
+
+\setcounter{tocdepth}{5} % for test only
+
+\def \a@c@tableofcontents {\a@t@ble {\contentsname }{toc}}
+%\def \a@c@tableofcontents {\a@t@ble {\RL{\contentsname }}{toc}}
+
+\def \a@c@starttoc #1{\endarabtext
+\the\arabtext@hook
+\@starttoc {#1}\arabtext }
+
+%\def \a@t@ble #1#2{% \tableofcontents etc.
+% \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
+
+%\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
+
+\def \a@l@section #1#2{% for arabic mode
+\ifnum \c@tocdepth >\z@
+ \addpenalty {\@secpenalty }\addvspace {1.0em plus\p@ }
+ \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+\fi }
+
+\def \a@l@part #1#2{% for arabic mode
+\ifnum \c@tocdepth >-2\relax
+ \addpenalty {-\@highpenalty }\addvspace {2.25em plus\p@ }
+ \if@twocolumn \@tempdima 2.0em \else \@tempdima 3.0em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
+\fi }
+
+\def \a@l@chapter #1#2{% for arabic mode
+\ifnum \c@tocdepth >\m@ne
+ \addpenalty {-\@highpenalty }\addvspace {1.0em plus\p@ }
+ \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+ \penalty\@highpenalty
+\fi }
+
+\at@arabtext {% switch to Arabic terms
+ \let \l@part \a@l@part
+ \let \l@section \a@l@section
+ \let \l@chapter \a@l@chapter
+}
+
+\if@twocolumn
+ \def\l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
+ \def\l@subsubsection{\@dottedtocline{3}{2.5em}{2.3em}}
+ \def\l@paragraph{\@dottedtocline{4}{4.8em}{3.1em}}
+ \def\l@subparagraph{\@dottedtocline{5}{7.9em}{3.9em}}
+ \def\@tocrmarg {1.55em}
+\fi
+
+\def \a@c@listoffigures {\a@t@ble {\listfigurename }{lof}}
+
+\def \a@c@listoftables {\a@t@ble {\listtablename }{lot}}
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen\bibindent
+\bibindent=1.5em
+
+\newenvironment{thebibliography}[1]
+% {\chapter*{\bibname
+ {\section*{\bibname
+ \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
+%\let\@openbib@code\@empty
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand\newblock{}
+
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+ \twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\MakeUppercase\indexname}%
+ {\MakeUppercase\indexname}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+
+\newcommand\@idxitem{\hangindent 40\p@}
+\newcommand\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
+\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+
+% Default definition
+\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
+
+\def \footnoterule{%
+ \kern-3\p@
+ \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
+ \kern2.6\p@}
+
+\RLfootnotes
+
+% see also "alatex.sty"
+
+% ****************************************
+% * LANGUAGE DEPENDENT NAMES *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand\contentsname{Contents}
+\newcommand\listfigurename{List of Figures}
+\newcommand\listtablename{List of Tables}
+\newcommand\bibname{Bibliography}
+\newcommand\refname{References}
+\newcommand\indexname{Index}
+\newcommand\figurename{Figure}
+\newcommand\tablename{Table}
+\newcommand\partname{Part}
+\newcommand\chaptername{Chapter}
+\newcommand\appendixname{Appendix}
+\newcommand\abstractname{Abstract}
+
+\else %============= arabart.cls ==================================
+
+% tableofcontents = al-mu.htawayAtu
+% listoffigures = qA'imaTu al-.suwaru
+% listoftables = qA'imaTu al-^gadAwilu
+% listofpictures = qA'imaTu al-rusUmu
+% bibliography = al-marA^gi`u
+% references = al-ma.sAdiru
+% index = al-fihrisu (al-fihristu)
+% chapter = al-fa.slu
+% appendix = al-mul.haqu
+% abstract = al-mula_h_ha.su
+% attachments = al-murfaqAtu
+% number = al-raqmu
+
+%\at@arabtext {% switch to Arabic terms
+ \def\bibname {\a@tok(al-marAGiPu)}
+ \def\refname {\a@tok(al-maSAdiru)}
+ \def\indexname {\a@tok(al-fihristu)}
+ \def\figurename {\a@tok(SUraTuN)}
+ \def\tablename {\a@tok(GadwaluN)}
+ \def\partname {\a@tok(al-GuzQzu)}
+ \def\chaptername {\a@tok(al-faSlu)}
+ \def\appendixname {\a@tok(al-mulHaqu)}
+ \def\abstractname {\a@tok(al-mulaXXaSu)}
+%}
+
+\allowarab \contentsname
+\allowarab \listfigurename
+\allowarab \listtablename
+\allowarab \bibname
+\allowarab \refname
+\allowarab \indexname
+\allowarab \figurename
+\allowarab \tablename
+\allowarab \partname
+\allowarab \chaptername
+\allowarab \appendixname
+\allowarab \abstractname
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+
+% Default initializations
+
+\ifa@book \pagestyle{headings}
+\else \pagestyle{plain}
+\fi
+
+\pagenumbering{arabic} % Arabic page numbers
+
+% ****************************************
+% * SIZE DEPENDENT PATCHES *
+% ****************************************
+
+\input {asize1\@ptsize.clo}
+
+\UsePackage {arabext} % load local patches for ArabTeX
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \contentsname{Contents}
+\gdef \listfigurename{List of Figures}
+\gdef \listtablename{List of Tables}
+
+\at@arabtext {% switch to Arabic terms
+ \def\contentsname {\a@tok(al-muHtawayAtu)}
+ \def\listfigurename {\a@tok(qAQAimaTu aS-Suwari)}
+ \def\listtablename {\a@tok(qAQAimaTu al-GadAwili)}
+ \def\chaptername {\a@tok(al-faSlu)}
+}
+
+\ifx \a@part \undefined \else
+
+% tableofcontents = al-mu.htawayAtu
+% listoffigures = qA'imaTu al-.suwaru
+% listoftables = qA'imaTu al-^gadAwilu
+% listofpictures = qA'imaTu al-rusUmu
+% bibliography = al-marA^gi`u
+% references = al-ma.sAdiru
+% index = al-fihrisu (al-fihristu)
+% chapter = al-fa.slu
+% appendix = al-mul.haqu
+% abstract = al-mula_h_ha.su
+% attachments = al-murfaqAtu
+% number = al-raqmu
+
+\def\bibname {\stdcode{al-marA^gi`u}}
+\def\refname {\stdcode{al-ma.sAdiru}}
+\def\indexname {\stdcode{al-fihristu}}
+\def\figurename {\stdcode{.sUraTuN}}
+\def\tablename {\stdcode{^gadwaluN}}
+\def\partname {\stdcode{al-^guz'u}}
+\def\chaptername {\stdcode{al-fa.slu}}
+\def\appendixname {\stdcode{al-mul.haqu}}
+\def\abstractname {\stdcode{al-mula_h_ha.su}}
+
+\at@arabtext {% switch to Arabic terms
+\def\contentsname {\stdcode{al-mu.htawayAtu}}
+\def\listfigurename {\stdcode{qA'imaTu al-.suwari}}
+\def\listtablename {\stdcode{qA'imaTu al-^gadAwili}}
+}
+\fi
+
+\def\a@makechapterhead #1{% make heading with number
+ \null \vskip 50\p@
+\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
+ \a@normalfont \bfseries
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \edef \thechapter {\thechapter }%
+ \huge \set@arabfont \test@token \@chapapp {\thechapter} \end
+ \nobreak \vskip 20\p@
+ \fi\fi
+ \Huge \set@arabfont \test@token #1 \end
+ \nobreak \vskip 40\p@
+\endgroup }
+
+\allowarab \@chapapp
+
+\def\a@c@appendix{%\par
+ \setcounter{section}{0}%
+ \renewcommand\@chapapp {\appendixname }%
+\ifa@article \renewcommand\thesection {\@abjad \c@section }%
+ \setcounter{subsection}{0}%
+\else \renewcommand\thechapter {\@abjad \c@chapter }%
+ \setcounter{chapter}{0}%
+\fi \test@token }
+
+\def \a@chapter [#1]#2{% numbered chapter
+\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter {chapter}%
+ \typeout {\@chapapp \space \thechapter.}%
+ \addcontentsline {toc}{chapter}%
+ {\protect\numberline
+ {\protect\RL{\protect\stdcode{\thechapter }}}%
+ \protect\RL {#1}}%
+ \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+ \fi
+\else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+\fi
+\chaptermark{\RL {#1}}%
+\addtocontents {lof}{\protect\addvspace {10\p@}}%
+\addtocontents {lot}{\protect\addvspace {10\p@}}%
+\if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
+\else \a@makechapterhead {#2}\a@afterheading
+\fi \test@token }
+
+\long\def \a@@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
+\begingroup \@parboxrestore \normalsize
+ \def \protect {\nxp\protect\nxp}
+ \edef \thecaption {\csname fnum@#1\endcsname }%
+ \let \protect \relax
+ \@makecaption {\RL {\thecaption }}{\RL {#3}}\par
+\endgroup \test@token }
+
+\long\def \a@makecaption #1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{\RL{#1: #2}}%
+ \ifdim \wd\@tempboxa >\hsize
+\begin{arabtext} #1: #2
+\end{arabtext}
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip }
+
+\allowarab \caption
+\allowarab \thecaption
+
+\at@arabtext {\let \@caption \a@@caption
+\let \@makecaption \a@makecaption }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@l@section #1#2{% Text, Pageno
+% for arabic mode
+\ifnum \c@tocdepth >\z@
+ \addpenalty {\@secpenalty }%
+ \addvspace {1.0em plus\p@ }%
+% \@tempdima 1.5em
+ \@tempdima 1.0em
+% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+\fi }
+
+\def \a@l@part #1#2{% Text, Pageno
+% for arabic mode
+\ifnum \c@tocdepth >-2\relax
+ \addpenalty {-\@highpenalty }%
+ \addvspace {2.25em plus\p@ }%
+ \@tempdima 2.0em
+% \@tempdima \if@twocolumn 2.0em \else 3.0em \fi \relax
+ \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
+\fi }
+
+\def \a@l@chapter #1#2{% Text, Pageno
+% for arabic mode
+\ifnum \c@tocdepth >\m@ne
+ \addpenalty {-\@highpenalty }%
+ \addvspace {1.0em plus\p@ }%
+% \@tempdima 1.5em
+ \@tempdima 1.0em
+% \@tempdima \if@twocolumn 1.0em \else 1.5em \fi \relax
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+ \penalty\@highpenalty
+\fi }
+
+\def \a@x@sect {% arabic section TOC formats if article
+ \def\a@l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
+ \def\a@l@subsubsection{\@dottedtocline{3}{2.5em}{2.1em}}
+ \def\a@l@paragraph{\@dottedtocline{4}{4.6em}{2.8em}}
+ \def\a@l@subparagraph{\@dottedtocline{5}{9.4em}{3.4em}}
+}
+
+\def \a@y@sect {% arabic section TOC formats if report or book
+ \def\a@l@section{\@dottedtocline{1}{1.0em}{1.5em}}
+ \def\a@l@subsection{\@dottedtocline{2}{2.5em}{2.1em}}
+ \def\a@l@subsubsection{\@dottedtocline{3}{4.6em}{2.8em}}
+ \def\a@l@paragraph{\@dottedtocline{4}{9.4em}{3.4em}}
+ \def\a@l@subparagraph{\@dottedtocline{5}{23.8em}{4.1em}}
+}
+
+\def \a@xy@sect {% arabic section TOC formats
+\ifa@article \a@x@sect \else \a@y@sect \fi }
+
+\def \a@c@tableofcontents {\a@xy@sect % define arabic section TOC formats
+\a@t@ble {\contentsname }{toc}}
+
+% CAUTION: \a@xy@sect must be executed before expanding \the\arabtex@hook
+% and prior to \@starttoc within \a@t@ble, see arabrep.cls
+
+\def\a@l@figure{\@dottedtocline{1}{1.0em}{1.5em}}
+\def\a@l@table{\@dottedtocline{1}{1.0em}{1.5em}}
+
+\at@arabtext {% switch to Arabic terms, execute from asect::a@t@ble
+ \let \l@part \a@l@part
+ \let \l@chapter \a@l@chapter
+ \let \l@section \a@l@section
+ \let \l@subsection \a@l@subsection
+ \let \l@subsubsection \a@l@subsubsection
+ \let \l@paragraph \a@l@paragraph
+ \let \l@subparagraph \a@l@subparagraph
+ \let \l@figure \a@l@figure
+ \let \l@table \a@l@table
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% restore LaTeX version, delete \a@caption!
+
+\long\def\@caption#1[#2]#3{%
+ \par
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
+ \begingroup
+ \@parboxrestore
+ \if@minipage
+ \@setminipage
+ \fi
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+
+\long\def \a@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect #2}%
+\begingroup \@parboxrestore \normalsize
+ \protected@edef \reserved@a {\csname fnum@#1\endcsname }%
+ \xpa\@makecaption \xpa{\xpa\RL \xpa{\reserved@a }}{#3}\par
+\endgroup}
+
+%\let \@caption \a@caption
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% end of file arabrep.cls
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/arabrep1.cls b/language/arabic/arabtex/texinput/arabrep1.cls
index e308a8d9e4..0f5b9a4867 100644
--- a/language/arabic/arabtex/texinput/arabrep1.cls
+++ b/language/arabic/arabtex/texinput/arabrep1.cls
@@ -1,914 +1,914 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabrep.cls
-% ArabTeX extension
-% Arabic version of report.cls
-% for use with ArabTeX Version 3.08 - 3.10
-%
-% Copyright (C) 1997, 1999 by Klaus Lagally
-% 16.05.1997
-% 21.03.1999
-%
-% reusing report.cls (and book.cls) of 19 Jun 1995
-% reusing report.cls (and book.cls) of 26 May 1996
-% patches for pagenumbering 25 March 1999
-% 15.07.1999
-% 21.04.2000 % new font handling
-% 14.09.2001 % RTL footnotes, chapter names etc.
-% 16.02.2002 % input encoding at \part
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NeedsTeXFormat {LaTeX2e}[1996/06/01]
-%\ProvidesClass {arabrep}[2001/09/14 v3.10 arabic report format]
-\ProvidesClass {arabrep}[2002/02/16 v3.11 arabic report format]
-
-\newif\if@mainmatter \@mainmattertrue
-\newif\ifa@book \a@bookfalse
-\newif\ifa@article \a@articlefalse
-\DeclareOption {book}{\a@booktrue \@mainmattertrue }
-\DeclareOption {article}{\a@articletrue \@mainmattertrue }
-\DeclareOption* {\PassOptionsToClass {\CurrentOption}{report}}
-\ProcessOptions
-\LoadClass {report}[1996/05/26] % load the LaTeX standard class
-
-\ifa@book \@openrighttrue \fi
-%\input{bk1\@ptsize.clo} % collision on \small !!
-
-\ifa@article \@titlepagefalse \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%\RequirePackage {arabtex}[1997/05/08] % load the ArabTeX processor
-\RequirePackage {arabtex}[2000/04/21] % load the ArabTeX processor
-
-\UsePackage {latexext} % load local patches for LaTeX
-
-% ****************************************
-% * PAGE STYLES *
-% ****************************************
-
-\if@twoside % If two-sided printing.
- \def \ps@headings {% for arabic mode
- \let \@mkboth \markboth \def\@oddfoot{}\def\@evenfoot{}%
- \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
- \a@normalfont \leftmark \hfil \thep@ge }%
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \chaptermark ##1{\markboth {##1%
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \hskip 1em\relax \RL{\@chapapp \space \thechapter. }%
- \fi\fi }{}}%
- \def \sectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
- \hskip 1em\relax \RL{\thesection }\fi }}%
- \ifa@article
- \def \subsectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
- \hskip 1em\relax \RL{\thesubsection }\fi }}%
- \fi }
-\else % If one-sided printing.
- \def \ps@headings {% for arabic mode
- \let \@mkboth \markboth \def \@oddfoot{}\def \@evenfoot{}%
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \chaptermark ##1{\markright {##1%
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \hskip 1em\relax \RL{\@chapapp\space \thechapter. }%
- \fi\fi }}}
-\fi
-
-\def \ps@plain {% for arabic mode
- \let \@mkboth\@gobbletwo \let\@oddhead\@empty \let\@evenhead\@empty
- \def \@oddfoot {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \hfil \thep@ge \hfil }%
- \let \@evenfoot\@oddfoot }
-
-\def \ps@myheadings {% for arabic mode
- \let\@oddfoot \@empty \let\@evenfoot \@empty
- \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
- \a@normalfont \thep@ge \hfil \rightmark }%
- \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
- \a@normalfont \leftmark \hfil \thep@ge }%
- \let\@mkboth\@gobbletwo \let\subsectionmark\@gobble
- \let\chaptermark\@gobble \let\sectionmark\@gobble }
-
-% ****************************************
-% * TITLE AND ABSTRACT *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\if@titlepage
- \newcommand\maketitle{\begin{titlepage}%
- \let\footnotesize\small
- \let\footnoterule\relax
- \null\vfil
- \vskip 60\p@
- \begin{center}%
- {\LARGE \@title \par}%
- \vskip 3em%
- {\large
- \lineskip .75em%
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}\par}%
- \vskip 1.5em%
- {\large \@date \par}% % Set date in \large size.
- \end{center}\par
- \@thanks
- \vfil\null
- \end{titlepage}%
- \setcounter{footnote}{0}%
- \let\thanks\relax\let\maketitle\relax
- \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
-\else
- \newcommand\maketitle{\par
- \begingroup
- \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
- \def\@makefnmark{\hb@xt@\z@{$\m@th^{\@thefnmark}$\hss}}%
- \long\def\@makefntext##1{\parindent 1em\noindent
- \hb@xt@1.8em{\hss\@makefnmark}##1}%
- \if@twocolumn
- \ifnum \col@number=\@ne
- \@maketitle
- \else
- \twocolumn[\@maketitle]%
- \fi
- \else
- \newpage
- \global\@topnum\z@ % Prevents figures from going at top of page.
- \@maketitle
- \fi
- \thispagestyle{plain}\@thanks
- \endgroup
- \setcounter{footnote}{0}%
- \let\thanks\relax
- \let\maketitle\relax\let\@maketitle\relax
- \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
-
- \def\@maketitle{%
- \newpage
- \null
- \vskip 2em%
- \begin{center}%
- {\LARGE \@title \par}%
- \vskip 1.5em%
- {\large
- \lineskip .5em%
- \begin{tabular}[t]{c}%
- \@author
- \end{tabular}\par}%
- \vskip 1em%
- {\large \@date}%
- \end{center}%
- \par
- \vskip 1.5em}
-\fi
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * UNITS *
-% ****************************************
-
-\ifa@book
-\newcommand\frontmatter
- {\cleardoublepage \@mainmatterfalse \pagenumbering{Abjad}}
-% {\cleardoublepage \@mainmatterfalse \pagenumbering{Abj}}
-\newcommand\mainmatter
- {\cleardoublepage \@mainmattertrue \pagenumbering{arabic}}
-% {\cleardoublepage \@mainmattertrue \pagenumbering{arab}}
-\newcommand\backmatter
- {\if@openright \cleardoublepage \else \clearpage
- \fi \@mainmatterfalse }
-\fi
-
-\ifa@article
-\renewcommand\thesection {\@arabic\c@section}
-\fi
-
-%\allowarab \@chapapp
-
-% ****************************************
-% * PARTS *
-% ****************************************
-
-\renewcommand \thepart {\@arabic\c@part }
-
-\def \a@c@part {\a@@par
-\ifa@article \addvspace{4ex}\@afterindentfalse
-\else \cleardoublepage \thispagestyle{plain}%
- \if@twocolumn \onecolumn \@tempswatrue
- \else \@tempswafalse
- \fi
- \hbox{}\vfil
-\fi \secdef \a@part \a@spart }
-
-\ifa@article
-
-\def \a@part [#1]#2{% numbered part
-\ifnum \c@secnumdepth > \m@ne
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
-\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
-\fi
-\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
- \a@normalfont \bfseries \interlinepenalty \@M
-\ifnum \c@secnumdepth >\m@ne
- \Large \set@arabfont
- \test@token \partname \abjad{\thepart } \end \nobreak
-\fi
- \huge \set@arabfont \test@token #2 \end
- \markboth {}{}
-\endgroup
-\nobreak \vskip 3ex
-\a@afterheading \test@token }
-
-\def \a@part [#1]#2{% numbered part
-\ifnum \c@secnumdepth > \m@ne
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
-\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
-\fi
-\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
- \a@normalfont \bfseries \interlinepenalty \@M
-\ifnum \c@secnumdepth >\m@ne
- \Large \set@arabfont
-{\let \a@oldcode \sc@code \setcode{arabtex}%
- \test@token \partname \abjad{\thepart } \end
-\xpa\setcode\xpa{\a@oldcode }}%
- \nobreak
-\fi
- \huge \set@arabfont \test@token #2 \end
- \markboth {}{}
-\endgroup
-\nobreak \vskip 3ex
-\a@afterheading \test@token }
-
-\def \a@spart #1{% unnumbered part
-\begingroup \let \end \a@@par \a@@raggedright \a@parindent \z@
- \interlinepenalty \@M
- \a@normalfont \huge \bffamily \set@arabfont \test@token #1 \end
-\endgroup
-\nobreak \vskip 3ex
-\a@afterheading \test@token }
-
-\else % report or book
-
-\def \a@part [#1]#2{% numbered part
- \ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
- \else \addcontentsline {toc}{part}{\protect\RL {#1}}%
- \fi
- \markboth{}{}
-\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
- \a@normalfont \bfseries
- \ifnum \c@secnumdepth > -2\relax
- \huge \set@arabfont
- \test@token \partname \abjad{\thepart } \end
- \vskip 20\p@
- \fi
- \Huge \set@arabfont \test@token #2 \end
-\endgroup
-\@endpart \test@token }
-
-\def \a@part [#1]#2{% numbered part
-\ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
- \refstepcounter {part}%
- \addcontentsline {toc}{part}{\protect\RL
- {\protect\abjad {\thepart}\hspace {1em} #1 }}%
-\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
-\fi
-\markboth{}{}
-\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
- \a@normalfont \bfseries
-\ifnum \c@secnumdepth > -2\relax
- \huge \set@arabfont
-{\let \a@oldcode \sc@code \setcode{arabtex}%
- \test@token \partname \abjad{\thepart } \end
-\xpa\setcode\xpa{\a@oldcode }}%
- \vskip 20\p@
-\fi
- \Huge \set@arabfont \test@token #2 \end
-\endgroup
-\@endpart \test@token }
-
-\def \a@spart #1{% unnumbered part
-\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
- \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
-\endgroup
-\@endpart \test@token }
-
-\fi % article, report or book
-
-\def\@part[#1]#2{% \part outside Arabic text
-\begin{arabtext}
-\a@part[\LR{#1}]{\LR{#2}}
-\end{arabtext}}
-
-\def\@spart#1{% \part* outside Arabic text
-\begin{arabtext}
-\a@spart {\LR{#1}}
-\end{arabtext}}
-
-% ****************************************
-% * CHAPTERS *
-% ****************************************
-
-
-\ifa@article \else % report or book
-\allowarab \thechapter
-
-\newcommand \a@c@chapter {\a@@par
- \if@openright \cleardoublepage \else \clearpage \fi
- \thispagestyle {plain}%
- \global\@topnum \z@ \@afterindentfalse
- \secdef \a@chapter \a@schapter }
-
-\def \a@chapter [#1]#2{% numbered chapter
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \refstepcounter {chapter}%
- \typeout {\@chapapp \space \thechapter.}%
- \addcontentsline {toc}{chapter}%
- {\protect\numberline {\thechapter }\protect\RL {#1}}%
- \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
- \fi
- \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
- \fi
-\chaptermark{\RL {#1}}%
-\addtocontents {lof}{\protect\addvspace {10\p@}}%
-\addtocontents {lot}{\protect\addvspace {10\p@}}%
- \if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
- \else \a@makechapterhead {#2}\a@afterheading
- \fi
-\tracingmacros 0
-\test@token }
-
-\def\a@makechapterhead #1{% make heading with number
- \null \vskip 50\p@
-\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
- \a@normalfont \bfseries
- \ifnum \c@secnumdepth >\m@ne
- \if@mainmatter
- \edef \thechapter {\@chapapp \space \thechapter . }%
- \huge \set@arabfont \test@token {\thechapter } \end
- \nobreak \vskip 20\p@
- \fi\fi
- \Huge \set@arabfont \test@token #1 \end
- \nobreak \vskip 40\p@
-\endgroup }
-
-\def\a@schapter #1{% unnumbered chapter
- \if@twocolumn \@topnewpage [\a@makeschapterhead {#1}]%
- \else \a@makeschapterhead {#1}\a@afterheading
- \fi
-\test@token }
-
-\def\a@makeschapterhead #1{%
-\null \vskip 50\p@
-\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
- \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
-\endgroup
-\nobreak \vskip 40\p@ }
-
-\fi % report or book
-
-%*********************************************************************
-%*********************************************************************
-%************************* rest not yet adapted **********************
-%*********************************************************************
-%*********************************************************************
-
-% ****************************************
-% * SECTIONS *
-% ****************************************
-
-\def \a@c@section {\a@startsection
-{section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}%
-%{\reset@font \Large\setnashbf }}
-{\a@normalfont \Large \bfseries }}
-
-\def \a@c@subsection {\a@startsection
-{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}%
-{\a@normalfont \large \bfseries }}
-
-\def \a@c@subsubsection {\a@startsection
-{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}%
-{\a@normalfont \normalsize \bfseries }}
-
-\def \a@c@paragraph {\a@startsection
-{paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}%
-{\a@normalfont \normalsize \bfseries }}
-
-\def\a@c@subparagraph {\a@startsection
-{subparagraph}{5}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}%
-{\a@normalfont \normalsize \bfseries }}
-
-% ****************************************
-% * LISTS *
-% ****************************************
-
-\at@arabtext {% switch to Arabic terms
- \def\theenumii{\arabic{enumii}}
- \def\theenumiii{\arabic{enumiii}}
- \def\theenumiv{\arabic{enumiv}}
-%
- \def\labelenumi{\theenumi\space-}
- \def\labelenumii{\abj@d{\theenumii}-}
- \def\labelenumiii{\theenumiii\nospace(}
- \def\labelenumiv{\abj@d{\theenumiv}\nospace)}
-%
- \def\labelitemi{$\circ$}
- \def\labelitemii{$-$}
- \def\labelitemiii{$\star$}
- \def\labelitemiv{$+$}
-}
-
-% ****************************************
-% * OTHER ENVIRONMENTS *
-% ****************************************
-
-% DESCRIPTION
-
-\def \descriptionlabel #1{\setnashbf \RL{#1}\hskip \labelsep }
-\def \descriptionlabel #1{\bfseries \RL{#1}\hskip \labelsep }
-
-% THEOREM
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% EQUATION and EQNARRAY
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% TITLEPAGE
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% TABBING
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% MINIPAGE
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% FRAMEBOX
-%%%%%%%%%%%%% NOT IMPLEMENTED
-
-% ****************************************
-% * ABSTRACT *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifa@book
-\else
-\if@titlepage
- \newenvironment{abstract}{%
- \titlepage
- \null\vfil
- \begin{center}%
- \bfseries \abstractname
- \@endparpenalty\@M
- \end{center}}%
- {\par\vfil\null\endtitlepage}
-\else
- \newenvironment{abstract}{%
- \if@twocolumn
- \section*{\abstractname}%
- \else
- \small
- \begin{center}%
- {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
- \end{center}%
- \quotation
- \fi}
- {\if@twocolumn\else\endquotation\fi}
-\fi
-\fi
-
-\else %============= arabart.cls ==================================
-
-\ifa@book
-\else
-\if@titlepage
-\iffalse
-\newenvironment{abstract}{%
- \titlepage
- \null\vfil
- \begin{center}%
- \bfseries \abstractname
- \@endparpenalty\@M
- \end{center}}%
- {\par\vfil\null\endtitlepage}
-\fi
-\else
-
-\def \a@c@abstract{%
-\if@twocolumn \def \next
- {\a@c@section*{\abstractname}}%
-\else \def \next
- {\small
- \begingroup \center
-% \setnashbf \abstractname
- \a@normalfont \bfseries \abstractname
- \vspace{-.5em}\vspace{\z@}%
- \endcenter \endgroup
- \a@c@quotation }%
-\fi
- \def \endabstract
- {\if@twocolumn\else\endquotation\fi}%
-\next }
-
-\fi
-\fi
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * OTHER ENVIRONMENTS *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newenvironment{verse}
- {\let\\=\@centercr
- \list{}{\itemsep \z@
- \itemindent -1.5em%
- \listparindent\itemindent
- \rightmargin \leftmargin
- \advance\leftmargin 1.5em}%
- \item[]}
- {\endlist}
-
-\newenvironment{quotation}
- {\list{}{\listparindent 1.5em%
- \itemindent \listparindent
- \rightmargin \leftmargin
- \parsep \z@ \@plus\p@}%
- \item[]}
- {\endlist}
-
-\newenvironment{quote}
- {\list{}{\rightmargin\leftmargin}%
- \item[]}
- {\endlist}
-
-\else %============= arabart.cls ==================================
-
-\def \a@c@verse {%
-%\tracingmacros 1
-\let \endverse \a@@endtrivlist
-\a@@list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent
- \rightmargin\leftmargin \advance\leftmargin 1.5em}\a@@item[]}
-
-\def \a@c@quotation {%
-%\tracingmacros 1
-\a@@list{}{\listparindent 1.5em \itemindent\listparindent
- \rightmargin\leftmargin \parsep \z@ plus\p@}\a@@item[]}
-
-\def \a@c@quote {%
-%\tracingmacros 1
-\let \endquote \a@@endtrivlist
-\a@@list{}{\rightmargin\leftmargin}\a@@item[]}
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * TITLE PAGE *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newenvironment{titlepage}
-{% \titlepage
- \ifa@book
- \cleardoublepage
- \fi
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse\newpage
- \fi
- \thispagestyle{empty}%
- \if@compatibility
- \setcounter{page}{0}
- \else
- \ifa@book \else
- \setcounter{page}{1}%
- \fi
- \fi }%
-{% \endtitlepage
- \if@restonecol\twocolumn \else \newpage \fi
- \ifa@book \else
- \setcounter{page}{1}%
- \fi }
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * APPENDIX *
-% ****************************************
-
-\def\a@c@appendix{%\par
- \setcounter{section}{0}%
- \renewcommand\@chapapp {\appendixname }%
-\ifa@article \renewcommand\thesection {\@Abjad \c@section }%
- \setcounter{subsection}{0}%
-\else \renewcommand\thechapter {\@Abjad \c@chapter }%
- \setcounter{chapter}{0}%
-\fi \test@token }
-
-% ****************************************
-% * FIGURES AND TABLES *
-% ****************************************
-
-\ifa@article
- \renewcommand\theequation{\@arabic\c@equation}
- \renewcommand\thefigure{\@arabic\c@figure}
- \renewcommand\thetable{\@arabic\c@table}
-\fi
-
-\def\fnum@figure {\figurename \space \thefigure }
-
-\def\fnum@table {\tablename \space \thetable }
-
-\long\def \a@makecaption #1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#2 : #1}%
- \ifdim \wd\@tempboxa >\hsize
- #2 : #1\par
- \else
- \global \@minipagefalse
- \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip }
-
-\let \@makecaption \a@makecaption
-
-\long\def \a@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect #2}%
-\begingroup \@parboxrestore \normalsize
- \edef \reserved@a {\csname fnum@#1\endcsname }%
- \@makecaption {\xpa \RL \xpa {\reserved@a }}{#3}\par
-\endgroup}
-
-\let \@caption \a@caption
-
-\long\def \a@@caption #1[#2]#3{\par
- \addcontentsline {\csname ext@#1\endcsname}{#1}
- {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
-\begingroup \@parboxrestore \normalsize
- \edef \reserved@a {\csname fnum@#1\endcsname }%
- \@makecaption {\xpa \RL \xpa {\reserved@a }}{\RL {#3}}\par
-\endgroup \test@token }
-
-\at@arabtext {\let \@caption \a@@caption }
-
-\let \a@c@caption \caption
-
-% ****************************************
-% * TABLE OF CONTENTS, ETC. *
-% ****************************************
-
-\ifa@article \setcounter{tocdepth}{3}
-\else \setcounter{tocdepth}{2}
-\fi
-
-\setcounter{tocdepth}{5} % for test only
-
-\def \a@c@tableofcontents {\a@t@ble {\contentsname }{toc}}
-%\def \a@c@tableofcontents {\a@t@ble {\RL{\contentsname }}{toc}}
-
-\def \a@c@starttoc #1{\endarabtext
-\the\arabtext@hook
-\@starttoc {#1}\arabtext }
-
-%\def \a@t@ble #1#2{% \tableofcontents etc.
-% \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
-
-%\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
-
-\def \a@l@section #1#2{% for arabic mode
-\ifnum \c@tocdepth >\z@
- \addpenalty {\@secpenalty }\addvspace {1.0em plus\p@ }
- \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
-\fi }
-
-\def \a@l@part #1#2{% for arabic mode
-\ifnum \c@tocdepth >-2\relax
- \addpenalty {-\@highpenalty }\addvspace {2.25em plus\p@ }
- \if@twocolumn \@tempdima 2.0em \else \@tempdima 3.0em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
-\fi }
-
-\def \a@l@chapter #1#2{% for arabic mode
-\ifnum \c@tocdepth >\m@ne
- \addpenalty {-\@highpenalty }\addvspace {1.0em plus\p@ }
- \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
- \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
- \penalty\@highpenalty
-\fi }
-
-\at@arabtext {% switch to Arabic terms
- \let \l@part \a@l@part
- \let \l@section \a@l@section
- \let \l@chapter \a@l@chapter
-}
-
-\if@twocolumn
- \def\l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
- \def\l@subsubsection{\@dottedtocline{3}{2.5em}{2.3em}}
- \def\l@paragraph{\@dottedtocline{4}{4.8em}{3.1em}}
- \def\l@subparagraph{\@dottedtocline{5}{7.9em}{3.9em}}
- \def\@tocrmarg {1.55em}
-\fi
-
-\def \a@c@listoffigures {\a@t@ble {\listfigurename }{lof}}
-
-\def \a@c@listoftables {\a@t@ble {\listtablename }{lot}}
-
-% ****************************************
-% * BIBLIOGRAPHY *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newdimen\bibindent
-\bibindent=1.5em
-
-\newenvironment{thebibliography}[1]
-% {\chapter*{\bibname
- {\section*{\bibname
- \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
- \list{\@biblabel{\@arabic\c@enumiv}}%
- {\settowidth\labelwidth{\@biblabel{#1}}%
- \leftmargin\labelwidth
- \advance\leftmargin\labelsep
- \@openbib@code
- \usecounter{enumiv}%
- \let\p@enumiv\@empty
- \renewcommand\theenumiv{\@arabic\c@enumiv}}%
- \sloppy\clubpenalty4000\widowpenalty4000%
- \sfcode`\.=\@m}
- {\def\@noitemerr
- {\@latex@warning{Empty `thebibliography' environment}}%
- \endlist}
-
-%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
-%\let\@openbib@code\@empty
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * THE INDEX *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand\newblock{}
-
-\newenvironment{theindex}
- {\if@twocolumn
- \@restonecolfalse
- \else
- \@restonecoltrue
- \fi
- \columnseprule \z@
- \columnsep 35\p@
- \twocolumn[\@makeschapterhead{\indexname}]%
- \@mkboth{\MakeUppercase\indexname}%
- {\MakeUppercase\indexname}%
- \thispagestyle{plain}\parindent\z@
- \parskip\z@ \@plus .3\p@\relax
- \let\item\@idxitem}
- {\if@restonecol\onecolumn\else\clearpage\fi}
-
-\newcommand\@idxitem{\hangindent 40\p@}
-\newcommand\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
-\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
-\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
-
-\else %============= arabart.cls ==================================
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * FOOTNOTES *
-% ****************************************
-
-% Default definition
-\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
-
-\def \footnoterule{%
- \kern-3\p@
- \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
- \kern2.6\p@}
-
-\RLfootnotes
-
-% see also "alatex.sty"
-
-% ****************************************
-% * LANGUAGE DEPENDENT NAMES *
-% ****************************************
-
-\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand\contentsname{Contents}
-\newcommand\listfigurename{List of Figures}
-\newcommand\listtablename{List of Tables}
-\newcommand\bibname{Bibliography}
-\newcommand\refname{References}
-\newcommand\indexname{Index}
-\newcommand\figurename{Figure}
-\newcommand\tablename{Table}
-\newcommand\partname{Part}
-\newcommand\chaptername{Chapter}
-\newcommand\appendixname{Appendix}
-\newcommand\abstractname{Abstract}
-
-\else %============= arabart.cls ==================================
-
-% tableofcontents = al-mu.htawayAtu
-% listoffigures = qA'imaTu al-.suwaru
-% listoftables = qA'imaTu al-^gadAwilu
-% listofpictures = qA'imaTu al-rusUmu
-% bibliography = al-marA^gi`u
-% references = al-ma.sAdiru
-% index = al-fihrisu (al-fihristu)
-% chapter = al-fa.slu
-% appendix = al-mul.haqu
-% abstract = al-mula_h_ha.su
-% attachments = al-murfaqAtu
-% number = al-raqmu
-
-%\at@arabtext {% switch to Arabic terms
- \def\bibname {\a@tok(al-marAGiPu)}
- \def\refname {\a@tok(al-maSAdiru)}
- \def\indexname {\a@tok(al-fihristu)}
- \def\figurename {\a@tok(SUraTuN)}
- \def\tablename {\a@tok(GadwaluN)}
- \def\partname {\a@tok(al-GuzQzu)}
- \def\chaptername {\a@tok(al-faSlu)}
- \def\appendixname {\a@tok(al-mulHaqu)}
- \def\abstractname {\a@tok(al-mulaXXaSu)}
-%}
-
-\allowarab \contentsname
-\allowarab \listfigurename
-\allowarab \listtablename
-\allowarab \bibname
-\allowarab \refname
-\allowarab \indexname
-\allowarab \figurename
-\allowarab \tablename
-\allowarab \partname
-\allowarab \chaptername
-\allowarab \appendixname
-\allowarab \abstractname
-
-\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ****************************************
-% * INITIALIZATION *
-% ****************************************
-
-% Default initializations
-
-\ifa@book \pagestyle{headings}
-\else \pagestyle{plain}
-\fi
-
-\pagenumbering{arabic} % Arabic page numbers
-
-% ****************************************
-% * SIZE DEPENDENT PATCHES *
-% ****************************************
-
-\input {asize1\@ptsize.clo}
-
-\UsePackage {arabext} % load local patches for ArabTeX
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \contentsname{Contents}
-\gdef \listfigurename{List of Figures}
-\gdef \listtablename{List of Tables}
-
-\at@arabtext {% switch to Arabic terms
- \def\contentsname {\a@tok(al-muHtawayAtu)}
- \def\listfigurename {\a@tok(qAQAimaTu aS-Suwari)}
- \def\listtablename {\a@tok(qAQAimaTu al-GadAwili)}
- \def\chaptername {\a@tok(al-faSlu)}
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% end of file arabrep.cls
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabrep.cls
+% ArabTeX extension
+% Arabic version of report.cls
+% for use with ArabTeX Version 3.08 - 3.10
+%
+% Copyright (C) 1997, 1999 by Klaus Lagally
+% 16.05.1997
+% 21.03.1999
+%
+% reusing report.cls (and book.cls) of 19 Jun 1995
+% reusing report.cls (and book.cls) of 26 May 1996
+% patches for pagenumbering 25 March 1999
+% 15.07.1999
+% 21.04.2000 % new font handling
+% 14.09.2001 % RTL footnotes, chapter names etc.
+% 16.02.2002 % input encoding at \part
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat {LaTeX2e}[1996/06/01]
+%\ProvidesClass {arabrep}[2001/09/14 v3.10 arabic report format]
+\ProvidesClass {arabrep}[2002/02/16 v3.11 arabic report format]
+
+\newif\if@mainmatter \@mainmattertrue
+\newif\ifa@book \a@bookfalse
+\newif\ifa@article \a@articlefalse
+\DeclareOption {book}{\a@booktrue \@mainmattertrue }
+\DeclareOption {article}{\a@articletrue \@mainmattertrue }
+\DeclareOption* {\PassOptionsToClass {\CurrentOption}{report}}
+\ProcessOptions
+\LoadClass {report}[1996/05/26] % load the LaTeX standard class
+
+\ifa@book \@openrighttrue \fi
+%\input{bk1\@ptsize.clo} % collision on \small !!
+
+\ifa@article \@titlepagefalse \fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\RequirePackage {arabtex}[1997/05/08] % load the ArabTeX processor
+\RequirePackage {arabtex}[2000/04/21] % load the ArabTeX processor
+
+\UsePackage {latexext} % load local patches for LaTeX
+
+% ****************************************
+% * PAGE STYLES *
+% ****************************************
+
+\if@twoside % If two-sided printing.
+ \def \ps@headings {% for arabic mode
+ \let \@mkboth \markboth \def\@oddfoot{}\def\@evenfoot{}%
+ \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
+ \a@normalfont \leftmark \hfil \thep@ge }%
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \chaptermark ##1{\markboth {##1%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \hskip 1em\relax \RL{\@chapapp \space \thechapter. }%
+ \fi\fi }{}}%
+ \def \sectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
+ \hskip 1em\relax \RL{\thesection }\fi }}%
+ \ifa@article
+ \def \subsectionmark ##1{\markleft {##1\ifnum \c@secnumdepth >\@ne
+ \hskip 1em\relax \RL{\thesubsection }\fi }}%
+ \fi }
+\else % If one-sided printing.
+ \def \ps@headings {% for arabic mode
+ \let \@mkboth \markboth \def \@oddfoot{}\def \@evenfoot{}%
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \chaptermark ##1{\markright {##1%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \hskip 1em\relax \RL{\@chapapp\space \thechapter. }%
+ \fi\fi }}}
+\fi
+
+\def \ps@plain {% for arabic mode
+ \let \@mkboth\@gobbletwo \let\@oddhead\@empty \let\@evenhead\@empty
+ \def \@oddfoot {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \hfil \thep@ge \hfil }%
+ \let \@evenfoot\@oddfoot }
+
+\def \ps@myheadings {% for arabic mode
+ \let\@oddfoot \@empty \let\@evenfoot \@empty
+ \def \@oddhead {\edef \thep@ge {\nxp\RL{\thepage }}% right heading
+ \a@normalfont \thep@ge \hfil \rightmark }%
+ \def \@evenhead {\edef \thep@ge {\nxp\RL{\thepage }}% left heading
+ \a@normalfont \leftmark \hfil \thep@ge }%
+ \let\@mkboth\@gobbletwo \let\subsectionmark\@gobble
+ \let\chaptermark\@gobble \let\sectionmark\@gobble }
+
+% ****************************************
+% * TITLE AND ABSTRACT *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\if@titlepage
+ \newcommand\maketitle{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \let\thanks\relax\let\maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+\else
+ \newcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\hb@xt@\z@{$\m@th^{\@thefnmark}$\hss}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{\hss\@makefnmark}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \let\thanks\relax
+ \let\maketitle\relax\let\@maketitle\relax
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
+
+ \def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\fi
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * UNITS *
+% ****************************************
+
+\ifa@book
+\newcommand\frontmatter
+ {\cleardoublepage \@mainmatterfalse \pagenumbering{Abjad}}
+% {\cleardoublepage \@mainmatterfalse \pagenumbering{Abj}}
+\newcommand\mainmatter
+ {\cleardoublepage \@mainmattertrue \pagenumbering{arabic}}
+% {\cleardoublepage \@mainmattertrue \pagenumbering{arab}}
+\newcommand\backmatter
+ {\if@openright \cleardoublepage \else \clearpage
+ \fi \@mainmatterfalse }
+\fi
+
+\ifa@article
+\renewcommand\thesection {\@arabic\c@section}
+\fi
+
+%\allowarab \@chapapp
+
+% ****************************************
+% * PARTS *
+% ****************************************
+
+\renewcommand \thepart {\@arabic\c@part }
+
+\def \a@c@part {\a@@par
+\ifa@article \addvspace{4ex}\@afterindentfalse
+\else \cleardoublepage \thispagestyle{plain}%
+ \if@twocolumn \onecolumn \@tempswatrue
+ \else \@tempswafalse
+ \fi
+ \hbox{}\vfil
+\fi \secdef \a@part \a@spart }
+
+\ifa@article
+
+\def \a@part [#1]#2{% numbered part
+\ifnum \c@secnumdepth > \m@ne
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+\fi
+\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
+ \a@normalfont \bfseries \interlinepenalty \@M
+\ifnum \c@secnumdepth >\m@ne
+ \Large \set@arabfont
+ \test@token \partname \abjad{\thepart } \end \nobreak
+\fi
+ \huge \set@arabfont \test@token #2 \end
+ \markboth {}{}
+\endgroup
+\nobreak \vskip 3ex
+\a@afterheading \test@token }
+
+\def \a@part [#1]#2{% numbered part
+\ifnum \c@secnumdepth > \m@ne
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+\fi
+\begingroup \let \end \a@@par \a@parindent \z@ \a@@raggedright
+ \a@normalfont \bfseries \interlinepenalty \@M
+\ifnum \c@secnumdepth >\m@ne
+ \Large \set@arabfont
+{\let \a@oldcode \sc@code \setcode{arabtex}%
+ \test@token \partname \abjad{\thepart } \end
+\xpa\setcode\xpa{\a@oldcode }}%
+ \nobreak
+\fi
+ \huge \set@arabfont \test@token #2 \end
+ \markboth {}{}
+\endgroup
+\nobreak \vskip 3ex
+\a@afterheading \test@token }
+
+\def \a@spart #1{% unnumbered part
+\begingroup \let \end \a@@par \a@@raggedright \a@parindent \z@
+ \interlinepenalty \@M
+ \a@normalfont \huge \bffamily \set@arabfont \test@token #1 \end
+\endgroup
+\nobreak \vskip 3ex
+\a@afterheading \test@token }
+
+\else % report or book
+
+\def \a@part [#1]#2{% numbered part
+ \ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+ \else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+ \fi
+ \markboth{}{}
+\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
+ \a@normalfont \bfseries
+ \ifnum \c@secnumdepth > -2\relax
+ \huge \set@arabfont
+ \test@token \partname \abjad{\thepart } \end
+ \vskip 20\p@
+ \fi
+ \Huge \set@arabfont \test@token #2 \end
+\endgroup
+\@endpart \test@token }
+
+\def \a@part [#1]#2{% numbered part
+\ifnum \c@secnumdepth > \ifa@article \m@ne \else -2 \fi
+ \refstepcounter {part}%
+ \addcontentsline {toc}{part}{\protect\RL
+ {\protect\abjad {\thepart}\hspace {1em} #1 }}%
+\else \addcontentsline {toc}{part}{\protect\RL {#1}}%
+\fi
+\markboth{}{}
+\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
+ \a@normalfont \bfseries
+\ifnum \c@secnumdepth > -2\relax
+ \huge \set@arabfont
+{\let \a@oldcode \sc@code \setcode{arabtex}%
+ \test@token \partname \abjad{\thepart } \end
+\xpa\setcode\xpa{\a@oldcode }}%
+ \vskip 20\p@
+\fi
+ \Huge \set@arabfont \test@token #2 \end
+\endgroup
+\@endpart \test@token }
+
+\def \a@spart #1{% unnumbered part
+\begingroup \let \end \a@@par \a@@centering \interlinepenalty \@M
+ \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
+\endgroup
+\@endpart \test@token }
+
+\fi % article, report or book
+
+\def\@part[#1]#2{% \part outside Arabic text
+\begin{arabtext}
+\a@part[\LR{#1}]{\LR{#2}}
+\end{arabtext}}
+
+\def\@spart#1{% \part* outside Arabic text
+\begin{arabtext}
+\a@spart {\LR{#1}}
+\end{arabtext}}
+
+% ****************************************
+% * CHAPTERS *
+% ****************************************
+
+
+\ifa@article \else % report or book
+\allowarab \thechapter
+
+\newcommand \a@c@chapter {\a@@par
+ \if@openright \cleardoublepage \else \clearpage \fi
+ \thispagestyle {plain}%
+ \global\@topnum \z@ \@afterindentfalse
+ \secdef \a@chapter \a@schapter }
+
+\def \a@chapter [#1]#2{% numbered chapter
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter {chapter}%
+ \typeout {\@chapapp \space \thechapter.}%
+ \addcontentsline {toc}{chapter}%
+ {\protect\numberline {\thechapter }\protect\RL {#1}}%
+ \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+ \fi
+ \else \addcontentsline {toc}{chapter}{\protect\RL {#1}}%
+ \fi
+\chaptermark{\RL {#1}}%
+\addtocontents {lof}{\protect\addvspace {10\p@}}%
+\addtocontents {lot}{\protect\addvspace {10\p@}}%
+ \if@twocolumn \@topnewpage [\a@makechapterhead {#2}]%
+ \else \a@makechapterhead {#2}\a@afterheading
+ \fi
+\tracingmacros 0
+\test@token }
+
+\def\a@makechapterhead #1{% make heading with number
+ \null \vskip 50\p@
+\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
+ \a@normalfont \bfseries
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \edef \thechapter {\@chapapp \space \thechapter . }%
+ \huge \set@arabfont \test@token {\thechapter } \end
+ \nobreak \vskip 20\p@
+ \fi\fi
+ \Huge \set@arabfont \test@token #1 \end
+ \nobreak \vskip 40\p@
+\endgroup }
+
+\def\a@schapter #1{% unnumbered chapter
+ \if@twocolumn \@topnewpage [\a@makeschapterhead {#1}]%
+ \else \a@makeschapterhead {#1}\a@afterheading
+ \fi
+\test@token }
+
+\def\a@makeschapterhead #1{%
+\null \vskip 50\p@
+\begingroup \let \end \a@@par \a@@raggedright \interlinepenalty\@M
+ \a@normalfont \Huge \bfseries \set@arabfont \test@token #1 \end
+\endgroup
+\nobreak \vskip 40\p@ }
+
+\fi % report or book
+
+%*********************************************************************
+%*********************************************************************
+%************************* rest not yet adapted **********************
+%*********************************************************************
+%*********************************************************************
+
+% ****************************************
+% * SECTIONS *
+% ****************************************
+
+\def \a@c@section {\a@startsection
+{section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}%
+%{\reset@font \Large\setnashbf }}
+{\a@normalfont \Large \bfseries }}
+
+\def \a@c@subsection {\a@startsection
+{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}%
+{\a@normalfont \large \bfseries }}
+
+\def \a@c@subsubsection {\a@startsection
+{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}%
+{\a@normalfont \normalsize \bfseries }}
+
+\def \a@c@paragraph {\a@startsection
+{paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}%
+{\a@normalfont \normalsize \bfseries }}
+
+\def\a@c@subparagraph {\a@startsection
+{subparagraph}{5}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}%
+{\a@normalfont \normalsize \bfseries }}
+
+% ****************************************
+% * LISTS *
+% ****************************************
+
+\at@arabtext {% switch to Arabic terms
+ \def\theenumii{\arabic{enumii}}
+ \def\theenumiii{\arabic{enumiii}}
+ \def\theenumiv{\arabic{enumiv}}
+%
+ \def\labelenumi{\theenumi\space-}
+ \def\labelenumii{\abj@d{\theenumii}-}
+ \def\labelenumiii{\theenumiii\nospace(}
+ \def\labelenumiv{\abj@d{\theenumiv}\nospace)}
+%
+ \def\labelitemi{$\circ$}
+ \def\labelitemii{$-$}
+ \def\labelitemiii{$\star$}
+ \def\labelitemiv{$+$}
+}
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+
+% DESCRIPTION
+
+\def \descriptionlabel #1{\setnashbf \RL{#1}\hskip \labelsep }
+\def \descriptionlabel #1{\bfseries \RL{#1}\hskip \labelsep }
+
+% THEOREM
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% EQUATION and EQNARRAY
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% TITLEPAGE
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% TABBING
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% MINIPAGE
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% FRAMEBOX
+%%%%%%%%%%%%% NOT IMPLEMENTED
+
+% ****************************************
+% * ABSTRACT *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifa@book
+\else
+\if@titlepage
+ \newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \begin{center}%
+ \bfseries \abstractname
+ \@endparpenalty\@M
+ \end{center}}%
+ {\par\vfil\null\endtitlepage}
+\else
+ \newenvironment{abstract}{%
+ \if@twocolumn
+ \section*{\abstractname}%
+ \else
+ \small
+ \begin{center}%
+ {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \quotation
+ \fi}
+ {\if@twocolumn\else\endquotation\fi}
+\fi
+\fi
+
+\else %============= arabart.cls ==================================
+
+\ifa@book
+\else
+\if@titlepage
+\iffalse
+\newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \begin{center}%
+ \bfseries \abstractname
+ \@endparpenalty\@M
+ \end{center}}%
+ {\par\vfil\null\endtitlepage}
+\fi
+\else
+
+\def \a@c@abstract{%
+\if@twocolumn \def \next
+ {\a@c@section*{\abstractname}}%
+\else \def \next
+ {\small
+ \begingroup \center
+% \setnashbf \abstractname
+ \a@normalfont \bfseries \abstractname
+ \vspace{-.5em}\vspace{\z@}%
+ \endcenter \endgroup
+ \a@c@quotation }%
+\fi
+ \def \endabstract
+ {\if@twocolumn\else\endquotation\fi}%
+\next }
+
+\fi
+\fi
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * OTHER ENVIRONMENTS *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\itemsep \z@
+ \itemindent -1.5em%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin 1.5em}%
+ \item[]}
+ {\endlist}
+
+\newenvironment{quotation}
+ {\list{}{\listparindent 1.5em%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@}%
+ \item[]}
+ {\endlist}
+
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item[]}
+ {\endlist}
+
+\else %============= arabart.cls ==================================
+
+\def \a@c@verse {%
+%\tracingmacros 1
+\let \endverse \a@@endtrivlist
+\a@@list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent
+ \rightmargin\leftmargin \advance\leftmargin 1.5em}\a@@item[]}
+
+\def \a@c@quotation {%
+%\tracingmacros 1
+\a@@list{}{\listparindent 1.5em \itemindent\listparindent
+ \rightmargin\leftmargin \parsep \z@ plus\p@}\a@@item[]}
+
+\def \a@c@quote {%
+%\tracingmacros 1
+\let \endquote \a@@endtrivlist
+\a@@list{}{\rightmargin\leftmargin}\a@@item[]}
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * TITLE PAGE *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newenvironment{titlepage}
+{% \titlepage
+ \ifa@book
+ \cleardoublepage
+ \fi
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \if@compatibility
+ \setcounter{page}{0}
+ \else
+ \ifa@book \else
+ \setcounter{page}{1}%
+ \fi
+ \fi }%
+{% \endtitlepage
+ \if@restonecol\twocolumn \else \newpage \fi
+ \ifa@book \else
+ \setcounter{page}{1}%
+ \fi }
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * APPENDIX *
+% ****************************************
+
+\def\a@c@appendix{%\par
+ \setcounter{section}{0}%
+ \renewcommand\@chapapp {\appendixname }%
+\ifa@article \renewcommand\thesection {\@Abjad \c@section }%
+ \setcounter{subsection}{0}%
+\else \renewcommand\thechapter {\@Abjad \c@chapter }%
+ \setcounter{chapter}{0}%
+\fi \test@token }
+
+% ****************************************
+% * FIGURES AND TABLES *
+% ****************************************
+
+\ifa@article
+ \renewcommand\theequation{\@arabic\c@equation}
+ \renewcommand\thefigure{\@arabic\c@figure}
+ \renewcommand\thetable{\@arabic\c@table}
+\fi
+
+\def\fnum@figure {\figurename \space \thefigure }
+
+\def\fnum@table {\tablename \space \thetable }
+
+\long\def \a@makecaption #1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#2 : #1}%
+ \ifdim \wd\@tempboxa >\hsize
+ #2 : #1\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip }
+
+\let \@makecaption \a@makecaption
+
+\long\def \a@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect #2}%
+\begingroup \@parboxrestore \normalsize
+ \edef \reserved@a {\csname fnum@#1\endcsname }%
+ \@makecaption {\xpa \RL \xpa {\reserved@a }}{#3}\par
+\endgroup}
+
+\let \@caption \a@caption
+
+\long\def \a@@caption #1[#2]#3{\par
+ \addcontentsline {\csname ext@#1\endcsname}{#1}
+ {\protect\numberline {\csname the#1\endcsname}\protect\RL {#2}}%
+\begingroup \@parboxrestore \normalsize
+ \edef \reserved@a {\csname fnum@#1\endcsname }%
+ \@makecaption {\xpa \RL \xpa {\reserved@a }}{\RL {#3}}\par
+\endgroup \test@token }
+
+\at@arabtext {\let \@caption \a@@caption }
+
+\let \a@c@caption \caption
+
+% ****************************************
+% * TABLE OF CONTENTS, ETC. *
+% ****************************************
+
+\ifa@article \setcounter{tocdepth}{3}
+\else \setcounter{tocdepth}{2}
+\fi
+
+\setcounter{tocdepth}{5} % for test only
+
+\def \a@c@tableofcontents {\a@t@ble {\contentsname }{toc}}
+%\def \a@c@tableofcontents {\a@t@ble {\RL{\contentsname }}{toc}}
+
+\def \a@c@starttoc #1{\endarabtext
+\the\arabtext@hook
+\@starttoc {#1}\arabtext }
+
+%\def \a@t@ble #1#2{% \tableofcontents etc.
+% \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
+
+%\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
+
+\def \a@l@section #1#2{% for arabic mode
+\ifnum \c@tocdepth >\z@
+ \addpenalty {\@secpenalty }\addvspace {1.0em plus\p@ }
+ \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+\fi }
+
+\def \a@l@part #1#2{% for arabic mode
+\ifnum \c@tocdepth >-2\relax
+ \addpenalty {-\@highpenalty }\addvspace {2.25em plus\p@ }
+ \if@twocolumn \@tempdima 2.0em \else \@tempdima 3.0em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \large \bfseries }%
+\fi }
+
+\def \a@l@chapter #1#2{% for arabic mode
+\ifnum \c@tocdepth >\m@ne
+ \addpenalty {-\@highpenalty }\addvspace {1.0em plus\p@ }
+ \if@twocolumn \@tempdima 1.0em \else \@tempdima 1.5em \fi
+ \a@@lsection {#1}{#2}{\a@normalfont \bfseries }%
+ \penalty\@highpenalty
+\fi }
+
+\at@arabtext {% switch to Arabic terms
+ \let \l@part \a@l@part
+ \let \l@section \a@l@section
+ \let \l@chapter \a@l@chapter
+}
+
+\if@twocolumn
+ \def\l@subsection{\@dottedtocline{2}{1.0em}{1.5em}}
+ \def\l@subsubsection{\@dottedtocline{3}{2.5em}{2.3em}}
+ \def\l@paragraph{\@dottedtocline{4}{4.8em}{3.1em}}
+ \def\l@subparagraph{\@dottedtocline{5}{7.9em}{3.9em}}
+ \def\@tocrmarg {1.55em}
+\fi
+
+\def \a@c@listoffigures {\a@t@ble {\listfigurename }{lof}}
+
+\def \a@c@listoftables {\a@t@ble {\listtablename }{lot}}
+
+% ****************************************
+% * BIBLIOGRAPHY *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen\bibindent
+\bibindent=1.5em
+
+\newenvironment{thebibliography}[1]
+% {\chapter*{\bibname
+ {\section*{\bibname
+ \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+%\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
+%\let\@openbib@code\@empty
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * THE INDEX *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand\newblock{}
+
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+ \twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\MakeUppercase\indexname}%
+ {\MakeUppercase\indexname}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+
+\newcommand\@idxitem{\hangindent 40\p@}
+\newcommand\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}
+\newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+
+\else %============= arabart.cls ==================================
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * FOOTNOTES *
+% ****************************************
+
+% Default definition
+\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
+
+\def \footnoterule{%
+ \kern-3\p@
+ \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
+ \kern2.6\p@}
+
+\RLfootnotes
+
+% see also "alatex.sty"
+
+% ****************************************
+% * LANGUAGE DEPENDENT NAMES *
+% ****************************************
+
+\iffalse %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand\contentsname{Contents}
+\newcommand\listfigurename{List of Figures}
+\newcommand\listtablename{List of Tables}
+\newcommand\bibname{Bibliography}
+\newcommand\refname{References}
+\newcommand\indexname{Index}
+\newcommand\figurename{Figure}
+\newcommand\tablename{Table}
+\newcommand\partname{Part}
+\newcommand\chaptername{Chapter}
+\newcommand\appendixname{Appendix}
+\newcommand\abstractname{Abstract}
+
+\else %============= arabart.cls ==================================
+
+% tableofcontents = al-mu.htawayAtu
+% listoffigures = qA'imaTu al-.suwaru
+% listoftables = qA'imaTu al-^gadAwilu
+% listofpictures = qA'imaTu al-rusUmu
+% bibliography = al-marA^gi`u
+% references = al-ma.sAdiru
+% index = al-fihrisu (al-fihristu)
+% chapter = al-fa.slu
+% appendix = al-mul.haqu
+% abstract = al-mula_h_ha.su
+% attachments = al-murfaqAtu
+% number = al-raqmu
+
+%\at@arabtext {% switch to Arabic terms
+ \def\bibname {\a@tok(al-marAGiPu)}
+ \def\refname {\a@tok(al-maSAdiru)}
+ \def\indexname {\a@tok(al-fihristu)}
+ \def\figurename {\a@tok(SUraTuN)}
+ \def\tablename {\a@tok(GadwaluN)}
+ \def\partname {\a@tok(al-GuzQzu)}
+ \def\chaptername {\a@tok(al-faSlu)}
+ \def\appendixname {\a@tok(al-mulHaqu)}
+ \def\abstractname {\a@tok(al-mulaXXaSu)}
+%}
+
+\allowarab \contentsname
+\allowarab \listfigurename
+\allowarab \listtablename
+\allowarab \bibname
+\allowarab \refname
+\allowarab \indexname
+\allowarab \figurename
+\allowarab \tablename
+\allowarab \partname
+\allowarab \chaptername
+\allowarab \appendixname
+\allowarab \abstractname
+
+\fi %%%%%%%%%%%%%%%% article.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ****************************************
+% * INITIALIZATION *
+% ****************************************
+
+% Default initializations
+
+\ifa@book \pagestyle{headings}
+\else \pagestyle{plain}
+\fi
+
+\pagenumbering{arabic} % Arabic page numbers
+
+% ****************************************
+% * SIZE DEPENDENT PATCHES *
+% ****************************************
+
+\input {asize1\@ptsize.clo}
+
+\UsePackage {arabext} % load local patches for ArabTeX
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \contentsname{Contents}
+\gdef \listfigurename{List of Figures}
+\gdef \listtablename{List of Tables}
+
+\at@arabtext {% switch to Arabic terms
+ \def\contentsname {\a@tok(al-muHtawayAtu)}
+ \def\listfigurename {\a@tok(qAQAimaTu aS-Suwari)}
+ \def\listtablename {\a@tok(qAQAimaTu al-GadAwili)}
+ \def\chaptername {\a@tok(al-faSlu)}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% end of file arabrep.cls
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/arabskel.sty b/language/arabic/arabtex/texinput/arabskel.sty
index b866b05af5..8790052f6d 100644
--- a/language/arabic/arabtex/texinput/arabskel.sty
+++ b/language/arabic/arabtex/texinput/arabskel.sty
@@ -1,185 +1,185 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabskel.sty
-% ArabTeX
-% character skeleton definitions for font nash14
-% called in HMODE
-% Version 04.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11
-\a@ident {arabskel.sty}{3.10 character skeleton definitions }{04.06.2000}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \seta@skels {% define \ArabTeX character skeletons for font nash
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pattern: class, code, connect, {iso, fin, med, ini}
-\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal
-\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default
-
-% basic letters
-\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif
-\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{2,0}}} % `ain
-\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot
-\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop
-\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal
-\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop
-\gdef \sk@dd { 2 ,\a@dad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ddad
-\gdef \sk@f { 6 ,\a@fah ,1 ,{{0,5}{0,5}{0,0}{2,1}}} % fah
-\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{2,0}}} % fah, no dot
-\let \sk@g \sk@@
-\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, loop
-\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, bar
-\let \sk@g@ps \sk@@
-\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah
-\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta
-\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
-\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah
-\gdef \sk@j { 3 ,\a@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gim
-\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf
-\gdef \sk@k@p { 5 ,\a@kaf@p@s,1,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop
-\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, no mark
-\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf
-\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah
-\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam
-\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam
-\gdef \sk@m {10 ,\a@mim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % mim
-\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot
-\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop
-\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf
-\let \sk@q@s \sk@@
-\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah
-\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop
-\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots
-\gdef \sk@s { 2 ,\a@sin ,1 ,{{2,6}{2,4}{0,1}{0,3}}} % sin
-\gdef \sk@s@p { 2 ,\a@sin@p ,1 ,{{0,6}{0,4}{0,2}{0,4}}} % sin, two dots
-\gdef \sk@sh { 2 ,\a@shin ,1 ,{{2,6}{2,4}{0,2}{0,2}}} % shin
-\gdef \sk@ss { 2 ,\a@sad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ssad
-\gdef \sk@ts { 3 ,\a@tsah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tchah
-\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{1,2}{1,2}{1,1}{1,1}}} % ttah
-\gdef \sk@v { 6 ,\a@vah ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % vah
-\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw
-\let \sk@w@r \sk@@
-\let \sk@w@b \sk@@
-\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah
-\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke
-\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah bari
-\let \sk@y@ps \sk@@
-\gdef \sk@z { 8 ,\a@zay ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zay
-\gdef \sk@zh { 8 ,\a@zhah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zhah
-\gdef \sk@zz { 7 ,\a@zzah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % zzah
-
-% special forms
-\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{2,6}{2,4}{0,-2}{0,-1}}} % sin short
-\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{2,4}{2,4}{0,-3}{0,-2}}} % ssad short
-\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed
-\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % kaf, short
-\let \sk@k@sp \sk@@
-\gdef \sk@g@ph { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf' short
-\gdef \sk@g@sh { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short
-\let \sk@g@sp \sk@@
-\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig
-\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig
-\gdef \sk@j@s { 3 ,\a@gim@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % gim short
-\gdef \sk@hh@s { 3, \a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short
-\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short
-\gdef \sk@ts@s { 3 ,\a@tsah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % tchah short
-\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif
-\let \sk@m@si \sk@@
-
-% specials
-\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil
-\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
-\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
-\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
-\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
-
-% ligatures
-\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-?
-\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-?
-\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-?
-\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-?
-\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-?
-\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-?
-\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-?
-\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-?
-\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-|
-\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-|
-\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-|
-\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-?
-\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-|
-\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-|
-\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l
-\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-|
-\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-2}{0,0}}} % ?-m-l
-\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-|
-\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l
-\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space
-
-\global\let \sk@free \sk@W % phantom for outtable
-
-\global\let \sk@b@s \sk@b
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\seta@skels % activate skeletons
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% ACT = 1. char
-\def \set@act #1{\def \act@skel {#1}\xpa \unp@ck@act #1\relax }
-
-\def \get@act {\xxpa \unp@ck@act \act@skel \relax }
-
-\def \new@act #1{\xxpa \unp@ck@act #1\relax }
-
-\def \unp@ck@act #1,#2,#3,#4\relax {% unpack skeleton description
-\act@cls #1\act@cd #2\act@con #3\def \act@dia {#4}}
-
-% CHR = 2. char
-\def \set@chr #1{\def \chr@skel {#1}\xpa \unp@ck@chr #1\relax }
-
-\def \get@chr {\xxpa \unp@ck@chr \chr@skel \relax }
-
-\def \new@chr #1{\xxpa \unp@ck@chr #1\relax }
-
-\def \unp@ck@chr #1,#2,#3,#4\relax {% unpack skeleton description
-\chr@cls #1\chr@cd #2\chr@con #3\def \chr@dia {#4}}
-
-% SKL = 3. char
-\def \set@skl #1{\def \skl@skel {#1}\xpa \unp@ck@skl #1\relax }
-
-\def \get@skl {\xxpa \unp@ck@skl \skl@skel \relax }
-
-\def \new@skl #1{\xxpa \unp@ck@skl #1\relax }
-
-\def \unp@ck@skl #1,#2,#3,#4\relax {% unpack skeleton description
-\skl@cls #1\skl@cd #2\skl@con #3\def \skl@dia {#4}}
-
-\def \a@skl@init {% default attributes
-\set@skel \sk@def }
-
-\def \dia@pos #1#2#3#4#5\relax {% unpack diacritics list
-\edef \temp {\ifcase #5 #1\or #2\or #3\or #4\fi }%
-\xpa \get@dia \temp \relax }
-
-\def \get@dia #1,#2\relax {% position of diacritic
-\def \dia@mod {#1}\def \dia@hadj {#2}}
-
-\def \dia@mod {0} \def \dia@hadj {0}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \bah@cls 1 \chardef \gim@cls 3 \chardef \kaf@cls 5
-\chardef \rah@cls 8 \chardef \other@cls 10
-
-\catcode`\@ = \sklatcode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabskel.sty
+% ArabTeX
+% character skeleton definitions for font nash14
+% called in HMODE
+% Version 04.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11
+\a@ident {arabskel.sty}{3.10 character skeleton definitions }{04.06.2000}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \seta@skels {% define \ArabTeX character skeletons for font nash
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% pattern: class, code, connect, {iso, fin, med, ini}
+\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal
+\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default
+
+% basic letters
+\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif
+\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{2,0}}} % `ain
+\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot
+\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop
+\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal
+\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop
+\gdef \sk@dd { 2 ,\a@dad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ddad
+\gdef \sk@f { 6 ,\a@fah ,1 ,{{0,5}{0,5}{0,0}{2,1}}} % fah
+\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{2,0}}} % fah, no dot
+\let \sk@g \sk@@
+\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, loop
+\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, bar
+\let \sk@g@ps \sk@@
+\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah
+\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta
+\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
+\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah
+\gdef \sk@j { 3 ,\a@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gim
+\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf
+\gdef \sk@k@p { 5 ,\a@kaf@p@s,1,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop
+\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, no mark
+\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf
+\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah
+\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam
+\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam
+\gdef \sk@m {10 ,\a@mim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % mim
+\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot
+\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop
+\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf
+\let \sk@q@s \sk@@
+\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah
+\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop
+\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots
+\gdef \sk@s { 2 ,\a@sin ,1 ,{{2,6}{2,4}{0,1}{0,3}}} % sin
+\gdef \sk@s@p { 2 ,\a@sin@p ,1 ,{{0,6}{0,4}{0,2}{0,4}}} % sin, two dots
+\gdef \sk@sh { 2 ,\a@shin ,1 ,{{2,6}{2,4}{0,2}{0,2}}} % shin
+\gdef \sk@ss { 2 ,\a@sad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ssad
+\gdef \sk@ts { 3 ,\a@tsah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tchah
+\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{1,2}{1,2}{1,1}{1,1}}} % ttah
+\gdef \sk@v { 6 ,\a@vah ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % vah
+\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw
+\let \sk@w@r \sk@@
+\let \sk@w@b \sk@@
+\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah
+\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke
+\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah bari
+\let \sk@y@ps \sk@@
+\gdef \sk@z { 8 ,\a@zay ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zay
+\gdef \sk@zh { 8 ,\a@zhah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zhah
+\gdef \sk@zz { 7 ,\a@zzah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % zzah
+
+% special forms
+\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{2,6}{2,4}{0,-2}{0,-1}}} % sin short
+\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{2,4}{2,4}{0,-3}{0,-2}}} % ssad short
+\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed
+\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % kaf, short
+\let \sk@k@sp \sk@@
+\gdef \sk@g@ph { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf' short
+\gdef \sk@g@sh { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short
+\let \sk@g@sp \sk@@
+\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig
+\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig
+\gdef \sk@j@s { 3 ,\a@gim@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % gim short
+\gdef \sk@hh@s { 3, \a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short
+\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short
+\gdef \sk@ts@s { 3 ,\a@tsah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % tchah short
+\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif
+\let \sk@m@si \sk@@
+
+% specials
+\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil
+\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
+\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+
+% ligatures
+\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-?
+\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-?
+\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-?
+\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-?
+\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-?
+\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-?
+\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-?
+\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-?
+\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-|
+\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-|
+\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-|
+\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-?
+\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-|
+\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-|
+\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l
+\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-|
+\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-2}{0,0}}} % ?-m-l
+\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-|
+\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l
+\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space
+
+\global\let \sk@free \sk@W % phantom for outtable
+
+\global\let \sk@b@s \sk@b
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\seta@skels % activate skeletons
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ACT = 1. char
+\def \set@act #1{\def \act@skel {#1}\xpa \unp@ck@act #1\relax }
+
+\def \get@act {\xxpa \unp@ck@act \act@skel \relax }
+
+\def \new@act #1{\xxpa \unp@ck@act #1\relax }
+
+\def \unp@ck@act #1,#2,#3,#4\relax {% unpack skeleton description
+\act@cls #1\act@cd #2\act@con #3\def \act@dia {#4}}
+
+% CHR = 2. char
+\def \set@chr #1{\def \chr@skel {#1}\xpa \unp@ck@chr #1\relax }
+
+\def \get@chr {\xxpa \unp@ck@chr \chr@skel \relax }
+
+\def \new@chr #1{\xxpa \unp@ck@chr #1\relax }
+
+\def \unp@ck@chr #1,#2,#3,#4\relax {% unpack skeleton description
+\chr@cls #1\chr@cd #2\chr@con #3\def \chr@dia {#4}}
+
+% SKL = 3. char
+\def \set@skl #1{\def \skl@skel {#1}\xpa \unp@ck@skl #1\relax }
+
+\def \get@skl {\xxpa \unp@ck@skl \skl@skel \relax }
+
+\def \new@skl #1{\xxpa \unp@ck@skl #1\relax }
+
+\def \unp@ck@skl #1,#2,#3,#4\relax {% unpack skeleton description
+\skl@cls #1\skl@cd #2\skl@con #3\def \skl@dia {#4}}
+
+\def \a@skl@init {% default attributes
+\set@skel \sk@def }
+
+\def \dia@pos #1#2#3#4#5\relax {% unpack diacritics list
+\edef \temp {\ifcase #5 #1\or #2\or #3\or #4\fi }%
+\xpa \get@dia \temp \relax }
+
+\def \get@dia #1,#2\relax {% position of diacritic
+\def \dia@mod {#1}\def \dia@hadj {#2}}
+
+\def \dia@mod {0} \def \dia@hadj {0}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \bah@cls 1 \chardef \gim@cls 3 \chardef \kaf@cls 5
+\chardef \rah@cls 8 \chardef \other@cls 10
+
+\catcode`\@ = \sklatcode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/arabsymb.sty b/language/arabic/arabtex/texinput/arabsymb.sty
index 709d9e1e0b..4645355782 100644
--- a/language/arabic/arabtex/texinput/arabsymb.sty
+++ b/language/arabic/arabtex/texinput/arabsymb.sty
@@ -1,192 +1,192 @@
-%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%%
-% 20.4.1998 11:30:59
-% code assignments for arabic font in ArabTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-% 20.04.98
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {12.07.1997}
-
-\chardef \a@nashcode = '1 % file has been read
-
-%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
-
-\chardef \a@f@iso = '0 % isolated
-\chardef \a@f@end = '1 % final
-\chardef \a@f@mid = '2 % medial
-\chardef \a@f@beg = '3 % initial
-
-%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
-
-\chardef \a@ttah@dia = '010 % for urdu
-\chardef \a@one@dot@up = '011 %
-\chardef \a@two@dots@down = '012 %
-\chardef \a@fatha = '013 %
-\chardef \a@kasra = '013 %
-\chardef \a@damma = '014 %
-\chardef \a@hamza = '015 %
-\chardef \a@madda = '016 %
-\chardef \a@shadda = '017 %
-\chardef \a@two@dots@up = '020 %
-\chardef \a@three@dots@up = '021 %
-\chardef \a@three@dots@down = '022 %
-\chardef \a@fathatan = '023 %
-\chardef \a@kasratan = '023 %
-\chardef \a@dammatan = '024 %
-\chardef \a@sukun = '025 %
-\chardef \a@wasla = '026 %
-\chardef \a@quran@alif = '027 %
-\chardef \a@bow@dia = '030 % for kurdish
-\chardef \a@e@dia = '040 % for pashto
-\chardef \a@zwarakay = '040 % for pashto
-\chardef \a@one@dot@down = '056 % period
-\chardef \a@h@dia = '146 % for urdu
-\chardef \a@ammad = '146 % for pashto
-
-%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@alif = '100 % 100,101
-\chardef \a@bah@s = '110 % 110-113
-%% gim 140 140-143
-\chardef \a@hhah = '150 % 150-153
-\chardef \a@khah = '160 % 160-163
-%% tsah 170 170-173
-\chardef \a@dal = '130 % 130,131
-\chardef \a@rah = '120 % 120,121
-%% zay 122 122,123
-%% zhah 124 124,125
-\chardef \a@sin = '200 % 200-203
-%% shin 210 210-213
-\chardef \a@sad = '220 % 220-223
-%% dad 230 230-233
-\chardef \a@kaf@w = '234 % 234-237 wide kaf
-\chardef \a@ttah = '240 % 240-243
-%% zzah 244 244-247
-\chardef \a@ain = '250 % 250-253
-\chardef \a@fah@s = '254 % 254-257 fah family
-%% fah 362 362,363
-\chardef \a@qaf = '364 % 364,365
-%% vah 366 366,367
-\chardef \a@kaf@s = '270 % 270-273 kaf family
-\chardef \a@kaf = '274 % 274,275
-\chardef \a@gaf@s = '300 % 300-303 gaf family
-\chardef \a@gaf = '304 % 304,305
-\chardef \a@lam = '310 % 310-313
-\chardef \a@mim = '320 % 320-323
-\chardef \a@nun = '340 % 340,341
-\chardef \a@hah = '350 % 350-354
-\chardef \a@waw = '360 % 360,361
-\chardef \a@yah = '370 % 370,371
-
-\chardef \a@hamza@iso = '132 % 132
-
-\chardef \a@alif@iso = \a@alif % 100
-\chardef \a@alif@end = '101 % 101
-\chardef \a@bah = \a@bah@s % 110
-\chardef \a@hamzc = \a@hamza@iso % 132
-
-%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
-
-\chardef \a@block = '000 % 000-003
-\chardef \a@tatwil = '004 % 004-007
-
-\chardef \a@rquotes = '042 % 042
-\chardef \a@period = '056 % 056
-\chardef \a@lquotes = '134 % 134
-
-\chardef \a@space@spec = '044 % 046,047 carrier for dots
-\chardef \a@skip = '045 % 047 small space, initial (!)
-\chardef \a@no@break = '046 % 046 no space, breaks ligatures
-\chardef \a@break = '047 % 047 small space, medial
-
-\chardef \a@smspc = \a@space@spec % 044
-
-%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim
-\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim
-\chardef \a@g@to@mb = '031 % 033 medial bah to gim
-\chardef \a@bah@high = '032 % 034,035 before sin, sad
-\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun
-\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah'
-\chardef \a@alif@spec@mim = '075 % 076 final alif after mim
-\chardef \a@lam@alif = '102 % 102,103
-\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah
-\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie;
- % also bah before yah
-%% gim_spec 143 144,145 from above
-\chardef \a@gim@close = '144 % 146,147 closed gim
-\chardef \a@hhah@spec = '153 % 154,155 from above
-\chardef \a@khah@spec = '163 % 164,165 from above
-\chardef \a@rah@k = '166 % 166,167 kurdish rah
-%% tsah_spec 173 174,175 from above
-\chardef \a@sin@spec = '202 % 204,205 short form
-%% shin_spec 204 206,207 short form
-\chardef \a@sad@spec = '222 % 224,225 short form
-%% dad_spec 224 226,227 short form
-\chardef \a@kaf@spec = '274 % 276,277 short form
-\chardef \a@gaf@spec = '304 % 306,307 short form
-\chardef \a@lam@gim = '311 % 314 lam on gim
-\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim
-\chardef \a@lam@long = '312 % 315 initial lam before yah
-\chardef \a@lam@spec@yah = '314 % 316 before final yah ?
-\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim
-\chardef \a@mim@spec@high = '322 % 324 from above
-\chardef \a@mim@spec = '324 % 325-327 final; medial after lam;
- % also before gim
-\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim
-\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim
-\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah
-\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized
-\chardef \a@mm@to@b = '333 % 335 bah to medial mim
-\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim
-\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif
-\chardef \a@er@to@s = '343 % 345 sin to final rah
-\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim
-\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim
-\chardef \a@hah@urd = '353 % 353,354 two-eyed hah,
- % see hah and hah_spec_lam
-\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam
-\chardef \a@hah@spec = '354 % 355-357 final short hah;
- % also medial hah after sin
-\chardef \a@yah@spec = '371 % 372 ligature for final yah
-
-\chardef \a@lam@alif@iso = \a@lam@alif % 102
-\chardef \a@lam@alif@end = '103 % 103
-
-\chardef \a@h@s = \a@hah@spec % 354
-\chardef \a@lam@l = \a@lam@spec@low % 072
-
-%lam_spec_gim 311
-
-%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim
-\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim
-\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim
-\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim
-\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim
-
-%%%%%%%%%%%%%%%%%% others %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@bah@p = '114 % 114-117 bah family with loop
-\chardef \a@rah@p = '126 % 126,127 rah with loop
-\chardef \a@dal@p = '136 % 136,137 dal with loop
-\chardef \a@rah@s = '156 % 156,157 rah with two dots
-%% sin_p 214 214,215 sin with two dots
-\chardef \a@kaf@p@s = '260 % 260-263 kaf family with loop
-\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark
-\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop
-\chardef \a@nun@p = '342 % 342,343 nun with loop
-\chardef \a@yah@h = '373 % 373,374 yah with hook
-\chardef \a@yah@h@spec = '374 % 375 ligature for final yah with hook
-\chardef \a@yah@p = '376 % 376,377 long yah
-
-\chardef \a@gaf@p = \a@kaf@p@s % 260
-
-%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\endinput
+%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%%
+% 20.4.1998 11:30:59
+% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 20.04.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {12.07.1997}
+
+\chardef \a@nashcode = '1 % file has been read
+
+%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
+
+\chardef \a@f@iso = '0 % isolated
+\chardef \a@f@end = '1 % final
+\chardef \a@f@mid = '2 % medial
+\chardef \a@f@beg = '3 % initial
+
+%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
+
+\chardef \a@ttah@dia = '010 % for urdu
+\chardef \a@one@dot@up = '011 %
+\chardef \a@two@dots@down = '012 %
+\chardef \a@fatha = '013 %
+\chardef \a@kasra = '013 %
+\chardef \a@damma = '014 %
+\chardef \a@hamza = '015 %
+\chardef \a@madda = '016 %
+\chardef \a@shadda = '017 %
+\chardef \a@two@dots@up = '020 %
+\chardef \a@three@dots@up = '021 %
+\chardef \a@three@dots@down = '022 %
+\chardef \a@fathatan = '023 %
+\chardef \a@kasratan = '023 %
+\chardef \a@dammatan = '024 %
+\chardef \a@sukun = '025 %
+\chardef \a@wasla = '026 %
+\chardef \a@quran@alif = '027 %
+\chardef \a@bow@dia = '030 % for kurdish
+\chardef \a@e@dia = '040 % for pashto
+\chardef \a@zwarakay = '040 % for pashto
+\chardef \a@one@dot@down = '056 % period
+\chardef \a@h@dia = '146 % for urdu
+\chardef \a@ammad = '146 % for pashto
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@alif = '100 % 100,101
+\chardef \a@bah@s = '110 % 110-113
+%% gim 140 140-143
+\chardef \a@hhah = '150 % 150-153
+\chardef \a@khah = '160 % 160-163
+%% tsah 170 170-173
+\chardef \a@dal = '130 % 130,131
+\chardef \a@rah = '120 % 120,121
+%% zay 122 122,123
+%% zhah 124 124,125
+\chardef \a@sin = '200 % 200-203
+%% shin 210 210-213
+\chardef \a@sad = '220 % 220-223
+%% dad 230 230-233
+\chardef \a@kaf@w = '234 % 234-237 wide kaf
+\chardef \a@ttah = '240 % 240-243
+%% zzah 244 244-247
+\chardef \a@ain = '250 % 250-253
+\chardef \a@fah@s = '254 % 254-257 fah family
+%% fah 362 362,363
+\chardef \a@qaf = '364 % 364,365
+%% vah 366 366,367
+\chardef \a@kaf@s = '270 % 270-273 kaf family
+\chardef \a@kaf = '274 % 274,275
+\chardef \a@gaf@s = '300 % 300-303 gaf family
+\chardef \a@gaf = '304 % 304,305
+\chardef \a@lam = '310 % 310-313
+\chardef \a@mim = '320 % 320-323
+\chardef \a@nun = '340 % 340,341
+\chardef \a@hah = '350 % 350-354
+\chardef \a@waw = '360 % 360,361
+\chardef \a@yah = '370 % 370,371
+
+\chardef \a@hamza@iso = '132 % 132
+
+\chardef \a@alif@iso = \a@alif % 100
+\chardef \a@alif@end = '101 % 101
+\chardef \a@bah = \a@bah@s % 110
+\chardef \a@hamzc = \a@hamza@iso % 132
+
+%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
+
+\chardef \a@block = '000 % 000-003
+\chardef \a@tatwil = '004 % 004-007
+
+\chardef \a@rquotes = '042 % 042
+\chardef \a@period = '056 % 056
+\chardef \a@lquotes = '134 % 134
+
+\chardef \a@space@spec = '044 % 046,047 carrier for dots
+\chardef \a@skip = '045 % 047 small space, initial (!)
+\chardef \a@no@break = '046 % 046 no space, breaks ligatures
+\chardef \a@break = '047 % 047 small space, medial
+
+\chardef \a@smspc = \a@space@spec % 044
+
+%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim
+\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim
+\chardef \a@g@to@mb = '031 % 033 medial bah to gim
+\chardef \a@bah@high = '032 % 034,035 before sin, sad
+\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun
+\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah'
+\chardef \a@alif@spec@mim = '075 % 076 final alif after mim
+\chardef \a@lam@alif = '102 % 102,103
+\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah
+\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie;
+ % also bah before yah
+%% gim_spec 143 144,145 from above
+\chardef \a@gim@close = '144 % 146,147 closed gim
+\chardef \a@hhah@spec = '153 % 154,155 from above
+\chardef \a@khah@spec = '163 % 164,165 from above
+\chardef \a@rah@k = '166 % 166,167 kurdish rah
+%% tsah_spec 173 174,175 from above
+\chardef \a@sin@spec = '202 % 204,205 short form
+%% shin_spec 204 206,207 short form
+\chardef \a@sad@spec = '222 % 224,225 short form
+%% dad_spec 224 226,227 short form
+\chardef \a@kaf@spec = '274 % 276,277 short form
+\chardef \a@gaf@spec = '304 % 306,307 short form
+\chardef \a@lam@gim = '311 % 314 lam on gim
+\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim
+\chardef \a@lam@long = '312 % 315 initial lam before yah
+\chardef \a@lam@spec@yah = '314 % 316 before final yah ?
+\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim
+\chardef \a@mim@spec@high = '322 % 324 from above
+\chardef \a@mim@spec = '324 % 325-327 final; medial after lam;
+ % also before gim
+\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim
+\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim
+\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah
+\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized
+\chardef \a@mm@to@b = '333 % 335 bah to medial mim
+\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim
+\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif
+\chardef \a@er@to@s = '343 % 345 sin to final rah
+\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim
+\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim
+\chardef \a@hah@urd = '353 % 353,354 two-eyed hah,
+ % see hah and hah_spec_lam
+\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam
+\chardef \a@hah@spec = '354 % 355-357 final short hah;
+ % also medial hah after sin
+\chardef \a@yah@spec = '371 % 372 ligature for final yah
+
+\chardef \a@lam@alif@iso = \a@lam@alif % 102
+\chardef \a@lam@alif@end = '103 % 103
+
+\chardef \a@h@s = \a@hah@spec % 354
+\chardef \a@lam@l = \a@lam@spec@low % 072
+
+%lam_spec_gim 311
+
+%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim
+\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim
+\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim
+\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim
+\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim
+
+%%%%%%%%%%%%%%%%%% others %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@bah@p = '114 % 114-117 bah family with loop
+\chardef \a@rah@p = '126 % 126,127 rah with loop
+\chardef \a@dal@p = '136 % 136,137 dal with loop
+\chardef \a@rah@s = '156 % 156,157 rah with two dots
+%% sin_p 214 214,215 sin with two dots
+\chardef \a@kaf@p@s = '260 % 260-263 kaf family with loop
+\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark
+\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop
+\chardef \a@nun@p = '342 % 342,343 nun with loop
+\chardef \a@yah@h = '373 % 373,374 yah with hook
+\chardef \a@yah@h@spec = '374 % 375 ligature for final yah with hook
+\chardef \a@yah@p = '376 % 376,377 long yah
+
+\chardef \a@gaf@p = \a@kaf@p@s % 260
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
diff --git a/language/arabic/arabtex/texinput/arabtex.sty b/language/arabic/arabtex/texinput/arabtex.sty
index 03d8bece91..b1d788c6b8 100644
--- a/language/arabic/arabtex/texinput/arabtex.sty
+++ b/language/arabic/arabtex/texinput/arabtex.sty
@@ -1,634 +1,634 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.sty
-% this is the driver module for the ArabTeX macro package
-\def \theversion {3.11}
-\def \thedatum {22.08.2003}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally EMail: lagallyk@acm.org
-% Institut fuer Formale
-% Methoden der Informatik TEL: +49-711-7816-392
-% Universitaet Stuttgart FAX: +49-711-7816-370
-% Universitaetsstrasse 38
-% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% 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 (at your option) any later version.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \undefined \Lagally \else
-\errhelp {ArabTex should be loaded *after* EDMAC (if applicable),^^J
-but *before* any non-standard LaTeX packages or options.^^J
-Correct your configuration and try again.}
-\errmessage {Inconsistent configuration.^^J
-The command `\string \undefined' has been redefined by some package.^^J
-`\string \undefined' is defined as `\meaning \undefined'.^^J
-This might utterly confuse ArabTeX which is therefore not loaded.^^J
-}\fi
-
-\ifx \ar@batcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \ar@batcode = \catcode`\@ \catcode`\@ = 11 \chardef \@other = 12
-\chardef \ar@bdqcode = \catcode`\" \catcode`\" = 12 % for german.sty
-
-%%%%%%%%%%%%%%%%%%%%%%%% auxiliary macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ArabTeX {Arab\TeX }
-
-\let \xpa \expandafter \def \xxpa {\xpa \xpa \xpa }
-\def \xxxpa {\xpa \xxpa \xpa }
-
-\let \nxp \noexpand \def \nxxp {\nxp \nxp \nxp }
-\def \n@xp {\nxp \nxp \nxp }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%% identify yourself %%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\input aconfig.sty % check environment
-
-\let \a@wlog \wlog \def \wlog #1{\relax }
-
-\a@ident {arabtex.sty} {\theversion \space ArabTeX main module} {\thedatum }
-
-\UsePackage {arabaux} % load auxiliary macros
-
-%%%%%%%%%%%%%%%%%%% various declarations %%%%%%%%%%%%%%%%%%%%%
-
-\newbox \wordb@x \newbox \lineb@x \newbox \tempb@x
-\newtoks \a@tokens \newtoks \sc@next \newtoks \sc@rest
-\newtoks \a@@cmd \newtoks \a@@name \newtoks \a@@tail
-\newtoks \a@digits \newtoks \a@first \newtoks \a@paren
-\newtoks \a@@everypar \newtoks \a@accent
-\newskip \a@parindent \newskip \a@parskip
-\newwrite \a@@err \newwrite \a@@out
-\newcount \tracingarab \def \quiet {\tracingarab = 0 }
-
-\newif \if@vocals \newif \ifv@c \newif \if@sukun
-\newif \if@suk \newif \if@wasla \newif \if@was
-\newif \if@high \newif \ifacc@hi \newif \ifa@vmode
-\newif \ifa@space \newif \iftr@ns \newif \ifa@oldhmode
-
-\newif \iftest % \testtrue % for internal use only
-\newif \iftest@scan \newif \iftest@trans
-\newif \iftest@parse \newif \iftest@write
-\newif \iftest@command \newif \iftest@font
-
-\newif \ifnewfont \newif \ifaRL
-
-%%%%%%%%%%%%%%%%%%% language specific switches %%%%%%%%%%%%%%%%%%%%%
-
-%% beware of moving arguments!
-
-\newif \ifarab % generate the arabic script
-\newif \ifshow % display the input text verbatim
-\newif \ifligs % set all ligatures active
-\newif \ifspread % spread characters by keshide
-\newif \iftrans % generate the transliteration
-
-%newif \ifRL % alias for \ifarab
-\let \RLtrue \arabtrue \let \RLfalse \arabfalse
-
-% internal switches
-
-\newif \ifaN@alif % tanwin on alif
-\newif \ifqur@n % old hamza rules
-\newif \ifh@mza % hamza rules, assimilation
-\newif \if@ssim % assimilation
-\newif \ifiz@fet % izafet rules
-\newif \ifyahd@ts % yah with dots
-\newif \ifk@fs % final kaf without mark
-\newif \iff@rsn % Farsi numerals
-\newif \ifk@sra % Kasra always below char
-
-\newif \ifp@sht % loop chars, e as two dots, diphtongs
-\newif \ifurd@ % e as long yah, urdu accent, two hah chars
-\newif \ifm@gh % variants of fah, vah and qaf
-\newif \ift@rk % special transliteration and coding
-\newif \ifk@rd % special transliteration and coding
-\newif \ifs@nd % special transliteration and coding
-\newif \ifu@gh % special transliteration and coding
-\newif \ifm@lay % special transliteration and coding
-\newif \ifk@sh % special transliteration and coding
-
-\newif \ifn@arab % load Arabic default
-
-%%%%%%%%%%%%%%%%%%% various robust options %%%%%%%%%%%%%%%%%%%%%
-
-\pdef \yahdots {\yahd@tstrue } \pdef \yahnodots {\yahd@tsfalse }
-\pdef \accentshigh {\acc@hitrue } \pdef \accentslow {\acc@hifalse }
-\pdef \oldtanwin {\aN@aliffalse } \pdef \newtanwin {\aN@aliftrue }
-\pdef \oldhamza {\qur@ntrue } \pdef \newhamza {\qur@nfalse }
-
-%%%%%%%%%%%%%%%%%%% various defaults %%%%%%%%%%%%%%%%%%%%%
-
-\def \transtrue {% activate the transliteration
-\iftr@ns \else \tr@zdmg \fi \let \iftrans \iftrue }
-
-\let \tr@zdmg \relax \n@arabtrue
-
-\def \arab@output {\ifx \a@lang \a@arab \else
-\tr@ceoff % switch to Arabic output conventions
-\def@arabchars % define character macros for Arabic
-\def@arabaccent % define accent macros for Arabic
-\def@arabvoc % define vowel parsing routines for Arabic
-\def@arabstrut % define strut for Arabic
-\tr@zdmg % define standard transliteration
-\let \a@write \a@@write \let \a@write@hook \relax
-\tr@ceon \let \a@lang \a@arab \fi }
-
-\def \a@arab {ARABIC} \def \a@lang {NONE}
-
-%%%%%%%%%%%%%%%%%%% ML-TeX compatibility (br) %%%%%%%%%%%%%%%%%%%%%
-
-\newcount \arab@charsubdefmax \arab@charsubdefmax \m@ne
-
-\ifx \charsubdefmax \undefined
- \csname newcount\endcsname \charsubdefmax
-\else % save actual \charsubdefmax value
- \arab@charsubdefmax=\charsubdefmax
- % restore it, when outputting a new box in \output routine
- \csname newtoks\endcsname \a@@output \a@@output=\output
- \output={\charsubdefmax \arab@charsubdefmax \the\a@@output }
-\fi
-
-%%%%%%%%%%%%%%%%%%% language selection %%%%%%%%%%%%%%%%%%%%%
-
-\def \all@false {% reset language code to default
-\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse
-\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse
-\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse
-\let \vocalize \v@calize \let \fullvocalize \fullv@calize
-\arab@output \catcode`\<=\active }
-
-% all language selection commands are robust!
-
-\pdef \setarab {% kaf with mark, hamza rules, yah with dots
-\all@false \h@mzatrue \@ssimtrue \yahd@tstrue \oldtanwin
-\def \a@defaultfont {\setnash }}
-
-\pdef \setmaghribi {% variants of fah and qaf
-\setarab \m@ghtrue }
-
-\pdef \setfarsi {% no kaf mark, yah without dots, izafet
-\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue
-\newtanwin \def \a@defaultfont {\setnast }}
-
-\pdef \setkurdish {% no kaf mark, yah without dots, izafet
-\setfarsi \k@rdtrue }
-
-\pdef \setturk {% kaf with mark, yah without dots, izafet, hamza
-\all@false \iz@fettrue \h@mzatrue \@ssimtrue \newtanwin \t@rktrue
-\def \a@defaultfont {\setnash }}
-
-\pdef \seturdu {% two hah, long yah, urdu accent, long e, izafet
-\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue
-\newtanwin \urd@true \def \a@defaultfont {\setnast }}
-
-\pdef \setpashto {% pashto loop, e: two dots, izafet, hamza
-\all@false \iz@fettrue \h@mzatrue \@ssimtrue \yahd@tstrue \k@fstrue
-\newtanwin \p@shttrue \def \a@defaultfont {\setnast }}
-
-\pdef \setbalut {% temporary
-\setpashto}
-
-\pdef \setsindhi {% switch language specific processing
-\seturdu \h@mzafalse \ligsfalse \yahd@tstrue \s@ndtrue }% ALA-LC has dots!
-
-%\seturdu \h@mzafalse \ligsfalse \yahd@tsfalse \s@ndtrue }% A.Pandey not
-
-\pdef \setmalay {% p, ng, ny
-\seturdu \yahd@tstrue \m@laytrue \def \a@defaultfont {\setnash }}
-
-\pdef \setuighur {% switch language specific processing
-\let \vocalize \novocalize \let \fullvocalize \novocalize
-\novocalize \@ssimfalse \h@mzafalse
-\u@ghtrue \def \a@defaultfont {\setnash }}
-
-\pdef \setkashmiri {% Kashmiri language mode
-\seturdu \k@shtrue \newarabfont \settrans{kashmiri}}
-
-\pdef \setverb {% no special processing
-\all@false \yahd@tstrue \oldtanwin \def \a@defaultfont {\setnash }}
-
-\pdef \setnone {\catcode`\<=\@other }% deselect arabic quotations
-
-\pdef \setquot {\catcode`\<=\active }% select arabic quotations
-
-\pdef \setnoquot {\catcode`\<=\@other }% deselect arabic quotations
-
-%%%%%%%%%%%%%%%%%%%%%%% vowelization options %%%%%%%%%%%%%%%%%%%%%%%%
-
-% must be robust!
-
-\pdef \novocalize {% no diacritics except explicitly indicated
-\@vocalsfalse \v@cfalse \@sukunfalse \@sukfalse }
-
-\pdef \v@calize {% diacritics for short vowels only
-\@vocalstrue \v@ctrue \@sukunfalse \@sukfalse }
-
-\pdef \fullv@calize {% all diacritics
-\@vocalstrue \v@ctrue \@sukuntrue \@suktrue }
-
-\let \vocalize \v@calize \let \fullvocalize \fullv@calize
-
-%%%%%%%%%%%%%%%%%%%%%%%% robust font selection %%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \setarabfont #1{% define font switching
- \def \set@arabfont {\tr@ceoff #1\tr@ceon }}
-
-\pdef \set@nash {\setarabfont \nash }
-\pdef \set@nashbf {\setarabfont \nashbf }
-\pdef \set@nast {\setarabfont \nastaliq }
-\pdef \set@xnash {\setarabfont \xnash }
-\pdef \set@xnashbf {\setarabfont \xnashbf }
-
-% presently no nastaliq font
-\def \nastaliq {\nash }
-
-\def \newarabfont {% switch to new ArabTeX fonts version
-\setx@skels % activate new skeletons
-\let \setnash \set@xnash
-\let \setnashbf \set@xnashbf
-\let \setnastaliq \set@xnash
-\let \setnast \set@xnash
-\newfonttrue \setnash }
-
-\def \oldarabfont {% switch to old ArabTeX fonts version
-\seta@skels % activate old skeletons
-\let \setnash \set@nash
-\let \setnashbf \set@nashbf
-\let \setnastaliq \set@nash
-\let \setnast \set@nash
-\newfontfalse \setnash }
-
-\def \a@defaultfont {\setnash }
-\def \a@default {\a@defaultfont }
-\def \a@normalfont {\a@defaultfont }
-
-%%%%%%%%%%%%%%%%%%%%%%%% handling of special characters %%%%%%%%%%%%%%%
-
-\def \a@arab@codes {% save and set special characters
-\chardef \spc@de = \catcode`\ \catcode`\ = 10
-\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
-\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
-\csname originalTeX\endcsname % reset codes if BABEL is present
-\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
-
-\def \a@unarab@codes {% reset catcodes
-\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
-\charsubdefmax \arab@charsubdefmax
-\csname germanTeX\endcsname }% reset codes if german.sty is present
-
-\let \arab@codes \a@arab@codes \let \unarab@codes \a@unarab@codes
-
-%%%%%%%%%%%%%%%%%%%%%%% Arabic environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifin@arab % inside Arabic environment?
-
-\def \arabtext {% environment for RTL formatting
-\a@parparams % aoutput::a@parparams
-\the\arabtext@hook \test@token }
-
-\newtoks \arabtext@hook
-
-\arabtext@hook = {% initialize RTL environment
-\in@arabtrue \a@parindent \parindent \a@parskip \parskip
-\edef \a@@font {\the\font }%
-\ifhmode \a@oldhmodetrue \else \a@oldhmodefalse \fi
-\a@vmodetrue \a@@everypar {}%
-\let \| \break \def \\{\hfil \break }%
-\let \emphasize \underbar % define internal commands
-\let \a@last@line \short@line \let \a@put@line \put@line
-\arab@codes \set@arabfont \@waslafalse \@wasfalse
-\def \next@command {\test@special}}
-
-\def \at@arabtext #1{% extend the initialization
-\arabtext@hook \xpa{\the\arabtext@hook #1}}
-
-\let \at@arabtex \at@arabtext % catch typo
-
-\def \a@par {% close a RTL paragraph
-\ifa@vmode \else % terminate last RTL line
-\a@last@line \spreadfalse \a@vmodetrue
-\parindent \a@parindent \parskip \a@parskip
-\a@resetpar \a@par@hook % aoutput::
-\ifnum \tracingarab > 0 \message {##}\fi
-\fi }
-
-\let \a@@par \a@par % save for \a@@everypar in \a@c@autopar
-
-\def \endarabtext {% close RTL environment
-\a@last@line
-\ifa@oldhmode \noindent \fi
-\ifnum \tracingarab > 0 \message {||}\fi
-\global \@ignoretrue }
-
-\let \RLtext \arabtext \let \arabtex \arabtext % catch typo
-\let \endRLtext \endarabtext \let \endarabtex \endarabtext % catch typo
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% next token %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@accent = {\lq \rq \cap \MIN \IN \a@tok \shadda \madda \sukun
- \raphe \dagesh \mappiq \ldot \rdot \cdot \maqqef \abbr \,}
-
-{\catcode `\^^a0 12 \gdef \sp@ce {^^a0}
-}% catcode ^^a0
-
-\a@digits = {0123456789} \a@paren = {()[]}
-\a@first = {.^_-'`~,|"=:} % default, scanner dependent
-
-\def \test@@token {\iftest@command \tracingmacros 0 \fi
-\let \a@@word \empty \get@token }
-
-\def \get@token {\futurelet \next@token \test@space }
-
-\let \test@token \test@@token % get next token
-
-\def \test@space {% check for LTR space
-\if \space \nxp\next@token \a@@putword \xpa\kill@space
-\else \xpa\next@command \fi }% hook for acmd, aedpatch, arabext
-
-\xpa\def \xpa\kill@space \space {% gobble LTR space
-\futurelet \next@token \test@special }
-
-\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space
-\futurelet \next@token \test@space }
-
-\def \obey@space {% after control characters
-\a@spacefalse \futurelet \next@token \obey@@space }
-
-\def \obey@@space {% check for space after control character
-\if \space \nxp\next@token \a@spacetrue \fi \test@space }
-
-\def \test@rest {% continue after \control sequence in text
-\global\let \test@token \test@@token % global!
-\xpa \xpa \xpa \test@token \xpa \a@rest \space }
-
-%%%%%%%%%%%%%%%%%%%%%% special cases %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\long\def \test@special #1{% check for special cases
-\if \bgroup \nxp \next@token % arabic group
- \a@@putword \def \next {\arab@group {#1}}\else
-\if \relax \nxp #1% % command
- \if\is@in@set #1\a@accent % known to scanner
- \a@@append {#1}\def \next {\get@token }%
- \else % general command
- \a@@putword \def \next {\test@command #1}%
- \fi \else
-\if \sp@ce \nxp \next@token % RTL space
- \a@@putword \def \next {\get@token }\else
-\ifcat \nxp ~\nxp #1% % active character
- \a@@putword \def \next {\test@command #1}\else
-\if \nxp <\nxp #1\unarab@codes % Roman insert
- \a@@putword \let \next \test@insert \else
-\ifx $#1\unarab@codes % Math insert
- \a@@putword \let \next \test@math
-\else \a@@append {#1}\def \next {\get@token}% % normal case
-\fi\fi\fi\fi\fi\fi \next }
-
-\def \a@@putword {% process characters
-\ifx \a@@word \empty \else
- \ifarab \putwordb@x {\xpa\arab@item \a@@word \@@ }\fi
- \a@spacetrue \xpa\a@showinput \xpa{\a@@word }%
- \let \a@@word \empty
-\fi }
-
-\def \a@@append #1{% add character
-\a@extend \a@@word {#1}}
-
-%%%%%%%%%%%%%%%%%%%%%% Arabic word %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \arab@item #1#2\@@ {% split the word if necessary
-\ifx \relax #1\relax \else % empty word
-\ifx \relax #2\relax \a@rabwrite {#1}\else % single character
-\if\is@in@set #1\a@first
- \a@rabwrite {#1#2}\else % start symbol: word
-\if\is@in@set #1\a@digits
- \a@split #1#2\@@ \else % digit: number
-\if\is@in@set #1\a@paren
- \arab@item #2\@@ \a@rabwrite {#1}\else % parenthesis: test content
- \a@rabwrite {#1#2}% % normal case
-\fi\fi\fi\fi\fi }
-
-\def \a@rabwrite #1{% process an Arabic word (called within a group)
-\tracingmacros 0 % use \test@XXXtrue for testing !
- \a@scan #1>% % generate the token sequence
- \xpa \a@parse \the\a@tokens >% split it into syllables and reverse
- \xpa \a@write \the\a@revwd >% output the word
-\ifnum \tracingarab > 2 \message {.}\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \a@c@last@ {\\} \gdef \a@c@put@ {\|} \gdef \a@c@par@ {\par }
-
-{\catcode `\^ 7 \catcode `\^^M=\active \gdef \a@c@M {^^M}}
-
-{\catcode `\ =\active\gdef\a@c@SP{ }}
-
-\long \def \test@command #1{% check for special commands
-\gdef \a@arg {#1}\let \next \test@token
-\ifx \a@arg \a@c@par@ \a@@par \else % \par
-\ifx \a@arg \a@c@M \a@@par \else % \obeylines
-\ifx \a@arg \a@c@SP \else % \obeyspaces
-\ifx \a@arg \a@c@last@ \a@last@line \else % \\
-\ifx \a@arg \a@c@put@ \a@put@line \else % \|
- \def \next {\a@command #1}% process the command inside "acmd.sty"
-\fi\fi\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic groups %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \arab@group #1{% process the next group
-\bgroup \initlineb@x
-\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}%
-\egroup \putwordb@x {\unhbox1 }\a@spacetrue \test@token }% last line
-\test@token #1 \end }
-
-\def \a@sequence #1{% put a sequence of words into a \hbox
-\bgroup \transfalse \showfalse \let \end \relax
-\let \a@last@line \finish@line \let \a@put@line \break@line
-\def \next@command {\test@special}\let \put@word \addt@line
-\initlineb@x \test@token #1 \end \box\lineb@x \egroup }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% arabic number %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@split #1#2\@@ {% next word starts with digit
-\ifx \relax #2\relax \a@rabwrite {#1}\else
- \def \a@body {}\def \a@number {#1}\a@splitnumber #2\@@
- \xpa \a@rabwrite \xpa {\a@body }%
-\fi }
-
-%{\catcode `\B =12 \gdef \f@sila {B}} % cf. awrite::ac@other
-%{\catcode `\C =12 \gdef \h@phen {C}}
-
-\def \a@splitnumber #1#2\@@ {% process word starting with digit
-\if\is@in@set #1\a@digits \edef \a@number {#1\a@number }\else
-\ifx -#1\edef \a@number {\h@phen \a@number }\else
-\ifx /#1\edef \a@number {/\a@number }\else
-\ifx ,#1\ifx \relax #2\relax
- \edef \a@body {\a@body \a@number #1}\def \a@number {}%
- \else \edef \a@number {\f@sila \a@number }\fi
-\else \edef \a@body {\a@body \a@number #1}\def \a@number {}%
-\fi\fi\fi\fi
-\ifx \relax #2\relax \edef \a@body {\a@body \a@number}\let \next \relax
-\else \def \next {\a@splitnumber #2\@@ }%
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% insertions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \test@math #1${% Math insertion in Arabic text
-\def \next {#1}% test for display math
-\ifx \next \empty \def \next
- {\begingroup \endarabtext $$\aftergroup \endgroup
- \aftergroup \a@spacefalse \aftergroup \test@token }%
-\else \def \next
- {\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token }%
-\fi \next }
-
-\def \test@insert #1>{% Roman insertion in Arabic text
-\putwordb@x {\rm #1}\a@spacetrue \arab@codes \test@token }
-%\putwordb@x {\a@@font #1}\a@spacetrue \arab@codes \test@token }
-
-% cf. abidir::\LR
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% verbatim mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@showinput #1{% show verbatim text and transliteration
-\ifshow \a@@verb {#1}\fi
-\iftrans {\tracingmacros 0 \set@transfont \trans@text #1 \end }\fi }
-
-\def \a@@verb #1{\def \verb@text {#1}% list input words verbatim
- {\tracingmacros 0 \penalty \z@ \tt
- \xpa \get@meaning \meaning \verb@text }\ }
-
-\def \get@meaning #1>{} % strip off macro header
-
-\def \a@verb #1>{\a@@verb {#1}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabic insertion %%%%%%%%%%%%%%%%%%%%%%%%
-
-{\catcode `\< = \@other % better make sure
-
-\gdef \a@ins {% arabic insertion or 'less'
-\ifmmode \global\let \a@less <
-\else \global\let \a@less \arab@insert \leavevmode
- \bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse
-\fi \a@less }
-
-\gdef \<{\protect \a@ins } % explicit command \<
-
-\catcode`\< = \active % prepare active <
-\gdef <{\protect \a@ins }
-} % catcode <
-
-\def \break@line {% \| inside insertion
-\box\lineb@x \break \initlineb@x }
-
-\def \finish@line {% \\ inside insertion
-\box\lineb@x \hfil \break \initlineb@x }
-
-\def \arab@insert #1>{% Arabic insertion in Roman text
-\ifshow \a@@verb {#1}\fi % verbating listing
-\ifarab \a@sequence {#1} \fi % arabic writing
-\iftrans \set@transfont \trans@text #1 \end \/\fi
-\ifnum \tracingarab > \@ne \message {>}\fi
-\unskip \egroup }
-
-% cf. abidir::\LR
-
-%%%%%%%%%%%%%%%%%%%%%%%%% transliteration %%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \settransfont #1{% set transliteration style or \style
-\if \relax \nxp#1\relax \def \set@transfont
- {\tr@ceoff #1\csname selectfont\endcsname \tr@ceon }%
-\else \def \set@transfont
- {\tr@ceoff \csname #1\endcsname
- \csname selectfont\endcsname \tr@ceon }%
-\fi}
-
-\settransfont {\rm \it }% standard font for transliteration
-
-\long \def \trans@text #1{% check for special cases
-\leavevmode \def \next {\trans@text }%
-\if\is@in@set {#1}\a@first \def \next {\trans@elem #1}\else % normal case
-\ifx \end #1\let \next \relax \else
-\ifx \par #1\endgraf \else
-\ifx \\#1\hfil \break \else
-\ifx \|#1\hfil \break \else
-\ifx \emphasize #1\def \next {\a@emp }\else
-\if \relax \nxp #1\relax % ignore control sequences
-\else \def \next {\trans@elem #1}% normal case
-\fi\fi\fi\fi\fi\fi\fi \next }
-
-\def \a@emp #1{\trans@text #1 }
-
-\def \trans@elem #1 {% transliterate next word of text
-\a@transword {#1}\trans@text }
-
-\def \a@transword #1{% transliterate a word
-{\tracingmacros 0 \a@scan #1>\xpa \a@trans \the\a@tokens >\ }}
-
-\ifx \a@trans \undefined % atrans.sty not yet loaded
-\def \a@trans #1>{\gdef \a@trans ##1>{\relax }% default
-\message {`atrans.sty' not loaded; transliteration ignored.}}
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%% initialization %%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \startarab {% set default initializations
-\newarabfont
-\a@normalfont % default font
-\transfalse \arabtrue \vocalize \ligsfalse
-\tracingarab = 0 \setnone } % \catcode < := 12 for user macros
-
-%%%%%%%%%%%%%%%%%%%%%%% load the later passes %%%%%%%%%%%%%%%%%%%%%%
-
-\UsePackage {acmd} % load the command processor module
-\UsePackage {afonts} % load the default fonts
-\UsePackage {ascan} % generate a token sequence
-\UsePackage {aparse} % parse it into syllables and reverse them
-\UsePackage {awrite} % generate the basic writing
-\UsePackage {aligs} % modify for any ligatures
-\UsePackage {aoutput} % generate output lines
-\UsePackage {abidir} % bidirectional linebreaking
-\UsePackage {atrans} % generate the transliteration
-\UsePackage {alatex} % extensions for LaTeX
-\UsePackage {abjad} % abjad numerals
-\ifx \edmacloaded \relax
- \UsePackage {aedpatch} \fi % patches for EDMAC ?
-\ifx \undefined \peek@token \else
-\ifx \undefined \bbl@test@token
- \UsePackage {arababel} \fi\fi % patches for old BABEL ?
-\ifx \CJK \undefined \else
- \UsePackage {acjk} \fi % patches for CJK ?
-\UsePackage {apatch} % any last minute corrections
-
-%%%%%%%%%%%%%%%%%%%%%%% statistics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \arab@stat {{\newlinechar `$
-\wlog {$Parameterless commands valid in Arabic mode:}
-\wlog {\space (\the\a@@listzero )}
-\wlog {$Commands with 1 parameter valid in Arabic mode:}
-\wlog {\space (\the\a@@listone )}
-\wlog {$Commands with 2 parameters valid in Arabic mode:}
-\wlog {\space (\the\a@@listtwo )}
-\wlog {$User defined commands valid in Arabic mode:}
-\wlog {\space (\the\a@@listreg )}}}
-
-\let \arabstat \arab@stat
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%% here we go %%%%%%%%%%%%%%%%%%%%%%%
-
-\let \wlog \a@wlog
-
-\startarab \a@report
-
-\a@message {... now be patient ... }
-
-\catcode`\" = \ar@bdqcode \catcode`\@ = \ar@batcode
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.sty
+% this is the driver module for the ArabTeX macro package
+\def \theversion {3.11}
+\def \thedatum {22.08.2003}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally EMail: lagallyk@acm.org
+% Institut fuer Formale
+% Methoden der Informatik TEL: +49-711-7816-392
+% Universitaet Stuttgart FAX: +49-711-7816-370
+% Universitaetsstrasse 38
+% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 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 (at your option) any later version.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \undefined \Lagally \else
+\errhelp {ArabTex should be loaded *after* EDMAC (if applicable),^^J
+but *before* any non-standard LaTeX packages or options.^^J
+Correct your configuration and try again.}
+\errmessage {Inconsistent configuration.^^J
+The command `\string \undefined' has been redefined by some package.^^J
+`\string \undefined' is defined as `\meaning \undefined'.^^J
+This might utterly confuse ArabTeX which is therefore not loaded.^^J
+}\fi
+
+\ifx \ar@batcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \ar@batcode = \catcode`\@ \catcode`\@ = 11 \chardef \@other = 12
+\chardef \ar@bdqcode = \catcode`\" \catcode`\" = 12 % for german.sty
+
+%%%%%%%%%%%%%%%%%%%%%%%% auxiliary macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ArabTeX {Arab\TeX }
+
+\let \xpa \expandafter \def \xxpa {\xpa \xpa \xpa }
+\def \xxxpa {\xpa \xxpa \xpa }
+
+\let \nxp \noexpand \def \nxxp {\nxp \nxp \nxp }
+\def \n@xp {\nxp \nxp \nxp }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%% identify yourself %%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input aconfig.sty % check environment
+
+\let \a@wlog \wlog \def \wlog #1{\relax }
+
+\a@ident {arabtex.sty} {\theversion \space ArabTeX main module} {\thedatum }
+
+\UsePackage {arabaux} % load auxiliary macros
+
+%%%%%%%%%%%%%%%%%%% various declarations %%%%%%%%%%%%%%%%%%%%%
+
+\newbox \wordb@x \newbox \lineb@x \newbox \tempb@x
+\newtoks \a@tokens \newtoks \sc@next \newtoks \sc@rest
+\newtoks \a@@cmd \newtoks \a@@name \newtoks \a@@tail
+\newtoks \a@digits \newtoks \a@first \newtoks \a@paren
+\newtoks \a@@everypar \newtoks \a@accent
+\newskip \a@parindent \newskip \a@parskip
+\newwrite \a@@err \newwrite \a@@out
+\newcount \tracingarab \def \quiet {\tracingarab = 0 }
+
+\newif \if@vocals \newif \ifv@c \newif \if@sukun
+\newif \if@suk \newif \if@wasla \newif \if@was
+\newif \if@high \newif \ifacc@hi \newif \ifa@vmode
+\newif \ifa@space \newif \iftr@ns \newif \ifa@oldhmode
+
+\newif \iftest % \testtrue % for internal use only
+\newif \iftest@scan \newif \iftest@trans
+\newif \iftest@parse \newif \iftest@write
+\newif \iftest@command \newif \iftest@font
+
+\newif \ifnewfont \newif \ifaRL
+
+%%%%%%%%%%%%%%%%%%% language specific switches %%%%%%%%%%%%%%%%%%%%%
+
+%% beware of moving arguments!
+
+\newif \ifarab % generate the arabic script
+\newif \ifshow % display the input text verbatim
+\newif \ifligs % set all ligatures active
+\newif \ifspread % spread characters by keshide
+\newif \iftrans % generate the transliteration
+
+%newif \ifRL % alias for \ifarab
+\let \RLtrue \arabtrue \let \RLfalse \arabfalse
+
+% internal switches
+
+\newif \ifaN@alif % tanwin on alif
+\newif \ifqur@n % old hamza rules
+\newif \ifh@mza % hamza rules, assimilation
+\newif \if@ssim % assimilation
+\newif \ifiz@fet % izafet rules
+\newif \ifyahd@ts % yah with dots
+\newif \ifk@fs % final kaf without mark
+\newif \iff@rsn % Farsi numerals
+\newif \ifk@sra % Kasra always below char
+
+\newif \ifp@sht % loop chars, e as two dots, diphtongs
+\newif \ifurd@ % e as long yah, urdu accent, two hah chars
+\newif \ifm@gh % variants of fah, vah and qaf
+\newif \ift@rk % special transliteration and coding
+\newif \ifk@rd % special transliteration and coding
+\newif \ifs@nd % special transliteration and coding
+\newif \ifu@gh % special transliteration and coding
+\newif \ifm@lay % special transliteration and coding
+\newif \ifk@sh % special transliteration and coding
+
+\newif \ifn@arab % load Arabic default
+
+%%%%%%%%%%%%%%%%%%% various robust options %%%%%%%%%%%%%%%%%%%%%
+
+\pdef \yahdots {\yahd@tstrue } \pdef \yahnodots {\yahd@tsfalse }
+\pdef \accentshigh {\acc@hitrue } \pdef \accentslow {\acc@hifalse }
+\pdef \oldtanwin {\aN@aliffalse } \pdef \newtanwin {\aN@aliftrue }
+\pdef \oldhamza {\qur@ntrue } \pdef \newhamza {\qur@nfalse }
+
+%%%%%%%%%%%%%%%%%%% various defaults %%%%%%%%%%%%%%%%%%%%%
+
+\def \transtrue {% activate the transliteration
+\iftr@ns \else \tr@zdmg \fi \let \iftrans \iftrue }
+
+\let \tr@zdmg \relax \n@arabtrue
+
+\def \arab@output {\ifx \a@lang \a@arab \else
+\tr@ceoff % switch to Arabic output conventions
+\def@arabchars % define character macros for Arabic
+\def@arabaccent % define accent macros for Arabic
+\def@arabvoc % define vowel parsing routines for Arabic
+\def@arabstrut % define strut for Arabic
+\tr@zdmg % define standard transliteration
+\let \a@write \a@@write \let \a@write@hook \relax
+\tr@ceon \let \a@lang \a@arab \fi }
+
+\def \a@arab {ARABIC} \def \a@lang {NONE}
+
+%%%%%%%%%%%%%%%%%%% ML-TeX compatibility (br) %%%%%%%%%%%%%%%%%%%%%
+
+\newcount \arab@charsubdefmax \arab@charsubdefmax \m@ne
+
+\ifx \charsubdefmax \undefined
+ \csname newcount\endcsname \charsubdefmax
+\else % save actual \charsubdefmax value
+ \arab@charsubdefmax=\charsubdefmax
+ % restore it, when outputting a new box in \output routine
+ \csname newtoks\endcsname \a@@output \a@@output=\output
+ \output={\charsubdefmax \arab@charsubdefmax \the\a@@output }
+\fi
+
+%%%%%%%%%%%%%%%%%%% language selection %%%%%%%%%%%%%%%%%%%%%
+
+\def \all@false {% reset language code to default
+\k@rdfalse \t@rkfalse \m@ghfalse \urd@false \p@shtfalse
+\s@ndfalse \m@layfalse \u@ghfalse \k@srafalse
+\h@mzafalse \@ssimfalse \iz@fetfalse \yahd@tsfalse \k@fsfalse \f@rsnfalse
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\arab@output \catcode`\<=\active }
+
+% all language selection commands are robust!
+
+\pdef \setarab {% kaf with mark, hamza rules, yah with dots
+\all@false \h@mzatrue \@ssimtrue \yahd@tstrue \oldtanwin
+\def \a@defaultfont {\setnash }}
+
+\pdef \setmaghribi {% variants of fah and qaf
+\setarab \m@ghtrue }
+
+\pdef \setfarsi {% no kaf mark, yah without dots, izafet
+\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue
+\newtanwin \def \a@defaultfont {\setnast }}
+
+\pdef \setkurdish {% no kaf mark, yah without dots, izafet
+\setfarsi \k@rdtrue }
+
+\pdef \setturk {% kaf with mark, yah without dots, izafet, hamza
+\all@false \iz@fettrue \h@mzatrue \@ssimtrue \newtanwin \t@rktrue
+\def \a@defaultfont {\setnash }}
+
+\pdef \seturdu {% two hah, long yah, urdu accent, long e, izafet
+\all@false \iz@fettrue \h@mzatrue \@ssimtrue \k@fstrue \f@rsntrue
+\newtanwin \urd@true \def \a@defaultfont {\setnast }}
+
+\pdef \setpashto {% pashto loop, e: two dots, izafet, hamza
+\all@false \iz@fettrue \h@mzatrue \@ssimtrue \yahd@tstrue \k@fstrue
+\newtanwin \p@shttrue \def \a@defaultfont {\setnast }}
+
+\pdef \setbalut {% temporary
+\setpashto}
+
+\pdef \setsindhi {% switch language specific processing
+\seturdu \h@mzafalse \ligsfalse \yahd@tstrue \s@ndtrue }% ALA-LC has dots!
+
+%\seturdu \h@mzafalse \ligsfalse \yahd@tsfalse \s@ndtrue }% A.Pandey not
+
+\pdef \setmalay {% p, ng, ny
+\seturdu \yahd@tstrue \m@laytrue \def \a@defaultfont {\setnash }}
+
+\pdef \setuighur {% switch language specific processing
+\let \vocalize \novocalize \let \fullvocalize \novocalize
+\novocalize \@ssimfalse \h@mzafalse
+\u@ghtrue \def \a@defaultfont {\setnash }}
+
+\pdef \setkashmiri {% Kashmiri language mode
+\seturdu \k@shtrue \newarabfont \settrans{kashmiri}}
+
+\pdef \setverb {% no special processing
+\all@false \yahd@tstrue \oldtanwin \def \a@defaultfont {\setnash }}
+
+\pdef \setnone {\catcode`\<=\@other }% deselect arabic quotations
+
+\pdef \setquot {\catcode`\<=\active }% select arabic quotations
+
+\pdef \setnoquot {\catcode`\<=\@other }% deselect arabic quotations
+
+%%%%%%%%%%%%%%%%%%%%%%% vowelization options %%%%%%%%%%%%%%%%%%%%%%%%
+
+% must be robust!
+
+\pdef \novocalize {% no diacritics except explicitly indicated
+\@vocalsfalse \v@cfalse \@sukunfalse \@sukfalse }
+
+\pdef \v@calize {% diacritics for short vowels only
+\@vocalstrue \v@ctrue \@sukunfalse \@sukfalse }
+
+\pdef \fullv@calize {% all diacritics
+\@vocalstrue \v@ctrue \@sukuntrue \@suktrue }
+
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+
+%%%%%%%%%%%%%%%%%%%%%%%% robust font selection %%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \setarabfont #1{% define font switching
+ \def \set@arabfont {\tr@ceoff #1\tr@ceon }}
+
+\pdef \set@nash {\setarabfont \nash }
+\pdef \set@nashbf {\setarabfont \nashbf }
+\pdef \set@nast {\setarabfont \nastaliq }
+\pdef \set@xnash {\setarabfont \xnash }
+\pdef \set@xnashbf {\setarabfont \xnashbf }
+
+% presently no nastaliq font
+\def \nastaliq {\nash }
+
+\def \newarabfont {% switch to new ArabTeX fonts version
+\setx@skels % activate new skeletons
+\let \setnash \set@xnash
+\let \setnashbf \set@xnashbf
+\let \setnastaliq \set@xnash
+\let \setnast \set@xnash
+\newfonttrue \setnash }
+
+\def \oldarabfont {% switch to old ArabTeX fonts version
+\seta@skels % activate old skeletons
+\let \setnash \set@nash
+\let \setnashbf \set@nashbf
+\let \setnastaliq \set@nash
+\let \setnast \set@nash
+\newfontfalse \setnash }
+
+\def \a@defaultfont {\setnash }
+\def \a@default {\a@defaultfont }
+\def \a@normalfont {\a@defaultfont }
+
+%%%%%%%%%%%%%%%%%%%%%%%% handling of special characters %%%%%%%%%%%%%%%
+
+\def \a@arab@codes {% save and set special characters
+\chardef \spc@de = \catcode`\ \catcode`\ = 10
+\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
+\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
+\csname originalTeX\endcsname % reset codes if BABEL is present
+\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
+
+\def \a@unarab@codes {% reset catcodes
+\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
+\charsubdefmax \arab@charsubdefmax
+\csname germanTeX\endcsname }% reset codes if german.sty is present
+
+\let \arab@codes \a@arab@codes \let \unarab@codes \a@unarab@codes
+
+%%%%%%%%%%%%%%%%%%%%%%% Arabic environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifin@arab % inside Arabic environment?
+
+\def \arabtext {% environment for RTL formatting
+\a@parparams % aoutput::a@parparams
+\the\arabtext@hook \test@token }
+
+\newtoks \arabtext@hook
+
+\arabtext@hook = {% initialize RTL environment
+\in@arabtrue \a@parindent \parindent \a@parskip \parskip
+\edef \a@@font {\the\font }%
+\ifhmode \a@oldhmodetrue \else \a@oldhmodefalse \fi
+\a@vmodetrue \a@@everypar {}%
+\let \| \break \def \\{\hfil \break }%
+\let \emphasize \underbar % define internal commands
+\let \a@last@line \short@line \let \a@put@line \put@line
+\arab@codes \set@arabfont \@waslafalse \@wasfalse
+\def \next@command {\test@special}}
+
+\def \at@arabtext #1{% extend the initialization
+\arabtext@hook \xpa{\the\arabtext@hook #1}}
+
+\let \at@arabtex \at@arabtext % catch typo
+
+\def \a@par {% close a RTL paragraph
+\ifa@vmode \else % terminate last RTL line
+\a@last@line \spreadfalse \a@vmodetrue
+\parindent \a@parindent \parskip \a@parskip
+\a@resetpar \a@par@hook % aoutput::
+\ifnum \tracingarab > 0 \message {##}\fi
+\fi }
+
+\let \a@@par \a@par % save for \a@@everypar in \a@c@autopar
+
+\def \endarabtext {% close RTL environment
+\a@last@line
+\ifa@oldhmode \noindent \fi
+\ifnum \tracingarab > 0 \message {||}\fi
+\global \@ignoretrue }
+
+\let \RLtext \arabtext \let \arabtex \arabtext % catch typo
+\let \endRLtext \endarabtext \let \endarabtex \endarabtext % catch typo
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% next token %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@accent = {\lq \rq \cap \MIN \IN \a@tok \shadda \madda \sukun
+ \raphe \dagesh \mappiq \ldot \rdot \cdot \maqqef \abbr \,}
+
+{\catcode `\^^a0 12 \gdef \sp@ce {^^a0}
+}% catcode ^^a0
+
+\a@digits = {0123456789} \a@paren = {()[]}
+\a@first = {.^_-'`~,|"=:} % default, scanner dependent
+
+\def \test@@token {\iftest@command \tracingmacros 0 \fi
+\let \a@@word \empty \get@token }
+
+\def \get@token {\futurelet \next@token \test@space }
+
+\let \test@token \test@@token % get next token
+
+\def \test@space {% check for LTR space
+\if \space \nxp\next@token \a@@putword \xpa\kill@space
+\else \xpa\next@command \fi }% hook for acmd, aedpatch, arabext
+
+\xpa\def \xpa\kill@space \space {% gobble LTR space
+\futurelet \next@token \test@special }
+
+\xpa\def \xpa\kill@sp@ce \sp@ce {% gobble RTL space
+\futurelet \next@token \test@space }
+
+\def \obey@space {% after control characters
+\a@spacefalse \futurelet \next@token \obey@@space }
+
+\def \obey@@space {% check for space after control character
+\if \space \nxp\next@token \a@spacetrue \fi \test@space }
+
+\def \test@rest {% continue after \control sequence in text
+\global\let \test@token \test@@token % global!
+\xpa \xpa \xpa \test@token \xpa \a@rest \space }
+
+%%%%%%%%%%%%%%%%%%%%%% special cases %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\long\def \test@special #1{% check for special cases
+\if \bgroup \nxp \next@token % arabic group
+ \a@@putword \def \next {\arab@group {#1}}\else
+\if \relax \nxp #1% % command
+ \if\is@in@set #1\a@accent % known to scanner
+ \a@@append {#1}\def \next {\get@token }%
+ \else % general command
+ \a@@putword \def \next {\test@command #1}%
+ \fi \else
+\if \sp@ce \nxp \next@token % RTL space
+ \a@@putword \def \next {\get@token }\else
+\ifcat \nxp ~\nxp #1% % active character
+ \a@@putword \def \next {\test@command #1}\else
+\if \nxp <\nxp #1\unarab@codes % Roman insert
+ \a@@putword \let \next \test@insert \else
+\ifx $#1\unarab@codes % Math insert
+ \a@@putword \let \next \test@math
+\else \a@@append {#1}\def \next {\get@token}% % normal case
+\fi\fi\fi\fi\fi\fi \next }
+
+\def \a@@putword {% process characters
+\ifx \a@@word \empty \else
+ \ifarab \putwordb@x {\xpa\arab@item \a@@word \@@ }\fi
+ \a@spacetrue \xpa\a@showinput \xpa{\a@@word }%
+ \let \a@@word \empty
+\fi }
+
+\def \a@@append #1{% add character
+\a@extend \a@@word {#1}}
+
+%%%%%%%%%%%%%%%%%%%%%% Arabic word %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \arab@item #1#2\@@ {% split the word if necessary
+\ifx \relax #1\relax \else % empty word
+\ifx \relax #2\relax \a@rabwrite {#1}\else % single character
+\if\is@in@set #1\a@first
+ \a@rabwrite {#1#2}\else % start symbol: word
+\if\is@in@set #1\a@digits
+ \a@split #1#2\@@ \else % digit: number
+\if\is@in@set #1\a@paren
+ \arab@item #2\@@ \a@rabwrite {#1}\else % parenthesis: test content
+ \a@rabwrite {#1#2}% % normal case
+\fi\fi\fi\fi\fi }
+
+\def \a@rabwrite #1{% process an Arabic word (called within a group)
+\tracingmacros 0 % use \test@XXXtrue for testing !
+ \a@scan #1>% % generate the token sequence
+ \xpa \a@parse \the\a@tokens >% split it into syllables and reverse
+ \xpa \a@write \the\a@revwd >% output the word
+\ifnum \tracingarab > 2 \message {.}\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \a@c@last@ {\\} \gdef \a@c@put@ {\|} \gdef \a@c@par@ {\par }
+
+{\catcode `\^ 7 \catcode `\^^M=\active \gdef \a@c@M {^^M}}
+
+{\catcode `\ =\active\gdef\a@c@SP{ }}
+
+\long \def \test@command #1{% check for special commands
+\gdef \a@arg {#1}\let \next \test@token
+\ifx \a@arg \a@c@par@ \a@@par \else % \par
+\ifx \a@arg \a@c@M \a@@par \else % \obeylines
+\ifx \a@arg \a@c@SP \else % \obeyspaces
+\ifx \a@arg \a@c@last@ \a@last@line \else % \\
+\ifx \a@arg \a@c@put@ \a@put@line \else % \|
+ \def \next {\a@command #1}% process the command inside "acmd.sty"
+\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Arabic groups %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \arab@group #1{% process the next group
+\bgroup \initlineb@x
+\def \end {\global \setbox1 \hbox {\unhbox \lineb@x}%
+\egroup \putwordb@x {\unhbox1 }\a@spacetrue \test@token }% last line
+\test@token #1 \end }
+
+\def \a@sequence #1{% put a sequence of words into a \hbox
+\bgroup \transfalse \showfalse \let \end \relax
+\let \a@last@line \finish@line \let \a@put@line \break@line
+\def \next@command {\test@special}\let \put@word \addt@line
+\initlineb@x \test@token #1 \end \box\lineb@x \egroup }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% arabic number %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@split #1#2\@@ {% next word starts with digit
+\ifx \relax #2\relax \a@rabwrite {#1}\else
+ \def \a@body {}\def \a@number {#1}\a@splitnumber #2\@@
+ \xpa \a@rabwrite \xpa {\a@body }%
+\fi }
+
+%{\catcode `\B =12 \gdef \f@sila {B}} % cf. awrite::ac@other
+%{\catcode `\C =12 \gdef \h@phen {C}}
+
+\def \a@splitnumber #1#2\@@ {% process word starting with digit
+\if\is@in@set #1\a@digits \edef \a@number {#1\a@number }\else
+\ifx -#1\edef \a@number {\h@phen \a@number }\else
+\ifx /#1\edef \a@number {/\a@number }\else
+\ifx ,#1\ifx \relax #2\relax
+ \edef \a@body {\a@body \a@number #1}\def \a@number {}%
+ \else \edef \a@number {\f@sila \a@number }\fi
+\else \edef \a@body {\a@body \a@number #1}\def \a@number {}%
+\fi\fi\fi\fi
+\ifx \relax #2\relax \edef \a@body {\a@body \a@number}\let \next \relax
+\else \def \next {\a@splitnumber #2\@@ }%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% insertions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \test@math #1${% Math insertion in Arabic text
+\def \next {#1}% test for display math
+\ifx \next \empty \def \next
+ {\begingroup \endarabtext $$\aftergroup \endgroup
+ \aftergroup \a@spacefalse \aftergroup \test@token }%
+\else \def \next
+ {\putwordb@x {$#1$}\a@spacetrue \arab@codes \test@token }%
+\fi \next }
+
+\def \test@insert #1>{% Roman insertion in Arabic text
+\putwordb@x {\rm #1}\a@spacetrue \arab@codes \test@token }
+%\putwordb@x {\a@@font #1}\a@spacetrue \arab@codes \test@token }
+
+% cf. abidir::\LR
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% verbatim mode %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@showinput #1{% show verbatim text and transliteration
+\ifshow \a@@verb {#1}\fi
+\iftrans {\tracingmacros 0 \set@transfont \trans@text #1 \end }\fi }
+
+\def \a@@verb #1{\def \verb@text {#1}% list input words verbatim
+ {\tracingmacros 0 \penalty \z@ \tt
+ \xpa \get@meaning \meaning \verb@text }\ }
+
+\def \get@meaning #1>{} % strip off macro header
+
+\def \a@verb #1>{\a@@verb {#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabic insertion %%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\< = \@other % better make sure
+
+\gdef \a@ins {% arabic insertion or 'less'
+\ifmmode \global\let \a@less <
+\else \global\let \a@less \arab@insert \leavevmode
+ \bgroup \arab@codes \set@arabfont \@waslafalse \@wasfalse
+\fi \a@less }
+
+\gdef \<{\protect \a@ins } % explicit command \<
+
+\catcode`\< = \active % prepare active <
+\gdef <{\protect \a@ins }
+} % catcode <
+
+\def \break@line {% \| inside insertion
+\box\lineb@x \break \initlineb@x }
+
+\def \finish@line {% \\ inside insertion
+\box\lineb@x \hfil \break \initlineb@x }
+
+\def \arab@insert #1>{% Arabic insertion in Roman text
+\ifshow \a@@verb {#1}\fi % verbating listing
+\ifarab \a@sequence {#1} \fi % arabic writing
+\iftrans \set@transfont \trans@text #1 \end \/\fi
+\ifnum \tracingarab > \@ne \message {>}\fi
+\unskip \egroup }
+
+% cf. abidir::\LR
+
+%%%%%%%%%%%%%%%%%%%%%%%%% transliteration %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \settransfont #1{% set transliteration style or \style
+\if \relax \nxp#1\relax \def \set@transfont
+ {\tr@ceoff #1\csname selectfont\endcsname \tr@ceon }%
+\else \def \set@transfont
+ {\tr@ceoff \csname #1\endcsname
+ \csname selectfont\endcsname \tr@ceon }%
+\fi}
+
+\settransfont {\rm \it }% standard font for transliteration
+
+\long \def \trans@text #1{% check for special cases
+\leavevmode \def \next {\trans@text }%
+\if\is@in@set {#1}\a@first \def \next {\trans@elem #1}\else % normal case
+\ifx \end #1\let \next \relax \else
+\ifx \par #1\endgraf \else
+\ifx \\#1\hfil \break \else
+\ifx \|#1\hfil \break \else
+\ifx \emphasize #1\def \next {\a@emp }\else
+\if \relax \nxp #1\relax % ignore control sequences
+\else \def \next {\trans@elem #1}% normal case
+\fi\fi\fi\fi\fi\fi\fi \next }
+
+\def \a@emp #1{\trans@text #1 }
+
+\def \trans@elem #1 {% transliterate next word of text
+\a@transword {#1}\trans@text }
+
+\def \a@transword #1{% transliterate a word
+{\tracingmacros 0 \a@scan #1>\xpa \a@trans \the\a@tokens >\ }}
+
+\ifx \a@trans \undefined % atrans.sty not yet loaded
+\def \a@trans #1>{\gdef \a@trans ##1>{\relax }% default
+\message {`atrans.sty' not loaded; transliteration ignored.}}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%% initialization %%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \startarab {% set default initializations
+\newarabfont
+\a@normalfont % default font
+\transfalse \arabtrue \vocalize \ligsfalse
+\tracingarab = 0 \setnone } % \catcode < := 12 for user macros
+
+%%%%%%%%%%%%%%%%%%%%%%% load the later passes %%%%%%%%%%%%%%%%%%%%%%
+
+\UsePackage {acmd} % load the command processor module
+\UsePackage {afonts} % load the default fonts
+\UsePackage {ascan} % generate a token sequence
+\UsePackage {aparse} % parse it into syllables and reverse them
+\UsePackage {awrite} % generate the basic writing
+\UsePackage {aligs} % modify for any ligatures
+\UsePackage {aoutput} % generate output lines
+\UsePackage {abidir} % bidirectional linebreaking
+\UsePackage {atrans} % generate the transliteration
+\UsePackage {alatex} % extensions for LaTeX
+\UsePackage {abjad} % abjad numerals
+\ifx \edmacloaded \relax
+ \UsePackage {aedpatch} \fi % patches for EDMAC ?
+\ifx \undefined \peek@token \else
+\ifx \undefined \bbl@test@token
+ \UsePackage {arababel} \fi\fi % patches for old BABEL ?
+\ifx \CJK \undefined \else
+ \UsePackage {acjk} \fi % patches for CJK ?
+\UsePackage {apatch} % any last minute corrections
+
+%%%%%%%%%%%%%%%%%%%%%%% statistics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \arab@stat {{\newlinechar `$
+\wlog {$Parameterless commands valid in Arabic mode:}
+\wlog {\space (\the\a@@listzero )}
+\wlog {$Commands with 1 parameter valid in Arabic mode:}
+\wlog {\space (\the\a@@listone )}
+\wlog {$Commands with 2 parameters valid in Arabic mode:}
+\wlog {\space (\the\a@@listtwo )}
+\wlog {$User defined commands valid in Arabic mode:}
+\wlog {\space (\the\a@@listreg )}}}
+
+\let \arabstat \arab@stat
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%% here we go %%%%%%%%%%%%%%%%%%%%%%%
+
+\let \wlog \a@wlog
+
+\startarab \a@report
+
+\a@message {... now be patient ... }
+
+\catcode`\" = \ar@bdqcode \catcode`\@ = \ar@batcode
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/arabtex.tex b/language/arabic/arabtex/texinput/arabtex.tex
index 09ac9508b8..5593ddfe02 100644
--- a/language/arabic/arabtex/texinput/arabtex.tex
+++ b/language/arabic/arabtex/texinput/arabtex.tex
@@ -1,133 +1,133 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtex.tex
-% version 3.10a
-% this is the Plain TeX driver module for the ArabTeX macro package
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally EMail: lagallyk@acm.org
-% Institut fuer Formale
-% Methoden der Informatik TEL: +49-711-7816-392
-% Universitaet Stuttgart FAX: +49-711-7816-370
-% Universitaetsstrasse 38
-% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % 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 (at your option) any later version.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \input this file at the beginning of an ArabTeX input file running
-% under Plain TeX. This is an adaptation by Tom Koornwinder of
-% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\message { Plain TeX setup for ArabTeX, 26.04.2003}
-
-\ifx \LaTeX \undefined \else
-\errmessage {^^JThis loader does not work with LaTeX!
- ^^JUse Plain TeX instead.^^J}
-\expandafter \endinput
-\fi
-
-\def \makeatletter {\catcode `\@ = 11 }
-\def \makeatother {\catcode `\@ = 12 }
-
-\let \typeout \message \let \protect \relax
-\let \em \it
-
-\font \xnash =xnsh14
-\font \nash =xnsh14
-\font \tennash =xnsh14 % add fonts as needed.
-\font \nashx =xnsh14
-\font \nashxi =xnsh14 scaled \magstephalf
-\font \nashxii =xnsh14 scaled \magstep1
-\font \nashxiv =xnsh14 scaled \magstep2
-\font \nashxvii =xnsh14 scaled \magstep3
-\font \nashxx =xnsh14 scaled \magstep4
-\font \nashxxv =xnsh14 scaled \magstep5
-
-\font \xnashbf =xnsh14bf
-\font \nashbf =xnsh14bf
-\font \tennashbf=xnsh14bf % bold face fonts
-\font \nashbx =xnsh14bf
-\font \nashbxi =xnsh14bf scaled \magstephalf
-\font \nashbxii =xnsh14bf scaled \magstep1
-\font \nashbxiv =xnsh14bf scaled \magstep2
-\font \nashbxvii=xnsh14bf scaled \magstep3
-\font \nashbxx =xnsh14bf scaled \magstep4
-\font \nashbxxv =xnsh14bf scaled \magstep5
-
-\font \yorn =yarborn % simple ornaments by Y. Haralambous
-
-\def \pnash {\tennash } \def \pnashbf {\tennashbf }
-\def \nash {\protect\pnash } \def \nashbf {\protect\pnashbf }
-
-\def \strut {\vrule height 2ex depth .8ex width 0pt}
-
-\makeatletter
-
-\newif \if@ignore % ignore spaces after environment?
-\newif \if@endpe
-
-\def \begin #1{% small version without checks
-\begingroup
- \long \def \end ##1{% local version for \end{arabtext} and \end \end
- \ifx ##1\par \endarabtext \endgroup
- \else \csname end\string ##1\endcsname \endgroup \fi
- \if@ignore \global\@ignorefalse \expandafter \ignorespaces \fi }%
-\csname #1\endcsname }
-
-\expandafter \def \csname end\string\end\endcsname{% for \end \end
-\endgroup \end }
-
-{\catcode `\"=\active % simulate german.sty
-\gdef "#1{\ifx #1s\ss \else \"#1\fi }% umlaut and sharp s
-}
-
-\newdimen \marginparwidth \marginparwidth 72pt % adjust as required !
-\newdimen \marginparsep \marginparsep 10pt % adjust as required !
-
-\long \def \marginpar #1{% Plain TeX version
- \dimen0 \baselineskip
-\setbox0 \vtop to \dimen0
- {\hsize \marginparwidth \parskip 0pt \raggedright
- \noindent \strut #1\vss }%
-\setbox0 \hbox to \hsize
- {\hskip \hsize \hskip \marginparsep \box0 \hss }%
-\ifhmode \skip0 \lastskip \hskip 0pt \strut
- \vadjust {\box0 \vskip -\dimen0 }%
- \ifdim \skip0 = 0pt \else \expandafter \ignorespaces \fi
-\else \dimen2 \prevdepth \nointerlineskip \box0
- \vskip -\dimen0 \prevdepth \dimen2
-\fi }
-
-\def \verb #1{% simple verbatim routine
-\def \endverb ##1#1{\a@@verb {##1}}\endverb }
-
-\def \\{\hfill \break } % utilities
-
-\def \newpage {\vfill \eject }
-
-\def \today {\number\day.\number\month.\number\year }
-
-\let \@@input \input
-\def \input #1 {\@@input #1 }
-\def \UsePackage #1{\input {#1.sty}}
-
-\let \document \relax \let \enddocument \end
-\let \a@enddocument \end
-
-\input arabtex.sty % here goes
-\a@ident {arabtex.tex} {3.11 Plain TeX loader for ArabTeX} {26.04.2003}
-
-\def \end {% report the configuration
-{\arab@stat \newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument }
-
-\makeatother
-\setarab
-
-\tracingstats=1
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% arabtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtex.tex
+% version 3.10a
+% this is the Plain TeX driver module for the ArabTeX macro package
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally EMail: lagallyk@acm.org
+% Institut fuer Formale
+% Methoden der Informatik TEL: +49-711-7816-392
+% Universitaet Stuttgart FAX: +49-711-7816-370
+% Universitaetsstrasse 38
+% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % 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 (at your option) any later version.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \input this file at the beginning of an ArabTeX input file running
+% under Plain TeX. This is an adaptation by Tom Koornwinder of
+% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\message { Plain TeX setup for ArabTeX, 26.04.2003}
+
+\ifx \LaTeX \undefined \else
+\errmessage {^^JThis loader does not work with LaTeX!
+ ^^JUse Plain TeX instead.^^J}
+\expandafter \endinput
+\fi
+
+\def \makeatletter {\catcode `\@ = 11 }
+\def \makeatother {\catcode `\@ = 12 }
+
+\let \typeout \message \let \protect \relax
+\let \em \it
+
+\font \xnash =xnsh14
+\font \nash =xnsh14
+\font \tennash =xnsh14 % add fonts as needed.
+\font \nashx =xnsh14
+\font \nashxi =xnsh14 scaled \magstephalf
+\font \nashxii =xnsh14 scaled \magstep1
+\font \nashxiv =xnsh14 scaled \magstep2
+\font \nashxvii =xnsh14 scaled \magstep3
+\font \nashxx =xnsh14 scaled \magstep4
+\font \nashxxv =xnsh14 scaled \magstep5
+
+\font \xnashbf =xnsh14bf
+\font \nashbf =xnsh14bf
+\font \tennashbf=xnsh14bf % bold face fonts
+\font \nashbx =xnsh14bf
+\font \nashbxi =xnsh14bf scaled \magstephalf
+\font \nashbxii =xnsh14bf scaled \magstep1
+\font \nashbxiv =xnsh14bf scaled \magstep2
+\font \nashbxvii=xnsh14bf scaled \magstep3
+\font \nashbxx =xnsh14bf scaled \magstep4
+\font \nashbxxv =xnsh14bf scaled \magstep5
+
+\font \yorn =yarborn % simple ornaments by Y. Haralambous
+
+\def \pnash {\tennash } \def \pnashbf {\tennashbf }
+\def \nash {\protect\pnash } \def \nashbf {\protect\pnashbf }
+
+\def \strut {\vrule height 2ex depth .8ex width 0pt}
+
+\makeatletter
+
+\newif \if@ignore % ignore spaces after environment?
+\newif \if@endpe
+
+\def \begin #1{% small version without checks
+\begingroup
+ \long \def \end ##1{% local version for \end{arabtext} and \end \end
+ \ifx ##1\par \endarabtext \endgroup
+ \else \csname end\string ##1\endcsname \endgroup \fi
+ \if@ignore \global\@ignorefalse \expandafter \ignorespaces \fi }%
+\csname #1\endcsname }
+
+\expandafter \def \csname end\string\end\endcsname{% for \end \end
+\endgroup \end }
+
+{\catcode `\"=\active % simulate german.sty
+\gdef "#1{\ifx #1s\ss \else \"#1\fi }% umlaut and sharp s
+}
+
+\newdimen \marginparwidth \marginparwidth 72pt % adjust as required !
+\newdimen \marginparsep \marginparsep 10pt % adjust as required !
+
+\long \def \marginpar #1{% Plain TeX version
+ \dimen0 \baselineskip
+\setbox0 \vtop to \dimen0
+ {\hsize \marginparwidth \parskip 0pt \raggedright
+ \noindent \strut #1\vss }%
+\setbox0 \hbox to \hsize
+ {\hskip \hsize \hskip \marginparsep \box0 \hss }%
+\ifhmode \skip0 \lastskip \hskip 0pt \strut
+ \vadjust {\box0 \vskip -\dimen0 }%
+ \ifdim \skip0 = 0pt \else \expandafter \ignorespaces \fi
+\else \dimen2 \prevdepth \nointerlineskip \box0
+ \vskip -\dimen0 \prevdepth \dimen2
+\fi }
+
+\def \verb #1{% simple verbatim routine
+\def \endverb ##1#1{\a@@verb {##1}}\endverb }
+
+\def \\{\hfill \break } % utilities
+
+\def \newpage {\vfill \eject }
+
+\def \today {\number\day.\number\month.\number\year }
+
+\let \@@input \input
+\def \input #1 {\@@input #1 }
+\def \UsePackage #1{\input {#1.sty}}
+
+\let \document \relax \let \enddocument \end
+\let \a@enddocument \end
+
+\input arabtex.sty % here goes
+\a@ident {arabtex.tex} {3.11 Plain TeX loader for ArabTeX} {26.04.2003}
+
+\def \end {% report the configuration
+{\arab@stat \newlinechar `$ \wlog {\arabtexconfig $}}\a@enddocument }
+
+\makeatother
+\setarab
+
+\tracingstats=1
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/arabtoks.sty b/language/arabic/arabtex/texinput/arabtoks.sty
index 9c1d4f9ca3..b75e68f894 100644
--- a/language/arabic/arabtex/texinput/arabtoks.sty
+++ b/language/arabic/arabtex/texinput/arabtoks.sty
@@ -1,146 +1,146 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% arabtoks.sty
-% ArabTeX
-% extra \CS token definitions for Arabic
-% Version 17.07.1999
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {arabtoks.sty} {3.09 ArabTeX CS token definitions } {17.07.1999}
-
-% extra \CS token definitions for Arabic
-% pattern: skeleton, modifier
-\def \a@a {\sk@@ , 1 } % reserved for vowel
-\def \a@b {\sk@b , 0 } % bah without dot
-\def \a@c {\sk@hh , 3 } % gim with three dots
-\def \a@d {\sk@d , 8 } % dal with ttah
-\def \a@e {\sk@@ , 2 } % reserved for vowel
-\def \a@f {\sk@f@s , 0 } % fah without dot
-\def \a@g {\sk@g@p , 0 } % gaf with loop
-\def \a@h {\sk@h@s ,11 } % urdu hah
-\def \a@i {\sk@@ , 3 } % reserved for vowel
-\def \a@j {\sk@h@s , 2 } % urdu hah with 2 dots ..
-\def \a@k {\sk@k@s , 0 } % kaf without mark
-\def \a@l {\sk@l ,12 } % kurdish lam
-\def \a@m {\sk@n@p , 1 } % nun with loop, 1 dot above
-\def \a@n {\sk@n , 0 } % nun without dot
-\def \a@o {\sk@@ , 4 } % reserved for vowel
-\def \a@p {\sk@ain , 3 } % `ain with three dots
-\def \a@q {\sk@r@p , 0 } % rah with loop
-\def \a@r {\sk@r , 8 } % rah with ttah
-\def \a@s {\sk@s ,10 } % sin with two dots
-\def \a@t {\sk@b , 8 } % tah with ttah
-\def \a@u {\sk@@ , 5 } % reserved for vowel
-\def \a@v {\sk@b@p , 2 } % tah with loop
-\def \a@w {\sk@w ,19 } % waw with damma (Uighur)
-\def \a@x {\sk@w , 1 } % waw with dot (Malay)
-\def \a@y {\sk@y , 6 } % yah with three dots below
-\def \a@z {\sk@r@s , 0 } % Pashto rah with two dots
-
-\def \a@A {\sk@@ , 6 } % reserved for vowel
-\def \a@B {\sk@h@s , 7 } % wavy hah with hamza
-\def \a@C {\sk@hh , 2 } % hhah with two dots above
-\def \a@D {\sk@d , 4 } % dal with dot below
-\def \a@E {\sk@y ,14 } % kurdish yah
-\def \a@F {\sk@f@s , 4 } % fah with dot below
-\def \a@G {\sk@hh ,15 } % hhah with two vert dots above
-\def \a@H {\sk@h@m , 0 } % hah marbuta !
-\def \a@I {\sk@@ , 7 } % reserved for vowel
-\def \a@J {\sk@g@ps , 0 } % gaf with ring and bar
-\def \a@K {\sk@k@s , 1 } % kaf with dot
-\def \a@L {\sk@k , 1 } % kaf with dot and mark
-\def \a@M {\sk@g@s , 3 } % gaf with 3 dots above
-\def \a@N {\sk@n@p , 0 } % nun with loop
-\def \a@O {\sk@@ , 8 } % reserved for vowel
-\def \a@P {\sk@ain ,10 } % ghain wit 1 dot above, 1 below
-\def \a@Q {\sk@f@s , 1 } % fah with one dot above
-\def \a@R {\sk@r ,13 } % kurdish rah
-\def \a@S {\sk@s , 2 } % sin with two dots
-\def \a@T {\sk@b ,15 } % tah with two vert. dots above
-\def \a@V {\sk@f@s , 6 } % fah with three dots below
-\def \a@U {\sk@@ , 9 } % reserved for vowel
-\def \a@W {\sk@w ,12 } % kurdish waw with dot
-\def \a@X {\sk@w , 3 } % waw with three dots
-\def \a@Y {\sk@y , 9 } % yah with two vert. dots below
-\def \a@Z {\sk@s ,15 } % sin with two dots vertical
-
-\def \a@aa {\sk@a , 0 } % alif as consonant (Uighur)
-\def \a@ab {\sk@b , 9 } % bah with 2 dots below :
-\def \a@ac {\sk@b ,17 } % bah with 4 dots above ::
-\def \a@ad {\sk@d , 2 } % dal with 2 dots above ..
-\def \a@ae {\sk@d ,16 } % dal with 3 dots above v
-\def \a@af {\sk@d , 5 } % dal with 2 dots below ..
-\def \a@ag {\sk@hh , 5 } % gim with 2 dots below ..
-\def \a@ah {\sk@hh , 9 } % gim with 2 dots below :
-%\def \a@ai {\sk@free, 0 } % unassigned
-\def \a@ai {\sk@Q , 0 } % isolated hamza}
-\def \a@aj {\sk@hh ,18 } % gim with 4 dots below ::
-\def \a@ak {\sk@g@s , 9 } % gaf with 2 dots below :
-\def \a@al {\sk@g@s , 2 } % gaf with 2 dots above ..
-\def \a@am {\sk@n , 3 } % nun with 3 dots ^
-\def \a@an {\sk@n , 8 } % nun with small ttah
-%\def \a@ao {\sk@free, 0 } % unassigned
-\def \a@ao {\sk@m@si, 0 } % Sindhi final mim
-\def \a@ap {\sk@b ,18 } % bah with 4 dots below ::
-\def \a@aq {\sk@f@s ,17 } % fah with 4 dots ::
-\def \a@ar {\sk@r ,17 } % rah with 4 dots ::
-\def \a@as {\sk@y@ps, 0 } % yah bari with ring
-\def \a@at {\sk@b ,16 } % bah with 3 dots above v
-%\def \a@au {\sk@free, 0 } % unassigned
-\def \a@au {\sk@free, 0 } % unassigned
-\def \a@au {\sk@w ,25 } % waw with roof
-\def \a@av {\sk@w , 2 } % waw with 2 dots
-\def \a@aw {\sk@w ,20 } % waw with alif (Uighur)
-\def \a@ax {\sk@k@w , 0 } % wide kAf
-\def \a@ay {\sk@y@p , 7 } % yah bari with hamza
-\def \a@az {\sk@y ,12 } % alif maqsura with bow
-
-\def \a@aA {\sk@d@p , 0 } % dal with loop
-\def \a@aB {\sk@d ,21 } % dal with ttah and dot below
-\def \a@aC {\sk@d , 3 } % dal with 3 dots above
-\def \a@aD {\sk@d ,17 } % dal with 4 dots above ::
-\def \a@aE {\sk@hh ,23 } % gim with 1 dot above, 3 below
-\def \a@aF {\sk@r ,12 } % rah with bow
-\def \a@aG {\sk@r , 4 } % rah with dot below
-\def \a@aH {\sk@r , 2 } % rah with 2 dots ..
-\def \a@aI {\sk@s ,24 } % sin with 3 dots above, 1 below
-\def \a@aJ {\sk@s , 6 } % sin with 3 dots below v
-\def \a@aK {\sk@s ,22 } % sin with 3 dots above, 3 below
-\def \a@aL {\sk@ss , 5 } % ssad with 2 dots below
-\def \a@aM {\sk@ss , 3 } % ssad with 3 dots above
-\def \a@aN {\sk@ss ,10 } % ssad with 1 dot above, 1 below
-\def \a@aO {\sk@tt , 3 } % ttah with 3 dots above
-\def \a@aP {\sk@f@s ,10 } % fah with 1 dot above, 1 below
-\def \a@aQ {\sk@q@s , 1 } % qaf with 1 dot above
-\def \a@aR {\sk@q@s , 3 } % qaf with 3 dots above
-\def \a@aS {\sk@k , 6 } % kaf with 3 dots below
-\def \a@aT {\sk@g@s , 5 } % gaf with 2 dots below ..
-\def \a@aU {\sk@w@r , 0 } % waw with ring
-\def \a@aV {\sk@w@b , 0 } % waw with bar
-\def \a@aW {\sk@l , 1 } % lam with 1 dot above
-\def \a@aX {\sk@l , 3 } % lam with 3 dots above
-\def \a@aY {\sk@l , 6 } % lam with 3 dots below
-\def \a@aZ {\sk@n ,10 } % nun with 1 dot above, 1 below
-
-\def \a@Za {\sk@@ ,10 } % reserved for vowel
-\def \a@Ze {\sk@@ ,11 } % reserved for vowel
-\def \a@Zi {\sk@@ ,12 } % reserved for vowel
-\def \a@Zo {\sk@@ ,13 } % reserved for vowel
-\def \a@Zu {\sk@@ ,14 } % reserved for vowel
-\def \a@Zz {\sktt , 1 } % zzah with variant transliteration
-\def \a@ZZ {\sk@@ , 0 } % illegal
-
-\def \a@ZA {\sk@@ ,15 } % reserved for vowel
-\def \a@ZE {\sk@@ ,16 } % reserved for vowel
-\def \a@ZI {\sk@@ ,17 } % reserved for vowel
-\def \a@ZO {\sk@@ ,18 } % reserved for vowel
-\def \a@ZU {\sk@@ ,19 } % reserved for vowel
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% arabtoks.sty
+% ArabTeX
+% extra \CS token definitions for Arabic
+% Version 17.07.1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {arabtoks.sty} {3.09 ArabTeX CS token definitions } {17.07.1999}
+
+% extra \CS token definitions for Arabic
+% pattern: skeleton, modifier
+\def \a@a {\sk@@ , 1 } % reserved for vowel
+\def \a@b {\sk@b , 0 } % bah without dot
+\def \a@c {\sk@hh , 3 } % gim with three dots
+\def \a@d {\sk@d , 8 } % dal with ttah
+\def \a@e {\sk@@ , 2 } % reserved for vowel
+\def \a@f {\sk@f@s , 0 } % fah without dot
+\def \a@g {\sk@g@p , 0 } % gaf with loop
+\def \a@h {\sk@h@s ,11 } % urdu hah
+\def \a@i {\sk@@ , 3 } % reserved for vowel
+\def \a@j {\sk@h@s , 2 } % urdu hah with 2 dots ..
+\def \a@k {\sk@k@s , 0 } % kaf without mark
+\def \a@l {\sk@l ,12 } % kurdish lam
+\def \a@m {\sk@n@p , 1 } % nun with loop, 1 dot above
+\def \a@n {\sk@n , 0 } % nun without dot
+\def \a@o {\sk@@ , 4 } % reserved for vowel
+\def \a@p {\sk@ain , 3 } % `ain with three dots
+\def \a@q {\sk@r@p , 0 } % rah with loop
+\def \a@r {\sk@r , 8 } % rah with ttah
+\def \a@s {\sk@s ,10 } % sin with two dots
+\def \a@t {\sk@b , 8 } % tah with ttah
+\def \a@u {\sk@@ , 5 } % reserved for vowel
+\def \a@v {\sk@b@p , 2 } % tah with loop
+\def \a@w {\sk@w ,19 } % waw with damma (Uighur)
+\def \a@x {\sk@w , 1 } % waw with dot (Malay)
+\def \a@y {\sk@y , 6 } % yah with three dots below
+\def \a@z {\sk@r@s , 0 } % Pashto rah with two dots
+
+\def \a@A {\sk@@ , 6 } % reserved for vowel
+\def \a@B {\sk@h@s , 7 } % wavy hah with hamza
+\def \a@C {\sk@hh , 2 } % hhah with two dots above
+\def \a@D {\sk@d , 4 } % dal with dot below
+\def \a@E {\sk@y ,14 } % kurdish yah
+\def \a@F {\sk@f@s , 4 } % fah with dot below
+\def \a@G {\sk@hh ,15 } % hhah with two vert dots above
+\def \a@H {\sk@h@m , 0 } % hah marbuta !
+\def \a@I {\sk@@ , 7 } % reserved for vowel
+\def \a@J {\sk@g@ps , 0 } % gaf with ring and bar
+\def \a@K {\sk@k@s , 1 } % kaf with dot
+\def \a@L {\sk@k , 1 } % kaf with dot and mark
+\def \a@M {\sk@g@s , 3 } % gaf with 3 dots above
+\def \a@N {\sk@n@p , 0 } % nun with loop
+\def \a@O {\sk@@ , 8 } % reserved for vowel
+\def \a@P {\sk@ain ,10 } % ghain wit 1 dot above, 1 below
+\def \a@Q {\sk@f@s , 1 } % fah with one dot above
+\def \a@R {\sk@r ,13 } % kurdish rah
+\def \a@S {\sk@s , 2 } % sin with two dots
+\def \a@T {\sk@b ,15 } % tah with two vert. dots above
+\def \a@V {\sk@f@s , 6 } % fah with three dots below
+\def \a@U {\sk@@ , 9 } % reserved for vowel
+\def \a@W {\sk@w ,12 } % kurdish waw with dot
+\def \a@X {\sk@w , 3 } % waw with three dots
+\def \a@Y {\sk@y , 9 } % yah with two vert. dots below
+\def \a@Z {\sk@s ,15 } % sin with two dots vertical
+
+\def \a@aa {\sk@a , 0 } % alif as consonant (Uighur)
+\def \a@ab {\sk@b , 9 } % bah with 2 dots below :
+\def \a@ac {\sk@b ,17 } % bah with 4 dots above ::
+\def \a@ad {\sk@d , 2 } % dal with 2 dots above ..
+\def \a@ae {\sk@d ,16 } % dal with 3 dots above v
+\def \a@af {\sk@d , 5 } % dal with 2 dots below ..
+\def \a@ag {\sk@hh , 5 } % gim with 2 dots below ..
+\def \a@ah {\sk@hh , 9 } % gim with 2 dots below :
+%\def \a@ai {\sk@free, 0 } % unassigned
+\def \a@ai {\sk@Q , 0 } % isolated hamza}
+\def \a@aj {\sk@hh ,18 } % gim with 4 dots below ::
+\def \a@ak {\sk@g@s , 9 } % gaf with 2 dots below :
+\def \a@al {\sk@g@s , 2 } % gaf with 2 dots above ..
+\def \a@am {\sk@n , 3 } % nun with 3 dots ^
+\def \a@an {\sk@n , 8 } % nun with small ttah
+%\def \a@ao {\sk@free, 0 } % unassigned
+\def \a@ao {\sk@m@si, 0 } % Sindhi final mim
+\def \a@ap {\sk@b ,18 } % bah with 4 dots below ::
+\def \a@aq {\sk@f@s ,17 } % fah with 4 dots ::
+\def \a@ar {\sk@r ,17 } % rah with 4 dots ::
+\def \a@as {\sk@y@ps, 0 } % yah bari with ring
+\def \a@at {\sk@b ,16 } % bah with 3 dots above v
+%\def \a@au {\sk@free, 0 } % unassigned
+\def \a@au {\sk@free, 0 } % unassigned
+\def \a@au {\sk@w ,25 } % waw with roof
+\def \a@av {\sk@w , 2 } % waw with 2 dots
+\def \a@aw {\sk@w ,20 } % waw with alif (Uighur)
+\def \a@ax {\sk@k@w , 0 } % wide kAf
+\def \a@ay {\sk@y@p , 7 } % yah bari with hamza
+\def \a@az {\sk@y ,12 } % alif maqsura with bow
+
+\def \a@aA {\sk@d@p , 0 } % dal with loop
+\def \a@aB {\sk@d ,21 } % dal with ttah and dot below
+\def \a@aC {\sk@d , 3 } % dal with 3 dots above
+\def \a@aD {\sk@d ,17 } % dal with 4 dots above ::
+\def \a@aE {\sk@hh ,23 } % gim with 1 dot above, 3 below
+\def \a@aF {\sk@r ,12 } % rah with bow
+\def \a@aG {\sk@r , 4 } % rah with dot below
+\def \a@aH {\sk@r , 2 } % rah with 2 dots ..
+\def \a@aI {\sk@s ,24 } % sin with 3 dots above, 1 below
+\def \a@aJ {\sk@s , 6 } % sin with 3 dots below v
+\def \a@aK {\sk@s ,22 } % sin with 3 dots above, 3 below
+\def \a@aL {\sk@ss , 5 } % ssad with 2 dots below
+\def \a@aM {\sk@ss , 3 } % ssad with 3 dots above
+\def \a@aN {\sk@ss ,10 } % ssad with 1 dot above, 1 below
+\def \a@aO {\sk@tt , 3 } % ttah with 3 dots above
+\def \a@aP {\sk@f@s ,10 } % fah with 1 dot above, 1 below
+\def \a@aQ {\sk@q@s , 1 } % qaf with 1 dot above
+\def \a@aR {\sk@q@s , 3 } % qaf with 3 dots above
+\def \a@aS {\sk@k , 6 } % kaf with 3 dots below
+\def \a@aT {\sk@g@s , 5 } % gaf with 2 dots below ..
+\def \a@aU {\sk@w@r , 0 } % waw with ring
+\def \a@aV {\sk@w@b , 0 } % waw with bar
+\def \a@aW {\sk@l , 1 } % lam with 1 dot above
+\def \a@aX {\sk@l , 3 } % lam with 3 dots above
+\def \a@aY {\sk@l , 6 } % lam with 3 dots below
+\def \a@aZ {\sk@n ,10 } % nun with 1 dot above, 1 below
+
+\def \a@Za {\sk@@ ,10 } % reserved for vowel
+\def \a@Ze {\sk@@ ,11 } % reserved for vowel
+\def \a@Zi {\sk@@ ,12 } % reserved for vowel
+\def \a@Zo {\sk@@ ,13 } % reserved for vowel
+\def \a@Zu {\sk@@ ,14 } % reserved for vowel
+\def \a@Zz {\sktt , 1 } % zzah with variant transliteration
+\def \a@ZZ {\sk@@ , 0 } % illegal
+
+\def \a@ZA {\sk@@ ,15 } % reserved for vowel
+\def \a@ZE {\sk@@ ,16 } % reserved for vowel
+\def \a@ZI {\sk@@ ,17 } % reserved for vowel
+\def \a@ZO {\sk@@ ,18 } % reserved for vowel
+\def \a@ZU {\sk@@ ,19 } % reserved for vowel
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/ascan.sty b/language/arabic/arabtex/texinput/ascan.sty
index 080aece86c..9478604190 100644
--- a/language/arabic/arabtex/texinput/ascan.sty
+++ b/language/arabic/arabtex/texinput/ascan.sty
@@ -1,502 +1,502 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% ascan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ascan.sty
-% ArabTeX
-% Standard Scanner
-% 22.08.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {ascan.sty} {3.11 standard ZDMG input encoding } {22.08.2003}
-
-\chardef \testatcode = \catcode`\@ \catcode`\@ = 11
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \seta@codes {% define standard \ArabTeX input coding
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@@ {@} % illegal character
-\def \sc@a {a}
-\def \sc@b {b}
-\def \sc@c {\ift@rk G\else \ifs@nd J\else
- \ifm@lay J\else c\fi\fi\fi }
-\def \sc@d {d}
-\def \sc@e {e}
-\def \sc@f {\ifm@gh \n@xp \a@F \else f\fi }
-\def \sc@g {\ifm@lay \n@xp \a@K \else g\fi }
-\def \sc@h {h}
-\def \sc@i {i}
-\def \sc@j {\ift@rk j\else G\fi }
-\def \sc@k {\ifs@nd \n@xp \a@ax \else
- \ifk@fs \n@xp \a@k \else k\fi\fi }
-\def \sc@l {l}
-\def \sc@m {m}
-\def \sc@n {n}
-\def \sc@o {o}
-\def \sc@p {\ifm@lay v\else p\fi }
-\def \sc@q {\ifm@gh \n@xp \a@Q \else q\fi }
-\def \sc@r {r}
-\def \sc@s {s}
-\def \sc@t {t}
-\def \sc@u {u}
-\def \sc@v {\ifm@gh \n@xp \a@V \else \ift@rk w\else
- \ifm@lay \n@xp \a@x \else v\fi\fi\fi }
-\def \sc@w {\ifu@gh \n@xp \a@X \else w\fi }
-\def \sc@x {X}
-\def \sc@y {y}
-\def \sc@z {z}
-\def \sc@A {A}
-\def \sc@B {B}
-\def \sc@C {@}
-\def \sc@D {@}
-\def \sc@E {E}
-\def \sc@F {@}
-\def \sc@G {\n@xp \a@g } % Pashto gaf with ring
-\def \sc@H {\n@xp \a@H } % Heh marbouta
-\def \sc@I {I}
-\def \sc@J {@}
-\def \sc@K {K}
-\def \sc@L {@}
-\def \sc@M {M}
-\def \sc@N {N}
-\def \sc@O {O}
-\def \sc@P {@}
-\def \sc@Q {@}
-\def \sc@R {@}
-\def \sc@S {\n@xp \a@S }
-\def \sc@T {T}
-\def \sc@U {U}
-\def \sc@V {v}
-\def \sc@W {W}
-\def \sc@X {@}
-\def \sc@Y {Y}
-\def \sc@Z {@}
-\a@digits = {0123456789}
-\a@paren = {()[]}
-\global\a@first = {.^_-'`~,|"=:\a@tok \lq \rq \cap \MIN \IN }
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \a@verb #1>\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\arab@codes % because of special characters
-
-\gdef \set@next #1{\def \next {#1}}
-
-\gdef \t@b@g #1{% start \ArabTeX scanner
- \def \next {\sc@word {#1}}\def \sc@char {@}%
-\ifcat a\nxp #1\else % letter
-\apply \set@next \tocase #1\of
-{ \@{\sc@endscan } % finished
- '{\t@rquote }
- `{\t@lquote }
-\default {\sc@word {#1}}
-}\endcase
-\fi \next }
-
-\gdef \t@w@rd #1{% transform input into internal notation
- \def \next {\sc@word }%
-\ifx #1\@\def \next {\sc@endscan }\else % finished
-\ifcat \nxp #1a%
- \ifx #1a\def \next {\t@aa }\else % test for aa -> A
- \ifx #1n\def \next {\t@nn }\else % test for ng, ny
- \edef \sc@char {\csname sc@#1\endcsname }% letter
- \ifx \sc@char \relax \def \sc@char {#1}% undef letter
- \fi
- \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
- \fi
- \fi\fi \else % other character
-\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
-\ifx #1'\def \next {\t@hamza }\else % hamza
- \def \sc@char {#1}%
-\apply \set@next \tocase #1\of
-{~\@ldtie{\t@tie }
- .{\t@dot }
- ,{\t@comma }
- -{\t@minus }
- `{\t@ain }
- "{\t@dquote }
- :={\t@colon }
- ^{\t@up }
- _{\t@down }
- |{\t@bar }
-\default {\t@w@@rd {#1}}
-}\endcase
-\fi\fi\fi\fi \next }
-
-\gdef \t@w@@rd #1{% default branch
-\ifcat \nxp #1\nxp ~\def \next {\t@cs #1}% % active character
-\else \def \sc@char {\nxp #1}% % other character
- \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}%
- \else \sc@put \def \next {\sc@word }%
- \fi
-\fi \next }
-
-} % \arab@codes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@char@next #1#2{\def \sc@char {#1}\def \next {#2}}
-
-\def \set@@c@n #1{\set@char@next #1}
-
-\def \t@cs #1{% control sequence within a word; push back
-\apply \set@@c@n \tocase #1\of
-{ \a@tok \MIN \IN \cap
- \shadda \madda \sukun
- \raphe \dagesh \mappiq \ldot \rdot \cdot
- {{#1} {\csname t@\xpa\@gobble\string #1\endcsname }}
- \maqqef {{B} {\sc@put \sc@word }}
- \, {{"|} {\sc@put \sc@word }}
- \lq {{`} {\sc@put \sc@word }}
- \c@p {{\nxp \cap } {\sc@put \sc@word }}
- \abbr {{'} {\sc@put \sc@word }}
- \rq {{'} {\sc@put \sc@back }}
-\default {{#1} {\sc@back #1}}%
-}\endcase \next }
-
-\def \tdef #1{% define robust ArabTeX scanner command
-\def #1{\nxp #1}%
-\xpa\def \csname t@\xpa\@gobble\string #1\endcsname }
-
-\tdef \a@tok (#1){% direct substitution
-\global \a@tokens \xpa {\the\a@tokens #1}\sc@word }
-
-\tdef \MIN {\def \sc@char {\nxp\a@ao \nxp\a@Zi }\sc@put \sc@word }
-
-\tdef \IN {\def \sc@char {\nxp\a@ai \nxp\a@Zi }\sc@put \sc@word }
-
-\tdef \shadda {\sc@dep {\nxp \a@Ze }}
-\tdef \madda {\sc@dep {\nxp \a@ZE }}
-\tdef \sukun {\sc@dep {\nxp \a@e }}
-\tdef \raphe {\sc@dep {\nxp \a@Zo }}
-\tdef \dagesh {\sc@dep {\nxp \a@Zu }}
-\tdef \mappiq {\sc@dep {\nxp \a@Zu }}
-\tdef \ldot {\sc@dep {\nxp \a@Za }}
-\tdef \rdot {\sc@dep {\nxp \a@Ze }}
-
-\def \t@cdot {\sc@dep {\nxp \a@Zi }}
-\def \t@cap #1{\sc@word \c@p #1} % kill braces on #1
-
-\def \sc@@back #1\@ \@@ {% end scanning, push back into input
-\global\def \a@rest {#1}\global\let \test@token \test@rest }
-
-\def \sc@@endscan \@@ {\global\let \a@scan \a@@scan }
-
-\def \sc@dep #1{% deposit tokens and proceed
-\def \sc@char {#1}\sc@put \sc@word }
-
-\def \sc@put {% deposit a symbol % no group!
-\edef \temp {\global \nxp \a@tokens % \temp
- {\the\a@tokens \sc@char }}\temp }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \t@rquote #1#2{% context '#1#2 , initial
-\ifh@mza \ifx #1\@ \def \sc@char {QQ}\sc@put % '>
- \def \next {\sc@endscan #2}\else
- \ifx #1'\ifx #2\@ \def \sc@char {'}\sc@put
- \def \next {\sc@word #2}% ''>
- \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}%
- \def \next {\sc@word '#2}% ''x
- \fi
- \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}%
- \def \next {\sc@word #1#2}% 'xy
- \fi\fi
-\else \ifu@gh \def \sc@char {QY}\sc@put
- \else \def \sc@char {Q}\sc@put
- \fi \def \next {\sc@word #1#2}%
-\fi \next }
-
-\def \t@hamza #1{% context \sc@char ' #1
-\ifh@mza % not verbatim mode
- \ifx #1'\let \next \t@hamza@ii \else
- \ifcat -\sc@char \def \sc@char {QQ}\sc@put
- \else \xpa\def \xpa\sc@char \xpa{\xpa Q\sc@char }\sc@put
- \fi \def \sc@char {Q}\def \next {\sc@word #1}%
- \fi
-\else % verbatim mode
- \ifx #1'\def \sc@char {'}\sc@put \let \next \sc@word
- \else \ifu@gh \def \sc@char {QY}\sc@put
- \else \def \sc@char {Q}\sc@put
- \fi \def \next {\sc@word #1}%
- \fi
-\fi \next }
-
-\def \t@hamza@ii #1#2{% context \sc@char '' #1 #2
-\ifcat \nxp #1a%
- \edef \sc@toks {\the\a@tokens Q\sc@char QQ}%
- \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}%
-\else
-\ifcat \nxp #2a%
- \edef \sc@toks {\the\a@tokens Q\sc@char QQ}%
- \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}%
-\else \def \sc@char {'}\sc@put % right quote
-\fi\fi \sc@word #1#2}
-
-\def \t@dquote #1{% verbatim
-\ifx #1'\ifh@mza \def \sc@char {"QQ}\sc@put
- \else \def \sc@char {"Q}\sc@put
- \fi \def \sc@char {Q}\let \next \sc@word
-\else \def \sc@char {"}\sc@put \def \next {\sc@word #1}%
-\fi \next }
-
-\def \t@ain {% ` = `ain
-\def \sc@char {P}\sc@put \sc@word }
-
-\def \t@lquote #1#2{% context `#1#2 at the beginning of a word
-\ifx #1`\def \sc@char {`}\sc@put \def \next {\sc@word #2}% ``x
-\else \def \sc@char {P}\sc@put \def \next {\sc@word #1#2}% `xy
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \t@aa #1{% aa -> A
-\edef \@tempa {\sc@char }%
-\xpa\ifx \@tempa Q\def \next {\sc@word #1}\def \sc@char {a}\else
-\ifx #1a\def \sc@char {A}\def \next {\sc@word }\else
- \edef \sc@char {\sc@a }\def \next {\sc@word #1}%
-\fi\fi \sc@put \next }
-
-\def \t@nn #1{% after n
- \def \sc@char {n}\def \next {\sc@word }%
-\ifm@lay \ifx #1g\def \sc@char {\nxp \a@p }\else
- \ifx #1y\def \sc@char {\nxp \a@am }\else
- \def \next {\sc@word #1}%
- \fi\fi
-\else \def \next {\sc@word #1}%
-\fi \sc@put \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \t@minus #1{% after -
-\ifx #1-\def \sc@char {B}\def \next {\sc@word }\else
- \def \sc@char {-}\def \next {\sc@word #1}%
-\fi \sc@put \next }
-
-\def \t@bar #1{% after |
-\ifx #1|\def \next {\sc@word \,}\else
- \def \sc@char {|}\sc@put \def \next {\sc@word #1}%
-\fi \next }
-
-\def \set@char #1{\def \sc@char {#1}}
-
-\def \t@tail #1#2{% default exit
-\ifx \sc@char \empty \set@char {#1}\def \next {\sc@put \sc@word #2}%
-\else \def \next {\edef \temp {\nxp \t@asp {\sc@char }}\temp }%
-\fi \next }
-
-\def \t@dot #1{% after .
-\apply \set@char \tocase #1\of
-{ a{\ifk@sh \nxp \a@Za \else \nxp \a@A \fi }
- b{\nxp \a@b }
- c{c}
- d{D}
- e{\nxp \a@I }
- f{\nxp \a@f }
- g{R}
- h{H}
- i{\nxp \a@e }
- k{\ift@rk q\else \nxp \a@k \fi }
- l{\nxp \a@l }
- n{\ifp@sht \nxp \a@m \else
- \ifs@nd \nxp \a@an \else \nxp \a@n \fi\fi }
- o{\ifk@sh \nxp \a@Zo \else \nxp \a@O \fi }
- p{\nxp \a@f }
- r{\ifs@nd \nxp \a@ar \else \nxp \a@R \fi }
- s{S}
- t{V}
- u{\ifk@sh \nxp \a@Zu \else \nxp \a@U \fi }
- v{\nxp \a@b }
- y{\nxp \a@ZI }
- z{Z}
- A{\nxp \a@ZA }
- O{\nxp \a@ZO }
- U{\nxp \a@ZU }
- Z{\nxp \a@Zz }
- T{Y}
-}\endcase \t@tail .#1}
-
-\def \t@comma #1{% after ,
-\apply \set@char \tocase #1\of
-{ a{a\nxp \a@H }
- A{\nxp \a@a \nxp \a@H }
- c{\ift@rk J\else \nxp \a@c \fi }
- d{\ifp@sht \nxp \a@aA \else
- \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi }
- e{e\nxp \a@H }
- g{\nxp \a@L }
- h{\nxp \a@h }
- n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi }
- r{\ifp@sht \nxp \a@q \else
- \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi }
- s{\ift@rk x\else \nxp \a@s \fi }
- t{\ifp@sht \nxp \a@v \else
- \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi }
- z{\ift@rk D\else \nxp \a@z \fi }
-}\endcase \t@tail ,#1}
-
-\def \t@up #1{% after ^
-\apply \set@char \tocase #1\of
-{ c{J}
- d{\nxp \a@D }
- e{\nxp \a@E }
- g{\ift@rk \nxp \a@p \else \ifk@rd R\else
- \ifu@gh R\else G\fi\fi\fi }
- l{\nxp \a@l }
- n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi }
- s{x}
- u{U}
- z{j}
-}\endcase \t@tail ^#1}
-
-\def \t@down #1{% after _
-\apply \set@char \tocase #1\of
-{ a{\nxp \a@a }
- A{Y}
- d{F}
- e{\nxp \a@E }
- h{X}
- i{\nxp \a@i }
- k{R}
- o{\nxp \a@o }
- O{\nxp \a@O }
- s{C}
- t{C}
- u{\nxp \a@u }
- U{\nxp \a@o }
- z{F}
-}\endcase \t@tail @#1}
-
-\gdef \t@colon #1{% after = or :
-\apply \set@char \tocase #1\of
-{ a{\ifu@gh \nxp \a@H \else \nxp \a@A \fi }
- b{\nxp \a@ab }
- d{\nxp \a@ae }
- e{\nxp \a@I }
- g{\nxp \a@ak }
- i{\nxp \a@I }
- j{\nxp \a@ah }
- I{\nxp \a@e }
- n{\nxp \a@al }
- o{\ifu@gh \nxp \a@W \else \nxp \a@O \fi }
- s{\nxp \a@aJ }
- O{\nxp \a@P }
- t{V}
- u{\ifu@gh \nxp \a@aw \else \nxp \a@U \fi }
- U{\nxp \a@w }
- z{D}
-}\endcase \t@tail :#1}
-
-\gdef \t@colon #1{% after = or :
-\apply \set@char \tocase #1\of
-{ a{\nxp \a@A }
- b{\nxp \a@ab }
- d{\nxp \a@ae }
- e{\nxp \a@I }
- g{\nxp \a@ak }
- i{\nxp \a@I }
- j{\nxp \a@ah }
- I{\nxp \a@e }
- n{\nxp \a@al }
- o{\nxp \a@O }
- s{\nxp \a@aJ }
- O{\nxp \a@P }
- t{V}
- u{\nxp \a@U }
- U{\nxp \a@w }
- z{D}
-}\endcase \t@tail :#1}
-
-\def \t@tie #1{% after ~
-\apply \set@char \tocase #1\of
-{ l{\nxp \a@l }
- g{\nxp \a@p }
- n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi }
-}\endcase \t@tail ^#1}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \t@asp #1#2{% test for hah
-\ifs@nd \ifx #2h\def \next {\t@@asp {#1}}%
- \else \def \next {\sc@put \sc@word #2}%
- \fi
-\else \def \next {\sc@put \sc@word #2}%
-\fi \next }
-
-\def \t@@asp #1{% test for aspiration
-\apply \set@char \tocase #1\of
-{ b{\nxp \a@ap }
- c{J}
- d{\nxp \a@ad }
- p{\nxp \a@aq }
- k{\ifs@nd \nxp \a@k \else X\fi }
- t{\nxp \a@ac }
- J{\nxp \a@aj }
- \a@D{\nxp \a@af }
- \a@at{\nxp \a@T }
- \a@ax{\nxp \a@k }
-}\endcase
-\ifx \empty \sc@char \def \sc@char {\nxp #1}\def \next {\sc@word h}%
-\else \def \next {\sc@word }%
-\fi \sc@put \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% preparations for additional scanners
-\def \setcode #1{% switch the input encoding
-\lowercase {\def \sc@code {#1}%
-\ifx \sc@code \sc@oldcode \else
-\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}%
-\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }%
-\let \sc@oldcode \sc@code }
-
-\pdef \stdcode #1{% prepare temp switch to standard
-\let \a@oldcode \sc@code \sc@standard \test@token #1 \@stdcode }
-
-\def \a@c@@stdcode {\xpa\setcode\xpa{\a@oldcode }}
-
-\all@w@ne \stdcode
-\xpa \all@w@ne \csname stdcode \endcsname
-
-\def \sc@table {% table of code names
-standard\sc@standard arabtex\sc@standard }
-
-\def \sc@restore {% restore scanner defaults
-\let \vocalize \v@calize \let \fullvocalize \fullv@calize
-\let \sc@beg \t@b@g \let \sc@word \t@w@rd
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\let \a@scan \a@@scan \seta@codes
-\let \arab@codes \a@arab@codes
-\let \unarab@codes \a@unarab@codes
-}
-
-\def \sc@standard {\sc@restore % standard encoding
-\ifx \sc@code \sc@oldcode \else
-\a@message {input encoding set to ArabTeX standard conventions.}\fi }
-
-\def \sc@default {\sc@restore % unknown encoding
-\a@message {unknown input encoding `\sc@code';
-ArabTeX standard encoding is assumed.}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for code `arabtex' installed.}
-\let \sc@oldcode \@ \setcode {standard} % default
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% ascan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ascan.sty
+% ArabTeX
+% Standard Scanner
+% 22.08.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {ascan.sty} {3.11 standard ZDMG input encoding } {22.08.2003}
+
+\chardef \testatcode = \catcode`\@ \catcode`\@ = 11
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \seta@codes {% define standard \ArabTeX input coding
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@@ {@} % illegal character
+\def \sc@a {a}
+\def \sc@b {b}
+\def \sc@c {\ift@rk G\else \ifs@nd J\else
+ \ifm@lay J\else c\fi\fi\fi }
+\def \sc@d {d}
+\def \sc@e {e}
+\def \sc@f {\ifm@gh \n@xp \a@F \else f\fi }
+\def \sc@g {\ifm@lay \n@xp \a@K \else g\fi }
+\def \sc@h {h}
+\def \sc@i {i}
+\def \sc@j {\ift@rk j\else G\fi }
+\def \sc@k {\ifs@nd \n@xp \a@ax \else
+ \ifk@fs \n@xp \a@k \else k\fi\fi }
+\def \sc@l {l}
+\def \sc@m {m}
+\def \sc@n {n}
+\def \sc@o {o}
+\def \sc@p {\ifm@lay v\else p\fi }
+\def \sc@q {\ifm@gh \n@xp \a@Q \else q\fi }
+\def \sc@r {r}
+\def \sc@s {s}
+\def \sc@t {t}
+\def \sc@u {u}
+\def \sc@v {\ifm@gh \n@xp \a@V \else \ift@rk w\else
+ \ifm@lay \n@xp \a@x \else v\fi\fi\fi }
+\def \sc@w {\ifu@gh \n@xp \a@X \else w\fi }
+\def \sc@x {X}
+\def \sc@y {y}
+\def \sc@z {z}
+\def \sc@A {A}
+\def \sc@B {B}
+\def \sc@C {@}
+\def \sc@D {@}
+\def \sc@E {E}
+\def \sc@F {@}
+\def \sc@G {\n@xp \a@g } % Pashto gaf with ring
+\def \sc@H {\n@xp \a@H } % Heh marbouta
+\def \sc@I {I}
+\def \sc@J {@}
+\def \sc@K {K}
+\def \sc@L {@}
+\def \sc@M {M}
+\def \sc@N {N}
+\def \sc@O {O}
+\def \sc@P {@}
+\def \sc@Q {@}
+\def \sc@R {@}
+\def \sc@S {\n@xp \a@S }
+\def \sc@T {T}
+\def \sc@U {U}
+\def \sc@V {v}
+\def \sc@W {W}
+\def \sc@X {@}
+\def \sc@Y {Y}
+\def \sc@Z {@}
+\a@digits = {0123456789}
+\a@paren = {()[]}
+\global\a@first = {.^_-'`~,|"=:\a@tok \lq \rq \cap \MIN \IN }
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \a@verb #1>\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\arab@codes % because of special characters
+
+\gdef \set@next #1{\def \next {#1}}
+
+\gdef \t@b@g #1{% start \ArabTeX scanner
+ \def \next {\sc@word {#1}}\def \sc@char {@}%
+\ifcat a\nxp #1\else % letter
+\apply \set@next \tocase #1\of
+{ \@{\sc@endscan } % finished
+ '{\t@rquote }
+ `{\t@lquote }
+\default {\sc@word {#1}}
+}\endcase
+\fi \next }
+
+\gdef \t@w@rd #1{% transform input into internal notation
+ \def \next {\sc@word }%
+\ifx #1\@\def \next {\sc@endscan }\else % finished
+\ifcat \nxp #1a%
+ \ifx #1a\def \next {\t@aa }\else % test for aa -> A
+ \ifx #1n\def \next {\t@nn }\else % test for ng, ny
+ \edef \sc@char {\csname sc@#1\endcsname }% letter
+ \ifx \sc@char \relax \def \sc@char {#1}% undef letter
+ \fi
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}\else \sc@put
+ \fi
+ \fi\fi \else % other character
+\ifcat \nxp #1\relax \def \next {\t@cs #1}\else % control sequence
+\ifx #1'\def \next {\t@hamza }\else % hamza
+ \def \sc@char {#1}%
+\apply \set@next \tocase #1\of
+{~\@ldtie{\t@tie }
+ .{\t@dot }
+ ,{\t@comma }
+ -{\t@minus }
+ `{\t@ain }
+ "{\t@dquote }
+ :={\t@colon }
+ ^{\t@up }
+ _{\t@down }
+ |{\t@bar }
+\default {\t@w@@rd {#1}}
+}\endcase
+\fi\fi\fi\fi \next }
+
+\gdef \t@w@@rd #1{% default branch
+\ifcat \nxp #1\nxp ~\def \next {\t@cs #1}% % active character
+\else \def \sc@char {\nxp #1}% % other character
+ \ifs@nd \edef \next {\nxp \t@asp {\sc@char }}%
+ \else \sc@put \def \next {\sc@word }%
+ \fi
+\fi \next }
+
+} % \arab@codes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@char@next #1#2{\def \sc@char {#1}\def \next {#2}}
+
+\def \set@@c@n #1{\set@char@next #1}
+
+\def \t@cs #1{% control sequence within a word; push back
+\apply \set@@c@n \tocase #1\of
+{ \a@tok \MIN \IN \cap
+ \shadda \madda \sukun
+ \raphe \dagesh \mappiq \ldot \rdot \cdot
+ {{#1} {\csname t@\xpa\@gobble\string #1\endcsname }}
+ \maqqef {{B} {\sc@put \sc@word }}
+ \, {{"|} {\sc@put \sc@word }}
+ \lq {{`} {\sc@put \sc@word }}
+ \c@p {{\nxp \cap } {\sc@put \sc@word }}
+ \abbr {{'} {\sc@put \sc@word }}
+ \rq {{'} {\sc@put \sc@back }}
+\default {{#1} {\sc@back #1}}%
+}\endcase \next }
+
+\def \tdef #1{% define robust ArabTeX scanner command
+\def #1{\nxp #1}%
+\xpa\def \csname t@\xpa\@gobble\string #1\endcsname }
+
+\tdef \a@tok (#1){% direct substitution
+\global \a@tokens \xpa {\the\a@tokens #1}\sc@word }
+
+\tdef \MIN {\def \sc@char {\nxp\a@ao \nxp\a@Zi }\sc@put \sc@word }
+
+\tdef \IN {\def \sc@char {\nxp\a@ai \nxp\a@Zi }\sc@put \sc@word }
+
+\tdef \shadda {\sc@dep {\nxp \a@Ze }}
+\tdef \madda {\sc@dep {\nxp \a@ZE }}
+\tdef \sukun {\sc@dep {\nxp \a@e }}
+\tdef \raphe {\sc@dep {\nxp \a@Zo }}
+\tdef \dagesh {\sc@dep {\nxp \a@Zu }}
+\tdef \mappiq {\sc@dep {\nxp \a@Zu }}
+\tdef \ldot {\sc@dep {\nxp \a@Za }}
+\tdef \rdot {\sc@dep {\nxp \a@Ze }}
+
+\def \t@cdot {\sc@dep {\nxp \a@Zi }}
+\def \t@cap #1{\sc@word \c@p #1} % kill braces on #1
+
+\def \sc@@back #1\@ \@@ {% end scanning, push back into input
+\global\def \a@rest {#1}\global\let \test@token \test@rest }
+
+\def \sc@@endscan \@@ {\global\let \a@scan \a@@scan }
+
+\def \sc@dep #1{% deposit tokens and proceed
+\def \sc@char {#1}\sc@put \sc@word }
+
+\def \sc@put {% deposit a symbol % no group!
+\edef \temp {\global \nxp \a@tokens % \temp
+ {\the\a@tokens \sc@char }}\temp }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \t@rquote #1#2{% context '#1#2 , initial
+\ifh@mza \ifx #1\@ \def \sc@char {QQ}\sc@put % '>
+ \def \next {\sc@endscan #2}\else
+ \ifx #1'\ifx #2\@ \def \sc@char {'}\sc@put
+ \def \next {\sc@word #2}% ''>
+ \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}%
+ \def \next {\sc@word '#2}% ''x
+ \fi
+ \else \def \sc@char {QQ}\sc@put \def \sc@char {Q}%
+ \def \next {\sc@word #1#2}% 'xy
+ \fi\fi
+\else \ifu@gh \def \sc@char {QY}\sc@put
+ \else \def \sc@char {Q}\sc@put
+ \fi \def \next {\sc@word #1#2}%
+\fi \next }
+
+\def \t@hamza #1{% context \sc@char ' #1
+\ifh@mza % not verbatim mode
+ \ifx #1'\let \next \t@hamza@ii \else
+ \ifcat -\sc@char \def \sc@char {QQ}\sc@put
+ \else \xpa\def \xpa\sc@char \xpa{\xpa Q\sc@char }\sc@put
+ \fi \def \sc@char {Q}\def \next {\sc@word #1}%
+ \fi
+\else % verbatim mode
+ \ifx #1'\def \sc@char {'}\sc@put \let \next \sc@word
+ \else \ifu@gh \def \sc@char {QY}\sc@put
+ \else \def \sc@char {Q}\sc@put
+ \fi \def \next {\sc@word #1}%
+ \fi
+\fi \next }
+
+\def \t@hamza@ii #1#2{% context \sc@char '' #1 #2
+\ifcat \nxp #1a%
+ \edef \sc@toks {\the\a@tokens Q\sc@char QQ}%
+ \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}%
+\else
+\ifcat \nxp #2a%
+ \edef \sc@toks {\the\a@tokens Q\sc@char QQ}%
+ \global \a@tokens =\xpa {\sc@toks }\def \sc@char {Q}%
+\else \def \sc@char {'}\sc@put % right quote
+\fi\fi \sc@word #1#2}
+
+\def \t@dquote #1{% verbatim
+\ifx #1'\ifh@mza \def \sc@char {"QQ}\sc@put
+ \else \def \sc@char {"Q}\sc@put
+ \fi \def \sc@char {Q}\let \next \sc@word
+\else \def \sc@char {"}\sc@put \def \next {\sc@word #1}%
+\fi \next }
+
+\def \t@ain {% ` = `ain
+\def \sc@char {P}\sc@put \sc@word }
+
+\def \t@lquote #1#2{% context `#1#2 at the beginning of a word
+\ifx #1`\def \sc@char {`}\sc@put \def \next {\sc@word #2}% ``x
+\else \def \sc@char {P}\sc@put \def \next {\sc@word #1#2}% `xy
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \t@aa #1{% aa -> A
+\edef \@tempa {\sc@char }%
+\xpa\ifx \@tempa Q\def \next {\sc@word #1}\def \sc@char {a}\else
+\ifx #1a\def \sc@char {A}\def \next {\sc@word }\else
+ \edef \sc@char {\sc@a }\def \next {\sc@word #1}%
+\fi\fi \sc@put \next }
+
+\def \t@nn #1{% after n
+ \def \sc@char {n}\def \next {\sc@word }%
+\ifm@lay \ifx #1g\def \sc@char {\nxp \a@p }\else
+ \ifx #1y\def \sc@char {\nxp \a@am }\else
+ \def \next {\sc@word #1}%
+ \fi\fi
+\else \def \next {\sc@word #1}%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \t@minus #1{% after -
+\ifx #1-\def \sc@char {B}\def \next {\sc@word }\else
+ \def \sc@char {-}\def \next {\sc@word #1}%
+\fi \sc@put \next }
+
+\def \t@bar #1{% after |
+\ifx #1|\def \next {\sc@word \,}\else
+ \def \sc@char {|}\sc@put \def \next {\sc@word #1}%
+\fi \next }
+
+\def \set@char #1{\def \sc@char {#1}}
+
+\def \t@tail #1#2{% default exit
+\ifx \sc@char \empty \set@char {#1}\def \next {\sc@put \sc@word #2}%
+\else \def \next {\edef \temp {\nxp \t@asp {\sc@char }}\temp }%
+\fi \next }
+
+\def \t@dot #1{% after .
+\apply \set@char \tocase #1\of
+{ a{\ifk@sh \nxp \a@Za \else \nxp \a@A \fi }
+ b{\nxp \a@b }
+ c{c}
+ d{D}
+ e{\nxp \a@I }
+ f{\nxp \a@f }
+ g{R}
+ h{H}
+ i{\nxp \a@e }
+ k{\ift@rk q\else \nxp \a@k \fi }
+ l{\nxp \a@l }
+ n{\ifp@sht \nxp \a@m \else
+ \ifs@nd \nxp \a@an \else \nxp \a@n \fi\fi }
+ o{\ifk@sh \nxp \a@Zo \else \nxp \a@O \fi }
+ p{\nxp \a@f }
+ r{\ifs@nd \nxp \a@ar \else \nxp \a@R \fi }
+ s{S}
+ t{V}
+ u{\ifk@sh \nxp \a@Zu \else \nxp \a@U \fi }
+ v{\nxp \a@b }
+ y{\nxp \a@ZI }
+ z{Z}
+ A{\nxp \a@ZA }
+ O{\nxp \a@ZO }
+ U{\nxp \a@ZU }
+ Z{\nxp \a@Zz }
+ T{Y}
+}\endcase \t@tail .#1}
+
+\def \t@comma #1{% after ,
+\apply \set@char \tocase #1\of
+{ a{a\nxp \a@H }
+ A{\nxp \a@a \nxp \a@H }
+ c{\ift@rk J\else \nxp \a@c \fi }
+ d{\ifp@sht \nxp \a@aA \else
+ \ifs@nd \nxp \a@D \else \nxp \a@d \fi\fi }
+ e{e\nxp \a@H }
+ g{\nxp \a@L }
+ h{\nxp \a@h }
+ n{\ifs@nd \nxp \a@an \else \nxp \a@M \fi }
+ r{\ifp@sht \nxp \a@q \else
+ \ifs@nd \nxp \a@ar \else \nxp \a@r \fi\fi }
+ s{\ift@rk x\else \nxp \a@s \fi }
+ t{\ifp@sht \nxp \a@v \else
+ \ifs@nd \nxp \a@at \else \nxp \a@t \fi\fi }
+ z{\ift@rk D\else \nxp \a@z \fi }
+}\endcase \t@tail ,#1}
+
+\def \t@up #1{% after ^
+\apply \set@char \tocase #1\of
+{ c{J}
+ d{\nxp \a@D }
+ e{\nxp \a@E }
+ g{\ift@rk \nxp \a@p \else \ifk@rd R\else
+ \ifu@gh R\else G\fi\fi\fi }
+ l{\nxp \a@l }
+ n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi }
+ s{x}
+ u{U}
+ z{j}
+}\endcase \t@tail ^#1}
+
+\def \t@down #1{% after _
+\apply \set@char \tocase #1\of
+{ a{\nxp \a@a }
+ A{Y}
+ d{F}
+ e{\nxp \a@E }
+ h{X}
+ i{\nxp \a@i }
+ k{R}
+ o{\nxp \a@o }
+ O{\nxp \a@O }
+ s{C}
+ t{C}
+ u{\nxp \a@u }
+ U{\nxp \a@o }
+ z{F}
+}\endcase \t@tail @#1}
+
+\gdef \t@colon #1{% after = or :
+\apply \set@char \tocase #1\of
+{ a{\ifu@gh \nxp \a@H \else \nxp \a@A \fi }
+ b{\nxp \a@ab }
+ d{\nxp \a@ae }
+ e{\nxp \a@I }
+ g{\nxp \a@ak }
+ i{\nxp \a@I }
+ j{\nxp \a@ah }
+ I{\nxp \a@e }
+ n{\nxp \a@al }
+ o{\ifu@gh \nxp \a@W \else \nxp \a@O \fi }
+ s{\nxp \a@aJ }
+ O{\nxp \a@P }
+ t{V}
+ u{\ifu@gh \nxp \a@aw \else \nxp \a@U \fi }
+ U{\nxp \a@w }
+ z{D}
+}\endcase \t@tail :#1}
+
+\gdef \t@colon #1{% after = or :
+\apply \set@char \tocase #1\of
+{ a{\nxp \a@A }
+ b{\nxp \a@ab }
+ d{\nxp \a@ae }
+ e{\nxp \a@I }
+ g{\nxp \a@ak }
+ i{\nxp \a@I }
+ j{\nxp \a@ah }
+ I{\nxp \a@e }
+ n{\nxp \a@al }
+ o{\nxp \a@O }
+ s{\nxp \a@aJ }
+ O{\nxp \a@P }
+ t{V}
+ u{\nxp \a@U }
+ U{\nxp \a@w }
+ z{D}
+}\endcase \t@tail :#1}
+
+\def \t@tie #1{% after ~
+\apply \set@char \tocase #1\of
+{ l{\nxp \a@l }
+ g{\nxp \a@p }
+ n{\ifs@nd \nxp \a@ag \else \ifm@lay M\else K\fi\fi }
+}\endcase \t@tail ^#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \t@asp #1#2{% test for hah
+\ifs@nd \ifx #2h\def \next {\t@@asp {#1}}%
+ \else \def \next {\sc@put \sc@word #2}%
+ \fi
+\else \def \next {\sc@put \sc@word #2}%
+\fi \next }
+
+\def \t@@asp #1{% test for aspiration
+\apply \set@char \tocase #1\of
+{ b{\nxp \a@ap }
+ c{J}
+ d{\nxp \a@ad }
+ p{\nxp \a@aq }
+ k{\ifs@nd \nxp \a@k \else X\fi }
+ t{\nxp \a@ac }
+ J{\nxp \a@aj }
+ \a@D{\nxp \a@af }
+ \a@at{\nxp \a@T }
+ \a@ax{\nxp \a@k }
+}\endcase
+\ifx \empty \sc@char \def \sc@char {\nxp #1}\def \next {\sc@word h}%
+\else \def \next {\sc@word }%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% preparations for additional scanners
+\def \setcode #1{% switch the input encoding
+\lowercase {\def \sc@code {#1}%
+\ifx \sc@code \sc@oldcode \else
+\begingroup \def \sc@lookup ##1#1##2##3\@@ {\endgroup ##2}%
+\xpa \sc@lookup \sc@table #1\sc@default \@@ \fi }%
+\let \sc@oldcode \sc@code }
+
+\pdef \stdcode #1{% prepare temp switch to standard
+\let \a@oldcode \sc@code \sc@standard \test@token #1 \@stdcode }
+
+\def \a@c@@stdcode {\xpa\setcode\xpa{\a@oldcode }}
+
+\all@w@ne \stdcode
+\xpa \all@w@ne \csname stdcode \endcsname
+
+\def \sc@table {% table of code names
+standard\sc@standard arabtex\sc@standard }
+
+\def \sc@restore {% restore scanner defaults
+\let \vocalize \v@calize \let \fullvocalize \fullv@calize
+\let \sc@beg \t@b@g \let \sc@word \t@w@rd
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\let \a@scan \a@@scan \seta@codes
+\let \arab@codes \a@arab@codes
+\let \unarab@codes \a@unarab@codes
+}
+
+\def \sc@standard {\sc@restore % standard encoding
+\ifx \sc@code \sc@oldcode \else
+\a@message {input encoding set to ArabTeX standard conventions.}\fi }
+
+\def \sc@default {\sc@restore % unknown encoding
+\a@message {unknown input encoding `\sc@code';
+ArabTeX standard encoding is assumed.}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for code `arabtex' installed.}
+\let \sc@oldcode \@ \setcode {standard} % default
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/asect.sty b/language/arabic/arabtex/texinput/asect.sty
index 92fb08cd4a..15bf952e69 100644
--- a/language/arabic/arabtex/texinput/asect.sty
+++ b/language/arabic/arabtex/texinput/asect.sty
@@ -1,390 +1,390 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% asect.sty
-% called by altxext.sty
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {asect.sty} {3.11 section macros for Arabic} {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% sections
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\iffalse % LaTeX 2.09 routines
-
-\def\@xsect#1{\@tempskipa #1\relax
-\ifdim \@tempskipa > \z@
- \par \nobreak
- \vskip\@tempskipa
- \@afterheading
-\else \global\@nobreakfalse \global\@noskipsectrue
- \everypar
- {\if@noskipsec \global\@noskipsecfalse
- \clubpenalty\@M \hskip -\parindent
- \begingroup \@svsechd
- \endgroup
- \unskip \hskip -#1\relax % relax added 14 Jan 91
- \else \clubpenalty \@clubpenalty
- \everypar {}%
- \fi}
-\fi \ignorespaces }
-
-\def\@sect#1#2#3#4#5#6[#7]#8{%
-\ifnum #2 > \c@secnumdepth \let\@svsec \@empty
-\else \refstepcounter{#1}%
- \edef\@svsec {\csname the#1\endcsname \hskip 1em}%
-\fi
-\@tempskipa #5\relax
-\ifdim \@tempskipa>\z@
- \begingroup #6\relax
- \@hangfrom {\hskip #3\relax \@svsec }%
- {\interlinepenalty \@M #8\par}%
- \endgroup
- \csname #1mark\endcsname {#7}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2>\c@secnumdepth
- \else \protect\numberline {\csname the#1\endcsname}%
- \fi #7}%
-\else \def\@svsechd
- {#6\hskip #3\relax %% \relax added 2 May 90
- \@svsec #8\csname #1mark\endcsname {#7}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2>\c@secnumdepth
- \else \protect\numberline {\csname the#1\endcsname}%
- \fi #7}}%
-\fi \@xsect{#5}}
-
-\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
-\ifdim \@tempskipa > \z@
- \begingroup #4%
- \@hangfrom {\hskip #1}%
- {\interlinepenalty \@M #5\par}%
- \endgroup
-\else \def\@svsechd {#4\hskip #1\relax #5}%
-\fi \@xsect{#3}}
-
-\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
-\par \@tempskipa #4\relax
-\@afterindenttrue
-\ifdim \@tempskipa < \z@
- \@tempskipa -\@tempskipa \@afterindentfalse
-\fi
-\if@nobreak \everypar{}%
-\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}%
-\fi
-\@ifstar {\@ssect{#3}{#4}{#5}{#6}}%
- {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
-
-\def\@afterheading{\global\@nobreaktrue
-\everypar {\if@nobreak \global\@nobreakfalse \clubpenalty \@M
- \if@afterindent \else {\setbox\z@\lastbox}\fi
- \else \clubpenalty \@clubpenalty \everypar{}%
- \fi}}
-
-\fi % end of LaTeX 2.09 routines
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Arabic versions
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@startsection #1#2#3#4#5#6{% Arabic mode
-%\tracingmacros 1
-\if@noskipsec \leavea@vmode \fi
-\a@@par \@tempskipa #4\relax \@afterindenttrue
-\ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse
-\fi
-\if@nobreak \a@@everypar {}%
-\else \addpenalty \@secpenalty \addvspace \@tempskipa
-\fi
-\@ifstar {\a@ssect {#3}{#4}{#5}{#6}}%
- {\@dblarg {\a@sect {#1}{#2}{#3}{#4}{#5}{#6}}}}
-
-\def \a@ssect #1#2#3#4#5{% Arabic mode
-\@tempskipa #3\relax
-\ifdim \@tempskipa > \z@
- \begingroup \let \end \a@@par
- #4\relax \set@arabfont % style
- \a@hangfrom {\hskip #1\relax }% indentation
- \test@token #5 \end
- \endgroup
-\else \def \@svsechd {\putwordb@x {#4\xpa\RL \xpa{#5}\hskip #1\relax }}%
-\fi \a@xsect{#3}}
-
-\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode
-\ifnum #2 > \c@secnumdepth \let \@svsec \@empty
-\else \refstepcounter{#1}%
- \edef \@svsec {\hskip 1em \nxp\RL {\csname the#1\endcsname }}%
-\fi
-\@tempskipa #5\relax
-\ifdim \@tempskipa > \z@
- \begingroup \let \end \a@@par
- #6\relax \set@arabfont % style
- \a@hangfrom {\hskip #3\relax \@svsec }% section number
- \test@token #8 \end
- \endgroup
- \csname #1mark\endcsname {\RL {#7}}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2 > \c@secnumdepth \else
- \protect\numberline {\csname the#1\endcsname }\fi
- \protect\RL {#7}}%
-\else \def \@svsechd % saved head, executed by \everypar
- {\putwordb@x {#6\xpa\RL {#8}\@svsec \hskip #3\relax }%
- \csname #1mark\endcsname {\RL {#7}}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2>\c@secnumdepth \else
- \protect\numberline {\csname the#1\endcsname}\fi
- \protect\RL {#7}}}% \@svsechd
-\fi \a@xsect {#5}}
-
-\def\a@xsect #1{% Arabic mode
-\@tempskipa #1\relax
-\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa
- \a@afterheading
-\else \global\@nobreakfalse \global\@noskipsectrue
-\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M
- \putwordb@x {\hskip -\a@parindent }\@svsechd
- \putwordb@x {\hskip -#1\relax }%
- \else \clubpenalty \@clubpenalty \a@@everypar {}%
- \fi}
-\fi \a@spacefalse
-%\tracingmacros 0
-\test@token }
-
-\def \a@afterheading {% Arabic mode
-\global\@nobreaktrue
-\a@@everypar {% when entering Arabic horizontal mode
- \if@nobreak \global\@nobreakfalse \clubpenalty \@M
- \if@afterindent \else \putwordb@x {\hskip -\a@parindent }%
- \fi
- \else \clubpenalty \@clubpenalty \a@@everypar{}%
- \fi}}
-
-\def \a@hangfrom #1{% hanging indentation for rest of paragraph (group)
-\setbox0 \hbox {#1}\@tempdima \wd0
-\advance \leftskip \@tempdima \advance \a@limit -\@tempdima
-\putlineb@x {\rlap {\unhbox0 }}\a@spacefalse }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% for table of contents
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\iffalse % LaTeX 2.09 routines
-
-\def\contentsline#1{\csname l@#1\endcsname}
-
-% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} :
-% Macro to produce a table of contents line with the following
-% parameters:
-% LEVEL : If LEVEL > \c@tocdepth, then no line produced.
-% INDENT : Total indentation from the left margin.
-% NUMWIDTH : Width of box for number if the TITLE has a
-% \numberline command.
-% As of 25 Jan 88, this is also the amount of extra indentation
-% added to second and later lines of a multiple line entry.
-% TITLE : Contents of entry.
-% PAGE : Page number.
-%
-% Uses the following parameters, which must be set by the document style.
-% They should be defined with \def's.
-% \@pnumwidth : Width of box in which page number is set.
-% \@tocrmarg : Right margin indentation for all but last line of
-% multiple-line entries.
-% \@dotsep : Separation between dots, in mu units. Should be \def'd to
-% a number like 2 or 1.7
-%
-
-%% RmS 91/09/29: added \reset@font for page number
-\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
- \vskip \z@ plus.2\p@
- {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
- \parindent #2\relax\@afterindenttrue
- \interlinepenalty\@M
- \leavevmode
- \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
- #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
- mu$}\hfill \nobreak
- \hbox to\@pnumwidth{\hfil\reset@font\rm #5}\par}\fi}
-
-
-%%% Note: \nobreak's added 7 Jan 86 to prevent bad line break that
-%%% left the page number dangling by itself at left edge of a new line.
-%%%
-%%% Changed 25 Jan 88 to use \leftskip instead of \hangindent so
-%%% leaders of multiple-line contents entries would line up properly.
-
-% \numberline{NUMBER} : For use in a \contentsline command.
-% It puts NUMBER flushleft in a box of width \@tempdima
-% (Before 25 Jan 88 change, it also added \@tempdima to the hanging
-% indentation.)
-
-\def\numberline#1{\hbox to\@tempdima{#1\hfil}}
-
-\fi % end of LaTeX 2.09 routines
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Arabic versions of toc auxiliary routines
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@starttoc #1{\endarabtext
-\the\arabtext@hook \@starttoc {#1}\arabtext }
-
-\def \a@t@ble #1#2{% \tableofcontents etc.
-\a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
-
-\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
-
-\def \a@@lsection #1#2#3{% common part for \part and \section
- \begin{arabtext}
-% \tocp@rs {\z@ }{\@tempdima }#3 #1 {\hfill \thep@geno {#2}}
- \tocp@rs {\z@ }{\@tempdima }#3 #1 {#3\hfill \thep@geno {#2}}
- \end{arabtext}}
-
-\def \a@dottedtocline #1#2#3#4#5{% for Arabic mode
-\ifnum #1>\c@tocdepth
-\else \vskip \z@ plus.2\p@
- \begin{arabtext}
- \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
- \end{arabtext}
-\fi }
-
-\def \a@c@tocp@rs #1#2{% change toc parameters
-\advance \leftskip #1\relax \advance \a@limit -#1\relax
-\advance \leftskip #2\relax \advance \a@limit -#2\relax
-\advance \rightskip \@tocrmarg \advance \a@limit -\@tocrmarg
-\@tempdima #2\relax % for \numberline, width of number
-\parfillskip \z@ \test@token }
-
-\def \a@c@le@ders {% for toc
-\setbox \wordb@x \hbox to \z@ {\leaders \hbox
-{$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill }%
-\put@word \test@token }
-
-\def \a@c@thep@geno #1{% pagenumber of width \@pnumwidth
-\dimen@ \@pnumwidth \advance \dimen@ -\rightskip
-\a@c@spreadbox {\dimen@ }{\hss #1 \hspace {-\rightskip }}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\iffalse
-\def \a@numberline #1#2{% for arabic mode
-#2\hbox to\@tempdima {\hfil \<#1>}}
-
-\def \a@numberline #1\a@RL #2{% for arabic mode
-\RL {\spreadbox \@tempdima {#1 \hfill }#2}}
-\fi
-
-\def \a@c@numberline #1{% external Arabic command
-\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\at@arabtext {% modify LaTeX for Arabic mode
- \let \numberline \a@numberline
- \let \@dottedtocline \a@dottedtocline
-\if@twocolumn
- \def\@pnumwidth{1.0em}
- \def\@tocrmarg {1em}
-\fi
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@c@addcontentsline #1#2#3{% Arabic version
-\addcontentsline {#1}{#2}{\LR{#3}}\arab@tail }
-
-\let \a@c@abstract \a@c@quotation
-\let \endabstract \endquotation
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\iffalse % LaTeX 2.09 routines
-
-\def\@starttoc#1{\begingroup
- \makeatletter
- \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname
- \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
- \fi \global\@nobreakfalse \endgroup}
-
-\fi % end of LaTeX 2.09 routines
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode
-\ifnum #2 > \c@secnumdepth \let \@svsec \@empty
-\else \refstepcounter{#1}%
- \edef \@svsec
- {\nxp\RL {\nxp\stdcode {\csname the#1\endcsname }\hskip 1em}}%
-\fi
-\@tempskipa #5\relax
-\ifdim \@tempskipa > \z@
- \begingroup \let \end \a@@par
- #6\relax \set@arabfont % style
- \a@hangfrom {\hskip #3\relax \@svsec }% section number
- \test@token #8 \end
- \endgroup
- \csname #1mark\endcsname {\RL {#7}}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2 > \c@secnumdepth \else \protect\numberline
- {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi
- \protect\RL {#7}}%
-\else \def \@svsechd {% saved head, executed by \everypar
- #6\relax \set@arabfont % style
- \let \a@@end \end \def \end {\let \end \a@@end }%
- \test@token \@svsec % saved section number
- \hskip #3\relax #8 \end
- \csname #1mark\endcsname {\RL {#7}}%
- \addcontentsline {toc}{#1}%
- {\ifnum #2>\c@secnumdepth \else \protect\numberline
- {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi
- \protect\RL {#7}}}% \@svsechd
-\fi \a@xsect {#5}}
-
-\allowarab \@svsec
-
-\def\a@xsect #1{% Arabic mode
-\@tempskipa #1\relax
-\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa
- \a@afterheading
-\else \global\@nobreakfalse \global\@noskipsectrue
-\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M
- \putwordb@x {\hskip -\a@parindent }\@svsechd
- \putwordb@x {\hskip -#1\relax }%
- \else \clubpenalty \@clubpenalty \a@@everypar {}%
- \fi}
-\fi \a@spacefalse \test@token }
-
-\def \a@c@numberline #1{% external Arabic command
-\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }}
-
-\def \a@@lsection #1#2#3{% Text, Pageno, Font
-% common part for \part and \section
- \begin{arabtext}
- #3\tocp@rs {\z@ }{\@tempdima }#1 \hfill \thep@geno {#2}
- \end{arabtext}}
-
-\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno
-% for Arabic mode
-\ifnum #1>\c@tocdepth
-\else \vskip \z@ plus.2\p@
- \begin{arabtext}
- \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
- \end{arabtext}
-\fi }
-
-\def \a@c@tocp@rs #1#2{% Indent, Numwidth
-% change toc parameters
-\leftskip #1\relax \advance \leftskip #2\relax
-\advance \rightskip \@tocrmarg
-\@tempdima #2\relax % for \numberline, width of number
-\a@parindent \z@ \parfillskip \z@ \test@token }
-
-\at@arabtext {% modify LaTeX for Arabic mode
- \let \numberline \a@numberline
- \let \@dottedtocline \a@dottedtocline
-}
-
-\c@secnumdepth \c@tocdepth % for test TOC
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asect.sty
+% called by altxext.sty
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {asect.sty} {3.11 section macros for Arabic} {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% sections
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse % LaTeX 2.09 routines
+
+\def\@xsect#1{\@tempskipa #1\relax
+\ifdim \@tempskipa > \z@
+ \par \nobreak
+ \vskip\@tempskipa
+ \@afterheading
+\else \global\@nobreakfalse \global\@noskipsectrue
+ \everypar
+ {\if@noskipsec \global\@noskipsecfalse
+ \clubpenalty\@M \hskip -\parindent
+ \begingroup \@svsechd
+ \endgroup
+ \unskip \hskip -#1\relax % relax added 14 Jan 91
+ \else \clubpenalty \@clubpenalty
+ \everypar {}%
+ \fi}
+\fi \ignorespaces }
+
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+\ifnum #2 > \c@secnumdepth \let\@svsec \@empty
+\else \refstepcounter{#1}%
+ \edef\@svsec {\csname the#1\endcsname \hskip 1em}%
+\fi
+\@tempskipa #5\relax
+\ifdim \@tempskipa>\z@
+ \begingroup #6\relax
+ \@hangfrom {\hskip #3\relax \@svsec }%
+ {\interlinepenalty \@M #8\par}%
+ \endgroup
+ \csname #1mark\endcsname {#7}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2>\c@secnumdepth
+ \else \protect\numberline {\csname the#1\endcsname}%
+ \fi #7}%
+\else \def\@svsechd
+ {#6\hskip #3\relax %% \relax added 2 May 90
+ \@svsec #8\csname #1mark\endcsname {#7}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2>\c@secnumdepth
+ \else \protect\numberline {\csname the#1\endcsname}%
+ \fi #7}}%
+\fi \@xsect{#5}}
+
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
+\ifdim \@tempskipa > \z@
+ \begingroup #4%
+ \@hangfrom {\hskip #1}%
+ {\interlinepenalty \@M #5\par}%
+ \endgroup
+\else \def\@svsechd {#4\hskip #1\relax #5}%
+\fi \@xsect{#3}}
+
+\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi
+\par \@tempskipa #4\relax
+\@afterindenttrue
+\ifdim \@tempskipa < \z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+\fi
+\if@nobreak \everypar{}%
+\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}%
+\fi
+\@ifstar {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\def\@afterheading{\global\@nobreaktrue
+\everypar {\if@nobreak \global\@nobreakfalse \clubpenalty \@M
+ \if@afterindent \else {\setbox\z@\lastbox}\fi
+ \else \clubpenalty \@clubpenalty \everypar{}%
+ \fi}}
+
+\fi % end of LaTeX 2.09 routines
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Arabic versions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@startsection #1#2#3#4#5#6{% Arabic mode
+%\tracingmacros 1
+\if@noskipsec \leavea@vmode \fi
+\a@@par \@tempskipa #4\relax \@afterindenttrue
+\ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse
+\fi
+\if@nobreak \a@@everypar {}%
+\else \addpenalty \@secpenalty \addvspace \@tempskipa
+\fi
+\@ifstar {\a@ssect {#3}{#4}{#5}{#6}}%
+ {\@dblarg {\a@sect {#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\def \a@ssect #1#2#3#4#5{% Arabic mode
+\@tempskipa #3\relax
+\ifdim \@tempskipa > \z@
+ \begingroup \let \end \a@@par
+ #4\relax \set@arabfont % style
+ \a@hangfrom {\hskip #1\relax }% indentation
+ \test@token #5 \end
+ \endgroup
+\else \def \@svsechd {\putwordb@x {#4\xpa\RL \xpa{#5}\hskip #1\relax }}%
+\fi \a@xsect{#3}}
+
+\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode
+\ifnum #2 > \c@secnumdepth \let \@svsec \@empty
+\else \refstepcounter{#1}%
+ \edef \@svsec {\hskip 1em \nxp\RL {\csname the#1\endcsname }}%
+\fi
+\@tempskipa #5\relax
+\ifdim \@tempskipa > \z@
+ \begingroup \let \end \a@@par
+ #6\relax \set@arabfont % style
+ \a@hangfrom {\hskip #3\relax \@svsec }% section number
+ \test@token #8 \end
+ \endgroup
+ \csname #1mark\endcsname {\RL {#7}}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2 > \c@secnumdepth \else
+ \protect\numberline {\csname the#1\endcsname }\fi
+ \protect\RL {#7}}%
+\else \def \@svsechd % saved head, executed by \everypar
+ {\putwordb@x {#6\xpa\RL {#8}\@svsec \hskip #3\relax }%
+ \csname #1mark\endcsname {\RL {#7}}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2>\c@secnumdepth \else
+ \protect\numberline {\csname the#1\endcsname}\fi
+ \protect\RL {#7}}}% \@svsechd
+\fi \a@xsect {#5}}
+
+\def\a@xsect #1{% Arabic mode
+\@tempskipa #1\relax
+\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa
+ \a@afterheading
+\else \global\@nobreakfalse \global\@noskipsectrue
+\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M
+ \putwordb@x {\hskip -\a@parindent }\@svsechd
+ \putwordb@x {\hskip -#1\relax }%
+ \else \clubpenalty \@clubpenalty \a@@everypar {}%
+ \fi}
+\fi \a@spacefalse
+%\tracingmacros 0
+\test@token }
+
+\def \a@afterheading {% Arabic mode
+\global\@nobreaktrue
+\a@@everypar {% when entering Arabic horizontal mode
+ \if@nobreak \global\@nobreakfalse \clubpenalty \@M
+ \if@afterindent \else \putwordb@x {\hskip -\a@parindent }%
+ \fi
+ \else \clubpenalty \@clubpenalty \a@@everypar{}%
+ \fi}}
+
+\def \a@hangfrom #1{% hanging indentation for rest of paragraph (group)
+\setbox0 \hbox {#1}\@tempdima \wd0
+\advance \leftskip \@tempdima \advance \a@limit -\@tempdima
+\putlineb@x {\rlap {\unhbox0 }}\a@spacefalse }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% for table of contents
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse % LaTeX 2.09 routines
+
+\def\contentsline#1{\csname l@#1\endcsname}
+
+% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} :
+% Macro to produce a table of contents line with the following
+% parameters:
+% LEVEL : If LEVEL > \c@tocdepth, then no line produced.
+% INDENT : Total indentation from the left margin.
+% NUMWIDTH : Width of box for number if the TITLE has a
+% \numberline command.
+% As of 25 Jan 88, this is also the amount of extra indentation
+% added to second and later lines of a multiple line entry.
+% TITLE : Contents of entry.
+% PAGE : Page number.
+%
+% Uses the following parameters, which must be set by the document style.
+% They should be defined with \def's.
+% \@pnumwidth : Width of box in which page number is set.
+% \@tocrmarg : Right margin indentation for all but last line of
+% multiple-line entries.
+% \@dotsep : Separation between dots, in mu units. Should be \def'd to
+% a number like 2 or 1.7
+%
+
+%% RmS 91/09/29: added \reset@font for page number
+\def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else
+ \vskip \z@ plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip
+ #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep
+ mu$}\hfill \nobreak
+ \hbox to\@pnumwidth{\hfil\reset@font\rm #5}\par}\fi}
+
+
+%%% Note: \nobreak's added 7 Jan 86 to prevent bad line break that
+%%% left the page number dangling by itself at left edge of a new line.
+%%%
+%%% Changed 25 Jan 88 to use \leftskip instead of \hangindent so
+%%% leaders of multiple-line contents entries would line up properly.
+
+% \numberline{NUMBER} : For use in a \contentsline command.
+% It puts NUMBER flushleft in a box of width \@tempdima
+% (Before 25 Jan 88 change, it also added \@tempdima to the hanging
+% indentation.)
+
+\def\numberline#1{\hbox to\@tempdima{#1\hfil}}
+
+\fi % end of LaTeX 2.09 routines
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Arabic versions of toc auxiliary routines
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@starttoc #1{\endarabtext
+\the\arabtext@hook \@starttoc {#1}\arabtext }
+
+\def \a@t@ble #1#2{% \tableofcontents etc.
+\a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}}
+
+\def \a@c@@mkboth #1#2{\@mkboth {\RL{#1}}{\RL{#2}}\test@token }
+
+\def \a@@lsection #1#2#3{% common part for \part and \section
+ \begin{arabtext}
+% \tocp@rs {\z@ }{\@tempdima }#3 #1 {\hfill \thep@geno {#2}}
+ \tocp@rs {\z@ }{\@tempdima }#3 #1 {#3\hfill \thep@geno {#2}}
+ \end{arabtext}}
+
+\def \a@dottedtocline #1#2#3#4#5{% for Arabic mode
+\ifnum #1>\c@tocdepth
+\else \vskip \z@ plus.2\p@
+ \begin{arabtext}
+ \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
+ \end{arabtext}
+\fi }
+
+\def \a@c@tocp@rs #1#2{% change toc parameters
+\advance \leftskip #1\relax \advance \a@limit -#1\relax
+\advance \leftskip #2\relax \advance \a@limit -#2\relax
+\advance \rightskip \@tocrmarg \advance \a@limit -\@tocrmarg
+\@tempdima #2\relax % for \numberline, width of number
+\parfillskip \z@ \test@token }
+
+\def \a@c@le@ders {% for toc
+\setbox \wordb@x \hbox to \z@ {\leaders \hbox
+{$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill }%
+\put@word \test@token }
+
+\def \a@c@thep@geno #1{% pagenumber of width \@pnumwidth
+\dimen@ \@pnumwidth \advance \dimen@ -\rightskip
+\a@c@spreadbox {\dimen@ }{\hss #1 \hspace {-\rightskip }}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iffalse
+\def \a@numberline #1#2{% for arabic mode
+#2\hbox to\@tempdima {\hfil \<#1>}}
+
+\def \a@numberline #1\a@RL #2{% for arabic mode
+\RL {\spreadbox \@tempdima {#1 \hfill }#2}}
+\fi
+
+\def \a@c@numberline #1{% external Arabic command
+\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\at@arabtext {% modify LaTeX for Arabic mode
+ \let \numberline \a@numberline
+ \let \@dottedtocline \a@dottedtocline
+\if@twocolumn
+ \def\@pnumwidth{1.0em}
+ \def\@tocrmarg {1em}
+\fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@c@addcontentsline #1#2#3{% Arabic version
+\addcontentsline {#1}{#2}{\LR{#3}}\arab@tail }
+
+\let \a@c@abstract \a@c@quotation
+\let \endabstract \endquotation
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse % LaTeX 2.09 routines
+
+\def\@starttoc#1{\begingroup
+ \makeatletter
+ \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi \global\@nobreakfalse \endgroup}
+
+\fi % end of LaTeX 2.09 routines
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode
+\ifnum #2 > \c@secnumdepth \let \@svsec \@empty
+\else \refstepcounter{#1}%
+ \edef \@svsec
+ {\nxp\RL {\nxp\stdcode {\csname the#1\endcsname }\hskip 1em}}%
+\fi
+\@tempskipa #5\relax
+\ifdim \@tempskipa > \z@
+ \begingroup \let \end \a@@par
+ #6\relax \set@arabfont % style
+ \a@hangfrom {\hskip #3\relax \@svsec }% section number
+ \test@token #8 \end
+ \endgroup
+ \csname #1mark\endcsname {\RL {#7}}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2 > \c@secnumdepth \else \protect\numberline
+ {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi
+ \protect\RL {#7}}%
+\else \def \@svsechd {% saved head, executed by \everypar
+ #6\relax \set@arabfont % style
+ \let \a@@end \end \def \end {\let \end \a@@end }%
+ \test@token \@svsec % saved section number
+ \hskip #3\relax #8 \end
+ \csname #1mark\endcsname {\RL {#7}}%
+ \addcontentsline {toc}{#1}%
+ {\ifnum #2>\c@secnumdepth \else \protect\numberline
+ {\protect\RL{\protect\stdcode{\csname the#1\endcsname }}}\fi
+ \protect\RL {#7}}}% \@svsechd
+\fi \a@xsect {#5}}
+
+\allowarab \@svsec
+
+\def\a@xsect #1{% Arabic mode
+\@tempskipa #1\relax
+\ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa
+ \a@afterheading
+\else \global\@nobreakfalse \global\@noskipsectrue
+\a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M
+ \putwordb@x {\hskip -\a@parindent }\@svsechd
+ \putwordb@x {\hskip -#1\relax }%
+ \else \clubpenalty \@clubpenalty \a@@everypar {}%
+ \fi}
+\fi \a@spacefalse \test@token }
+
+\def \a@c@numberline #1{% external Arabic command
+\a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }}
+
+\def \a@@lsection #1#2#3{% Text, Pageno, Font
+% common part for \part and \section
+ \begin{arabtext}
+ #3\tocp@rs {\z@ }{\@tempdima }#1 \hfill \thep@geno {#2}
+ \end{arabtext}}
+
+\def \a@dottedtocline #1#2#3#4#5{% Level, Indent, Numwidth, Text, Pageno
+% for Arabic mode
+\ifnum #1>\c@tocdepth
+\else \vskip \z@ plus.2\p@
+ \begin{arabtext}
+ \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}}
+ \end{arabtext}
+\fi }
+
+\def \a@c@tocp@rs #1#2{% Indent, Numwidth
+% change toc parameters
+\leftskip #1\relax \advance \leftskip #2\relax
+\advance \rightskip \@tocrmarg
+\@tempdima #2\relax % for \numberline, width of number
+\a@parindent \z@ \parfillskip \z@ \test@token }
+
+\at@arabtext {% modify LaTeX for Arabic mode
+ \let \numberline \a@numberline
+ \let \@dottedtocline \a@dottedtocline
+}
+
+\c@secnumdepth \c@tocdepth % for test TOC
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/asize10.clo b/language/arabic/arabtex/texinput/asize10.clo
index 60d66fdc74..bc7bd58b47 100644
--- a/language/arabic/arabtex/texinput/asize10.clo
+++ b/language/arabic/arabtex/texinput/asize10.clo
@@ -1,40 +1,40 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This is ASIZE10.CLO in text format
-% size dependent corrections for arabart.cls and size10.clo
-% for use with ArabTeX Version 3.04
-% 29.11.1995
-%
-% Copyright (C) 1995 by Klaus Lagally
-%
-% reusing art12.sty of 14 Jan 1992
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ProvidesFile {asize10.clo}[1995/11/29 v1.00 10pt parameters for arabart]
-
-% ****************************************
-% * PAGE LAYOUT *
-% ****************************************
-
-\columnsep 20pt
-\columnseprule .4pt
-\headheight 18pt
-
-% ****************************************
-% * LISTS *
-% ****************************************
-
-% presently not changed
-
-\iffalse
-\leftmargini 2.5em
-\leftmarginii 2.2em % > \labelsep + width of '(m)'
-\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
-\leftmarginiv 1.7em % > \labelsep + width of 'M.'
-\leftmarginv 1em
-\leftmarginvi 1em
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is ASIZE10.CLO in text format
+% size dependent corrections for arabart.cls and size10.clo
+% for use with ArabTeX Version 3.04
+% 29.11.1995
+%
+% Copyright (C) 1995 by Klaus Lagally
+%
+% reusing art12.sty of 14 Jan 1992
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesFile {asize10.clo}[1995/11/29 v1.00 10pt parameters for arabart]
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+
+\columnsep 20pt
+\columnseprule .4pt
+\headheight 18pt
+
+% ****************************************
+% * LISTS *
+% ****************************************
+
+% presently not changed
+
+\iffalse
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/asize11.clo b/language/arabic/arabtex/texinput/asize11.clo
index ae88f77e47..ccb865e309 100644
--- a/language/arabic/arabtex/texinput/asize11.clo
+++ b/language/arabic/arabtex/texinput/asize11.clo
@@ -1,40 +1,40 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This is ASIZE11.CLO in text format
-% size dependent corrections for arabart.cls and size11.clo
-% for use with ArabTeX Version 3.04
-% 29.11.1995
-%
-% Copyright (C) 1995 by Klaus Lagally
-%
-% reusing art12.sty of 14 Jan 1992
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ProvidesFile {asize11.clo}[1995/11/29 v1.00 11pt parameters for arabart]
-
-% ****************************************
-% * PAGE LAYOUT *
-% ****************************************
-
-\columnsep 20pt
-\columnseprule .4pt
-\headheight 18pt
-
-% ****************************************
-% * LISTS *
-% ****************************************
-
-% presently not changed
-
-\iffalse
-\leftmargini 2.5em
-\leftmarginii 2.2em % > \labelsep + width of '(m)'
-\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
-\leftmarginiv 1.7em % > \labelsep + width of 'M.'
-\leftmarginv 1em
-\leftmarginvi 1em
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is ASIZE11.CLO in text format
+% size dependent corrections for arabart.cls and size11.clo
+% for use with ArabTeX Version 3.04
+% 29.11.1995
+%
+% Copyright (C) 1995 by Klaus Lagally
+%
+% reusing art12.sty of 14 Jan 1992
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesFile {asize11.clo}[1995/11/29 v1.00 11pt parameters for arabart]
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+
+\columnsep 20pt
+\columnseprule .4pt
+\headheight 18pt
+
+% ****************************************
+% * LISTS *
+% ****************************************
+
+% presently not changed
+
+\iffalse
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/asize12.clo b/language/arabic/arabtex/texinput/asize12.clo
index 7290057ddb..c5687134e6 100644
--- a/language/arabic/arabtex/texinput/asize12.clo
+++ b/language/arabic/arabtex/texinput/asize12.clo
@@ -1,40 +1,40 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This is ASIZE12.CLO in text format
-% size dependent corrections for arabart.cls and size12.clo
-% for use with ArabTeX Version 3.04
-% 29.11.1995
-%
-% Copyright (C) 1995 by Klaus Lagally
-%
-% reusing art12.sty of 14 Jan 1992
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ProvidesFile {asize12.clo}[1995/11/29 v1.00 12pt parameters for arabart]
-
-% ****************************************
-% * PAGE LAYOUT *
-% ****************************************
-
-\columnsep 20pt
-\columnseprule .4pt
-\headheight 18pt
-
-% ****************************************
-% * LISTS *
-% ****************************************
-
-% presently not changed
-
-\iffalse
-\leftmargini 2.5em
-\leftmarginii 2.2em % > \labelsep + width of '(m)'
-\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
-\leftmarginiv 1.7em % > \labelsep + width of 'M.'
-\leftmarginv 1em
-\leftmarginvi 1em
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is ASIZE12.CLO in text format
+% size dependent corrections for arabart.cls and size12.clo
+% for use with ArabTeX Version 3.04
+% 29.11.1995
+%
+% Copyright (C) 1995 by Klaus Lagally
+%
+% reusing art12.sty of 14 Jan 1992
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesFile {asize12.clo}[1995/11/29 v1.00 12pt parameters for arabart]
+
+% ****************************************
+% * PAGE LAYOUT *
+% ****************************************
+
+\columnsep 20pt
+\columnseprule .4pt
+\headheight 18pt
+
+% ****************************************
+% * LISTS *
+% ****************************************
+
+% presently not changed
+
+\iffalse
+\leftmargini 2.5em
+\leftmarginii 2.2em % > \labelsep + width of '(m)'
+\leftmarginiii 1.87em % > \labelsep + width of 'vii.'
+\leftmarginiv 1.7em % > \labelsep + width of 'M.'
+\leftmarginv 1em
+\leftmarginvi 1em
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/asmo449.sty b/language/arabic/arabtex/texinput/asmo449.sty
index 7672e9c1c1..da79c8dd7a 100644
--- a/language/arabic/arabtex/texinput/asmo449.sty
+++ b/language/arabic/arabtex/texinput/asmo449.sty
@@ -1,122 +1,122 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% asmo449.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% asmo449.sty
-% Scanner for ASMO 449 Code (ISO 9036) (table driven)
-% to install it, include it as a LaTeX package or style option "asmo449"
-% with Plain TeX, say "\input asmo449.sty"
-% to activate it, say "\setcode {asmo449}" or "\setcode {iso9036}"
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \asmoatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \asmoatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {asmo449.sty} {3.11 ASMO449 input encoding (table)} {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setasmo@codes {% activate and change some codes
-\a@digits = {0123456789}%
-\a@paren = {"'([}%
-\a@first = {}%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \asmo@tbli {% ASMO re-encoding table
-\\AQ|\\BQA\\CQa\\DQw\\EQi\\FQy\\GA\\Hb\\IT%
-\\Jt\\KC\\LG\\MH\\NX\\Od\\PF\\Qr\\Rz%
-\\Ss\\Tx\\US\\VD\\WV\\XZ\\YP\\ZR%
-\\af\\bq\\ck\\dl\\em\\fn\\gh\\hw\\iY%
-\\jy\\k"aN\\l"uN\\m"iN\\n"a\\o"u\\p"i\\q@\\r""%
-\\s@\\t@\\u@\\v@\\w@\\x@\\y@\\z@\\`B\\@@}
-
-\def \asmo@tblii {% shadda + harakaat
-\\q\\sk\\tl\\um\\vn\\wo\\xp}
-
-\def \asmo@tbliii {% medial special characters
-\\\@\sc@endscan\\-\asmo@minus\\"\asmo@rquote}
-
-\def \asmo@tbliv {% initial special characters
-\\\@\sc@endscan\\G\asmo@alif\\"\asmo@lquote\\'\asmo@lquote}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifa@quote
-
-\def \asmo@beg #1#2{% start ASMO 449 scanner
- \h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
- \@ssimfalse
- \def \next {\asmo@word #1#2}%
- \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars
- \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi % not found; else
- \def \next {##2#2}}%
-\iftrue \xpa \l@@kup \asmo@tbliv \\#1*\\\@@ \else
-\ifx #1/\global \a@tokens ={#1}\def \next {\asmo@word #2}% /x
-\fi\fi \next }
-
-{\catcode `\^ 7 \catcode `\^^M=13
-\gdef \asmo@word #1#2{% transform input into internal notation
- \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars
- \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi %
- \def \next {##2#2}}%
-\iftrue \xpa \l@@kup \asmo@tbliii \\#1*\\\@@ \else %
-\ifx #1/\def \next {\sc@back #1#2}\else %
-\if \nxp ^^M\nxp #1\def \next {\asmo@par #2}\else %
-\ifx #1#2\def \next {\asmo@word #1-#2}\else %
- \def \l@@kup ##1\\#1##2\\##3\@@ {% reencode char
- \def \sc@char {##2}}%
- \xpa \l@@kup \asmo@tbli \\#1\nxp #1\\\@@ % reencode
- \sc@put %
- \def \l@@kup ##1\\#2##2\\##3\@@ {% look for shadda variants
- \ifx *##2\relax\def \next {\asmo@word #2}%
- \else \def \next {\asmo@word #1##2}\fi }%
- \xpa \l@@kup \asmo@tblii \\#2*\\\@@ % double 1st char
-\fi\fi\fi\fi \next }%
-} % catcode 13
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \asmo@alif {% alif at the beginning of a word
-\def \sc@char {a}\sc@put \asmo@word }
-
-\def \asmo@minus {% hyphen between words
-\def \sc@char {-}\sc@put \asmo@beg }
-
-\def \asmo@lquote {% left quote
-\ifa@quote \def \sc@char {'}\global\a@quotefalse
-\else \def \sc@char {`}\global\a@quotetrue
-\fi
-\sc@put \asmo@beg }
-
-\def \asmo@rquote {% right quote
-\global\a@quotefalse
-\def \sc@char {'}\sc@put \asmo@word }
-
-\def \asmo@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\#1\@ \@@ }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@asmo {% select the ASMO 449 scanner
-\let \sc@beg \asmo@beg \let \sc@word \asmo@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\global\let \a@scan \a@@scan \setasmo@codes \a@quotefalse
-\a@message {input encoding set to ASMO 449 (ISO 9036) conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding
-asmo449\set@asmo iso9036\set@asmo }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for code ASMO 449 (ISO 9036) installed.}
-
-\catcode `\@ = \asmoatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% asmo449.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asmo449.sty
+% Scanner for ASMO 449 Code (ISO 9036) (table driven)
+% to install it, include it as a LaTeX package or style option "asmo449"
+% with Plain TeX, say "\input asmo449.sty"
+% to activate it, say "\setcode {asmo449}" or "\setcode {iso9036}"
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \asmoatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \asmoatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {asmo449.sty} {3.11 ASMO449 input encoding (table)} {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setasmo@codes {% activate and change some codes
+\a@digits = {0123456789}%
+\a@paren = {"'([}%
+\a@first = {}%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \asmo@tbli {% ASMO re-encoding table
+\\AQ|\\BQA\\CQa\\DQw\\EQi\\FQy\\GA\\Hb\\IT%
+\\Jt\\KC\\LG\\MH\\NX\\Od\\PF\\Qr\\Rz%
+\\Ss\\Tx\\US\\VD\\WV\\XZ\\YP\\ZR%
+\\af\\bq\\ck\\dl\\em\\fn\\gh\\hw\\iY%
+\\jy\\k"aN\\l"uN\\m"iN\\n"a\\o"u\\p"i\\q@\\r""%
+\\s@\\t@\\u@\\v@\\w@\\x@\\y@\\z@\\`B\\@@}
+
+\def \asmo@tblii {% shadda + harakaat
+\\q\\sk\\tl\\um\\vn\\wo\\xp}
+
+\def \asmo@tbliii {% medial special characters
+\\\@\sc@endscan\\-\asmo@minus\\"\asmo@rquote}
+
+\def \asmo@tbliv {% initial special characters
+\\\@\sc@endscan\\G\asmo@alif\\"\asmo@lquote\\'\asmo@lquote}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifa@quote
+
+\def \asmo@beg #1#2{% start ASMO 449 scanner
+ \h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
+ \@ssimfalse
+ \def \next {\asmo@word #1#2}%
+ \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars
+ \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi % not found; else
+ \def \next {##2#2}}%
+\iftrue \xpa \l@@kup \asmo@tbliv \\#1*\\\@@ \else
+\ifx #1/\global \a@tokens ={#1}\def \next {\asmo@word #2}% /x
+\fi\fi \next }
+
+{\catcode `\^ 7 \catcode `\^^M=13
+\gdef \asmo@word #1#2{% transform input into internal notation
+ \def \l@@kup ##1\\#1##2\\##3\@@ {% look for special chars
+ \ifx *##2\relax\xpa\xpa\xpa\iffalse\fi\fi %
+ \def \next {##2#2}}%
+\iftrue \xpa \l@@kup \asmo@tbliii \\#1*\\\@@ \else %
+\ifx #1/\def \next {\sc@back #1#2}\else %
+\if \nxp ^^M\nxp #1\def \next {\asmo@par #2}\else %
+\ifx #1#2\def \next {\asmo@word #1-#2}\else %
+ \def \l@@kup ##1\\#1##2\\##3\@@ {% reencode char
+ \def \sc@char {##2}}%
+ \xpa \l@@kup \asmo@tbli \\#1\nxp #1\\\@@ % reencode
+ \sc@put %
+ \def \l@@kup ##1\\#2##2\\##3\@@ {% look for shadda variants
+ \ifx *##2\relax\def \next {\asmo@word #2}%
+ \else \def \next {\asmo@word #1##2}\fi }%
+ \xpa \l@@kup \asmo@tblii \\#2*\\\@@ % double 1st char
+\fi\fi\fi\fi \next }%
+} % catcode 13
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \asmo@alif {% alif at the beginning of a word
+\def \sc@char {a}\sc@put \asmo@word }
+
+\def \asmo@minus {% hyphen between words
+\def \sc@char {-}\sc@put \asmo@beg }
+
+\def \asmo@lquote {% left quote
+\ifa@quote \def \sc@char {'}\global\a@quotefalse
+\else \def \sc@char {`}\global\a@quotetrue
+\fi
+\sc@put \asmo@beg }
+
+\def \asmo@rquote {% right quote
+\global\a@quotefalse
+\def \sc@char {'}\sc@put \asmo@word }
+
+\def \asmo@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\#1\@ \@@ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@asmo {% select the ASMO 449 scanner
+\let \sc@beg \asmo@beg \let \sc@word \asmo@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\global\let \a@scan \a@@scan \setasmo@codes \a@quotefalse
+\a@message {input encoding set to ASMO 449 (ISO 9036) conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding
+asmo449\set@asmo iso9036\set@asmo }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for code ASMO 449 (ISO 9036) installed.}
+
+\catcode `\@ = \asmoatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/atabg.sty b/language/arabic/arabtex/texinput/atabg.sty
index b2bd9f1b8c..06bdc3488e 100644
--- a/language/arabic/arabtex/texinput/atabg.sty
+++ b/language/arabic/arabtex/texinput/atabg.sty
@@ -1,129 +1,129 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% atabg.sty
-% called by altxext.sty
-% 21.01.1997
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {atabg.sty} {3.05 LaTeX tabbing macros for Arabic} {21.01.1997}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@tabdef #1{\xpa\def \csname a@c@\string #1\endcsname }
-
-\def \a@c@tabbing {% tabbing in Arabic mode
-\a@tabdef >{\a@rtab \test@token }
-\a@tabdef ={\a@settab \test@token }
-\a@tabdef <{\@ltab \test@token }
-\a@tabdef +{\@tabplus \test@token }
-\a@tabdef -{\@tabminus \test@token }
-\a@tabdef `{\a@tabrj \test@token }
-\a@tabdef '{\a@tablab \test@token }
-\def \a@last@line {\let \next \a@tabcr }
-\let \endtabbing \a@endtabbing
-\a@@par \lineskip \z@skip
-\@hightab \@firsttab \global\@nxttabmar \@firsttab
-\dimen\@firsttab \@totalleftmargin \global\@tabpush \z@
-\global\@rjfieldfalse
-\trivlist \item\relax
-\if@minipage \else \vskip\parskip \fi
-\setbox\@tabfbox \hbox
- {\rlap {\indent \hskip\@totalleftmargin \the\everypar }}%
-\def \@itemfudge {\box\@tabfbox }%
-\a@startline \test@token }
-
-\def \a@endtabbing {% end of Arabic tabbing environment
-\a@stopline \aftergroup \a@spacefalse
-\ifnum\@tabpush >\z@ \@badpoptabs \fi
-\endtrivlist }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@startline{% open new tabbing line
-\ifnum \@nxttabmar >\@hightab \@badtab \global\@nxttabmar \@hightab \fi
-\global\@curtabmar \@nxttabmar \global\@curtab \@curtabmar
-\global\setbox\@curline \hbox {}\a@startfield }
-
-\def \a@stopline {% deposit tabbing line
-\a@stopfield \a@spacefalse
-\if@rjfield \global\@rjfieldfalse
- \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
- \putwordb@x {\hb@xt@ \@tempdima
- {\box\@curfield \hfil \box\@curline
- \hskip\dimen\@curtabmar \@itemfudge }}%
-\else \a@addfield \putwordb@x {\hbox
- {\box\@curline \hskip\dimen\@curtabmar \@itemfudge }}%
-\fi \short@line }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@startfield {% new tabbing field
-\initlineb@x \putwordb@x {\color@endgroup }}
-
-\def \a@stopfield {% end of tabbing field
-\global\setbox\@curfield \hbox {\color@begingroup \unhbox\lineb@x }}
-
-\def \a@contfield {% continue tabbing field
-\setbox\lineb@x \box\@curfield
-\a@spacefalse \putwordb@x {\color@endgroup }}
-
-\def \a@addfield {% add field to current line
-\ifdim \wd\@curfield = \z@ \else
-\global\setbox\@curline \hbox
- {\arab@space \unhbox\@curfield \unhbox\@curline }\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@tabcr {\a@stopline \@ifstar{\penalty \@M \a@xtabcr }\a@xtabcr }
-\def \a@xtabcr {\@ifnextchar[\a@itabcr {\a@startline \test@token }}
-\def \a@itabcr [#1]{\vskip #1\a@startline \test@token }
-
-\def \a@c@kill {\a@stopfield \a@startline \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@rtab {% \> skip right
-\a@stopfield \a@addfield
-\ifnum \@curtab<\@hightab \global\advance\@curtab \@ne
-\else\@badtab\fi
-\@tempdima \dimen\@curtab
-\advance\@tempdima -\dimen\@curtabmar
-\advance\@tempdima -\wd\@curline
-\global\setbox\@curline \hbox {\hskip\@tempdima \unhbox\@curline }%
-\a@startfield }
-
-\def \a@settab {% \= set tab
-\a@stopfield \a@addfield
-\ifnum \@curtab <\@maxtab
- \ifnum\@curtab =\@hightab \advance\@hightab \@ne \fi
- \global\advance\@curtab \@ne
-\else \@latex@error{Tab overflow}\@ehd \fi
-\dimen\@curtab \dimen\@curtabmar \advance\dimen\@curtab \wd\@curline
-\a@startfield }
-
-\def \a@tabrj {% \` field at right margin
-\a@stopfield \a@addfield \global\@rjfieldtrue \a@startfield }
-
-\def \a@tablab {% \' field right adjusted to last tab
-\a@stopfield \dimen@ \wd\@curfield
-\global\setbox\@curline \hbox {\hskip\tabbingsep \box\@curfield
- \hskip-\dimen@ \hskip-\tabbingsep \box\@curline }%
-\a@startfield }
-
-\def \a@c@pushtabs {% new level of tabs
-\a@stopfield \a@addfield \global\advance\@tabpush \@ne
-\begingroup \a@contfield \test@token }
-
-\def \a@c@poptabs {% return to previous level
-\a@stopfield \a@addfield
-\ifnum \@tabpush >\z@ \endgroup \global\advance\@tabpush \m@ne
- \ifnum \@curtab >\@hightab \global\@curtab \@hightab \@badtab \fi
-\else \@badpoptabs \fi
-\a@contfield \test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atabg.sty
+% called by altxext.sty
+% 21.01.1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {atabg.sty} {3.05 LaTeX tabbing macros for Arabic} {21.01.1997}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@tabdef #1{\xpa\def \csname a@c@\string #1\endcsname }
+
+\def \a@c@tabbing {% tabbing in Arabic mode
+\a@tabdef >{\a@rtab \test@token }
+\a@tabdef ={\a@settab \test@token }
+\a@tabdef <{\@ltab \test@token }
+\a@tabdef +{\@tabplus \test@token }
+\a@tabdef -{\@tabminus \test@token }
+\a@tabdef `{\a@tabrj \test@token }
+\a@tabdef '{\a@tablab \test@token }
+\def \a@last@line {\let \next \a@tabcr }
+\let \endtabbing \a@endtabbing
+\a@@par \lineskip \z@skip
+\@hightab \@firsttab \global\@nxttabmar \@firsttab
+\dimen\@firsttab \@totalleftmargin \global\@tabpush \z@
+\global\@rjfieldfalse
+\trivlist \item\relax
+\if@minipage \else \vskip\parskip \fi
+\setbox\@tabfbox \hbox
+ {\rlap {\indent \hskip\@totalleftmargin \the\everypar }}%
+\def \@itemfudge {\box\@tabfbox }%
+\a@startline \test@token }
+
+\def \a@endtabbing {% end of Arabic tabbing environment
+\a@stopline \aftergroup \a@spacefalse
+\ifnum\@tabpush >\z@ \@badpoptabs \fi
+\endtrivlist }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@startline{% open new tabbing line
+\ifnum \@nxttabmar >\@hightab \@badtab \global\@nxttabmar \@hightab \fi
+\global\@curtabmar \@nxttabmar \global\@curtab \@curtabmar
+\global\setbox\@curline \hbox {}\a@startfield }
+
+\def \a@stopline {% deposit tabbing line
+\a@stopfield \a@spacefalse
+\if@rjfield \global\@rjfieldfalse
+ \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
+ \putwordb@x {\hb@xt@ \@tempdima
+ {\box\@curfield \hfil \box\@curline
+ \hskip\dimen\@curtabmar \@itemfudge }}%
+\else \a@addfield \putwordb@x {\hbox
+ {\box\@curline \hskip\dimen\@curtabmar \@itemfudge }}%
+\fi \short@line }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@startfield {% new tabbing field
+\initlineb@x \putwordb@x {\color@endgroup }}
+
+\def \a@stopfield {% end of tabbing field
+\global\setbox\@curfield \hbox {\color@begingroup \unhbox\lineb@x }}
+
+\def \a@contfield {% continue tabbing field
+\setbox\lineb@x \box\@curfield
+\a@spacefalse \putwordb@x {\color@endgroup }}
+
+\def \a@addfield {% add field to current line
+\ifdim \wd\@curfield = \z@ \else
+\global\setbox\@curline \hbox
+ {\arab@space \unhbox\@curfield \unhbox\@curline }\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@tabcr {\a@stopline \@ifstar{\penalty \@M \a@xtabcr }\a@xtabcr }
+\def \a@xtabcr {\@ifnextchar[\a@itabcr {\a@startline \test@token }}
+\def \a@itabcr [#1]{\vskip #1\a@startline \test@token }
+
+\def \a@c@kill {\a@stopfield \a@startline \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@rtab {% \> skip right
+\a@stopfield \a@addfield
+\ifnum \@curtab<\@hightab \global\advance\@curtab \@ne
+\else\@badtab\fi
+\@tempdima \dimen\@curtab
+\advance\@tempdima -\dimen\@curtabmar
+\advance\@tempdima -\wd\@curline
+\global\setbox\@curline \hbox {\hskip\@tempdima \unhbox\@curline }%
+\a@startfield }
+
+\def \a@settab {% \= set tab
+\a@stopfield \a@addfield
+\ifnum \@curtab <\@maxtab
+ \ifnum\@curtab =\@hightab \advance\@hightab \@ne \fi
+ \global\advance\@curtab \@ne
+\else \@latex@error{Tab overflow}\@ehd \fi
+\dimen\@curtab \dimen\@curtabmar \advance\dimen\@curtab \wd\@curline
+\a@startfield }
+
+\def \a@tabrj {% \` field at right margin
+\a@stopfield \a@addfield \global\@rjfieldtrue \a@startfield }
+
+\def \a@tablab {% \' field right adjusted to last tab
+\a@stopfield \dimen@ \wd\@curfield
+\global\setbox\@curline \hbox {\hskip\tabbingsep \box\@curfield
+ \hskip-\dimen@ \hskip-\tabbingsep \box\@curline }%
+\a@startfield }
+
+\def \a@c@pushtabs {% new level of tabs
+\a@stopfield \a@addfield \global\advance\@tabpush \@ne
+\begingroup \a@contfield \test@token }
+
+\def \a@c@poptabs {% return to previous level
+\a@stopfield \a@addfield
+\ifnum \@tabpush >\z@ \endgroup \global\advance\@tabpush \m@ne
+ \ifnum \@curtab >\@hightab \global\@curtab \@hightab \@badtab \fi
+\else \@badpoptabs \fi
+\a@contfield \test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/atrans.sty b/language/arabic/arabtex/texinput/atrans.sty
index 4dc5fabc71..fe9b31baa7 100644
--- a/language/arabic/arabtex/texinput/atrans.sty
+++ b/language/arabic/arabtex/texinput/atrans.sty
@@ -1,432 +1,432 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% atrans.sty
-% transcription module for ArabTeX
-% ZDMG Transcription
-% Encyclopedia of Islam Transcription
-% Modern Turkish Transcription
-% Urdu Transcription
-% Uighuric Transcription
-% 14.06.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Additional Transcription Modes for Farsi:
-% Encyclopedia Iranica [Standard Farsi]
-% Farsi [Modified Encyclopedia Iranica]
-% Lazard [Philological: Gilbert Lazard, etc.]
-% (c) Adrian Rezus [adriaan@{sci,cs}.kun.nl]: Nijmegen, Nederland
-% 21.12.95
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \transatcode \undefined
-\chardef \transatcode = \catcode`\@ \catcode`\@ = 11
-\a@ident {atrans.sty} {3.11 generate the transliteration } {14.06.2003}
-\else \xpa \endinput
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \a@hyp \- \let \a@macron \=
-\let \a@acute \' \let \a@grave \`
-
-\gdef \a@trans #1>{% transcribe word
-\iftest@trans \tracingmacros=1
-\iftest@scan \else \a@verb (#1)>\fi\fi
-{\if@was \@vocaltrue \else \@vocalfalse \fi
-\let \- \a@hyp \let \= \a@macron
-\let \' \a@acute \let \` \a@grave \def \tr@act {-}%
-\tr@aword #1|||>>%
-\if@vocal \global \@wastrue \else \global \@wasfalse \fi }%
-\iftest@trans \tracingmacros=0 \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \if@vocal \newif \ifc@p
-
-\gdef \tr@@aword #1{% transcribe rest of word
-\let \tr@old \tr@act \def \tr@act {#1}%
-\case #1\of
-{ >{\@gobble }
- \cap {\c@ptrue \tr@aword }
-% |"^\a@e{\tr@aword }
- |"^{\tr@aword }
- -{-\tr@aword }
- XlEeQ{\csname tr@@\string #1\endcsname }
- \a@a NUW{\setc@p #1\kill@alif }
- P{\tr@P \tr@aword }
- aiu{\tr@wasla #1}
- \a@Ze{\xpa\tr@aword \tr@old }
-\default {\@vocalfalse
- \ifcat \nxp #1-#1\else \setc@p #1%
- \fi \tr@aword }
-}\endcase }
-
-\def \setc@p #1{% capitalize if needed
-\xpa\ifx \xpa\relax \csname tr@\string #1\endcsname \tr@@ \else
-\ifc@p \xxxpa\uppercase \xxpa{\csname tr@\string #1\endcsname }\c@pfalse
-\else \csname tr@\string #1\endcsname
-\fi\fi }
-
-\def \@gobble #1{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \kill@alif #1{% delete alif or waw after N, U, W, _a
-\case #1\of
-{ aAIYU{\tr@aword }
-\default {\tr@aword #1}
-}\endcase }
-
-\gdef \tr@wasla #1{% initial vowel, Arabic
-\ifiz@fet \@vocalfalse \fi
-\ifu@gh \@vocalfalse \fi
-\ifh@mza \if@vocal '\else \setc@p #1\fi
-\else \setc@p #1\fi
-\@vocaltrue \tr@aword }
-
-\gdef \tr@vowel #1{% vowel
-\setc@p #1\@vocaltrue \tr@aword }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \sp@cw@w #1#2{% handle w after _h (Persian) specially
-\def \next {\tr@aword #2}\@vocalfalse
-\ifiz@fet \ifx #2w#1\let\next\tr@aword
-\fi\fi \next }
-
-\gdef \putw@w {\sp@cw@w w } % w after _h (Persian): normal
-
-\gdef \killw@w {\sp@cw@w {}} % w after _h (Persian): delete
-
-\gdef \superv@w {\sp@cw@w {$^v\!$}}% w after _h (Persian): super v
-
-\gdef \superw@w {\sp@cw@w {$^w\!$}}% w after _h (Persian): super w
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \tr@@l #1{% test assimilation after l
-\ifx #1-\def \next {\tr@@la }\else
- \setc@p l\def \next {\tr@aword #1}%
-\fi \@vocalfalse \next }
-
-\gdef \tr@@la #1#2{% test assimilation after l-
-\case #1\of
-{ Q{\setc@p l-\tr@Q \tr@aword } % l - Q x -> l - '
- #2{\tr@aword #1-#2} % l - x x -> x - x
- \cap {\tr@@lb #2} % l - \cap x
-\default {\setc@p l-\tr@aword #1#2}
-}\endcase }
-
-\gdef \tr@@lb #1#2{% test assimilation after l-\cap
-\case #1\of
-{ #2{\tr@aword #1-\cap #2} % l - \cap x x -> x - \cap x
-\default {\setc@p l-\tr@aword \cap #1#2}
-}\endcase }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \x@s #1{\oalign{#1\crcr\hidewidth \sh@ft{34}% accent for _h
- \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}}
-
-\gdef \x@x #1{\oalign{#1\crcr\hidewidth \sh@ft{29}% accent for .s in Urdu
- \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}}
-
-\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
- \kern.0156\dimen\z@} % positive kern for slant
-
-\def \rsh@ft #1#2{\ish@ft{#1}#2\sh@ft{#1}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \tr@def #1#2{% define \tr@#1 as {#2}
-\xpa \gdef \csname tr@\string #1\endcsname {#2}}
-
-\def \tr@cap #1{\ifc@p \uppercase {#1}\else #1\fi }
-
-\def \tr@ng {\tr@cap ng} \def \tr@ny {\tr@cap ny}
-\def \tr@kh {\tr@cap kh} \def \tr@th {\tr@cap th}
-\def \tr@dh {\tr@cap dh} \def \tr@bh {\tr@cap bh}
-\def \tr@ph {\tr@cap ph} \def \tr@zh {\tr@cap zh}
-\def \tr@sh {\tr@cap sh} \def \tr@ch {\tr@cap ch}
-\def \tr@gh {\tr@cap gh} \def \tr@af {\tr@cap {\'d}h}
-\def \tr@ag {\tr@cap {\'t}h} \def \tr@aj {\tr@cap {\v{c}}h}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \tr@zdmg {% define character macros for transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\let \specw@w \killw@w % special handling of w after .h in Farsi
-\gdef \tr@@e ##1{% test for ee -> ey
- \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
- \def \next {\setc@p e\tr@aword ##1}\fi \next}
-\gdef \tr@@E ##1{% test for Ee -> ey
- \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
- \def \next {\setc@p E\tr@aword ##1}\fi \next}
-\gdef \tr@@Q ##1{\tr@Q \def \next {\tr@aword ##1}%
- \ifh@mza \let \next \tr@aword \fi \next }
-\gdef \tr@@X {\setc@p X\specw@w }
-\gdef \tr@@ {{$\bullet $}}% substitute for illegal characters
-\gdef \tr@a {a\@vocaltrue }
-\gdef \tr@b {b} \gdef \tr@c {c} \gdef \tr@d {d}
-\gdef \tr@e {e\@vocaltrue }
-\gdef \tr@f {f} \gdef \tr@g {g} \gdef \tr@h {h}
-\gdef \tr@i {i\@vocaltrue }
-\gdef \tr@j {\v{z}} \gdef \tr@k {k} \gdef \tr@l {l}
-\gdef \tr@m {m} \gdef \tr@n {n}
-\gdef \tr@o {o\@vocaltrue }
-\gdef \tr@p {p} \gdef \tr@q {q} \gdef \tr@r {r}
-\gdef \tr@s {s} \gdef \tr@t {t}
-\gdef \tr@u {u\@vocaltrue }
-\gdef \tr@v {v} \gdef \tr@w {w} \gdef \tr@x {\v{s}}
-\gdef \tr@y {y} \gdef \tr@z {z}
-\gdef \tr@A {\=a\-\@vocaltrue } \gdef \tr@B {}
-\gdef \tr@C {\b{t}} \gdef \tr@D {\d{d}}
-\gdef \tr@E {\=e\-\@vocaltrue }
-\gdef \tr@F {\b{d}} \gdef \tr@G {\v{g}}
-\gdef \tr@H {\d{h}} \gdef \tr@I {\ifc@p\=I\else\=\i\fi\-\@vocaltrue }
-\gdef \tr@J {\v{c}} \gdef \tr@K {\~n}
-\gdef \tr@L {y} \gdef \tr@M {\tr@ny}
-\gdef \tr@N {n\@vocalfalse }
-\gdef \tr@O {\=o\-\@vocaltrue }
-\gdef \tr@P {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\lhook $}\kern-.1em
- \else \kern-.05em$\lhook$\kern-.05em\fi }\@vocalfalse }
-\gdef \tr@Q {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\rhook $}\kern-.1em
- \else \kern-.05em$\rhook$\kern-.05em\fi }\@vocalfalse }
-\gdef \tr@R {\.g}
-\gdef \tr@S {\d{s}} \gdef \tr@T {t}
-\gdef \tr@U {\=u\-\@vocaltrue }
-\gdef \tr@V {\d{t}}
-\gdef \tr@W {w\@vocalfalse }
-\gdef \tr@X {\x@s{h}}
-\gdef \tr@Y {\=a\-\@vocaltrue }
-\gdef \tr@Z {\d{z}}
-\tr@def \a@a {\=a\-\@vocaltrue }
-\tr@def \a@b {\d{b}} \tr@def \a@c {\'c} \tr@def \a@d {\'d}
-\tr@def \a@e {\'d} \tr@def \a@f {\d{f}} \tr@def \a@g {g}
-\tr@def \a@h {h} \tr@def \a@i {\ifc@p\=I\else\=\i\fi\-\@vocaltrue }
-\tr@def \a@j {\ifc@p\"I\else\"\i\fi\@vocaltrue }
-\tr@def \a@k {\ifs@nd \tr@kh\else k\fi }
-\tr@def \a@l {\~l} \tr@def \a@m {k} \tr@def \a@n {\d{n}}
-\tr@def \a@o {u\@vocaltrue } \tr@def \a@p {\tr@ng}
-\tr@def \a@q {\'r} \tr@def \a@r {\'r} \tr@def \a@s {\'s}
-\tr@def \a@t {\'t} \tr@def \a@u {\=u\-\@vocaltrue }
-\tr@def \a@v {\'t} \tr@def \a@w {{u}\@vocaltrue }
-\tr@def \a@x {v} \tr@def \a@y {y} \tr@def \a@z {\'z}
-\tr@def \a@A {e\@vocaltrue }
-\tr@def \a@B {\tr@@ } \tr@def \a@C {\'c} \tr@def \a@D {\'{d}}
-\tr@def \a@E {\ifk@rd\v{e}\else\={e}\fi\@vocaltrue }
-\tr@def \a@F {f} \tr@def \a@G {\'c} \tr@def \a@H {h}
-\tr@def \a@I {\ifc@p\"J\else\"\j\fi } \tr@def \a@J {\.g}
-\tr@def \a@K {\d{k}} \tr@def \a@L {k} \tr@def \a@M {k}
-\tr@def \a@N {\d{n}}
-\tr@def \a@O {o\@vocaltrue }
-\tr@def \a@P {\={u}\@vocaltrue } \tr@def \a@Q {q}
-\tr@def \a@R {\.r} \tr@def \a@S {\'s} \tr@def \a@T {\tr@ag}
-\tr@def \a@U {u\@vocaltrue }
-\tr@def \a@V {v} \tr@def \a@W {o}
-\tr@def \a@X {w} \tr@def \a@Y {\=e\-} \tr@def \a@Z {\'s}
-\tr@def \a@aa {a\@vocaltrue } % Uighuric alif
-\tr@def \a@ab {\x@x{b}} \tr@def \a@ac {\tr@th} \tr@def \a@ad {\tr@dh}
-\tr@def \a@ae {\x@x{d}} \tr@def \a@af {\tr@af} \tr@def \a@ag {\~{n}}
-\tr@def \a@ah {\"{\j}} \tr@def \a@aj {\v{c}h} \tr@def \a@ak {\x@x{g}}
-\tr@def \a@al {\x@x{n}} \tr@def \a@an {\'{n}} \tr@def \a@ap {\tr@bh}
-\tr@def \a@aq {\tr@ph} \tr@def \a@ar {\'{r}} \tr@def \a@at {\'{t}}
-\tr@def \a@au {w} % Uighuric waw with roof
-\tr@def \a@ax {k}
-\tr@def \a@aA {\'{d}}
-\tr@def \a@aJ {s} % sin with 3 dots below
-\tr@def \a@Zz {\d{\b{d}}} % .z, Palestinian, coded .Z
-\tr@def \a@aO {\d{\b{d}}} % .z, Palestinian, coded .Z, (for test only)
-\gdef \tr@aword {\tr@@aword }\global \tr@nstrue }% end \tr@zdmg
-}% catcodes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@encislam {% define Enc. of Islam transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg \let \@ub \underbar
-\let \specw@w \killw@w % special handling of w after .h in Farsi
-\def \tr@j {\@ub{\tr@zh}} \def \tr@x {\@ub{\tr@sh}}
-\def \tr@C {\@ub{\tr@th}} \def \tr@F {\@ub{\tr@dh}}
-\def \tr@G {j} \def \tr@J {\@ub{\tr@ch}}
-\def \tr@R {\@ub{\tr@gh}} \def \tr@X {\@ub{\tr@kh}}
-%\def \tr@q {\d{k}} % variant qaf; uncomment if required
-%\def \tr@P {$^c$} % variant `ain; uncomment if required
-\a@message {Encyclopedia~of~Islam~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@turk {% define character macros for modern Turkish
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg
-\let \specw@w \putw@w % no special handling of w after .h in Farsi
-\gdef \tr@e {e\@vocaltrue } \gdef \tr@q {k}
-\gdef \tr@w {v} \gdef \tr@x {\c{s}}
-\gdef \tr@A {\^a\@vocaltrue } \gdef \tr@E {\^e\@vocaltrue }
-\gdef \tr@G {c} \gdef \tr@H {h}
-\gdef \tr@I {\^{\i}\@vocaltrue} \gdef \tr@J {\c{c}}
-\gdef \tr@K {n} \gdef \tr@O {\^o\@vocaltrue }
-\gdef \tr@P {\-} \gdef \tr@R {g}
-\gdef \tr@S {s} \gdef \tr@T {t}
-\gdef \tr@U {\^u\@vocaltrue \kill@alif }
-\gdef \tr@V {t} \gdef \tr@Z {z}
-\tr@def \a@j {\i\@vocaltrue }
-\tr@def \a@m {\u{g}} \tr@def \a@w {{\"u}\@vocaltrue }
-\tr@def \a@A {\"a\@vocaltrue } \tr@def \a@H {}
-\tr@def \a@I {{\i}\@vocaltrue } \tr@def \a@J {\u{g}}
-\tr@def \a@L {g} \tr@def \a@M {n}
-\tr@def \a@O {\"o\@vocaltrue }
-\tr@def \a@P {\"o\@vocaltrue } \tr@def \a@Q {q}
-\tr@def \a@U {\"u\@vocaltrue } \tr@def \a@V {v}
-\catcode `\ =10
-\a@message {modern~Turkish~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Specific definitions for Persian:
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@enciran {% Encyclopaedia Iranica transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg % start with default and modify
-\let \specw@w \superv@w % special handling of w after .h in Farsi
-\gdef\tr@w{v\@vocalfalse} % EIran = Lazard <> ZDMG
-\gdef\tr@W{v\@vocalfalse} % EIran = Lazard <> ZDMG
-\gdef\tr@G{\v{\j}\@vocalfalse} % EIran = Lazard <> ZDMG
-\gdef\tr@D{\.{z}\@vocalfalse} % EIran = Lazard <> ZDMG
-\gdef\tr@C{\b{s}\@vocalfalse} % EIran <> Lazard <> ZDMG
-\gdef\tr@F{\b{z}\@vocalfalse} % EIran <> Lazard <> ZDMG
-\gdef\tr@R{\={g}\@vocalfalse} % EIran <> Lazard <> ZDMG
-\gdef\tr@X{\b{k}} % EIran <> Lazard <> ZDMG
-\tr@def\a@H{} % EIran = Lazard <> ZDMG
-\a@message {Encyclopaedia~Iranica~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@farsi {% Modified Encyclopaedia Iranica transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@enciran % start with default and modify
-\let \specw@w \superv@w % special handling of w after .h in Farsi
-\gdef\tr@R{\.{g}\@vocalfalse} % ZDMG = Persian
-\gdef\tr@X{x} % Lazard = Persian
-\tr@def\a@H{$\hbar\!$} % Persian <> EIran = nil
-\a@message {Modified~Encyclopaedia~Iranica~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \tr@lazard {% Philological Farsi transliteration; cf., e.g.,
- % Gilbert Lazard
- % "La langue des plus anciens documents de la prose persane"
- % (Paris: Cl. Klincksieck 1963).
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@enciran % start with default and modify
-\let \specw@w \superv@w % special handling of w after .h in Farsi
-\gdef\tr@C{\b{s}\@vocalfalse} % Lazard <> EIran
-\gdef\tr@C{$\theta\!$\@vocalfalse} % Lazard <> EIran
-\gdef\tr@F{$\delta\!$\@vocalfalse} % Lazard <> EIran <> ZDMG
-\gdef\tr@R{$\gamma\!$\@vocalfalse} % Lazard <> EIran <> ZDMG
-\gdef\tr@X{x} % Lazard <> EIran <> ZDMG
-\a@message {Philological~Farsi~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@urdu {% define Urdu transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg
-\let \specw@w \killw@w % special handling of w after .h in Farsi
-\gdef \tr@j {\.{z}} \gdef \tr@x {\'{s}} \gdef \tr@C {\x@x{s}}
-\gdef \tr@D {\b{z}} \gdef \tr@F {\d{z}} \gdef \tr@G {j}
-\gdef \tr@H {\b{h}} \gdef \tr@J {c} \gdef \tr@O {o\-\@vocaltrue}
-\gdef \tr@S {\b{s}} \gdef \tr@T {t} \gdef \tr@V {\x@x{t}}
-\gdef \tr@X {x} \gdef \tr@Z {\x@x{z}} \tr@def \a@d {\d{d}}
-\tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}} \tr@def \a@H {}
-\a@message {Urdu~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@kash {% define Kashmiri transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg \let \@ub \underbar
-\let \specw@w \putw@w % no special handling of w after .h
-\gdef \tr@j {ts} \gdef \tr@x {\'{s}} \gdef \tr@C {\b{s}}
-\gdef \tr@D {\x@x{z}} \gdef \tr@F {\b{z}} \gdef \tr@G {j}
-\gdef \tr@H {\d{h}} \gdef \tr@J {c} \gdef \tr@R {\@ub{\tr@gh}}
-\gdef \tr@S {\d{s}} \gdef \tr@T {t} \gdef \tr@V {\b{t}}
-\gdef \tr@X {\@ub{\tr@kh}} \gdef \tr@Z {\d{z}}
-\tr@def \a@d {\d{d}} \tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}}
-\tr@def \a@Za {\d{a}} \tr@def \a@ZA {\d{\=a}}
-\tr@def \a@Zo {\d{o}} \tr@def \a@ZO {\d{\=o}}
-\tr@def \a@Zu {u'} \tr@def \a@ZU {\=u'} \tr@def \a@ZI {\.y}
-\a@message {Kashmiri~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@uigh {% define Uighuric transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg
-\gdef \tr@a {a} \gdef \tr@e {e}
-\gdef \tr@i {i} \gdef \tr@j {j}
-\gdef \tr@o {o} \gdef \tr@u {u}
-\gdef \tr@G {\v{g}} \gdef \tr@X {x}
-\gdef \tr@Y {}
-\tr@def \a@A {\"a} \tr@def \a@O {\"o}
-\tr@def \a@U {\"u} \tr@def \a@X {v}
-\a@message {Uyghuric~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@uighe {% define Uighuric English transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg \let \@ub \underbar
-\gdef \tr@a {a} \gdef \tr@e {e}
-\gdef \tr@i {i} \gdef \tr@j {\@ub{\tr@zh}}
-\gdef \tr@o {o} \gdef \tr@u {u}
-\gdef \tr@x {\@ub{\tr@sh}} \gdef \tr@G {j}
-\gdef \tr@J {\@ub{\tr@ch}} \gdef \tr@K {\@ub{\tr@ng}}
-\gdef \tr@R {\@ub{\tr@gh}} \gdef \tr@X {\@ub{\tr@kh}}
-\gdef \tr@Y {}
-\tr@def \a@A {\"a} \tr@def \a@O {\"o}
-\tr@def \a@U {\"u} \tr@def \a@X {v}
-\a@message {Uyghuric~English~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \settrans #1{% switch the transliteration
-\lowercase {\def \tr@code {#1}\begingroup
-\def \tr@lookup ##1#1##2##3\@@ {\endgroup ##2}%
-\xpa \tr@lookup \tr@table #1\tr@default \@@ }%
-\let \tr@oldcode \tr@code }
-
-\def \tr@table {% table of transliterations
-standard\tr@standard zdmg\tr@standard english\tr@encislam
-turk\tr@turk urdu\tr@urdu iranica\tr@enciran
-farsi\tr@farsi lazard\tr@lazard kashmiri\tr@kash
-uighur\tr@uigh uighure\tr@uighe }
-
-\def \tr@standard {% standard transliteration
-\ifx \tr@code \tr@oldcode \else \tr@zdmg
-\a@message {ZDMG transliteration.}\fi }
-
-\def \tr@default {% unknown transliteration
-\tr@zdmg \message {unknown transliteration `\tr@code'}%
-\a@message {ZDMG transliteration is assumed.}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \tr@oldcode \tr@code \settrans {zdmg} % default
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode`\@ = \transatcode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% atrans.sty
+% transcription module for ArabTeX
+% ZDMG Transcription
+% Encyclopedia of Islam Transcription
+% Modern Turkish Transcription
+% Urdu Transcription
+% Uighuric Transcription
+% 14.06.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Additional Transcription Modes for Farsi:
+% Encyclopedia Iranica [Standard Farsi]
+% Farsi [Modified Encyclopedia Iranica]
+% Lazard [Philological: Gilbert Lazard, etc.]
+% (c) Adrian Rezus [adriaan@{sci,cs}.kun.nl]: Nijmegen, Nederland
+% 21.12.95
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \transatcode \undefined
+\chardef \transatcode = \catcode`\@ \catcode`\@ = 11
+\a@ident {atrans.sty} {3.11 generate the transliteration } {14.06.2003}
+\else \xpa \endinput
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \a@hyp \- \let \a@macron \=
+\let \a@acute \' \let \a@grave \`
+
+\gdef \a@trans #1>{% transcribe word
+\iftest@trans \tracingmacros=1
+\iftest@scan \else \a@verb (#1)>\fi\fi
+{\if@was \@vocaltrue \else \@vocalfalse \fi
+\let \- \a@hyp \let \= \a@macron
+\let \' \a@acute \let \` \a@grave \def \tr@act {-}%
+\tr@aword #1|||>>%
+\if@vocal \global \@wastrue \else \global \@wasfalse \fi }%
+\iftest@trans \tracingmacros=0 \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \if@vocal \newif \ifc@p
+
+\gdef \tr@@aword #1{% transcribe rest of word
+\let \tr@old \tr@act \def \tr@act {#1}%
+\case #1\of
+{ >{\@gobble }
+ \cap {\c@ptrue \tr@aword }
+% |"^\a@e{\tr@aword }
+ |"^{\tr@aword }
+ -{-\tr@aword }
+ XlEeQ{\csname tr@@\string #1\endcsname }
+ \a@a NUW{\setc@p #1\kill@alif }
+ P{\tr@P \tr@aword }
+ aiu{\tr@wasla #1}
+ \a@Ze{\xpa\tr@aword \tr@old }
+\default {\@vocalfalse
+ \ifcat \nxp #1-#1\else \setc@p #1%
+ \fi \tr@aword }
+}\endcase }
+
+\def \setc@p #1{% capitalize if needed
+\xpa\ifx \xpa\relax \csname tr@\string #1\endcsname \tr@@ \else
+\ifc@p \xxxpa\uppercase \xxpa{\csname tr@\string #1\endcsname }\c@pfalse
+\else \csname tr@\string #1\endcsname
+\fi\fi }
+
+\def \@gobble #1{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \kill@alif #1{% delete alif or waw after N, U, W, _a
+\case #1\of
+{ aAIYU{\tr@aword }
+\default {\tr@aword #1}
+}\endcase }
+
+\gdef \tr@wasla #1{% initial vowel, Arabic
+\ifiz@fet \@vocalfalse \fi
+\ifu@gh \@vocalfalse \fi
+\ifh@mza \if@vocal '\else \setc@p #1\fi
+\else \setc@p #1\fi
+\@vocaltrue \tr@aword }
+
+\gdef \tr@vowel #1{% vowel
+\setc@p #1\@vocaltrue \tr@aword }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \sp@cw@w #1#2{% handle w after _h (Persian) specially
+\def \next {\tr@aword #2}\@vocalfalse
+\ifiz@fet \ifx #2w#1\let\next\tr@aword
+\fi\fi \next }
+
+\gdef \putw@w {\sp@cw@w w } % w after _h (Persian): normal
+
+\gdef \killw@w {\sp@cw@w {}} % w after _h (Persian): delete
+
+\gdef \superv@w {\sp@cw@w {$^v\!$}}% w after _h (Persian): super v
+
+\gdef \superw@w {\sp@cw@w {$^w\!$}}% w after _h (Persian): super w
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \tr@@l #1{% test assimilation after l
+\ifx #1-\def \next {\tr@@la }\else
+ \setc@p l\def \next {\tr@aword #1}%
+\fi \@vocalfalse \next }
+
+\gdef \tr@@la #1#2{% test assimilation after l-
+\case #1\of
+{ Q{\setc@p l-\tr@Q \tr@aword } % l - Q x -> l - '
+ #2{\tr@aword #1-#2} % l - x x -> x - x
+ \cap {\tr@@lb #2} % l - \cap x
+\default {\setc@p l-\tr@aword #1#2}
+}\endcase }
+
+\gdef \tr@@lb #1#2{% test assimilation after l-\cap
+\case #1\of
+{ #2{\tr@aword #1-\cap #2} % l - \cap x x -> x - \cap x
+\default {\setc@p l-\tr@aword \cap #1#2}
+}\endcase }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \x@s #1{\oalign{#1\crcr\hidewidth \sh@ft{34}% accent for _h
+ \vbox to -.2ex {\hbox{\char'25}\vss}\hidewidth}}
+
+\gdef \x@x #1{\oalign{#1\crcr\hidewidth \sh@ft{29}% accent for .s in Urdu
+ \vbox to.2ex{\hbox{\char'177}\vss}\hidewidth}}
+
+\def \ish@ft #1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font
+ \kern.0156\dimen\z@} % positive kern for slant
+
+\def \rsh@ft #1#2{\ish@ft{#1}#2\sh@ft{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \tr@def #1#2{% define \tr@#1 as {#2}
+\xpa \gdef \csname tr@\string #1\endcsname {#2}}
+
+\def \tr@cap #1{\ifc@p \uppercase {#1}\else #1\fi }
+
+\def \tr@ng {\tr@cap ng} \def \tr@ny {\tr@cap ny}
+\def \tr@kh {\tr@cap kh} \def \tr@th {\tr@cap th}
+\def \tr@dh {\tr@cap dh} \def \tr@bh {\tr@cap bh}
+\def \tr@ph {\tr@cap ph} \def \tr@zh {\tr@cap zh}
+\def \tr@sh {\tr@cap sh} \def \tr@ch {\tr@cap ch}
+\def \tr@gh {\tr@cap gh} \def \tr@af {\tr@cap {\'d}h}
+\def \tr@ag {\tr@cap {\'t}h} \def \tr@aj {\tr@cap {\v{c}}h}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \tr@zdmg {% define character macros for transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\let \specw@w \killw@w % special handling of w after .h in Farsi
+\gdef \tr@@e ##1{% test for ee -> ey
+ \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
+ \def \next {\setc@p e\tr@aword ##1}\fi \next}
+\gdef \tr@@E ##1{% test for Ee -> ey
+ \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
+ \def \next {\setc@p E\tr@aword ##1}\fi \next}
+\gdef \tr@@Q ##1{\tr@Q \def \next {\tr@aword ##1}%
+ \ifh@mza \let \next \tr@aword \fi \next }
+\gdef \tr@@X {\setc@p X\specw@w }
+\gdef \tr@@ {{$\bullet $}}% substitute for illegal characters
+\gdef \tr@a {a\@vocaltrue }
+\gdef \tr@b {b} \gdef \tr@c {c} \gdef \tr@d {d}
+\gdef \tr@e {e\@vocaltrue }
+\gdef \tr@f {f} \gdef \tr@g {g} \gdef \tr@h {h}
+\gdef \tr@i {i\@vocaltrue }
+\gdef \tr@j {\v{z}} \gdef \tr@k {k} \gdef \tr@l {l}
+\gdef \tr@m {m} \gdef \tr@n {n}
+\gdef \tr@o {o\@vocaltrue }
+\gdef \tr@p {p} \gdef \tr@q {q} \gdef \tr@r {r}
+\gdef \tr@s {s} \gdef \tr@t {t}
+\gdef \tr@u {u\@vocaltrue }
+\gdef \tr@v {v} \gdef \tr@w {w} \gdef \tr@x {\v{s}}
+\gdef \tr@y {y} \gdef \tr@z {z}
+\gdef \tr@A {\=a\-\@vocaltrue } \gdef \tr@B {}
+\gdef \tr@C {\b{t}} \gdef \tr@D {\d{d}}
+\gdef \tr@E {\=e\-\@vocaltrue }
+\gdef \tr@F {\b{d}} \gdef \tr@G {\v{g}}
+\gdef \tr@H {\d{h}} \gdef \tr@I {\ifc@p\=I\else\=\i\fi\-\@vocaltrue }
+\gdef \tr@J {\v{c}} \gdef \tr@K {\~n}
+\gdef \tr@L {y} \gdef \tr@M {\tr@ny}
+\gdef \tr@N {n\@vocalfalse }
+\gdef \tr@O {\=o\-\@vocaltrue }
+\gdef \tr@P {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\lhook $}\kern-.1em
+ \else \kern-.05em$\lhook$\kern-.05em\fi }\@vocalfalse }
+\gdef \tr@Q {\rsh@ft{07}{\ifc@p \raise .2ex \hbox {$\rhook $}\kern-.1em
+ \else \kern-.05em$\rhook$\kern-.05em\fi }\@vocalfalse }
+\gdef \tr@R {\.g}
+\gdef \tr@S {\d{s}} \gdef \tr@T {t}
+\gdef \tr@U {\=u\-\@vocaltrue }
+\gdef \tr@V {\d{t}}
+\gdef \tr@W {w\@vocalfalse }
+\gdef \tr@X {\x@s{h}}
+\gdef \tr@Y {\=a\-\@vocaltrue }
+\gdef \tr@Z {\d{z}}
+\tr@def \a@a {\=a\-\@vocaltrue }
+\tr@def \a@b {\d{b}} \tr@def \a@c {\'c} \tr@def \a@d {\'d}
+\tr@def \a@e {\'d} \tr@def \a@f {\d{f}} \tr@def \a@g {g}
+\tr@def \a@h {h} \tr@def \a@i {\ifc@p\=I\else\=\i\fi\-\@vocaltrue }
+\tr@def \a@j {\ifc@p\"I\else\"\i\fi\@vocaltrue }
+\tr@def \a@k {\ifs@nd \tr@kh\else k\fi }
+\tr@def \a@l {\~l} \tr@def \a@m {k} \tr@def \a@n {\d{n}}
+\tr@def \a@o {u\@vocaltrue } \tr@def \a@p {\tr@ng}
+\tr@def \a@q {\'r} \tr@def \a@r {\'r} \tr@def \a@s {\'s}
+\tr@def \a@t {\'t} \tr@def \a@u {\=u\-\@vocaltrue }
+\tr@def \a@v {\'t} \tr@def \a@w {{u}\@vocaltrue }
+\tr@def \a@x {v} \tr@def \a@y {y} \tr@def \a@z {\'z}
+\tr@def \a@A {e\@vocaltrue }
+\tr@def \a@B {\tr@@ } \tr@def \a@C {\'c} \tr@def \a@D {\'{d}}
+\tr@def \a@E {\ifk@rd\v{e}\else\={e}\fi\@vocaltrue }
+\tr@def \a@F {f} \tr@def \a@G {\'c} \tr@def \a@H {h}
+\tr@def \a@I {\ifc@p\"J\else\"\j\fi } \tr@def \a@J {\.g}
+\tr@def \a@K {\d{k}} \tr@def \a@L {k} \tr@def \a@M {k}
+\tr@def \a@N {\d{n}}
+\tr@def \a@O {o\@vocaltrue }
+\tr@def \a@P {\={u}\@vocaltrue } \tr@def \a@Q {q}
+\tr@def \a@R {\.r} \tr@def \a@S {\'s} \tr@def \a@T {\tr@ag}
+\tr@def \a@U {u\@vocaltrue }
+\tr@def \a@V {v} \tr@def \a@W {o}
+\tr@def \a@X {w} \tr@def \a@Y {\=e\-} \tr@def \a@Z {\'s}
+\tr@def \a@aa {a\@vocaltrue } % Uighuric alif
+\tr@def \a@ab {\x@x{b}} \tr@def \a@ac {\tr@th} \tr@def \a@ad {\tr@dh}
+\tr@def \a@ae {\x@x{d}} \tr@def \a@af {\tr@af} \tr@def \a@ag {\~{n}}
+\tr@def \a@ah {\"{\j}} \tr@def \a@aj {\v{c}h} \tr@def \a@ak {\x@x{g}}
+\tr@def \a@al {\x@x{n}} \tr@def \a@an {\'{n}} \tr@def \a@ap {\tr@bh}
+\tr@def \a@aq {\tr@ph} \tr@def \a@ar {\'{r}} \tr@def \a@at {\'{t}}
+\tr@def \a@au {w} % Uighuric waw with roof
+\tr@def \a@ax {k}
+\tr@def \a@aA {\'{d}}
+\tr@def \a@aJ {s} % sin with 3 dots below
+\tr@def \a@Zz {\d{\b{d}}} % .z, Palestinian, coded .Z
+\tr@def \a@aO {\d{\b{d}}} % .z, Palestinian, coded .Z, (for test only)
+\gdef \tr@aword {\tr@@aword }\global \tr@nstrue }% end \tr@zdmg
+}% catcodes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@encislam {% define Enc. of Islam transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg \let \@ub \underbar
+\let \specw@w \killw@w % special handling of w after .h in Farsi
+\def \tr@j {\@ub{\tr@zh}} \def \tr@x {\@ub{\tr@sh}}
+\def \tr@C {\@ub{\tr@th}} \def \tr@F {\@ub{\tr@dh}}
+\def \tr@G {j} \def \tr@J {\@ub{\tr@ch}}
+\def \tr@R {\@ub{\tr@gh}} \def \tr@X {\@ub{\tr@kh}}
+%\def \tr@q {\d{k}} % variant qaf; uncomment if required
+%\def \tr@P {$^c$} % variant `ain; uncomment if required
+\a@message {Encyclopedia~of~Islam~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@turk {% define character macros for modern Turkish
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg
+\let \specw@w \putw@w % no special handling of w after .h in Farsi
+\gdef \tr@e {e\@vocaltrue } \gdef \tr@q {k}
+\gdef \tr@w {v} \gdef \tr@x {\c{s}}
+\gdef \tr@A {\^a\@vocaltrue } \gdef \tr@E {\^e\@vocaltrue }
+\gdef \tr@G {c} \gdef \tr@H {h}
+\gdef \tr@I {\^{\i}\@vocaltrue} \gdef \tr@J {\c{c}}
+\gdef \tr@K {n} \gdef \tr@O {\^o\@vocaltrue }
+\gdef \tr@P {\-} \gdef \tr@R {g}
+\gdef \tr@S {s} \gdef \tr@T {t}
+\gdef \tr@U {\^u\@vocaltrue \kill@alif }
+\gdef \tr@V {t} \gdef \tr@Z {z}
+\tr@def \a@j {\i\@vocaltrue }
+\tr@def \a@m {\u{g}} \tr@def \a@w {{\"u}\@vocaltrue }
+\tr@def \a@A {\"a\@vocaltrue } \tr@def \a@H {}
+\tr@def \a@I {{\i}\@vocaltrue } \tr@def \a@J {\u{g}}
+\tr@def \a@L {g} \tr@def \a@M {n}
+\tr@def \a@O {\"o\@vocaltrue }
+\tr@def \a@P {\"o\@vocaltrue } \tr@def \a@Q {q}
+\tr@def \a@U {\"u\@vocaltrue } \tr@def \a@V {v}
+\catcode `\ =10
+\a@message {modern~Turkish~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Specific definitions for Persian:
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@enciran {% Encyclopaedia Iranica transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg % start with default and modify
+\let \specw@w \superv@w % special handling of w after .h in Farsi
+\gdef\tr@w{v\@vocalfalse} % EIran = Lazard <> ZDMG
+\gdef\tr@W{v\@vocalfalse} % EIran = Lazard <> ZDMG
+\gdef\tr@G{\v{\j}\@vocalfalse} % EIran = Lazard <> ZDMG
+\gdef\tr@D{\.{z}\@vocalfalse} % EIran = Lazard <> ZDMG
+\gdef\tr@C{\b{s}\@vocalfalse} % EIran <> Lazard <> ZDMG
+\gdef\tr@F{\b{z}\@vocalfalse} % EIran <> Lazard <> ZDMG
+\gdef\tr@R{\={g}\@vocalfalse} % EIran <> Lazard <> ZDMG
+\gdef\tr@X{\b{k}} % EIran <> Lazard <> ZDMG
+\tr@def\a@H{} % EIran = Lazard <> ZDMG
+\a@message {Encyclopaedia~Iranica~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@farsi {% Modified Encyclopaedia Iranica transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@enciran % start with default and modify
+\let \specw@w \superv@w % special handling of w after .h in Farsi
+\gdef\tr@R{\.{g}\@vocalfalse} % ZDMG = Persian
+\gdef\tr@X{x} % Lazard = Persian
+\tr@def\a@H{$\hbar\!$} % Persian <> EIran = nil
+\a@message {Modified~Encyclopaedia~Iranica~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \tr@lazard {% Philological Farsi transliteration; cf., e.g.,
+ % Gilbert Lazard
+ % "La langue des plus anciens documents de la prose persane"
+ % (Paris: Cl. Klincksieck 1963).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@enciran % start with default and modify
+\let \specw@w \superv@w % special handling of w after .h in Farsi
+\gdef\tr@C{\b{s}\@vocalfalse} % Lazard <> EIran
+\gdef\tr@C{$\theta\!$\@vocalfalse} % Lazard <> EIran
+\gdef\tr@F{$\delta\!$\@vocalfalse} % Lazard <> EIran <> ZDMG
+\gdef\tr@R{$\gamma\!$\@vocalfalse} % Lazard <> EIran <> ZDMG
+\gdef\tr@X{x} % Lazard <> EIran <> ZDMG
+\a@message {Philological~Farsi~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@urdu {% define Urdu transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg
+\let \specw@w \killw@w % special handling of w after .h in Farsi
+\gdef \tr@j {\.{z}} \gdef \tr@x {\'{s}} \gdef \tr@C {\x@x{s}}
+\gdef \tr@D {\b{z}} \gdef \tr@F {\d{z}} \gdef \tr@G {j}
+\gdef \tr@H {\b{h}} \gdef \tr@J {c} \gdef \tr@O {o\-\@vocaltrue}
+\gdef \tr@S {\b{s}} \gdef \tr@T {t} \gdef \tr@V {\x@x{t}}
+\gdef \tr@X {x} \gdef \tr@Z {\x@x{z}} \tr@def \a@d {\d{d}}
+\tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}} \tr@def \a@H {}
+\a@message {Urdu~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@kash {% define Kashmiri transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg \let \@ub \underbar
+\let \specw@w \putw@w % no special handling of w after .h
+\gdef \tr@j {ts} \gdef \tr@x {\'{s}} \gdef \tr@C {\b{s}}
+\gdef \tr@D {\x@x{z}} \gdef \tr@F {\b{z}} \gdef \tr@G {j}
+\gdef \tr@H {\d{h}} \gdef \tr@J {c} \gdef \tr@R {\@ub{\tr@gh}}
+\gdef \tr@S {\d{s}} \gdef \tr@T {t} \gdef \tr@V {\b{t}}
+\gdef \tr@X {\@ub{\tr@kh}} \gdef \tr@Z {\d{z}}
+\tr@def \a@d {\d{d}} \tr@def \a@r {\d{r}} \tr@def \a@t {\d{t}}
+\tr@def \a@Za {\d{a}} \tr@def \a@ZA {\d{\=a}}
+\tr@def \a@Zo {\d{o}} \tr@def \a@ZO {\d{\=o}}
+\tr@def \a@Zu {u'} \tr@def \a@ZU {\=u'} \tr@def \a@ZI {\.y}
+\a@message {Kashmiri~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@uigh {% define Uighuric transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg
+\gdef \tr@a {a} \gdef \tr@e {e}
+\gdef \tr@i {i} \gdef \tr@j {j}
+\gdef \tr@o {o} \gdef \tr@u {u}
+\gdef \tr@G {\v{g}} \gdef \tr@X {x}
+\gdef \tr@Y {}
+\tr@def \a@A {\"a} \tr@def \a@O {\"o}
+\tr@def \a@U {\"u} \tr@def \a@X {v}
+\a@message {Uyghuric~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@uighe {% define Uighuric English transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg \let \@ub \underbar
+\gdef \tr@a {a} \gdef \tr@e {e}
+\gdef \tr@i {i} \gdef \tr@j {\@ub{\tr@zh}}
+\gdef \tr@o {o} \gdef \tr@u {u}
+\gdef \tr@x {\@ub{\tr@sh}} \gdef \tr@G {j}
+\gdef \tr@J {\@ub{\tr@ch}} \gdef \tr@K {\@ub{\tr@ng}}
+\gdef \tr@R {\@ub{\tr@gh}} \gdef \tr@X {\@ub{\tr@kh}}
+\gdef \tr@Y {}
+\tr@def \a@A {\"a} \tr@def \a@O {\"o}
+\tr@def \a@U {\"u} \tr@def \a@X {v}
+\a@message {Uyghuric~English~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \settrans #1{% switch the transliteration
+\lowercase {\def \tr@code {#1}\begingroup
+\def \tr@lookup ##1#1##2##3\@@ {\endgroup ##2}%
+\xpa \tr@lookup \tr@table #1\tr@default \@@ }%
+\let \tr@oldcode \tr@code }
+
+\def \tr@table {% table of transliterations
+standard\tr@standard zdmg\tr@standard english\tr@encislam
+turk\tr@turk urdu\tr@urdu iranica\tr@enciran
+farsi\tr@farsi lazard\tr@lazard kashmiri\tr@kash
+uighur\tr@uigh uighure\tr@uighe }
+
+\def \tr@standard {% standard transliteration
+\ifx \tr@code \tr@oldcode \else \tr@zdmg
+\a@message {ZDMG transliteration.}\fi }
+
+\def \tr@default {% unknown transliteration
+\tr@zdmg \message {unknown transliteration `\tr@code'}%
+\a@message {ZDMG transliteration is assumed.}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \tr@oldcode \tr@code \settrans {zdmg} % default
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = \transatcode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/awrite.sty b/language/arabic/arabtex/texinput/awrite.sty
index 2e70ef96b4..8ba345dcf7 100644
--- a/language/arabic/arabtex/texinput/awrite.sty
+++ b/language/arabic/arabtex/texinput/awrite.sty
@@ -1,397 +1,397 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% awrite.sty
-% ArabTeX
-% basic contextual analysis
-% called in HMODE
-% Version 05.06.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {awrite.sty} {3.11 build output word } {05.06.2003}
-
-\UsePackage {xarbsymb} % character definitions
-\UsePackage {arabskel} % skeleton definitions
-\UsePackage {xarbskel}
-\UsePackage {aboxes} % deposit output boxes
-
-\UsePackage {arabtoks} % token definitions
-\UsePackage {arabchrs} % character macros
-
-% ACT = 1. char
-\newcount \act@cd \newcount \act@cls \newcount \act@mod
-\newcount \act@con \newcount \act@tie
-
-% CHR = 2. char
-\newcount \chr@cd \newcount \chr@cls \newcount \chr@mod
-\newcount \chr@con \newcount \chr@tie
-
-% SKL = 3. char
-\newcount \skl@cd \newcount \skl@cls \newcount \skl@mod
-\newcount \skl@con
-
-\newcount \red@mod \newcount \a@shp
-\newcount \a@max \newcount \a@min
-
-\newif \if@con \newif \if@mod@act \newif \if@high@act
-\newif \if@mod@chr \newif \if@tat \newif \if@tatl
-\newif \if@updia \newif \if@lodia \newif \ifa@sk
-\newif \ifa@min \newif \ifa@max
-
-\newdimen \a@min@dp \newdimen \a@dx \newdimen \a@dy
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifa@@write \a@@writetrue
-
-\def \a@@write #1>{% Arabic output
-\iftest@write \tracingmacros 1
-\iftest@parse \else \a@verb (#1 )>\fi\fi
-\a@write@hook
-\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi
-\iftest@write \tracingmacros 0 \fi }
-
-\let \a@write \a@@write \let \a@write@hook \relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%em# := 25.4dx#; %ex# := 8dy#;
-
-{\catcode `p=12 \catcode `t=12 % see TeXbook, Appendix D
-\csname expandafter\endcsname \gdef
-\csname getfactor\endcsname #1pt{#1}}
-
-\def \arab@testfont {% diagnose font, look for vowels and ayin
-\edef \next {\the\font }%
-\ifx \next \a@font \else
-\iftest@font \a@message{Arabic font \next selected.}\fi
-\global\let \a@font \next \a@testfont \fi }
-
-\def \a@testfont {% diagnose font, set params
-\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }%
-\dimen@ 128\fontdimen7\font % assumes \fontdimen7 < 128 pt
-\divide \dimen@ \fontdimen6\font \multiply \dimen@ 512
-\xdef \a@skew {\xpa\getfactor \the\dimen@}}
-
-\def \a@norm {% start a new character group
-\global\@highfalse \global\a@min@dp \z@ \global\a@min \z@
-\global\a@max \z@ \a@disp \z@ \@high@actfalse \global\a@sktrue }
-
-\def \aw@init {% start word, get font parameters
-\a@norm \leavevmode \a@dx .04em \a@dy .125ex }
-
-\def \a@skew {0} \def \a@slant {0}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \aw@beg #1#2*#3#4*#5{% start output
-% c m * c m * c
- \aw@init
- \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}%
-\ifx #1-\test@chr #3\chr@fam #3%
- \def \next {\aw@mid #3#4*#5}%
- \ifx #3>\ac@other #1#2*#3#4*#5<%
- \fi \else
-\ifcat -\nxp #1\a@shift \test@chr #3%
- \@confalse \ac@other #1#2*#3#4*#5<\else
-\fi\fi \next }
-
-\def \aw@beg #1#2*#3#4*#5{% start output
-% c m * c m * c
-\ifx #1>\let \next \relax \else
- \aw@init
- \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}%
-\ifx #1-\test@chr #3\chr@fam #3%
- \def \next {\aw@mid #3#4*#5}%
- \ifx #3>\ac@other #1#2*#3#4*#5<%
- \fi \else
-\ifcat -\nxp #1\a@shift \test@chr #3%
- \@confalse \ac@other #1#2*#3#4*#5<\else
-\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \aw@end #1#2*#3#4*#5{% character is not joined to the left
-% c m * c m * c
-% ACT, CHR defined
-\ifx #1>\let \next \relax \else
-\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@end #1#2*#5}%
-\else \def \next {\aw@end #3#4*#5}%
- \a@shift \test@chr #3%
- \if \AND{\iscat -{\nxp #3}}%
- {\NOT {\is@end@char #5}}\@contrue
- \fi
- \ifnum \act@cd = \a@alif \def \next {\alif@lig #2*#3#4*#5}\else
- \ifcat \nxp ~\nxp #1\else
- \ifx #1-\chr@fam #3\else
-% \ifcat -\nxp #1\ac@other #1#2*#3#4*#5<\else
- \ifcat -\nxp #1\@confalse \ac@other #1#2*#3#4*#5<\else
- \ifnum \act@cd = \a@hamzc \@confalse \else
- \ifnum \act@cd = \a@break \@confalse \else
- \if@con \chr@fam #3%
- \fi
- \ifu@gh \@mod@acttrue
- \ifnum \act@cd = \a@qaf \set@act\sk@q@s
- \fi
- \else \aw@endligs #1#2*#3#4*#5%
- \fi
- \fi\fi
- \a@kern
- \ifnum \act@cd = \a@waw \under@cut #2*\else
- \ifnum \act@cls = \rah@cls \under@cut #2*\else
- \ifnum \act@cd = \a@hah \a@kern
- \fi\fi\fi
- \put@end #2*#3#4*#5<%
- \fi\fi\fi\fi
-\fi\fi \next }
-
-\def \alif@lig #1*#2#3*#4{% alif, test for ligature
-% m * c m * c
-\a@kern
-\chr@fam #2\global\@highfalse
-\ifx #2l\def \next {\lam@alif #1*#3*#4}\else
- \gim@test #4% closed gim?
- \kaf@test #2% kaf-alif ?
- \aw@lower #4%
- \put@end #1*#2#3*#4<%
-\fi \next }
-
-\def \lam@alif #1*#2*#3#4*#5{% ligature lam-alif
-% m * m * c m * c
-\global\@highfalse \a@shift \test@chr #3\chr@fam #3%
-\gim@test #5% closed gim?
-\ifu@gh \else \kaf@test #3\fi % kaf-lam ?
-\set@act\sk@l@a
-\if@con \lig@end #1*#2*\def \next {\aw@mid #3#4*#5}%
- \else \lig@iso #1*#2*\def \next {\aw@end #3#4*#5}%
-\fi \next }
-
-\def \lig@iso #1*#2*{% isolated shape % m1 * m2 *
-\put@lig@skel 0\a@f@iso #1*#2*\a@norm }
-
-\def \lig@end #1*#2*{% final shape % m1 * m2 *
-\put@lig@skel 1\a@f@end #1*#2*}
-
-\def \aw@lower #1{% adjust vertical position
-% uses ACT, CHR, and #1
-\ifligs
-\ifnum \chr@cd = \a@hah
- \ifx #1l\set@lowww@act \fi
-\fi
-\ifnum \chr@cls = 3 % gim etc
- \a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax
-% \ifnum \skl@cls = 0 \set@lowww@act \fi
- \ifnum \skl@cls = 1 \set@lowww@act \fi
- \ifnum \skl@cls = 2 \set@lowww@act \fi
- \ifnum \skl@cls = 5 \set@lowww@act \fi
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \aw@mid #1#2*#3#4*#5{% character is joined to the left
-% c m * c m * c
-% ACT, CHR defined
-\ifx #1>\let \next \relax \else
-\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@mid #1#2*#5}\else
-\ifx #1-\test@chr #3\chr@fam #3\def \next {\aw@mid #3#4*#5}\else
- \a@shift \test@chr #3\chr@fam #3%
-\ifcat -\nxp #1\ac@other #1#2*#3#4*#5<%
-\else \if \AND{\iscat -{\nxp #3}}%
- {\NOT {\is@end@char #5}}\@contrue
- \fi
- \ifu@gh \else
- \aw@midligs #1#2*#3#5%
- \fi
- \put@mid #2*#3#4*#5<%
- \if@con \else % initial shape
- \ifnum \act@cls = \kaf@cls % kaf etc.
- \xpa\if \xpa\is@in@list \chr@skel \sk@a \sk@l >\a@kern
- \else \unkern \a@mkern
- \fi
- \fi\fi
-\fi\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \test@updia #1+#2*{% test for upper diacritic
-% m21 + m22 *
-\@updiafalse \@lodiafalse
-\global\red@mod #1 \relax
-\ifnum #1 > 9 \global\advance \red@mod -10 \fi
-\ifcase \red@mod
- \relax\or \@updiatrue\or \@updiatrue\or \@updiatrue\or
- \@updiatrue\or \@lodiatrue\or
-\fi
-\ifcase #2\relax
- \relax\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or
- \@updiatrue\or \@updiatrue\or \@lodiatrue\or \@updiatrue\or
- \@updiatrue\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or
- \@updiatrue\or
-\fi }
-
-\def \is@updia #1*{00% is there an upper diacritic ?
-\test@updia #1*\if@updia \else \xpa \setiffalse \fi }
-
-\def \is@lodia #1*{00% is there a lower diacritic ?
-\test@updia #1*\if@lodia \else \xpa \setiffalse \fi }
-
-\def \under@cut #1*{% if no upper diacritic % m2 *
-\ifdim \a@dp > .5ex \else % \if\is@updia #1*\else
-\unkern \a@mkern \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \put@end #1*#2<{% deposit non-joining character, set new state
-% m * c m * c <
-\if@con \ac@end #1*\def \next {\aw@mid #2}%
- \else \ac@iso #1*\def \next {\aw@end #2}%
-\fi }
-
-\def \put@mid #1*#2<{% deposit joining character, set new state
-% m * c m * c <
-\if@con \ac@mid #1*\def \next {\aw@mid #2}%
- \else \ac@beg #1*\def \next {\aw@end #2}%
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ac@high #1{\raise.5ex\hbox{#1}}
-\def \ac@high #1{% raise punctuation
-\ifu@gh #1\else \raise.5ex\hbox{#1}\fi }
-
-% define CS names for special punctuation
-
-{\catcode`\$ 12 \gdef \a@dlr {$} % $
-\catcode `\# 12 \gdef \a@hsh {#} % #
-\catcode `\% 12 \gdef \a@pct {%}} % %
-{\catcode`\^ 12 \gdef \a@up {^} % ^
-\catcode `\_ 12 \gdef \a@dn {_} % _
-\catcode `\& 12 \gdef \a@amp {&} % &
-\catcode `\A 12 \gdef \a@dq {A} % "
-\catcode `\B 12 \gdef \f@sila {B} % ,
-\catcode `\C 12 \gdef \h@phen {C} % -
-\catcode `\D 12 \gdef \a@bar {D} % |
-\catcode `\E 12 \gdef \a@qt {E} % '
-\catcode `\F 12 \gdef \a@bsl {F} % \
-\catcode `\G 12 \gdef \a@lbc {G} % {
-\catcode `\H 12 \gdef \a@rbc {H} % }
-\catcode `\I 12 \gdef \a@ell {I} % ...
-\catcode `\J 12 \gdef \a@div {J} % :-
-\catcode `\K 12 \gdef \a@lab {K} % <
-\catcode `\L 12 \gdef \a@rab {L} % >
-\catcode `\M 12 \gdef \a@end {M} % --
-\catcode `\N 12 \gdef \a@emd {N} % ---
-\catcode `\O 12 \gdef \a@lq {O} % `
-\catcode `\P 12 \gdef \a@rq {P} % '
-
-\gdef \ac@other #1#2*#3<{% special punctuation mark
-% c * c m * c
-\case #1\of
-{ ){\ac@high {(}}
- ({\ac@high {)}}
- ]{\ac@high {[}}
- [{\ac@high {]}}
- `{\a@kern \ac@high {\char \a@lquotes }}
- '{\ac@high {\char \a@rquotes }\a@kern }
- ^{{\tt ^}}
- _{{\tt _}}
- &{{\tt \char`\&}}
- A{{\tt "}}
- B{{\rm \bf ,}}
- C{\ac@high {-}}
- D{{\tt \char`\|}}
- E{{\tt \char'015}}
- F{{\tt \char`\\}}
- G{{\tt \char`\}}}
- H{{\tt \char`\{}}
- I{{\bf $\cdots$}}
- J{{\bf $\div$}}
- K{{\tt \char`\>}}
- L{{\tt \char`\<}}
- M{{\rm \bf \char'173}}
- N{{\rm \bf \char'174}}
- O{{\rm \bf `}}
- P{{\rm \bf '}}
-% |{\char \a@break }
- |{}
- 4{\ac@high {\iff@rsn \char \a@f@iv \else 4\fi }\a@kern }
- 5{\ac@high {\iff@rsn \char \a@f@v \else 5\fi }\a@kern }
- 6{\ac@high {\iff@rsn \char \a@f@vi \else 6\fi }\a@kern }
-\default {\ac@high {#1}\a@kern }
-}\endcase
-\if@con \def \next {\aw@mid #3}%
- \else \def \next {\aw@end #3}%
-\fi }
-%\def \next {\aw@end #3}}
-}% catcodes 12
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ac@iso #1*{% isolated shape % m *
-\put@skel 0\a@f@iso #1*\a@norm }
-
-\def \ac@end #1*{% final shape % m *
-\put@skel 1\a@f@end #1*}
-
-\def \ac@mid #1*{% medial shape % m *
-\put@skel 2\a@f@mid #1*}
-
-\def \ac@beg #1*{% initial shape % m *
-\put@skel 3\a@f@beg #1*\a@norm }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@shift {% go to next position
-% ACT := CHR
-\let \act@skel \chr@skel \act@mod \chr@mod \get@act
-\act@tie \chr@tie
-\let \if@mod@act \if@mod@chr \@mod@chrfalse }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \test@chr #1{% get attributes of next character
-% set CHR := SKL := <#1>
-\a@test #1\chr@tie 0
-\let \chr@skel \skl@skel \chr@mod \skl@mod \get@chr
-\ifnum \chr@con = 0 \@confalse \else \@contrue \fi }
-
-\def \a@test #1{% get character attributes
-% set SKL := <#1>
-\set@skl \sk@def \skl@mod 0
-\ifcat \nxp #1a%
- \xpa \ifx \csname tc@\string #1\endcsname \relax
- \else \unp@ck@tc {#1}%
- \fi \else
-\if \nxp #1\relax \unp@ck@cs {#1}\else
-\ifx #1-\set@skl \sk@B \else
-\ifx #1|\set@skl \sk@spc \else
-\fi\fi\fi\fi }
-
-\def \a@test #1{% get character attributes
-% set SKL := <#1>
- \skl@mod 0
-\ifcat \nxp #1a%
- \xpa \ifx \csname tc@\string #1\endcsname \relax
- \set@skl \sk@def
- \else \unp@ck@tc {#1}%
- \fi \else
-\if \nxp #1\relax \unp@ck@cs {#1}\else
-\ifx #1-\set@skl \sk@B \else
-\ifx #1|\set@skl \sk@spc \else
- \set@skl \sk@def
-\fi\fi\fi\fi }
-
-\def \unp@ck@cs #1{% evaluate token routine
-\xpa\unp@ck@token #1\relax }
-
-\def \unp@ck@tc #1{% evaluate letter description
-\xxpa\unp@ck@token \csname tc@\string #1\endcsname \relax }
-
-\def \unp@ck@token #1,#2\relax {% unpack letter description
-\def \skl@skel {#1}\skl@mod #2}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% awrite.sty
+% ArabTeX
+% basic contextual analysis
+% called in HMODE
+% Version 05.06.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {awrite.sty} {3.11 build output word } {05.06.2003}
+
+\UsePackage {xarbsymb} % character definitions
+\UsePackage {arabskel} % skeleton definitions
+\UsePackage {xarbskel}
+\UsePackage {aboxes} % deposit output boxes
+
+\UsePackage {arabtoks} % token definitions
+\UsePackage {arabchrs} % character macros
+
+% ACT = 1. char
+\newcount \act@cd \newcount \act@cls \newcount \act@mod
+\newcount \act@con \newcount \act@tie
+
+% CHR = 2. char
+\newcount \chr@cd \newcount \chr@cls \newcount \chr@mod
+\newcount \chr@con \newcount \chr@tie
+
+% SKL = 3. char
+\newcount \skl@cd \newcount \skl@cls \newcount \skl@mod
+\newcount \skl@con
+
+\newcount \red@mod \newcount \a@shp
+\newcount \a@max \newcount \a@min
+
+\newif \if@con \newif \if@mod@act \newif \if@high@act
+\newif \if@mod@chr \newif \if@tat \newif \if@tatl
+\newif \if@updia \newif \if@lodia \newif \ifa@sk
+\newif \ifa@min \newif \ifa@max
+
+\newdimen \a@min@dp \newdimen \a@dx \newdimen \a@dy
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifa@@write \a@@writetrue
+
+\def \a@@write #1>{% Arabic output
+\iftest@write \tracingmacros 1
+\iftest@parse \else \a@verb (#1 )>\fi\fi
+\a@write@hook
+\ifa@@write \arab@testfont \aw@beg #1>0+0*>0+0*>\fi
+\iftest@write \tracingmacros 0 \fi }
+
+\let \a@write \a@@write \let \a@write@hook \relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%em# := 25.4dx#; %ex# := 8dy#;
+
+{\catcode `p=12 \catcode `t=12 % see TeXbook, Appendix D
+\csname expandafter\endcsname \gdef
+\csname getfactor\endcsname #1pt{#1}}
+
+\def \arab@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \a@font \else
+\iftest@font \a@message{Arabic font \next selected.}\fi
+\global\let \a@font \next \a@testfont \fi }
+
+\def \a@testfont {% diagnose font, set params
+\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }%
+\dimen@ 128\fontdimen7\font % assumes \fontdimen7 < 128 pt
+\divide \dimen@ \fontdimen6\font \multiply \dimen@ 512
+\xdef \a@skew {\xpa\getfactor \the\dimen@}}
+
+\def \a@norm {% start a new character group
+\global\@highfalse \global\a@min@dp \z@ \global\a@min \z@
+\global\a@max \z@ \a@disp \z@ \@high@actfalse \global\a@sktrue }
+
+\def \aw@init {% start word, get font parameters
+\a@norm \leavevmode \a@dx .04em \a@dy .125ex }
+
+\def \a@skew {0} \def \a@slant {0}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \aw@beg #1#2*#3#4*#5{% start output
+% c m * c m * c
+ \aw@init
+ \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}%
+\ifx #1-\test@chr #3\chr@fam #3%
+ \def \next {\aw@mid #3#4*#5}%
+ \ifx #3>\ac@other #1#2*#3#4*#5<%
+ \fi \else
+\ifcat -\nxp #1\a@shift \test@chr #3%
+ \@confalse \ac@other #1#2*#3#4*#5<\else
+\fi\fi \next }
+
+\def \aw@beg #1#2*#3#4*#5{% start output
+% c m * c m * c
+\ifx #1>\let \next \relax \else
+ \aw@init
+ \test@chr #1\def \next {\aw@end #1#2*#3#4*#5}%
+\ifx #1-\test@chr #3\chr@fam #3%
+ \def \next {\aw@mid #3#4*#5}%
+ \ifx #3>\ac@other #1#2*#3#4*#5<%
+ \fi \else
+\ifcat -\nxp #1\a@shift \test@chr #3%
+ \@confalse \ac@other #1#2*#3#4*#5<\else
+\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \aw@end #1#2*#3#4*#5{% character is not joined to the left
+% c m * c m * c
+% ACT, CHR defined
+\ifx #1>\let \next \relax \else
+\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@end #1#2*#5}%
+\else \def \next {\aw@end #3#4*#5}%
+ \a@shift \test@chr #3%
+ \if \AND{\iscat -{\nxp #3}}%
+ {\NOT {\is@end@char #5}}\@contrue
+ \fi
+ \ifnum \act@cd = \a@alif \def \next {\alif@lig #2*#3#4*#5}\else
+ \ifcat \nxp ~\nxp #1\else
+ \ifx #1-\chr@fam #3\else
+% \ifcat -\nxp #1\ac@other #1#2*#3#4*#5<\else
+ \ifcat -\nxp #1\@confalse \ac@other #1#2*#3#4*#5<\else
+ \ifnum \act@cd = \a@hamzc \@confalse \else
+ \ifnum \act@cd = \a@break \@confalse \else
+ \if@con \chr@fam #3%
+ \fi
+ \ifu@gh \@mod@acttrue
+ \ifnum \act@cd = \a@qaf \set@act\sk@q@s
+ \fi
+ \else \aw@endligs #1#2*#3#4*#5%
+ \fi
+ \fi\fi
+ \a@kern
+ \ifnum \act@cd = \a@waw \under@cut #2*\else
+ \ifnum \act@cls = \rah@cls \under@cut #2*\else
+ \ifnum \act@cd = \a@hah \a@kern
+ \fi\fi\fi
+ \put@end #2*#3#4*#5<%
+ \fi\fi\fi\fi
+\fi\fi \next }
+
+\def \alif@lig #1*#2#3*#4{% alif, test for ligature
+% m * c m * c
+\a@kern
+\chr@fam #2\global\@highfalse
+\ifx #2l\def \next {\lam@alif #1*#3*#4}\else
+ \gim@test #4% closed gim?
+ \kaf@test #2% kaf-alif ?
+ \aw@lower #4%
+ \put@end #1*#2#3*#4<%
+\fi \next }
+
+\def \lam@alif #1*#2*#3#4*#5{% ligature lam-alif
+% m * m * c m * c
+\global\@highfalse \a@shift \test@chr #3\chr@fam #3%
+\gim@test #5% closed gim?
+\ifu@gh \else \kaf@test #3\fi % kaf-lam ?
+\set@act\sk@l@a
+\if@con \lig@end #1*#2*\def \next {\aw@mid #3#4*#5}%
+ \else \lig@iso #1*#2*\def \next {\aw@end #3#4*#5}%
+\fi \next }
+
+\def \lig@iso #1*#2*{% isolated shape % m1 * m2 *
+\put@lig@skel 0\a@f@iso #1*#2*\a@norm }
+
+\def \lig@end #1*#2*{% final shape % m1 * m2 *
+\put@lig@skel 1\a@f@end #1*#2*}
+
+\def \aw@lower #1{% adjust vertical position
+% uses ACT, CHR, and #1
+\ifligs
+\ifnum \chr@cd = \a@hah
+ \ifx #1l\set@lowww@act \fi
+\fi
+\ifnum \chr@cls = 3 % gim etc
+ \a@test {#1}\xxpa \unp@ck@skl \skl@skel \relax
+% \ifnum \skl@cls = 0 \set@lowww@act \fi
+ \ifnum \skl@cls = 1 \set@lowww@act \fi
+ \ifnum \skl@cls = 2 \set@lowww@act \fi
+ \ifnum \skl@cls = 5 \set@lowww@act \fi
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \aw@mid #1#2*#3#4*#5{% character is joined to the left
+% c m * c m * c
+% ACT, CHR defined
+\ifx #1>\let \next \relax \else
+\if \AND{\isx #3|}{\is@end@char #5}\def \next {\aw@mid #1#2*#5}\else
+\ifx #1-\test@chr #3\chr@fam #3\def \next {\aw@mid #3#4*#5}\else
+ \a@shift \test@chr #3\chr@fam #3%
+\ifcat -\nxp #1\ac@other #1#2*#3#4*#5<%
+\else \if \AND{\iscat -{\nxp #3}}%
+ {\NOT {\is@end@char #5}}\@contrue
+ \fi
+ \ifu@gh \else
+ \aw@midligs #1#2*#3#5%
+ \fi
+ \put@mid #2*#3#4*#5<%
+ \if@con \else % initial shape
+ \ifnum \act@cls = \kaf@cls % kaf etc.
+ \xpa\if \xpa\is@in@list \chr@skel \sk@a \sk@l >\a@kern
+ \else \unkern \a@mkern
+ \fi
+ \fi\fi
+\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \test@updia #1+#2*{% test for upper diacritic
+% m21 + m22 *
+\@updiafalse \@lodiafalse
+\global\red@mod #1 \relax
+\ifnum #1 > 9 \global\advance \red@mod -10 \fi
+\ifcase \red@mod
+ \relax\or \@updiatrue\or \@updiatrue\or \@updiatrue\or
+ \@updiatrue\or \@lodiatrue\or
+\fi
+\ifcase #2\relax
+ \relax\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or
+ \@updiatrue\or \@updiatrue\or \@lodiatrue\or \@updiatrue\or
+ \@updiatrue\or \@updiatrue\or \@updiatrue\or \@lodiatrue\or
+ \@updiatrue\or
+\fi }
+
+\def \is@updia #1*{00% is there an upper diacritic ?
+\test@updia #1*\if@updia \else \xpa \setiffalse \fi }
+
+\def \is@lodia #1*{00% is there a lower diacritic ?
+\test@updia #1*\if@lodia \else \xpa \setiffalse \fi }
+
+\def \under@cut #1*{% if no upper diacritic % m2 *
+\ifdim \a@dp > .5ex \else % \if\is@updia #1*\else
+\unkern \a@mkern \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \put@end #1*#2<{% deposit non-joining character, set new state
+% m * c m * c <
+\if@con \ac@end #1*\def \next {\aw@mid #2}%
+ \else \ac@iso #1*\def \next {\aw@end #2}%
+\fi }
+
+\def \put@mid #1*#2<{% deposit joining character, set new state
+% m * c m * c <
+\if@con \ac@mid #1*\def \next {\aw@mid #2}%
+ \else \ac@beg #1*\def \next {\aw@end #2}%
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ac@high #1{\raise.5ex\hbox{#1}}
+\def \ac@high #1{% raise punctuation
+\ifu@gh #1\else \raise.5ex\hbox{#1}\fi }
+
+% define CS names for special punctuation
+
+{\catcode`\$ 12 \gdef \a@dlr {$} % $
+\catcode `\# 12 \gdef \a@hsh {#} % #
+\catcode `\% 12 \gdef \a@pct {%}} % %
+{\catcode`\^ 12 \gdef \a@up {^} % ^
+\catcode `\_ 12 \gdef \a@dn {_} % _
+\catcode `\& 12 \gdef \a@amp {&} % &
+\catcode `\A 12 \gdef \a@dq {A} % "
+\catcode `\B 12 \gdef \f@sila {B} % ,
+\catcode `\C 12 \gdef \h@phen {C} % -
+\catcode `\D 12 \gdef \a@bar {D} % |
+\catcode `\E 12 \gdef \a@qt {E} % '
+\catcode `\F 12 \gdef \a@bsl {F} % \
+\catcode `\G 12 \gdef \a@lbc {G} % {
+\catcode `\H 12 \gdef \a@rbc {H} % }
+\catcode `\I 12 \gdef \a@ell {I} % ...
+\catcode `\J 12 \gdef \a@div {J} % :-
+\catcode `\K 12 \gdef \a@lab {K} % <
+\catcode `\L 12 \gdef \a@rab {L} % >
+\catcode `\M 12 \gdef \a@end {M} % --
+\catcode `\N 12 \gdef \a@emd {N} % ---
+\catcode `\O 12 \gdef \a@lq {O} % `
+\catcode `\P 12 \gdef \a@rq {P} % '
+
+\gdef \ac@other #1#2*#3<{% special punctuation mark
+% c * c m * c
+\case #1\of
+{ ){\ac@high {(}}
+ ({\ac@high {)}}
+ ]{\ac@high {[}}
+ [{\ac@high {]}}
+ `{\a@kern \ac@high {\char \a@lquotes }}
+ '{\ac@high {\char \a@rquotes }\a@kern }
+ ^{{\tt ^}}
+ _{{\tt _}}
+ &{{\tt \char`\&}}
+ A{{\tt "}}
+ B{{\rm \bf ,}}
+ C{\ac@high {-}}
+ D{{\tt \char`\|}}
+ E{{\tt \char'015}}
+ F{{\tt \char`\\}}
+ G{{\tt \char`\}}}
+ H{{\tt \char`\{}}
+ I{{\bf $\cdots$}}
+ J{{\bf $\div$}}
+ K{{\tt \char`\>}}
+ L{{\tt \char`\<}}
+ M{{\rm \bf \char'173}}
+ N{{\rm \bf \char'174}}
+ O{{\rm \bf `}}
+ P{{\rm \bf '}}
+% |{\char \a@break }
+ |{}
+ 4{\ac@high {\iff@rsn \char \a@f@iv \else 4\fi }\a@kern }
+ 5{\ac@high {\iff@rsn \char \a@f@v \else 5\fi }\a@kern }
+ 6{\ac@high {\iff@rsn \char \a@f@vi \else 6\fi }\a@kern }
+\default {\ac@high {#1}\a@kern }
+}\endcase
+\if@con \def \next {\aw@mid #3}%
+ \else \def \next {\aw@end #3}%
+\fi }
+%\def \next {\aw@end #3}}
+}% catcodes 12
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ac@iso #1*{% isolated shape % m *
+\put@skel 0\a@f@iso #1*\a@norm }
+
+\def \ac@end #1*{% final shape % m *
+\put@skel 1\a@f@end #1*}
+
+\def \ac@mid #1*{% medial shape % m *
+\put@skel 2\a@f@mid #1*}
+
+\def \ac@beg #1*{% initial shape % m *
+\put@skel 3\a@f@beg #1*\a@norm }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@shift {% go to next position
+% ACT := CHR
+\let \act@skel \chr@skel \act@mod \chr@mod \get@act
+\act@tie \chr@tie
+\let \if@mod@act \if@mod@chr \@mod@chrfalse }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \test@chr #1{% get attributes of next character
+% set CHR := SKL := <#1>
+\a@test #1\chr@tie 0
+\let \chr@skel \skl@skel \chr@mod \skl@mod \get@chr
+\ifnum \chr@con = 0 \@confalse \else \@contrue \fi }
+
+\def \a@test #1{% get character attributes
+% set SKL := <#1>
+\set@skl \sk@def \skl@mod 0
+\ifcat \nxp #1a%
+ \xpa \ifx \csname tc@\string #1\endcsname \relax
+ \else \unp@ck@tc {#1}%
+ \fi \else
+\if \nxp #1\relax \unp@ck@cs {#1}\else
+\ifx #1-\set@skl \sk@B \else
+\ifx #1|\set@skl \sk@spc \else
+\fi\fi\fi\fi }
+
+\def \a@test #1{% get character attributes
+% set SKL := <#1>
+ \skl@mod 0
+\ifcat \nxp #1a%
+ \xpa \ifx \csname tc@\string #1\endcsname \relax
+ \set@skl \sk@def
+ \else \unp@ck@tc {#1}%
+ \fi \else
+\if \nxp #1\relax \unp@ck@cs {#1}\else
+\ifx #1-\set@skl \sk@B \else
+\ifx #1|\set@skl \sk@spc \else
+ \set@skl \sk@def
+\fi\fi\fi\fi }
+
+\def \unp@ck@cs #1{% evaluate token routine
+\xpa\unp@ck@token #1\relax }
+
+\def \unp@ck@tc #1{% evaluate letter description
+\xxpa\unp@ck@token \csname tc@\string #1\endcsname \relax }
+
+\def \unp@ck@token #1,#2\relax {% unpack letter description
+\def \skl@skel {#1}\skl@mod #2}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/bhs.sty b/language/arabic/arabtex/texinput/bhs.sty
index 823fc4e45d..79af79cb52 100644
--- a/language/arabic/arabtex/texinput/bhs.sty
+++ b/language/arabic/arabtex/texinput/bhs.sty
@@ -1,213 +1,213 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% bhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% bhs.sty
-% Scanner for the CCAT encoding used in the machine-readable
-% Biblia Hebraica Stuttgardiana
-% to install it, include it as a LaTeX package or style option "bhs"
-% with Plain TeX, say "\input bhs.sty"
-% to activate it, say "\setcode {bhs}
-% 26.07.1999
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \bhsatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {bhs.sty} {3.09 read BHS Hebrew encoding} {26.07.1999}
-
-\UsePackage {bhslabel} % process BHS labels
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for BHS Hebrew coding
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\"=12 \catcode `\&=12
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setbhs@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d}
-\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h}
-\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l}
-%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p}
-\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p}
-\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
-%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X}
-\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X}
-\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ}
-\a@digits = {0123456789} \a@paren = {[]}
-\a@first = {)+(##&$":.,*0123456789}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for BHS
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\arab@codes
-\catcode `\& 12
-
-\gdef \bhs@beg #1#2{% start BHS scanner
-\@ssimfalse \def \next {\bhs@word #1#2}%
-\ifx #1\@\def \next {\sc@endscan #2}\else % finished
-\ifx #2\@\def \next {\bhs@testpara #1#2}\else
-\ifx #2?\def \next {\bhs@testpara #1#2}\else
-%\ifx #1W\def \next {\bhs@begW #2}\else
-%\fi
-\fi\fi\fi \next }
-
-\gdef \bhs@word #1#2{% transform input into internal notation
- \def \next {\bhs@word #2}%
-\ifx #1\@\def \next {\sc@endscan #2}\else % finished
-\ifx #1]\def \next {\bhs@word }\else
-\ifx #10\def \next {\bhs@zero #2}\else
-\ifx #17\def \next {\bhs@seven #2}\else
-\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
-%
-\ifx #1?\def \next {\bhs@query #2}\else
-\ifx #1:\def \next {\bhs@colon #2}\else
-%\ifx #1O\def \next {\bhs@O #2}\else
-%\ifx #1W\def \next {\bhs@W #2}\else
-\ifx #1|\def \sc@char {|}\sc@put \else
-%\ifx #1#2\def \next {\bhs@word #1|#2}\else
-%
-%\ifx #1.\sc@put \else
-\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else
-\ifx #1'\def \sc@char {'}\sc@put \else
-\ifx #1)\def \sc@char {Q}\sc@put \else
-\ifx #1+\def \sc@char {C}\sc@put \else
-%
-\ifx #1(\def \sc@char {P}\sc@put \else
-\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else
-\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else
-\ifx #1$\def \sc@char {x}\sc@put \else
-%
-\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else
-\ifx #1-\def \sc@char {B}\sc@put \else
-\ifx #1*\def \sc@char {*}\sc@put \else
-\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
- \sc@put
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-\fi\fi\fi\fi
-%
-%\fi
-%\fi
-\fi\fi\fi\fi
-%\fi
-\fi\fi\fi\fi
-\next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \bhs@colon #1{% shwa or chatef
-\def \next {\bhs@word }%
-\ifx #1A\def \sc@char {\nxp \a@A }\else
-\ifx #1F\def \sc@char {\nxp \a@O }\else
-\ifx #1E\def \sc@char {\nxp \a@I }\else
-\def \sc@char {\nxp \a@e }\def \next {\bhs@word #1}%
-\fi\fi\fi \sc@put \next }
-
-\gdef \bhs@O #1#2{% cholem or cholem waw
-\if\is@in@set #1\a@digits \def \next {\bhs@word #1#2O}\else
- \ifx #1W\def \sc@char {O}\def \next {\bhs@word #2}%
- \else \def \sc@char {\nxp \a@o }\def \next {\bhs@word #1#2}%
- \fi \sc@put
-\fi \next }
-
-\iffalse
-\gdef \bhs@W #1{% waw or shureq
-\def \sc@char {w}\def \next {\bhs@word #1}%
-\sc@put \next }
-
-\gdef \bhs@begW #1{% initial waw
-\ifx #1.\def \sc@char {ww}\def \next {\bhs@word }%
-\else \def \sc@char {w}\def \next {\bhs@word #1}%
-\fi \sc@put \next }
-\fi
-
-\gdef \bhs@seven #1{% meteg
-\def \next {\bhs@word }%
-\ifx #15\def \sc@char {|}\sc@put \else
-\if\is@in@set #1\a@digits \else \def \next {\bhs@word #1}%
-\fi\fi \next }
-
-\gdef \bhs@zero #1{% sop pasuq and pasuq
-\ifx #10\def \sc@char {:}\sc@put \def \next {\bhs@word }\else
-%\ifx #15\def \sc@char {K}\sc@put \def \next {\bhs@word }\else
-\ifx #15\def \next {\bhs@pasuq }\else
-\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
- \def \next {\bhs@word #1}%
-\fi\fi\fi \next }
-
-}% \arab@codes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bhs@testpara #1#2{% single initial P ?
-\ifx #1P\def \next {\bhs@para #1#2}%
-\else \def \next {\bhs@word #1#2}%
-\fi \next }
-
-\def \a@c@bhspara {% small paragraph mark
-\putwordb@x {\small \heb@font \heb@testfont
-\act@cd '164 \advance \act@cd \heb@dsp
-\space \char \act@cd \space }\test@token }
-
-\def \a@c@pasuq {% verse division
-\putwordb@x {\small $\!|\!$}\test@token }
-
-\def \bhs@para P#1\@ \@@ {% prepare paragraph mark
-\sc@back \bhspara #1\@ \@@ }
-
-\def \bhs@pasuq #1\@ \@@ {% prepare verse division
-\sc@back \pasuq #1\@ \@@ }
-
-\newcount \bhsmode \bhsmode 0
-
-\def \bhs@query #1\@ \@@ {% new line, push back the rest
-\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line
-\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line
- \sc@back #1\@ \@@ % next word
-\fi\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@bhs {% substitute the BHS scanner
-\let \sc@beg \bhs@beg \let \sc@word \bhs@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\let \a@scan \a@@scan \setbhs@codes
-\let \arab@codes \bhs@arab@codes
-\let \unarab@codes \bhs@unarab@codes
-\a@message {input encoding set to BHS conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding
-bhs\set@bhs }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bhs@arab@codes {% save and set special characters
-\csname originalTeX\endcsname
-\chardef \spc@de = \catcode`\ \catcode`\ = 10
-\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
-\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
-\chardef \hsc@de = \catcode`\# \catcode`\# = \@other
-\chardef \amc@de = \catcode`\& \catcode`\& = \@other
-\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
-
-\def \bhs@unarab@codes {% reset catcodes
-\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
-\catcode`\# = \hsc@de \catcode`\& = \amc@de
-\charsubdefmax \arab@charsubdefmax }
-
-{\catcode`\# = \@other \gdef \a@hash {#}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for BHS encoding installed.}
-
-\catcode `\@ = \bhsatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% bhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bhs.sty
+% Scanner for the CCAT encoding used in the machine-readable
+% Biblia Hebraica Stuttgardiana
+% to install it, include it as a LaTeX package or style option "bhs"
+% with Plain TeX, say "\input bhs.sty"
+% to activate it, say "\setcode {bhs}
+% 26.07.1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \bhsatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {bhs.sty} {3.09 read BHS Hebrew encoding} {26.07.1999}
+
+\UsePackage {bhslabel} % process BHS labels
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for BHS Hebrew coding
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\"=12 \catcode `\&=12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbhs@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@A {a} \def \sc@B {b} \def \sc@C {S} \def \sc@D {d}
+\def \sc@E {e} \def \sc@F {A} \def \sc@G {g} \def \sc@H {h}
+\def \sc@I {i} \def \sc@J {t} \def \sc@K {k} \def \sc@L {l}
+%\def \sc@M {m} \def \sc@N {n} \def \sc@O {O} \def \sc@P {p}
+\def \sc@M {m} \def \sc@N {n}\def\sc@O{\n@xp\a@o}\def \sc@P {p}
+\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
+%\def \sc@U {u} \def \sc@V {D} \def \sc@W {W} \def \sc@X {X}
+\def \sc@U {u} \def \sc@V {D} \def \sc@W {w} \def \sc@X {X}
+\def \sc@Y {y} \def \sc@Z {z} \def \sc@@ {QQ}
+\a@digits = {0123456789} \a@paren = {[]}
+\a@first = {)+(##&$":.,*0123456789}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for BHS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\arab@codes
+\catcode `\& 12
+
+\gdef \bhs@beg #1#2{% start BHS scanner
+\@ssimfalse \def \next {\bhs@word #1#2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #2\@\def \next {\bhs@testpara #1#2}\else
+\ifx #2?\def \next {\bhs@testpara #1#2}\else
+%\ifx #1W\def \next {\bhs@begW #2}\else
+%\fi
+\fi\fi\fi \next }
+
+\gdef \bhs@word #1#2{% transform input into internal notation
+ \def \next {\bhs@word #2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #1]\def \next {\bhs@word }\else
+\ifx #10\def \next {\bhs@zero #2}\else
+\ifx #17\def \next {\bhs@seven #2}\else
+\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
+%
+\ifx #1?\def \next {\bhs@query #2}\else
+\ifx #1:\def \next {\bhs@colon #2}\else
+%\ifx #1O\def \next {\bhs@O #2}\else
+%\ifx #1W\def \next {\bhs@W #2}\else
+\ifx #1|\def \sc@char {|}\sc@put \else
+%\ifx #1#2\def \next {\bhs@word #1|#2}\else
+%
+%\ifx #1.\sc@put \else
+\ifx #1.\def \sc@char {\nxp \a@Zu }\sc@put \else
+\ifx #1'\def \sc@char {'}\sc@put \else
+\ifx #1)\def \sc@char {Q}\sc@put \else
+\ifx #1+\def \sc@char {C}\sc@put \else
+%
+\ifx #1(\def \sc@char {P}\sc@put \else
+\if #1\a@hash \def \sc@char {\nxp \a@S }\sc@put \else
+\ifx #1&\def \sc@char {\nxp \a@s }\sc@put \else
+\ifx #1$\def \sc@char {x}\sc@put \else
+%
+\ifx #1"\def \sc@char {\nxp \a@E }\sc@put \else
+\ifx #1-\def \sc@char {B}\sc@put \else
+\ifx #1*\def \sc@char {*}\sc@put \else
+\ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \sc@put
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+\fi\fi\fi\fi
+%
+%\fi
+%\fi
+\fi\fi\fi\fi
+%\fi
+\fi\fi\fi\fi
+\next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \bhs@colon #1{% shwa or chatef
+\def \next {\bhs@word }%
+\ifx #1A\def \sc@char {\nxp \a@A }\else
+\ifx #1F\def \sc@char {\nxp \a@O }\else
+\ifx #1E\def \sc@char {\nxp \a@I }\else
+\def \sc@char {\nxp \a@e }\def \next {\bhs@word #1}%
+\fi\fi\fi \sc@put \next }
+
+\gdef \bhs@O #1#2{% cholem or cholem waw
+\if\is@in@set #1\a@digits \def \next {\bhs@word #1#2O}\else
+ \ifx #1W\def \sc@char {O}\def \next {\bhs@word #2}%
+ \else \def \sc@char {\nxp \a@o }\def \next {\bhs@word #1#2}%
+ \fi \sc@put
+\fi \next }
+
+\iffalse
+\gdef \bhs@W #1{% waw or shureq
+\def \sc@char {w}\def \next {\bhs@word #1}%
+\sc@put \next }
+
+\gdef \bhs@begW #1{% initial waw
+\ifx #1.\def \sc@char {ww}\def \next {\bhs@word }%
+\else \def \sc@char {w}\def \next {\bhs@word #1}%
+\fi \sc@put \next }
+\fi
+
+\gdef \bhs@seven #1{% meteg
+\def \next {\bhs@word }%
+\ifx #15\def \sc@char {|}\sc@put \else
+\if\is@in@set #1\a@digits \else \def \next {\bhs@word #1}%
+\fi\fi \next }
+
+\gdef \bhs@zero #1{% sop pasuq and pasuq
+\ifx #10\def \sc@char {:}\sc@put \def \next {\bhs@word }\else
+%\ifx #15\def \sc@char {K}\sc@put \def \next {\bhs@word }\else
+\ifx #15\def \next {\bhs@pasuq }\else
+\if\is@in@set #1\a@digits \def \next {\bhs@word }\else
+ \def \next {\bhs@word #1}%
+\fi\fi\fi \next }
+
+}% \arab@codes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bhs@testpara #1#2{% single initial P ?
+\ifx #1P\def \next {\bhs@para #1#2}%
+\else \def \next {\bhs@word #1#2}%
+\fi \next }
+
+\def \a@c@bhspara {% small paragraph mark
+\putwordb@x {\small \heb@font \heb@testfont
+\act@cd '164 \advance \act@cd \heb@dsp
+\space \char \act@cd \space }\test@token }
+
+\def \a@c@pasuq {% verse division
+\putwordb@x {\small $\!|\!$}\test@token }
+
+\def \bhs@para P#1\@ \@@ {% prepare paragraph mark
+\sc@back \bhspara #1\@ \@@ }
+
+\def \bhs@pasuq #1\@ \@@ {% prepare verse division
+\sc@back \pasuq #1\@ \@@ }
+
+\newcount \bhsmode \bhsmode 0
+
+\def \bhs@query #1\@ \@@ {% new line, push back the rest
+\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line
+\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line
+ \sc@back #1\@ \@@ % next word
+\fi\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@bhs {% substitute the BHS scanner
+\let \sc@beg \bhs@beg \let \sc@word \bhs@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\let \a@scan \a@@scan \setbhs@codes
+\let \arab@codes \bhs@arab@codes
+\let \unarab@codes \bhs@unarab@codes
+\a@message {input encoding set to BHS conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding
+bhs\set@bhs }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bhs@arab@codes {% save and set special characters
+\csname originalTeX\endcsname
+\chardef \spc@de = \catcode`\ \catcode`\ = 10
+\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
+\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
+\chardef \hsc@de = \catcode`\# \catcode`\# = \@other
+\chardef \amc@de = \catcode`\& \catcode`\& = \@other
+\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
+
+\def \bhs@unarab@codes {% reset catcodes
+\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
+\catcode`\# = \hsc@de \catcode`\& = \amc@de
+\charsubdefmax \arab@charsubdefmax }
+
+{\catcode`\# = \@other \gdef \a@hash {#}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for BHS encoding installed.}
+
+\catcode `\@ = \bhsatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/bhslabel.sty b/language/arabic/arabtex/texinput/bhslabel.sty
index 258bc8adcd..3ed9b1dee9 100644
--- a/language/arabic/arabtex/texinput/bhslabel.sty
+++ b/language/arabic/arabtex/texinput/bhslabel.sty
@@ -1,149 +1,149 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% bhslabel.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% bhslabel.sty
-% called by bhs.sty
-% generate markup from BHS label notation
-% 01.12.1998
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {bhslabel.sty} {3.00 BHS label markup} {01.12.1998}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa \gdef \csname a@c@\string ~\endcsname #1 {% get BHS label
-%\tracingmacros 1
-\def \bhs@@label {#1}\bhs@label #1\@
-\tracingmacros 0
-\bhs@out \test@token }
-
-\errorcontextlines 10
-
-\def \is@digit #1{\is@in@list #10123456789>}
-
-\def \is@label #1{\is@in@list #1abcvwxyz>}
-
-\def \bhs@err {% illegal BHS label
-\errmessage {illegal BHS label `\bhs@@label'}}
-
-\def \bhs@label #1{% start processing BHS label
-\if\is@label #1\bhs@init {#1}\let \next \bhs@A
-\else \let \next \bhs@err
-\fi \next }
-
-{\catcode `\" 12
-\gdef \bhs@A #1{% get label value
-\ifx #1\@ \bhs@store \let \next \relax \else
-\ifx #1"\let \next \bhs@B \else
-\if\is@label #1\bhs@store % null value
- \bhs@init {#1}\let \next \bhs@A \else
-\if\is@digit #1\def \bhs@value {#1}\let \next \bhs@D \else
- \let \next \bhs@err
-\fi\fi\fi\fi \next }
-
-\gdef \bhs@B #1"{% get label string value
-\def \bhs@kind {S}\def \bhs@value {#1}\bhs@C }
-
-\gdef \bhs@C #1{% get next label after string
-\ifx #1\@ \bhs@store \let \next \relax \else
-\if\is@label #1\bhs@store
- \bhs@init {#1}\let \next \bhs@A \else
- \let \next \bhs@err
-\fi\fi \next }
-
-\gdef \bhs@D #1{% get next digit
-\def \bhs@kind {I}%
-\ifx #1\@ \bhs@store \let \next \relax \else
-\if\is@label #1\bhs@store
- \bhs@init {#1}\let \next \bhs@A \else
-\if\is@digit #1\edef \bhs@value {\bhs@value #1}%
- \let \next \bhs@D \else
- \let \next \bhs@err
-\fi\fi\fi \next }
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcount \bhs@cnt
-\newif \ifbhs@outa \newif \ifbhs@outx
-\newif \ifbhs@outy \newif \ifbhs@outz
-
-\def \bhs@init #1{% init label
-\def \bhs@name {#1}\def \bhs@value {}\def \bhs@kind {N}}
-
-\def \bhs@store {% store label value and execute
-\begingroup \edef \x {\endgroup \if N\bhs@kind \nxp \bhs@inc {\bhs@name }%
-\else \nxp \bhs@set {\bhs@name }{\bhs@value }{\bhs@kind }\fi }\x }
-
-\def \bhs@set #1#2#3{% set label value
-\csname bhs@#1set\endcsname {#2}{#3}}
-
-\def \bhs@inc #1{% increase label value
-\if I\csname bhs@#1kind\endcsname \bhs@cnt \csname bhs@#1value\endcsname
- \advance \bhs@cnt 1 \begingroup
- \edef \x {\endgroup \nxp \bhs@set {#1}{\the\bhs@cnt }{I}}\x
-\else \errmessage {BHS level `#1' has no numeric value}%
- \bhs@set {#1}{1}{I}%
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bhs@aset #1#2{% set level a
-\def \bhs@avalue {#1}\def \bhs@akind {#2}\bhs@outatrue
-\bhs@xset {0}{I}\bhs@yset {0}{I}\bhs@zset {0}{I}}
-
-\def \bhs@bset #1#2{% set level b
-\def \bhs@bvalue {#1}\def \bhs@bkind {#2}}
-
-\def \bhs@cset #1#2{% set level c
-\def \bhs@cvalue {#1}\def \bhs@ckind {#2}}
-
-\def \bhs@zset #1#2{% set level z
-\def \bhs@zvalue {#1}\bhs@outztrue \def \bhs@zkind {#2}}
-
-\def \bhs@yset #1#2{% set level y
-\def \bhs@ykind {#2}\def \bhs@value {#1}%
-\ifx \bhs@yvalue \bhs@value \else
- \def \bhs@yvalue {#1}\bhs@outytrue \bhs@zreset
- \if #2I\ifnum #1 = 0
- \bhs@outyfalse \bhs@outzfalse
- \fi\fi
-\fi }
-
-\def \bhs@xset #1#2{% set level x
-\def \bhs@xkind {#2}\def \bhs@value {#1}%
-\ifx \bhs@xvalue \bhs@value \else
- \def \bhs@xvalue {#1}\bhs@outxtrue \bhs@yreset
- \if #2I\ifnum #1 = 0
- \bhs@outxfalse \bhs@outyfalse \bhs@outzfalse
- \fi\fi
-\fi }
-
-\def \bhs@yreset {% reset level y
-\def \bhs@yvalue {1}\def \bhs@ykind {I}\bhs@outytrue \bhs@zreset }
-
-\def \bhs@zreset {% reset level z
-\def \bhs@zvalue {1}\def \bhs@zkind {I}\bhs@outztrue }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \bhs@yout {% verse
-\putwordb@x {\tracingmacros 0 \rm $^{\bhs@yvalue }$\space }\a@spacetrue }
-
-\def \bhs@xout {% chapter
-\putwordb@x {\tracingmacros 0 \bf \bhs@xvalue \space }}
-
-\def \bhs@aout {% heading
-{\tracingmacros 0 \rm \hfill \bhs@@label }\bigskip }
-
-\def \bhs@out {% print new label
-\ifbhs@outa \bhs@outafalse \bhs@aout \fi
-\ifbhs@outx \bhs@outxfalse \bhs@xout \fi
-\ifbhs@outy \bhs@outyfalse \bhs@yout \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% bhslabel.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bhslabel.sty
+% called by bhs.sty
+% generate markup from BHS label notation
+% 01.12.1998
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {bhslabel.sty} {3.00 BHS label markup} {01.12.1998}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \gdef \csname a@c@\string ~\endcsname #1 {% get BHS label
+%\tracingmacros 1
+\def \bhs@@label {#1}\bhs@label #1\@
+\tracingmacros 0
+\bhs@out \test@token }
+
+\errorcontextlines 10
+
+\def \is@digit #1{\is@in@list #10123456789>}
+
+\def \is@label #1{\is@in@list #1abcvwxyz>}
+
+\def \bhs@err {% illegal BHS label
+\errmessage {illegal BHS label `\bhs@@label'}}
+
+\def \bhs@label #1{% start processing BHS label
+\if\is@label #1\bhs@init {#1}\let \next \bhs@A
+\else \let \next \bhs@err
+\fi \next }
+
+{\catcode `\" 12
+\gdef \bhs@A #1{% get label value
+\ifx #1\@ \bhs@store \let \next \relax \else
+\ifx #1"\let \next \bhs@B \else
+\if\is@label #1\bhs@store % null value
+ \bhs@init {#1}\let \next \bhs@A \else
+\if\is@digit #1\def \bhs@value {#1}\let \next \bhs@D \else
+ \let \next \bhs@err
+\fi\fi\fi\fi \next }
+
+\gdef \bhs@B #1"{% get label string value
+\def \bhs@kind {S}\def \bhs@value {#1}\bhs@C }
+
+\gdef \bhs@C #1{% get next label after string
+\ifx #1\@ \bhs@store \let \next \relax \else
+\if\is@label #1\bhs@store
+ \bhs@init {#1}\let \next \bhs@A \else
+ \let \next \bhs@err
+\fi\fi \next }
+
+\gdef \bhs@D #1{% get next digit
+\def \bhs@kind {I}%
+\ifx #1\@ \bhs@store \let \next \relax \else
+\if\is@label #1\bhs@store
+ \bhs@init {#1}\let \next \bhs@A \else
+\if\is@digit #1\edef \bhs@value {\bhs@value #1}%
+ \let \next \bhs@D \else
+ \let \next \bhs@err
+\fi\fi\fi \next }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcount \bhs@cnt
+\newif \ifbhs@outa \newif \ifbhs@outx
+\newif \ifbhs@outy \newif \ifbhs@outz
+
+\def \bhs@init #1{% init label
+\def \bhs@name {#1}\def \bhs@value {}\def \bhs@kind {N}}
+
+\def \bhs@store {% store label value and execute
+\begingroup \edef \x {\endgroup \if N\bhs@kind \nxp \bhs@inc {\bhs@name }%
+\else \nxp \bhs@set {\bhs@name }{\bhs@value }{\bhs@kind }\fi }\x }
+
+\def \bhs@set #1#2#3{% set label value
+\csname bhs@#1set\endcsname {#2}{#3}}
+
+\def \bhs@inc #1{% increase label value
+\if I\csname bhs@#1kind\endcsname \bhs@cnt \csname bhs@#1value\endcsname
+ \advance \bhs@cnt 1 \begingroup
+ \edef \x {\endgroup \nxp \bhs@set {#1}{\the\bhs@cnt }{I}}\x
+\else \errmessage {BHS level `#1' has no numeric value}%
+ \bhs@set {#1}{1}{I}%
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bhs@aset #1#2{% set level a
+\def \bhs@avalue {#1}\def \bhs@akind {#2}\bhs@outatrue
+\bhs@xset {0}{I}\bhs@yset {0}{I}\bhs@zset {0}{I}}
+
+\def \bhs@bset #1#2{% set level b
+\def \bhs@bvalue {#1}\def \bhs@bkind {#2}}
+
+\def \bhs@cset #1#2{% set level c
+\def \bhs@cvalue {#1}\def \bhs@ckind {#2}}
+
+\def \bhs@zset #1#2{% set level z
+\def \bhs@zvalue {#1}\bhs@outztrue \def \bhs@zkind {#2}}
+
+\def \bhs@yset #1#2{% set level y
+\def \bhs@ykind {#2}\def \bhs@value {#1}%
+\ifx \bhs@yvalue \bhs@value \else
+ \def \bhs@yvalue {#1}\bhs@outytrue \bhs@zreset
+ \if #2I\ifnum #1 = 0
+ \bhs@outyfalse \bhs@outzfalse
+ \fi\fi
+\fi }
+
+\def \bhs@xset #1#2{% set level x
+\def \bhs@xkind {#2}\def \bhs@value {#1}%
+\ifx \bhs@xvalue \bhs@value \else
+ \def \bhs@xvalue {#1}\bhs@outxtrue \bhs@yreset
+ \if #2I\ifnum #1 = 0
+ \bhs@outxfalse \bhs@outyfalse \bhs@outzfalse
+ \fi\fi
+\fi }
+
+\def \bhs@yreset {% reset level y
+\def \bhs@yvalue {1}\def \bhs@ykind {I}\bhs@outytrue \bhs@zreset }
+
+\def \bhs@zreset {% reset level z
+\def \bhs@zvalue {1}\def \bhs@zkind {I}\bhs@outztrue }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \bhs@yout {% verse
+\putwordb@x {\tracingmacros 0 \rm $^{\bhs@yvalue }$\space }\a@spacetrue }
+
+\def \bhs@xout {% chapter
+\putwordb@x {\tracingmacros 0 \bf \bhs@xvalue \space }}
+
+\def \bhs@aout {% heading
+{\tracingmacros 0 \rm \hfill \bhs@@label }\bigskip }
+
+\def \bhs@out {% print new label
+\ifbhs@outa \bhs@outafalse \bhs@aout \fi
+\ifbhs@outx \bhs@outxfalse \bhs@xout \fi
+\ifbhs@outy \bhs@outyfalse \bhs@yout \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/buck.sty b/language/arabic/arabtex/texinput/buck.sty
index be6c80d8e8..367dbcd206 100644
--- a/language/arabic/arabtex/texinput/buck.sty
+++ b/language/arabic/arabtex/texinput/buck.sty
@@ -1,229 +1,229 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% buck.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% buck.sty
-% Scanner for Tim Buckwalter's encoding
-% to install it, include it as a LaTeX style option "buck"
-% with Plain TeX, say "\input buck.sty"
-% to activate it, say "\setcode {buck}
-% 27.10.97
-% 04.02.98
-% 28.07.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \buckatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \buckatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {buck.sty} {0.95 Tim Buckwalter's input encoding } {28.07.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa\def \csname sc@\string }\endcsname {Qy} % hamza on yah
-
-\xpa\def \csname sc@\string {\endcsname {-""} % medial alif waSla
-
-\def \sc@def #1#2{\xpa\def\csname sc@\string #1\endcsname {#2}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setbuck@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@}
-\def \sc@B {@} \def \sc@C {@} \def \sc@G {@} \def \sc@I {@}
-\def \sc@J {@} \def \sc@L {@} \def \sc@M {@} \def \sc@O {@}
-\def \sc@P {@} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {@}
-\def \sc@V {@} \def \sc@W {@} \def \sc@X {@}
-
-\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw}
-\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b}
-\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G}
-\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F}
-\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x}
-\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z}
-\def \sc@E {P} \def \sc@g {R} \sc@def _ {B}
-\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l}
-\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w}
-\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN}
-\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i}
-\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
-
-\a@digits = {0123456789} \a@paren = {()[]}
-\a@first = {"`}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\long \def \buck@special #1{% check for special cases
-\if \is@in@set #1\a@first % normal case
- \def \next {\test@word #1}\else
-\if \relax \nxp #1% % command
- \def \next {\test@command #1}\else
- \def \next {\test@word #1}% % normal case
-\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifk@sra
-\def \lowkasra {\k@sratrue } \def \hikasra {\k@srafalse }
-
-\def \a@putkasra #1{% modification at kasra % m1
-\ifcase #1\put@kasra \or
-\ifqur@n \put@kasra \else \put@fatha \fi \put@shadda \or
-\put@ihamza \put@kasra \or \put@fatha \put@hamza \put@shadda \or
-\put@madda \put@kasra \or \put@hamzalo \put@kasra \or
-\fi }
-
-\def \a@putkasratan #1{% modification at kasratan % m1
-\ifcase #1\put@kasratan \or
-\ifqur@n \put@kasratan \else \put@fathatan \fi \put@shadda \or
-\put@ihamza \put@kasratan \or \put@fathatan \put@hamza \put@shadda \or
-\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or
-\fi }
-
-\def \put@ihamza {% hamza at <i> depending on carrier
-\ifh@mza \ifnum \act@cd = \a@alif@iso \put@hamzalo \else
- \ifnum \act@cd = \a@alif@end \put@hamzalo \else
- \ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else
- \ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else
- \put@hamza
- \fi\fi\fi\fi
-\else \put@hamza \fi }
-
-\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
- \put@con #1\def \next {\syl@voctest }%
-\ifx #1|\put@con Q\else
-\ifx #1A\put@con a\add@madda \@sukfalse \else
- \add@hamza
-\ifx #1y\put@con Y%
-\ifqur@n \add@hamzalow \fi \else
-\ifx #1u\put@con w\else
-\ifx #1i\put@con a\add@hamzalow \else
-\fi\fi\fi\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \buck@cat {% change catcodes
-\catcode `\# 11
-\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11
-\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11
-\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 }
-
-\def \buck@recat {% change catcodes back
-\catcode `\# 6
-\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4
-\catcode `\< 12 \catcode `\2 11 \catcode `\* 12 \catcode `\$ 3
-\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 }
-
-\def \buck@codes {% save and set special characters
-\a@arabcodes \buck@cat }
-
-\def \unbuck@codes {% reset catcodes
-\a@unarabcodes \buck@recat }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa \def \csname a@c@end\string{arabtext\string}\endcsname {\end{arabtext} }
-
-{\catcode `\[ 1 \catcode `\] 2 \catcode `\{ 11 \catcode `\} 11
-\gdef \a@c@end {arabtext}[\end[arabtext]]
-]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \TB({\bgroup \def \a@c@end {\end }\buck@cat \T@B}% prepare reading
-
-\def \T@B #1){\protect \a@ins #1>\egroup }% now read the argument
-
-\def \<{\bgroup \def \a@c@end {\end }\buck@cat \T@@B}% prepare reading
-
-\def \T@@B #1\>{\protect \a@ins #1>\egroup }% now read the argument
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\catcode `\[ 1 \catcode `\{ 11
-\gdef \buck@beg #1[% start the TB scanner
-\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
-\@ssimfalse
- \def \next [\buck@word #1}%
-\ifx #1\@ \def \next [\sc@endscan }\else % finished
-\ifx #1{\def \next [\buck@lbrace }\else
-\ifx #1"\def \next [\buck@lquote }\else
-\fi\fi\fi \next }
-} % catcodes 1 and 11
-
-{\catcode `\^^M=13 \catcode `\~ 11 %
-\gdef \buck@word #1#2{% transform input into internal notation
- \def \next {\buck@word #2}%
-\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
-\ifx #1-\def \next {\buck@minus #2}\else %
-\ifx #1"\def \next {\buck@rquote #2}\else %
-\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character
-\ifx #1#2\def \next {\buck@two #1}\else %
-% \ifx #2~\def \next {\buck@word #1}\else %
-% \fi %
- \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
- \else \def \sc@char {\nxp #1}%
- \fi %
- \sc@put %
-\fi\fi\fi\fi\fi \next }%
-} % catcodes 13 and 11
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\catcode `\# 11 \catcode `\& 6
-\gdef \buck@two &1{% double character
-\def \next {\buck@word -&1}\edef \sc@char {\csname sc@&1\endcsname}%
-\ifx &1#\def \next {\buck@word &1}\fi
-\sc@put \next }}
-
-\def \buck@minus {% hyphen between words
-\def \sc@char {-}\sc@put \buck@beg }
-
-\def \buck@lquote {% left quote
-\def \sc@char {`}\sc@put \buck@beg }
-
-\def \buck@rquote {% right quote
-\def \sc@char {'}\sc@put \buck@word }
-
-\def \buck@lbrace {% initial left brace: alif wasla
-\def \sc@char {""}\sc@put \buck@word }
-
-\def \buck@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\def \buck@endscan \@@ {\global\let \a@scan \a@@scan }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \a@buck {buck} \let \buck@setcode \setcode
-\let \a@arabcodes \arab@codes \let \a@unarabcodes \unarab@codes
-
-\def \set@buck {% substitute new scanner
-\let \sc@beg \buck@beg \let \sc@word \buck@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\let \a@scan \a@@scan \setbuck@codes
-\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes
-\let \test@special \buck@special
-\message {input coding set to Tim Buckwalter's encoding conventions}}
-
-\def \setcode #1{\def \next {#1}% switch input coding
-\ifx \next \a@buck \set@buck \else
- \buck@setcode {#1}
-\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\message {scanner for Tim Buckwalter's encoding installed.}
-
-\catcode `\@ = \buckatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% buck.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% buck.sty
+% Scanner for Tim Buckwalter's encoding
+% to install it, include it as a LaTeX style option "buck"
+% with Plain TeX, say "\input buck.sty"
+% to activate it, say "\setcode {buck}
+% 27.10.97
+% 04.02.98
+% 28.07.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \buckatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \buckatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {buck.sty} {0.95 Tim Buckwalter's input encoding } {28.07.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa\def \csname sc@\string }\endcsname {Qy} % hamza on yah
+
+\xpa\def \csname sc@\string {\endcsname {-""} % medial alif waSla
+
+\def \sc@def #1#2{\xpa\def\csname sc@\string #1\endcsname {#2}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setbuck@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@@ {@} \def \sc@c {@} \def \sc@e {@}
+\def \sc@B {@} \def \sc@C {@} \def \sc@G {@} \def \sc@I {@}
+\def \sc@J {@} \def \sc@L {@} \def \sc@M {@} \def \sc@O {@}
+\def \sc@P {@} \def \sc@Q {@} \def \sc@R {@} \def \sc@U {@}
+\def \sc@V {@} \def \sc@W {@} \def \sc@X {@}
+
+\sc@def ' {Q|} \sc@def | {QA} \sc@def > {Qa} \sc@def & {Qw}
+\sc@def < {Qi} \sc@def ## {|} \def \sc@A {A} \def \sc@b {b}
+\def \sc@p {T} \def \sc@t {t} \def \sc@v {C} \def \sc@j {G}
+\def \sc@H {H} \def \sc@x {X} \def \sc@d {d} \sc@def * {F}
+\def \sc@r {r} \def \sc@z {z} \def \sc@s {s} \sc@def $ {x}
+\def \sc@S {S} \def \sc@D {D} \def \sc@T {V} \def \sc@Z {Z}
+\def \sc@E {P} \def \sc@g {R} \sc@def _ {B}
+\def \sc@f {f} \def \sc@q {q} \def \sc@k {k} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {n} \def \sc@h {h} \def \sc@w {w}
+\def \sc@Y {Y} \def \sc@y {y} \def \sc@F {"aN} \def \sc@N {"uN}
+\def \sc@K {"iN} \def \sc@a {"a} \def \sc@u {"u} \def \sc@i {"i}
+\sc@def ~ {\n@xp \a@Ze} \def \sc@o {""} \sc@def ` {"\n@xp \a@a}
+
+\a@digits = {0123456789} \a@paren = {()[]}
+\a@first = {"`}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\long \def \buck@special #1{% check for special cases
+\if \is@in@set #1\a@first % normal case
+ \def \next {\test@word #1}\else
+\if \relax \nxp #1% % command
+ \def \next {\test@command #1}\else
+ \def \next {\test@word #1}% % normal case
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifk@sra
+\def \lowkasra {\k@sratrue } \def \hikasra {\k@srafalse }
+
+\def \a@putkasra #1{% modification at kasra % m1
+\ifcase #1\put@kasra \or
+\ifqur@n \put@kasra \else \put@fatha \fi \put@shadda \or
+\put@ihamza \put@kasra \or \put@fatha \put@hamza \put@shadda \or
+\put@madda \put@kasra \or \put@hamzalo \put@kasra \or
+\fi }
+
+\def \a@putkasratan #1{% modification at kasratan % m1
+\ifcase #1\put@kasratan \or
+\ifqur@n \put@kasratan \else \put@fathatan \fi \put@shadda \or
+\put@ihamza \put@kasratan \or \put@fathatan \put@hamza \put@shadda \or
+\put@madda \put@kasratan \or \put@hamzalo \put@kasratan \or
+\fi }
+
+\def \put@ihamza {% hamza at <i> depending on carrier
+\ifh@mza \ifnum \act@cd = \a@alif@iso \put@hamzalo \else
+ \ifnum \act@cd = \a@alif@end \put@hamzalo \else
+ \ifnum \act@cd = \a@lam@alif@iso \put@hamzalo \else
+ \ifnum \act@cd = \a@lam@alif@end \put@hamzalo \else
+ \put@hamza
+ \fi\fi\fi\fi
+\else \put@hamza \fi }
+
+\def \syl@hamzaverb #1{% verbatim hamza, #1 = carrier
+ \put@con #1\def \next {\syl@voctest }%
+\ifx #1|\put@con Q\else
+\ifx #1A\put@con a\add@madda \@sukfalse \else
+ \add@hamza
+\ifx #1y\put@con Y%
+\ifqur@n \add@hamzalow \fi \else
+\ifx #1u\put@con w\else
+\ifx #1i\put@con a\add@hamzalow \else
+\fi\fi\fi\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \buck@cat {% change catcodes
+\catcode `\# 11
+\catcode `\' 11 \catcode `\| 11 \catcode `\> 11 \catcode `\& 11
+\catcode `\< 11 \catcode `\} 11 \catcode `\* 11 \catcode `\$ 11
+\catcode `\_ 11 \catcode `\~ 11 \catcode `\` 11 \catcode `\{ 11 }
+
+\def \buck@recat {% change catcodes back
+\catcode `\# 6
+\catcode `\' 12 \catcode `\| 12 \catcode `\> 12 \catcode `\& 4
+\catcode `\< 12 \catcode `\2 11 \catcode `\* 12 \catcode `\$ 3
+\catcode `\_ 8 \catcode `\~ 13 \catcode `\` 12 \catcode `\{ 1 }
+
+\def \buck@codes {% save and set special characters
+\a@arabcodes \buck@cat }
+
+\def \unbuck@codes {% reset catcodes
+\a@unarabcodes \buck@recat }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \def \csname a@c@end\string{arabtext\string}\endcsname {\end{arabtext} }
+
+{\catcode `\[ 1 \catcode `\] 2 \catcode `\{ 11 \catcode `\} 11
+\gdef \a@c@end {arabtext}[\end[arabtext]]
+]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \TB({\bgroup \def \a@c@end {\end }\buck@cat \T@B}% prepare reading
+
+\def \T@B #1){\protect \a@ins #1>\egroup }% now read the argument
+
+\def \<{\bgroup \def \a@c@end {\end }\buck@cat \T@@B}% prepare reading
+
+\def \T@@B #1\>{\protect \a@ins #1>\egroup }% now read the argument
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\[ 1 \catcode `\{ 11
+\gdef \buck@beg #1[% start the TB scanner
+\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
+\@ssimfalse
+ \def \next [\buck@word #1}%
+\ifx #1\@ \def \next [\sc@endscan }\else % finished
+\ifx #1{\def \next [\buck@lbrace }\else
+\ifx #1"\def \next [\buck@lquote }\else
+\fi\fi\fi \next }
+} % catcodes 1 and 11
+
+{\catcode `\^^M=13 \catcode `\~ 11 %
+\gdef \buck@word #1#2{% transform input into internal notation
+ \def \next {\buck@word #2}%
+\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
+\ifx #1-\def \next {\buck@minus #2}\else %
+\ifx #1"\def \next {\buck@rquote #2}\else %
+\if \nxp ^^M\nxp #1\def \next {\buck@par #1#2}\else % active character
+\ifx #1#2\def \next {\buck@two #1}\else %
+% \ifx #2~\def \next {\buck@word #1}\else %
+% \fi %
+ \ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+ \else \def \sc@char {\nxp #1}%
+ \fi %
+ \sc@put %
+\fi\fi\fi\fi\fi \next }%
+} % catcodes 13 and 11
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\# 11 \catcode `\& 6
+\gdef \buck@two &1{% double character
+\def \next {\buck@word -&1}\edef \sc@char {\csname sc@&1\endcsname}%
+\ifx &1#\def \next {\buck@word &1}\fi
+\sc@put \next }}
+
+\def \buck@minus {% hyphen between words
+\def \sc@char {-}\sc@put \buck@beg }
+
+\def \buck@lquote {% left quote
+\def \sc@char {`}\sc@put \buck@beg }
+
+\def \buck@rquote {% right quote
+\def \sc@char {'}\sc@put \buck@word }
+
+\def \buck@lbrace {% initial left brace: alif wasla
+\def \sc@char {""}\sc@put \buck@word }
+
+\def \buck@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\def \buck@endscan \@@ {\global\let \a@scan \a@@scan }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \a@buck {buck} \let \buck@setcode \setcode
+\let \a@arabcodes \arab@codes \let \a@unarabcodes \unarab@codes
+
+\def \set@buck {% substitute new scanner
+\let \sc@beg \buck@beg \let \sc@word \buck@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\let \a@scan \a@@scan \setbuck@codes
+\let \arab@codes \buck@codes \let \unarab@codes \unbuck@codes
+\let \test@special \buck@special
+\message {input coding set to Tim Buckwalter's encoding conventions}}
+
+\def \setcode #1{\def \next {#1}% switch input coding
+\ifx \next \a@buck \set@buck \else
+ \buck@setcode {#1}
+\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\message {scanner for Tim Buckwalter's encoding installed.}
+
+\catcode `\@ = \buckatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/captions.def b/language/arabic/arabtex/texinput/captions.def
index 3d4b48ec3d..ea45d76c9a 100644
--- a/language/arabic/arabtex/texinput/captions.def
+++ b/language/arabic/arabtex/texinput/captions.def
@@ -1,76 +1,76 @@
-% chapter = al-fa.slu
-% chapter = al-bAbu
-% section = al-fa.slu
-% section = al-bandu
-% section = al-qismu
-% paragraph = al-fa.slu
-% paragraph = al-bandu
-% paragraph = al-mAddaTu
-% overview = al-nna.zraTu
-% abbreviations = al-mula_h_ha.su
-% heading = al-`unwAnu
-% heading = al-maqAdaTu
-% tableofcontents = al-mu.htawayAtu
-% tableofcontents = al-ma.dmUnu
-% listoffigures = qA'imaTu al-.suwaru
-% listoftables = qA'imaTu al-^gadAwilu
-% listofpictures = qA'imaTu al-rusUmu
-% index = al-fihrisu (al-fihristu)
-% bibliography = al-marA^gi`u
-% references = al-ma.sAdiru
-% abstract = al-mula_h_ha.su
-% abstract = al-^s^samlu
-% appendix = al-mul.haqu
-% attachments = al-murfaqAtu
-% number = al-raqmu
-% number = al-`adadu
-% title = al-`unwAnu
-% table = al-^gadwalu
-% picture = al-.s.sUraTu
-% picture = al-rrasmu
-% page = al-.s.saf.haTu
-% column = al-`amUdu
-% introduction = al-tta.h.dIru
-% introduction = al-muqaddamaTu
-% introduction = al-ttaw.sIlu
-% introduction = al-'id_hAlu
-% list = al-qA'imaTu
-% note = al-mal.hU.zaTu
-% note = al-mulA.ha.zaTu
-% entry = al-nnafdaTu
-
-% first page = a.s-.saf.haTu al-'Ul_A
-% previous page = a.s-.saf.haTu qablu
-% next page = a.s-.saf.haTu ba`du
-% next page = a.s-.saf.haTu at-tAlI
-% last page = a.s-.saf.haTu al-'A_hiraTu
-% contents = mu_htaw_A
-% part = al-^guz'u
-% part = al-qismu
-% see also = 'un.zur 'aydaN
-% drawing = ar-rasmu
-
-
-\def\captionsenglish{%
-\def\prefacename{Preface}%
-\def\refname{References}%
-\def\abstractname{Abstract}%
-\def\bibname{Bibliography}%
-\def\chaptername{Chapter}%
-\def\appendixname{Appendix}%
-\def\contentsname{Contents}%
-\def\listfigurename{List of Figures}%
-\def\listtablename{List of Tables}%
-\def\indexname{Index}%
-\def\figurename{Figure}%
-\def\tablename{Table}%
-\def\partname{Part}%
-\def\enclname{encl}%
-\def\ccname{cc}%
-\def\headtoname{To}%
-\def\pagename{Page}%
-\def\seename{see}%
-\def\alsoname{see also}}
-
-\let\captionsUSenglish=\captionsenglish
-
+% chapter = al-fa.slu
+% chapter = al-bAbu
+% section = al-fa.slu
+% section = al-bandu
+% section = al-qismu
+% paragraph = al-fa.slu
+% paragraph = al-bandu
+% paragraph = al-mAddaTu
+% overview = al-nna.zraTu
+% abbreviations = al-mula_h_ha.su
+% heading = al-`unwAnu
+% heading = al-maqAdaTu
+% tableofcontents = al-mu.htawayAtu
+% tableofcontents = al-ma.dmUnu
+% listoffigures = qA'imaTu al-.suwaru
+% listoftables = qA'imaTu al-^gadAwilu
+% listofpictures = qA'imaTu al-rusUmu
+% index = al-fihrisu (al-fihristu)
+% bibliography = al-marA^gi`u
+% references = al-ma.sAdiru
+% abstract = al-mula_h_ha.su
+% abstract = al-^s^samlu
+% appendix = al-mul.haqu
+% attachments = al-murfaqAtu
+% number = al-raqmu
+% number = al-`adadu
+% title = al-`unwAnu
+% table = al-^gadwalu
+% picture = al-.s.sUraTu
+% picture = al-rrasmu
+% page = al-.s.saf.haTu
+% column = al-`amUdu
+% introduction = al-tta.h.dIru
+% introduction = al-muqaddamaTu
+% introduction = al-ttaw.sIlu
+% introduction = al-'id_hAlu
+% list = al-qA'imaTu
+% note = al-mal.hU.zaTu
+% note = al-mulA.ha.zaTu
+% entry = al-nnafdaTu
+
+% first page = a.s-.saf.haTu al-'Ul_A
+% previous page = a.s-.saf.haTu qablu
+% next page = a.s-.saf.haTu ba`du
+% next page = a.s-.saf.haTu at-tAlI
+% last page = a.s-.saf.haTu al-'A_hiraTu
+% contents = mu_htaw_A
+% part = al-^guz'u
+% part = al-qismu
+% see also = 'un.zur 'aydaN
+% drawing = ar-rasmu
+
+
+\def\captionsenglish{%
+\def\prefacename{Preface}%
+\def\refname{References}%
+\def\abstractname{Abstract}%
+\def\bibname{Bibliography}%
+\def\chaptername{Chapter}%
+\def\appendixname{Appendix}%
+\def\contentsname{Contents}%
+\def\listfigurename{List of Figures}%
+\def\listtablename{List of Tables}%
+\def\indexname{Index}%
+\def\figurename{Figure}%
+\def\tablename{Table}%
+\def\partname{Part}%
+\def\enclname{encl}%
+\def\ccname{cc}%
+\def\headtoname{To}%
+\def\pagename{Page}%
+\def\seename{see}%
+\def\alsoname{see also}}
+
+\let\captionsUSenglish=\captionsenglish
+
diff --git a/language/arabic/arabtex/texinput/cp1256.sty b/language/arabic/arabtex/texinput/cp1256.sty
index 9926dd3705..7e5a568735 100644
--- a/language/arabic/arabtex/texinput/cp1256.sty
+++ b/language/arabic/arabtex/texinput/cp1256.sty
@@ -1,173 +1,173 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% cp1256.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% cp1256.sty
-% Scanner for Windows CP 1256
-% to install it, include it as a LaTeX package or style option "cp1256"
-% with Plain TeX, say "\input cp1256.sty"
-% to activate it, say "\setcode{cp1256}" or "\setcode{arabwin}"
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \awinatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \awinatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {cp1256.sty} {3.11 CP 1256 Windows encoding} {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \awin@catcodes {% assignments for MAC Hebrew
-\countdef \is@m=2 \countdef \is@n=4
-\is@m = 128 \is@n = 64
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m = 160 \is@n = 32
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^^a0 12 }
-
-{\awin@catcodes
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setawin@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^80 {p} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@}
-\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@}
-\def \sc@^^88 {@} \def \sc@^^89 {@}
-\def \sc@^^8a {\n@xp\a@t} \def \sc@^^8b {@}
-\def \sc@^^8c {@} \def \sc@^^8d {J}
-\def \sc@^^8e {j} \def \sc@^^8f {\n@xp\a@d}
-
-\def \sc@^^90 {g} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {@}
-\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@}
-\def \sc@^^98 {\n@xp\a@k} \def \sc@^^99 {@}
-\def \sc@^^9a {\n@xp\a@r} \def \sc@^^9b {@}
-\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@}
-\def \sc@^^9f {\n@xp\a@n}
-
-\def \sc@^^a0 {@} \def \sc@^^a1 {,} \def \sc@^^a2 {@} \def \sc@^^a3 {@}
-\def \sc@^^a4 {$} \def \sc@^^a5 {@} \def \sc@^^a6 {@} \def \sc@^^a7 {@}
-\def \sc@^^a8 {@} \def \sc@^^a9 {@} \def \sc@^^aa {h} \def \sc@^^ab {@}
-\def \sc@^^ac {@} \def \sc@^^ad {-} \def \sc@^^ae {@} \def \sc@^^af {@}
-
-\def \sc@^^b0 {@} \def \sc@^^b1 {@} \def \sc@^^b2 {@} \def \sc@^^b3 {@}
-\def \sc@^^b4 {@} \def \sc@^^b5 {@} \def \sc@^^b6 {@} \def \sc@^^b7 {@}
-\def \sc@^^b8 {@} \def \sc@^^b9 {@} \def \sc@^^ba {;} \def \sc@^^bb {@}
-\def \sc@^^bc {@} \def \sc@^^bd {@} \def \sc@^^be {@} \def \sc@^^bf {?}
-
-\def \sc@^^c0 {\n@xp\a@H}
-\def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa}
-\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A}
-\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C}
-\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d}
-
-\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s}
-\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {@}
-\def \sc@^^d8 {V} \def \sc@^^d9 {Z} \def \sc@^^da {P} \def \sc@^^db {R}
-\def \sc@^^dc {B} \def \sc@^^dd {f} \def \sc@^^de {q} \def \sc@^^df {k}
-
-\def \sc@^^e0 {@} \def \sc@^^e1 {l} \def \sc@^^e2 {@} \def \sc@^^e3 {m}
-\def \sc@^^e4 {n} \def \sc@^^e5 {h}
-\def \sc@^^e6 {w} \def \sc@^^e7 {@}
-\def \sc@^^e8 {@} \def \sc@^^e9 {@} \def \sc@^^ea {@} \def \sc@^^eb {@}
-\def \sc@^^ec {Y} \def \sc@^^ed {y} \def \sc@^^ee {@} \def \sc@^^ef {@}
-
-\def \sc@^^f0 {"aN}\def \sc@^^f1 {"uN} \def \sc@^^f2 {"iN} \def \sc@^^f3 {"a}
-\def \sc@^^f4 {@} \def \sc@^^f5 {"u} \def \sc@^^f6 {"i} \def \sc@^^f7 {@}
-\def \sc@^^f8 {\n@xp\a@Ze} \def \sc@^^f9 {@}
-\def \sc@^^fa {""} \def \sc@^^fb {@}
-\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {E}
-\a@digits = {0123456789}
-%\a@paren = {()[]^^a8^^a9^^e2^^e3}
-\a@paren = {()[]}
-\a@first = {"`^^e6}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \awin@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase{\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \awin@beg #1{% start CP 1256 scanner
-\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting
- \@ssimfalse
-%\urd@true
-\ifx #1^^c7\def \next {\awin@alif}\else
-\def \next {\awin@word #1}\fi \next }
-
-{\catcode `\^^M=13 \endlinechar = -1
-\gdef \awin@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\sc@endscan }\else % finished
-\if \nxp ^^M\nxp #1\def \next {\awin@par #1}% active character
-\else \def \next {\awin@w@rd #1}%
-\fi\fi \next }%
-} % catcode 13
-
-\gdef \awin@w@rd #1#2{% special cases
-\case #1\of
-{ #2{\awin@word #1-#2}
- -{\awin@minus #2}
- "{\awin@dquote #2}
- ^^a0{\sc@back #2}
- ^^ad{\awin@minus #2}
-\default {\awin@@word #1#2}
-}\endcase }
-
-\gdef \awin@@word #1{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put \awin@word }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \awin@alif {% alif at the beginning of a word
-\def \sc@char {a}\sc@put \awin@word }
-
-\gdef \awin@dquote {% double quote
-\def \sc@char {\a@dq}\sc@put \awin@word }
-
-\gdef \awin@minus {% hyphen between words
-\def \sc@char {-}\sc@put \awin@beg }
-
-\gdef \awin@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\gdef \awin@endscan \@@ {\global\let \a@scan \awin@scan }
-} % \awin@catcodes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@awin {% select the CP 1256 scanner
-\let \sc@beg \awin@beg \let \sc@word \awin@word
-\let \sc@back \sc@@back \let \sc@endscan \awin@endscan
-\global\let \a@scan \awin@scan \setawin@codes
-\awin@catcodes \yahdots
-\a@message {input encoding set to Windows CP 1256 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding
-awin\set@awin cp1256\set@awin }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for Windows code page 1256 installed.}
-
-\catcode `\@ = \awinatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% cp1256.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cp1256.sty
+% Scanner for Windows CP 1256
+% to install it, include it as a LaTeX package or style option "cp1256"
+% with Plain TeX, say "\input cp1256.sty"
+% to activate it, say "\setcode{cp1256}" or "\setcode{arabwin}"
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \awinatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \awinatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {cp1256.sty} {3.11 CP 1256 Windows encoding} {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \awin@catcodes {% assignments for MAC Hebrew
+\countdef \is@m=2 \countdef \is@n=4
+\is@m = 128 \is@n = 64
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 159 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m = 160 \is@n = 32
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+{\awin@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setawin@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^80 {p} \def \sc@^^81 {@} \def \sc@^^82 {@} \def \sc@^^83 {@}
+\def \sc@^^84 {@} \def \sc@^^85 {@} \def \sc@^^86 {@} \def \sc@^^87 {@}
+\def \sc@^^88 {@} \def \sc@^^89 {@}
+\def \sc@^^8a {\n@xp\a@t} \def \sc@^^8b {@}
+\def \sc@^^8c {@} \def \sc@^^8d {J}
+\def \sc@^^8e {j} \def \sc@^^8f {\n@xp\a@d}
+
+\def \sc@^^90 {g} \def \sc@^^91 {@} \def \sc@^^92 {@} \def \sc@^^93 {@}
+\def \sc@^^94 {@} \def \sc@^^95 {@} \def \sc@^^96 {@} \def \sc@^^97 {@}
+\def \sc@^^98 {\n@xp\a@k} \def \sc@^^99 {@}
+\def \sc@^^9a {\n@xp\a@r} \def \sc@^^9b {@}
+\def \sc@^^9c {@} \def \sc@^^9d {@} \def \sc@^^9e {@}
+\def \sc@^^9f {\n@xp\a@n}
+
+\def \sc@^^a0 {@} \def \sc@^^a1 {,} \def \sc@^^a2 {@} \def \sc@^^a3 {@}
+\def \sc@^^a4 {$} \def \sc@^^a5 {@} \def \sc@^^a6 {@} \def \sc@^^a7 {@}
+\def \sc@^^a8 {@} \def \sc@^^a9 {@} \def \sc@^^aa {h} \def \sc@^^ab {@}
+\def \sc@^^ac {@} \def \sc@^^ad {-} \def \sc@^^ae {@} \def \sc@^^af {@}
+
+\def \sc@^^b0 {@} \def \sc@^^b1 {@} \def \sc@^^b2 {@} \def \sc@^^b3 {@}
+\def \sc@^^b4 {@} \def \sc@^^b5 {@} \def \sc@^^b6 {@} \def \sc@^^b7 {@}
+\def \sc@^^b8 {@} \def \sc@^^b9 {@} \def \sc@^^ba {;} \def \sc@^^bb {@}
+\def \sc@^^bc {@} \def \sc@^^bd {@} \def \sc@^^be {@} \def \sc@^^bf {?}
+
+\def \sc@^^c0 {\n@xp\a@H}
+\def \sc@^^c1 {Q|} \def \sc@^^c2 {QA} \def \sc@^^c3 {Qa}
+\def \sc@^^c4 {Qw} \def \sc@^^c5 {Qi} \def \sc@^^c6 {Qy} \def \sc@^^c7 {A}
+\def \sc@^^c8 {b} \def \sc@^^c9 {T} \def \sc@^^ca {t} \def \sc@^^cb {C}
+\def \sc@^^cc {G} \def \sc@^^cd {H} \def \sc@^^ce {X} \def \sc@^^cf {d}
+
+\def \sc@^^d0 {F} \def \sc@^^d1 {r} \def \sc@^^d2 {z} \def \sc@^^d3 {s}
+\def \sc@^^d4 {x} \def \sc@^^d5 {S} \def \sc@^^d6 {D} \def \sc@^^d7 {@}
+\def \sc@^^d8 {V} \def \sc@^^d9 {Z} \def \sc@^^da {P} \def \sc@^^db {R}
+\def \sc@^^dc {B} \def \sc@^^dd {f} \def \sc@^^de {q} \def \sc@^^df {k}
+
+\def \sc@^^e0 {@} \def \sc@^^e1 {l} \def \sc@^^e2 {@} \def \sc@^^e3 {m}
+\def \sc@^^e4 {n} \def \sc@^^e5 {h}
+\def \sc@^^e6 {w} \def \sc@^^e7 {@}
+\def \sc@^^e8 {@} \def \sc@^^e9 {@} \def \sc@^^ea {@} \def \sc@^^eb {@}
+\def \sc@^^ec {Y} \def \sc@^^ed {y} \def \sc@^^ee {@} \def \sc@^^ef {@}
+
+\def \sc@^^f0 {"aN}\def \sc@^^f1 {"uN} \def \sc@^^f2 {"iN} \def \sc@^^f3 {"a}
+\def \sc@^^f4 {@} \def \sc@^^f5 {"u} \def \sc@^^f6 {"i} \def \sc@^^f7 {@}
+\def \sc@^^f8 {\n@xp\a@Ze} \def \sc@^^f9 {@}
+\def \sc@^^fa {""} \def \sc@^^fb {@}
+\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {E}
+\a@digits = {0123456789}
+%\a@paren = {()[]^^a8^^a9^^e2^^e3}
+\a@paren = {()[]}
+\a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \awin@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase{\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \awin@beg #1{% start CP 1256 scanner
+\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting
+ \@ssimfalse
+%\urd@true
+\ifx #1^^c7\def \next {\awin@alif}\else
+\def \next {\awin@word #1}\fi \next }
+
+{\catcode `\^^M=13 \endlinechar = -1
+\gdef \awin@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\sc@endscan }\else % finished
+\if \nxp ^^M\nxp #1\def \next {\awin@par #1}% active character
+\else \def \next {\awin@w@rd #1}%
+\fi\fi \next }%
+} % catcode 13
+
+\gdef \awin@w@rd #1#2{% special cases
+\case #1\of
+{ #2{\awin@word #1-#2}
+ -{\awin@minus #2}
+ "{\awin@dquote #2}
+ ^^a0{\sc@back #2}
+ ^^ad{\awin@minus #2}
+\default {\awin@@word #1#2}
+}\endcase }
+
+\gdef \awin@@word #1{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put \awin@word }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \awin@alif {% alif at the beginning of a word
+\def \sc@char {a}\sc@put \awin@word }
+
+\gdef \awin@dquote {% double quote
+\def \sc@char {\a@dq}\sc@put \awin@word }
+
+\gdef \awin@minus {% hyphen between words
+\def \sc@char {-}\sc@put \awin@beg }
+
+\gdef \awin@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\gdef \awin@endscan \@@ {\global\let \a@scan \awin@scan }
+} % \awin@catcodes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@awin {% select the CP 1256 scanner
+\let \sc@beg \awin@beg \let \sc@word \awin@word
+\let \sc@back \sc@@back \let \sc@endscan \awin@endscan
+\global\let \a@scan \awin@scan \setawin@codes
+\awin@catcodes \yahdots
+\a@message {input encoding set to Windows CP 1256 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the CP 1256 encoding
+awin\set@awin cp1256\set@awin }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for Windows code page 1256 installed.}
+
+\catcode `\@ = \awinatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/etrans.sty b/language/arabic/arabtex/texinput/etrans.sty
index 71c3ff2be0..315273b63a 100644
--- a/language/arabic/arabtex/texinput/etrans.sty
+++ b/language/arabic/arabtex/texinput/etrans.sty
@@ -1,9 +1,9 @@
-% etrans.sty
-
-\endinput
-
-% this module is no more needed.
-% its effect is now taken care of by "atrans.sty"; use \settrans{english}
-% 04.11.1998
-% Klaus Lagally
-
+% etrans.sty
+
+\endinput
+
+% this module is no more needed.
+% its effect is now taken care of by "atrans.sty"; use \settrans{english}
+% 04.11.1998
+% Klaus Lagally
+
diff --git a/language/arabic/arabtex/texinput/gedalin.sty b/language/arabic/arabtex/texinput/gedalin.sty
index 5f1e8bf57b..da9aa0ccb5 100644
--- a/language/arabic/arabtex/texinput/gedalin.sty
+++ b/language/arabic/arabtex/texinput/gedalin.sty
@@ -1,112 +1,112 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% gedalin.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% gedalin.sty
-% Scanner for Michael Gedalin's special Hebrew encoding
-% to activate it, say "\setcode {gedalin}"
-% presupposes the packages "arabtex.sty" and "hebtex.sty"
-% 10.09.2001
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \gedatcode \undefined \else \xpa \endinput \fi
-
-\chardef \gedatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {gedalin.sty}
-{3.10 scanner for Michael Gedalin's Hebrew encoding} {10.09.2001}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setged@codes {\seta@codes % activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\def \sc@a {\n@xp\a@S} \def \sc@b {n} \def \sc@c {b}
-\def \sc@d {g} \def \sc@e {q} \def \sc@f {k}
-\def \sc@g {P} \def \sc@h {y} \def \sc@i {\n@xp\a@N}
-\def \sc@j {X} \def \sc@k {l} \def \sc@l {\n@xp\a@K}
-\def \sc@m {S} \def \sc@n {m} \def \sc@o {\n@xp\a@M}
-\def \sc@p {p} \def \sc@q {/} \def \sc@r {r}
-\def \sc@s {d} \def \sc@t {Q} \def \sc@u {w}
-\def \sc@v {h} \def \sc@w {,} \def \sc@x {s}
-\def \sc@y {C} \def \sc@z {z}
-%
-\a@digits = {0123456789} \a@paren = {()[]} \a@first = {;,.}
-%\iffalse
-\tc@def \a@M {\act@cd \hc@mf } % mem sofit
-\tc@def \a@N {\act@cd \hc@nf } % nun sofit
-\tc@def \a@K {\act@cd \hc@kf } % kaf sofit
-\tc@def \a@P {\act@cd \hc@ff } % peh sofit
-\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit
-%\fi
-\globaldefs=0
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ged@scan #1>{% modified scanner call: token sequence -> \a@tokens
-\iftest@scan \ifshow \else \lowercase {\a@verb #1>}\fi
-\tracingmacros = 1 \fi
-\global\def \a@rest {}\global\a@tokens = {}%
-\novocalize \sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-\def \ged@word #1#2{% transform input into internal notation
-\@ssimfalse \def \next {\ged@word #2}%
-\ifx #1\@ \let \next \relax \else
-\ifcat \nxp #1\relax \def \next {\ged@cs #1#2}\else % control sequence
- \ifx #1-\def \sc@char {B}\sc@put \else
- \ifx #1/\def \sc@char {.}\sc@put \else
- \ifx #1`\def \sc@char {;}\sc@put \else
- \ifx #1w\def \sc@char {,}\sc@put \else
- \ifx #1q\def \sc@char {/}\sc@put \else
- \ifx #1|\def \sc@char {\nxp \a@U}\sc@put \else
- \ifx #1;\def \sc@char {\nxp \a@P \nxp \a@U}\sc@put \else
- \ifx #1,\def \sc@char {t\nxp \a@U}\sc@put \else
- \ifx #1.\def \sc@char {\nxp \a@Z \nxp \a@U}\sc@put \else
- \ifcat \noexpand #1-\def \sc@char {#1}\sc@put \else
- \ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }\else
- \def \sc@char {#1}%
- \fi \sc@put
-\fi\fi\fi\fi\fi\fi
-\fi\fi\fi\fi\fi\fi \next }
-
-\def \g@d@cs #1#2{% test word end
-\def \sc@char {#1}\sc@put
-\ifx #2\@ \def \next {\sc@endscan #2}\else
-\ifcat -\nxp #2 \def \next {\ged@word #2}\else
-\def \next {\sc@back #2}\fi \fi \next }
-
-\def \ged@cs #1#2{% control sequence within a word; push back?
-\xpa \ifx #1\closegeresh \def \next {\g@d@cs {\nxp \lq }#2}\else
-\xpa \ifx #1\closequote \def \next {\g@d@cs {`}#2}\else
- \def \next {\sc@back #1#2}%
-\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \ged@select {% select the new scanner
-%\heb@catcodes % inside hebtex.sty; to make sure
-\let \sc@beg \ged@word \let \sc@word \ged@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\setged@codes \global\let \a@scan \ged@scan
-\let \h@put@end \h@put@mid
-\a@message {input encoding set to Michael Gedalin's Hebrew encoding}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the encoding
-gedalin\ged@select }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for Michael Gedalin's Hebrew encoding installed.}
-\setcode{gedalin}
-
-\catcode `\@ = \gedatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% gedalin.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% gedalin.sty
+% Scanner for Michael Gedalin's special Hebrew encoding
+% to activate it, say "\setcode {gedalin}"
+% presupposes the packages "arabtex.sty" and "hebtex.sty"
+% 10.09.2001
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \gedatcode \undefined \else \xpa \endinput \fi
+
+\chardef \gedatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {gedalin.sty}
+{3.10 scanner for Michael Gedalin's Hebrew encoding} {10.09.2001}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setged@codes {\seta@codes % activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def \sc@a {\n@xp\a@S} \def \sc@b {n} \def \sc@c {b}
+\def \sc@d {g} \def \sc@e {q} \def \sc@f {k}
+\def \sc@g {P} \def \sc@h {y} \def \sc@i {\n@xp\a@N}
+\def \sc@j {X} \def \sc@k {l} \def \sc@l {\n@xp\a@K}
+\def \sc@m {S} \def \sc@n {m} \def \sc@o {\n@xp\a@M}
+\def \sc@p {p} \def \sc@q {/} \def \sc@r {r}
+\def \sc@s {d} \def \sc@t {Q} \def \sc@u {w}
+\def \sc@v {h} \def \sc@w {,} \def \sc@x {s}
+\def \sc@y {C} \def \sc@z {z}
+%
+\a@digits = {0123456789} \a@paren = {()[]} \a@first = {;,.}
+%\iffalse
+\tc@def \a@M {\act@cd \hc@mf } % mem sofit
+\tc@def \a@N {\act@cd \hc@nf } % nun sofit
+\tc@def \a@K {\act@cd \hc@kf } % kaf sofit
+\tc@def \a@P {\act@cd \hc@ff } % peh sofit
+\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit
+%\fi
+\globaldefs=0
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ged@scan #1>{% modified scanner call: token sequence -> \a@tokens
+\iftest@scan \ifshow \else \lowercase {\a@verb #1>}\fi
+\tracingmacros = 1 \fi
+\global\def \a@rest {}\global\a@tokens = {}%
+\novocalize \sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+\def \ged@word #1#2{% transform input into internal notation
+\@ssimfalse \def \next {\ged@word #2}%
+\ifx #1\@ \let \next \relax \else
+\ifcat \nxp #1\relax \def \next {\ged@cs #1#2}\else % control sequence
+ \ifx #1-\def \sc@char {B}\sc@put \else
+ \ifx #1/\def \sc@char {.}\sc@put \else
+ \ifx #1`\def \sc@char {;}\sc@put \else
+ \ifx #1w\def \sc@char {,}\sc@put \else
+ \ifx #1q\def \sc@char {/}\sc@put \else
+ \ifx #1|\def \sc@char {\nxp \a@U}\sc@put \else
+ \ifx #1;\def \sc@char {\nxp \a@P \nxp \a@U}\sc@put \else
+ \ifx #1,\def \sc@char {t\nxp \a@U}\sc@put \else
+ \ifx #1.\def \sc@char {\nxp \a@Z \nxp \a@U}\sc@put \else
+ \ifcat \noexpand #1-\def \sc@char {#1}\sc@put \else
+ \ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }\else
+ \def \sc@char {#1}%
+ \fi \sc@put
+\fi\fi\fi\fi\fi\fi
+\fi\fi\fi\fi\fi\fi \next }
+
+\def \g@d@cs #1#2{% test word end
+\def \sc@char {#1}\sc@put
+\ifx #2\@ \def \next {\sc@endscan #2}\else
+\ifcat -\nxp #2 \def \next {\ged@word #2}\else
+\def \next {\sc@back #2}\fi \fi \next }
+
+\def \ged@cs #1#2{% control sequence within a word; push back?
+\xpa \ifx #1\closegeresh \def \next {\g@d@cs {\nxp \lq }#2}\else
+\xpa \ifx #1\closequote \def \next {\g@d@cs {`}#2}\else
+ \def \next {\sc@back #1#2}%
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \ged@select {% select the new scanner
+%\heb@catcodes % inside hebtex.sty; to make sure
+\let \sc@beg \ged@word \let \sc@word \ged@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\setged@codes \global\let \a@scan \ged@scan
+\let \h@put@end \h@put@mid
+\a@message {input encoding set to Michael Gedalin's Hebrew encoding}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the encoding
+gedalin\ged@select }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for Michael Gedalin's Hebrew encoding installed.}
+\setcode{gedalin}
+
+\catcode `\@ = \gedatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hebchrs.sty b/language/arabic/arabtex/texinput/hebchrs.sty
index fd1ffbef83..bdae9c1de5 100644
--- a/language/arabic/arabtex/texinput/hebchrs.sty
+++ b/language/arabic/arabtex/texinput/hebchrs.sty
@@ -1,105 +1,105 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebchrs.sty
-% ArabTeX
-% dynamic letter token definitions for Hebrew
-% Version 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hebchrs.sty} {3.11 Hebrew letter token definitions } {26.04.2003}
-
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \def@hebchars {% define character macros for Hebrew
-\tc@clearall
-\gdef \tc@@ {\act@cd \hc@@ } % illegal
-\gdef \tc@a {\act@cd \hc@a } % aleph
-\gdef \tc@b {\act@cd \hc@b } % beth
-\gdef \tc@d {\act@cd \hc@d } % daleth
-\gdef \tc@f {\act@cd \hc@f \@finaltrue } % pe
-\gdef \tc@f {\act@cd \hc@f \@finaltrue \act@mod\r@phe } % pe
-\gdef \tc@g {\act@cd \hc@j } % gimel
-\gdef \tc@h {\act@cd \hc@h } % heh
-\gdef \tc@i {\act@cd \hc@y } % chireq plene
-\gdef \tc@k {\act@cd \hc@k \@finaltrue } % kaph
-\gdef \tc@l {\act@cd \hc@l } % lamed
-\gdef \tc@m {\act@cd \hc@m \@finaltrue } % mem
-\gdef \tc@n {\act@cd \hc@n \@finaltrue } % nun
-\gdef \tc@p {\act@cd \hc@f \@finaltrue } % pe
-\gdef \tc@q {\act@cd \hc@q } % qoph
-\gdef \tc@r {\act@cd \hc@r } % resh
-\gdef \tc@s {\act@cd \hc@s } % samekh
-\gdef \tc@t {\act@cd \hc@t } % taw
-\gdef \tc@v {\act@cd \hc@b } % beth
-\gdef \tc@v {\act@cd \hc@b \act@mod\r@phe } % beth
-\gdef \tc@w {\act@cd \hc@w } % waw
-\gdef \tc@x {\act@cd \hc@si \act@mod \shind@t } % shin with dot
-\gdef \tc@y {\act@cd \hc@y } % yod
-\gdef \tc@z {\act@cd \hc@z } % zayin
-
-\gdef \tc@A {\act@cd \hc@a } % aleph again
-\gdef \tc@B {\act@cd \hc@B } % maqqeph
-\gdef \tc@C {\act@cd \hc@tt } % thet
-\gdef \tc@D {\act@cd \hc@d \@dageshtrue } % daleth dagesh
-\gdef \tc@F {\act@cd \hc@d } % daleth
-\gdef \tc@G {\act@cd \hc@j } % gimel
-\gdef \tc@H {\act@cd \hc@h \@dageshtrue } % heh mappiq
-\gdef \tc@K {\act@cd \hc@K } % paseq
-\gdef \tc@M {\act@cd \hc@M } % phantom 1: box
-\gdef \tc@N {\act@cd \hc@N } % phantom 2: space
-\gdef \tc@O {\act@cd \hc@w \act@mod \rd@t } % cholem maleh
-\gdef \tc@P {\act@cd \hc@P } % ayin
-\gdef \tc@Q {\act@cd \hc@a } % aleph again
-\gdef \tc@R {\act@cd \hc@j \@dageshtrue } % gimel dagesh
-\gdef \tc@S {\act@cd \hc@ss \@finaltrue } % sade
-\gdef \tc@T {\act@cd \hc@h \@dageshtrue } % he
-\gdef \tc@U {\act@cd \hc@w \@dageshtrue } % shureq
-\gdef \tc@V {\act@cd \hc@t \@dageshtrue } % taw dagesh
-\gdef \tc@W {\act@cd \hc@N } % phantom 2
-\gdef \tc@X {\act@cd \hc@hh } % chet
-\gdef \tc@Y {\act@cd \hc@y } % yod
-
-\tc@def \a@b {\act@cd \hc@b \@dageshtrue } % beth dagesh
-\tc@def \a@f {\act@cd \hc@f \@finaltrue \@dageshtrue } % pe dagesh
-\tc@def \a@i {\act@cd \hc@ey } % yod yod
-\tc@def \a@k {\act@cd \hc@k \@finaltrue \@dageshtrue } % kaph dagesh
-\tc@def \a@o {\act@cd \hc@oy } % waw yod
-\tc@def \a@s {\act@cd \hc@si \act@mod \sind@t } % sin with dot
-\tc@def \a@w {\act@cd \hc@v } % waw waw
-\tc@def \a@B {\act@cd \hc@b \act@mod \r@phe } % veyz
-\tc@def \a@F {\act@cd \hc@f \@finaltrue \act@mod\r@phe }% fey
-\tc@def \a@H {\act@cd \hc@h } % silent he
-\tc@def \a@K {\act@cd \hc@kf } % kaf sofit
-\tc@def \a@M {\act@cd \hc@mf } % mem sofit
-\tc@def \a@N {\act@cd \hc@nf } % nun sofit
-\tc@def \a@P {\act@cd \hc@ff } % peh sofit
-\tc@def \a@S {\act@cd \hc@si } % sin without dot
-\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}}% end of dynamic definitions for Hebrew
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \tc@def #1{% define letter description \tc@#1
-\xpa \gdef \csname tc@\string #1\endcsname }
-
-\def \a@letters {abcdefghijklmnopqrstuvwxyz}
-
-\def \tc@clear #1{% reset all letter descriptions, also for Hebrew!
-\ifx #1\relax \relax \else \uppercase {\gdef \1{#1}}%
-\xpa \gdef \csname tc@#1\endcsname {\relax}%
-\xpa \gdef \csname tc@\1\endcsname {\relax}%
-\xpa \gdef \csname tc@\xpa\string\csname a@#1\endcsname\endcsname {\relax}%
-\xpa \gdef \csname tc@\xpa\string\csname a@\1\endcsname\endcsname {\relax}%
-\xpa \tc@clear \fi }
-
-\def \tc@clearall {% reset all \tc@x definitions
-\xpa \tc@clear \a@letters \relax }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebchrs.sty
+% ArabTeX
+% dynamic letter token definitions for Hebrew
+% Version 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hebchrs.sty} {3.11 Hebrew letter token definitions } {26.04.2003}
+
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \def@hebchars {% define character macros for Hebrew
+\tc@clearall
+\gdef \tc@@ {\act@cd \hc@@ } % illegal
+\gdef \tc@a {\act@cd \hc@a } % aleph
+\gdef \tc@b {\act@cd \hc@b } % beth
+\gdef \tc@d {\act@cd \hc@d } % daleth
+\gdef \tc@f {\act@cd \hc@f \@finaltrue } % pe
+\gdef \tc@f {\act@cd \hc@f \@finaltrue \act@mod\r@phe } % pe
+\gdef \tc@g {\act@cd \hc@j } % gimel
+\gdef \tc@h {\act@cd \hc@h } % heh
+\gdef \tc@i {\act@cd \hc@y } % chireq plene
+\gdef \tc@k {\act@cd \hc@k \@finaltrue } % kaph
+\gdef \tc@l {\act@cd \hc@l } % lamed
+\gdef \tc@m {\act@cd \hc@m \@finaltrue } % mem
+\gdef \tc@n {\act@cd \hc@n \@finaltrue } % nun
+\gdef \tc@p {\act@cd \hc@f \@finaltrue } % pe
+\gdef \tc@q {\act@cd \hc@q } % qoph
+\gdef \tc@r {\act@cd \hc@r } % resh
+\gdef \tc@s {\act@cd \hc@s } % samekh
+\gdef \tc@t {\act@cd \hc@t } % taw
+\gdef \tc@v {\act@cd \hc@b } % beth
+\gdef \tc@v {\act@cd \hc@b \act@mod\r@phe } % beth
+\gdef \tc@w {\act@cd \hc@w } % waw
+\gdef \tc@x {\act@cd \hc@si \act@mod \shind@t } % shin with dot
+\gdef \tc@y {\act@cd \hc@y } % yod
+\gdef \tc@z {\act@cd \hc@z } % zayin
+
+\gdef \tc@A {\act@cd \hc@a } % aleph again
+\gdef \tc@B {\act@cd \hc@B } % maqqeph
+\gdef \tc@C {\act@cd \hc@tt } % thet
+\gdef \tc@D {\act@cd \hc@d \@dageshtrue } % daleth dagesh
+\gdef \tc@F {\act@cd \hc@d } % daleth
+\gdef \tc@G {\act@cd \hc@j } % gimel
+\gdef \tc@H {\act@cd \hc@h \@dageshtrue } % heh mappiq
+\gdef \tc@K {\act@cd \hc@K } % paseq
+\gdef \tc@M {\act@cd \hc@M } % phantom 1: box
+\gdef \tc@N {\act@cd \hc@N } % phantom 2: space
+\gdef \tc@O {\act@cd \hc@w \act@mod \rd@t } % cholem maleh
+\gdef \tc@P {\act@cd \hc@P } % ayin
+\gdef \tc@Q {\act@cd \hc@a } % aleph again
+\gdef \tc@R {\act@cd \hc@j \@dageshtrue } % gimel dagesh
+\gdef \tc@S {\act@cd \hc@ss \@finaltrue } % sade
+\gdef \tc@T {\act@cd \hc@h \@dageshtrue } % he
+\gdef \tc@U {\act@cd \hc@w \@dageshtrue } % shureq
+\gdef \tc@V {\act@cd \hc@t \@dageshtrue } % taw dagesh
+\gdef \tc@W {\act@cd \hc@N } % phantom 2
+\gdef \tc@X {\act@cd \hc@hh } % chet
+\gdef \tc@Y {\act@cd \hc@y } % yod
+
+\tc@def \a@b {\act@cd \hc@b \@dageshtrue } % beth dagesh
+\tc@def \a@f {\act@cd \hc@f \@finaltrue \@dageshtrue } % pe dagesh
+\tc@def \a@i {\act@cd \hc@ey } % yod yod
+\tc@def \a@k {\act@cd \hc@k \@finaltrue \@dageshtrue } % kaph dagesh
+\tc@def \a@o {\act@cd \hc@oy } % waw yod
+\tc@def \a@s {\act@cd \hc@si \act@mod \sind@t } % sin with dot
+\tc@def \a@w {\act@cd \hc@v } % waw waw
+\tc@def \a@B {\act@cd \hc@b \act@mod \r@phe } % veyz
+\tc@def \a@F {\act@cd \hc@f \@finaltrue \act@mod\r@phe }% fey
+\tc@def \a@H {\act@cd \hc@h } % silent he
+\tc@def \a@K {\act@cd \hc@kf } % kaf sofit
+\tc@def \a@M {\act@cd \hc@mf } % mem sofit
+\tc@def \a@N {\act@cd \hc@nf } % nun sofit
+\tc@def \a@P {\act@cd \hc@ff } % peh sofit
+\tc@def \a@S {\act@cd \hc@si } % sin without dot
+\tc@def \a@Z {\act@cd \hc@sf } % tsadeh sofit
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}}% end of dynamic definitions for Hebrew
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \tc@def #1{% define letter description \tc@#1
+\xpa \gdef \csname tc@\string #1\endcsname }
+
+\def \a@letters {abcdefghijklmnopqrstuvwxyz}
+
+\def \tc@clear #1{% reset all letter descriptions, also for Hebrew!
+\ifx #1\relax \relax \else \uppercase {\gdef \1{#1}}%
+\xpa \gdef \csname tc@#1\endcsname {\relax}%
+\xpa \gdef \csname tc@\1\endcsname {\relax}%
+\xpa \gdef \csname tc@\xpa\string\csname a@#1\endcsname\endcsname {\relax}%
+\xpa \gdef \csname tc@\xpa\string\csname a@\1\endcsname\endcsname {\relax}%
+\xpa \tc@clear \fi }
+
+\def \tc@clearall {% reset all \tc@x definitions
+\xpa \tc@clear \a@letters \relax }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hebsymb.sty b/language/arabic/arabtex/texinput/hebsymb.sty
index b9936e9816..5854d40694 100644
--- a/language/arabic/arabtex/texinput/hebsymb.sty
+++ b/language/arabic/arabtex/texinput/hebsymb.sty
@@ -1,59 +1,59 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebsymb.sty
-% ArabTeX
-% Hebrew character assignments
-% in font "hclassic"
-% 12.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hebsymb.sty} {3.10 for oldcode font assignments} {12.06.2000}
-
-% will be modified in "hewrite.sty" for other font assignments
-
-\def \hc@@ {33} % illegal
-\def \hc@B {45} % maqqeph
-\def \hc@a {96} % aleph
-\def \hc@b {97} % beth
-\def \hc@j {98} % gimel
-\def \hc@d {99} % daleth
-\def \hc@h {100} % he
-\def \hc@w {101} % waw
-\def \hc@z {102} % zayin
-\def \hc@hh {103} % chet
-\def \hc@tt {104} % ttet
-\def \hc@y {105} % yod
-\def \hc@kf {106} % kaph, final
-\def \hc@k {107} % kaph
-\def \hc@l {108} % lamed
-\def \hc@mf {109} % mem, final
-\def \hc@m {110} % mem
-\def \hc@nf {111} % nun, final
-\def \hc@n {112} % nun
-\def \hc@s {113} % samech
-\def \hc@P {114} % ayin
-\def \hc@ff {115} % pe, final
-\def \hc@f {116} % pe, f
-\def \hc@sf {117} % ssade, final
-\def \hc@ss {118} % ssade
-\def \hc@q {119} % qoph
-\def \hc@r {120} % resh
-\def \hc@si {121} % ssin
-\def \hc@t {122} % taw
-\def \hc@Pv {123} % vowel ayin
-\def \hc@v {124} % vav
-\def \hc@K {125} % paseq
-\def \hc@M {126} % phantom 1
-\def \hc@N {127} % phantom 2
-\def \hc@ay {128} % ay
-\def \hc@ey {129} % ey
-\def \hc@oy {130} % oy
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebsymb.sty
+% ArabTeX
+% Hebrew character assignments
+% in font "hclassic"
+% 12.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hebsymb.sty} {3.10 for oldcode font assignments} {12.06.2000}
+
+% will be modified in "hewrite.sty" for other font assignments
+
+\def \hc@@ {33} % illegal
+\def \hc@B {45} % maqqeph
+\def \hc@a {96} % aleph
+\def \hc@b {97} % beth
+\def \hc@j {98} % gimel
+\def \hc@d {99} % daleth
+\def \hc@h {100} % he
+\def \hc@w {101} % waw
+\def \hc@z {102} % zayin
+\def \hc@hh {103} % chet
+\def \hc@tt {104} % ttet
+\def \hc@y {105} % yod
+\def \hc@kf {106} % kaph, final
+\def \hc@k {107} % kaph
+\def \hc@l {108} % lamed
+\def \hc@mf {109} % mem, final
+\def \hc@m {110} % mem
+\def \hc@nf {111} % nun, final
+\def \hc@n {112} % nun
+\def \hc@s {113} % samech
+\def \hc@P {114} % ayin
+\def \hc@ff {115} % pe, final
+\def \hc@f {116} % pe, f
+\def \hc@sf {117} % ssade, final
+\def \hc@ss {118} % ssade
+\def \hc@q {119} % qoph
+\def \hc@r {120} % resh
+\def \hc@si {121} % ssin
+\def \hc@t {122} % taw
+\def \hc@Pv {123} % vowel ayin
+\def \hc@v {124} % vav
+\def \hc@K {125} % paseq
+\def \hc@M {126} % phantom 1
+\def \hc@N {127} % phantom 2
+\def \hc@ay {128} % ay
+\def \hc@ey {129} % ey
+\def \hc@oy {130} % oy
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/hebtex.sty b/language/arabic/arabtex/texinput/hebtex.sty
index 037b5d33fc..8cd8a63feb 100644
--- a/language/arabic/arabtex/texinput/hebtex.sty
+++ b/language/arabic/arabtex/texinput/hebtex.sty
@@ -1,87 +1,87 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.sty
-% ArabTeX
-% Modifications for Hebrew mode
-% 12.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \sethebrew \undefined \else \xpa \endinput \fi
-
-\ifx \ArabTeX \undefined
-\ifx \NeedsTeXFormat \undefined \input arabtex.sty
-\else \usepackage {arabtex}\fi \fi
-
-\let \h@wlog \wlog \def \wlog #1{\relax }
-
-\a@ident {hebtex.sty} {3.10 modifications for Hebrew mode} {12.06.2000}
-
-\newif \ifhedc@de
-
-\ifx \LaTeX \undefined \else
- \let \h@document \document
- \def \document {\h@document \sethebrew \hedc@detrue }
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let \hebtext \arabtext \let \endhebtext \endarabtext
-\let \hebtex \arabtext \let \endhebtex \endarabtext % catch typo
-\let \hebfalse \arabfalse \let \hebtrue \arabtrue
-
-\pdef \sethebrew {% switch to hebrew writing
-\all@false \@ssimtrue \yahd@tstrue \heb@output
-\def \a@defaultfont {\hc }\setarabfont \a@normalfont \hc }
-
-\let \setheb \sethebrew
-
-\def \set@hebfont {\setarabfont \heb@font }
-
-\def \heb@font {\protect \pheb }
-\def \a@defaultfont {\protect \pheb }
-
-\def \sethebfont #1{\def \pheb {\hebfont }\font \hebfont =#1\relax}
-
-\all@wcmd \sethebrew \all@wcmd \setheb \all@wcmd \sethebfont \all@wif \heb
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \heb@output {\ifx \a@lang \a@hebr \else
-\tr@ceoff % switch to Hebrew output conventions
-\def@hebchars % define character macros for Hebrew
-\def@hebvoc % define vowel parsing routines for Hebrew
-\def@hebstrut % define strut for Hebrew
-\global\let \a@write \heb@write \global\let \a@write@hook \relax
-\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
-
-\def \a@hebr {HEBREW}
-\let \tr@heb \relax % if hetrans.sty is not loaded
-
-\def \def@hebstrut {\def \arab@strut
-%{\vrule height2.8ex depth0.7ex width0pt \relax }}
-{\vrule height1.9ex depth0.7ex width0pt \relax }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\UsePackage {hecmd}
-\UsePackage {hescan}
-\UsePackage {heparse}
-\UsePackage {hewrite}
-\UsePackage {hetrans}
-\ifx \LaTeX \undefined \else \UsePackage {hefonts}
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\UsePackage {hepatch} % must be at the end !!
-
-%\hc
-
-\let \wlog \h@wlog
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.sty
+% ArabTeX
+% Modifications for Hebrew mode
+% 12.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \sethebrew \undefined \else \xpa \endinput \fi
+
+\ifx \ArabTeX \undefined
+\ifx \NeedsTeXFormat \undefined \input arabtex.sty
+\else \usepackage {arabtex}\fi \fi
+
+\let \h@wlog \wlog \def \wlog #1{\relax }
+
+\a@ident {hebtex.sty} {3.10 modifications for Hebrew mode} {12.06.2000}
+
+\newif \ifhedc@de
+
+\ifx \LaTeX \undefined \else
+ \let \h@document \document
+ \def \document {\h@document \sethebrew \hedc@detrue }
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let \hebtext \arabtext \let \endhebtext \endarabtext
+\let \hebtex \arabtext \let \endhebtex \endarabtext % catch typo
+\let \hebfalse \arabfalse \let \hebtrue \arabtrue
+
+\pdef \sethebrew {% switch to hebrew writing
+\all@false \@ssimtrue \yahd@tstrue \heb@output
+\def \a@defaultfont {\hc }\setarabfont \a@normalfont \hc }
+
+\let \setheb \sethebrew
+
+\def \set@hebfont {\setarabfont \heb@font }
+
+\def \heb@font {\protect \pheb }
+\def \a@defaultfont {\protect \pheb }
+
+\def \sethebfont #1{\def \pheb {\hebfont }\font \hebfont =#1\relax}
+
+\all@wcmd \sethebrew \all@wcmd \setheb \all@wcmd \sethebfont \all@wif \heb
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@output {\ifx \a@lang \a@hebr \else
+\tr@ceoff % switch to Hebrew output conventions
+\def@hebchars % define character macros for Hebrew
+\def@hebvoc % define vowel parsing routines for Hebrew
+\def@hebstrut % define strut for Hebrew
+\global\let \a@write \heb@write \global\let \a@write@hook \relax
+\tr@heb \tr@ceon \global\let \a@lang \a@hebr \fi }
+
+\def \a@hebr {HEBREW}
+\let \tr@heb \relax % if hetrans.sty is not loaded
+
+\def \def@hebstrut {\def \arab@strut
+%{\vrule height2.8ex depth0.7ex width0pt \relax }}
+{\vrule height1.9ex depth0.7ex width0pt \relax }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\UsePackage {hecmd}
+\UsePackage {hescan}
+\UsePackage {heparse}
+\UsePackage {hewrite}
+\UsePackage {hetrans}
+\ifx \LaTeX \undefined \else \UsePackage {hefonts}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\UsePackage {hepatch} % must be at the end !!
+
+%\hc
+
+\let \wlog \h@wlog
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hebtex.tex b/language/arabic/arabtex/texinput/hebtex.tex
index 6e653c43d1..50324fd946 100644
--- a/language/arabic/arabtex/texinput/hebtex.tex
+++ b/language/arabic/arabtex/texinput/hebtex.tex
@@ -1,122 +1,122 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hebtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hebtex.tex
-% version 3.11
-% Plain TeX loader for ArabTeX, Hebrew mode
-% 08.09.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally EMail: lagallyk@acm.org
-% Institut fuer Formale
-% Methoden der Informatik TEL: +49-711-7816-392
-% Universitaet Stuttgart FAX: +49-711-7816-370
-% Universitaetsstrasse 38
-% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% 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 (at your option) any later version.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \input this file at the beginning of an ArabTeX input file running
-% under Plain TeX. This is an adaptation by Tom Koornwinder of
-% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
-% and modified again to switch to Hebrew mode
-% 16.09.2001
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\message { Plain TeX Hebrew setup for ArabTeX }
-
-\input arabtex.tex % load the ArabTeX package
-
-\makeatletter
-\a@ident {hebtex.tex} {3.11 Plain TeX Hebrew loader for ArabTeX} {08.09.2003}
-
-%\def \pheb {\hebfont }
-
-\iffalse
-\input hebtex.sty % load the Hebrew extension
-\input apatch.sty % load any patches
-\input hepatch.sty % load any patches
-\fi
-
-% commands for font selection:
-
-\font \hclassic = hclassic \relax % fix em and ex
- \fontdimen5\hclassic =.8\fontdimen2\hclassic
- \fontdimen6\hclassic =3\fontdimen5\hclassic
-\font \hcaption = hcaption \relax % fix em and ex
- \fontdimen5\hcaption =.8\fontdimen2\hcaption
- \fontdimen6\hcaption =3\fontdimen5\hcaption
- \fontdimen1\hcaption =.2pt \relax
-
-\def \hc {\sethebfont {\hclassic}}
-\def \hp {\sethebfont {\hcaption}}
-
-\all@wcmd \hc \all@wcmd \hp % allow these in Hebrew context
-
-\font \jerusalem = jerusalem \relax
-\font \Jerusalem = Jerusalem \relax
-\font \OldJaffa = OldJaffa \relax
-\font \DeadSea = DeadSea \relax
-\font \TelAviv = TelAviv \relax
-
-\def \jm {\sethebfont {\jerusalem}}
-\def \Jm {\sethebfont {\Jerusalem}}
-\def \oj {\sethebfont {\OldJaffa}}
-\def \ds {\sethebfont {\DeadSea}}
-\def \ta {\sethebfont {\TelAviv}} % add others as required
-
-\all@wcmd \ds \all@wcmd \oj \all@wcmd \jm \all@wcmd \ta \all@wcmd \Jm
-
-\font \smold = shlm_old \relax
- \fontdimen5\font =\fontdimen2\font
-\def \shlmold {\sethebfont {\smold}}
-
-\font \smscr = shlm_scr \relax
- \fontdimen5\font =\fontdimen2\font
-\def \shlmscr {\sethebfont {\smscr}}
-
-\font \smstk = shlm_stk \relax
- \fontdimen5\font =\fontdimen2\font
-\def \shlmstk {\sethebfont {smstk}}
-
-\all@wcmd \shlmold \all@wcmd \shlmscr \all@wcmd \shlmstk
-
-\def \fr {\sethebfont {fr}}
-\def \frbx {\sethebfont {frbx}}
-\def \frsl {\sethebfont {frsl}}
-
-\all@wcmd \fr \all@wcmd \frbx \all@wcmd \frsl
-
-\def \crml {\sethebfont {crml10}% fix ex
- \fontdimen5\font =\fontdimen2\font }
-\def \crmlsl {\sethebfont {crmlsl10}% fix ex
- \fontdimen5\font =\fontdimen2\font }
-
-\all@wcmd \crml \all@wcmd \crmlsl
-%\makeatother
-
-\input hebtex.sty % load the Hebrew extension
-\input apatch.sty % load any patches
-\input hepatch.sty % load any patches
-
-\hc % define a default Hebrew font choose one !
-%\jm % define a default Hebrew font
-%\ds % define a default Hebrew font
-%\ta % define a default Hebrew font
-%\oj % define a default Hebrew font
-%\hp % define a default Hebrew font
-%\shlmold % define a default Hebrew font
-%\shlmscr % define a default Hebrew font
-%\shlmstk % define a default Hebrew font
-%\fr % define a default Hebrew font
-%\frbx % define a default Hebrew font
-%\frsl % define a default Hebrew font
-%\crml % define a default Hebrew font
-%\crmlsl % define a default Hebrew font
-
-\sethebrew % switch to Hebrew mode
-\makeatother
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hebtex.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hebtex.tex
+% version 3.11
+% Plain TeX loader for ArabTeX, Hebrew mode
+% 08.09.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally EMail: lagallyk@acm.org
+% Institut fuer Formale
+% Methoden der Informatik TEL: +49-711-7816-392
+% Universitaet Stuttgart FAX: +49-711-7816-370
+% Universitaetsstrasse 38
+% D-70569 Stuttgart INFO: arabtex@informatik.uni-stuttgart.de
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 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 (at your option) any later version.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \input this file at the beginning of an ArabTeX input file running
+% under Plain TeX. This is an adaptation by Tom Koornwinder of
+% Jan Lodder's file arab.plain.tex, again modified by Klaus Lagally
+% and modified again to switch to Hebrew mode
+% 16.09.2001
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\message { Plain TeX Hebrew setup for ArabTeX }
+
+\input arabtex.tex % load the ArabTeX package
+
+\makeatletter
+\a@ident {hebtex.tex} {3.11 Plain TeX Hebrew loader for ArabTeX} {08.09.2003}
+
+%\def \pheb {\hebfont }
+
+\iffalse
+\input hebtex.sty % load the Hebrew extension
+\input apatch.sty % load any patches
+\input hepatch.sty % load any patches
+\fi
+
+% commands for font selection:
+
+\font \hclassic = hclassic \relax % fix em and ex
+ \fontdimen5\hclassic =.8\fontdimen2\hclassic
+ \fontdimen6\hclassic =3\fontdimen5\hclassic
+\font \hcaption = hcaption \relax % fix em and ex
+ \fontdimen5\hcaption =.8\fontdimen2\hcaption
+ \fontdimen6\hcaption =3\fontdimen5\hcaption
+ \fontdimen1\hcaption =.2pt \relax
+
+\def \hc {\sethebfont {\hclassic}}
+\def \hp {\sethebfont {\hcaption}}
+
+\all@wcmd \hc \all@wcmd \hp % allow these in Hebrew context
+
+\font \jerusalem = jerusalem \relax
+\font \Jerusalem = Jerusalem \relax
+\font \OldJaffa = OldJaffa \relax
+\font \DeadSea = DeadSea \relax
+\font \TelAviv = TelAviv \relax
+
+\def \jm {\sethebfont {\jerusalem}}
+\def \Jm {\sethebfont {\Jerusalem}}
+\def \oj {\sethebfont {\OldJaffa}}
+\def \ds {\sethebfont {\DeadSea}}
+\def \ta {\sethebfont {\TelAviv}} % add others as required
+
+\all@wcmd \ds \all@wcmd \oj \all@wcmd \jm \all@wcmd \ta \all@wcmd \Jm
+
+\font \smold = shlm_old \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmold {\sethebfont {\smold}}
+
+\font \smscr = shlm_scr \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmscr {\sethebfont {\smscr}}
+
+\font \smstk = shlm_stk \relax
+ \fontdimen5\font =\fontdimen2\font
+\def \shlmstk {\sethebfont {smstk}}
+
+\all@wcmd \shlmold \all@wcmd \shlmscr \all@wcmd \shlmstk
+
+\def \fr {\sethebfont {fr}}
+\def \frbx {\sethebfont {frbx}}
+\def \frsl {\sethebfont {frsl}}
+
+\all@wcmd \fr \all@wcmd \frbx \all@wcmd \frsl
+
+\def \crml {\sethebfont {crml10}% fix ex
+ \fontdimen5\font =\fontdimen2\font }
+\def \crmlsl {\sethebfont {crmlsl10}% fix ex
+ \fontdimen5\font =\fontdimen2\font }
+
+\all@wcmd \crml \all@wcmd \crmlsl
+%\makeatother
+
+\input hebtex.sty % load the Hebrew extension
+\input apatch.sty % load any patches
+\input hepatch.sty % load any patches
+
+\hc % define a default Hebrew font choose one !
+%\jm % define a default Hebrew font
+%\ds % define a default Hebrew font
+%\ta % define a default Hebrew font
+%\oj % define a default Hebrew font
+%\hp % define a default Hebrew font
+%\shlmold % define a default Hebrew font
+%\shlmscr % define a default Hebrew font
+%\shlmstk % define a default Hebrew font
+%\fr % define a default Hebrew font
+%\frbx % define a default Hebrew font
+%\frsl % define a default Hebrew font
+%\crml % define a default Hebrew font
+%\crmlsl % define a default Hebrew font
+
+\sethebrew % switch to Hebrew mode
+\makeatother
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hefonts.sty b/language/arabic/arabtex/texinput/hefonts.sty
index b76463f2e2..1c8cee2fab 100644
--- a/language/arabic/arabtex/texinput/hefonts.sty
+++ b/language/arabic/arabtex/texinput/hefonts.sty
@@ -1,56 +1,56 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts.sty
-% ArabTeX
-% load Hebrew fonts in LaTeX mode
-% 02.07.1997
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% load this file only, if \pheb not defined
-% select the Hebrew font by \pheb (\protected )
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\expandafter \ifx \csname pheb\endcsname \relax \else
- \expandafter \endinput
-\fi
-
-\a@ident {hefonts.sty} {3.06 standard Hebrew fonts} {02.07.1997}
-
-\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11
-\chardef \fntlscode = \catcode`\< \catcode`\< = 12
-
-\ifx \LaTeX \undefined \else
-
-% If we are using the NFSS, Version 2, \DeclareFontShape
-% is defined.
-%
-% (The \expandafter\ifx\csname...\endcsname\relax is necessary,
-% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined
-% command.)
-%
-\xpa \ifx \csname DeclareFontShape\endcsname\relax
-
-% Now it's possible that NFSS, Version 1, is used.
-% If \selectfont is defined, NFSS is active, otherwise
-% we assume LaTeX's `lfonts.tex'.
-%
- \xpa \ifx \csname selectfont\endcsname\relax
-
- % OLD FONT SELECTION
- \UsePackage {hefonts0}
- \else % NEW FONT SELECTION -- Version 1
- \UsePackage {hefonts1}
- \fi
-\else
- % NEW FONT SELECTION -- Version 2
- \UsePackage {hefonts2}
-\fi\fi
-
-\catcode`\@ = \fntatcode \catcode`\< = \fntlscode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts.sty
+% ArabTeX
+% load Hebrew fonts in LaTeX mode
+% 02.07.1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% load this file only, if \pheb not defined
+% select the Hebrew font by \pheb (\protected )
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\expandafter \ifx \csname pheb\endcsname \relax \else
+ \expandafter \endinput
+\fi
+
+\a@ident {hefonts.sty} {3.06 standard Hebrew fonts} {02.07.1997}
+
+\chardef \fntatcode = \catcode`\@ \catcode`\@ = 11
+\chardef \fntlscode = \catcode`\< \catcode`\< = 12
+
+\ifx \LaTeX \undefined \else
+
+% If we are using the NFSS, Version 2, \DeclareFontShape
+% is defined.
+%
+% (The \expandafter\ifx\csname...\endcsname\relax is necessary,
+% because the NFSS2 styleoptions use LaTeX's internal \@ifundefined
+% command.)
+%
+\xpa \ifx \csname DeclareFontShape\endcsname\relax
+
+% Now it's possible that NFSS, Version 1, is used.
+% If \selectfont is defined, NFSS is active, otherwise
+% we assume LaTeX's `lfonts.tex'.
+%
+ \xpa \ifx \csname selectfont\endcsname\relax
+
+ % OLD FONT SELECTION
+ \UsePackage {hefonts0}
+ \else % NEW FONT SELECTION -- Version 1
+ \UsePackage {hefonts1}
+ \fi
+\else
+ % NEW FONT SELECTION -- Version 2
+ \UsePackage {hefonts2}
+\fi\fi
+
+\catcode`\@ = \fntatcode \catcode`\< = \fntlscode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/hefonts0.sty b/language/arabic/arabtex/texinput/hefonts0.sty
index a446ca6f2a..07db73ad95 100644
--- a/language/arabic/arabtex/texinput/hefonts0.sty
+++ b/language/arabic/arabtex/texinput/hefonts0.sty
@@ -1,42 +1,42 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts0.sty
-% ArabTeX
-% load Hebrew fonts for old LaTeX
-% 03.04.1997
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hefonts0.sty} {3.05 define Hebrew fonts for old LaTeX} {03.04.1997}
-
-% OLD FONT SELECTION
-\message {using lfonts.tex}
-
-% load all necessary fonts
-
-\newfont {\tenheb }{hclassic}
-\newfont {\elvnheb}{hclassic scaled 1095}
-\newfont {\twlvheb}{hclassic \@magscale1}
-\newfont {\frtnheb}{hclassic \@magscale2}
-\newfont {\svtnheb}{hclassic \@magscale3}
-\newfont {\twtyheb}{hclassic \@magscale4}
-\newfont {\twfvheb}{hclassic \@magscale5}
-
-% add the \pheb command to the size changing hooks
-
-\@addfontinfo \@vpt {\def\pheb {\tenheb}}
-\@addfontinfo \@viipt {\def\pheb {\tenheb}}
-\@addfontinfo \@viiipt {\def\pheb {\tenheb}}
-\@addfontinfo \@ixpt {\def\pheb {\tenheb}}
-\@addfontinfo \@xpt {\def\pheb {\tenheb}}
-\@addfontinfo \@xipt {\def\pheb {\elvnheb}}
-\@addfontinfo \@xiipt {\def\pheb {\twlvheb}}
-\@addfontinfo \@xivpt {\def\pheb {\frtnheb}}
-\@addfontinfo \@xviipt {\def\pheb {\svtnheb}}
-\@addfontinfo \@xxpt {\def\pheb {\twtyheb}}
-\@addfontinfo \@xxvpt {\def\pheb {\twfvheb}}
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts0.sty
+% ArabTeX
+% load Hebrew fonts for old LaTeX
+% 03.04.1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hefonts0.sty} {3.05 define Hebrew fonts for old LaTeX} {03.04.1997}
+
+% OLD FONT SELECTION
+\message {using lfonts.tex}
+
+% load all necessary fonts
+
+\newfont {\tenheb }{hclassic}
+\newfont {\elvnheb}{hclassic scaled 1095}
+\newfont {\twlvheb}{hclassic \@magscale1}
+\newfont {\frtnheb}{hclassic \@magscale2}
+\newfont {\svtnheb}{hclassic \@magscale3}
+\newfont {\twtyheb}{hclassic \@magscale4}
+\newfont {\twfvheb}{hclassic \@magscale5}
+
+% add the \pheb command to the size changing hooks
+
+\@addfontinfo \@vpt {\def\pheb {\tenheb}}
+\@addfontinfo \@viipt {\def\pheb {\tenheb}}
+\@addfontinfo \@viiipt {\def\pheb {\tenheb}}
+\@addfontinfo \@ixpt {\def\pheb {\tenheb}}
+\@addfontinfo \@xpt {\def\pheb {\tenheb}}
+\@addfontinfo \@xipt {\def\pheb {\elvnheb}}
+\@addfontinfo \@xiipt {\def\pheb {\twlvheb}}
+\@addfontinfo \@xivpt {\def\pheb {\frtnheb}}
+\@addfontinfo \@xviipt {\def\pheb {\svtnheb}}
+\@addfontinfo \@xxpt {\def\pheb {\twtyheb}}
+\@addfontinfo \@xxvpt {\def\pheb {\twfvheb}}
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/hefonts1.sty b/language/arabic/arabtex/texinput/hefonts1.sty
index 5189228b73..cb868f7066 100644
--- a/language/arabic/arabtex/texinput/hefonts1.sty
+++ b/language/arabic/arabtex/texinput/hefonts1.sty
@@ -1,44 +1,44 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts1.sty
-% ArabTeX
-% load Hebrew fonts for NFSS1
-% 24.05.1996
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hefonts1.sty} {3.04 define Hebrew fonts for NFSS1} {24.05.1996}
-
-% NEW FONT SELECTION -- Version 1
-\message {using NFSS1}
-
-% define \pheb to use the `heb' family, `m'edium series und
-% `n'ormal shape.
-%
-\def\pheb{\family{heb}\series{m}\shape{n}\selectfont}
-
-% setup the font definition table
-% (`1' at the beginning of a fontname: size not available, print
-% warning to inform the user)
-%
-\new@fontshape{heb}{m}{n}{%
- <5>1hclassic%
- <6>1hclassic%
- <7>1hclassic%
- <8>1hclassic%
- <9>1hclassic%
- <10>hclassic%
- <11>hclassic at10.95pt%
- <12>hclassic at12.0pt%
- <14>hclassic at14.4pt%
- <17>hclassic at15.77441pt%
- <20>hclassic at17.28pt%
- <25>hclassic at20.736pt}{}
-\extra@def{heb}{}{}
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts1.sty
+% ArabTeX
+% load Hebrew fonts for NFSS1
+% 24.05.1996
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hefonts1.sty} {3.04 define Hebrew fonts for NFSS1} {24.05.1996}
+
+% NEW FONT SELECTION -- Version 1
+\message {using NFSS1}
+
+% define \pheb to use the `heb' family, `m'edium series und
+% `n'ormal shape.
+%
+\def\pheb{\family{heb}\series{m}\shape{n}\selectfont}
+
+% setup the font definition table
+% (`1' at the beginning of a fontname: size not available, print
+% warning to inform the user)
+%
+\new@fontshape{heb}{m}{n}{%
+ <5>1hclassic%
+ <6>1hclassic%
+ <7>1hclassic%
+ <8>1hclassic%
+ <9>1hclassic%
+ <10>hclassic%
+ <11>hclassic at10.95pt%
+ <12>hclassic at12.0pt%
+ <14>hclassic at14.4pt%
+ <17>hclassic at15.77441pt%
+ <20>hclassic at17.28pt%
+ <25>hclassic at20.736pt}{}
+\extra@def{heb}{}{}
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/hefonts2.sty b/language/arabic/arabtex/texinput/hefonts2.sty
index 1fe0b856af..fe0ff7df21 100644
--- a/language/arabic/arabtex/texinput/hefonts2.sty
+++ b/language/arabic/arabtex/texinput/hefonts2.sty
@@ -1,72 +1,72 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hefonts2.sty
-% ArabTeX
-% load Hebrew fonts for NFSS2
-% 27.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally and Bernd Raichle
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hefonts2.sty} {3.11 define Hebrew fonts for NFSS2} {27.04.2003}
-
-% NEW FONT SELECTION -- Version 2
-%\a@message {using NFSS2}
-
-\def \fdef #1#2#3#4{% define NFSS2 font command
-\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
-\fontseries {#3}\fontshape {#4}\selectfont }%
-\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi
-%\setarabfont \pheb \set@arabfont }%
-\setarabfont \pheb }%
-\all@wcmd #1}
-
-\def \hdef #1{\fdef #1{heb}}% define Hebrew font
-
-% commands for selecting the default Hebrew fonts:
-
-\hdef \sethebrm {m}{n}
-\hdef \sethebbf {bx}{n}
-
-%\let \hc \sethebrm \all@wcmd \hc
-%\let \hp \sethebbf \all@wcmd \hp
-
-\hdef \hc {m}{n}
-\hdef \hp {bx}{n}
-
-% commands for selecting the standard Hebrew fonts from CTAN:
-
-\hdef \Jm {m}{Jm}
-\hdef \jm {m}{jm}
-\hdef \ds {m}{ds}
-\hdef \oj {m}{oj}
-\hdef \ta {m}{ta}
-
-% commands for selecting the Shalom family of Hebrew fonts from CTAN:
-
-\hdef \shlmold {m}{so}
-\hdef \shlmscr {m}{sr}
-\hdef \shlmstk {m}{sk}
-
-% commands for selecting the Frank Ruehl family of Hebrew fonts from CTAN:
-
-\hdef \fr {m}{fr}
-\hdef \frbx {bx}{fr}
-\hdef \frsl {sl}{fr}
-
-% commands for selecting the Carmel family of Hebrew fonts from CTAN:
-
-\hdef \crml {m}{crml}
-\hdef \crmlsl {sl}{crml}
-
-% All other definitions are done in file `Uheb.fd', which is
-% loaded on demand.
-
-%\def \a@defaultfont {\hc }
-\hc
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hefonts2.sty
+% ArabTeX
+% load Hebrew fonts for NFSS2
+% 27.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally and Bernd Raichle
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hefonts2.sty} {3.11 define Hebrew fonts for NFSS2} {27.04.2003}
+
+% NEW FONT SELECTION -- Version 2
+%\a@message {using NFSS2}
+
+\def \fdef #1#2#3#4{% define NFSS2 font command
+\pdef #1{\def \pheb {\fontencoding {U}\fontfamily {#2}%
+\fontseries {#3}\fontshape {#4}\selectfont }%
+\ifx \a@normalfont \a@default \gdef \a@normalfont {#1}\fi
+%\setarabfont \pheb \set@arabfont }%
+\setarabfont \pheb }%
+\all@wcmd #1}
+
+\def \hdef #1{\fdef #1{heb}}% define Hebrew font
+
+% commands for selecting the default Hebrew fonts:
+
+\hdef \sethebrm {m}{n}
+\hdef \sethebbf {bx}{n}
+
+%\let \hc \sethebrm \all@wcmd \hc
+%\let \hp \sethebbf \all@wcmd \hp
+
+\hdef \hc {m}{n}
+\hdef \hp {bx}{n}
+
+% commands for selecting the standard Hebrew fonts from CTAN:
+
+\hdef \Jm {m}{Jm}
+\hdef \jm {m}{jm}
+\hdef \ds {m}{ds}
+\hdef \oj {m}{oj}
+\hdef \ta {m}{ta}
+
+% commands for selecting the Shalom family of Hebrew fonts from CTAN:
+
+\hdef \shlmold {m}{so}
+\hdef \shlmscr {m}{sr}
+\hdef \shlmstk {m}{sk}
+
+% commands for selecting the Frank Ruehl family of Hebrew fonts from CTAN:
+
+\hdef \fr {m}{fr}
+\hdef \frbx {bx}{fr}
+\hdef \frsl {sl}{fr}
+
+% commands for selecting the Carmel family of Hebrew fonts from CTAN:
+
+\hdef \crml {m}{crml}
+\hdef \crmlsl {sl}{crml}
+
+% All other definitions are done in file `Uheb.fd', which is
+% loaded on demand.
+
+%\def \a@defaultfont {\hc }
+\hc
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/language/arabic/arabtex/texinput/heparse.sty b/language/arabic/arabtex/texinput/heparse.sty
index 650a617cb1..dc128188ec 100644
--- a/language/arabic/arabtex/texinput/heparse.sty
+++ b/language/arabic/arabtex/texinput/heparse.sty
@@ -1,291 +1,291 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% heparse.sty
-% ArabTeX
-% Modifications for Hebrew mode
-% 27.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {heparse.sty} {3.11 Hebrew parser routines} {27.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \def@hebvoc {% define vowel parsing routines for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels
-
-\def \sv@a {\sv@patach } % a: patach
-\def \sv@e {\sv@segol } % e: segol
-\def \sv@i {\sv@chireq } % i: chireq breve
-\def \sv@o {\sv@qamesqatuf } % o: qames-chatuph
-\def \sv@u {\sv@qibbus } % u: qibbus
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels
-
-\def \sv@A {\sv@qames } % A: qames
-\def \sv@E {\sv@serelongum } % E: sere yod
-\def \sv@I {\sv@chireqlongum } % I: chireq yod
-\def \sv@O {\sv@cholemlongum } % O: cholem waw
-\def \sv@U {\sv@shureq } % U: shureq
-\def \sv@Y {\sv@qameslongum } % _A: qames aleph
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective
-
-\sv@def \a@a {\sv@qames } % _a: qames aleph ?
-\sv@def \a@e {\sv@shewa } % .i: shewa
-\sv@def \a@i {\sv@chireq } % _i: chireq yod ?
-\sv@def \a@o {\sv@cholem } % _o: cholem breve
-\sv@def \a@u {\sv@shureq } % _u: shureq ?
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels
-
-\sv@def \a@A {\sv@chatef@patach } % .a:
-\sv@def \a@E {\sv@sere } % _e: sere breve
-\sv@def \a@I {\sv@chatef@segol } % .e:
-\sv@def \a@O {\sv@chatef@qames } % .o:
-\sv@def \a@U {\put@syl \syl@con } % .u: no vowel mark
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% extra marks
-
-\sv@def \a@Za {\sv@sindot } % sin dot
-\sv@def \a@Ze {\sv@shindot } % shin dot
-\sv@def \a@Zi {\sv@rdot } % center dot
-\sv@def \a@Zo {\sv@raphe } % raphe
-\sv@def \a@Zu {\sv@dagesh } % dagesh
-
-\sv@def \a@ZA {\sv@ay } % Yiddish ay
-\sv@def \a@ZE {\sv@ey } % Yiddish ey
-\sv@def \a@ZI {\syl@voctest } % free
-\sv@def \a@ZO {\sv@oy } % Yiddish oy
-\sv@def \a@ZU {\syl@voctest } % free
-
-%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling
-
-\def \syl@hamza {% non-initial hamza, context #1'
-\put@con a\syl@voctest }
-
-\let \syl@hamzabeg \syl@hamza
-
-\def \syl@test@voc {% vowel or shewa ?
-\h@test@voc }
-
-\def \check@high ##1{\relax }
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% static definitions for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif \ifp@tach \newif \ifch@lem
-
-\def \h@test@voc #1{% vowel or shewa ?
-\ifch@lem \ch@lemfalse \add@rdot \fi % rdot
-\if\is@vowel #1\def \next {\syl@voc #1}\else % test for vowel
-\ifx #1|\add@madda \def \next {\syl@shewa }% % meteg
-\else \def \next {\syl@shewa #1}% non-vowel follows
-\fi\fi \next }
-
-\def \syl@shewa #1{% put shewa if appropriate
-\ifp@tach \add@patachf \p@tachfalse \else
-\xpa\ifx \the\last@con B\else
-\ifx #1<\add@@shewa \else
-\ifcat \nxp #1\nxp <\add@@shewa \else
- \add@sukun % shewa
-\fi\fi\fi\fi \put@syl \syl@con #1}
-
-\def \add@@shewa {% put shewa on final kaf
-\xpa\case \the\last@con \of
-{ k R {\add@shewa }}
-\endcase }
-
-\def \syl@meteg #1#2{% test for meteg and patach furtivum
-\ifx #2|\add@madda \def \next {#1}\else
-\ifx #2\a@A\p@tachtrue \def \next {#1}\else
- \def \next {#1#2}%
-\fi\fi \put@syl \next }
-
-\gdef \test@cont #1{% vowel contact? put dummy if not cholem male
-\ifx #1O\def \next {\syl@con #1}\else
-\ifx #1U\def \next {\syl@con #1}\else
-\if\is@vowel #1\def \next {\syl@con N#1}\else
-\def \next {\syl@con #1}\fi\fi\fi \next }
-
-\def \test@patf #1{% vowel contact? put dummy, test for guttural: 05.10.01
-\ifx #1O\def \next {\test@p@tf #1}\else
-\ifx #1U\def \next {\test@p@tf #1}\else
-\if\is@vowel #1\def \next {\syl@con N#1}\else
-\def \next {\test@p@tf #1}\fi\fi\fi \next }
-
-\def \test@p@tf #1#2#3{% guttural at end: prepare patach furtivum
-\ifx #1h\ifx #2\a@Zu \p@tachtrue
- \fi\fi
-\ifx #2a\ifx #3<\if\is@in@list #1PX>\p@tachtrue
- \fi\fi\fi
-\syl@con #1#2#3}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \sv@patach {% a: put patach, test meteg
-\ifp@tach \add@patachf \p@tachfalse \else \add@fatha
-\fi \syl@meteg \test@cont }
-
-\def \sv@segol {% e: put segol, test meteg
-\add@zwarakay \syl@meteg \test@cont }
-
-\def \sv@qamesqatuf {% o: put qames qatuf, test meteg
-\add@ammad \syl@meteg \test@cont }
-
-\def \sv@qibbus {% u: put qibbus, test meteg
-\add@damma \syl@meteg \test@cont }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@qames {% long a: put qames, test meteg
-\add@fathaspec \syl@meteg \test@cont }
-
-\def \sv@qamesaleph {% long a: put qames, test meteg
-\add@fathaspec \syl@meteg \sv@qames@aleph }
-
-\def \sv@qames@aleph {% long a: put aleph
-\put@con a\put@syl \test@cont }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@sere {% long e: put sere breve, test meteg
-\add@kasraspec \syl@meteg \sv@s@re }
-
-\def \sv@s@re #1{% test for ey = E
-\ifx #1y\def \next {\sv@sere@longum }%
-\else \def \next {\test@patf #1}%
-\fi \next }
-
-\def \sv@serelongum {% long e: put sere, test meteg
-\add@kasraspec \syl@meteg \sv@sere@longum }
-
-\def \sv@sere@longum {% long e: put yod ?
-\test@yod }
-
-\def \test@yod #1{% vowel or consonant
-\if\is@vowel #1\def \next {\syl@con y#1}\else
-\put@con y\put@syl \def \next {\test@patf #1}%
-\fi \next }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@chireq {% i: put chireq, test meteg
-\add@kasra \syl@meteg \sv@ch@req }
-
-\def \sv@ch@req #1{% test for iy = I
-\ifx #1y\def \next {\sv@chireq@longum }%
-\else \def \next {\test@cont #1}%
-\fi \next }
-
-\def \sv@chireqlongum {% long i: put chireq, test meteg
-\add@kasra \syl@meteg \sv@chireq@longum }
-
-\def \sv@chireq@longum {% long i: put yod ?
-\test@yod }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@shureq {% long u: test meteg
-\syl@meteg \sv@sh@req }
-
-\def \sv@sh@req {% long u: put waw with shureq
-\put@con w\add@shadda \put@syl \test@patf }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@cholem #1{% short o: test meteg
-\ifx #1|\add@madda \def \next {\sv@ch@lem }%
-\else \def \next {\sv@ch@lem #1}%
-\fi \next }
-
-\def \sv@ch@lem #1{% short o: put cholem breve
-\xpa\ifx \the\last@con \a@s % omit cholem on sin
-\else \case #1\of
-{ a A Q w{\ch@lemtrue } % shift cholem
- \default {\add@cholem } % deposit cholem
-} \endcase
-\fi \put@syl \sv@ch@lemwaw #1}
-
-\def \sv@ch@lemwaw #1{% test for ow = O
-\ifx #1w\def \next {\sv@cholem@longum }%
-\else \def \next {\test@cont #1}%
-\fi \next }
-
-\def \sv@cholemlongum {% long o: test meteg
-\syl@meteg \sv@cholem@longum }
-
-\def \sv@cholem@longum {% long o: put waw with cholem
-\put@con w\add@rdot \ch@lemfalse \put@syl \test@patf }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@chatef@patach {% put chatef patach, test meteg
-\add@fathatan \syl@meteg \test@cont }
-
-\def \sv@chatef@segol {% put chatef segol, test meteg
-\add@kasratan \syl@meteg \test@cont }
-
-\def \sv@chatef@qames {% put chatef qames, test meteg
-\add@dammatan \syl@meteg \test@cont }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@shewa {% put shewa unconditionally
-\add@shewa \put@syl \syl@con }
-
-\def \sv@sindot {% sin dot
-\voc@suk \advance \last@mod 10 \syl@voctest }
-
-\def \sv@shindot {% shin dot
-\voc@suk \advance \last@mod 20 \syl@voctest }
-
-\def \sv@rdot {% center dot
-\voc@suk \advance \last@mod 30 \syl@voctest }
-
-\def \sv@raphe {% raphe
-\voc@suk \advance \last@mod 40 \syl@voctest }
-
-\def \sv@dagesh {% dagesh, ww -> U, shureq?
-\add@shadda
-\xpa\ifx \the\last@con w\put@syl \def \next {\test@patf }%
-%\else \def \next {\syl@test@voc }%
-%\else \def \next {\syl@voctest }%
-\else \voc@suk \def \next {\syl@voctest }%
-\fi \next }
-
-\def \sv@dagesh {% dagesh, ww -> U, shureq?
-\add@shadda \voc@suk \syl@voctest }
-
-%%%%%%%%%%%%%%%%
-
-\def \sv@ay {% Yiddish ay
-\put@syl \put@con \a@i \v@ctrue \add@fatha \put@syl \test@patf }
-
-\def \sv@ey {% Yiddish ey
-\put@syl \put@con \a@i \put@syl \test@patf }
-
-\def \sv@oy {% Yiddish oy
-\put@syl \put@con \a@o \put@syl \test@patf }
-
-%%%%%%%%%%%%%%%%
-
-\def \add@rdot {\advance \last@mod \c@hamza }
-
-\def \add@cholem {\ifv@c \last@voc \c@wasla \fi }
-
-\def \add@patachf {\ifv@c \last@voc 13 \fi }
-
-\def \add@shewa {% put shewa unconditionally
-\ifv@c \last@voc \c@sukun \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% heparse.sty
+% ArabTeX
+% Modifications for Hebrew mode
+% 27.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {heparse.sty} {3.11 Hebrew parser routines} {27.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \def@hebvoc {% define vowel parsing routines for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%% short vowels
+
+\def \sv@a {\sv@patach } % a: patach
+\def \sv@e {\sv@segol } % e: segol
+\def \sv@i {\sv@chireq } % i: chireq breve
+\def \sv@o {\sv@qamesqatuf } % o: qames-chatuph
+\def \sv@u {\sv@qibbus } % u: qibbus
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels
+
+\def \sv@A {\sv@qames } % A: qames
+\def \sv@E {\sv@serelongum } % E: sere yod
+\def \sv@I {\sv@chireqlongum } % I: chireq yod
+\def \sv@O {\sv@cholemlongum } % O: cholem waw
+\def \sv@U {\sv@shureq } % U: shureq
+\def \sv@Y {\sv@qameslongum } % _A: qames aleph
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% long vowels, defective
+
+\sv@def \a@a {\sv@qames } % _a: qames aleph ?
+\sv@def \a@e {\sv@shewa } % .i: shewa
+\sv@def \a@i {\sv@chireq } % _i: chireq yod ?
+\sv@def \a@o {\sv@cholem } % _o: cholem breve
+\sv@def \a@u {\sv@shureq } % _u: shureq ?
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% special vowels
+
+\sv@def \a@A {\sv@chatef@patach } % .a:
+\sv@def \a@E {\sv@sere } % _e: sere breve
+\sv@def \a@I {\sv@chatef@segol } % .e:
+\sv@def \a@O {\sv@chatef@qames } % .o:
+\sv@def \a@U {\put@syl \syl@con } % .u: no vowel mark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% extra marks
+
+\sv@def \a@Za {\sv@sindot } % sin dot
+\sv@def \a@Ze {\sv@shindot } % shin dot
+\sv@def \a@Zi {\sv@rdot } % center dot
+\sv@def \a@Zo {\sv@raphe } % raphe
+\sv@def \a@Zu {\sv@dagesh } % dagesh
+
+\sv@def \a@ZA {\sv@ay } % Yiddish ay
+\sv@def \a@ZE {\sv@ey } % Yiddish ey
+\sv@def \a@ZI {\syl@voctest } % free
+\sv@def \a@ZO {\sv@oy } % Yiddish oy
+\sv@def \a@ZU {\syl@voctest } % free
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% hamza handling
+
+\def \syl@hamza {% non-initial hamza, context #1'
+\put@con a\syl@voctest }
+
+\let \syl@hamzabeg \syl@hamza
+
+\def \syl@test@voc {% vowel or shewa ?
+\h@test@voc }
+
+\def \check@high ##1{\relax }
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% static definitions for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif \ifp@tach \newif \ifch@lem
+
+\def \h@test@voc #1{% vowel or shewa ?
+\ifch@lem \ch@lemfalse \add@rdot \fi % rdot
+\if\is@vowel #1\def \next {\syl@voc #1}\else % test for vowel
+\ifx #1|\add@madda \def \next {\syl@shewa }% % meteg
+\else \def \next {\syl@shewa #1}% non-vowel follows
+\fi\fi \next }
+
+\def \syl@shewa #1{% put shewa if appropriate
+\ifp@tach \add@patachf \p@tachfalse \else
+\xpa\ifx \the\last@con B\else
+\ifx #1<\add@@shewa \else
+\ifcat \nxp #1\nxp <\add@@shewa \else
+ \add@sukun % shewa
+\fi\fi\fi\fi \put@syl \syl@con #1}
+
+\def \add@@shewa {% put shewa on final kaf
+\xpa\case \the\last@con \of
+{ k R {\add@shewa }}
+\endcase }
+
+\def \syl@meteg #1#2{% test for meteg and patach furtivum
+\ifx #2|\add@madda \def \next {#1}\else
+\ifx #2\a@A\p@tachtrue \def \next {#1}\else
+ \def \next {#1#2}%
+\fi\fi \put@syl \next }
+
+\gdef \test@cont #1{% vowel contact? put dummy if not cholem male
+\ifx #1O\def \next {\syl@con #1}\else
+\ifx #1U\def \next {\syl@con #1}\else
+\if\is@vowel #1\def \next {\syl@con N#1}\else
+\def \next {\syl@con #1}\fi\fi\fi \next }
+
+\def \test@patf #1{% vowel contact? put dummy, test for guttural: 05.10.01
+\ifx #1O\def \next {\test@p@tf #1}\else
+\ifx #1U\def \next {\test@p@tf #1}\else
+\if\is@vowel #1\def \next {\syl@con N#1}\else
+\def \next {\test@p@tf #1}\fi\fi\fi \next }
+
+\def \test@p@tf #1#2#3{% guttural at end: prepare patach furtivum
+\ifx #1h\ifx #2\a@Zu \p@tachtrue
+ \fi\fi
+\ifx #2a\ifx #3<\if\is@in@list #1PX>\p@tachtrue
+ \fi\fi\fi
+\syl@con #1#2#3}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \sv@patach {% a: put patach, test meteg
+\ifp@tach \add@patachf \p@tachfalse \else \add@fatha
+\fi \syl@meteg \test@cont }
+
+\def \sv@segol {% e: put segol, test meteg
+\add@zwarakay \syl@meteg \test@cont }
+
+\def \sv@qamesqatuf {% o: put qames qatuf, test meteg
+\add@ammad \syl@meteg \test@cont }
+
+\def \sv@qibbus {% u: put qibbus, test meteg
+\add@damma \syl@meteg \test@cont }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@qames {% long a: put qames, test meteg
+\add@fathaspec \syl@meteg \test@cont }
+
+\def \sv@qamesaleph {% long a: put qames, test meteg
+\add@fathaspec \syl@meteg \sv@qames@aleph }
+
+\def \sv@qames@aleph {% long a: put aleph
+\put@con a\put@syl \test@cont }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@sere {% long e: put sere breve, test meteg
+\add@kasraspec \syl@meteg \sv@s@re }
+
+\def \sv@s@re #1{% test for ey = E
+\ifx #1y\def \next {\sv@sere@longum }%
+\else \def \next {\test@patf #1}%
+\fi \next }
+
+\def \sv@serelongum {% long e: put sere, test meteg
+\add@kasraspec \syl@meteg \sv@sere@longum }
+
+\def \sv@sere@longum {% long e: put yod ?
+\test@yod }
+
+\def \test@yod #1{% vowel or consonant
+\if\is@vowel #1\def \next {\syl@con y#1}\else
+\put@con y\put@syl \def \next {\test@patf #1}%
+\fi \next }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@chireq {% i: put chireq, test meteg
+\add@kasra \syl@meteg \sv@ch@req }
+
+\def \sv@ch@req #1{% test for iy = I
+\ifx #1y\def \next {\sv@chireq@longum }%
+\else \def \next {\test@cont #1}%
+\fi \next }
+
+\def \sv@chireqlongum {% long i: put chireq, test meteg
+\add@kasra \syl@meteg \sv@chireq@longum }
+
+\def \sv@chireq@longum {% long i: put yod ?
+\test@yod }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@shureq {% long u: test meteg
+\syl@meteg \sv@sh@req }
+
+\def \sv@sh@req {% long u: put waw with shureq
+\put@con w\add@shadda \put@syl \test@patf }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@cholem #1{% short o: test meteg
+\ifx #1|\add@madda \def \next {\sv@ch@lem }%
+\else \def \next {\sv@ch@lem #1}%
+\fi \next }
+
+\def \sv@ch@lem #1{% short o: put cholem breve
+\xpa\ifx \the\last@con \a@s % omit cholem on sin
+\else \case #1\of
+{ a A Q w{\ch@lemtrue } % shift cholem
+ \default {\add@cholem } % deposit cholem
+} \endcase
+\fi \put@syl \sv@ch@lemwaw #1}
+
+\def \sv@ch@lemwaw #1{% test for ow = O
+\ifx #1w\def \next {\sv@cholem@longum }%
+\else \def \next {\test@cont #1}%
+\fi \next }
+
+\def \sv@cholemlongum {% long o: test meteg
+\syl@meteg \sv@cholem@longum }
+
+\def \sv@cholem@longum {% long o: put waw with cholem
+\put@con w\add@rdot \ch@lemfalse \put@syl \test@patf }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@chatef@patach {% put chatef patach, test meteg
+\add@fathatan \syl@meteg \test@cont }
+
+\def \sv@chatef@segol {% put chatef segol, test meteg
+\add@kasratan \syl@meteg \test@cont }
+
+\def \sv@chatef@qames {% put chatef qames, test meteg
+\add@dammatan \syl@meteg \test@cont }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@shewa {% put shewa unconditionally
+\add@shewa \put@syl \syl@con }
+
+\def \sv@sindot {% sin dot
+\voc@suk \advance \last@mod 10 \syl@voctest }
+
+\def \sv@shindot {% shin dot
+\voc@suk \advance \last@mod 20 \syl@voctest }
+
+\def \sv@rdot {% center dot
+\voc@suk \advance \last@mod 30 \syl@voctest }
+
+\def \sv@raphe {% raphe
+\voc@suk \advance \last@mod 40 \syl@voctest }
+
+\def \sv@dagesh {% dagesh, ww -> U, shureq?
+\add@shadda
+\xpa\ifx \the\last@con w\put@syl \def \next {\test@patf }%
+%\else \def \next {\syl@test@voc }%
+%\else \def \next {\syl@voctest }%
+\else \voc@suk \def \next {\syl@voctest }%
+\fi \next }
+
+\def \sv@dagesh {% dagesh, ww -> U, shureq?
+\add@shadda \voc@suk \syl@voctest }
+
+%%%%%%%%%%%%%%%%
+
+\def \sv@ay {% Yiddish ay
+\put@syl \put@con \a@i \v@ctrue \add@fatha \put@syl \test@patf }
+
+\def \sv@ey {% Yiddish ey
+\put@syl \put@con \a@i \put@syl \test@patf }
+
+\def \sv@oy {% Yiddish oy
+\put@syl \put@con \a@o \put@syl \test@patf }
+
+%%%%%%%%%%%%%%%%
+
+\def \add@rdot {\advance \last@mod \c@hamza }
+
+\def \add@cholem {\ifv@c \last@voc \c@wasla \fi }
+
+\def \add@patachf {\ifv@c \last@voc 13 \fi }
+
+\def \add@shewa {% put shewa unconditionally
+\ifv@c \last@voc \c@sukun \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/language/arabic/arabtex/texinput/hepatch.sty b/language/arabic/arabtex/texinput/hepatch.sty
index 703485f467..cd85a8d423 100644
--- a/language/arabic/arabtex/texinput/hepatch.sty
+++ b/language/arabic/arabtex/texinput/hepatch.sty
@@ -1,37 +1,37 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hepatch.sty
-% ArabTeX, Hebrew mode
-% last minute corrections
-% see \hversion, \hdatum and \hlevel at the end of the file
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% this is just another *.sty file
-% you do not have to do any manual patching
-% just put this file onto the TEXINPUT path
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode`\@ = 11
-
-\newtoks \hversion \newtoks \hdatum \hversion = {3.10}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% presently no patches
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hdatum = {17.09.2001} \def \hlevel {-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hepatch.sty}
- {\the\hversion \hlevel \space patches for Hebrew} {\the\hdatum}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode`\@ = \patchatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hepatch.sty
+% ArabTeX, Hebrew mode
+% last minute corrections
+% see \hversion, \hdatum and \hlevel at the end of the file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is just another *.sty file
+% you do not have to do any manual patching
+% just put this file onto the TEXINPUT path
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = 11
+
+\newtoks \hversion \newtoks \hdatum \hversion = {3.10}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% presently no patches
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\hdatum = {17.09.2001} \def \hlevel {-}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hepatch.sty}
+ {\the\hversion \hlevel \space patches for Hebrew} {\the\hdatum}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode`\@ = \patchatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/texinput/hescan.sty b/language/arabic/arabtex/texinput/hescan.sty
index 628c7e178f..5c5e1dcb5b 100644
--- a/language/arabic/arabtex/texinput/hescan.sty
+++ b/language/arabic/arabtex/texinput/hescan.sty
@@ -1,216 +1,216 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hescan.sty
-% Scanner for ISO 8859-8 Code, loaded by hebtex.sty
-% experimental scanner for Hebrew files
-% to activate it, say "\setcode {hed}" or "\setcode {HED}" or
-% "\setcode {pccode}" or "\setcode {newcode}" or "\setcode {iso8859-8}"
-% for Hebrew Windows encoding CP1255 say "\setcode{cp1255}"
-% 07.03.2002
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \hedatcode \undefined \else \xpa \endinput \fi
-
-\chardef \hedatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {hescan.sty}
-{3.10a scanner for HED and ISO 8859-8 encoding} {07.03.2002}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \sethed@codes {\seta@codes % activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@a {b} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h}
-%\def \sc@a {v} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h}
-\def \sc@e {w} \def \sc@f {z} \def \sc@g {X} \def \sc@h {C}
-\def \sc@i {y} \def \sc@j {k} \def \sc@k {k-} \def \sc@l {l}
-\def \sc@m {m} \def \sc@n {m-} \def \sc@o {n} \def \sc@p {n-}
-%\def \sc@q {s} \def \sc@r {P} \def \sc@s {f} \def \sc@t {f-}
-\def \sc@q {s} \def \sc@r {P} \def \sc@s {p} \def \sc@t {p-}
-\def \sc@u {S} \def \sc@v {S-} \def \sc@w {q} \def \sc@x {r}
-\def \sc@y {\n@xp \a@S } \def \sc@z {t}
-%
-\xpa \def \csname sc@`\endcsname {Q}
-\a@digits = {0123456789} \a@paren = {()[]} \a@first = {}
-\globaldefs=0
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Hebrew: oldcode and pccode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hed@scan #1>{% modified scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase {\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse
-\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform
-\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hed@word #1#2{% transform input into internal notation
- \def \next {\hed@word #2}%
-\ifx #1\@ \let \next \relax \else
-\ifcat \nxp #1\relax \def \next {\hed@cs #1#2}\else % control sequence
- \ifx #1-\def \sc@char {B}\else
- \ifx #1`\def \sc@char {Q}\else
- \ifcat \noexpand #1a\edef \sc@char
- {\csname sc@#1\endcsname }%
- \else \def \sc@char {#1}%
- \fi\fi\fi \sc@put
-\fi\fi \next }
-
-\def \h@d@cs #1#2{% test word end
-\def \sc@char {#1}\sc@put
-\ifx #2\@ \def \next {\sc@endscan #2}\else
-\ifcat -\nxp #2 \def \next {\hed@word #2}\else
-\def \next {\sc@back #2}\fi \fi \next }
-
-\def \hed@cs #1#2{% control sequence within a word; push back?
-\xpa \ifx #1\closegeresh \def \next {\h@d@cs {\nxp \lq }#2}\else
-\xpa \ifx #1\closequote \def \next {\h@d@cs {`}#2}\else
- \def \next {\sc@back #1#2}%
-\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hed@select {% select the new scanner
-\heb@catcodes % inside hebtex.sty; to make sure
-\let \sc@beg \hed@word \let \sc@word \hed@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\sethed@codes \global\let \a@scan \hed@scan
-\a@message {input encoding set to ISO 8859-8 and other Hebrew conventions}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hwin@catcodes {% assignments for CP 1255
-\countdef \is@m=2 \is@m = 192 \is@n = 64
-\loop \catcode \is@m = 11 \lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^^a0 12 }
-
-{\hwin@catcodes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \sethwin@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I}
-\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O}
-\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E}
-\def \sc@^^c6 {"e} \def \sc@^^c7 {"a}
-\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o}
-\def \sc@^^ca {L} \def \sc@^^cb {"u}
-\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|}
-\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo}
-
-\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze}
-\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:}
-\def \sc@^^d4 {w-w} \def \sc@^^d5 {wy}
-\def \sc@^^d6 {y-y} \def \sc@^^d7 {@}
-\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@}
-\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@}
-
-\def \sc@M {M} %\def \sc@N {N}
-\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
-\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
-\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
-\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
-
-\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
-\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
-\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@}
-\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@}
-\a@digits = {0123456789}
-\a@paren = {()[]}
-\a@first = {"`^^e6}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Hebrew, CP1255, ISO8859-8, newcode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hwin@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase{\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hwin@beg {% start CP 1255 scanner
-\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
-\hwin@word }
-
-{\catcode `\^^M=13 \endlinechar = -1
-\gdef \hwin@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\sc@endscan }\else % finished
-\if \nxp ^^M\nxp #1\def \next {\hwin@par #1}% active character
-\else \def \next {\hwin@w@rd #1}%
-\fi\fi \next }%
-} % catcode 13
-
-\gdef \hwin@w@rd #1#2{% special cases
-\case #1\of
-{ #2{\hwin@word #1-#2}
- -{\hwin@minus #2}
- ^^a0{\sc@back #2}
- ^^ad{\hwin@minus #2}
-\default {\hwin@@word #1#2}
-}\endcase }
-
-\gdef \hwin@@word #1#2{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put
-\def \next {\hwin@word #2}%
-\next }
-
-\gdef \hwin@@word #1{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put \hwin@word }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hwin@minus {% hyphen between words
-\def \sc@char {-}\sc@put \hwin@beg }
-
-\gdef \hwin@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\gdef \hwin@endscan \@@ {\global\let \a@scan \hwin@scan }
-} % \hwin@catcodes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@hwin {% select the CP 1255 scanner
-\let \sc@beg \hwin@beg \let \sc@word \hwin@word
-\let \sc@back \sc@@back \let \sc@endscan \hwin@endscan
-\global\let \a@scan \hwin@scan \sethwin@codes
-\hwin@catcodes
-\a@message {input encoding set to Windows CP 1255 conventions}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings
-hed\hed@select newcode\hed@select pccode\hed@select
-iso8859-8\hed@select hwin\set@hwin cp1255\set@hwin }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for ISO 8859-8, CP1255, and other Hebrew codes installed.}
-
-\catcode `\@ = \hedatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hescan.sty
+% Scanner for ISO 8859-8 Code, loaded by hebtex.sty
+% experimental scanner for Hebrew files
+% to activate it, say "\setcode {hed}" or "\setcode {HED}" or
+% "\setcode {pccode}" or "\setcode {newcode}" or "\setcode {iso8859-8}"
+% for Hebrew Windows encoding CP1255 say "\setcode{cp1255}"
+% 07.03.2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \hedatcode \undefined \else \xpa \endinput \fi
+
+\chardef \hedatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {hescan.sty}
+{3.10a scanner for HED and ISO 8859-8 encoding} {07.03.2002}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \sethed@codes {\seta@codes % activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@a {b} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h}
+%\def \sc@a {v} \def \sc@b {g} \def \sc@c {d} \def \sc@d {h}
+\def \sc@e {w} \def \sc@f {z} \def \sc@g {X} \def \sc@h {C}
+\def \sc@i {y} \def \sc@j {k} \def \sc@k {k-} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {m-} \def \sc@o {n} \def \sc@p {n-}
+%\def \sc@q {s} \def \sc@r {P} \def \sc@s {f} \def \sc@t {f-}
+\def \sc@q {s} \def \sc@r {P} \def \sc@s {p} \def \sc@t {p-}
+\def \sc@u {S} \def \sc@v {S-} \def \sc@w {q} \def \sc@x {r}
+\def \sc@y {\n@xp \a@S } \def \sc@z {t}
+%
+\xpa \def \csname sc@`\endcsname {Q}
+\a@digits = {0123456789} \a@paren = {()[]} \a@first = {}
+\globaldefs=0
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew: oldcode and pccode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hed@scan #1>{% modified scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase {\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse
+\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform
+\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hed@word #1#2{% transform input into internal notation
+ \def \next {\hed@word #2}%
+\ifx #1\@ \let \next \relax \else
+\ifcat \nxp #1\relax \def \next {\hed@cs #1#2}\else % control sequence
+ \ifx #1-\def \sc@char {B}\else
+ \ifx #1`\def \sc@char {Q}\else
+ \ifcat \noexpand #1a\edef \sc@char
+ {\csname sc@#1\endcsname }%
+ \else \def \sc@char {#1}%
+ \fi\fi\fi \sc@put
+\fi\fi \next }
+
+\def \h@d@cs #1#2{% test word end
+\def \sc@char {#1}\sc@put
+\ifx #2\@ \def \next {\sc@endscan #2}\else
+\ifcat -\nxp #2 \def \next {\hed@word #2}\else
+\def \next {\sc@back #2}\fi \fi \next }
+
+\def \hed@cs #1#2{% control sequence within a word; push back?
+\xpa \ifx #1\closegeresh \def \next {\h@d@cs {\nxp \lq }#2}\else
+\xpa \ifx #1\closequote \def \next {\h@d@cs {`}#2}\else
+ \def \next {\sc@back #1#2}%
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hed@select {% select the new scanner
+\heb@catcodes % inside hebtex.sty; to make sure
+\let \sc@beg \hed@word \let \sc@word \hed@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\sethed@codes \global\let \a@scan \hed@scan
+\a@message {input encoding set to ISO 8859-8 and other Hebrew conventions}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hwin@catcodes {% assignments for CP 1255
+\countdef \is@m=2 \is@m = 192 \is@n = 64
+\loop \catcode \is@m = 11 \lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^^a0 12 }
+
+{\hwin@catcodes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \sethwin@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^c0 {"\n@xp\a@e} \def \sc@^^c1 {"\n@xp\a@I}
+\def \sc@^^c2 {"\n@xp\a@A} \def \sc@^^c3 {"\n@xp\a@O}
+\def \sc@^^c4 {"i} \def \sc@^^c5 {"\n@xp\a@E}
+\def \sc@^^c6 {"e} \def \sc@^^c7 {"a}
+\def \sc@^^c8 {"A} \def \sc@^^c9 {"\n@xp\a@o}
+\def \sc@^^ca {L} \def \sc@^^cb {"u}
+\def \sc@^^cc {"\n@xp\a@Zu} \def \sc@^^cd {|}
+\def \sc@^^ce {B} \def \sc@^^cf {"\n@xp\a@Zo}
+
+\def \sc@^^d0 {K} \def \sc@^^d1 {"\n@xp\a@Ze}
+\def \sc@^^d2 {"\n@xp\a@Za} \def \sc@^^d3 {:}
+\def \sc@^^d4 {w-w} \def \sc@^^d5 {wy}
+\def \sc@^^d6 {y-y} \def \sc@^^d7 {@}
+\def \sc@^^d8 {@} \def \sc@^^d9 {@} \def \sc@^^da {@} \def \sc@^^db {@}
+\def \sc@^^dc {@} \def \sc@^^dd {@} \def \sc@^^de {@} \def \sc@^^df {@}
+
+\def \sc@M {M} %\def \sc@N {N}
+\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
+\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
+\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
+\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
+
+\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
+\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
+\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S} \def\sc@^^fa {t} \def \sc@^^fb {@}
+\def \sc@^^fc {@} \def \sc@^^fd {@} \def \sc@^^fe {@} \def \sc@^^ff {@}
+\a@digits = {0123456789}
+\a@paren = {()[]}
+\a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew, CP1255, ISO8859-8, newcode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hwin@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase{\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hwin@beg {% start CP 1255 scanner
+\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
+\hwin@word }
+
+{\catcode `\^^M=13 \endlinechar = -1
+\gdef \hwin@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\sc@endscan }\else % finished
+\if \nxp ^^M\nxp #1\def \next {\hwin@par #1}% active character
+\else \def \next {\hwin@w@rd #1}%
+\fi\fi \next }%
+} % catcode 13
+
+\gdef \hwin@w@rd #1#2{% special cases
+\case #1\of
+{ #2{\hwin@word #1-#2}
+ -{\hwin@minus #2}
+ ^^a0{\sc@back #2}
+ ^^ad{\hwin@minus #2}
+\default {\hwin@@word #1#2}
+}\endcase }
+
+\gdef \hwin@@word #1#2{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put
+\def \next {\hwin@word #2}%
+\next }
+
+\gdef \hwin@@word #1{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put \hwin@word }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hwin@minus {% hyphen between words
+\def \sc@char {-}\sc@put \hwin@beg }
+
+\gdef \hwin@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\gdef \hwin@endscan \@@ {\global\let \a@scan \hwin@scan }
+} % \hwin@catcodes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@hwin {% select the CP 1255 scanner
+\let \sc@beg \hwin@beg \let \sc@word \hwin@word
+\let \sc@back \sc@@back \let \sc@endscan \hwin@endscan
+\global\let \a@scan \hwin@scan \sethwin@codes
+\hwin@catcodes
+\a@message {input encoding set to Windows CP 1255 conventions}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings
+hed\hed@select newcode\hed@select pccode\hed@select
+iso8859-8\hed@select hwin\set@hwin cp1255\set@hwin }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for ISO 8859-8, CP1255, and other Hebrew codes installed.}
+
+\catcode `\@ = \hedatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hetrans.sty b/language/arabic/arabtex/texinput/hetrans.sty
index 93168b793e..d06436e160 100644
--- a/language/arabic/arabtex/texinput/hetrans.sty
+++ b/language/arabic/arabtex/texinput/hetrans.sty
@@ -1,87 +1,87 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hetrans.sty
-% ArabTeX
-% Modifications for Hebrew mode
-% needs atrans.sty version 3.09 or later
-% 17.07.1999
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \transatcode \undefined \UsePackage {atrans}
-\fi
-
-\catcode`\@ = 11 % presupposes atrans.sty loaded
-
-\a@ident {hetrans.sty} {3.09 Hebrew transcription module} {17.07.1999}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@heb {% my transliteration for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg % start with default and modify
-\gdef \tr@@e ##1{% test for ey -> `e
- \ifx ##1y\def \next {\`e\tr@aword }\else
- \def \next {\setc@p e\tr@aword ##1}\fi \next}
-\gdef \tr@B {-} \gdef \tr@C {\d{t}} \gdef \tr@D {d}
-\gdef \tr@R {g} \gdef \tr@U {\=u\-} \gdef \tr@V {t}
-\gdef \tr@X {\d{h}}
-\tr@def \a@b {b} \tr@def \a@e {\rsh@ft{07}{$^i$}\-}
-\tr@def \a@f {p} \tr@def \a@j {\rsh@ft{07}{$^i$}\-}
-\tr@def \a@k {k} \tr@def \a@o {\=o\-}
-\tr@def \a@A {\rsh@ft{07}{$^a$}\-} \tr@def \a@E {\=e\-}
-\tr@def \a@H {h} \tr@def \a@I {\rsh@ft{07}{$^e$}\-}
-\tr@def \a@O {\rsh@ft{07}{$^o$}\-} \tr@def \a@U {}
-\gdef \tr@aword {\@vocalfalse \tr@@aword }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \tr@zaw {% ZAW transliteration for Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@heb % start with default and modify
-\gdef \tr@@e ##1{% test for ey -> `\ae
- \ifx ##1y\def \next {\`{\ae}\tr@aword }\else
- \def \next {\ae\tr@aword ##1}\fi \next}
-\gdef \tr@@E ##1{% test for Ee -> ey
- \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
- \def \next {\^e\tr@aword ##1}\fi \next}
-\gdef \tr@o {\aa } \gdef \tr@I {\^{\i}\-}
-\gdef \tr@O {\^o\-} \gdef \tr@U {\^u\-}
-\tr@def \a@e {\rsh@ft{07}{$^e$}\-} \tr@def \a@i {i\-}
-\tr@def \a@j {\rsh@ft{07}{$^e$}\-} \tr@def \a@o {\=o\-}
-\tr@def \a@E {e\-}
-\tr@def \a@I {\rsh@ft{07}{$^{\hbox{\scriptsize \ae}}$}\-}
-\tr@def \a@O {\rsh@ft{07}{$^{\mathaccent 23a}$}\-}
-\ifx \tr@code \tr@oldcode \else \a@message {ZAW~transliteration}\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \tr@gesen {% transliteration for Hebrew after Gesenius
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@heb % start with default and modify
-\gdef \tr@@e ##1{% test for ey -> `e
- \ifx ##1y\def \next {\`e\tr@aword }\else
- \def \next {\u{e}\tr@aword ##1}\fi \next}
-\gdef \tr@f {ph} \gdef \tr@C {th}
-\gdef \tr@H {h} \gdef \tr@R {kh}
-\tr@def \a@e {\rsh@ft{07}{$^e$}\-}
-\tr@def \a@j {\rsh@ft{07}{$^e$}\-}
-\ifx \tr@code \tr@oldcode \else \a@message {Gesenius'~transliteration}\fi }
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa \def \xpa \tr@table \xpa {\tr@table % add the Hebrew encodings
-gesenius\tr@gesen zaw\tr@zaw heb\tr@stdheb }
-
-\def \tr@stdheb {\tr@heb
-\ifx \tr@code \tr@oldcode \else
-\a@message {ArabTeX default transliteration}\fi }
-
-\settrans {heb}% default
-
-\catcode`\@ = \transatcode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hetrans.sty
+% ArabTeX
+% Modifications for Hebrew mode
+% needs atrans.sty version 3.09 or later
+% 17.07.1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \transatcode \undefined \UsePackage {atrans}
+\fi
+
+\catcode`\@ = 11 % presupposes atrans.sty loaded
+
+\a@ident {hetrans.sty} {3.09 Hebrew transcription module} {17.07.1999}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@heb {% my transliteration for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg % start with default and modify
+\gdef \tr@@e ##1{% test for ey -> `e
+ \ifx ##1y\def \next {\`e\tr@aword }\else
+ \def \next {\setc@p e\tr@aword ##1}\fi \next}
+\gdef \tr@B {-} \gdef \tr@C {\d{t}} \gdef \tr@D {d}
+\gdef \tr@R {g} \gdef \tr@U {\=u\-} \gdef \tr@V {t}
+\gdef \tr@X {\d{h}}
+\tr@def \a@b {b} \tr@def \a@e {\rsh@ft{07}{$^i$}\-}
+\tr@def \a@f {p} \tr@def \a@j {\rsh@ft{07}{$^i$}\-}
+\tr@def \a@k {k} \tr@def \a@o {\=o\-}
+\tr@def \a@A {\rsh@ft{07}{$^a$}\-} \tr@def \a@E {\=e\-}
+\tr@def \a@H {h} \tr@def \a@I {\rsh@ft{07}{$^e$}\-}
+\tr@def \a@O {\rsh@ft{07}{$^o$}\-} \tr@def \a@U {}
+\gdef \tr@aword {\@vocalfalse \tr@@aword }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \tr@zaw {% ZAW transliteration for Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@heb % start with default and modify
+\gdef \tr@@e ##1{% test for ey -> `\ae
+ \ifx ##1y\def \next {\`{\ae}\tr@aword }\else
+ \def \next {\ae\tr@aword ##1}\fi \next}
+\gdef \tr@@E ##1{% test for Ee -> ey
+ \ifx ##1e\def \next {\setc@p e\tr@aword y}\else
+ \def \next {\^e\tr@aword ##1}\fi \next}
+\gdef \tr@o {\aa } \gdef \tr@I {\^{\i}\-}
+\gdef \tr@O {\^o\-} \gdef \tr@U {\^u\-}
+\tr@def \a@e {\rsh@ft{07}{$^e$}\-} \tr@def \a@i {i\-}
+\tr@def \a@j {\rsh@ft{07}{$^e$}\-} \tr@def \a@o {\=o\-}
+\tr@def \a@E {e\-}
+\tr@def \a@I {\rsh@ft{07}{$^{\hbox{\scriptsize \ae}}$}\-}
+\tr@def \a@O {\rsh@ft{07}{$^{\mathaccent 23a}$}\-}
+\ifx \tr@code \tr@oldcode \else \a@message {ZAW~transliteration}\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \tr@gesen {% transliteration for Hebrew after Gesenius
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@heb % start with default and modify
+\gdef \tr@@e ##1{% test for ey -> `e
+ \ifx ##1y\def \next {\`e\tr@aword }\else
+ \def \next {\u{e}\tr@aword ##1}\fi \next}
+\gdef \tr@f {ph} \gdef \tr@C {th}
+\gdef \tr@H {h} \gdef \tr@R {kh}
+\tr@def \a@e {\rsh@ft{07}{$^e$}\-}
+\tr@def \a@j {\rsh@ft{07}{$^e$}\-}
+\ifx \tr@code \tr@oldcode \else \a@message {Gesenius'~transliteration}\fi }
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \def \xpa \tr@table \xpa {\tr@table % add the Hebrew encodings
+gesenius\tr@gesen zaw\tr@zaw heb\tr@stdheb }
+
+\def \tr@stdheb {\tr@heb
+\ifx \tr@code \tr@oldcode \else
+\a@message {ArabTeX default transliteration}\fi }
+
+\settrans {heb}% default
+
+\catcode`\@ = \transatcode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+
diff --git a/language/arabic/arabtex/texinput/hewrite.sty b/language/arabic/arabtex/texinput/hewrite.sty
index 48b39b642b..968c1ffbf4 100644
--- a/language/arabic/arabtex/texinput/hewrite.sty
+++ b/language/arabic/arabtex/texinput/hewrite.sty
@@ -1,589 +1,589 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hewrite.sty
-% ArabTeX
-% Modifications for Hebrew mode
-% 21.05.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {hewrite.sty} {3.11 for all supported Hebrew fonts} {21.05.2003}
-
-\UsePackage {hebsymb} % Hebrew font character definitions
-\UsePackage {hebchrs} % Hebrew letter token definitions
-
-\chardef \sind@t 1 \chardef \shind@t 2 \chardef \rd@t 3
-\chardef \r@phe 4 \chardef \illch@r 33
-
-\newcount \heb@dsp \newcount \heb@cd
-\newcount \heb@voc \newcount \h@modii \newcount \h@modi
-
-\newif \if@dagesh \newif \if@final \newif \if@meteg
-%\newif \ifhv@wel % is obsolete, remove!
-\newif \ifsp@c
-
-\newdimen \h@ht \newdimen \h@p
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \heb@write #1>{% Hebrew output routine
-\iftest@write \tracingmacros = 1
-\iftest@parse \else \a@verb (#1)>\fi\fi
-\a@write@hook
-\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
-\iftest@write \tracingmacros = 0
-\fi }
-
-\def \heb@testfont {% diagnose font, look for vowels and ayin
-\edef \next {\the\font }%
-\ifx \next \h@font \else
-\iftest@font \a@message {Hebrew font \next selected.}\fi
-\global\let \h@font \next \h@testfont \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \isch@r #1{00% code position in font not empty?
-\setbox0 \hbox {\tracinglostchars 0 \char #1}%
-\ifdim \wd0 = \z@ \xpa \setiffalse \fi }
-
-\def \h@testfont {% diagnose font, look for vowels and ayin
-\if\isch@r {"80}\global\heb@dsp "20\else
-\if\isch@r {"E0}\global\heb@dsp "80\else
-\if\isch@r {"60}\global\heb@dsp 0\else
- \global\heb@dsp 0\errmessage {no usable Hebrew font found}%
-\fi\fi\fi
-\gdef \v@adj {0}\global\h@ht \ht0 \global\h@p .1\h@ht \relax
-\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }%
-\heb@cd \heb@dsp \advance \heb@cd 114 \xdef \hc@Pv {\the\heb@cd }%
-\if\isch@r {"10}\set@shalom\else
-\if\isch@r {1}\set@hclassic\else
- \set@hebstd
-\fi\fi }
-
-\def \set@hclassic {% and dclassic, hcaption, dcaption
-\global\let \h@kern \relax \global\sp@cfalse
-\gdef \v@adj {0}\gdef \hc@Pv {123}%
-\if\isch@r {"30}\global\sp@ctrue
-\gdef \v@adj {-.2}\gdef \hc@Pv {114}%
-\fi \set@hcls }
-
-\def \set@shalom {% shlm_old, shlm_stk, shlm_scr
-\gdef \h@kern {\kern.05em }\global\sp@cfalse
-\set@shlm }
-
-\def \set@hebstd {% jerusalem, oldjaffa, telaviv, deadsea,
-% fr, frbx, frsl, crml, crmlsl
-\global\let \h@kern \relax \global\sp@ctrue
-\set@hstd }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \heb@beg #1#2*#3{% start output
-% c m * c
-\h@test@chr #1\heb@end #1#2*#3}
-
-\def \heb@end #1#2*#3{% final character
-% c m * c
-\ifx #1>\let \next \relax
-\else \def \next {\heb@mid #3}%
- \ifx #1-\else
- \ifcat \nxp #1-\h@put@spec #1#2*#3<%
- \else \h@put@end #1#2*#3<%
- \fi\fi
- \h@test@chr #3%
-\fi \next }
-
-\def \heb@mid #1#2*#3{% non-final character
-% c m * c
-\ifx #1>\let \next \relax
-\else \def \next {\heb@mid #3}%
- \ifcat \nxp #1-\h@put@spec #1#2*#3<%
- \else \h@put@mid #1#2*#3<%
- \fi
- \h@test@chr #3%
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \h@put@end {% final position
-\if@final \advance \act@cd -1 \fi \h@put@mid }
-
-\gdef \h@put@mid #1#2+#3*#4<{% deposit character
-% c m1 + m2 * c <
-% \def \next {\heb@mid #4}%
-\ifnum \act@cd = \hc@@ \relax \h@put@ill \else % illegal character
-\case #1\of
-{ B{\put@maqqef \def \next {\heb@end #4}}
- K{\put@box {$|$}}
- M{\put@box {$\Box$}}
- WN{\put@phantom }
- y{\h@ylig #4<}
- w{\h@wlig #4<}
-\default {\h@putchar }
-}\endcase
-\fi
-\heb@accent #2+#3*\h@kern
-\ifnum \act@cd = \hc@l \relax \smash {\unhbox \ab@x }%
-\else \unhbox \ab@x
-\fi }
-
-\def \h@wlig #1<{% waw ligatures
-\ifx #1w%
-\fi
-\h@putchar }
-
-\def \h@ylig #1<{% yod ligatures
-\ifx #1w%
-\fi
-\h@putchar }
-
-\def \h@put@ill {\put@box {$\bullet$}}
-
-\def \put@phantom {% small space
-\heb@cd \hc@y \advance \heb@cd \heb@dsp
-\put@box {\hphantom{\char \the\heb@cd }}}
-
-{\catcode`\^ 12 \catcode `\_ 12 \catcode `\& 12
-\catcode `\A 12 \catcode `\B 12 \catcode `\C 12
-\catcode `\D 12 \catcode `\E 12 \catcode `\F 12
-\catcode `\G 12 \catcode `\H 12 \catcode `\I 12
-\catcode `\J 12 \catcode `\K 12 \catcode `\L 12
-\catcode `\M 12 \catcode `\N 12 \catcode `\O 12
-\catcode `\P 12
-%
-\gdef \h@put@spec #1#2*#3<{% special character
-% c m * c <
-\case #1\of
-{ -|{}
-% !,.{#1}
- :{#1\,}
- \lq {\rm \bf `}
- `{\rm \bf ``}
-% A{{\tt "}\def \next {\heb@end #3}} % "
- A{{\tt "}} % "
- B{{\rm \bf ,}} % ,
- C{{\tt -}} % -
- D{{\tt \char`\|}} % |
-% E{{\tt \char'015}\def \next {\heb@end #3}} % '
- E{{\tt \char'015}} % '
- F{{\tt \char`\\}} % \
- G{{\tt \char`\}}} % {
- H{{\tt \char`\{}} % }
- I{{\bf $\cdots$}} % ...
- J{{\bf $\div$}} % -:-
- K{{\tt \char`\>}} % <
- L{{\tt \char`\<}} % >
- M{{\rm \bf --}} % --
- N{{\rm \bf ---}} % ---
- O{{\rm \bf `}} % `
-% P{{\rm \bf '}\def \next {\heb@end #3}} % '
- P{{\rm \bf '}} % '
-\default {{\ifsp@c \else \rm \bf \fi
- \ifx #1][\else \ifx #1[]\else
- #1\fi\fi}}
-}\endcase
-\ifx #1A\else \ifx #1E\else \ifx #1'\else
-\def \next {\heb@end #3}\fi\fi\fi }
-}% \catcodes 12
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \h@test@chr #1{% get character attributes
-\@dageshfalse \@finalfalse \act@mod 0 \act@cd \hc@@
-\def \hc@sk {#1}%
-\csname tc@\string #1\endcsname }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \heb@accent #1+#2*{% put modifier onto contents of "\ab@x"
-% m1 + m2 *
-\red@mod = 0#1 \relax \advance \red@mod 100 \relax
-\xpa \heb@split \the\red@mod *\h@putaccent #2*}
-
-\def \h@putmod #1{% deposit modifier
-\ifcase #1\relax
-\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe \fi }
-
-\def \heb@split 1#1#2*{% separate modifier 1
-% 1 m11 m12 *
-\h@putmod #1\@metegfalse \red@mod = #2\relax
-\ifnum \red@mod > 3 \advance \red@mod -4 \@metegtrue \fi
-\ifnum \red@mod > 1 \advance \red@mod -2 \h@cholem \fi
-\ifnum \red@mod > 0 \advance \red@mod -1 \@dageshtrue \fi }
-
-\def \h@putaccent #1*{% deposit vowels
-\h@putmod \act@mod
-\ifcase 0#1\relax
-\put@dummy \or \put@shwa \or \put@patach \or \put@chireq \or
-\put@qibbus \or \put@chpatach \or \put@chsegol \or \put@chqames \or
-\put@segol \or \put@cholem \or \put@qames \or \put@sere \or
-\put@qameschat \or \put@patachf \fi
-\if@dagesh \put@dagesh \fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \h@@putchar {% choose character glyph
-\ifnum \act@cd = \hc@v \relax \h@putlig \hc@w \hc@w \else
-\ifnum \act@cd = \hc@oy \relax \h@putlig \hc@y \hc@w \else
-\ifnum \act@cd = \hc@ey \relax \h@putlig \hc@y \hc@y \else
- \h@put@char \act@cd
-\fi\fi\fi }%
-
-\def \h@putlig #1#2{% Hebrew ligature
-\h@put@char #1\setbox4 \box \ab@x
-\h@put@char #2\setbox6 \box \ab@x
-\put@box {\unhcopy4 \unhcopy6 }}%
-
-\def \h@put@char #1{% choose character glyph
-\heb@cd #1\advance \heb@cd \heb@dsp \put@b@x {\the\heb@cd }}%
-
-\def \h@@putdot #1{% put a dot above a character
-\dimen@ 1.25\h@ht \dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
-\global\setbox\ab@x \hbox
-{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
-
-\def \h@@raphe {% no dagesh
-\setbox0 \hbox {\the@raphe }\dimen@ 1.25\h@ht
-\dimen2 .5\a@wd \advance\dimen2 -.5\wd0 \advance\dimen2 \a@slant\dimen@
-\global\setbox\ab@x \hbox
-{\rlap{\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for vowel positioning
-% CAUTION: these routines are called in HMODE
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \set@hcls{% routines for the HCLASSIC font family
-\globaldefs = 1\relax
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\let \h@putchar \h@@putchar
-%
-\def \put@maqqef {% deposit maqqef
-\put@b@x {\the\act@cd }}%
-%
-\def \h@vowel {% check for meteg
-\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
-%
-\def \h@meteg ##1{% put vowel and meteg
-\h@putvowel {\char 8 ##1}}%
-%
-\def \the@dot {\char 0}%
-%
-\def \the@raphe {\vrule width.8\a@wd height.4pt depth0pt }%
-%
-\def \put@dummy {\h@vowel {}}% % dummy for meteg, silluq
-\def \put@patach {\h@vowel {\char 1 }}% % patach
-\def \put@qames {\h@vowel {\char 2 }}% % qames
-\def \put@segol {\h@vowel {\char 3 }}% % segol
-\def \put@qibbus {\h@vowel {\char 4 }}% % qibbus
-\def \put@chireq {\h@vowel {\char 5 }}% % chireq
-\def \put@qameschat {\h@vowel {\char 6 }}% % qames chatuph
-\def \put@shwa {\h@vowel {\char 7 }}% % shwa
-\def \put@sere {\h@vowel {\char 9 }}% % sere
-\def \put@chpatach {\h@vowel {\char 1 \char 7 }}% % chateph patach
-\def \put@chsegol {\h@vowel {\char 3 \char 7 }}% % chateph segol
-\def \put@chqames {\h@vowel {\char 6 \char 7 }}% % chateph qames
-\def \put@cholem {\h@vowel {}\h@ldot }% % cholem breve, meteg?
-\def \put@patachf {\h@vowel {\hphantom
- {\char 1 }\char 1 }}% % patach furtivum
-%
-\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
-\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
-\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
-\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
-\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
-\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
-\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
-\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
-\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
-\ifnum \act@cd = \hc@f \def \hadj {.15}\fi % pe
-\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
-\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
-\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
-\ifnum \act@cd = \hc@si \def \hadj {.07}\fi % shin
-\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
-\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@
-\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
-\global\setbox\ab@x \hbox
-%{\rlap{\kern\dimen2 \raise\dimen@\hbox{\char 0 }}\unhcopy\ab@x}}%
-{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
-%
-\let \h@put@dot \h@@putdot
-%
-\let \h@raphe \h@@raphe
-%
-\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
-%
-\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
-%
-\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
-%
-\def \h@ldot {% left dot for cholem breve
-\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
-\else \h@put@dot {.1}\fi }%
-%
-\def \h@cholem {% depends on carrier
-\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
-%
-\def \h@putvowel ##1{% vowel mark
-\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
-\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
-\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
-\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
-\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
-\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
-\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
-\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
-\fi\fi\fi\fi\fi\fi\fi
-\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
-\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\globaldefs = 0 }% end font HCLASSIC
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\global\let \@set@hcls \set@hcls
-
-\gdef \set@hcls{% routines for the HCLASSIC font family
-%\globaldefs = 1\relax
-\a@message {patch HCLASSIC}%
-\@set@hcls
-\globaldefs = 1\relax
-\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
-\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
-\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
-\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
-\def \the@sere {\the@dot \kern\h@p \the@dot }%
-\def \the@segol {\the@dot \the@ldot \the@dot }%
-\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
-\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
-\def \the@meteg {\vrule width\h@p height-.2\h@p depth3\h@p }%
-\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
-\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
-\def \put@dummy {\h@vowel {}}%
-\def \put@patach {\h@vowel {\the@patach }}%
-\def \put@qames {\h@vowel {\the@qames }}%
-\def \put@segol {\h@vowel {\the@segol }}%
-\def \put@qibbus {\h@vowel {\the@qibbus }}%
-\def \put@chireq {\h@vowel {\the@dot }}%
-\def \put@qameschat {\h@vowel {\the@qames }}%
-\def \put@shwa {\h@vowel {\the@shwa }}%
-\def \put@sere {\h@vowel {\the@sere }}%
-\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
-\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
-\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
-\def \put@cholem {\h@vowel {}\h@ldot }%
-\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
-%
-\def \h@vowel {% check for meteg
-\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
-%
-\def \h@meteg ##1{% put vowel and meteg
-\h@putvowel {\the@meteg \kern\h@p ##1}}%
-%
-\def \h@vowel ##1{% check for meteg
-\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi {\raise -.2ex\hbox{##1}}}%
-%
-\def \h@vowel ##1{% check for meteg
-\if@meteg \h@meteg {##1}\else \h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
-%
-\def \h@vowel ##1{% check for meteg
-\if@meteg
-\h@putvowel {\raise -.2ex\hbox{\the@meteg \kern\h@p ##1}}\else
-\h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
-%
-\globaldefs = 0 }% end standard fonts
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \set@shlm{% routines for the SHALOM fonts
-\globaldefs = 1\relax
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\def \h@putchar {% choose character glyph
-\ifnum \act@cd = \hc@v \put@b@x {18}\else
-\ifnum \act@cd = \hc@oy \put@b@x {19}\else
-\ifnum \act@cd = \hc@ey \put@b@x {21}\else
- \h@put@char \act@cd
-\fi\fi\fi }%
-%
-\def \put@maqqef {% deposit maqqef
-\put@box {\char 25}}%
-%
-\def \isn@rrow {% narrow character (class 2) ?
-\xpa \is@in@list \hc@sk gdinrwyGDNORUWY>}%
-%
-\def \h@vowel ##1{% check class
-\heb@voc = ##1\relax
-\if\isn@rrow \advance\heb@voc 17
-\put@box {\unhcopy\ab@x \llap{\char\heb@voc \kern -.075em }}%
-\else \xpa\h@v@wel \xpa{\the\heb@voc }\fi }%
-%
-\def \h@v@wel ##1{% add vowel char right
-\put@box {\unhcopy\ab@x \char ##1}}%
-%
-\def \put@dummy {\relax }% % dummy for meteg, silluq (?)
-\def \put@segol {\h@vowel {50}}% % segol
-\def \put@qibbus {\h@vowel {52}}% % qibbus
-\def \put@qameschat {\h@vowel {54}}% % qames chatuph
-\def \put@sere {\h@vowel {49}}% % sere
-\def \put@chpatach {\h@vowel {56}}% % chateph patach
-\def \put@chsegol {\h@vowel {55}}% % chateph segol
-\def \put@chqames {\h@vowel {57}}% % chateph qames
-\def \put@patachf {\h@vowel {70}}% % patach furtivum
-%
-\def \put@shwa {% shwa on final kaf ?
-\ifnum\act@cd = \hc@kf \h@v@wel {85}\else \h@vowel {51}\fi }%
-%
-\def \put@qames {% qames on alef or final kaf ?
-\ifnum\act@cd = \hc@a \put@b@x {17}\else
-\ifnum\act@cd = \hc@kf \h@v@wel {86}\else \h@vowel {54}\fi\fi }%
-%
-\def \put@patach {% patach on alef or 2 yod ?
-\ifnum\act@cd = \hc@ey \put@b@x {22}\else
-\ifnum\act@cd = \hc@a \put@b@x {16}\else \h@vowel {53}\fi\fi }%
-%
-\def \put@chireq {% chireq on yod ?
-\ifnum\act@cd = \hc@y \put@b@x {20}\else \h@vowel {48}\fi }%
-%
-\def \put@cholem {% cholem breve, meteg?
-\ifnum\act@cd = \hc@l \put@box {\char 61 \unhcopy\ab@x }\else
-\put@box {\rlap {\kern .1em \char 61 }\unhcopy\ab@x }\fi }%
-%
-\def \h@cholem {% depends on carrier
-\ifnum \act@cd = \hc@w \put@b@x {62}\else \h@shindot \fi }%
-%
-\def \h@shindot {% right dot for sin
-\ifnum \act@cd = \hc@si \put@b@x {23}\else
-\put@box {\unhcopy\ab@x \llap {\char 61 \kern .1em}}\fi }%
-%
-\def \h@sindot {% left dot for sin
-\ifnum \act@cd = \hc@si \put@b@x {24}\fi }%
-%
-\def \h@rdot {\h@v@wel {61}}% right dot for waw, cholem breve
-%
-\def \h@raphe {\h@v@wel {26}}% soft consonant
-%
-\def \put@dagesh {% test for yod and class2
-\ifnum\act@cd = \hc@y \h@v@wel {89}\else
-\ifnum\act@cd = \hc@w \put@b@x {60}\else
-\if\isn@rrow \put@box {\unhcopy\ab@x \llap {\char 88 \kern .05em}}%
-\else \h@v@wel {87}\fi\fi\fi }%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\globaldefs = 0 }% end font SHALOM
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \set@hstd{% routines for the standard fonts
-\globaldefs = 1\relax
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\let \h@putchar \h@@putchar
-%
-\def \put@maqqef {% deposit maqqef
-\put@box {\kern.05em\raise .6ex \hbox {\char \act@cd }\kern.05em}}%
-%
-\let \h@raphe \h@@raphe
-%
-\let \h@put@dot \h@@putdot
-%
-\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
-%
-\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
-%
-\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
-%
-\def \h@ldot {% left dot for cholem breve
-%\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
-\ifnum \act@cd = \hc@l \relax \h@put@dot {-.2}% lamed
-\else \h@put@dot {.1}\fi }%
-%
-\def \h@cholem {% depends on carrier
-\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
-%
-\def \the@raphe {\vrule width8\h@p height\h@p depth0pt }%
-\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
-\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
-\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
-\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
-\def \the@sere {\the@dot \kern\h@p \the@dot }%
-\def \the@segol {\the@dot \the@ldot \the@dot }%
-\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
-\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
-\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
-\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
-%
-\def \put@dummy {\relax}%
-\def \put@dummy {\h@vowel {}}%
-\def \put@patach {\h@vowel {\the@patach }}%
-\def \put@qames {\h@vowel {\the@qames }}%
-\def \put@segol {\h@vowel {\the@segol }}%
-\def \put@qibbus {\h@vowel {\the@qibbus }}%
-\def \put@chireq {\h@vowel {\the@dot }}%
-\def \put@qameschat {\h@vowel {\the@qames }}%
-\def \put@shwa {\h@vowel {\the@shwa }}%
-\def \put@sere {\h@vowel {\the@sere }}%
-\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
-\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
-\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
-\def \put@cholem {\h@vowel {}\h@ldot }%
-\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
-%
-\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
-\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
-\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
-\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
-\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
-\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
-\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
-\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
-\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
-\ifnum \act@cd = \hc@f \def \hadj {.05}\fi % pe
-\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
-\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
-\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
-\ifnum \act@cd = \hc@si \def \hadj {.18}\fi % shin
-\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
-\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ \advance \dimen2 -\h@p
-\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
-\global\setbox\ab@x \hbox
-{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
-%
-\def \h@putvowel ##1{% vowel mark
-\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
-\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
-\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
-\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
-\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
-\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
-\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
-\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
-\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
-\fi\fi\fi\fi\fi\fi\fi\fi
-\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
-\advance \dimen@ -2\h@p
-\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
-\global\setbox\ab@x \hbox
-{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
-%
-\def \h@vowel {% check for meteg
-\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
-%
-\def \h@meteg ##1{% put vowel and meteg
-\h@putvowel {\the@meteg \kern\h@p ##1}}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\globaldefs = 0 }% end standard fonts
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%}% end of dynamic definitions
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hewrite.sty
+% ArabTeX
+% Modifications for Hebrew mode
+% 21.05.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {hewrite.sty} {3.11 for all supported Hebrew fonts} {21.05.2003}
+
+\UsePackage {hebsymb} % Hebrew font character definitions
+\UsePackage {hebchrs} % Hebrew letter token definitions
+
+\chardef \sind@t 1 \chardef \shind@t 2 \chardef \rd@t 3
+\chardef \r@phe 4 \chardef \illch@r 33
+
+\newcount \heb@dsp \newcount \heb@cd
+\newcount \heb@voc \newcount \h@modii \newcount \h@modi
+
+\newif \if@dagesh \newif \if@final \newif \if@meteg
+%\newif \ifhv@wel % is obsolete, remove!
+\newif \ifsp@c
+
+\newdimen \h@ht \newdimen \h@p
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@write #1>{% Hebrew output routine
+\iftest@write \tracingmacros = 1
+\iftest@parse \else \a@verb (#1)>\fi\fi
+\a@write@hook
+\ifa@@write \heb@testfont \heb@beg #1>0+0*>\fi
+\iftest@write \tracingmacros = 0
+\fi }
+
+\def \heb@testfont {% diagnose font, look for vowels and ayin
+\edef \next {\the\font }%
+\ifx \next \h@font \else
+\iftest@font \a@message {Hebrew font \next selected.}\fi
+\global\let \h@font \next \h@testfont \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \isch@r #1{00% code position in font not empty?
+\setbox0 \hbox {\tracinglostchars 0 \char #1}%
+\ifdim \wd0 = \z@ \xpa \setiffalse \fi }
+
+\def \h@testfont {% diagnose font, look for vowels and ayin
+\if\isch@r {"80}\global\heb@dsp "20\else
+\if\isch@r {"E0}\global\heb@dsp "80\else
+\if\isch@r {"60}\global\heb@dsp 0\else
+ \global\heb@dsp 0\errmessage {no usable Hebrew font found}%
+\fi\fi\fi
+\gdef \v@adj {0}\global\h@ht \ht0 \global\h@p .1\h@ht \relax
+\xdef \a@slant {\xpa\getfactor \the\fontdimen1\font }%
+\heb@cd \heb@dsp \advance \heb@cd 114 \xdef \hc@Pv {\the\heb@cd }%
+\if\isch@r {"10}\set@shalom\else
+\if\isch@r {1}\set@hclassic\else
+ \set@hebstd
+\fi\fi }
+
+\def \set@hclassic {% and dclassic, hcaption, dcaption
+\global\let \h@kern \relax \global\sp@cfalse
+\gdef \v@adj {0}\gdef \hc@Pv {123}%
+\if\isch@r {"30}\global\sp@ctrue
+\gdef \v@adj {-.2}\gdef \hc@Pv {114}%
+\fi \set@hcls }
+
+\def \set@shalom {% shlm_old, shlm_stk, shlm_scr
+\gdef \h@kern {\kern.05em }\global\sp@cfalse
+\set@shlm }
+
+\def \set@hebstd {% jerusalem, oldjaffa, telaviv, deadsea,
+% fr, frbx, frsl, crml, crmlsl
+\global\let \h@kern \relax \global\sp@ctrue
+\set@hstd }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@beg #1#2*#3{% start output
+% c m * c
+\h@test@chr #1\heb@end #1#2*#3}
+
+\def \heb@end #1#2*#3{% final character
+% c m * c
+\ifx #1>\let \next \relax
+\else \def \next {\heb@mid #3}%
+ \ifx #1-\else
+ \ifcat \nxp #1-\h@put@spec #1#2*#3<%
+ \else \h@put@end #1#2*#3<%
+ \fi\fi
+ \h@test@chr #3%
+\fi \next }
+
+\def \heb@mid #1#2*#3{% non-final character
+% c m * c
+\ifx #1>\let \next \relax
+\else \def \next {\heb@mid #3}%
+ \ifcat \nxp #1-\h@put@spec #1#2*#3<%
+ \else \h@put@mid #1#2*#3<%
+ \fi
+ \h@test@chr #3%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@put@end {% final position
+\if@final \advance \act@cd -1 \fi \h@put@mid }
+
+\gdef \h@put@mid #1#2+#3*#4<{% deposit character
+% c m1 + m2 * c <
+% \def \next {\heb@mid #4}%
+\ifnum \act@cd = \hc@@ \relax \h@put@ill \else % illegal character
+\case #1\of
+{ B{\put@maqqef \def \next {\heb@end #4}}
+ K{\put@box {$|$}}
+ M{\put@box {$\Box$}}
+ WN{\put@phantom }
+ y{\h@ylig #4<}
+ w{\h@wlig #4<}
+\default {\h@putchar }
+}\endcase
+\fi
+\heb@accent #2+#3*\h@kern
+\ifnum \act@cd = \hc@l \relax \smash {\unhbox \ab@x }%
+\else \unhbox \ab@x
+\fi }
+
+\def \h@wlig #1<{% waw ligatures
+\ifx #1w%
+\fi
+\h@putchar }
+
+\def \h@ylig #1<{% yod ligatures
+\ifx #1w%
+\fi
+\h@putchar }
+
+\def \h@put@ill {\put@box {$\bullet$}}
+
+\def \put@phantom {% small space
+\heb@cd \hc@y \advance \heb@cd \heb@dsp
+\put@box {\hphantom{\char \the\heb@cd }}}
+
+{\catcode`\^ 12 \catcode `\_ 12 \catcode `\& 12
+\catcode `\A 12 \catcode `\B 12 \catcode `\C 12
+\catcode `\D 12 \catcode `\E 12 \catcode `\F 12
+\catcode `\G 12 \catcode `\H 12 \catcode `\I 12
+\catcode `\J 12 \catcode `\K 12 \catcode `\L 12
+\catcode `\M 12 \catcode `\N 12 \catcode `\O 12
+\catcode `\P 12
+%
+\gdef \h@put@spec #1#2*#3<{% special character
+% c m * c <
+\case #1\of
+{ -|{}
+% !,.{#1}
+ :{#1\,}
+ \lq {\rm \bf `}
+ `{\rm \bf ``}
+% A{{\tt "}\def \next {\heb@end #3}} % "
+ A{{\tt "}} % "
+ B{{\rm \bf ,}} % ,
+ C{{\tt -}} % -
+ D{{\tt \char`\|}} % |
+% E{{\tt \char'015}\def \next {\heb@end #3}} % '
+ E{{\tt \char'015}} % '
+ F{{\tt \char`\\}} % \
+ G{{\tt \char`\}}} % {
+ H{{\tt \char`\{}} % }
+ I{{\bf $\cdots$}} % ...
+ J{{\bf $\div$}} % -:-
+ K{{\tt \char`\>}} % <
+ L{{\tt \char`\<}} % >
+ M{{\rm \bf --}} % --
+ N{{\rm \bf ---}} % ---
+ O{{\rm \bf `}} % `
+% P{{\rm \bf '}\def \next {\heb@end #3}} % '
+ P{{\rm \bf '}} % '
+\default {{\ifsp@c \else \rm \bf \fi
+ \ifx #1][\else \ifx #1[]\else
+ #1\fi\fi}}
+}\endcase
+\ifx #1A\else \ifx #1E\else \ifx #1'\else
+\def \next {\heb@end #3}\fi\fi\fi }
+}% \catcodes 12
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@test@chr #1{% get character attributes
+\@dageshfalse \@finalfalse \act@mod 0 \act@cd \hc@@
+\def \hc@sk {#1}%
+\csname tc@\string #1\endcsname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \heb@accent #1+#2*{% put modifier onto contents of "\ab@x"
+% m1 + m2 *
+\red@mod = 0#1 \relax \advance \red@mod 100 \relax
+\xpa \heb@split \the\red@mod *\h@putaccent #2*}
+
+\def \h@putmod #1{% deposit modifier
+\ifcase #1\relax
+\or \h@sindot \or \h@shindot \or \h@rdot \or \h@raphe \fi }
+
+\def \heb@split 1#1#2*{% separate modifier 1
+% 1 m11 m12 *
+\h@putmod #1\@metegfalse \red@mod = #2\relax
+\ifnum \red@mod > 3 \advance \red@mod -4 \@metegtrue \fi
+\ifnum \red@mod > 1 \advance \red@mod -2 \h@cholem \fi
+\ifnum \red@mod > 0 \advance \red@mod -1 \@dageshtrue \fi }
+
+\def \h@putaccent #1*{% deposit vowels
+\h@putmod \act@mod
+\ifcase 0#1\relax
+\put@dummy \or \put@shwa \or \put@patach \or \put@chireq \or
+\put@qibbus \or \put@chpatach \or \put@chsegol \or \put@chqames \or
+\put@segol \or \put@cholem \or \put@qames \or \put@sere \or
+\put@qameschat \or \put@patachf \fi
+\if@dagesh \put@dagesh \fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \h@@putchar {% choose character glyph
+\ifnum \act@cd = \hc@v \relax \h@putlig \hc@w \hc@w \else
+\ifnum \act@cd = \hc@oy \relax \h@putlig \hc@y \hc@w \else
+\ifnum \act@cd = \hc@ey \relax \h@putlig \hc@y \hc@y \else
+ \h@put@char \act@cd
+\fi\fi\fi }%
+
+\def \h@putlig #1#2{% Hebrew ligature
+\h@put@char #1\setbox4 \box \ab@x
+\h@put@char #2\setbox6 \box \ab@x
+\put@box {\unhcopy4 \unhcopy6 }}%
+
+\def \h@put@char #1{% choose character glyph
+\heb@cd #1\advance \heb@cd \heb@dsp \put@b@x {\the\heb@cd }}%
+
+\def \h@@putdot #1{% put a dot above a character
+\dimen@ 1.25\h@ht \dimen2 \a@slant\dimen@ \advance\dimen2 #1\a@wd
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+
+\def \h@@raphe {% no dagesh
+\setbox0 \hbox {\the@raphe }\dimen@ 1.25\h@ht
+\dimen2 .5\a@wd \advance\dimen2 -.5\wd0 \advance\dimen2 \a@slant\dimen@
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for vowel positioning
+% CAUTION: these routines are called in HMODE
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@hcls{% routines for the HCLASSIC font family
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\let \h@putchar \h@@putchar
+%
+\def \put@maqqef {% deposit maqqef
+\put@b@x {\the\act@cd }}%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\char 8 ##1}}%
+%
+\def \the@dot {\char 0}%
+%
+\def \the@raphe {\vrule width.8\a@wd height.4pt depth0pt }%
+%
+\def \put@dummy {\h@vowel {}}% % dummy for meteg, silluq
+\def \put@patach {\h@vowel {\char 1 }}% % patach
+\def \put@qames {\h@vowel {\char 2 }}% % qames
+\def \put@segol {\h@vowel {\char 3 }}% % segol
+\def \put@qibbus {\h@vowel {\char 4 }}% % qibbus
+\def \put@chireq {\h@vowel {\char 5 }}% % chireq
+\def \put@qameschat {\h@vowel {\char 6 }}% % qames chatuph
+\def \put@shwa {\h@vowel {\char 7 }}% % shwa
+\def \put@sere {\h@vowel {\char 9 }}% % sere
+\def \put@chpatach {\h@vowel {\char 1 \char 7 }}% % chateph patach
+\def \put@chsegol {\h@vowel {\char 3 \char 7 }}% % chateph segol
+\def \put@chqames {\h@vowel {\char 6 \char 7 }}% % chateph qames
+\def \put@cholem {\h@vowel {}\h@ldot }% % cholem breve, meteg?
+\def \put@patachf {\h@vowel {\hphantom
+ {\char 1 }\char 1 }}% % patach furtivum
+%
+\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
+\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
+\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
+\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
+\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
+\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
+\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
+\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
+\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
+\ifnum \act@cd = \hc@f \def \hadj {.15}\fi % pe
+\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
+\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
+\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
+\ifnum \act@cd = \hc@si \def \hadj {.07}\fi % shin
+\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
+\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@
+\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
+\global\setbox\ab@x \hbox
+%{\rlap{\kern\dimen2 \raise\dimen@\hbox{\char 0 }}\unhcopy\ab@x}}%
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+%
+\let \h@put@dot \h@@putdot
+%
+\let \h@raphe \h@@raphe
+%
+\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
+%
+\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
+%
+\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
+%
+\def \h@ldot {% left dot for cholem breve
+\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
+\else \h@put@dot {.1}\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
+%
+\def \h@putvowel ##1{% vowel mark
+\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end font HCLASSIC
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\global\let \@set@hcls \set@hcls
+
+\gdef \set@hcls{% routines for the HCLASSIC font family
+%\globaldefs = 1\relax
+\a@message {patch HCLASSIC}%
+\@set@hcls
+\globaldefs = 1\relax
+\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
+\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
+\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
+\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
+\def \the@sere {\the@dot \kern\h@p \the@dot }%
+\def \the@segol {\the@dot \the@ldot \the@dot }%
+\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
+\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
+\def \the@meteg {\vrule width\h@p height-.2\h@p depth3\h@p }%
+\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
+\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
+\def \put@dummy {\h@vowel {}}%
+\def \put@patach {\h@vowel {\the@patach }}%
+\def \put@qames {\h@vowel {\the@qames }}%
+\def \put@segol {\h@vowel {\the@segol }}%
+\def \put@qibbus {\h@vowel {\the@qibbus }}%
+\def \put@chireq {\h@vowel {\the@dot }}%
+\def \put@qameschat {\h@vowel {\the@qames }}%
+\def \put@shwa {\h@vowel {\the@shwa }}%
+\def \put@sere {\h@vowel {\the@sere }}%
+\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
+\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
+\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
+\def \put@cholem {\h@vowel {}\h@ldot }%
+\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\the@meteg \kern\h@p ##1}}%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi {\raise -.2ex\hbox{##1}}}%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg \h@meteg {##1}\else \h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
+%
+\def \h@vowel ##1{% check for meteg
+\if@meteg
+\h@putvowel {\raise -.2ex\hbox{\the@meteg \kern\h@p ##1}}\else
+\h@putvowel {\raise -.2ex\hbox{##1}}\fi }%
+%
+\globaldefs = 0 }% end standard fonts
+
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@shlm{% routines for the SHALOM fonts
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def \h@putchar {% choose character glyph
+\ifnum \act@cd = \hc@v \put@b@x {18}\else
+\ifnum \act@cd = \hc@oy \put@b@x {19}\else
+\ifnum \act@cd = \hc@ey \put@b@x {21}\else
+ \h@put@char \act@cd
+\fi\fi\fi }%
+%
+\def \put@maqqef {% deposit maqqef
+\put@box {\char 25}}%
+%
+\def \isn@rrow {% narrow character (class 2) ?
+\xpa \is@in@list \hc@sk gdinrwyGDNORUWY>}%
+%
+\def \h@vowel ##1{% check class
+\heb@voc = ##1\relax
+\if\isn@rrow \advance\heb@voc 17
+\put@box {\unhcopy\ab@x \llap{\char\heb@voc \kern -.075em }}%
+\else \xpa\h@v@wel \xpa{\the\heb@voc }\fi }%
+%
+\def \h@v@wel ##1{% add vowel char right
+\put@box {\unhcopy\ab@x \char ##1}}%
+%
+\def \put@dummy {\relax }% % dummy for meteg, silluq (?)
+\def \put@segol {\h@vowel {50}}% % segol
+\def \put@qibbus {\h@vowel {52}}% % qibbus
+\def \put@qameschat {\h@vowel {54}}% % qames chatuph
+\def \put@sere {\h@vowel {49}}% % sere
+\def \put@chpatach {\h@vowel {56}}% % chateph patach
+\def \put@chsegol {\h@vowel {55}}% % chateph segol
+\def \put@chqames {\h@vowel {57}}% % chateph qames
+\def \put@patachf {\h@vowel {70}}% % patach furtivum
+%
+\def \put@shwa {% shwa on final kaf ?
+\ifnum\act@cd = \hc@kf \h@v@wel {85}\else \h@vowel {51}\fi }%
+%
+\def \put@qames {% qames on alef or final kaf ?
+\ifnum\act@cd = \hc@a \put@b@x {17}\else
+\ifnum\act@cd = \hc@kf \h@v@wel {86}\else \h@vowel {54}\fi\fi }%
+%
+\def \put@patach {% patach on alef or 2 yod ?
+\ifnum\act@cd = \hc@ey \put@b@x {22}\else
+\ifnum\act@cd = \hc@a \put@b@x {16}\else \h@vowel {53}\fi\fi }%
+%
+\def \put@chireq {% chireq on yod ?
+\ifnum\act@cd = \hc@y \put@b@x {20}\else \h@vowel {48}\fi }%
+%
+\def \put@cholem {% cholem breve, meteg?
+\ifnum\act@cd = \hc@l \put@box {\char 61 \unhcopy\ab@x }\else
+\put@box {\rlap {\kern .1em \char 61 }\unhcopy\ab@x }\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \put@b@x {62}\else \h@shindot \fi }%
+%
+\def \h@shindot {% right dot for sin
+\ifnum \act@cd = \hc@si \put@b@x {23}\else
+\put@box {\unhcopy\ab@x \llap {\char 61 \kern .1em}}\fi }%
+%
+\def \h@sindot {% left dot for sin
+\ifnum \act@cd = \hc@si \put@b@x {24}\fi }%
+%
+\def \h@rdot {\h@v@wel {61}}% right dot for waw, cholem breve
+%
+\def \h@raphe {\h@v@wel {26}}% soft consonant
+%
+\def \put@dagesh {% test for yod and class2
+\ifnum\act@cd = \hc@y \h@v@wel {89}\else
+\ifnum\act@cd = \hc@w \put@b@x {60}\else
+\if\isn@rrow \put@box {\unhcopy\ab@x \llap {\char 88 \kern .05em}}%
+\else \h@v@wel {87}\fi\fi\fi }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end font SHALOM
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \set@hstd{% routines for the standard fonts
+\globaldefs = 1\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\let \h@putchar \h@@putchar
+%
+\def \put@maqqef {% deposit maqqef
+\put@box {\kern.05em\raise .6ex \hbox {\char \act@cd }\kern.05em}}%
+%
+\let \h@raphe \h@@raphe
+%
+\let \h@put@dot \h@@putdot
+%
+\def \h@shindot {\h@put@dot {.8}}% % right dot for shin
+%
+\def \h@sindot {\h@put@dot {.2}}% % left dot for sin
+%
+\def \h@rdot {\h@put@dot {.5}}% % right dot for waw, cholem breve
+%
+\def \h@ldot {% left dot for cholem breve
+%\ifnum \act@cd = \hc@l \relax \h@put@dot {-.1}% lamed
+\ifnum \act@cd = \hc@l \relax \h@put@dot {-.2}% lamed
+\else \h@put@dot {.1}\fi }%
+%
+\def \h@cholem {% depends on carrier
+\ifnum \act@cd = \hc@w \h@rdot \else \h@shindot \fi }%
+%
+\def \the@raphe {\vrule width8\h@p height\h@p depth0pt }%
+\def \the@dot {\vrule width\h@p height0pt depth\h@p }%
+\def \the@mdot {\vrule width\h@p height-\h@p depth2\h@p }%
+\def \the@ldot {\vrule width\h@p height-2\h@p depth3\h@p }%
+\def \the@shwa {\the@dot \kern-\h@p \the@ldot }%
+\def \the@sere {\the@dot \kern\h@p \the@dot }%
+\def \the@segol {\the@dot \the@ldot \the@dot }%
+\def \the@qibbus {\the@dot \the@mdot \the@ldot }%
+\def \the@meteg {\vrule width\h@p height0pt depth3\h@p }%
+\def \the@patach {\vrule width3\h@p height0pt depth\h@p }%
+\def \the@qames {\the@patach \kern-2\h@p \the@meteg \kern\h@p }%
+%
+\def \put@dummy {\relax}%
+\def \put@dummy {\h@vowel {}}%
+\def \put@patach {\h@vowel {\the@patach }}%
+\def \put@qames {\h@vowel {\the@qames }}%
+\def \put@segol {\h@vowel {\the@segol }}%
+\def \put@qibbus {\h@vowel {\the@qibbus }}%
+\def \put@chireq {\h@vowel {\the@dot }}%
+\def \put@qameschat {\h@vowel {\the@qames }}%
+\def \put@shwa {\h@vowel {\the@shwa }}%
+\def \put@sere {\h@vowel {\the@sere }}%
+\def \put@chpatach {\h@vowel {\the@patach \kern\h@p \the@shwa }}%
+\def \put@chsegol {\h@vowel {\the@segol \kern\h@p \the@shwa }}%
+\def \put@chqames {\h@vowel {\the@qames \kern\h@p \the@shwa }}%
+\def \put@cholem {\h@vowel {}\h@ldot }%
+\def \put@patachf {\h@vowel {\kern4\h@p \the@patach }}%
+%
+\def \put@dagesh {\def \vadj {.48}\def \hadj {0}% default
+\ifnum \act@cd = \hc@j \def \hadj {-.2}\fi % gimel
+\ifnum \act@cd = \hc@w \def \hadj {-.3}\def \vadj {.55}\fi % waw
+\ifnum \act@cd = \hc@z \def \hadj {-.4}\fi % zayin
+\ifnum \act@cd = \hc@tt \def \hadj {.1}\fi % tet
+\ifnum \act@cd = \hc@y \def \hadj {-.45}\def \vadj {.55}\fi % yod
+\ifnum \act@cd = \hc@l \def \hadj {-.1}\def \vadj {.3}\fi % lamed
+\ifnum \act@cd = \hc@n \def \hadj {-.2}\fi % nun
+\ifnum \act@cd = \hc@nf \def \hadj {-.2}\fi % nun sofit
+\ifnum \act@cd = \hc@f \def \hadj {.05}\fi % pe
+\ifnum \act@cd = \hc@ff \def \hadj {.15}\fi % pe sofit
+\ifnum \act@cd = \hc@ss \def \hadj {.1}\fi % sade
+\ifnum \act@cd = \hc@sf \def \hadj {.1}\fi % sade sofit
+\ifnum \act@cd = \hc@si \def \hadj {.18}\fi % shin
+\ifnum \act@cd = \hc@M \def \vadj {.7}\fi % box
+\dimen@ \vadj\a@ht \dimen2 \a@slant\dimen@ \advance \dimen2 -\h@p
+\advance\dimen2 \hadj\a@wd \advance\dimen2 .5\a@wd
+\global\setbox\ab@x \hbox
+{\rlap{\kern\dimen2 \raise\dimen@\hbox{\the@dot }}\unhcopy\ab@x}}%
+%
+\def \h@putvowel ##1{% vowel mark
+\ifx ##1\relax \relax \else \def \hadj {0}\def \vadj {0}%
+\ifnum \act@cd = \hc@P \let\vadj \v@adj \put@b@x{\hc@Pv }\else % vowel-ayin
+\ifnum \act@cd = \hc@kf \def \hadj {-.1}\def \vadj {.85}\else % final kaph
+\ifnum \act@cd = \hc@r \def \hadj {.35}\else % resh
+\ifnum \act@cd = \hc@d \def \hadj {.2}\else % daleth
+\ifnum \act@cd = \hc@q \def \hadj {.1}\else % qoph
+\ifnum \act@cd = \hc@y \def \hadj {.1}\else % yod
+\ifnum \act@cd = \hc@w \def \hadj {.15}\else % waw
+\ifnum \act@cd = \hc@si \def \hadj {-.1}\else % sin
+\fi\fi\fi\fi\fi\fi\fi\fi
+\setbox0 \hbox to \a@wd {\hss ##1\hss}\dimen@ \vadj\a@ht
+\advance \dimen@ -2\h@p
+\dimen2 \a@slant\dimen@ \advance\dimen2 \hadj\a@wd
+\global\setbox\ab@x \hbox
+{\rlap {\kern\dimen2 \raise\dimen@\box0 }\unhcopy\ab@x }\fi }%
+%
+\def \h@vowel {% check for meteg
+\if@meteg \xpa \h@meteg \else \xpa \h@putvowel \fi }%
+%
+\def \h@meteg ##1{% put vowel and meteg
+\h@putvowel {\the@meteg \kern\h@p ##1}}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\globaldefs = 0 }% end standard fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%}% end of dynamic definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/hmac.sty b/language/arabic/arabtex/texinput/hmac.sty
index bdf3ea3169..7e282347bf 100644
--- a/language/arabic/arabtex/texinput/hmac.sty
+++ b/language/arabic/arabtex/texinput/hmac.sty
@@ -1,156 +1,156 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hmac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% hmac.sty
-% Scanner for MAC Hebrew
-% to install it, include it as a LaTeX package or style option "hmac"
-% with Plain TeX, say "\input hmac.sty"
-% to activate it, say "\setcode{hmac}"
-% 07.03.2002
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \hmacatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \hmacatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {hmac.sty} {3.10a MAC Hebrew encoding} {07.03.2002}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \hmac@catcodes {% assignments for MAC Hebrew
-\countdef \is@m=2 \is@m = 160
-\countdef \is@n=4 \is@n = 32
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0
-\catcode `\^^81 11
-\catcode `\^^a0 12 }
-
-{\hmac@catcodes
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \sethmac@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^81 {yy"A}
-\def \sc@^^a0 {@} \def \sc@^^a1 {!}
-\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh}
-\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
-\def \sc@^^a6 {\a@dlr} \def \sc@^^a7 {\a@qt}
-\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+}
-\def \sc@^^ac {,} \def \sc@^^ad {\h@phen}
-\def \sc@^^ae {.} \def \sc@^^af {/}
-
-\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
-\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
-\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
-\def \sc@^^bc {\a@rab} \def \sc@^^bd {=}
-\def \sc@^^be {\a@lab} \def \sc@^^bf {?}
-
-\def \sc@^^c0 {l"\n@xp\a@o} \def \sc@^^c1 {,,}
-\def \sc@^^c2 {@} \def \sc@^^c3 {@}
-\def \sc@^^c4 {@} \def \sc@^^c5 {@}
-\def \sc@^^c6 {"\n@xp\a@Zu} \def \sc@^^c7 {w"\n@xp\a@o}
-\def \sc@^^c8 {w"\n@xp\a@Zu} \def \sc@^^c9 {\a@ell}
-\def \sc@^^ca {N} \def \sc@^^cb {"A}
-\def \sc@^^cc {"a} \def \sc@^^cd {"\n@xp\a@E}
-\def \sc@^^ce {"e} \def \sc@^^cf {"i}
-
-\def \sc@^^d0 {\a@end} \def \sc@^^d1 {\a@emd}
-\def \sc@^^d2 {\a@lq\a@lq} \def \sc@^^d3 {\a@rq\a@rq}
-\def \sc@^^d4 {\a@lq} \def \sc@^^d5 {\a@rq}
-\def \sc@^^d6 {\n@xp\a@S"\n@xp\a@Ze} \def \sc@^^d7 {\n@xp\a@S"\n@xp\a@Za}
-\def \sc@^^d8 {"\n@xp\a@Zo} \def \sc@^^d9 {"\n@xp\a@e}
-\def \sc@^^da {"\n@xp\a@A} \def \sc@^^db {"\n@xp\a@I}
-\def \sc@^^dc {"u} \def \sc@^^dd {"\n@xp\a@o}
-\def \sc@^^de {"o} \def \sc@^^df {"\n@xp\a@O}
-
-\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
-\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
-\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
-\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
-
-\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
-\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
-\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S}
-\def \sc@^^fa {t} \def \sc@^^fb {\a@rbc}
-\def \sc@^^fc {]} \def \sc@^^fd {\a@lbc}
-\def \sc@^^fe {[} \def \sc@^^ff {\a@bar}
-
-\a@digits = {0123456789} \a@paren = {()[]} \a@first = {"`^^e6}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for MAC Hebrew
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hmac@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase{\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hmac@beg {% start MAC Hebrew scanner
-\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
-\hmac@word }
-
-{\catcode `\^^M=13 \endlinechar = -1
-\gdef \hmac@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\sc@endscan }\else % finished
-\if \nxp ^^M\nxp #1\def \next {\hmac@par #1}% active character
-\else \def \next {\hmac@w@rd #1}%
-\fi\fi \next }%
-} % catcode 13
-
-\gdef \hmac@w@rd #1#2{% special cases
-\case #1\of
-{ #2{\hmac@word #1-#2}
- -{\hmac@minus #2}
- ^^a0{\sc@back #2}
-% ^^ad{\hmac@minus #2}
-\default {\hmac@@word #1#2}
-}\endcase }
-
-\gdef \hmac@@word #1{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put \hmac@word }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \hmac@minus {% hyphen between words
-\def \sc@char {-}\sc@put \hmac@beg }
-
-\gdef \hmac@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\gdef \hmac@endscan \@@ {\global\let \a@scan \hmac@scan }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-} % \hmac@catcodes
-
-\def \set@hmac {% select the MAC Hebrew scanner
-\let \sc@beg \hmac@beg \let \sc@word \hmac@word
-\let \sc@back \sc@@back \let \sc@endscan \hmac@endscan
-\global\let \a@scan \hmac@scan \sethmac@codes
-\hmac@catcodes
-\a@message {input encoding set to MAC Hebrew and ISO 8859-8 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding
-hmac\set@hmac iso8859-8\set@hmac iso88598\set@hmac }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for MAC Hebrew code installed.}
-
-\catcode `\@ = \hmacatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hmac.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% hmac.sty
+% Scanner for MAC Hebrew
+% to install it, include it as a LaTeX package or style option "hmac"
+% with Plain TeX, say "\input hmac.sty"
+% to activate it, say "\setcode{hmac}"
+% 07.03.2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \hmacatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \hmacatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {hmac.sty} {3.10a MAC Hebrew encoding} {07.03.2002}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \hmac@catcodes {% assignments for MAC Hebrew
+\countdef \is@m=2 \is@m = 160
+\countdef \is@n=4 \is@n = 32
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0
+\catcode `\^^81 11
+\catcode `\^^a0 12 }
+
+{\hmac@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \sethmac@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^81 {yy"A}
+\def \sc@^^a0 {@} \def \sc@^^a1 {!}
+\def \sc@^^a2 {\a@dq} \def \sc@^^a3 {\a@hsh}
+\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
+\def \sc@^^a6 {\a@dlr} \def \sc@^^a7 {\a@qt}
+\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+}
+\def \sc@^^ac {,} \def \sc@^^ad {\h@phen}
+\def \sc@^^ae {.} \def \sc@^^af {/}
+
+\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
+\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
+\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
+\def \sc@^^bc {\a@rab} \def \sc@^^bd {=}
+\def \sc@^^be {\a@lab} \def \sc@^^bf {?}
+
+\def \sc@^^c0 {l"\n@xp\a@o} \def \sc@^^c1 {,,}
+\def \sc@^^c2 {@} \def \sc@^^c3 {@}
+\def \sc@^^c4 {@} \def \sc@^^c5 {@}
+\def \sc@^^c6 {"\n@xp\a@Zu} \def \sc@^^c7 {w"\n@xp\a@o}
+\def \sc@^^c8 {w"\n@xp\a@Zu} \def \sc@^^c9 {\a@ell}
+\def \sc@^^ca {N} \def \sc@^^cb {"A}
+\def \sc@^^cc {"a} \def \sc@^^cd {"\n@xp\a@E}
+\def \sc@^^ce {"e} \def \sc@^^cf {"i}
+
+\def \sc@^^d0 {\a@end} \def \sc@^^d1 {\a@emd}
+\def \sc@^^d2 {\a@lq\a@lq} \def \sc@^^d3 {\a@rq\a@rq}
+\def \sc@^^d4 {\a@lq} \def \sc@^^d5 {\a@rq}
+\def \sc@^^d6 {\n@xp\a@S"\n@xp\a@Ze} \def \sc@^^d7 {\n@xp\a@S"\n@xp\a@Za}
+\def \sc@^^d8 {"\n@xp\a@Zo} \def \sc@^^d9 {"\n@xp\a@e}
+\def \sc@^^da {"\n@xp\a@A} \def \sc@^^db {"\n@xp\a@I}
+\def \sc@^^dc {"u} \def \sc@^^dd {"\n@xp\a@o}
+\def \sc@^^de {"o} \def \sc@^^df {"\n@xp\a@O}
+
+\def \sc@^^e0 {Q} \def \sc@^^e1 {b} \def \sc@^^e2 {g} \def \sc@^^e3 {d}
+\def \sc@^^e4 {h} \def \sc@^^e5 {w} \def \sc@^^e6 {z} \def \sc@^^e7 {X}
+\def \sc@^^e8 {C} \def \sc@^^e9 {y} \def \sc@^^ea {k} \def \sc@^^eb {k}
+\def \sc@^^ec {l} \def \sc@^^ed {m} \def \sc@^^ee {m} \def \sc@^^ef {n}
+
+\def \sc@^^f0 {n} \def \sc@^^f1 {s} \def \sc@^^f2 {P} \def \sc@^^f3 {p}
+\def \sc@^^f4 {p} \def \sc@^^f5 {S} \def \sc@^^f6 {S} \def \sc@^^f7 {q}
+\def \sc@^^f8 {r} \def\sc@^^f9{\n@xp\a@S}
+\def \sc@^^fa {t} \def \sc@^^fb {\a@rbc}
+\def \sc@^^fc {]} \def \sc@^^fd {\a@lbc}
+\def \sc@^^fe {[} \def \sc@^^ff {\a@bar}
+
+\a@digits = {0123456789} \a@paren = {()[]} \a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for MAC Hebrew
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hmac@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase{\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hmac@beg {% start MAC Hebrew scanner
+\h@mzafalse \iz@fetfalse \@ssimfalse \novocalize % because of explicit quoting
+\hmac@word }
+
+{\catcode `\^^M=13 \endlinechar = -1
+\gdef \hmac@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\sc@endscan }\else % finished
+\if \nxp ^^M\nxp #1\def \next {\hmac@par #1}% active character
+\else \def \next {\hmac@w@rd #1}%
+\fi\fi \next }%
+} % catcode 13
+
+\gdef \hmac@w@rd #1#2{% special cases
+\case #1\of
+{ #2{\hmac@word #1-#2}
+ -{\hmac@minus #2}
+ ^^a0{\sc@back #2}
+% ^^ad{\hmac@minus #2}
+\default {\hmac@@word #1#2}
+}\endcase }
+
+\gdef \hmac@@word #1{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put \hmac@word }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \hmac@minus {% hyphen between words
+\def \sc@char {-}\sc@put \hmac@beg }
+
+\gdef \hmac@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\gdef \hmac@endscan \@@ {\global\let \a@scan \hmac@scan }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+} % \hmac@catcodes
+
+\def \set@hmac {% select the MAC Hebrew scanner
+\let \sc@beg \hmac@beg \let \sc@word \hmac@word
+\let \sc@back \sc@@back \let \sc@endscan \hmac@endscan
+\global\let \a@scan \hmac@scan \sethmac@codes
+\hmac@catcodes
+\a@message {input encoding set to MAC Hebrew and ISO 8859-8 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the MAC Hebrew encoding
+hmac\set@hmac iso8859-8\set@hmac iso88598\set@hmac }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for MAC Hebrew code installed.}
+
+\catcode `\@ = \hmacatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/isiri.sty b/language/arabic/arabtex/texinput/isiri.sty
index b4664d9b3e..a14c672ff6 100644
--- a/language/arabic/arabtex/texinput/isiri.sty
+++ b/language/arabic/arabtex/texinput/isiri.sty
@@ -1,225 +1,225 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% isiri.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% isiri.sty
-% Scanner for ISIRI 3342 Code
-% to install it, include it as a LaTeX package or style option "isiri"
-% with Plain TeX, say "\input isiri.sty"
-% to activate it, say "\setcode {isiri3342}" or "\setcode {isiri}"
-% 26.04.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \isiriatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \isiriatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {isiri.sty} {3.11 ISIRI 3342 input encoding } {26.04.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \isiri@catcodes {% assignments for ISIRI 3342
-\countdef \is@m=2 \countdef \is@n=4
-\is@m = 160 \is@n = 32
-\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
-\global\lccode \is@m = \is@n
-\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
-\is@m=0 \is@n=0 \catcode `\^ 7 \catcode `\^^a0 12 }
-
-{\isiri@catcodes
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setisi@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@^^a0 {@} \def \sc@^^a1 {||} \def \sc@^^a2 {-} \def \sc@^^a3 {!}
-\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
-\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt}
-\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+}
-\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/}
-
-\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
-\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
-\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
-\def \sc@^^bc {\a@lab} \def \sc@^^bd {=}
-\def \sc@^^be {\a@rab} \def \sc@^^bf {?}
-
-\def \sc@^^c0 {QA} \def \sc@^^c1 {A} \def \sc@^^c2 {Q|} \def \sc@^^c3 {b}
-\def \sc@^^c4 {p} \def \sc@^^c5 {t} \def \sc@^^c6 {C} \def \sc@^^c7 {G}
-\def \sc@^^c8 {J} \def \sc@^^c9 {H} \def \sc@^^ca {X} \def \sc@^^cb {d}
-\def \sc@^^cc {F} \def \sc@^^cd {r} \def \sc@^^ce {z} \def \sc@^^cf {j}
-
-\def \sc@^^d0 {s} \def \sc@^^d1 {x} \def \sc@^^d2 {S} \def \sc@^^d3 {D}
-\def \sc@^^d4 {V} \def \sc@^^d5 {Z} \def \sc@^^d6 {P} \def \sc@^^d7 {R}
-\def \sc@^^d8 {f} \def \sc@^^d9 {q} \def \sc@^^da {\n@xp \a@k}
-\def \sc@^^db {g}
-\def \sc@^^dc {l} \def \sc@^^dd {m} \def \sc@^^de {n} \def \sc@^^df {w}
-
-\def \sc@^^e0 {h} \def \sc@^^e1 {Y} \def \sc@^^e2 {[} \def \sc@^^e3 {]}
-\def \sc@^^e4 {\a@lbc} \def \sc@^^e5 {\a@rbc}
-\def \sc@^^e6 {'} \def \sc@^^e7 {`}
-\def \sc@^^e8 {*} \def \sc@^^e9 {B}
-\def \sc@^^ea {\a@bar} \def \sc@^^eb {\a@bsl}
-\def \sc@^^ec {@} \def \sc@^^ed {@} \def \sc@^^ee {@} \def \sc@^^ef {@}
-
-\def \sc@^^f0 {"a} \def \sc@^^f1 {"i} \def \sc@^^f2 {"u} \def \sc@^^f3 {"aN}
-\def \sc@^^f4 {"iN}\def \sc@^^f5 {"uN} \def \sc@^^f6 {@} \def \sc@^^f7 {""}
-\def \sc@^^f8 {Qa} \def \sc@^^f9 {Qw} \def \sc@^^fa {Qi} \def \sc@^^fb {QY}
-\def \sc@^^fc {T} \def \sc@^^fd {k} \def \sc@^^fe {y} \def \sc@^^ff {E}
-\a@digits = {0123456789^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9}
-\a@paren = {()[]^^a8^^a9^^e2^^e3}
-\a@first = {"`^^e6}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \isi@scan #1>{% standard scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase{\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
-\iftest@scan \tracingmacros = 0 %
-\xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\catcode `\^ 7
-\gdef \isi@beg #1#2{% start ISIRI 3342 scanner
-\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting
- \@ssimfalse
-\case #1\of
-{ \@{\sc@endscan #2} % finished
- ^^c1{\isi@alif@beg #2}
- ^^e6{\isi@lquote #2}
-\default {\isi@word #1#2}
-}\endcase }
-
-{\catcode `\^^M=13 \endlinechar = -1
-\gdef \isi@word #1#2{% transform input into internal notation
-\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
-\if \nxp ^^M\nxp #1\def \next {\isi@par #1#2}% active character
-\else \def \next {\isi@w@rd #1#2}%
-\fi\fi \next }%
-} % catcode 13
-
-\gdef \isi@w@rd #1#2{% special cases
-\case #1\of
-{ #2{\isi@word #1-#2}
- -{\isi@minus #2}
- ^^a0{\sc@back #2}
- ^^ad{\isi@minus #2}
- ^^c1{\isi@alif #2}
- ^^c2{\isi@hamza #2}
- ^^df{\isi@waw #2}
- ^^e0{\isi@hah #2}
- ^^e1{\isi@Yah #2}
- ^^e7{\isi@rquote #2}
- ^^fe{\isi@yah #2}
-\default {\isi@@word #1#2}
-}\endcase }
-
-\gdef \isi@@word #1#2{% default branch
-\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
-\else \def \sc@char {\nxp #1}%
-\fi \sc@put
-\ifx #2^^f6\def \next {\isi@word #1}% shadda
-\else \def \next {\isi@word #2}%
-\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \isi@alif@beg #1{% alif
-\ifx #1^^a2\def \next {\isi@alif@P }\else
-\def \next {\isi@word #1}\def \sc@char {a}\sc@put
-\fi \next }
-
-\gdef \isi@alif #1{% alif
-\ifx #1^^a2\def \next {\isi@alif@P }\else
-\def \next {\isi@word #1}\def \sc@char {A}\sc@put
-\fi \next }
-
-\gdef \isi@alif@P #1{% alif PCN hamza ?
-\ifx #1^^c2\def \sc@char {Qa}\def \next {\isi@word }\else
-\def \sc@char {A-}\def \next {\isi@word #1}%
-\fi \sc@put \next }
-
-\gdef \isi@waw #1{% waw
-\ifx #1^^a2\def \next {\isi@waw@P }\else
-\def \next {\isi@word #1}\def \sc@char {w}\sc@put
-\fi \next }
-
-\gdef \isi@waw@P #1{% waw PCN hamza ?
-\ifx #1^^c2\def \sc@char {Qw}\def \next {\isi@word }\else
-\def \sc@char {w-}\def \next {\isi@word #1}%
-\fi \sc@put \next }
-
-\gdef \isi@yah #1{% yah
-\ifx #1^^a2\def \next {\isi@yah@P }\else
-\def \next {\isi@word #1}\def \sc@char {y}\sc@put
-\fi \next }
-
-\gdef \isi@Yah #1{% Yah
-\ifx #1^^a2\def \next {\isi@yah@P }\else
-\def \next {\isi@word #1}\def \sc@char {Y}\sc@put
-\fi \next }
-
-\gdef \isi@yah@P #1{% yah PCN hamza ?
-\ifx #1^^c2\def \sc@char {QY}\def \next {\isi@word }\else
-\def \sc@char {y-}\def \next {\isi@word #1}%
-\fi \sc@put \next }
-
-\gdef \isi@hah #1{% hah
-\ifx #1^^a2\def \next {\isi@hah@P }\else
-\def \next {\isi@word #1}\def \sc@char {h}\sc@put
-\fi \next }
-
-\gdef \isi@hah@P #1{% hah PCN hamza ?
-\ifx #1^^c2\def \sc@char {Qh}\def \next {\isi@word }\else
-\def \sc@char {h-}\def \next {\isi@word #1}%
-\fi \sc@put \next }
-
-\gdef \isi@hamza #1{% hamza
-\ifx #1^^a2\def \sc@char {QY}\def \next {\isi@word }%
-\else \def \sc@char {Q|}\def \next {\isi@word #1}%
-\fi \sc@put \next }
-
-\gdef \isi@minus {% hyphen between words
-\def \sc@char {-}\sc@put \isi@beg }
-
-\gdef \isi@lquote {% left quote
-\def \sc@char {`}\sc@put \isi@beg }
-
-\gdef \isi@rquote {% right quote
-\def \sc@char {'}\sc@put \isi@word }
-
-\gdef \isi@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\ #1\@ \@@ }
-
-\gdef \isi@endscan \@@ {\global\let \a@scan \isi@scan }
-}% catcode ^
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-} % \isiri@catcodes
-
-\def \set@isiri {% select the ISIRI 3342 scanner
-\let \sc@beg \isi@beg \let \sc@word \isi@word
-\let \sc@back \sc@@back \let \sc@endscan \isi@endscan
-\global\let \a@scan \isi@scan \setisi@codes
-\isiri@catcodes \yahdots
-\a@message {input encoding set to ISIRI 3342 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding
-isiri\set@isiri isiri3342\set@isiri }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for code ISIRI 3342 installed.}
-
-\catcode `\@ = \isiriatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% isiri.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% isiri.sty
+% Scanner for ISIRI 3342 Code
+% to install it, include it as a LaTeX package or style option "isiri"
+% with Plain TeX, say "\input isiri.sty"
+% to activate it, say "\setcode {isiri3342}" or "\setcode {isiri}"
+% 26.04.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \isiriatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \isiriatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {isiri.sty} {3.11 ISIRI 3342 input encoding } {26.04.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \isiri@catcodes {% assignments for ISIRI 3342
+\countdef \is@m=2 \countdef \is@n=4
+\is@m = 160 \is@n = 32
+\loop \ifnum \catcode \is@m = 11 \else \catcode \is@m = 11 \fi
+\global\lccode \is@m = \is@n
+\ifnum 255 > \is@m \advance \is@m 1 \advance \is@n 1 \repeat
+\is@m=0 \is@n=0 \catcode `\^ 7 \catcode `\^^a0 12 }
+
+{\isiri@catcodes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setisi@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@^^a0 {@} \def \sc@^^a1 {||} \def \sc@^^a2 {-} \def \sc@^^a3 {!}
+\def \sc@^^a4 {\a@dlr} \def \sc@^^a5 {\a@pct}
+\def \sc@^^a6 {\a@amp} \def \sc@^^a7 {\a@qt}
+\def \sc@^^a8 {(} \def \sc@^^a9 {)} \def \sc@^^aa {*} \def \sc@^^ab {+}
+\def \sc@^^ac {,} \def \sc@^^ad {-} \def \sc@^^ae {.} \def \sc@^^af {/}
+
+\def \sc@^^b0 {0} \def \sc@^^b1 {1} \def \sc@^^b2 {2} \def \sc@^^b3 {3}
+\def \sc@^^b4 {4} \def \sc@^^b5 {5} \def \sc@^^b6 {6} \def \sc@^^b7 {7}
+\def \sc@^^b8 {8} \def \sc@^^b9 {9} \def \sc@^^ba {:} \def \sc@^^bb {;}
+\def \sc@^^bc {\a@lab} \def \sc@^^bd {=}
+\def \sc@^^be {\a@rab} \def \sc@^^bf {?}
+
+\def \sc@^^c0 {QA} \def \sc@^^c1 {A} \def \sc@^^c2 {Q|} \def \sc@^^c3 {b}
+\def \sc@^^c4 {p} \def \sc@^^c5 {t} \def \sc@^^c6 {C} \def \sc@^^c7 {G}
+\def \sc@^^c8 {J} \def \sc@^^c9 {H} \def \sc@^^ca {X} \def \sc@^^cb {d}
+\def \sc@^^cc {F} \def \sc@^^cd {r} \def \sc@^^ce {z} \def \sc@^^cf {j}
+
+\def \sc@^^d0 {s} \def \sc@^^d1 {x} \def \sc@^^d2 {S} \def \sc@^^d3 {D}
+\def \sc@^^d4 {V} \def \sc@^^d5 {Z} \def \sc@^^d6 {P} \def \sc@^^d7 {R}
+\def \sc@^^d8 {f} \def \sc@^^d9 {q} \def \sc@^^da {\n@xp \a@k}
+\def \sc@^^db {g}
+\def \sc@^^dc {l} \def \sc@^^dd {m} \def \sc@^^de {n} \def \sc@^^df {w}
+
+\def \sc@^^e0 {h} \def \sc@^^e1 {Y} \def \sc@^^e2 {[} \def \sc@^^e3 {]}
+\def \sc@^^e4 {\a@lbc} \def \sc@^^e5 {\a@rbc}
+\def \sc@^^e6 {'} \def \sc@^^e7 {`}
+\def \sc@^^e8 {*} \def \sc@^^e9 {B}
+\def \sc@^^ea {\a@bar} \def \sc@^^eb {\a@bsl}
+\def \sc@^^ec {@} \def \sc@^^ed {@} \def \sc@^^ee {@} \def \sc@^^ef {@}
+
+\def \sc@^^f0 {"a} \def \sc@^^f1 {"i} \def \sc@^^f2 {"u} \def \sc@^^f3 {"aN}
+\def \sc@^^f4 {"iN}\def \sc@^^f5 {"uN} \def \sc@^^f6 {@} \def \sc@^^f7 {""}
+\def \sc@^^f8 {Qa} \def \sc@^^f9 {Qw} \def \sc@^^fa {Qi} \def \sc@^^fb {QY}
+\def \sc@^^fc {T} \def \sc@^^fd {k} \def \sc@^^fe {y} \def \sc@^^ff {E}
+\a@digits = {0123456789^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8^^b9}
+\a@paren = {()[]^^a8^^a9^^e2^^e3}
+\a@first = {"`^^e6}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \isi@scan #1>{% standard scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase{\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\sc@beg #1\@ \@@
+\iftest@scan \tracingmacros = 0 %
+\xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\catcode `\^ 7
+\gdef \isi@beg #1#2{% start ISIRI 3342 scanner
+\h@mzafalse \iz@fetfalse \yahdots \novocalize % because of explicit quoting
+ \@ssimfalse
+\case #1\of
+{ \@{\sc@endscan #2} % finished
+ ^^c1{\isi@alif@beg #2}
+ ^^e6{\isi@lquote #2}
+\default {\isi@word #1#2}
+}\endcase }
+
+{\catcode `\^^M=13 \endlinechar = -1
+\gdef \isi@word #1#2{% transform input into internal notation
+\ifx #1\@ \def \next {\sc@endscan #2}\else % finished
+\if \nxp ^^M\nxp #1\def \next {\isi@par #1#2}% active character
+\else \def \next {\isi@w@rd #1#2}%
+\fi\fi \next }%
+} % catcode 13
+
+\gdef \isi@w@rd #1#2{% special cases
+\case #1\of
+{ #2{\isi@word #1-#2}
+ -{\isi@minus #2}
+ ^^a0{\sc@back #2}
+ ^^ad{\isi@minus #2}
+ ^^c1{\isi@alif #2}
+ ^^c2{\isi@hamza #2}
+ ^^df{\isi@waw #2}
+ ^^e0{\isi@hah #2}
+ ^^e1{\isi@Yah #2}
+ ^^e7{\isi@rquote #2}
+ ^^fe{\isi@yah #2}
+\default {\isi@@word #1#2}
+}\endcase }
+
+\gdef \isi@@word #1#2{% default branch
+\ifcat a\nxp #1\edef \sc@char {\csname sc@#1\endcsname }%
+\else \def \sc@char {\nxp #1}%
+\fi \sc@put
+\ifx #2^^f6\def \next {\isi@word #1}% shadda
+\else \def \next {\isi@word #2}%
+\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \isi@alif@beg #1{% alif
+\ifx #1^^a2\def \next {\isi@alif@P }\else
+\def \next {\isi@word #1}\def \sc@char {a}\sc@put
+\fi \next }
+
+\gdef \isi@alif #1{% alif
+\ifx #1^^a2\def \next {\isi@alif@P }\else
+\def \next {\isi@word #1}\def \sc@char {A}\sc@put
+\fi \next }
+
+\gdef \isi@alif@P #1{% alif PCN hamza ?
+\ifx #1^^c2\def \sc@char {Qa}\def \next {\isi@word }\else
+\def \sc@char {A-}\def \next {\isi@word #1}%
+\fi \sc@put \next }
+
+\gdef \isi@waw #1{% waw
+\ifx #1^^a2\def \next {\isi@waw@P }\else
+\def \next {\isi@word #1}\def \sc@char {w}\sc@put
+\fi \next }
+
+\gdef \isi@waw@P #1{% waw PCN hamza ?
+\ifx #1^^c2\def \sc@char {Qw}\def \next {\isi@word }\else
+\def \sc@char {w-}\def \next {\isi@word #1}%
+\fi \sc@put \next }
+
+\gdef \isi@yah #1{% yah
+\ifx #1^^a2\def \next {\isi@yah@P }\else
+\def \next {\isi@word #1}\def \sc@char {y}\sc@put
+\fi \next }
+
+\gdef \isi@Yah #1{% Yah
+\ifx #1^^a2\def \next {\isi@yah@P }\else
+\def \next {\isi@word #1}\def \sc@char {Y}\sc@put
+\fi \next }
+
+\gdef \isi@yah@P #1{% yah PCN hamza ?
+\ifx #1^^c2\def \sc@char {QY}\def \next {\isi@word }\else
+\def \sc@char {y-}\def \next {\isi@word #1}%
+\fi \sc@put \next }
+
+\gdef \isi@hah #1{% hah
+\ifx #1^^a2\def \next {\isi@hah@P }\else
+\def \next {\isi@word #1}\def \sc@char {h}\sc@put
+\fi \next }
+
+\gdef \isi@hah@P #1{% hah PCN hamza ?
+\ifx #1^^c2\def \sc@char {Qh}\def \next {\isi@word }\else
+\def \sc@char {h-}\def \next {\isi@word #1}%
+\fi \sc@put \next }
+
+\gdef \isi@hamza #1{% hamza
+\ifx #1^^a2\def \sc@char {QY}\def \next {\isi@word }%
+\else \def \sc@char {Q|}\def \next {\isi@word #1}%
+\fi \sc@put \next }
+
+\gdef \isi@minus {% hyphen between words
+\def \sc@char {-}\sc@put \isi@beg }
+
+\gdef \isi@lquote {% left quote
+\def \sc@char {`}\sc@put \isi@beg }
+
+\gdef \isi@rquote {% right quote
+\def \sc@char {'}\sc@put \isi@word }
+
+\gdef \isi@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\ #1\@ \@@ }
+
+\gdef \isi@endscan \@@ {\global\let \a@scan \isi@scan }
+}% catcode ^
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+} % \isiri@catcodes
+
+\def \set@isiri {% select the ISIRI 3342 scanner
+\let \sc@beg \isi@beg \let \sc@word \isi@word
+\let \sc@back \sc@@back \let \sc@endscan \isi@endscan
+\global\let \a@scan \isi@scan \setisi@codes
+\isiri@catcodes \yahdots
+\a@message {input encoding set to ISIRI 3342 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the ASMO449 encoding
+isiri\set@isiri isiri3342\set@isiri }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for code ISIRI 3342 installed.}
+
+\catcode `\@ = \isiriatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/iso88596.sty b/language/arabic/arabtex/texinput/iso88596.sty
index 15b1fb298c..39f15f722d 100644
--- a/language/arabic/arabtex/texinput/iso88596.sty
+++ b/language/arabic/arabtex/texinput/iso88596.sty
@@ -1,23 +1,23 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% iso88596.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% iso88596.sty
-% Scanner for ISO 8859-6 Code
-% reuses the MacOS Arabic scanner
-% to install it, include it as a LaTeX package or style option "iso88596"
-% with Plain TeX, say "\input iso88596.sty"
-% to activate it, say "\setcode {iso8859-6}" or "\setcode{iso88596}"
-% 07.05.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \isocatcode = \catcode`\@ \catcode`\@ = 11
-\a@ident {iso88596.sty} {3.10 ISO 8859-6 encoding} {07.05.2000}
-
-\UsePackage {amac} % reuse MacOS Arabic scanner
-\a@message {scanner for ISO 88596-9 code installed.}
-
-\catcode `\@ = \isocatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% iso88596.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% iso88596.sty
+% Scanner for ISO 8859-6 Code
+% reuses the MacOS Arabic scanner
+% to install it, include it as a LaTeX package or style option "iso88596"
+% with Plain TeX, say "\input iso88596.sty"
+% to activate it, say "\setcode {iso8859-6}" or "\setcode{iso88596}"
+% 07.05.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \isocatcode = \catcode`\@ \catcode`\@ = 11
+\a@ident {iso88596.sty} {3.10 ISO 8859-6 encoding} {07.05.2000}
+
+\UsePackage {amac} % reuse MacOS Arabic scanner
+\a@message {scanner for ISO 88596-9 code installed.}
+
+\catcode `\@ = \isocatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/manifest.txt b/language/arabic/arabtex/texinput/manifest.txt
index ba96b76f42..243eb99ef7 100644
--- a/language/arabic/arabtex/texinput/manifest.txt
+++ b/language/arabic/arabtex/texinput/manifest.txt
@@ -1,80 +1,80 @@
-ArabTeX, version 3.10, directory TEXINPUT, September 16, 2001
-
- 3.09.00 19.50 9320 0 abidir.sty
-17.07.99 18.51 2093 0 abjad.sty
- 4.06.00 13.48 17259 0 aboxes.sty
- 1.11.98 16.52 928 0 acjk.sty
- 5.04.00 17.35 11330 0 acmd.sty
- 1.11.98 17.16 3478 0 aconfig.sty
-11.04.99 17.39 7250 0 aedpatch.sty
- 1.11.98 17.03 1722 0 afonts.sty
- 1.11.98 17.03 2348 0 afonts0.sty
- 1.11.98 17.04 1851 0 afonts1.sty
-19.10.99 15.19 1964 0 afonts2.sty
-28.05.00 23.41 9025 0 alatex.sty
- 4.06.00 16.16 21063 0 aligs.sty
- 1.11.98 18.42 7079 0 alists.sty
- 9.09.01 17.11 7776 0 amac.sty
- 4.06.00 3.29 6072 0 aoutput.sty
- 1.05.00 18.40 33467 0 aparse.sty
-16.09.01 13.18 2834 0 apatch.sty
- 1.11.98 17.03 1165 0 arababel.sty
- 9.05.97 14.05 802 0 arabart.cls
- 9.05.97 14.05 1049 0 arabbook.cls
- 1.11.98 17.00 3041 0 arabchrs.sty
- 1.11.98 18.42 4505 0 arabext.sty
-14.09.01 13.51 26510 0 arabrep.cls
- 4.06.00 16.38 9136 0 arabskel.sty
- 1.11.98 18.42 8917 0 arabsymb.sty
-16.09.01 13.11 26773 0 arabtex.sty
-16.09.01 13.10 4576 0 arabtex.tex
-17.07.99 21.23 6772 0 arabtoks.sty
- 1.11.98 18.42 3214 0 arabwin.sty
-13.09.01 16.16 15334 0 ascan.sty
-21.04.00 20.52 10857 0 asect.sty
- 9.05.97 14.07 1222 0 asize10.clo
- 9.05.97 14.07 1222 0 asize11.clo
- 9.05.97 14.07 1222 0 asize12.clo
- 8.05.00 0.45 4425 0 asmo449.sty
- 1.11.98 18.43 4677 0 atabg.sty
-10.09.01 2.40 18080 0 atrans.sty
-10.09.01 2.33 12425 0 awrite.sty
- 8.05.00 0.49 7441 0 bhs.sty
- 1.12.98 12.56 4631 0 bhslabel.sty
-21.11.95 12.47 1984 0 captions.def
- 8.05.00 0.39 7622 0 cp1256.sty
- 4.11.98 14.25 172 0 etrans.sty
-10.09.01 2.04 4480 0 gedalin.sty
-17.06.00 19.14 5057 0 hebchrs.sty
-12.06.00 18.41 1715 0 hebsymb.sty
-12.06.00 14.54 2747 0 hebtex.sty
-16.09.01 13.10 3733 0 hebtex.tex
- 7.05.00 13.40 7789 0 hecmd.sty
- 1.11.98 18.23 1723 0 hefonts.sty
- 1.11.98 18.23 1499 0 hefonts0.sty
- 1.11.98 18.23 1256 0 hefonts1.sty
-12.06.00 13.19 1879 0 hefonts2.sty
-14.06.00 20.17 8481 0 heparse.sty
-13.04.00 17.39 1289 0 hepatch.sty
-21.08.00 19.27 8818 0 hescan.sty
- 8.05.00 1.00 3494 0 hetrans.sty
-10.09.01 1.43 20413 0 hewrite.sty
- 8.05.00 0.40 6599 0 hmac.sty
- 8.05.00 0.40 8338 0 isiri.sty
- 8.05.00 0.40 919 0 iso88596.sty
- 1.11.98 18.44 3594 0 latexext.sty
-16.09.01 18.35 0 0 manifest.txt
- 4.11.98 14.25 165 0 nashbf.sty
- 1.11.98 18.44 1531 0 raw.sty
- 1.11.98 18.45 4200 0 twoblks.sty
-13.06.00 18.05 3678 0 uheb.fd
-23.05.99 12.38 1495 0 unash.fd
-13.06.00 14.44 1351 0 utf8.sty
-13.06.00 16.08 11198 0 utfcode.sty
-22.04.00 13.14 2113 0 Uxnsh.fd
- 1.11.98 18.45 2652 0 verses.sty
-14.09.01 15.13 7481 0 witbhs.sty
- 4.06.00 19.43 7260 0 xarbskel.sty
- 1.11.98 16.55 9655 0 xarbsymb.sty
-
- 80 Datei(en) 481235 Byte belegt
+ArabTeX, version 3.10, directory TEXINPUT, September 16, 2001
+
+ 3.09.00 19.50 9320 0 abidir.sty
+17.07.99 18.51 2093 0 abjad.sty
+ 4.06.00 13.48 17259 0 aboxes.sty
+ 1.11.98 16.52 928 0 acjk.sty
+ 5.04.00 17.35 11330 0 acmd.sty
+ 1.11.98 17.16 3478 0 aconfig.sty
+11.04.99 17.39 7250 0 aedpatch.sty
+ 1.11.98 17.03 1722 0 afonts.sty
+ 1.11.98 17.03 2348 0 afonts0.sty
+ 1.11.98 17.04 1851 0 afonts1.sty
+19.10.99 15.19 1964 0 afonts2.sty
+28.05.00 23.41 9025 0 alatex.sty
+ 4.06.00 16.16 21063 0 aligs.sty
+ 1.11.98 18.42 7079 0 alists.sty
+ 9.09.01 17.11 7776 0 amac.sty
+ 4.06.00 3.29 6072 0 aoutput.sty
+ 1.05.00 18.40 33467 0 aparse.sty
+16.09.01 13.18 2834 0 apatch.sty
+ 1.11.98 17.03 1165 0 arababel.sty
+ 9.05.97 14.05 802 0 arabart.cls
+ 9.05.97 14.05 1049 0 arabbook.cls
+ 1.11.98 17.00 3041 0 arabchrs.sty
+ 1.11.98 18.42 4505 0 arabext.sty
+14.09.01 13.51 26510 0 arabrep.cls
+ 4.06.00 16.38 9136 0 arabskel.sty
+ 1.11.98 18.42 8917 0 arabsymb.sty
+16.09.01 13.11 26773 0 arabtex.sty
+16.09.01 13.10 4576 0 arabtex.tex
+17.07.99 21.23 6772 0 arabtoks.sty
+ 1.11.98 18.42 3214 0 arabwin.sty
+13.09.01 16.16 15334 0 ascan.sty
+21.04.00 20.52 10857 0 asect.sty
+ 9.05.97 14.07 1222 0 asize10.clo
+ 9.05.97 14.07 1222 0 asize11.clo
+ 9.05.97 14.07 1222 0 asize12.clo
+ 8.05.00 0.45 4425 0 asmo449.sty
+ 1.11.98 18.43 4677 0 atabg.sty
+10.09.01 2.40 18080 0 atrans.sty
+10.09.01 2.33 12425 0 awrite.sty
+ 8.05.00 0.49 7441 0 bhs.sty
+ 1.12.98 12.56 4631 0 bhslabel.sty
+21.11.95 12.47 1984 0 captions.def
+ 8.05.00 0.39 7622 0 cp1256.sty
+ 4.11.98 14.25 172 0 etrans.sty
+10.09.01 2.04 4480 0 gedalin.sty
+17.06.00 19.14 5057 0 hebchrs.sty
+12.06.00 18.41 1715 0 hebsymb.sty
+12.06.00 14.54 2747 0 hebtex.sty
+16.09.01 13.10 3733 0 hebtex.tex
+ 7.05.00 13.40 7789 0 hecmd.sty
+ 1.11.98 18.23 1723 0 hefonts.sty
+ 1.11.98 18.23 1499 0 hefonts0.sty
+ 1.11.98 18.23 1256 0 hefonts1.sty
+12.06.00 13.19 1879 0 hefonts2.sty
+14.06.00 20.17 8481 0 heparse.sty
+13.04.00 17.39 1289 0 hepatch.sty
+21.08.00 19.27 8818 0 hescan.sty
+ 8.05.00 1.00 3494 0 hetrans.sty
+10.09.01 1.43 20413 0 hewrite.sty
+ 8.05.00 0.40 6599 0 hmac.sty
+ 8.05.00 0.40 8338 0 isiri.sty
+ 8.05.00 0.40 919 0 iso88596.sty
+ 1.11.98 18.44 3594 0 latexext.sty
+16.09.01 18.35 0 0 manifest.txt
+ 4.11.98 14.25 165 0 nashbf.sty
+ 1.11.98 18.44 1531 0 raw.sty
+ 1.11.98 18.45 4200 0 twoblks.sty
+13.06.00 18.05 3678 0 uheb.fd
+23.05.99 12.38 1495 0 unash.fd
+13.06.00 14.44 1351 0 utf8.sty
+13.06.00 16.08 11198 0 utfcode.sty
+22.04.00 13.14 2113 0 Uxnsh.fd
+ 1.11.98 18.45 2652 0 verses.sty
+14.09.01 15.13 7481 0 witbhs.sty
+ 4.06.00 19.43 7260 0 xarbskel.sty
+ 1.11.98 16.55 9655 0 xarbsymb.sty
+
+ 80 Datei(en) 481235 Byte belegt
diff --git a/language/arabic/arabtex/texinput/nashbf.sty b/language/arabic/arabtex/texinput/nashbf.sty
index aefdd050e4..25126d8328 100644
--- a/language/arabic/arabtex/texinput/nashbf.sty
+++ b/language/arabic/arabtex/texinput/nashbf.sty
@@ -1,9 +1,9 @@
-% nashbf.sty
-
-\endinput
-
-% this module is no more needed.
-% its effect is now taken care of by "arabtex.sty"; use \setnashbf
-% 04.11.1998
-% Klaus Lagally
-
+% nashbf.sty
+
+\endinput
+
+% this module is no more needed.
+% its effect is now taken care of by "arabtex.sty"; use \setnashbf
+% 04.11.1998
+% Klaus Lagally
+
diff --git a/language/arabic/arabtex/texinput/raw.sty b/language/arabic/arabtex/texinput/raw.sty
index 2c1a584b28..d096157046 100644
--- a/language/arabic/arabtex/texinput/raw.sty
+++ b/language/arabic/arabtex/texinput/raw.sty
@@ -1,41 +1,41 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% raw.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% raw.sty
-% package for activating most special characters for OCR work
-% and switching off most special processing
-% the characters " < > cannot presently be handled correctly
-% activate special processing by \setraw
-% revert to the normal mode by \unsetraw
-% 04.03.1996
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \rawatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \rawatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {raw.sty} {0.91 special characters} {04.03.1996}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \setraw {% activate special characters
-\a@paren = {} \a@digits = {} \a@first = {.'`~,|:}
-\catcode `\^ 12 \catcode `\_ 12
-\catcode `\$ 12 \catcode `\# 12 \catcode `\& 12
-\catcode `\% 12 \catcode `\- 11 \catcode `\= 11 }
-
-\def \unsetraw {% undo changes
-\a@digits = {0123456789} \a@paren = {()[]}
-\a@first = {.^_-'`~,|"=:} % default, scanner dependent
-\catcode `\^ 7 \catcode `\_ 8
-\catcode `\$ 3 \catcode `\# 6 \catcode `\& 4
-\catcode `\% 14 \catcode `\- 12 \catcode `\= 12 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode `\@ = \rawatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% raw.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% raw.sty
+% package for activating most special characters for OCR work
+% and switching off most special processing
+% the characters " < > cannot presently be handled correctly
+% activate special processing by \setraw
+% revert to the normal mode by \unsetraw
+% 04.03.1996
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \rawatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \rawatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {raw.sty} {0.91 special characters} {04.03.1996}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \setraw {% activate special characters
+\a@paren = {} \a@digits = {} \a@first = {.'`~,|:}
+\catcode `\^ 12 \catcode `\_ 12
+\catcode `\$ 12 \catcode `\# 12 \catcode `\& 12
+\catcode `\% 12 \catcode `\- 11 \catcode `\= 11 }
+
+\def \unsetraw {% undo changes
+\a@digits = {0123456789} \a@paren = {()[]}
+\a@first = {.^_-'`~,|"=:} % default, scanner dependent
+\catcode `\^ 7 \catcode `\_ 8
+\catcode `\$ 3 \catcode `\# 6 \catcode `\& 4
+\catcode `\% 14 \catcode `\- 12 \catcode `\= 12 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode `\@ = \rawatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/saw.sty b/language/arabic/arabtex/texinput/saw.sty
index 5ca630d456..717e479a27 100644
--- a/language/arabic/arabtex/texinput/saw.sty
+++ b/language/arabic/arabtex/texinput/saw.sty
@@ -1,43 +1,43 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% saw.sty
-% macros for SAW and ALS
-% only available in one size
-% 22.06.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {saw.sty}{1.00 SAW and ALS } {22.06.2006}
-
-\def \SAW {% for Roman mode
-% .salla all-ah `alayhi wa-sallam
-\setbox0 \hbox {\setarab \novocalize \tiny
-\vbox {\hbox {\<.sall_A \hskip-0.6em al-ll_ahu >}%
-\nointerlineskip \vskip -1.5ex
-\hbox {\<wa-salama >}%
-\nointerlineskip \vskip -2.2ex
-\hbox {\hskip .4em \<`alayBBhi >\,}}}%
-\dp0 0pt \leavevmode \lower .20\ht0 \box0 }
-
-\def \ALS {% for Roman mode
-% `alayhi al-ssalAm
-\setbox0 \hbox {\setarab \novocalize \tiny
-\vbox {\hbox {\,\<`alaByBhi >}%
-\nointerlineskip \vskip -1.0ex
-\hbox {\<al-ssalAm >\,}}}%
-\leavevmode \box0 }
-
-\def \a@c@SAW {% for Arabic paragraph mode
-\nospace \putwordb@x {\SAW \hskip -0.3em }\test@token }
-
-\def \a@c@ALS {% for Arabic paragraph mode
-\nospace \putwordb@x {\ALS \hskip -0.3em }\test@token }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% saw.sty
+% macros for SAW and ALS
+% only available in one size
+% 22.06.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {saw.sty}{1.00 SAW and ALS } {22.06.2006}
+
+\def \SAW {% for Roman mode
+% .salla all-ah `alayhi wa-sallam
+\setbox0 \hbox {\setarab \novocalize \tiny
+\vbox {\hbox {\<.sall_A \hskip-0.6em al-ll_ahu >}%
+\nointerlineskip \vskip -1.5ex
+\hbox {\<wa-salama >}%
+\nointerlineskip \vskip -2.2ex
+\hbox {\hskip .4em \<`alayBBhi >\,}}}%
+\dp0 0pt \leavevmode \lower .20\ht0 \box0 }
+
+\def \ALS {% for Roman mode
+% `alayhi al-ssalAm
+\setbox0 \hbox {\setarab \novocalize \tiny
+\vbox {\hbox {\,\<`alaByBhi >}%
+\nointerlineskip \vskip -1.0ex
+\hbox {\<al-ssalAm >\,}}}%
+\leavevmode \box0 }
+
+\def \a@c@SAW {% for Arabic paragraph mode
+\nospace \putwordb@x {\SAW \hskip -0.3em }\test@token }
+
+\def \a@c@ALS {% for Arabic paragraph mode
+\nospace \putwordb@x {\ALS \hskip -0.3em }\test@token }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
diff --git a/language/arabic/arabtex/texinput/sotoku.sty b/language/arabic/arabtex/texinput/sotoku.sty
index eded081e36..c54b51a853 100644
--- a/language/arabic/arabtex/texinput/sotoku.sty
+++ b/language/arabic/arabtex/texinput/sotoku.sty
@@ -1,47 +1,47 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% sotoku.sty
-% additional transcription module for ArabTeX
-% special transcription
-% 16.02.2003
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Additional Transcription Modes:
-% transcribe `ayn by the Arabic letter
-% activate by: \settrans{sotoku}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode`\@ = 11
-\a@ident{sotoku.sty}{1.00 generate special transliteration }{16.02.2003}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\~=10
-\gdef \tr@sotoku {% define Sotoku transliteration
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\tr@zdmg % standard routine
-% transliterate 'ayin' as Arabic letter:
-\gdef \tr@P {{\scriptsize\transfalse\arabtrue\showfalse\<`>}\@vocalfalse}
-% transliterate 'hamza' as Arabic letter:
-\gdef \tr@Q {{\transfalse\arabtrue\showfalse\<-'>}\@vocalfalse}
-% comment out if not required!
-\a@message {Sotoku~special~transliteration.}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@extend \tr@table {sotoku\tr@sotoku }% install
-
-\settrans{sotoku}% activate
-% switch to standard version by \settrans{standard}
-
-\catcode`\@ = \transatcode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% sotoku.sty
+% additional transcription module for ArabTeX
+% special transcription
+% 16.02.2003
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Additional Transcription Modes:
+% transcribe `ayn by the Arabic letter
+% activate by: \settrans{sotoku}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = 11
+\a@ident{sotoku.sty}{1.00 generate special transliteration }{16.02.2003}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\~=10
+\gdef \tr@sotoku {% define Sotoku transliteration
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tr@zdmg % standard routine
+% transliterate 'ayin' as Arabic letter:
+\gdef \tr@P {{\scriptsize\transfalse\arabtrue\showfalse\<`>}\@vocalfalse}
+% transliterate 'hamza' as Arabic letter:
+\gdef \tr@Q {{\transfalse\arabtrue\showfalse\<-'>}\@vocalfalse}
+% comment out if not required!
+\a@message {Sotoku~special~transliteration.}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@extend \tr@table {sotoku\tr@sotoku }% install
+
+\settrans{sotoku}% activate
+% switch to standard version by \settrans{standard}
+
+\catcode`\@ = \transatcode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+
diff --git a/language/arabic/arabtex/texinput/twoblks.sty b/language/arabic/arabtex/texinput/twoblks.sty
index 93687c2988..fd144d48f2 100644
--- a/language/arabic/arabtex/texinput/twoblks.sty
+++ b/language/arabic/arabtex/texinput/twoblks.sty
@@ -1,104 +1,104 @@
-% twoblocks.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% defines the command \twoblocks {#1}{#2}
-% to position two text blocks side by side
-% separated by \colsep horizontal space
-% 17.11.1993
-% 06.06.1994 % do not read the arguments prematurely: catcodes !
-% no warranty whatever
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \twblatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \twblatcode = \catcode`\@ \catcode`\@ = 11
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newbox \boxa \newbox \boxb \newbox \boxc \newbox \boxd
-\newdimen \htmin \newdimen \hta \newdimen \htb
-\newdimen \pagerest \newdimen \splitheight \newdimen \totalheight
-\newdimen \colwidth \newdimen \colsep
-
-\colsep 0.4in % adjust to your preference
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \unpackbox #1{% unwrap minipage to get a \vbox only
- \setbox0 \vbox {\unvbox #1\global \setbox1 \lastbox } % get line
- \setbox0 \hbox {\unhbox1 \unskip \unskip \unpenalty % get inner box
- \global \setbox #1 \lastbox }} % and forget the rest
-
-\def \a@minipagerestore {% modify tabbing and list spacing
- \vskip 0pt plus 12pt \emergencystretch 3cm \hbadness 5000 }
-
-\def \depositboxes {% fill page, recursive
- \nointerlineskip \null \allowbreak % update page builder parameters
- \pagerest \pagegoal \advance \pagerest -\pagetotal
- \advance \pagerest -\maxdepth
- \advance \pagerest -\baselineskip % just to make sure
- \getheights % max total height of \boxa and \boxb
-\ifdim \totalheight > \pagerest % no more space, split?
- \splitheight \totalheight
- \advance \splitheight -2\baselineskip % try to avoid widows
- \ifdim \splitheight > \pagerest \splitheight \pagerest
- \fi
- \htmin 2\baselineskip
- \ifdim \splitheight > \htmin % try to avoid clubs
- \splitboxes \splitheight % to \boxc and \boxd, and output
- \else \vfill \eject % new page
- \fi
- \depositboxes % try again
-\else \combineboxes % output \boxa and \boxb
-\fi }
-
-\def \adjustbox #1{% set depth to total height, height zero, full width
- \ifvoid#1 \setbox#1 \null \fi \wd#1 \colwidth
- \dimen0 \ht#1 \advance \dimen0 \dp#1 \ht#1 \z@ \dp#1 \dimen0 }
-
-\def \getheights {% \ht plus \dp of boxes \boxa and \boxb
- \hta \ht \boxa \advance \hta \dp \boxa
- \htb \ht \boxb \advance \htb \dp \boxb
- \ifdim \htb > \hta \totalheight \htb \else \totalheight \hta \fi }
-
-\def \splitboxes #1{% split off #1 from \boxa and \boxb
- \splitmaxdepth \z@ \splittopskip \topskip
- \ifdim #1 > \hta \setbox \boxc \box \boxa
- \else \setbox \boxc \vsplit \boxa to #1 \fi
- \ifdim #1 > \htb \setbox \boxd \box \boxb
- \else \setbox \boxd \vsplit \boxb to #1 \fi
- \outputboxes \boxc \boxd \vfill \eject }
-
-\def \outputboxes #1#2{% hanging from top of \hbox
- \adjustbox #1 \adjustbox #2 % height zero, all depth
- \nointerlineskip
- \hbox to \textwidth {\noindent \box #1\hfill \box #2}\allowbreak }
-
-\def \combineboxes {% output \boxa and \boxb
- \outputboxes \boxa \boxb }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \twoblocks {% two aligned paragraphs
- \bgroup \colwidth \textwidth \advance \colwidth -\colsep
- \divide \colwidth 2 \let \@minipagerestore \a@minipagerestore
- \setbox \boxa \vbox \bgroup \minipage[t]\colwidth
- \bgroup \aftergroup \tw@blocks \ignorespaces \let \next }
-
-\def \tw@blocks {% after first block
- \endminipage \egroup \unpackbox \boxa % unwrap minipage
- \setbox \boxb \vbox \bgroup \minipage[t]\colwidth
- \bgroup \aftergroup \tw@bl@cks \ignorespaces \let \next }
-
-\def \tw@bl@cks {% after second block
- \endminipage \egroup \unpackbox \boxb % unwrap minipage
- \depositboxes \egroup } % split if necessary
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode `\@ = \twblatcode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% twoblocks.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% defines the command \twoblocks {#1}{#2}
+% to position two text blocks side by side
+% separated by \colsep horizontal space
+% 17.11.1993
+% 06.06.1994 % do not read the arguments prematurely: catcodes !
+% no warranty whatever
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \twblatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \twblatcode = \catcode`\@ \catcode`\@ = 11
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox \boxa \newbox \boxb \newbox \boxc \newbox \boxd
+\newdimen \htmin \newdimen \hta \newdimen \htb
+\newdimen \pagerest \newdimen \splitheight \newdimen \totalheight
+\newdimen \colwidth \newdimen \colsep
+
+\colsep 0.4in % adjust to your preference
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \unpackbox #1{% unwrap minipage to get a \vbox only
+ \setbox0 \vbox {\unvbox #1\global \setbox1 \lastbox } % get line
+ \setbox0 \hbox {\unhbox1 \unskip \unskip \unpenalty % get inner box
+ \global \setbox #1 \lastbox }} % and forget the rest
+
+\def \a@minipagerestore {% modify tabbing and list spacing
+ \vskip 0pt plus 12pt \emergencystretch 3cm \hbadness 5000 }
+
+\def \depositboxes {% fill page, recursive
+ \nointerlineskip \null \allowbreak % update page builder parameters
+ \pagerest \pagegoal \advance \pagerest -\pagetotal
+ \advance \pagerest -\maxdepth
+ \advance \pagerest -\baselineskip % just to make sure
+ \getheights % max total height of \boxa and \boxb
+\ifdim \totalheight > \pagerest % no more space, split?
+ \splitheight \totalheight
+ \advance \splitheight -2\baselineskip % try to avoid widows
+ \ifdim \splitheight > \pagerest \splitheight \pagerest
+ \fi
+ \htmin 2\baselineskip
+ \ifdim \splitheight > \htmin % try to avoid clubs
+ \splitboxes \splitheight % to \boxc and \boxd, and output
+ \else \vfill \eject % new page
+ \fi
+ \depositboxes % try again
+\else \combineboxes % output \boxa and \boxb
+\fi }
+
+\def \adjustbox #1{% set depth to total height, height zero, full width
+ \ifvoid#1 \setbox#1 \null \fi \wd#1 \colwidth
+ \dimen0 \ht#1 \advance \dimen0 \dp#1 \ht#1 \z@ \dp#1 \dimen0 }
+
+\def \getheights {% \ht plus \dp of boxes \boxa and \boxb
+ \hta \ht \boxa \advance \hta \dp \boxa
+ \htb \ht \boxb \advance \htb \dp \boxb
+ \ifdim \htb > \hta \totalheight \htb \else \totalheight \hta \fi }
+
+\def \splitboxes #1{% split off #1 from \boxa and \boxb
+ \splitmaxdepth \z@ \splittopskip \topskip
+ \ifdim #1 > \hta \setbox \boxc \box \boxa
+ \else \setbox \boxc \vsplit \boxa to #1 \fi
+ \ifdim #1 > \htb \setbox \boxd \box \boxb
+ \else \setbox \boxd \vsplit \boxb to #1 \fi
+ \outputboxes \boxc \boxd \vfill \eject }
+
+\def \outputboxes #1#2{% hanging from top of \hbox
+ \adjustbox #1 \adjustbox #2 % height zero, all depth
+ \nointerlineskip
+ \hbox to \textwidth {\noindent \box #1\hfill \box #2}\allowbreak }
+
+\def \combineboxes {% output \boxa and \boxb
+ \outputboxes \boxa \boxb }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \twoblocks {% two aligned paragraphs
+ \bgroup \colwidth \textwidth \advance \colwidth -\colsep
+ \divide \colwidth 2 \let \@minipagerestore \a@minipagerestore
+ \setbox \boxa \vbox \bgroup \minipage[t]\colwidth
+ \bgroup \aftergroup \tw@blocks \ignorespaces \let \next }
+
+\def \tw@blocks {% after first block
+ \endminipage \egroup \unpackbox \boxa % unwrap minipage
+ \setbox \boxb \vbox \bgroup \minipage[t]\colwidth
+ \bgroup \aftergroup \tw@bl@cks \ignorespaces \let \next }
+
+\def \tw@bl@cks {% after second block
+ \endminipage \egroup \unpackbox \boxb % unwrap minipage
+ \depositboxes \egroup } % split if necessary
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\catcode `\@ = \twblatcode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/uheb.fd b/language/arabic/arabtex/texinput/uheb.fd
index 8b96772325..59f70597ec 100644
--- a/language/arabic/arabtex/texinput/uheb.fd
+++ b/language/arabic/arabtex/texinput/uheb.fd
@@ -1,122 +1,122 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Uheb.fd
-% ArabTeX
-% Hebrew font descriptions for LaTeX2e
-% 13.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Bernd Raichle and Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This file contains the font description of the Hebrew fonts
-% fontencoding: U
-% fontfamily: heb
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% make sure, that it is used with NFSS2 only
-%
-\ifx\DeclareFontShape\undefined
- \message{Something is wrong -- %
- this file can only be used with NFSS2!!!}
-\expandafter\endinput\fi
-
-\ProvidesFile{uheb.fd }[ 2000/06/13 v3.10 ArabTeX Hebrew font definitions]
-
-\DeclareFontFamily{U}{heb}{}%
-
-\DeclareFontShape{U}{heb}{m}{n}{%
- <-8> fixed * [102.4] hclassic
- <8-10> s * [12.8] hclassic
- <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hclassic
-}%
-{\fontdimen5\font =.8\fontdimen2\font % ex
- \fontdimen6\font = 3\fontdimen5\font } % em
-
-\DeclareFontShape{U}{heb}{bx}{n}{%
- <-8> fixed * [102.4] hcaption
- <8-10> s * [12.8] hcaption
- <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hcaption
-}%
-{\fontdimen5\font =.8\fontdimen2\font % ex
- \fontdimen6\font = 3\fontdimen5\font % em
- \fontdimen1\font =.2pt } % slant
-
-\DeclareFontShape{U}{heb}{m}{Jm}{%
- <-10> fixed * Jerusalem
- <10><10.95><12><14.4><17.28><20.74><24.88> s * Jerusalem
-}{}
-
-\DeclareFontShape{U}{heb}{m}{jm}{%
- <-10> fixed * jerusale
- <10><10.95><12><14.4><17.28><20.74><24.88> s * jerusale
-}{}
-
-\DeclareFontShape{U}{heb}{m}{ds}{%
- <-10> fixed * deadsea
- <10><10.95><12><14.4><17.28><20.74><24.88> s * deadsea
-}{}
-
-\DeclareFontShape{U}{heb}{m}{ta}{%
- <-10> fixed * telaviv
- <10><10.95><12><14.4><17.28><20.74><24.88> s * telaviv
-}{}
-
-\DeclareFontShape{U}{heb}{m}{oj}{%
- <-10> fixed * oldjaffa
- <10><10.95><12><14.4><17.28><20.74><24.88> s * oldjaffa
-}{}
-
-\DeclareFontShape{U}{heb}{m}{so}{%
- <-10> fixed * shlm_old
- <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_old
-}%
-{\fontdimen5\font =\fontdimen2\font } % ex
-
-\DeclareFontShape{U}{heb}{m}{sr}{%
- <-10> fixed * shlm_scr
- <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_scr
-}%
-{\fontdimen5\font =\fontdimen2\font } % ex
-
-\DeclareFontShape{U}{heb}{m}{sk}{%
- <-10> fixed * shlm_stk
- <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_stk
-}%
-{\fontdimen5\font =\fontdimen2\font } % ex
-
-\DeclareFontShape{U}{heb}{m}{fr}{%
- <-10> fixed * fr
- <10><10.95><12><14.4><17.28><20.74><24.88> s * fr
-}{}
-
-\DeclareFontShape{U}{heb}{bx}{fr}{%
-% <-10> fixed * [12.8] frbx
- <-10> fixed * frbx
-% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frbx
- <10><10.95><12><14.4><17.28><20.74><24.88> s * frbx
-}{}
-
-\DeclareFontShape{U}{heb}{sl}{fr}{%
-% <-10> fixed * [12.8] frsl
- <-10> fixed * frsl
-% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frsl
- <10><10.95><12><14.4><17.28><20.74><24.88> s * frsl
-}%
-{\fontdimen1\font =.2pt } % slant
-
-\DeclareFontShape{U}{heb}{m}{crml}{%
- <-10> fixed * crml10
- <10><10.95><12><14.4><17.28><20.74><24.88> s * crml10
-}%
-{\fontdimen5\font =\fontdimen2\font } % ex
-
-\DeclareFontShape{U}{heb}{sl}{crml}{%
- <-10> fixed * crmlsl10
- <10><10.95><12><14.4><17.28><20.74><24.88> s * crmlsl10
-}%
-{\fontdimen5\font =\fontdimen2\font } % ex
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Uheb.fd
+% ArabTeX
+% Hebrew font descriptions for LaTeX2e
+% 13.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Bernd Raichle and Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This file contains the font description of the Hebrew fonts
+% fontencoding: U
+% fontfamily: heb
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% make sure, that it is used with NFSS2 only
+%
+\ifx\DeclareFontShape\undefined
+ \message{Something is wrong -- %
+ this file can only be used with NFSS2!!!}
+\expandafter\endinput\fi
+
+\ProvidesFile{uheb.fd }[ 2000/06/13 v3.10 ArabTeX Hebrew font definitions]
+
+\DeclareFontFamily{U}{heb}{}%
+
+\DeclareFontShape{U}{heb}{m}{n}{%
+ <-8> fixed * [102.4] hclassic
+ <8-10> s * [12.8] hclassic
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hclassic
+}%
+{\fontdimen5\font =.8\fontdimen2\font % ex
+ \fontdimen6\font = 3\fontdimen5\font } % em
+
+\DeclareFontShape{U}{heb}{bx}{n}{%
+ <-8> fixed * [102.4] hcaption
+ <8-10> s * [12.8] hcaption
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] hcaption
+}%
+{\fontdimen5\font =.8\fontdimen2\font % ex
+ \fontdimen6\font = 3\fontdimen5\font % em
+ \fontdimen1\font =.2pt } % slant
+
+\DeclareFontShape{U}{heb}{m}{Jm}{%
+ <-10> fixed * Jerusalem
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * Jerusalem
+}{}
+
+\DeclareFontShape{U}{heb}{m}{jm}{%
+ <-10> fixed * jerusale
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * jerusale
+}{}
+
+\DeclareFontShape{U}{heb}{m}{ds}{%
+ <-10> fixed * deadsea
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * deadsea
+}{}
+
+\DeclareFontShape{U}{heb}{m}{ta}{%
+ <-10> fixed * telaviv
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * telaviv
+}{}
+
+\DeclareFontShape{U}{heb}{m}{oj}{%
+ <-10> fixed * oldjaffa
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * oldjaffa
+}{}
+
+\DeclareFontShape{U}{heb}{m}{so}{%
+ <-10> fixed * shlm_old
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_old
+}%
+{\fontdimen5\font =\fontdimen2\font } % ex
+
+\DeclareFontShape{U}{heb}{m}{sr}{%
+ <-10> fixed * shlm_scr
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_scr
+}%
+{\fontdimen5\font =\fontdimen2\font } % ex
+
+\DeclareFontShape{U}{heb}{m}{sk}{%
+ <-10> fixed * shlm_stk
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * shlm_stk
+}%
+{\fontdimen5\font =\fontdimen2\font } % ex
+
+\DeclareFontShape{U}{heb}{m}{fr}{%
+ <-10> fixed * fr
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * fr
+}{}
+
+\DeclareFontShape{U}{heb}{bx}{fr}{%
+% <-10> fixed * [12.8] frbx
+ <-10> fixed * frbx
+% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frbx
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * frbx
+}{}
+
+\DeclareFontShape{U}{heb}{sl}{fr}{%
+% <-10> fixed * [12.8] frsl
+ <-10> fixed * frsl
+% <10><10.95><12><14.4><17.28><20.74><24.88> s * [12.8] frsl
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * frsl
+}%
+{\fontdimen1\font =.2pt } % slant
+
+\DeclareFontShape{U}{heb}{m}{crml}{%
+ <-10> fixed * crml10
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * crml10
+}%
+{\fontdimen5\font =\fontdimen2\font } % ex
+
+\DeclareFontShape{U}{heb}{sl}{crml}{%
+ <-10> fixed * crmlsl10
+ <10><10.95><12><14.4><17.28><20.74><24.88> s * crmlsl10
+}%
+{\fontdimen5\font =\fontdimen2\font } % ex
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/utf8.sty b/language/arabic/arabtex/texinput/utf8.sty
index fa7167e96c..80c754b479 100644
--- a/language/arabic/arabtex/texinput/utf8.sty
+++ b/language/arabic/arabtex/texinput/utf8.sty
@@ -1,42 +1,42 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% utf8.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% utf8.sty
-% Scanner for UTF-8 Code
-% to install it, include it as a LaTeX package or style option "utf8"
-% with Plain TeX, say "\input utf8.sty"
-% to activate it, say "\setcode {utf8}"
-% 13.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \utfatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \utfatcode = \catcode`\@ \catcode`\@ = 11
-
-\UsePackage {utfcode}
-
-\a@ident {utf8.sty} {3.10 UTF-8 input encoding } {13.06.2000}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \set@utfc {% select the UTF-8 scanner
-\global\let \a@scan \utfc@scan
-\global\def \sc@beg {\utf@beg }%
-\global\def \sc@word {\utf@word }%
-\global\a@digits = {0123456789}%
-\global\a@first = {ÍÎÏ•’}%
-\catcode `á 11
-\a@message {input encoding set to UTF-8 conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the UTF-8 encoding
-utf-8\set@utfc utf8\set@utfc }
-
-\a@message {scanner for code UTF-8 installed.}
-
-\catcode `\@ = \utfatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% utf8.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utf8.sty
+% Scanner for UTF-8 Code
+% to install it, include it as a LaTeX package or style option "utf8"
+% with Plain TeX, say "\input utf8.sty"
+% to activate it, say "\setcode {utf8}"
+% 13.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \utfatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \utfatcode = \catcode`\@ \catcode`\@ = 11
+
+\UsePackage {utfcode}
+
+\a@ident {utf8.sty} {3.10 UTF-8 input encoding } {13.06.2000}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \set@utfc {% select the UTF-8 scanner
+\global\let \a@scan \utfc@scan
+\global\def \sc@beg {\utf@beg }%
+\global\def \sc@word {\utf@word }%
+\global\a@digits = {0123456789}%
+\global\a@first = {ÍÎÏ•’}%
+\catcode `á 11
+\a@message {input encoding set to UTF-8 conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the UTF-8 encoding
+utf-8\set@utfc utf8\set@utfc }
+
+\a@message {scanner for code UTF-8 installed.}
+
+\catcode `\@ = \utfatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/utfcode.sty b/language/arabic/arabtex/texinput/utfcode.sty
index 5f8ab2753e..6221f03981 100644
--- a/language/arabic/arabtex/texinput/utfcode.sty
+++ b/language/arabic/arabtex/texinput/utfcode.sty
@@ -1,279 +1,279 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% utfcode.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% utfcode.sty
-% scanner module for the Arabic and Hebrew segments of UTF-8
-% loaded and called by utf8.sty
-% 07.03.2002
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode`\@ = 11
-
-\a@ident {utfcode.sty} {3.10a Arabic+Hebrew segment of UTF-8} {07.03.2002}
-
-\newcount \u@lb \newcount \u@lq
-
-\newif \ifa@quote
-
-\def \utfc@scan #1>{% modified scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1 \fi
-\global\def \a@rest {}\global\a@tokens = {}\def \sc@char {}%
-\utf@beg #1\@ \@ \@ \@@ % transform
-\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-\def \utf@beg #1#2{% start UTF-8 scanner
-\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
- \@ssimfalse
- \def \next {\utf@word #1#2}%
-\ifnum `#1="D8 \ifnum `#2="27 \def \next {\utf@alif }\fi \else
-%\ifx #1"\def \next {\utf@lquote #2}\else
-\ifx #1/\global \a@tokens ={#1}\def \next {\utf@word #2}\else % x>
-%\fi
-\fi\fi \next }
-
-{\catcode `\^ 7 \catcode `\^^M=13
-\gdef \utf@word #1#2{% transform input into internal notation
-\ifx #1\@ \def \next {\utf@end #2}\else % finished
-\ifx #1-\def \next {\utf@minus #2}\else %
-%ifx #1"\def \next {\utf@rquote #2}\else %
-\ifx #1/\def \next {\sc@back #1#2}\else %
-%\if \nxp ^^M\nxp #1\def \next {\utf@par #2}\else % active character
-\ifnum `#1="D6 \def \next {\utf@dvi #2}\else %
-\ifnum `#1="D7 \def \next {\utf@dvii #2}\else %
-\ifnum `#1="D8 \def \next {\utf@dviii #2}\else %
-\ifnum `#1="D9 \def \next {\utf@dix #2}\else %
-\ifnum `#1="DA \def \next {\utf@da #2}\else %
-\ifnum `#1="DB \def \next {\utf@db #2}\else %
- \def \next {\utf@asci #1#2}%
-\fi\fi\fi\fi\fi\fi %
-%\fi\fi
-\fi\fi\fi \next }%
-%
-\gdef \utf@word #1{% transform input into internal notation
-\ifx #1\@ \def \next {\utf@end }\else % finished
-\ifx #1-\def \next {\utf@minus }\else %
-\ifx #1/\def \next {\sc@back #1}\else %
-\ifnum `#1="D6 \def \next {\utf@dvi }\else %
-\ifnum `#1="D7 \def \next {\utf@dvii }\else %
-\ifnum `#1="D8 \def \next {\utf@dviii }\else %
-\ifnum `#1="D9 \def \next {\utf@dix }\else %
-\ifnum `#1="DA \def \next {\utf@da }\else %
-\ifnum `#1="DB \def \next {\utf@db }\else %
- \def \next {\utf@asci #1}%
-\fi\fi\fi\fi\fi\fi %
-\fi\fi\fi \next }%
-} % catcode 13
-
-\def \utf@end #1\@@ {\relax }
-
-\def \utf@next {% save and deposit character
-\sc@put \utf@word }
-
-\def \utf@asci #1{% deposit ASCII item
-\def \sc@char {#1}\utf@next }
-
-{\catcode `\% 12 \gdef \a@pc {%}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@dvi #1{% segment D6
- \u@lb `#1\relax \advance \u@lb -128
- \u@lq \u@lb \divide \u@lq 8
- \edef \sc@char {}%
-\ifcase \u@lq \or \or \or \or \or
-\or \advance \u@lb -48 \edef \sc@char
- {\ifcase \u@lb
- "\n@xp\a@e\or "\n@xp\a@I\or "\n@xp\a@A\or "\n@xp\a@O\or
- "i\or "\n@xp\a@E\or "e\or "a\or
- \fi }%
-\or \advance \u@lb -56 \edef \sc@char
- {\ifcase \u@lb
- "A\or "\n@xp\a@o\or L\or "u\or
- "\n@xp\a@Zu\or |\or B\or "\n@xp\a@Zo\or
- \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@dvii #1{% segment D7
- \u@lb `#1\relax \advance \u@lb -128
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char
- {\ifcase \u@lb
- K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or
- \fi }%
-\or \advance \u@lb -8 \edef \sc@char {}%
-\or \advance \u@lb -16 \edef \sc@char
- {\ifcase \u@lb
- Q\or b\or g\or d\or h\or w\or z\or X\or
- \fi }%
-\or \advance \u@lb -24 \edef \sc@char
- {\ifcase \u@lb
- C\or y\or k\or k\or l\or m\or m\or n\or
- \fi }%
-\or \advance \u@lb -32 \edef \sc@char
- {\ifcase \u@lb
- n\or s\or P\or p\or p\or S\or S\or q\or
- \fi }%
-\or \advance \u@lb -40 \edef \sc@char
- {\ifcase \u@lb
- r\or \n@xp\a@S \or t\or \or \or \or \or \or
- \fi }%
-\or \advance \u@lb -48 \edef \sc@char
- {\ifcase \u@lb
- w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or
- ''\or \or \or \or
- \fi }%
-\or \advance \u@lb -56 \edef \sc@char
- {\ifcase \u@lb
- \or \or \or \or \or \or \or "|\or
- \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@dviii #1{% segment D8
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {}%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- \or \or \or \or ,\or \or \or \or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {}%
-\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb
- \or \or \or ;\or \or \or \or ?\or \fi }%
-\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
- \or Q|\or QA\or Qa\or Qw\or Qi\or Qy\or A\or \fi }%
-\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
- b\or T\or t\or C\or G\or H\or X\or d\or \fi }%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- F\or r\or z\or s\or x\or S\or D\or V\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
- Z\or P\or R\or \or \or \or \or \or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@dix #1{% segment D9
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
- B\or f\or q\or k\or l\or m\or n\or h\or \fi }%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
- "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or
- "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }%
-\or \advance \u@lb -"18 \edef \sc@char {}%
-\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
- 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }%
-\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
- 8\or 9\or \a@pc\or \f@sila\or
- \f@sila\or *\or \or \or \fi }%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or
-% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }%
-N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
-% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
- N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
- \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@da #1{% segment DA
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
- \n@xp\a@ap\or c\or \n@xp\a@G\or \n@xp\a@ag\or
- \n@xp\a@ah\or \n@xp\a@c\or J\or \n@xp\a@aj\or \fi }%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@d\or \n@xp\a@aA\or \n@xp\a@D\or \n@xp\a@aB\or
- \n@xp\a@ad\or \n@xp\a@af\or \n@xp\a@aC\or \n@xp\a@ae\or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@aD\or \n@xp\a@r\or \n@xp\a@aF\or \n@xp\a@q\or
- \n@xp\a@aG\or \n@xp\a@R\or \n@xp\a@z\or \n@xp\a@aH\or \fi }%
-\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb
- j\or \n@xp\a@ar\or \n@xp\a@s\or \n@xp\a@aJ\or
- \n@xp\a@aK\or \n@xp\a@aL\or \n@xp\a@aM\or \n@xp\a@aO\or \fi }%
-\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@p\or \n@xp\a@f\or \n@xp\a@F\or \n@xp\a@aP\or
- v\or \n@xp\a@V\or \n@xp\a@aq\or \n@xp\a@aQ\or \fi }%
-\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@aR\or \n@xp\a@k\or \n@xp\a@ax\or \n@xp\a@g\or
- \n@xp\a@L\or K\or \n@xp\a@aS\or g\or \fi }%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@J\or \n@xp\a@al\or \n@xp\a@aT\or \n@xp\a@ak\or
- \n@xp\a@M\or \n@xp\a@l\or \n@xp\a@aW\or \n@xp\a@aX\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@aY\or \n@xp\a@aZ\or \n@xp\a@n\or \n@xp\a@an\or
- \n@xp\a@m\or \n@xp\a@am\or h-\or \n@xp\a@aE\or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@db #1{% segment DB
- \u@lb `#1\relax \advance \u@lb -"80
- \u@lq \u@lb \divide \u@lq 8
-\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
- Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or
- \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }%
-\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or
- Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }%
-\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
- \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or
- B\or \n@xp\a@H\or \or \or \fi }%
-\or \advance \u@lb -"18 \edef \sc@char {}%
-\or \advance \u@lb -"20 \edef \sc@char {}%
-\or \advance \u@lb -"28 \edef \sc@char {}%
-\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
- 0\or 1\or 2\or 3\or
- 4\or 5\or 6\or 7\or \fi }%
-\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
- 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or
- \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or
- \n@xp\a@ao"\n@xp\a@Zi\or \or \fi }%
-\fi \utf@next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \utf@alif {% alif at the beginning of a word
-\def \sc@char {a}\sc@put \utf@word }
-
-\def \utf@minus {% hyphen between words
-\def \sc@char {-}\sc@put \utf@beg }
-%\def \sc@char {B}\sc@put \utf@beg }
-
-\def \utf@lquote {% left quote
-\ifa@quote \def \sc@char {'}\global\a@quotefalse
-\else \def \sc@char {`}\global\a@quotetrue
-\fi \sc@put \utf@beg }
-
-\def \utf@rquote {% right quote
-\global\a@quotefalse \def \sc@char {'}\sc@put \utf@word }
-
-\def \utf@par #1\@ \@@ {% new line, push back the rest
-\sc@back \\#1\@ \@@ }
-
-\def \utf@b@cs #1#2{% test word end
-\def \sc@char {#1}\sc@put
-%\ifx #2\@ \def \next {\sc@endscan #2}\else
-\ifx #2\@ \def \next {\utf@end #2}\else
-\ifcat -\nxp #2 \def \next {\utf@word #2}\else
-\def \next {\sc@back #2}\fi \fi \next }
-
-\def \utf@cs #1#2{% control sequence within a word; push back?
-\xpa \ifx #1\closegeresh \def \next {\utf@b@cs {\nxp \lq }#2}\else
-\xpa \ifx #1\closequote \def \next {\utf@b@cs {`}#2}\else
- \def \next {\sc@back #1#2}%
-\fi\fi \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode `\@ = \utfatcode
-
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% utfcode.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% utfcode.sty
+% scanner module for the Arabic and Hebrew segments of UTF-8
+% loaded and called by utf8.sty
+% 07.03.2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = 11
+
+\a@ident {utfcode.sty} {3.10a Arabic+Hebrew segment of UTF-8} {07.03.2002}
+
+\newcount \u@lb \newcount \u@lq
+
+\newif \ifa@quote
+
+\def \utfc@scan #1>{% modified scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1 \fi
+\global\def \a@rest {}\global\a@tokens = {}\def \sc@char {}%
+\utf@beg #1\@ \@ \@ \@@ % transform
+\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+\def \utf@beg #1#2{% start UTF-8 scanner
+\h@mzafalse \iz@fetfalse \novocalize % because of explicit quoting
+ \@ssimfalse
+ \def \next {\utf@word #1#2}%
+\ifnum `#1="D8 \ifnum `#2="27 \def \next {\utf@alif }\fi \else
+%\ifx #1"\def \next {\utf@lquote #2}\else
+\ifx #1/\global \a@tokens ={#1}\def \next {\utf@word #2}\else % x>
+%\fi
+\fi\fi \next }
+
+{\catcode `\^ 7 \catcode `\^^M=13
+\gdef \utf@word #1#2{% transform input into internal notation
+\ifx #1\@ \def \next {\utf@end #2}\else % finished
+\ifx #1-\def \next {\utf@minus #2}\else %
+%ifx #1"\def \next {\utf@rquote #2}\else %
+\ifx #1/\def \next {\sc@back #1#2}\else %
+%\if \nxp ^^M\nxp #1\def \next {\utf@par #2}\else % active character
+\ifnum `#1="D6 \def \next {\utf@dvi #2}\else %
+\ifnum `#1="D7 \def \next {\utf@dvii #2}\else %
+\ifnum `#1="D8 \def \next {\utf@dviii #2}\else %
+\ifnum `#1="D9 \def \next {\utf@dix #2}\else %
+\ifnum `#1="DA \def \next {\utf@da #2}\else %
+\ifnum `#1="DB \def \next {\utf@db #2}\else %
+ \def \next {\utf@asci #1#2}%
+\fi\fi\fi\fi\fi\fi %
+%\fi\fi
+\fi\fi\fi \next }%
+%
+\gdef \utf@word #1{% transform input into internal notation
+\ifx #1\@ \def \next {\utf@end }\else % finished
+\ifx #1-\def \next {\utf@minus }\else %
+\ifx #1/\def \next {\sc@back #1}\else %
+\ifnum `#1="D6 \def \next {\utf@dvi }\else %
+\ifnum `#1="D7 \def \next {\utf@dvii }\else %
+\ifnum `#1="D8 \def \next {\utf@dviii }\else %
+\ifnum `#1="D9 \def \next {\utf@dix }\else %
+\ifnum `#1="DA \def \next {\utf@da }\else %
+\ifnum `#1="DB \def \next {\utf@db }\else %
+ \def \next {\utf@asci #1}%
+\fi\fi\fi\fi\fi\fi %
+\fi\fi\fi \next }%
+} % catcode 13
+
+\def \utf@end #1\@@ {\relax }
+
+\def \utf@next {% save and deposit character
+\sc@put \utf@word }
+
+\def \utf@asci #1{% deposit ASCII item
+\def \sc@char {#1}\utf@next }
+
+{\catcode `\% 12 \gdef \a@pc {%}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dvi #1{% segment D6
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq \u@lb \divide \u@lq 8
+ \edef \sc@char {}%
+\ifcase \u@lq \or \or \or \or \or
+\or \advance \u@lb -48 \edef \sc@char
+ {\ifcase \u@lb
+ "\n@xp\a@e\or "\n@xp\a@I\or "\n@xp\a@A\or "\n@xp\a@O\or
+ "i\or "\n@xp\a@E\or "e\or "a\or
+ \fi }%
+\or \advance \u@lb -56 \edef \sc@char
+ {\ifcase \u@lb
+ "A\or "\n@xp\a@o\or L\or "u\or
+ "\n@xp\a@Zu\or |\or B\or "\n@xp\a@Zo\or
+ \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dvii #1{% segment D7
+ \u@lb `#1\relax \advance \u@lb -128
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char
+ {\ifcase \u@lb
+ K\or "\n@xp\a@Ze\or "\n@xp\a@Za\or :\or "\n@xp\a@Zi\or \or \or \or
+ \fi }%
+\or \advance \u@lb -8 \edef \sc@char {}%
+\or \advance \u@lb -16 \edef \sc@char
+ {\ifcase \u@lb
+ Q\or b\or g\or d\or h\or w\or z\or X\or
+ \fi }%
+\or \advance \u@lb -24 \edef \sc@char
+ {\ifcase \u@lb
+ C\or y\or k\or k\or l\or m\or m\or n\or
+ \fi }%
+\or \advance \u@lb -32 \edef \sc@char
+ {\ifcase \u@lb
+ n\or s\or P\or p\or p\or S\or S\or q\or
+ \fi }%
+\or \advance \u@lb -40 \edef \sc@char
+ {\ifcase \u@lb
+ r\or \n@xp\a@S \or t\or \or \or \or \or \or
+ \fi }%
+\or \advance \u@lb -48 \edef \sc@char
+ {\ifcase \u@lb
+ w\n@xp\a@U w\or wy\or y\n@xp\a@U y\or '\or
+ ''\or \or \or \or
+ \fi }%
+\or \advance \u@lb -56 \edef \sc@char
+ {\ifcase \u@lb
+ \or \or \or \or \or \or \or "|\or
+ \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dviii #1{% segment D8
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {}%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ \or \or \or \or ,\or \or \or \or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {}%
+\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb
+ \or \or \or ;\or \or \or \or ?\or \fi }%
+\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
+ \or Q|\or QA\or Qa\or Qw\or Qi\or Qy\or A\or \fi }%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ b\or T\or t\or C\or G\or H\or X\or d\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ F\or r\or z\or s\or x\or S\or D\or V\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+ Z\or P\or R\or \or \or \or \or \or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@dix #1{% segment D9
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ B\or f\or q\or k\or l\or m\or n\or h\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ w\or Y\or y\or "aN\or "uN\or "iN\or "a\or "u\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ "i\or "\n@xp\a@Ze\or ""\or "\n@xp\a@ZE\or
+ "\n@xp\a@Za\or "\n@xp\a@Zu\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \a@pc\or \f@sila\or
+ \f@sila\or *\or \or \or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ "\n@xp\a@a\or "\or "\n@xp\a@ZA\or "\n@xp\a@ZU\or
+% N"\n@xp\a@Za\or Qa\or Qw\or Qw"u\or \fi }%
+N"\n@xp\a@Za\or N"\n@xp\a@Za A\or N"\n@xp\a@Za w\or N"\n@xp\a@Za w"u\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+% Qy\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ N"\n@xp\a@Za Y\or \n@xp\a@t\or \n@xp\a@T\or \n@xp\a@ab\or
+ \n@xp\a@v\or \n@xp\a@at\or p\or \n@xp\a@ac\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@da #1{% segment DA
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@ap\or c\or \n@xp\a@G\or \n@xp\a@ag\or
+ \n@xp\a@ah\or \n@xp\a@c\or J\or \n@xp\a@aj\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@d\or \n@xp\a@aA\or \n@xp\a@D\or \n@xp\a@aB\or
+ \n@xp\a@ad\or \n@xp\a@af\or \n@xp\a@aC\or \n@xp\a@ae\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aD\or \n@xp\a@r\or \n@xp\a@aF\or \n@xp\a@q\or
+ \n@xp\a@aG\or \n@xp\a@R\or \n@xp\a@z\or \n@xp\a@aH\or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {\ifcase \u@lb
+ j\or \n@xp\a@ar\or \n@xp\a@s\or \n@xp\a@aJ\or
+ \n@xp\a@aK\or \n@xp\a@aL\or \n@xp\a@aM\or \n@xp\a@aO\or \fi }%
+\or \advance \u@lb -"20 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@p\or \n@xp\a@f\or \n@xp\a@F\or \n@xp\a@aP\or
+ v\or \n@xp\a@V\or \n@xp\a@aq\or \n@xp\a@aQ\or \fi }%
+\or \advance \u@lb -"28 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aR\or \n@xp\a@k\or \n@xp\a@ax\or \n@xp\a@g\or
+ \n@xp\a@L\or K\or \n@xp\a@aS\or g\or \fi }%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@J\or \n@xp\a@al\or \n@xp\a@aT\or \n@xp\a@ak\or
+ \n@xp\a@M\or \n@xp\a@l\or \n@xp\a@aW\or \n@xp\a@aX\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aY\or \n@xp\a@aZ\or \n@xp\a@n\or \n@xp\a@an\or
+ \n@xp\a@m\or \n@xp\a@am\or h-\or \n@xp\a@aE\or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@db #1{% segment DB
+ \u@lb `#1\relax \advance \u@lb -"80
+ \u@lq \u@lb \divide \u@lq 8
+\ifcase \u@lq \edef \sc@char {\ifcase \u@lb
+ Qh\or \n@xp\a@h\or \n@xp\a@B\or \n@xp\a@j\or
+ \n@xp\a@aU\or \n@xp\a@aV\or \n@xp\a@W\or \n@xp\a@w\or \fi }%
+\or \advance \u@lb -8 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@aw\or \n@xp\a@au\or \n@xp\a@av\or \n@xp\a@X\or
+ Y\or L\or \n@xp\a@az\or \n@xp\a@x\or \fi }%
+\or \advance \u@lb -"10 \edef \sc@char {\ifcase \u@lb
+ \n@xp\a@Y\or \n@xp\a@y\or E\or \n@xp\a@ay\or
+ B\or \n@xp\a@H\or \or \or \fi }%
+\or \advance \u@lb -"18 \edef \sc@char {}%
+\or \advance \u@lb -"20 \edef \sc@char {}%
+\or \advance \u@lb -"28 \edef \sc@char {}%
+\or \advance \u@lb -"30 \edef \sc@char {\ifcase \u@lb
+ 0\or 1\or 2\or 3\or
+ 4\or 5\or 6\or 7\or \fi }%
+\or \advance \u@lb -"38 \edef \sc@char {\ifcase \u@lb
+ 8\or 9\or \n@xp\a@aI\or \n@xp\a@aN\or
+ \n@xp\a@P\or \n@xp\a@ai"\n@xp\a@Zi\or
+ \n@xp\a@ao"\n@xp\a@Zi\or \or \fi }%
+\fi \utf@next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \utf@alif {% alif at the beginning of a word
+\def \sc@char {a}\sc@put \utf@word }
+
+\def \utf@minus {% hyphen between words
+\def \sc@char {-}\sc@put \utf@beg }
+%\def \sc@char {B}\sc@put \utf@beg }
+
+\def \utf@lquote {% left quote
+\ifa@quote \def \sc@char {'}\global\a@quotefalse
+\else \def \sc@char {`}\global\a@quotetrue
+\fi \sc@put \utf@beg }
+
+\def \utf@rquote {% right quote
+\global\a@quotefalse \def \sc@char {'}\sc@put \utf@word }
+
+\def \utf@par #1\@ \@@ {% new line, push back the rest
+\sc@back \\#1\@ \@@ }
+
+\def \utf@b@cs #1#2{% test word end
+\def \sc@char {#1}\sc@put
+%\ifx #2\@ \def \next {\sc@endscan #2}\else
+\ifx #2\@ \def \next {\utf@end #2}\else
+\ifcat -\nxp #2 \def \next {\utf@word #2}\else
+\def \next {\sc@back #2}\fi \fi \next }
+
+\def \utf@cs #1#2{% control sequence within a word; push back?
+\xpa \ifx #1\closegeresh \def \next {\utf@b@cs {\nxp \lq }#2}\else
+\xpa \ifx #1\closequote \def \next {\utf@b@cs {`}#2}\else
+ \def \next {\sc@back #1#2}%
+\fi\fi \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode `\@ = \utfatcode
+
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/verses.sty b/language/arabic/arabtex/texinput/verses.sty
index 5845f76002..0849864662 100644
--- a/language/arabic/arabtex/texinput/verses.sty
+++ b/language/arabic/arabtex/texinput/verses.sty
@@ -1,106 +1,106 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% verses.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% verses.sty
-% utility for ArabTeX
-% macros for typesetting Arabic verses in two columns
-% usage: load as a package, or after loading ArabTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-% 08.02.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Usage:
-% (use within an Arabic environment)
-%
-% \setversedim #1#2 % define the layout (within a group):
-% #1 = length of both half-verses
-% #2 = separation distance = length of a connection, if present
-% Variant:
-% \setversedim #1[#2]#3 % for half-verses of unequal length
-% #1 = length of first (=right) half-verse
-% #2 = length of second (=left) half-verse
-% #3 = separation distance = length of a connection, if present
-%
-% \halfverses #1#2 % typeset two separated half-verses
-% #1 = text of first (=right) half-verse
-% #2 = text of second (=left) half-verse
-% Variant:
-% \halfverses #1[#2]#3 % typeset two connected half-verses
-% #1 = text of first (=right) half-verse
-% #2 = text of connection
-% #3 = text of second (=left) half-verse
-%
-% Alternative (if preferred):
-%
-% \connverses #1#2#3 % = \halfverses #1[#2]#3
-%
-% Note: use keshide to attach the connection, if required
-% Note: if the verses do not fit on the line, they will be put on
-% two lines, flush to the margins.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \verseatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \verseatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {verses.sty} {3.12 verses in two columns} {08.02.2006}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% define the layout, verses will be centered
-
-\newdimen \a@hvlen \newdimen \a@hvsep
-\newdimen \a@hvind \newdimen \a@@hvlen
-
-\def \setversedim #1#2{% set lengths of half-verse, [separation]
-\ifx \LaTeX \undefined \a@hvind \hsize
-\else \a@hvind \textwidth \fi
-\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
-\ifx [#2\def \next {\set@verseI [}\else
-\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
-
-\def \set@verseI [#1]{% optional parameter
-\a@@hvlen #1\relax \set@@verse }
-
-\def \set@@verse #1{% separation
-\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
-\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \connverses #1#2#3{% first half-verse, connection, second half-verse
-\cond{\ifdim 0pt > \a@hvind }%
-{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
-{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
-\spreadbox \a@hvsep {#2}% separator
-\spreadbox \a@@hvlen {#3}% second block
-\tracingmacros 0
-\par }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% macro for two half verses
-\def \halfverses #1#2{% normal case
-\connverses {#1}{\hfill}{#2}}
-
-\def \a@c@halfverses #1#2{% optional parameter?
-%\tracingmacros 1
-\cond{\ifx [#2}{\half@verses {#1}[}%
-{\half@verses {#1}[\hfill]{#2}}\fi }
-
-\def \half@verses #1[#2]#3{% first[mid]second
-\test@token \connverses {#1}{#2}{#3}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% define a default layout
-% do this within a group!
-
-%\setversedim {2.0in}{0.3in}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% make macros known to ArabTeX
-\allowarab \connverses \all@wtw@ \setversedim
-
-\catcode `\@ = \verseatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% verses.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+% utility for ArabTeX
+% macros for typesetting Arabic verses in two columns
+% usage: load as a package, or after loading ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+% 08.02.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Usage:
+% (use within an Arabic environment)
+%
+% \setversedim #1#2 % define the layout (within a group):
+% #1 = length of both half-verses
+% #2 = separation distance = length of a connection, if present
+% Variant:
+% \setversedim #1[#2]#3 % for half-verses of unequal length
+% #1 = length of first (=right) half-verse
+% #2 = length of second (=left) half-verse
+% #3 = separation distance = length of a connection, if present
+%
+% \halfverses #1#2 % typeset two separated half-verses
+% #1 = text of first (=right) half-verse
+% #2 = text of second (=left) half-verse
+% Variant:
+% \halfverses #1[#2]#3 % typeset two connected half-verses
+% #1 = text of first (=right) half-verse
+% #2 = text of connection
+% #3 = text of second (=left) half-verse
+%
+% Alternative (if preferred):
+%
+% \connverses #1#2#3 % = \halfverses #1[#2]#3
+%
+% Note: use keshide to attach the connection, if required
+% Note: if the verses do not fit on the line, they will be put on
+% two lines, flush to the margins.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \verseatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \verseatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {verses.sty} {3.12 verses in two columns} {08.02.2006}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% define the layout, verses will be centered
+
+\newdimen \a@hvlen \newdimen \a@hvsep
+\newdimen \a@hvind \newdimen \a@@hvlen
+
+\def \setversedim #1#2{% set lengths of half-verse, [separation]
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
+\ifx [#2\def \next {\set@verseI [}\else
+\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
+
+\def \set@verseI [#1]{% optional parameter
+\a@@hvlen #1\relax \set@@verse }
+
+\def \set@@verse #1{% separation
+\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
+\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
+{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@@hvlen {#3}% second block
+\tracingmacros 0
+\par }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% macro for two half verses
+\def \halfverses #1#2{% normal case
+\connverses {#1}{\hfill}{#2}}
+
+\def \a@c@halfverses #1#2{% optional parameter?
+%\tracingmacros 1
+\cond{\ifx [#2}{\half@verses {#1}[}%
+{\half@verses {#1}[\hfill]{#2}}\fi }
+
+\def \half@verses #1[#2]#3{% first[mid]second
+\test@token \connverses {#1}{#2}{#3}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% define a default layout
+% do this within a group!
+
+%\setversedim {2.0in}{0.3in}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% make macros known to ArabTeX
+\allowarab \connverses \all@wtw@ \setversedim
+
+\catcode `\@ = \verseatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/witbhs.sty b/language/arabic/arabtex/texinput/witbhs.sty
index ced1700841..9807b25565 100644
--- a/language/arabic/arabtex/texinput/witbhs.sty
+++ b/language/arabic/arabtex/texinput/witbhs.sty
@@ -1,209 +1,209 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% witbhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% witbhs.sty
-% Scanner for a variant of the encoding used in the machine-readable
-% Biblia Hebraica Stuttgartensia
-% to install it, include it as a LaTeX package or style option "witbhs"
-% with Plain TeX, say "\input witbhs.sty"
-% to activate it, say "\setcode {witbhs}
-% 14.09.2001
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% about the encoding contact: arian@th.vu.nl
-% Dr Arian J.C.Verheij
-% NWO / VU, Dpt. Biblical Studies & CS
-% De Boelelaan 1105, kr. 14A-38
-% NL 1081 HV Amsterdam
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \bhsatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {witbhs.sty} {3.10 read WITBHS Hebrew encoding} {14.09.2001}
-
-\UsePackage {bhslabel} % process BHS labels
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for WITBHS Hebrew coding
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\catcode `\"=12 \catcode `\>=11 \catcode `\&=12
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setwitbhs@codes {% activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@A {a} \def \sc@B {b} \def \sc@C {x} \def \sc@D {d}
-\def \sc@E {e} \def\sc@F{\n@xp\a@s} \def\sc@G{g} \def \sc@H {h}
-\def \sc@I {i} \def \sc@J {y} \def \sc@K {k} \def \sc@L {l}
-\def \sc@M {m} \def \sc@N {n} \def\sc@O{\n@xp\a@o}\def \sc@P {p}
-\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
-\def \sc@U {u} \def \sc@V {C} \def \sc@W {w} \def \sc@X {X}
-\def \sc@Y {S} \def \sc@Z {z} \def \sc@@ {A}
-\a@digits = {0123456789} \a@paren = {[]}
-\a@first = {>+<##&$":.,*0123456789}
-\globaldefs=0 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for WITBHS
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-{\arab@codes \catcode `\> 11
-
-\gdef \witbhs@beg #1#2{% start WITBHS scanner
-\@ssimfalse \def \next {\witbhs@word #1#2}%
-\ifx #1\@\def \next {\sc@endscan #2}\else % finished
-\ifx #2\@\def \next {\witbhs@testpara #1#2}\else
-\ifx #2?\def \next {\witbhs@testpara #1#2}\else
-\fi\fi\fi \next }
-
-\gdef \witbhs@word #1#2{% transform input into internal notation
-\case #1\of
-{ \@{\sc@endscan #2}
- ]{\witbhs@word }
- /{\witbhs@word #2}
- 0{\witbhs@zero #2}
- 7{\witbhs@seven #2}
- 12345689{\witbhs@word }
- ?{\witbhs@query #2}
- :{\witbhs@colon #2}
-% O{\witbhs@O #2}
- W{\witbhs@W #2}
- *{\witbhs@star #2}
-% #2{\witbhs@word #1|#2}
-\default {\witbhs@rest #1#2}
-}\endcase }
-
-\gdef \witbhs@rest #1#2{% transform input into internal notation
- \def \next {\sc@put \witbhs@word #2}%
-\case #1\of
-{ .{\def \sc@char {\nxp \a@Zu }}
- |{\def \sc@char {\nxp \a@U }}
- '{\def \sc@char {'}}
- >{\def \sc@char {Q}}
- +{\def \sc@char {N}} % phantom carrier
- ${\def \sc@char {M}} % phantom carrier
- ={\def \sc@char {-}} % medial form at end
- <{\def \sc@char {P}}
- &{\def \sc@char {\nxp \a@s }}
- ;{\def \sc@char {\nxp \a@E }}
- -{\def \sc@char {B}}
-\default {\ifcat \nxp #1\relax \def \next {\sc@back #1{#2}}\else
- \if \nxp #1\a@hash \def \sc@char {\nxp \a@S }\else
- \ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
- \fi\fi\fi }
-}\endcase \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \witbhs@star {% qere / qetiv
-\def \sc@char {*}\sc@put \witbhs@word }
-
-\gdef \witbhs@colon #1{% shwa or chatef
-\def \next {\witbhs@word }%
-\ifx #1A\def \sc@char {\nxp \a@A }\else
-\ifx #1@\def \sc@char {\nxp \a@O }\else
-\ifx #1E\def \sc@char {\nxp \a@I }\else
-\def \sc@char {\nxp \a@e }\def \next {\witbhs@word #1}%
-\fi\fi\fi \sc@put \next }
-
-\iffalse
-\gdef \witbhs@O {% cholem or cholem waw
-\def \sc@char {\nxp \a@o }\sc@put \witbhs@word }
-\fi
-
-\gdef \witbhs@W #1{% waw or shureq
-\def \sc@char {w}\def \next {\witbhs@word #1}%
-\ifx #1.\def \sc@char {U}\def \next {\witbhs@word }%
-\fi \sc@put \next }
-
-\gdef \witbhs@seven #1{% meteg
-\def \next {\witbhs@word }%
-\ifx #15\def \sc@char {|}\sc@put \else
-\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}%
-\fi\fi \next }
-
-\gdef \witbhs@zero #1{% sop pasuq and pasuq
-\def \next {\witbhs@word }%
-\ifx #10\def \sc@char {:}\sc@put \else
-%\ifx #15\def \sc@char {K}\sc@put \else
-\ifx #15\def \next {\witbhs@pasuq }\else
-\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}%
-\fi\fi\fi \next }
-
-}% \arab@codes
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \witbhs@testpara #1#2{% single initial P ?
-\ifx #1P\def \next {\witbhs@para #1#2}%
-\else \def \next {\witbhs@word #1#2}%
-\fi \next }
-
-\def \a@c@witbhspara {% small paragraph mark
-\putwordb@x {\small \heb@font \heb@testfont
-\act@cd '164 \advance \act@cd \heb@dsp
-\space \char \act@cd \space }\test@token }
-
-\def \a@c@pasuq {% verse division
-\putwordb@x {\small $\!|\!$}\test@token }
-
-\def \witbhs@para P#1\@ \@@ {% prepare paragraph mark
-\sc@back \witbhspara #1\@ \@@ }
-
-\def \witbhs@pasuq #1\@ \@@ {% prepare verse division
-\sc@back \pasuq #1\@ \@@ }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \witbhs@query #1\@ \@@ {% new line, push back the rest
-\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line
-\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line
- \sc@back #1\@ \@@ % start next word
-\fi\fi }
-
-\newcount \bhsmode \bhsmode 0
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \set@witbhs {% substitute the BHS scanner
-\let \sc@beg \witbhs@beg \let \sc@word \witbhs@word
-\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
-\let \a@scan \a@@scan \setwitbhs@codes
-\let \arab@codes \wit@arab@codes
-\let \unarab@codes \wit@unarab@codes
-\a@message {input encoding set to WITBHS conventions}}
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding
-witbhs\set@witbhs }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \wit@arab@codes {% save and set special characters
-\csname originalTeX\endcsname
-\chardef \spc@de = \catcode`\ \catcode`\ = 10
-\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
-\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
-\chardef \gtc@de = \catcode`\> \catcode`\> = 11
-\chardef \atc@de = \catcode`\@ \catcode`\@ = 11
-\chardef \hsc@de = \catcode`\# \catcode`\# = \@other
-\chardef \amc@de = \catcode`\& \catcode`\& = \@other
-\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
-
-\def \wit@unarab@codes {% reset catcodes
-\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
-\catcode`\# = \hsc@de \catcode`\> = \gtc@de \catcode`\@ = \atc@de
-\catcode`\& = \amc@de
-\charsubdefmax \arab@charsubdefmax }
-
-{\catcode`\# = \@other \gdef \a@hash {#}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for WITBHS encoding installed.}
-
-\catcode `\@ = \bhsatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% witbhs.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% witbhs.sty
+% Scanner for a variant of the encoding used in the machine-readable
+% Biblia Hebraica Stuttgartensia
+% to install it, include it as a LaTeX package or style option "witbhs"
+% with Plain TeX, say "\input witbhs.sty"
+% to activate it, say "\setcode {witbhs}
+% 14.09.2001
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% about the encoding contact: arian@th.vu.nl
+% Dr Arian J.C.Verheij
+% NWO / VU, Dpt. Biblical Studies & CS
+% De Boelelaan 1105, kr. 14A-38
+% NL 1081 HV Amsterdam
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \bhsatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \bhsatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {witbhs.sty} {3.10 read WITBHS Hebrew encoding} {14.09.2001}
+
+\UsePackage {bhslabel} % process BHS labels
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for WITBHS Hebrew coding
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\catcode `\"=12 \catcode `\>=11 \catcode `\&=12
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setwitbhs@codes {% activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@A {a} \def \sc@B {b} \def \sc@C {x} \def \sc@D {d}
+\def \sc@E {e} \def\sc@F{\n@xp\a@s} \def\sc@G{g} \def \sc@H {h}
+\def \sc@I {i} \def \sc@J {y} \def \sc@K {k} \def \sc@L {l}
+\def \sc@M {m} \def \sc@N {n} \def\sc@O{\n@xp\a@o}\def \sc@P {p}
+\def \sc@Q {q} \def \sc@R {r} \def \sc@S {s} \def \sc@T {t}
+\def \sc@U {u} \def \sc@V {C} \def \sc@W {w} \def \sc@X {X}
+\def \sc@Y {S} \def \sc@Z {z} \def \sc@@ {A}
+\a@digits = {0123456789} \a@paren = {[]}
+\a@first = {>+<##&$":.,*0123456789}
+\globaldefs=0 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for WITBHS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\arab@codes \catcode `\> 11
+
+\gdef \witbhs@beg #1#2{% start WITBHS scanner
+\@ssimfalse \def \next {\witbhs@word #1#2}%
+\ifx #1\@\def \next {\sc@endscan #2}\else % finished
+\ifx #2\@\def \next {\witbhs@testpara #1#2}\else
+\ifx #2?\def \next {\witbhs@testpara #1#2}\else
+\fi\fi\fi \next }
+
+\gdef \witbhs@word #1#2{% transform input into internal notation
+\case #1\of
+{ \@{\sc@endscan #2}
+ ]{\witbhs@word }
+ /{\witbhs@word #2}
+ 0{\witbhs@zero #2}
+ 7{\witbhs@seven #2}
+ 12345689{\witbhs@word }
+ ?{\witbhs@query #2}
+ :{\witbhs@colon #2}
+% O{\witbhs@O #2}
+ W{\witbhs@W #2}
+ *{\witbhs@star #2}
+% #2{\witbhs@word #1|#2}
+\default {\witbhs@rest #1#2}
+}\endcase }
+
+\gdef \witbhs@rest #1#2{% transform input into internal notation
+ \def \next {\sc@put \witbhs@word #2}%
+\case #1\of
+{ .{\def \sc@char {\nxp \a@Zu }}
+ |{\def \sc@char {\nxp \a@U }}
+ '{\def \sc@char {'}}
+ >{\def \sc@char {Q}}
+ +{\def \sc@char {N}} % phantom carrier
+ ${\def \sc@char {M}} % phantom carrier
+ ={\def \sc@char {-}} % medial form at end
+ <{\def \sc@char {P}}
+ &{\def \sc@char {\nxp \a@s }}
+ ;{\def \sc@char {\nxp \a@E }}
+ -{\def \sc@char {B}}
+\default {\ifcat \nxp #1\relax \def \next {\sc@back #1{#2}}\else
+ \if \nxp #1\a@hash \def \sc@char {\nxp \a@S }\else
+ \ifcat \nxp #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \fi\fi\fi }
+}\endcase \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \witbhs@star {% qere / qetiv
+\def \sc@char {*}\sc@put \witbhs@word }
+
+\gdef \witbhs@colon #1{% shwa or chatef
+\def \next {\witbhs@word }%
+\ifx #1A\def \sc@char {\nxp \a@A }\else
+\ifx #1@\def \sc@char {\nxp \a@O }\else
+\ifx #1E\def \sc@char {\nxp \a@I }\else
+\def \sc@char {\nxp \a@e }\def \next {\witbhs@word #1}%
+\fi\fi\fi \sc@put \next }
+
+\iffalse
+\gdef \witbhs@O {% cholem or cholem waw
+\def \sc@char {\nxp \a@o }\sc@put \witbhs@word }
+\fi
+
+\gdef \witbhs@W #1{% waw or shureq
+\def \sc@char {w}\def \next {\witbhs@word #1}%
+\ifx #1.\def \sc@char {U}\def \next {\witbhs@word }%
+\fi \sc@put \next }
+
+\gdef \witbhs@seven #1{% meteg
+\def \next {\witbhs@word }%
+\ifx #15\def \sc@char {|}\sc@put \else
+\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}%
+\fi\fi \next }
+
+\gdef \witbhs@zero #1{% sop pasuq and pasuq
+\def \next {\witbhs@word }%
+\ifx #10\def \sc@char {:}\sc@put \else
+%\ifx #15\def \sc@char {K}\sc@put \else
+\ifx #15\def \next {\witbhs@pasuq }\else
+\if\is@in@set #1\a@digits \else \def \next {\witbhs@word #1}%
+\fi\fi\fi \next }
+
+}% \arab@codes
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \witbhs@testpara #1#2{% single initial P ?
+\ifx #1P\def \next {\witbhs@para #1#2}%
+\else \def \next {\witbhs@word #1#2}%
+\fi \next }
+
+\def \a@c@witbhspara {% small paragraph mark
+\putwordb@x {\small \heb@font \heb@testfont
+\act@cd '164 \advance \act@cd \heb@dsp
+\space \char \act@cd \space }\test@token }
+
+\def \a@c@pasuq {% verse division
+\putwordb@x {\small $\!|\!$}\test@token }
+
+\def \witbhs@para P#1\@ \@@ {% prepare paragraph mark
+\sc@back \witbhspara #1\@ \@@ }
+
+\def \witbhs@pasuq #1\@ \@@ {% prepare verse division
+\sc@back \pasuq #1\@ \@@ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \witbhs@query #1\@ \@@ {% new line, push back the rest
+\ifnum \bhsmode = 1 \sc@back \\#1\@ \@@ \else % finish line
+\ifnum \bhsmode = 2 \sc@back \|#1\@ \@@ \else % stretch line
+ \sc@back #1\@ \@@ % start next word
+\fi\fi }
+
+\newcount \bhsmode \bhsmode 0
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \set@witbhs {% substitute the BHS scanner
+\let \sc@beg \witbhs@beg \let \sc@word \witbhs@word
+\let \sc@back \sc@@back \let \sc@endscan \sc@@endscan
+\let \a@scan \a@@scan \setwitbhs@codes
+\let \arab@codes \wit@arab@codes
+\let \unarab@codes \wit@unarab@codes
+\a@message {input encoding set to WITBHS conventions}}
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the BHS encoding
+witbhs\set@witbhs }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \wit@arab@codes {% save and set special characters
+\csname originalTeX\endcsname
+\chardef \spc@de = \catcode`\ \catcode`\ = 10
+\chardef \dqc@de = \catcode`\" \catcode`\" = \@other
+\chardef \lsc@de = \catcode`\< \catcode`\< = \@other
+\chardef \gtc@de = \catcode`\> \catcode`\> = 11
+\chardef \atc@de = \catcode`\@ \catcode`\@ = 11
+\chardef \hsc@de = \catcode`\# \catcode`\# = \@other
+\chardef \amc@de = \catcode`\& \catcode`\& = \@other
+\arab@charsubdefmax \charsubdefmax \charsubdefmax \m@ne }
+
+\def \wit@unarab@codes {% reset catcodes
+\catcode`\ = \spc@de \catcode`\< = \lsc@de \catcode`\" = \dqc@de
+\catcode`\# = \hsc@de \catcode`\> = \gtc@de \catcode`\@ = \atc@de
+\catcode`\& = \amc@de
+\charsubdefmax \arab@charsubdefmax }
+
+{\catcode`\# = \@other \gdef \a@hash {#}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for WITBHS encoding installed.}
+
+\catcode `\@ = \bhsatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/texinput/xarbskel.sty b/language/arabic/arabtex/texinput/xarbskel.sty
index 522c8120bc..26a7ca535a 100644
--- a/language/arabic/arabtex/texinput/xarbskel.sty
+++ b/language/arabic/arabtex/texinput/xarbskel.sty
@@ -1,126 +1,126 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% xarbskel.sty
-% ArabTeX
-% character skeleton definitions for font xnsh14
-% called in HMODE
-% extends arabskel.sty
-% Version 17.07.1999
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11
-\a@ident {xarbskel.sty}{3.09 character skeleton definitions }{17.07.1999}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Arabic
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-\gdef \setx@skels {% define \ArabTeX character skeletons for font xnsh
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% pattern: class, code, connect, {iso, fin, med, ini}
-\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal
-\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default
-
-% basic letters
-\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif
-\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{0,0}}} % `ain
-\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot
-\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop
-\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal
-\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop
-\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % fah, no dot
-\gdef \sk@g { 5 ,\a@gaf ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf
-\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf, loop
-\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, bar
-\gdef \sk@g@ps{ 5,\a@gaf@p@s,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, loop, bar
-\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah
-\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta
-\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
-\gdef \sk@h@u {10,\a@hah@urd,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
-\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah
-\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf
-\gdef \sk@k { 5 ,\a@kaf ,1 ,{{6,-1}{6,-1}{6,-2}{6,-3}}} % kaf
-\gdef \sk@k@p { 5 ,\a@kaf@p ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop
-\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf, no mark
-\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{6,-3}{6,-2}}} % kaf, no mark
-\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf
-\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah
-\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam
-\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam
-\gdef \sk@m {10 ,\a@mim ,1 ,{{0,1}{0,0}{0,0}{0,0}}} % mim
-\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot
-\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop
-\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf
-\gdef \sk@q@s { 6 ,\a@qaf@s ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % qaf without dots
-\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah
-\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop
-\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots
-\gdef \sk@s { 2 ,\a@sin ,1 ,{{0,6}{0,4}{0,1}{0,3}}} % sin
-\gdef \sk@ss { 2 ,\a@sad ,1 ,{{0,4}{0,4}{0,1}{0,2}}} % ssad
-\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{0,2}{0,2}{0,1}{0,1}}} % ttah
-\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw
-\gdef \sk@w@r {10 ,\a@waw@r ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with ring
-\gdef \sk@w@b {10 ,\a@waw@b ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with bar
-\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah
-\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke
-\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari
-\gdef \sk@y@ps{ 9,\a@yah@p@s,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari with loop
-
-% special forms
-\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{0,6}{0,4}{0,-2}{0,-1}}} % sin short
-\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{0,4}{0,4}{0,-3}{0,-2}}} % ssad short
-\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed
-\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % kaf, short
-\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{6,0}{6,0}{6,0}{6,-3}}} % kaf, short
-\gdef \sk@k@sp { 5 ,\a@kaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf1 short
-\gdef \sk@g@sh { 5 ,\a@gaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short
-\gdef \sk@g@sp { 5 ,\a@gaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf2 short
-\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig
-\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig
-\gdef \sk@hh@s { 3 ,\a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short
-\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short
-\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif
-\gdef \sk@m@si {10 ,\a@mim@sind ,1 ,{{0,2}{0,0}{0,0}{0,0}}} % Sindhi mim
-
-% specials
-\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil
-\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
-\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
-\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
-\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
-
-% ligatures
-\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-?
-\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-?
-\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-?
-\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-?
-\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-?
-\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-?
-\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-?
-\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-?
-\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-|
-\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-|
-\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-|
-\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-?
-\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-|
-\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-|
-\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l
-\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-|
-\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % ?-m-l
-\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-|
-\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l
-\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space
-
-\global\let \sk@free \sk@W % phantom for outtable
-
-\global\let \sk@b@s \sk@b
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}}% end of dynamic definitions for Arabic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\catcode`\@ = \sklatcode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xarbskel.sty
+% ArabTeX
+% character skeleton definitions for font xnsh14
+% called in HMODE
+% extends arabskel.sty
+% Version 17.07.1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11
+\a@ident {xarbskel.sty}{3.09 character skeleton definitions }{17.07.1999}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Arabic
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+\gdef \setx@skels {% define \ArabTeX character skeletons for font xnsh
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% pattern: class, code, connect, {iso, fin, med, ini}
+\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal
+\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default
+
+% basic letters
+\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif
+\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{0,0}}} % `ain
+\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot
+\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop
+\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal
+\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop
+\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % fah, no dot
+\gdef \sk@g { 5 ,\a@gaf ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf
+\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,2}{0,4}{0,0}{0,0}}} % gaf, loop
+\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, bar
+\gdef \sk@g@ps{ 5,\a@gaf@p@s,1 ,{{0,2}{0,3}{0,0}{0,0}}} % gaf, loop, bar
+\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah
+\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta
+\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
+\gdef \sk@h@u {10,\a@hah@urd,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah
+\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah
+\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf
+\gdef \sk@k { 5 ,\a@kaf ,1 ,{{6,-1}{6,-1}{6,-2}{6,-3}}} % kaf
+\gdef \sk@k@p { 5 ,\a@kaf@p ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop
+\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{0,0}{0,-1}}} % kaf, no mark
+\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,3}{6,-3}{6,-2}}} % kaf, no mark
+\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf
+\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah
+\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam
+\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam
+\gdef \sk@m {10 ,\a@mim ,1 ,{{0,1}{0,0}{0,0}{0,0}}} % mim
+\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot
+\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop
+\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf
+\gdef \sk@q@s { 6 ,\a@qaf@s ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % qaf without dots
+\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah
+\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop
+\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots
+\gdef \sk@s { 2 ,\a@sin ,1 ,{{0,6}{0,4}{0,1}{0,3}}} % sin
+\gdef \sk@ss { 2 ,\a@sad ,1 ,{{0,4}{0,4}{0,1}{0,2}}} % ssad
+\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{0,2}{0,2}{0,1}{0,1}}} % ttah
+\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw
+\gdef \sk@w@r {10 ,\a@waw@r ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with ring
+\gdef \sk@w@b {10 ,\a@waw@b ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw with bar
+\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah
+\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke
+\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari
+\gdef \sk@y@ps{ 9,\a@yah@p@s,1 ,{{0,1}{0,2}{0,0}{0,0}}} % yah bari with loop
+
+% special forms
+\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{0,6}{0,4}{0,-2}{0,-1}}} % sin short
+\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{0,4}{0,4}{0,-3}{0,-2}}} % ssad short
+\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed
+\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % kaf, short
+\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{6,0}{6,0}{6,0}{6,-3}}} % kaf, short
+\gdef \sk@k@sp { 5 ,\a@kaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf1 short
+\gdef \sk@g@sh { 5 ,\a@gaf@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short
+\gdef \sk@g@sp { 5 ,\a@gaf@p@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf2 short
+\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig
+\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig
+\gdef \sk@hh@s { 3 ,\a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short
+\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short
+\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif
+\gdef \sk@m@si {10 ,\a@mim@sind ,1 ,{{0,2}{0,0}{0,0}{0,0}}} % Sindhi mim
+
+% specials
+\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil
+\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char
+\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34
+\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36
+\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37
+
+% ligatures
+\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-?
+\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-?
+\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-?
+\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-?
+\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-?
+\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-?
+\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-?
+\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-?
+\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-|
+\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-|
+\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-|
+\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-?
+\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-|
+\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-|
+\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l
+\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-|
+\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % ?-m-l
+\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-|
+\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l
+\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space
+
+\global\let \sk@free \sk@W % phantom for outtable
+
+\global\let \sk@b@s \sk@b
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}}% end of dynamic definitions for Arabic
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@ = \sklatcode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/language/arabic/arabtex/texinput/xarbsymb.sty b/language/arabic/arabtex/texinput/xarbsymb.sty
index 6c283aaed6..d86d136b04 100644
--- a/language/arabic/arabtex/texinput/xarbsymb.sty
+++ b/language/arabic/arabtex/texinput/xarbsymb.sty
@@ -1,213 +1,213 @@
-%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%%
-% 15.7.1998 16:19:14
-% code assignments for arabic font in ArabTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-% 15.07.98
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.1998}
-
-\chardef \a@nashcode = '1 % file has been read
-
-%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
-
-\chardef \a@f@iso = '0 % isolated
-\chardef \a@f@end = '1 % final
-\chardef \a@f@mid = '2 % medial
-\chardef \a@f@beg = '3 % initial
-
-%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
-
-\chardef \a@ttah@dia = '010 % for urdu
-\chardef \a@one@dot@up = '011 %
-\chardef \a@two@dots@down = '012 %
-\chardef \a@fatha = '013 %
-\chardef \a@kasra = '013 %
-\chardef \a@damma = '014 %
-\chardef \a@hamza = '015 %
-\chardef \a@madda = '016 %
-\chardef \a@shadda = '017 %
-\chardef \a@two@dots@up = '020 %
-\chardef \a@three@dots@up = '021 %
-\chardef \a@three@dots@down = '022 %
-\chardef \a@fathatan = '023 %
-\chardef \a@kasratan = '023 %
-\chardef \a@dammatan = '024 %
-\chardef \a@sukun = '025 %
-\chardef \a@wasla = '026 %
-\chardef \a@quran@alif = '027 %
-\chardef \a@bow@dia = '030 % for kurdish
-\chardef \a@e@dia = '040 % for pashto
-\chardef \a@zwarakay = '040 % for pashto
-\chardef \a@one@dot@down = '056 % period
-\chardef \a@hamz@s = '143 % for kashmiri 0674
-\chardef \a@bars = '144 % for 06fd, 06fe
-\chardef \a@roof = '145 % for 06c9
-\chardef \a@h@dia = '146 % for urdu
-\chardef \a@ammad = '146 % for pashto
-
-\chardef \a@f@iv = '122 % farsi 4
-\chardef \a@f@v = '123 % farsi 5
-\chardef \a@f@vi = '124 % farsi 6
-
-%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@alif = '100 % 100,101
-\chardef \a@alif@iso = \a@alif % 100
-\chardef \a@alif@end = '101 % 101
-
-\chardef \a@lam@alif = '102 % 102,103
-\chardef \a@lam@alif@iso = \a@lam@alif % 102
-\chardef \a@lam@alif@end = '103 % 103
-
-\chardef \a@bah@s = '110 % 110-113 bah without dots
-\chardef \a@bah = \a@bah@s % 110
-\chardef \a@bah@p = '114 % 114-117 bah with loop
-
-\chardef \a@rah = '120 % 120,121
-%% zay 122 122,123
-%% zhah 124 124,125
-\chardef \a@rah@p = '126 % 126,127 rah with loop
-
-\chardef \a@hamza@iso = '132 % 132
-\chardef \a@hamzc = \a@hamza@iso % 132
-
-\chardef \a@dal = '130 % 130,131
-\chardef \a@dal@p = '136 % 136,137 dal with loop
-
-\chardef \a@gim@close = '144 % 147 closed gim
-%% gim 140 140-143
-\chardef \a@hhah = '150 % 150-153
-\chardef \a@rah@s = '156 % 156,157 rah with two dots
-\chardef \a@khah = '160 % 160-163
-%% tsah 170 170-173
-\chardef \a@rah@k = '166 % 166,167 kurdish rah
-
-\chardef \a@sin = '200 % 200-203
-\chardef \a@sin@spec = '202 % 204,205 short form
-%% shin_spec 204 206,207 short form
-\chardef \a@qaf@s = '206 % 206,207 qaf without dots
-%% shin 210 210-213
-%% sin_p 214 214,215 sin with two dots
-
-\chardef \a@sad = '220 % 220-223
-\chardef \a@sad@spec = '222 % 224,225 short form
-%% dad_spec 224 226,227 short form
-%% dad 230 230-233
-
-\chardef \a@gaf@p@spec = '224 % 226,227 short form of gaf with loop
-\chardef \a@gaf@p@s = '230 % 230-233 gaf with loop
-\chardef \a@kaf@w = '234 % 234-237 wide kaf
-
-\chardef \a@ttah = '240 % 240-243
-
-%% zzah 244 244-247
-\chardef \a@waw@r = '244 % 244,245 waw with ring
-\chardef \a@waw@b = '246 % 246,247 waw with bar
-
-\chardef \a@ain = '250 % 250-253
-\chardef \a@fah@s = '254 % 254-257 fah family
-
-\chardef \a@kaf@p@s = '260 % 260-263 kaf with loop
-\chardef \a@gaf@p = \a@kaf@p@s % 260
-\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark
-\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop
-\chardef \a@kaf@s = '270 % 270-273 kaf family
-\chardef \a@kaf = '274 % 274,275
-\chardef \a@kaf@spec = '274 % 276,277 short form
-\chardef \a@gaf@s = '300 % 300-303 gaf family
-\chardef \a@gaf = '304 % 304,305
-\chardef \a@gaf@spec = '304 % 306,307 short form
-
-\chardef \a@lam = '310 % 310-313
-\chardef \a@mim = '320 % 320-323
-\chardef \a@mim@sind = '335 % 335 Sindhi final mim 06fe
-
-\chardef \a@nun = '340 % 340,341
-\chardef \a@nun@p = '342 % 342,343 nun with loop
-
-\chardef \a@hah = '350 % 350-354
-\chardef \a@hah@urd = '353 % 353,354 two-eyed hah,
- % see hah and hah_spec_lam
-\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam
-\chardef \a@hah@spec = '354 % 355-357 final short hah;
-\chardef \a@h@s = \a@hah@spec % 354
- % also medial hah after sin
-
-\chardef \a@waw = '360 % 360,361
-%% fah 362 362,363
-\chardef \a@qaf = '364 % 364,365
-%% vah 366 366,367
-
-\chardef \a@yah = '370 % 370,371
-\chardef \a@yah@spec = '371 % 372 ligature for final yah
-\chardef \a@yah@h = '373 % 373,374 yah with hook
-\chardef \a@yah@h@spec = '374 % 375 ligature for yah with hook
-\chardef \a@yah@p = '376 % 376,377 long yah
-\chardef \a@yah@p@s = '366 % 366,367 long yah with loop
-
-%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
-
-\chardef \a@block = '000 % 000-003
-\chardef \a@tatwil = '004 % 004-007
-
-\chardef \a@rquotes = '042 % 042
-\chardef \a@period = '056 % 056
-\chardef \a@lquotes = '134 % 134
-
-\chardef \a@space@spec = '044 % 046,047 carrier for dots
-\chardef \a@smspc = \a@space@spec % 044
-\chardef \a@skip = '045 % 047 small space, initial (!)
-\chardef \a@no@break = '046 % 046 no space, breaks ligatures
-\chardef \a@break = '047 % 047 small space, medial
-
-%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim
-\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim
-\chardef \a@g@to@mb = '031 % 033 medial bah to gim
-\chardef \a@bah@high = '032 % 034,035 before sin, sad
-\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun
-\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah'
-\chardef \a@lam@l = \a@lam@spec@low % 072
-\chardef \a@alif@spec@mim = '075 % 076 final alif after mim
-\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah
-\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie;
- % also bah before yah
-%% gim_spec 143 144,145 from above
-\chardef \a@hhah@spec = '153 % 154,155 from above
-\chardef \a@khah@spec = '163 % 164,165 from above
-%% tsah_spec 173 174,175 from above
-\chardef \a@lam@gim = '311 % 314 lam on gim
-\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim
-\chardef \a@lam@long = '312 % 315 initial lam before yah
-\chardef \a@lam@spec@yah = '314 % 316 before final yah ?
-\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim
-\chardef \a@mim@spec@high = '322 % 324 from above
-\chardef \a@mim@spec = '324 % 325-327 final; medial after lam;
- % also before gim
-\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim
-\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim
-\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah
-\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized
-\chardef \a@mm@to@b = '333 % 335 bah to medial mim
-\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim
-\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif
-\chardef \a@er@to@s = '343 % 345 sin to final rah
-\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim
-\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim
-
-%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim
-\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim
-\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim
-\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim
-\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim
-
-%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\endinput
+%%%%%%%%%%%%%%%%%%%% xarbsymb.sty %%%%%%%%%%%%%%%%%%%%
+% 15.7.1998 16:19:14
+% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.1998}
+
+\chardef \a@nashcode = '1 % file has been read
+
+%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
+
+\chardef \a@f@iso = '0 % isolated
+\chardef \a@f@end = '1 % final
+\chardef \a@f@mid = '2 % medial
+\chardef \a@f@beg = '3 % initial
+
+%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
+
+\chardef \a@ttah@dia = '010 % for urdu
+\chardef \a@one@dot@up = '011 %
+\chardef \a@two@dots@down = '012 %
+\chardef \a@fatha = '013 %
+\chardef \a@kasra = '013 %
+\chardef \a@damma = '014 %
+\chardef \a@hamza = '015 %
+\chardef \a@madda = '016 %
+\chardef \a@shadda = '017 %
+\chardef \a@two@dots@up = '020 %
+\chardef \a@three@dots@up = '021 %
+\chardef \a@three@dots@down = '022 %
+\chardef \a@fathatan = '023 %
+\chardef \a@kasratan = '023 %
+\chardef \a@dammatan = '024 %
+\chardef \a@sukun = '025 %
+\chardef \a@wasla = '026 %
+\chardef \a@quran@alif = '027 %
+\chardef \a@bow@dia = '030 % for kurdish
+\chardef \a@e@dia = '040 % for pashto
+\chardef \a@zwarakay = '040 % for pashto
+\chardef \a@one@dot@down = '056 % period
+\chardef \a@hamz@s = '143 % for kashmiri 0674
+\chardef \a@bars = '144 % for 06fd, 06fe
+\chardef \a@roof = '145 % for 06c9
+\chardef \a@h@dia = '146 % for urdu
+\chardef \a@ammad = '146 % for pashto
+
+\chardef \a@f@iv = '122 % farsi 4
+\chardef \a@f@v = '123 % farsi 5
+\chardef \a@f@vi = '124 % farsi 6
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@alif = '100 % 100,101
+\chardef \a@alif@iso = \a@alif % 100
+\chardef \a@alif@end = '101 % 101
+
+\chardef \a@lam@alif = '102 % 102,103
+\chardef \a@lam@alif@iso = \a@lam@alif % 102
+\chardef \a@lam@alif@end = '103 % 103
+
+\chardef \a@bah@s = '110 % 110-113 bah without dots
+\chardef \a@bah = \a@bah@s % 110
+\chardef \a@bah@p = '114 % 114-117 bah with loop
+
+\chardef \a@rah = '120 % 120,121
+%% zay 122 122,123
+%% zhah 124 124,125
+\chardef \a@rah@p = '126 % 126,127 rah with loop
+
+\chardef \a@hamza@iso = '132 % 132
+\chardef \a@hamzc = \a@hamza@iso % 132
+
+\chardef \a@dal = '130 % 130,131
+\chardef \a@dal@p = '136 % 136,137 dal with loop
+
+\chardef \a@gim@close = '144 % 147 closed gim
+%% gim 140 140-143
+\chardef \a@hhah = '150 % 150-153
+\chardef \a@rah@s = '156 % 156,157 rah with two dots
+\chardef \a@khah = '160 % 160-163
+%% tsah 170 170-173
+\chardef \a@rah@k = '166 % 166,167 kurdish rah
+
+\chardef \a@sin = '200 % 200-203
+\chardef \a@sin@spec = '202 % 204,205 short form
+%% shin_spec 204 206,207 short form
+\chardef \a@qaf@s = '206 % 206,207 qaf without dots
+%% shin 210 210-213
+%% sin_p 214 214,215 sin with two dots
+
+\chardef \a@sad = '220 % 220-223
+\chardef \a@sad@spec = '222 % 224,225 short form
+%% dad_spec 224 226,227 short form
+%% dad 230 230-233
+
+\chardef \a@gaf@p@spec = '224 % 226,227 short form of gaf with loop
+\chardef \a@gaf@p@s = '230 % 230-233 gaf with loop
+\chardef \a@kaf@w = '234 % 234-237 wide kaf
+
+\chardef \a@ttah = '240 % 240-243
+
+%% zzah 244 244-247
+\chardef \a@waw@r = '244 % 244,245 waw with ring
+\chardef \a@waw@b = '246 % 246,247 waw with bar
+
+\chardef \a@ain = '250 % 250-253
+\chardef \a@fah@s = '254 % 254-257 fah family
+
+\chardef \a@kaf@p@s = '260 % 260-263 kaf with loop
+\chardef \a@gaf@p = \a@kaf@p@s % 260
+\chardef \a@kaf@p = '264 % 264,265 kaf with loop and mark
+\chardef \a@kaf@p@spec = '264 % 266,267 short form of kaf with loop
+\chardef \a@kaf@s = '270 % 270-273 kaf family
+\chardef \a@kaf = '274 % 274,275
+\chardef \a@kaf@spec = '274 % 276,277 short form
+\chardef \a@gaf@s = '300 % 300-303 gaf family
+\chardef \a@gaf = '304 % 304,305
+\chardef \a@gaf@spec = '304 % 306,307 short form
+
+\chardef \a@lam = '310 % 310-313
+\chardef \a@mim = '320 % 320-323
+\chardef \a@mim@sind = '335 % 335 Sindhi final mim 06fe
+
+\chardef \a@nun = '340 % 340,341
+\chardef \a@nun@p = '342 % 342,343 nun with loop
+
+\chardef \a@hah = '350 % 350-354
+\chardef \a@hah@urd = '353 % 353,354 two-eyed hah,
+ % see hah and hah_spec_lam
+\chardef \a@hah@spec@lam = '352 % 354 medial hah after initial lam
+\chardef \a@hah@spec = '354 % 355-357 final short hah;
+\chardef \a@h@s = \a@hah@spec % 354
+ % also medial hah after sin
+
+\chardef \a@waw = '360 % 360,361
+%% fah 362 362,363
+\chardef \a@qaf = '364 % 364,365
+%% vah 366 366,367
+
+\chardef \a@yah = '370 % 370,371
+\chardef \a@yah@spec = '371 % 372 ligature for final yah
+\chardef \a@yah@h = '373 % 373,374 yah with hook
+\chardef \a@yah@h@spec = '374 % 375 ligature for yah with hook
+\chardef \a@yah@p = '376 % 376,377 long yah
+\chardef \a@yah@p@s = '366 % 366,367 long yah with loop
+
+%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
+
+\chardef \a@block = '000 % 000-003
+\chardef \a@tatwil = '004 % 004-007
+
+\chardef \a@rquotes = '042 % 042
+\chardef \a@period = '056 % 056
+\chardef \a@lquotes = '134 % 134
+
+\chardef \a@space@spec = '044 % 046,047 carrier for dots
+\chardef \a@smspc = \a@space@spec % 044
+\chardef \a@skip = '045 % 047 small space, initial (!)
+\chardef \a@no@break = '046 % 046 no space, breaks ligatures
+\chardef \a@break = '047 % 047 small space, medial
+
+%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@bah@spec@gim = '027 % 031 medial bah before gim
+\chardef \a@bah@beg@gim = '030 % 032 initial (!) bah before gim
+\chardef \a@g@to@mb = '031 % 033 medial bah to gim
+\chardef \a@bah@high = '032 % 034,035 before sin, sad
+\chardef \a@bah@spec = '034 % 036,037 bah before final rah, nun
+\chardef \a@lam@spec@low = '072 % 074 medial lam for 'allah'
+\chardef \a@lam@l = \a@lam@spec@low % 072
+\chardef \a@alif@spec@mim = '075 % 076 final alif after mim
+\chardef \a@bah@end@hah = '102 % 104,105 bah before final hah
+\chardef \a@bah@spec@yah = '104 % 106,107 bah before gim, with tie;
+ % also bah before yah
+%% gim_spec 143 144,145 from above
+\chardef \a@hhah@spec = '153 % 154,155 from above
+\chardef \a@khah@spec = '163 % 164,165 from above
+%% tsah_spec 173 174,175 from above
+\chardef \a@lam@gim = '311 % 314 lam on gim
+\chardef \a@lam@on@gim = '312 % 314 initial (!) lam before gim
+\chardef \a@lam@long = '312 % 315 initial lam before yah
+\chardef \a@lam@spec@yah = '314 % 316 before final yah ?
+\chardef \a@lam@spec@mim = '314 % 317 initial lam before medial mim
+\chardef \a@mim@spec@high = '322 % 324 from above
+\chardef \a@mim@spec = '324 % 325-327 final; medial after lam;
+ % also before gim
+\chardef \a@mim@spec@mim = '325 % 330 initial mim before mim
+\chardef \a@mim@lam@gim = '327 % 331 medial mim between lam and gim
+\chardef \a@lam@spec@hah = '330 % 333 initial lam before medial hah
+\chardef \a@mim@spec@long = '332 % 334 medial mim after lam, vocalized
+\chardef \a@mm@to@b = '333 % 335 bah to medial mim
+\chardef \a@bah@mid@mim = '334 % 336,337 bah before medial mim
+\chardef \a@mim@spec@alif = '342 % 344 medial mim before alif
+\chardef \a@er@to@s = '343 % 345 sin to final rah
+\chardef \a@bah@end@mim = '344 % 346 medial bah before final mim
+\chardef \a@bah@beg@mim = '345 % 347 initial (!) bah before final mim
+
+%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef \a@g@to@s = \a@bah@spec@gim % sin to gim
+\chardef \a@em@to@s = \a@bah@end@mim % sin to final mim
+\chardef \a@mh@to@s = \a@bah@end@hah % sin to medial hah or final mim
+\chardef \a@g@to@bb = \a@bah@beg@gim % initial bah to gim
+\chardef \a@em@to@bb = \a@bah@beg@mim % initial bah to final mim
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
diff --git a/language/arabic/arabtex/texinput/yiddish.sty b/language/arabic/arabtex/texinput/yiddish.sty
index 3f6e67ca70..cc2555a831 100644
--- a/language/arabic/arabtex/texinput/yiddish.sty
+++ b/language/arabic/arabtex/texinput/yiddish.sty
@@ -1,195 +1,195 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% yiddish.sty
-% experimental scanner for Yiddish ASCII files
-% to activate it, say "\setcode {yiddish}
-% 14.06.2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Informatik
-% Universitaet Stuttgart
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \yidatcode \undefined \else \xpa \endinput \fi
-
-\chardef \yidatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {yiddish.sty}
-{3.10 scanner for YIVO Yiddish encoding} {14.06.2000}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% dynamic definitions for Hebrew
-{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef \setyid@codes {\seta@codes % activate and change some codes
-\globaldefs=1
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def \sc@a {Q"a} \def \sc@b {b}
-\def \sc@c {@} \def \sc@d {d}
-\def \sc@e {P} \def \sc@f {f\n@xp\a@Zo}
-\def \sc@g {g} \def \sc@h {h}
-\def \sc@i {y} \def \sc@j {@}
-\def \sc@k {q} \def \sc@l {l}
-\def \sc@m {m} \def \sc@n {n}
-\def \sc@o {Q"A}\def \sc@p {\n@xp\a@f}
-\def \sc@q {@} \def \sc@r {r}
-\def \sc@s {s} \def \sc@t {t}
-\def \sc@u {w} \def \sc@v {\n@xp\a@w}
-\def \sc@w {w} \def \sc@x {@}
-\def \sc@y {y} \def \sc@z {z}
-%
-\xpa \def \csname sc@`\endcsname {Q}
-\a@digits = {0123456789} \a@paren = {()[]} \a@first = {}
-\globaldefs=0
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-}% end of dynamic definitions for Hebrew: oldcode and pccode
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yid@scan #1>{% modified scanner call: token sequence -> \a@tokens
-\iftest@scan \tracingmacros = 1
-\ifshow \else \lowercase {\a@verb #1>}\fi\fi
-\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse
-\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform
-\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\gdef \yid@beg #1{% start \ArabTeX scanner
- \def \next {\yid@word #1}%
-\case #1\of
-{iu {\def \sc@char {Q}\sc@put }%
-a {\def \next {\y@d@a}}%
-e {\def \next {\y@d@e}}%
-o {\def \next {\y@d@o}}%
-\default{\def \sc@char {@}}%
-}\endcase \next }
-
-\def \yid@word #1{% transform input into internal notation
-% \def \next {\yid@word }%
-\ifx #1\@ \def \next {\sc@endscan }\else
-\ifcat \nxp #1\relax \def \next {\yid@cs #1}\else % control sequence
-\apply \yid@next \tocase #1\of
-{ a{\yid@a }%
- e{\yid@e }%
- y{\yid@y }%
- o{\yid@o }%
- k{\yid@k }%
- t{\yid@t }%
- s{\yid@s }%
- z{\yid@z }%
- -{\yid@B }%
-\default {\yid@@word #1}%
-}\endcase
-\fi\fi \next }
-
-\def \yid@next #1{\def \next {#1}}
-
-\def \yid@@word #1{% transform input into internal notation
-\case #1\of
-{ `{\def \sc@char {Q}}%
- "{\def \sc@char {\a@dq}}%
-\default {\ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }%
- \else \def \sc@char {#1}\fi}%
-}\endcase
-\sc@put \yid@word }%
-
-\def \y@d@cs #1#2{% test word end
-\def \sc@char {#1}\sc@put
-\ifx #2\@ \def \next {\sc@endscan #2}\else
-\ifcat -\nxp #2 \def \next {\yid@word #2}\else
-\def \next {\sc@back #2}\fi \fi \next }
-
-\def \yid@cs #1#2{% control sequence within a word; push back?
-\xpa \ifx #1\closegeresh \def \next {\y@d@cs {\nxp \lq }#2}\else
-\xpa \ifx #1\closequote \def \next {\y@d@cs {`}#2}\else
- \def \next {\sc@back #1#2}%
-\fi\fi \next }
-
-\def \yid@endscan \@@ {\global\let \a@scan \yid@scan }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \y@d@a #1{% `ay ?
-\ifx #1y\def \sc@char {Q"\nxp\a@ZA}\def \next {\yid@word }\else
-\def \sc@char {Q"a}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \y@d@e #1{% `ey ?
-\ifx #1y\def \sc@char {Q"\nxp\a@ZE}\def \next {\yid@word }\else
-\def \sc@char {P}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \y@d@o #1{% `oy ?
-\ifx #1y\def \sc@char {Q"\nxp\a@ZO}\def \next {\yid@word }\else
-\def \sc@char {Q"A}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yid@a #1{% ay ?
-\ifx #1y\def \sc@char {"\nxp\a@ZA}\def \next {\yid@word }\else
-\def \sc@char {Q"a}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@e #1{% ey ?
-\ifx #1y\def \sc@char {"\nxp\a@ZE}\def \next {\yid@word }\else
-\def \sc@char {P}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@y #1{% yi ?
-\ifx #1i\def \sc@char {yy"i}\def \next {\yid@word }\else
-\def \sc@char {y}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@o #1{% oy ?
-\ifx #1y\def \sc@char {"\nxp\a@ZO}\def \next {\yid@word }\else
-\def \sc@char {Q"A}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@k #1{% kh ?
-\ifx #1h\def \sc@char {k}\def \next {\yid@word }\else
-\def \sc@char {q}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@t #1{% ts ?
-\ifx #1s\def \sc@char {S}\def \next {\yid@word }\else
-\def \sc@char {C}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@s #1{% sh ?
-\ifx #1h\def \sc@char {\nxp\a@S}\def \next {\yid@word }\else
-\def \sc@char {s}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@z #1{% zh ?
-\ifx #1h\def \sc@char {z\nxp\a@S}\def \next {\yid@word }\else
-\def \sc@char {z}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-\def \yid@B #1{% -- ?
-\ifx #1-\def \sc@char {\a@end}\def \next {\yid@word }\else
-\def \sc@char {B}\def \next {\yid@word #1}%
-\fi \sc@put \next }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \yid@select {% select the new scanner
-\heb@catcodes % inside hebtex.sty; to make sure
-\let \sc@beg \yid@beg \let \sc@word \yid@word
-\let \sc@back \sc@@back \let \sc@endscan \yid@endscan
-\setyid@codes \global\let \a@scan \yid@scan
-\a@message {input encoding set to YIVO Yiddish conventions}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings
-yiddish\yid@select }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\a@message {scanner for YIVO Yiddish installed.}
-
-\catcode `\@ = \yidatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%% hescan.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% yiddish.sty
+% experimental scanner for Yiddish ASCII files
+% to activate it, say "\setcode {yiddish}
+% 14.06.2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \yidatcode \undefined \else \xpa \endinput \fi
+
+\chardef \yidatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {yiddish.sty}
+{3.10 scanner for YIVO Yiddish encoding} {14.06.2000}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dynamic definitions for Hebrew
+{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef \setyid@codes {\seta@codes % activate and change some codes
+\globaldefs=1
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def \sc@a {Q"a} \def \sc@b {b}
+\def \sc@c {@} \def \sc@d {d}
+\def \sc@e {P} \def \sc@f {f\n@xp\a@Zo}
+\def \sc@g {g} \def \sc@h {h}
+\def \sc@i {y} \def \sc@j {@}
+\def \sc@k {q} \def \sc@l {l}
+\def \sc@m {m} \def \sc@n {n}
+\def \sc@o {Q"A}\def \sc@p {\n@xp\a@f}
+\def \sc@q {@} \def \sc@r {r}
+\def \sc@s {s} \def \sc@t {t}
+\def \sc@u {w} \def \sc@v {\n@xp\a@w}
+\def \sc@w {w} \def \sc@x {@}
+\def \sc@y {y} \def \sc@z {z}
+%
+\xpa \def \csname sc@`\endcsname {Q}
+\a@digits = {0123456789} \a@paren = {()[]} \a@first = {}
+\globaldefs=0
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+}% end of dynamic definitions for Hebrew: oldcode and pccode
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@scan #1>{% modified scanner call: token sequence -> \a@tokens
+\iftest@scan \tracingmacros = 1
+\ifshow \else \lowercase {\a@verb #1>}\fi\fi
+\global\def \a@rest {}\global\a@tokens = {}\@ssimfalse
+\novocalize \lowercase {\sc@beg #1\@ \@@ }% transform
+\iftest@scan \tracingmacros = 0 \xpa \a@verb \xpa (\the\a@tokens )>\fi }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\gdef \yid@beg #1{% start \ArabTeX scanner
+ \def \next {\yid@word #1}%
+\case #1\of
+{iu {\def \sc@char {Q}\sc@put }%
+a {\def \next {\y@d@a}}%
+e {\def \next {\y@d@e}}%
+o {\def \next {\y@d@o}}%
+\default{\def \sc@char {@}}%
+}\endcase \next }
+
+\def \yid@word #1{% transform input into internal notation
+% \def \next {\yid@word }%
+\ifx #1\@ \def \next {\sc@endscan }\else
+\ifcat \nxp #1\relax \def \next {\yid@cs #1}\else % control sequence
+\apply \yid@next \tocase #1\of
+{ a{\yid@a }%
+ e{\yid@e }%
+ y{\yid@y }%
+ o{\yid@o }%
+ k{\yid@k }%
+ t{\yid@t }%
+ s{\yid@s }%
+ z{\yid@z }%
+ -{\yid@B }%
+\default {\yid@@word #1}%
+}\endcase
+\fi\fi \next }
+
+\def \yid@next #1{\def \next {#1}}
+
+\def \yid@@word #1{% transform input into internal notation
+\case #1\of
+{ `{\def \sc@char {Q}}%
+ "{\def \sc@char {\a@dq}}%
+\default {\ifcat \noexpand #1a\edef \sc@char {\csname sc@#1\endcsname }%
+ \else \def \sc@char {#1}\fi}%
+}\endcase
+\sc@put \yid@word }%
+
+\def \y@d@cs #1#2{% test word end
+\def \sc@char {#1}\sc@put
+\ifx #2\@ \def \next {\sc@endscan #2}\else
+\ifcat -\nxp #2 \def \next {\yid@word #2}\else
+\def \next {\sc@back #2}\fi \fi \next }
+
+\def \yid@cs #1#2{% control sequence within a word; push back?
+\xpa \ifx #1\closegeresh \def \next {\y@d@cs {\nxp \lq }#2}\else
+\xpa \ifx #1\closequote \def \next {\y@d@cs {`}#2}\else
+ \def \next {\sc@back #1#2}%
+\fi\fi \next }
+
+\def \yid@endscan \@@ {\global\let \a@scan \yid@scan }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \y@d@a #1{% `ay ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZA}\def \next {\yid@word }\else
+\def \sc@char {Q"a}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \y@d@e #1{% `ey ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZE}\def \next {\yid@word }\else
+\def \sc@char {P}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \y@d@o #1{% `oy ?
+\ifx #1y\def \sc@char {Q"\nxp\a@ZO}\def \next {\yid@word }\else
+\def \sc@char {Q"A}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@a #1{% ay ?
+\ifx #1y\def \sc@char {"\nxp\a@ZA}\def \next {\yid@word }\else
+\def \sc@char {Q"a}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@e #1{% ey ?
+\ifx #1y\def \sc@char {"\nxp\a@ZE}\def \next {\yid@word }\else
+\def \sc@char {P}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@y #1{% yi ?
+\ifx #1i\def \sc@char {yy"i}\def \next {\yid@word }\else
+\def \sc@char {y}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@o #1{% oy ?
+\ifx #1y\def \sc@char {"\nxp\a@ZO}\def \next {\yid@word }\else
+\def \sc@char {Q"A}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@k #1{% kh ?
+\ifx #1h\def \sc@char {k}\def \next {\yid@word }\else
+\def \sc@char {q}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@t #1{% ts ?
+\ifx #1s\def \sc@char {S}\def \next {\yid@word }\else
+\def \sc@char {C}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@s #1{% sh ?
+\ifx #1h\def \sc@char {\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {s}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@z #1{% zh ?
+\ifx #1h\def \sc@char {z\nxp\a@S}\def \next {\yid@word }\else
+\def \sc@char {z}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+\def \yid@B #1{% -- ?
+\ifx #1-\def \sc@char {\a@end}\def \next {\yid@word }\else
+\def \sc@char {B}\def \next {\yid@word #1}%
+\fi \sc@put \next }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \yid@select {% select the new scanner
+\heb@catcodes % inside hebtex.sty; to make sure
+\let \sc@beg \yid@beg \let \sc@word \yid@word
+\let \sc@back \sc@@back \let \sc@endscan \yid@endscan
+\setyid@codes \global\let \a@scan \yid@scan
+\a@message {input encoding set to YIVO Yiddish conventions}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\xpa \def \xpa \sc@table \xpa {\sc@table % add the Hebrew encodings
+yiddish\yid@select }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\a@message {scanner for YIVO Yiddish installed.}
+
+\catcode `\@ = \yidatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/language/arabic/arabtex/verses.sty b/language/arabic/arabtex/verses.sty
index 5845f76002..0849864662 100644
--- a/language/arabic/arabtex/verses.sty
+++ b/language/arabic/arabtex/verses.sty
@@ -1,106 +1,106 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%% verses.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% verses.sty
-% utility for ArabTeX
-% macros for typesetting Arabic verses in two columns
-% usage: load as a package, or after loading ArabTeX
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% (c) Klaus Lagally
-% Institut fuer Formale Methoden der Informatik
-% Universitaet Stuttgart
-% 08.02.2006
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Usage:
-% (use within an Arabic environment)
-%
-% \setversedim #1#2 % define the layout (within a group):
-% #1 = length of both half-verses
-% #2 = separation distance = length of a connection, if present
-% Variant:
-% \setversedim #1[#2]#3 % for half-verses of unequal length
-% #1 = length of first (=right) half-verse
-% #2 = length of second (=left) half-verse
-% #3 = separation distance = length of a connection, if present
-%
-% \halfverses #1#2 % typeset two separated half-verses
-% #1 = text of first (=right) half-verse
-% #2 = text of second (=left) half-verse
-% Variant:
-% \halfverses #1[#2]#3 % typeset two connected half-verses
-% #1 = text of first (=right) half-verse
-% #2 = text of connection
-% #3 = text of second (=left) half-verse
-%
-% Alternative (if preferred):
-%
-% \connverses #1#2#3 % = \halfverses #1[#2]#3
-%
-% Note: use keshide to attach the connection, if required
-% Note: if the verses do not fit on the line, they will be put on
-% two lines, flush to the margins.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\ifx \verseatcode \undefined \else \expandafter \endinput
-\fi % load only once
-
-\chardef \verseatcode = \catcode`\@ \catcode`\@ = 11
-
-\a@ident {verses.sty} {3.12 verses in two columns} {08.02.2006}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% define the layout, verses will be centered
-
-\newdimen \a@hvlen \newdimen \a@hvsep
-\newdimen \a@hvind \newdimen \a@@hvlen
-
-\def \setversedim #1#2{% set lengths of half-verse, [separation]
-\ifx \LaTeX \undefined \a@hvind \hsize
-\else \a@hvind \textwidth \fi
-\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
-\ifx [#2\def \next {\set@verseI [}\else
-\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
-
-\def \set@verseI [#1]{% optional parameter
-\a@@hvlen #1\relax \set@@verse }
-
-\def \set@@verse #1{% separation
-\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
-\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def \connverses #1#2#3{% first half-verse, connection, second half-verse
-\cond{\ifdim 0pt > \a@hvind }%
-{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
-{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
-\spreadbox \a@hvsep {#2}% separator
-\spreadbox \a@@hvlen {#3}% second block
-\tracingmacros 0
-\par }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% macro for two half verses
-\def \halfverses #1#2{% normal case
-\connverses {#1}{\hfill}{#2}}
-
-\def \a@c@halfverses #1#2{% optional parameter?
-%\tracingmacros 1
-\cond{\ifx [#2}{\half@verses {#1}[}%
-{\half@verses {#1}[\hfill]{#2}}\fi }
-
-\def \half@verses #1[#2]#3{% first[mid]second
-\test@token \connverses {#1}{#2}{#3}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% define a default layout
-% do this within a group!
-
-%\setversedim {2.0in}{0.3in}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% make macros known to ArabTeX
-\allowarab \connverses \all@wtw@ \setversedim
-
-\catcode `\@ = \verseatcode
-\endinput
-%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% verses.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% verses.sty
+% utility for ArabTeX
+% macros for typesetting Arabic verses in two columns
+% usage: load as a package, or after loading ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Formale Methoden der Informatik
+% Universitaet Stuttgart
+% 08.02.2006
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Usage:
+% (use within an Arabic environment)
+%
+% \setversedim #1#2 % define the layout (within a group):
+% #1 = length of both half-verses
+% #2 = separation distance = length of a connection, if present
+% Variant:
+% \setversedim #1[#2]#3 % for half-verses of unequal length
+% #1 = length of first (=right) half-verse
+% #2 = length of second (=left) half-verse
+% #3 = separation distance = length of a connection, if present
+%
+% \halfverses #1#2 % typeset two separated half-verses
+% #1 = text of first (=right) half-verse
+% #2 = text of second (=left) half-verse
+% Variant:
+% \halfverses #1[#2]#3 % typeset two connected half-verses
+% #1 = text of first (=right) half-verse
+% #2 = text of connection
+% #3 = text of second (=left) half-verse
+%
+% Alternative (if preferred):
+%
+% \connverses #1#2#3 % = \halfverses #1[#2]#3
+%
+% Note: use keshide to attach the connection, if required
+% Note: if the verses do not fit on the line, they will be put on
+% two lines, flush to the margins.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifx \verseatcode \undefined \else \expandafter \endinput
+\fi % load only once
+
+\chardef \verseatcode = \catcode`\@ \catcode`\@ = 11
+
+\a@ident {verses.sty} {3.12 verses in two columns} {08.02.2006}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% define the layout, verses will be centered
+
+\newdimen \a@hvlen \newdimen \a@hvsep
+\newdimen \a@hvind \newdimen \a@@hvlen
+
+\def \setversedim #1#2{% set lengths of half-verse, [separation]
+\ifx \LaTeX \undefined \a@hvind \hsize
+\else \a@hvind \textwidth \fi
+\a@hvlen #1\relax \advance \a@hvind -\a@hvlen
+\ifx [#2\def \next {\set@verseI [}\else
+\a@@hvlen \a@hvlen \def \next {\set@@verse {#2}}\fi \next }
+
+\def \set@verseI [#1]{% optional parameter
+\a@@hvlen #1\relax \set@@verse }
+
+\def \set@@verse #1{% separation
+\advance \a@hvind -\a@@hvlen \a@hvsep #1\relax
+\advance \a@hvind -\a@hvsep \divide \a@hvind 2 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def \connverses #1#2#3{% first half-verse, connection, second half-verse
+\cond{\ifdim 0pt > \a@hvind }%
+{\spreadbox \a@hvlen {#1}\\ \hfill }% first block
+{\noindent \hskip \a@hvind \relax \spreadbox \a@hvlen {#1}}\fi
+\spreadbox \a@hvsep {#2}% separator
+\spreadbox \a@@hvlen {#3}% second block
+\tracingmacros 0
+\par }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% macro for two half verses
+\def \halfverses #1#2{% normal case
+\connverses {#1}{\hfill}{#2}}
+
+\def \a@c@halfverses #1#2{% optional parameter?
+%\tracingmacros 1
+\cond{\ifx [#2}{\half@verses {#1}[}%
+{\half@verses {#1}[\hfill]{#2}}\fi }
+
+\def \half@verses #1[#2]#3{% first[mid]second
+\test@token \connverses {#1}{#2}{#3}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% define a default layout
+% do this within a group!
+
+%\setversedim {2.0in}{0.3in}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% make macros known to ArabTeX
+\allowarab \connverses \all@wtw@ \setversedim
+
+\catcode `\@ = \verseatcode
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index 9155151888..436bffdd5e 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2021-11-15 patch level 1
+Release 2022-06-01
Overview
--------
@@ -10,10 +10,15 @@ This bundle provides the core LaTeX kernel. In addition to this bundle,
a minimal LaTeX system also needs the files contained in the
- LaTeX team documentation (`doc`)
+- L3 programming layer (`l3kernel`)
+- L3 backend interfaces (`l3backend`)
+- L3 unicode support (`unicode-data`)
+
- Packages which must be available (`required`). These are
- Essential tools (`tools`)
- Core graphics and color support (`graphics`)
- Key mathematics support (`amsmath`)
+ - First aid for external packages (`firstaid`)
This file contains a small set of pointers to other more complete
documentation on installing and using a LaTeX system.
@@ -36,10 +41,6 @@ the most significant of these files are
with one line of information about the contents
- `legal.txt` and `lppl.txt` (LaTeX Project Public License) describe the
LaTeX copyright, warranty and copying restrictions.
-- `texpert.txt` contains information about the system that may still be
- useful for TeX experts
-- `tex2.txt` contains important information for users of extremely
- old versions of TeX (pre 1990)
- `bugs.txt` describes how to submit a bug report for LaTeX
Other documentation files include files with names of the form:
@@ -93,6 +94,6 @@ version 1.3c or later.
-----
-<p>Copyright (C) 1989-2021 The LaTeX Project <br />
+<p>Copyright (C) 1989-2022 The LaTeX Project <br />
<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
All rights reserved.</p>
diff --git a/macros/latex/base/alltt.dtx b/macros/latex/base/alltt.dtx
index 350229ab40..908fe92400 100644
--- a/macros/latex/base/alltt.dtx
+++ b/macros/latex/base/alltt.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -104,7 +104,7 @@
% The glyph at the position of the $ in an italic font: \textit{$}.
% \end{alltt}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Implementation}
%
diff --git a/macros/latex/base/alltt.ins b/macros/latex/base/alltt.ins
index 7ce2103207..f46404bcf4 100644
--- a/macros/latex/base/alltt.ins
+++ b/macros/latex/base/alltt.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index 63530059b0..7f53e4ee12 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index 30ca13ff99..d018177ecb 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.tex b/macros/latex/base/cfgguide.tex
index 66c02e4c33..7694ef9b63 100644
--- a/macros/latex/base/cfgguide.tex
+++ b/macros/latex/base/cfgguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index 1b8b0fc5d4..f880f43d67 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -11,6 +11,329 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 Release
+#########################
+
+2022-06-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * utf8ienc.dtx (subsection{The mapping table}):
+ Fix \guillemetleft and \guillemetright also in dfu files (gh/65)
+
+2022-06-03 David Carlisle <David.Carlisle@latex-project.org>
+
+ * doc.dtx: adjust ltxdoc.cls and doc.dtx to process existing
+ use of L3 names and \pkg in base dtx files
+
+2022-06-02 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltfinal.dtx: add \NoCaseChange (previously available in the
+ textcase package)
+
+2022-06-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmarks.dtx (subsection{Updating mark structures}):
+ Be more careful when unpackage a \vbox for mark detection, it might
+ contain infinite shrink glue (gh/836)
+
+2022-05-27 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltfiles.dtx, ltoutenc.dtx:
+ save the original version string in \ver@@...
+ Usable by \listfiles if the standard \ver@... command has been set to \relax
+ (as in fontenc.sty) gh/825
+
+2022-05-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltxdoc.dtx (section{Customisation}):
+ Added option doc2 so that old doc version can be requested (gh/822)
+
+2022-05-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * doc.dtx (subsection{Processing the package keys}):
+ Adjusted doc to use \ProcessKeyOptions (not the older l3keys2e variant)
+
+2022-05-17 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * lthooks.dtx (subsection{Setting rules for hooks code}):
+ Refuse sorting one-time hooks (gh/818).
+
+2022-05-17 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * ltmeta.dtx:
+ Added dummy definitions for target commands.
+
+2022-05-13 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * lthooks.dtx (subsection{Using the hook}):
+ Avoid l3debug error on an undeclared variable in \hook_use_once:nnn.
+
+2022-05-08 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * utf8ienc.dtx:
+ Declare Unicode codepoints U+3008 and U+3009 to be equivalent
+ to their canonical equivalent codepoints 2329/232A (corresponding
+ to \textlangle/\textrangle)
+
+2022-05-08 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltmath.dtx: Use more consistent default math styles on LuaLaTeX
+
+2022-04-13 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * ltxref.dtx:
+ Added starred versions of \ref, \pageref and \Ref
+ Added expandable version for \pageref and \ref
+ * ifthen.dtx:
+ use new expandable version for \pageref and \ref
+
+2022-05-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltshipout.dtx (subsection{Handling the end of job hook}):
+ Handle case where shipout/lastpage is run too early and issue
+ a warning (gh/813)
+
+2022-04-21 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltfinal.dtx (subsection{Lccodes and uccodes}):
+ Support \noexpand in arg. to \MakeUppercase and
+ \MakeLowercase
+
+2022-04-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmath.dtx (subsubsection{The UNSORTED Rest}):
+ Make \openup robust (gh/123)
+
+2022-04-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmarks.dtx: New module to implement new marks mechanism
+
+ * ltpage.dtx (section| command.):
+ Updates to \markboth and \markright to interface with new mark mechanism
+
+ * ltoutput.dtx (subsection{Floats}):
+ Interface with new mark mechanism
+
+ * ltfinal.dtx (subsection{Typesetting parameters}):
+ Integration of new mark management interface
+
+2022-04-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfiles.dtx (section{File Handling}):
+ Process include/excluded hook(s) if an include file is bypassed
+
+ * lthooks.dtx (subsection{Adding or removing hook code}):
+ Add support for generic include/.../excluded hooks
+
+ * ltfilehook.dtx: document include/excluded hooks
+
+2022-03-18 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltcmd.dtx (subsection{Utilities}):
+ Fix \@@_cmd_type_cases:NnnnnF prematurely expanding macros (gh/795).
+
+2022-03-18 Joseph Wright <joseph.wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Remove \ProcessKeyPackageOptions
+
+2022-03-10 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltfilehook.dtx (subsection{Selecting a file (\cs{set@curr@file})}):
+ Add \set@curr@file@nosearch, to ignore \input@path and \l_file_search_path_seq.
+
+2022-03-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltbibl.dtx (section{Bibliography Generation}):
+ Ensure that an empty argument given to \cite generates
+ a warning (gh/790)
+
+2022-02-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltvers.dtx (subsection{Declaring an all-new module}):
+ Detect a missing \IncludeInRelease{0000/00/00} in a new module.
+
+2022-02-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * latexrelease.dtx, ltexpl.dtx, ltcmd.dtx:
+ Move most make-harmless redefinitions right after ltexpl.dtx.
+
+2022-02-21 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ More efficient module expansion
+
+2022-02-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltcmd.dtx (subsection{User functions}):
+ Added \IfBlankTF and friends to test if a received argument
+ is empty or contains only normal space characters.
+
+2022-02-19 David Carlisle <David.Carlisle@latex-project.org>
+
+ * utf8ienc.dtx: use \protected definitions.
+ also avoid global definitions for gh/762
+
+2022-02-16 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Allow for active characters in module argument
+ \DeclareUnknownKeyHandler better than with the "s"
+
+2022-02-15 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Expand optional module argument in design-level commands
+ Add \DeclareUnknownKeysHandler
+
+2022-02-07 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Correct definition of .code property
+
+2022-02-05 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Create key properties at the 2e layer
+ Add .code property
+
+2022-01-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltplain.dtx (section{Plain \TeX}):
+ Alter \obeyspaces and \obeylines to use a redirection for special
+ use cases (gh/367)}
+
+2022-01-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * doc.dtx (subsection{Keys supported by doc):
+ Fixed key handling for nohyperref and nomulticol (gh/750).
+
+2022-01-15 Joseph Wright <Joseph.Wright-project.org>
+
+ * ltkeys.dtx:
+ Clear option data in \AtEndOfPackage hook
+
+2022-01-06 Joseph Wright <Joseph.Wright-project.org>
+
+ * ltexpl.dtx (section{Document-level command names for expl3 functions}):
+ Adjust document-level names for \exp_args:Nc and the like
+
+2021-12-30 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * ltmeta.dtx:
+ Adapted bundle name to new name `LaTeX-lab'
+
+2021-12-31 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltcmd.dtx (subsubsection{Showing the definition of a command}):
+ Make \ShowCommand stop for interaction with ltcmd (gh/739)
+
+2021-12-28 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltexpl.dtx (section{Document-level command names for expl3 functions}):
+ Added document-level names for \exp_args:Nc and the like
+ for use with \NewDocumentCommand, etc. (gh/735)
+
+2021-12-27 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltluatex.dtx:
+ Added \newluacmd and \newprotectedluacmd for easy allocation of Lua command ids.
+
+2021-12-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmeta.dtx:
+ First version of this module added implementing an interface to
+ \DocumentMetadata. At the moment the actual code is outside the
+ format and only loaded if the command is called.
+
+2021-12-13 David Carlisle <David.Carlisle@latex-project.org>
+
+ * utf8ienc.dtx: Use hex 80 not A0 to test for single byte UTF-8 github/730
+
+2021-12-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltoutenc.dtx (subsection{Definitions for the TU encoding}):
+ \DeclareUnicodeAccent now makes the encoding argument implicit
+ as it is already done for other Unicode encoding commands.
+ Also added \DeclareUnicodeCommand and \DeclareUnicodeSymbol (gh/253).
+
+2021-12-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * doc.dtx (subsection[Dealing with the change history]):
+ Implement option recordchangedates to show dates in the change log
+ if that option is used (gh/531).
+
+2021-12-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltdirchk.dtx (section{Initialization}):
+ Add comment lines into latex.ltx to indicate temp definitions that
+ are later overwritten (gh/725).
+
+2021-12-10 David Carlisle <David.Carlisle@latex-project.org>
+
+ * utf8ienc.dtx: Add inputenc UTF-8 support for Digraphs U+01C4-U+01CC
+
+2021-12-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * proc.dtx (subsection{The page style}):
+ Support twoside by providing an appropriate footer line (gh/704).
+
+2021-12-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * lttextcomp.dtx (section{Sub-encodings}):
+ Describe correctly (I hope) how sub-encodings work for TS1.
+
+2021-11-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltexpl.dtx:
+ Added \fpeval, \inteval, \dimeval, and \skipeval (gh711)
+
+2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * All *.dtx: Replaced \StopEventually by \MaybeStop
+
+2021-11-30 Joseph Wright <joseph.wright@latex-project.org>
+
+ * ltclasses.dtx
+ New option handling routine using ltkeys
+
+2021-11-26 Joseph Wright <joseph.wright@latex-project.org>
+
+ * ltkeys.dtx
+ New file to integrate keyval option processing into the kernel
+
+2021-11-17 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltluatex.dtx:
+ Classify [hv]pack_quality callbacks as exclusive
+ Never pass true to the engine for LuaTeX list callbacks
+
+2021-11-15 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * build.lua (textfiles):
+ Dropped a few obsolete documentation files (nobody installs manually these
+ days and the advice given was no longer current).
+
+ * latexchanges.tex:
+ We no longer maintain this file; instead everything is documented in ltnewsXX
+ and in the changes.txt files so we zap this file too because the double book
+ keeping always means one or the other is out of date.
+
+2021-11-14 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * doc.dtx: Replaced doc.dtx with V3 version.
+ The old doc can be reactivated with \usepackage{doc}[=v2].
+ Hyperref usage (on by default) can be turned off with
+ \usepackage[hyperref=false]{doc}.
+ New options etc are documented: use texdoc doc
+ (code documentation only partly done).
+
+2021-11-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltxdoc.dtx (section{Configuration file}):
+ Added our default .cfg for extraction.
+ Added option "nocfg" to bypass a system cfg.
+
+#########################
# 2021-11-15 PL1 Release
#########################
@@ -24,7 +347,7 @@ All changes above are only part of the development branch for the next release.
# 2021-11-15 Release
#########################
-2021-10-20 Phelype Oleinik <phelype.oleinik@latex-project.org>
+2021-10-20 Phelype Oleinik <phelype.oleinik@latex-project.org>
* ltcmdhooks.dtx (subsubsection{Patching by expansion and redefinition}):
Fix patching of commands that contain parameter tokens (gh/697)
@@ -62,7 +385,7 @@ All changes above are only part of the development branch for the next release.
* classes.dtx, doc.dtx, makeindx.dtx, preload.dtx, slides.dtx, array.dtx
Removed old references to latex.tex or latex.dtx (gh/685)
-2021-09-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+2021-09-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
* ltcmdhooks.dtx (subsection{Patching commands}):
Make patching of commands with generic cmd hooks a global operation (gh/674)
@@ -1435,8 +1758,8 @@ All changes above are only part of the development branch for the next release.
* fontdef.dtx (subsection{Defaults}): Set
\shapedefault explicitly to "n" not \updefault
- \bfdefault set to to "b" not "bx" (but bx for CM fonts)
- \updefault set to to "up" not "n".
+ \bfdefault set to "b" not "bx" (but bx for CM fonts)
+ \updefault set to "up" not "n".
Part of extending the series and shape handling, see ltnews31.
2019-12-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -12007,7 +12330,7 @@ All changes above are only part of the development branch for the next release.
* unpack2e.ins:
Removed unnecessary .drv generation (some are still there)
- Added the the WITHOUT ANY WARRANTY message to some preambles.
+ Added the WITHOUT ANY WARRANTY message to some preambles.
* oldgerm.dtx:
Moved the driver code in front so that the documentation can be
diff --git a/macros/latex/base/classes.dtx b/macros/latex/base/classes.dtx
index a13053b871..857cfc799e 100644
--- a/macros/latex/base/classes.dtx
+++ b/macros/latex/base/classes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -230,7 +230,7 @@
% \maketitle
% \tableofcontents
%
-% \StopEventually{} ^^A
+% \MaybeStop{} ^^A
%
% \section{The {\sc docstrip} modules}
%
diff --git a/macros/latex/base/classes.ins b/macros/latex/base/classes.ins
index be0dcaf8ff..1f7b331691 100644
--- a/macros/latex/base/classes.ins
+++ b/macros/latex/base/classes.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index 3dfd203f5a..20fbdaf242 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index 5d18a12d96..11d0c9e47a 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.tex b/macros/latex/base/clsguide.tex
index 3667210e5f..6f4d1cf027 100644
--- a/macros/latex/base/clsguide.tex
+++ b/macros/latex/base/clsguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/cmextra.ins b/macros/latex/base/cmextra.ins
index c530e04d0b..a2befb3aef 100644
--- a/macros/latex/base/cmextra.ins
+++ b/macros/latex/base/cmextra.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/cmfonts.ins b/macros/latex/base/cmfonts.ins
index d54a325f42..55af4759c5 100644
--- a/macros/latex/base/cmfonts.ins
+++ b/macros/latex/base/cmfonts.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index 1fce33a17b..5c25484024 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index 9100b0a809..e9fa336379 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.tex b/macros/latex/base/cyrguide.tex
index 07d4bc0b3f..3b16687f39 100644
--- a/macros/latex/base/cyrguide.tex
+++ b/macros/latex/base/cyrguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/doc-2016-02-15.sty b/macros/latex/base/doc-2016-02-15.sty
new file mode 100644
index 0000000000..96b6500463
--- /dev/null
+++ b/macros/latex/base/doc-2016-02-15.sty
@@ -0,0 +1,826 @@
+%%
+%% This is file contains the code from 'doc.sty' from around 2017.
+%%
+%% The original source files were:
+%%
+%% doc.dtx (with options: `package')
+%%
+%%
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the LaTeX base system.
+%% --------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file contains the code for an earlier release and is therefore
+%% frozen. It is used as part of the current doc.sty when the user
+%% requests a rollback.
+%%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+ \ProvidesPackage{doc}
+ [2016/02/15 v2.1g
+ Standard LaTeX documentation package (FMi)]
+%%
+%% Package `doc' to use with LaTeX 2e
+%% Copyright (C) 1989-1999 Frank Mittelbach, all rights reserved.
+\@ifundefined{macro@cnt}{}{\endinput}
+\catcode`\^^A=14
+\AtBeginDocument{\catcode`\^^A=14\relax}
+\def\macrocode{\macro@code
+ \frenchspacing \@vobeyspaces
+ \xmacro@code}
+\def\macro@code{%
+ \topsep \MacrocodeTopsep
+ \@beginparpenalty \predisplaypenalty
+ \if@inlabel\leavevmode\fi
+ \trivlist \parskip \z@ \item[]%
+ \macro@font
+ \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
+ \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
+ \blank@linefalse \def\par{\ifblank@line
+ \leavevmode\fi
+ \blank@linetrue\@@par
+ \penalty\interlinepenalty}
+ \obeylines
+ \let\do\do@noligs \verbatim@nolig@list
+ \let\do\@makeother \dospecials
+ \global\@newlistfalse
+ \global\@minipagefalse
+ \ifcodeline@index
+ \everypar{\global\advance\c@CodelineNo\@ne
+ \llap{\theCodelineNo\ \hskip\@totalleftmargin}%
+ \check@module}%
+ \else \everypar{\check@module}%
+ \fi
+ \init@crossref}
+\newif\ifblank@line
+\def\endmacrocode{%
+ \ifpm@module \endgroup \pm@modulefalse \fi
+ \everypar{}%
+ \global\@inlabelfalse
+ \endtrivlist
+ \close@crossref}
+\@ifundefined{MacroFont}{%
+ \if@compatibility
+ \def\MacroFont{\small
+ \usefont\encodingdefault
+ \ttdefault
+ \mddefault
+ \updefault
+ }%
+ \else
+ \def\MacroFont{\fontencoding\encodingdefault
+ \fontfamily\ttdefault
+ \fontseries\mddefault
+ \fontshape\updefault
+ \small}%
+ \fi
+ }{}
+\@ifundefined{AltMacroFont}{%
+ \if@compatibility
+ \def\AltMacroFont{\small
+ \usefont\encodingdefault
+ \ttdefault
+ \mddefault
+ \sldefault
+ }%
+ \else
+ \def\AltMacroFont{\fontencoding\encodingdefault
+ \fontfamily\ttdefault
+ \fontseries\mddefault
+ \fontshape\sldefault
+ \small
+ }%
+ \fi
+ }{}
+\AtBeginDocument{\let\macro@font\MacroFont}
+\def\check@module{%
+ \ifcheck@modules
+ \ifpm@module \endgroup \pm@modulefalse \fi
+ \expandafter\futurelet\expandafter\next\expandafter\ch@percent
+ \fi}
+\newif\ifpm@module
+\def\DontCheckModules{\check@modulesfalse}
+\def\CheckModules{\check@modulestrue}
+\newif\ifcheck@modules \check@modulestrue
+\def\ch@percent{%
+ \if \percentchar\next
+ \expandafter\check@angle
+ \fi}
+\def\check@angle#1{\futurelet\next\ch@angle}
+\begingroup
+\catcode`\<\active
+\gdef\ch@angle{\ifx<\next
+ \expandafter\ch@plus@etc
+ \else \percentchar \fi}
+\gdef\ch@plus@etc<{\futurelet\next\check@plus@etc}
+\gdef\check@plus@etc{%
+ \if +\next
+ \let\next\pm@module
+ \else\if -\next
+ \let\next\pm@module
+ \else\if *\next
+ \let\next\star@module
+ \else\if /\next
+ \let\next\slash@module
+ \else\ifx <\next
+ \percentchar
+ \else
+ \let\next\pm@module
+ \fi\fi\fi\fi\fi
+ \next}
+\endgroup
+\begingroup
+\catcode`\~=\active
+\lccode`\~=`\>
+\lowercase{\gdef\pm@module#1~}{\pm@moduletrue
+ \Module{#1}\begingroup
+ \advance\guard@level\@ne
+ \ifnum\guard@level>\c@StandardModuleDepth\AltMacroFont\fi
+}
+\lowercase{\gdef\star@module#1~}{%
+ \Module{#1}%
+ \global \advance \guard@level\@ne
+ \ifnum \guard@level>\c@StandardModuleDepth
+ \global\let\macro@font=\AltMacroFont \macro@font
+ \fi}
+\catcode`\>=\active
+\gdef\slash@module#1>{%
+ \Module{#1}%
+ \global \advance \guard@level\m@ne
+ \ifnum \guard@level=\c@StandardModuleDepth
+ \global\let\macro@font\MacroFont \macro@font
+ \fi
+}
+\endgroup
+\newcounter{StandardModuleDepth}
+\newcount \guard@level
+\@ifundefined{Module}{%
+ \def\Module#1{\mod@math@codes$\langle\mathsf{#1}\rangle$}
+ }{}
+\def\mod@math@codes{\mathcode`\|="226A \mathcode`\&="2026
+ \mathcode`\-="702D \mathcode`\+="702B
+ \mathcode`\:="703A \mathcode`\=="703D }
+\newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt
+\newdimen\MacroIndent
+\settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
+\@namedef{macrocode*}{\macro@code\sxmacro@code}
+\expandafter\let\csname endmacrocode*\endcsname = \endmacrocode
+\catcode`\!=\catcode`\% ^^A In this section there must not be
+ ^^A any exclamation marks.
+ ^^A
+\begingroup
+\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
+\catcode`\{=12 \catcode`\}=12
+\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
+!% \end{macrocode*}
+! Next follows the actual definition of |\macro@code|;
+! notice the
+! use of the new escape character. We manage to get the argument
+! surrounded by the string |\end{macrocode}|, but at the end
+! however, in spite of the actual characters used during the
+! definition of
+! this macro, |\end| with the argument |{macrocode}|
+! will be executed, to ensure a balanced environment.
+! \begin{macrocode*}
+|gdef|xmacro@code#1% \end{macrocode}[#1|end[macrocode]]
+!% \end{macrocode*}
+! \begin{macro}{\sxmacro@code}
+! The definition of |\sxmacro@code| is completely analogous,
+! only
+! here a slightly different terminating string will be used.
+! Note that the space is not active in this environment.
+! \begin{macrocode}
+|catcode`| =12
+|gdef|sxmacro@code#1% \end{macrocode*}[#1|end[macrocode*]]
+!% \end{macrocode}
+! because the |\catcode| changes have been made local by
+! commencing a
+! new group, there now follows the matching |\endgroup|
+! in a rather
+! unusual style of writing.
+! \begin{macrocode}
+|endgroup
+!% \end{macrocode}
+\catcode`\!=12
+\def\DescribeMacro{\leavevmode\@bsphack
+ \begingroup\MakePrivateLetters\Describe@Macro}
+\def\Describe@Macro#1{\endgroup
+ \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
+ \SpecialUsageIndex{#1}\@esphack\ignorespaces}
+\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \Describe@Env}
+\def\Describe@Env#1{\endgroup
+ \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
+ \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+\reversemarginpar
+\setlength\marginparpush{0pt} \setlength\marginparwidth{8pc}
+{\catcode`\|=\z@ \catcode`\\=12
+|gdef|bslash{\}}
+\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
+ \MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
+\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
+ \MacroFont \@sxverbatim}
+\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi
+ \leftskip\@totalleftmargin\rightskip\z@
+ \parindent\z@\parfillskip\@flushglue\parskip\z@
+ \@@par
+ \@tempswafalse
+ \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
+ \penalty\interlinepenalty
+ \check@percent}%
+ \obeylines
+ \let\do\do@noligs \verbatim@nolig@list
+ \let\do\@makeother \dospecials}
+{\catcode`\%=12
+ \long\gdef\check@percent#1{\ifx #1%\let\next\@empty \else
+ \let\next=#1\fi \next}}
+\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
+ \bgroup \let\do\do@noligs \verbatim@nolig@list
+ \ttfamily \verb@eol@error \let\do\@makeother \dospecials
+ \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
+\let\verb@balance@group\@empty
+
+\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}
+
+\begingroup
+ \obeylines%
+ \gdef\verb@eol@error{\obeylines%
+ \def^^M{\verb@egroup\@latex@error{%
+ Text for \noexpand\verb command ended by end of line}\@ehc}}%
+\endgroup
+\def\@sverb#1{%
+ \catcode`#1\active \lccode`\~`#1%
+ \gdef\verb@balance@group{\verb@egroup
+ \@latex@error{Illegal use of \noexpand\verb command}\@ehc}%
+ \aftergroup\verb@balance@group
+ \lowercase{\let~\verb@egroup}}
+\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
+\def\do@noligs#1{%
+ \catcode`#1\active
+ \begingroup
+ \lccode`\~=`#1\relax
+ \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
+\newcount\macro@cnt \macro@cnt=0
+\def\macro{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iftrue}
+\def\environment{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iffalse}
+\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#2}%
+ #1
+ \let\saved@indexname\saved@macroname
+ \else
+ \edef\saved@indexname{\expandafter\@gobble\string#2}%
+ \fi
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ #1%
+ \noexpand\PrintMacroName
+ \else
+ \noexpand\PrintEnvName
+ \fi
+ {\string#2}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ #1%
+ \SpecialMainIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \else
+ \SpecialMainEnvIndex{#2}\nobreak
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+\let\endmacro \endtrivlist
+\let\endenvironment\endmacro
+\newskip\MacroTopsep \MacroTopsep = 7pt plus 2pt minus 2pt
+\@ifundefined{PrintMacroName}
+ {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeMacro}
+ {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeEnv}
+ {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
+\@ifundefined{PrintEnvName}
+ {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
+\begingroup
+\catcode`\~\active
+\gdef\SpecialEscapechar#1{%
+ \begingroup
+ \uccode`\~`#1%
+ \uppercase{\gdef\active@escape@char{~}}%
+ \escapechar\m@ne \xdef\special@escape@char{\string#1}%
+ \endgroup}
+\endgroup
+\begingroup \catcode`\|=\z@ \catcode`\\=\active
+|gdef|init@crossref{|catcode`|\|active |let\|bslash
+ |MakePrivateLetters
+ |catcode|expandafter`|special@escape@char|active
+ |expandafter|let|active@escape@char|scan@macro}
+|endgroup
+\SpecialEscapechar{\\}
+\@ifundefined{MakePrivateLetters}
+ {\let\MakePrivateLetters\makeatletter}{}
+\def\close@crossref{\SpecialEscapechar\\}
+\def\scan@macro{%
+ \special@escape@char
+ \step@checksum
+ \ifscan@allowed
+ \let\macro@namepart\@empty
+ \def\next{\futurelet\next\macro@switch}%
+ \else \let\next\@empty \fi
+ \next}
+\newif\ifscan@allowed \scan@allowedtrue
+\def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack}
+\def\EnableCrossrefs{\@bsphack\scan@allowedtrue
+ \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
+\def\macro@switch{\ifcat\noexpand\next a%
+ \let\next\macro@name
+ \else \let\next\short@macro \fi
+ \next}
+\begingroup
+\catcode`\&=12
+\gdef\short@macro#1{\begingroup
+ \uccode`\&=\expandafter`\string#1%
+ \uppercase{\def\x{\def\macro@namepart{&}}}%
+ \expandafter\endgroup\x
+ \ifnot@excluded
+ \produce@index{#1}\fi
+ \scan@allowedfalse#1%
+ \scan@allowedtrue }
+\endgroup
+\def\produce@index#1{%
+ \if\noexpand#1\special@escape@char
+ \scan@allowedfalse \it@is@a\special@escape@char \else
+ \if\noexpand#1\bslash \it@is@a\bslash \else
+ \if\noexpand#1\space \it@is@a\space \else
+ \ifx#1\par
+ \it@is@a\space \else
+ \ifx#1\relax \else
+ \if\noexpand#1\bgroup \LeftBraceIndex \else
+ \if\noexpand#1\egroup \RightBraceIndex \else
+ \if\noexpand#1\percentchar \PercentIndex \else
+ \it@is@a{\string#1}%
+ \fi \fi \fi \fi \fi \fi \fi \fi}
+\def\macro@name#1{\edef\macro@namepart{\macro@namepart#1}%
+ \futurelet\next\more@macroname}
+\def\more@macroname{\ifcat\noexpand\next a%
+ \let\next\macro@name
+ \else \let\next\macro@finish \fi
+ \next}
+\def\macro@finish{%
+ \macro@namepart
+ \ifnot@excluded
+ \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
+ \@tempa \fi}
+\def\DoNotIndex{\begingroup \MakePrivateLetters
+ \catcode`\\12
+ \do@not@index}
+\long\def\do@not@index#1{%
+ \endgroup
+ \addto@hook\index@excludelist{#1,}}
+\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\newtoks\index@excludelist
+\index@excludelist{}
+\begingroup
+\catcode`\|=0%
+\catcode`\\=12
+|gdef|ifnot@excluded{|expandafter
+ |expanded@notin|expandafter{|expandafter
+ \|macro@namepart,}{|the|index@excludelist}}
+|endgroup
+\def\expanded@notin#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+ \ifx\expanded@notin##2}%
+ \expandafter\in@@#2#1\expanded@notin\in@@}
+\@ifundefined{actualchar}{\def\actualchar{=}}{}
+\@ifundefined{quotechar}{\def\quotechar{!}}{}
+\@ifundefined{levelchar}{\def\levelchar{>}}{}
+\@ifundefined{encapchar}{\def\encapchar{|}}{}
+\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
+\def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble
+ \string#1\actualchar
+ \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
+ \@esphack}
+
+\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
+ \@esphack}
+\begingroup
+ \catcode`\|=0
+ \catcode`\\=12
+ |gdef|@SpecialIndexHelper@#1#2|@nil{%
+ |if |noexpand#1\%
+ |gdef|@gtempa{#2}%
+ |else
+ |begingroup
+ |escapechar|m@ne
+ |expandafter|gdef|expandafter|@gtempa|expandafter{|string#1#2}%
+ |endgroup
+ |fi}
+|endgroup
+\def\SpecialIndex@#1#2{%
+ \@SpecialIndexHelper@#1\@nil
+ \def\@tempb{ }%
+ \ifcat \@tempb\@gtempa
+ \special@index{\quotechar\space\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar\space\verbatimchar#2}%
+ \else
+ \def\@tempb##1##2\relax{\ifx\relax##2\relax
+ \def\@tempc{\special@index{\quotechar##1\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar##1\verbatimchar#2}}%
+ \else
+ \def\@tempc{\special@index{##1##2\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \bslash##1##2\verbatimchar#2}}%
+ \fi}%
+ \expandafter\@tempb\@gtempa\relax
+ \@tempc
+ \fi}
+\def\SpecialMainEnvIndex#1{\@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ (environment)%
+ \encapchar main}%
+ \special@index{environments:\levelchar#1\actualchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\def\SpecialUsageIndex#1{\@bsphack
+ {\let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}%
+ \@esphack}
+\def\SpecialEnvIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (environment)\encapchar usage}%
+ \index{environments:\levelchar#1\actualchar
+ {\protect\ttfamily#1}\encapchar usage}\@esphack}
+\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\it@is@a#1{\special@index{\quotechar #1\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar#1\verbatimchar}}
+\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
+ \special@index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
+ \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+
+\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
+ \special@index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+ \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
+\@ifundefined{PercentIndex}
+ {\def\PercentIndex{\it@is@a\percentchar}}{}
+\def\OldMakeindex{\def\PercentIndex{%
+ \special@index{\quotechar\percentchar\actualchar\string\verb
+ \quotechar*\verbatimchar\quotechar\bslash
+ \percentchar\percentchar\verbatimchar}}}
+{\catcode`\%=12 \gdef\percentchar{%}}
+\newif\ifhave@multicol
+\IfFileExists{multicol.sty}{\have@multicoltrue
+ \RequirePackage{multicol}%
+ }{}
+
+\newdimen\IndexMin \IndexMin = 80pt
+\newcount\c@IndexColumns \c@IndexColumns = 3
+\ifhave@multicol
+ \renewenvironment{theindex}
+ {\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]%
+ \IndexParms \let\item\@idxitem \ignorespaces}%
+ {\end{multicols}}
+\else
+ \typeout{Can't find multicol.sty -- will use normal index layout if
+ necessary.}
+ \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+ \columnseprule \z@ \columnsep 35\p@
+ \twocolumn[\index@prologue]%
+ \IndexParms \let\item\@idxitem \ignorespaces}
+ \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\IndexPrologue#1{\@bsphack\def\index@prologue{#1}\@esphack}
+\@ifundefined{index@prologue}
+ {\def\index@prologue{\section*{Index}%
+ \markboth{Index}{Index}%
+ Numbers written in italic refer to the page
+ where the corresponding entry is described;
+ numbers underlined refer to the
+ \ifcodeline@index
+ code line of the
+ \fi
+ definition; numbers in roman refer to the
+ \ifcodeline@index
+ code lines
+ \else
+ pages
+ \fi
+ where the entry is used.
+ }}{}
+\@ifundefined{IndexParms}
+ {\def\IndexParms{%
+ \parindent \z@
+ \columnsep 15pt
+ \parskip 0pt plus 1pt
+ \rightskip 15pt
+ \mathsurround \z@
+ \parfillskip=-15pt
+ \small
+ \def\@idxitem{\par\hangindent 30pt}%
+ \def\subitem{\@idxitem\hspace*{15pt}}%
+ \def\subsubitem{\@idxitem\hspace*{25pt}}%
+ \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
+ }}{}
+\def\efill{\hfill\nopagebreak}%
+\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill}%
+\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
+\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
+ \dotfil~\ignorespaces}%
+\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
+\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
+\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
+\def\PrintIndex{\@input@{\jobname.ind}%
+ \global\let\PrintIndex\@empty}
+\def\changes{\@bsphack\begingroup\@sanitize
+ \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
+ \changes@}
+\def\changes@#1#2#3{%
+ \protected@edef\@tempa{\noexpand\glossary{#1\levelchar
+ \ifx\saved@macroname\@empty
+ \space
+ \actualchar
+ \generalname
+ \else
+ \saved@indexname
+ \actualchar
+ \string\verb\quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar
+ \fi
+ :\levelchar #3}}%
+ \@tempa\endgroup\@esphack}
+\def\saved@macroname{}
+\def\saved@indexname{}
+\def\generalname{General}
+\let\RecordChanges\makeglossary
+\newdimen\GlossaryMin \GlossaryMin = 80pt
+\newcount\c@GlossaryColumns \c@GlossaryColumns = 2
+\ifhave@multicol
+ \newenvironment{theglossary}{%
+ \begin{multicols}\c@GlossaryColumns
+ [\glossary@prologue][\GlossaryMin]%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {\end{multicols}}
+\else
+ \newenvironment{theglossary}{%
+ \@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+ \columnseprule \z@ \columnsep 35\p@
+ \twocolumn[\glossary@prologue]%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\GlossaryPrologue#1{\@bsphack
+ \def\glossary@prologue{#1}%
+ \@esphack}
+\@ifundefined{glossary@prologue}
+ {\def\glossary@prologue{\section*{{Change History}}%
+ \markboth{{Change History}}{{Change History}}%
+ }}{}
+\@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms
+ \expandafter\def\expandafter\GlossaryParms\expandafter{\GlossaryParms
+ \rightskip 15pt plus 1fil
+ \parfillskip -15pt plus -1fil\relax}
+}{}
+\def\PrintChanges{\@input@{\jobname.gls}%
+ \global\let\PrintChanges\@empty}
+\newcommand\AlsoImplementation{%
+ \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+ \check@checksum}%
+ \init@checksum
+ \@esphack}%
+ }
+\AlsoImplementation
+\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+ ##1\endinput}\@esphack}
+\let\Finale\relax
+\ifx\l@nohyphenation\undefined
+ \newlanguage\l@nohyphenation
+\fi
+\DeclareRobustCommand\meta[1]{%
+ \ensuremath\langle
+ \ifmmode \expandafter \nfss@text \fi
+ {%
+ \meta@font@select
+ \edef\meta@hyphen@restore
+ {\hyphenchar\the\font\the\hyphenchar\font}%
+ \hyphenchar\font\m@ne
+ \language\l@nohyphenation
+ #1\/%
+ \meta@hyphen@restore
+ }\ensuremath\rangle
+}
+\def\meta@font@select{\itshape}
+\def\IndexInput#1{%
+ \begingroup \macro@code
+ \frenchspacing \@vobeyspaces
+ \input{#1}\endmacrocode
+ \endgroup}
+\def\maketitle{\par
+ \begingroup \def \thefootnote {\fnsymbol {footnote}}%
+ \setcounter {footnote}\z@
+ \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
+ \if@twocolumn \twocolumn [\@maketitle ]%
+ \else \newpage \global \@topnum \z@ \@maketitle \fi
+ \thispagestyle{titlepage}\@thanks \endgroup
+ \setcounter {footnote}\z@
+ \gdef\@date{\today}\gdef\@thanks{}%
+ \gdef\@author{}\gdef\@title{}}
+\@ifundefined{ps@titlepage}
+ {\let\ps@titlepage=\ps@plain}{}
+\def\MakeShortVerb{%
+ \@ifstar
+ {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
+ {\def\@shortvrbdef{\verb}\@MakeShortVerb}}
+\def\@MakeShortVerb#1{%
+ \expandafter\ifx\csname cc\string#1\endcsname\relax
+ \@shortvrbinfo{Made }{#1}\@shortvrbdef
+ \add@special{#1}%
+ \expandafter
+ \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
+ \begingroup
+ \catcode`\~\active \lccode`\~`#1%
+ \lowercase{%
+ \global\expandafter\let
+ \csname ac\string#1\endcsname~%
+ \expandafter\gdef\expandafter~\expandafter{\@shortvrbdef~}}%
+ \endgroup
+ \global\catcode`#1\active
+ \else
+ \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+ \fi}
+\def\DeleteShortVerb#1{%
+ \expandafter\ifx\csname cc\string#1\endcsname\relax
+ \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+ \else
+ \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+ \rem@special{#1}%
+ \global\catcode`#1\csname cc\string#1\endcsname
+ \global \expandafter\let \csname cc\string#1\endcsname \relax
+ \ifnum\catcode`#1=\active
+ \begingroup
+ \catcode`\~\active \lccode`\~`#1%
+ \lowercase{%
+ \global\expandafter\let\expandafter~%
+ \csname ac\string#1\endcsname}%
+ \endgroup \fi \fi}
+\def\@shortvrbinfo#1#2#3{%
+ \PackageInfo{doc}{%
+ #1\expandafter\@gobble\string#2 a short reference
+ for \expandafter\string#3}}
+\def\add@special#1{%
+ \rem@special{#1}%
+ \expandafter\gdef\expandafter\dospecials\expandafter
+ {\dospecials \do #1}%
+ \expandafter\gdef\expandafter\@sanitize\expandafter
+ {\@sanitize \@makeother #1}}
+\def\rem@special#1{%
+ \def\do##1{%
+ \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
+ \xdef\dospecials{\dospecials}%
+ \begingroup
+ \def\@makeother##1{%
+ \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
+ \xdef\@sanitize{\@sanitize}%
+ \endgroup}
+\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
+ syntax, this is obsolete ***}\MakeShortVerb}
+\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
+ syntax, this is obsolete ***}\DeleteShortVerb}
+\def\init@checksum{\relax
+ \global\bslash@cnt\z@}
+\def\check@checksum{\relax
+ \ifnum\check@sum>\m@ne
+ \ifnum\check@sum=\z@
+ \typeout{**********************************}%
+ \typeout{* This macro file has no checksum!}%
+ \typeout{* The checksum should be \the\bslash@cnt!}%
+ \typeout{**********************************}%
+ \else
+ \ifnum\check@sum=\bslash@cnt
+ \typeout{*******************}%
+ \typeout{* Checksum passed *}%
+ \typeout{*******************}%
+ \else
+ \PackageError{doc}{Checksum not passed
+ (\the\check@sum<>\the\bslash@cnt)}%
+ {The file currently documented seems to be wrong.^^J%
+ Try to get a correct version.}%
+ \fi
+ \fi
+ \fi
+ \global\check@sum\m@ne}
+\newcount\check@sum \check@sum = \m@ne
+\newcount\bslash@cnt \bslash@cnt = \z@
+\def\CheckSum#1{\@bsphack\global\check@sum#1\relax\@esphack}
+\def\step@checksum{\global\advance\bslash@cnt\@ne}
+\def\CharacterTable{\begingroup \CharTableChanges \character@table}
+\begingroup
+ \catcode`\~=11
+ \gdef\character@table#1{\def\used~table{#1}%
+ \ifx\used~table\default~table
+ \typeout{***************************}%
+ \typeout{* Character table correct *}%
+ \typeout{***************************}%
+ \else
+ \PackageError{doc}{Character table corrupted}
+ {\the\wrong@table}
+ \show\default~table
+ \show\used~table
+ \fi
+ \endgroup}
+ \global\let\CharTableChanges\@empty
+ \makeatother
+ \gdef\default~table
+ {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+ Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+ Digits \0\1\2\3\4\5\6\7\8\9
+ Exclamation \! Double quote \" Hash (number) \#
+ Dollar \$ Percent \% Ampersand \&
+ Acute accent \' Left paren \( Right paren \)
+ Asterisk \* Plus \+ Comma \,
+ Minus \- Point \. Solidus \/
+ Colon \: Semicolon \; Less than \<
+ Equals \= Greater than \> Question mark \?
+ Commercial at \@ Left bracket \[ Backslash \\
+ Right bracket \] Circumflex \^ Underscore \_
+ Grave accent \` Left brace \{ Vertical bar \|
+ Right brace \} Tilde \~}
+\endgroup
+ \newhelp\wrong@table{Some of the ASCII characters are corrupted.^^J
+ I now \string\show\space you both tables for comparison.}
+\newif\ifcodeline@index \codeline@indexfalse
+\let\CodelineNumbered\codeline@indextrue
+\def\codeline@wrindex#1{\if@filesw
+ \immediate\write\@indexfile
+ {\string\indexentry{#1}%
+ {\number\c@CodelineNo}}\fi}
+\let\special@index = \@gobble
+\def\CodelineIndex{\makeindex
+ \codeline@indextrue
+ \let\special@index\codeline@wrindex}
+\def\PageIndex{\makeindex
+ \codeline@indexfalse
+ \let\special@index\index}
+\newcount\c@CodelineNo \c@CodelineNo\z@
+\@ifundefined{theCodelineNo}
+ {\ifx\selectfont\undefined
+ \def\theCodelineNo{\rmfamily\scriptsize\arabic{CodelineNo}}%
+ \else
+ \def\theCodelineNo{\reset@font\scriptsize\arabic{CodelineNo}}%
+ \fi}
+ {}
+ \tolerance=1000\relax
+{ \catcode`\"=12
+ \global\mathcode`\\="705C \global\mathcode`\@="7040 }
+\@ifundefined{DocstyleParms}{}{\DocstyleParms}
+\let\DocstyleParms\relax
+\@ifundefined{AmSTeX}
+ {\def\AmSTeX{\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
+ \hbox{$\mathcal M$}\kern-.2em\mathcal S$-\TeX}}}{}
+\@ifundefined{BibTeX}
+ {\def\BibTeX{{\rmfamily B\kern-.05em%
+ \textsc{i\kern-.025em b}\kern-.08em%
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
+\@ifundefined{SliTeX}
+ {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox
+ {\scshape i}\kern -.03em\TeX}}}{}
+\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{}
+\@ifundefined{Web}{\def\Web{\textsc{Web}}}{}
+\def\MakePercentIgnore{\catcode`\%9\relax}
+\def\MakePercentComment{\catcode`\%14\relax}
+\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
+\def\GetFileInfo#1{%
+ \def\filename{#1}%
+ \def\@tempb##1 ##2 ##3\relax##4\relax{%
+ \def\filedate{##1}%
+ \def\fileversion{##2}%
+ \def\fileinfo{##3}}%
+ \edef\@tempa{\csname ver@#1\endcsname}%
+ \expandafter\@tempb\@tempa\relax? ? \relax\relax}
+\endinput
+%%
+%% End of file `doc.sty'.
diff --git a/macros/latex/base/doc-v3beta.sty b/macros/latex/base/doc-2021-06-01.sty
index eeac71568c..444849f2e7 100644
--- a/macros/latex/base/doc-v3beta.sty
+++ b/macros/latex/base/doc-2021-06-01.sty
@@ -1,10 +1,10 @@
%%
-%% This is file `doc-v3beta.sty',
+%% This is file `doc.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% doc.dtx (with options: `package,beta')
+%% doc.dtx (with options: `package')
%%
%% This is a generated file.
%%
@@ -13,8 +13,8 @@
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
-%% Copyright 1993-2018
-%% The LaTeX3 Project and any individual authors listed elsewhere
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the LaTeX base system.
@@ -26,7 +26,7 @@
%% The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
+%% version 2008 or later.
%%
%% This file has the LPPL maintenance status "maintained".
%%
@@ -42,56 +42,15 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
-\DeclareRelease{v2}{2016-02-15.sty}
- {doc-2016-02-15.sty}
-\DeclareCurrentRelease{v3}{2018-04-16}
-
-\ProvidesPackage{doc-v3beta}
- [2021/02/07 v3.0e
- Standard LaTeX documentation package V3 (FMi)]
+ \ProvidesPackage{doc}
+ [2021/05/28 v2.1n
+ Standard LaTeX documentation package (FMi)]
%%
%% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2018 Frank Mittelbach, all rights reserved.
-
-
-
-
-
+%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
\@ifundefined{macro@cnt}{}{\endinput}
\catcode`\^^A=14
\AtBeginDocument{\catcode`\^^A=14\relax}
-\RequirePackage{kvoptions}
-\SetupKeyvalOptions{family=doc,prefix=doc@}
-\DeclareBoolOption{noprint}
-\DeclareBoolOption{noindex}
-\DeclareBoolOption[true]{hyperref}
-\DeclareBoolOption[true]{multicol}
-\DeclareBoolOption[false]{debugshow}
-\DeclareBoolOption[true]{toplevel}
-\DeclareComplementaryOption{notoplevel}{toplevel}
-\DeclareBoolOption{macrolike}
-\DeclareComplementaryOption{envlike}{macrolike}
-\DeclareStringOption{idxtype}
-\DeclareStringOption{idxgroup}
-\DeclareStringOption{printtype}
-\DeclareBoolOption[false]{outer}
-\ProcessKeyvalOptions*
-\newif\ifscan@allowed \scan@allowedtrue
-\def\SetupDoc#1{%
- \setkeys{doc}{#1}%
- \edef\doc@noprintdefault{\ifdoc@noprint true\else false\fi}%
- \ifdoc@noindex
- \def\doc@noindexdefault{true}%
- \scan@allowedfalse
- \else
- \def\doc@noindexdefault{false}%
- \fi
-}
-\SetupDoc{} % just save the default values
\def\macrocode{\macro@code
\frenchspacing \@vobeyspaces
\xmacro@code}
@@ -100,6 +59,7 @@
\@beginparpenalty \predisplaypenalty
\if@inlabel\leavevmode\fi
\trivlist \parskip \z@ \item[]%
+ \global\setbox\@labels\box\voidb@x
\macro@font
\leftskip\@totalleftmargin \advance\leftskip\MacroIndent
\rightskip\z@ \parindent\z@ \parfillskip\@flushglue
@@ -132,13 +92,13 @@
\usefont\encodingdefault
\ttdefault
\mddefault
- \updefault
+ \shapedefault
}%
\else
\def\MacroFont{\fontencoding\encodingdefault
\fontfamily\ttdefault
\fontseries\mddefault
- \fontshape\updefault
+ \fontshape\shapedefault
\small}%
\fi
}{}
@@ -221,7 +181,6 @@
\endgroup
\newcounter{StandardModuleDepth}
\newcount \guard@level
-
\@ifundefined{Module}{%
\def\Module#1{\mod@math@codes$\langle\mathsf{#1}\rangle$}
}{}
@@ -270,16 +229,25 @@
|endgroup
!% \end{macrocode}
\catcode`\!=12
-
+\def\DescribeMacro{\leavevmode\@bsphack
+ \begingroup\MakePrivateLetters\Describe@Macro}
+\def\Describe@Macro#1{\endgroup
+ \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
+ \SpecialUsageIndex{#1}\@esphack\ignorespaces}
+\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \Describe@Env}
+\def\Describe@Env#1{\endgroup
+ \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
+ \SpecialEnvIndex{#1}\@esphack\ignorespaces}
\reversemarginpar
\setlength\marginparpush{0pt} \setlength\marginparwidth{8pc}
-\setlength\marginparsep{\labelsep}
{\catcode`\|=\z@ \catcode`\\=12
|gdef|bslash{\}}
\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
\MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
- \MacroFont \@sxverbatim}
+ \@setupverbvisiblespace
+ \MacroFont \@vobeyspaces \@sxverbatim}
\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi
\leftskip\@totalleftmargin\rightskip\z@
\parindent\z@\parfillskip\@flushglue\parskip\z@
@@ -306,14 +274,8 @@
\obeylines%
\gdef\verb@eol@error{\obeylines%
\def^^M{\verb@egroup\@latex@error{%
- Text for \noexpand\verb command ended by end of line}\@ehc}}%
+ \noexpand\verb ended by end of line}\@ehc}}%
\endgroup
-\def\@sverb#1{%
- \catcode`#1\active \lccode`\~`#1%
- \gdef\verb@balance@group{\verb@egroup
- \@latex@error{Illegal use of \noexpand\verb command}\@ehc}%
- \aftergroup\verb@balance@group
- \lowercase{\let~\verb@egroup}}
\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
\def\do@noligs#1{%
\catcode`#1\active
@@ -321,7 +283,56 @@
\lccode`\~=`#1\relax
\lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
\newcount\macro@cnt \macro@cnt=0
+\def\macro{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iftrue}
+\def\environment{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iffalse}
+\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#2}%
+ #1
+ \let\saved@indexname\saved@macroname
+ \else
+ \edef\saved@indexname{\expandafter\@gobble\string#2}%
+ \fi
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ #1%
+ \noexpand\PrintMacroName
+ \else
+ \noexpand\PrintEnvName
+ \fi
+ {\string#2}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ #1%
+ \SpecialMainIndex{#2}\nobreak
+ \DoNotIndex{#2}%
+ \else
+ \SpecialMainEnvIndex{#2}\nobreak
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+\let\endmacro \endtrivlist
+\let\endenvironment\endmacro
\newskip\MacroTopsep \MacroTopsep = 7pt plus 2pt minus 2pt
+\@ifundefined{PrintMacroName}
+ {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeMacro}
+ {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeEnv}
+ {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
+\@ifundefined{PrintEnvName}
+ {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
\begingroup
\catcode`\~\active
\gdef\SpecialEscapechar#1{%
@@ -349,6 +360,7 @@
\def\next{\futurelet\next\macro@switch}%
\else \let\next\@empty \fi
\next}
+\newif\ifscan@allowed \scan@allowedtrue
\def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack}
\def\EnableCrossrefs{\@bsphack\scan@allowedtrue
\def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
@@ -362,10 +374,24 @@
\uccode`\&=\expandafter`\string#1%
\uppercase{\def\x{\def\macro@namepart{&}}}%
\expandafter\endgroup\x
- \maybe@index@short@macro\macro@namepart
+ \ifnot@excluded
+ \produce@index{#1}\fi
\scan@allowedfalse#1%
\scan@allowedtrue }
\endgroup
+\def\produce@index#1{%
+ \if\noexpand#1\special@escape@char
+ \scan@allowedfalse \it@is@a\special@escape@char \else
+ \if\noexpand#1\bslash \it@is@a\bslash \else
+ \if\noexpand#1\space \it@is@a\space \else
+ \ifx#1\par
+ \it@is@a\space \else
+ \ifx#1\relax \else
+ \if\noexpand#1\bgroup \LeftBraceIndex \else
+ \if\noexpand#1\egroup \RightBraceIndex \else
+ \if\noexpand#1\percentchar \PercentIndex \else
+ \it@is@a{\string#1}%
+ \fi \fi \fi \fi \fi \fi \fi \fi}
\def\macro@name#1{\edef\macro@namepart{\macro@namepart#1}%
\futurelet\next\more@macroname}
\def\more@macroname{\ifcat\noexpand\next a%
@@ -374,171 +400,41 @@
\next}
\def\macro@finish{%
\macro@namepart
- \maybe@index@macro \macro@namepart
-}
-
-\RequirePackage{expl3}
-\ExplSyntaxOn
-\seq_new:N \l__doc_donotindex_seq
-\prop_new:N \g__doc_idxtype_prop
-\cs_new:Npn\__doc_trace:x {
- \ifdoc@debugshow
- \expandafter \iow_term:x
- \else
- \expandafter \use_none:n
- \fi
-}
-\cs_new:Npn \doc_dont_index:n {
- \group_begin:
- \MakePrivateLetters
- \__doc_dont_index:n
-}
-\cs_new:Npn \__doc_dont_index:n #1 {
- \group_end:
- \__doc_trace:x{Disable~ indexing~ for~ '\tl_to_str:n{#1}' }
- \clist_map_function:nN {#1} \__doc_dont_index_aux:n
-}
-\cs_new:Npn \__doc_dont_index_aux:n #1 {
- \seq_put_right:Nx \l__doc_donotindex_seq {\expandafter\@gobble \string#1}
-}
-\cs_set_eq:NN \DoNotIndex \doc_dont_index:n
-\def \ShowIndexingState {
- \__doc_trace:x{Show~ doc~ indexing~ state:}
- \seq_show:N \l__doc_donotindex_seq
- \prop_show:N \g__doc_idxtype_prop
-}
-
-\cs_new:Npn \__doc_idxtype_put:Nn #1#2 {
- \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
- \protected@write\@auxout{}
- {\string\RecordIndexTypeAux {\string#1 }{#2} }
-}
-\cs_new:Npn \RecordIndexTypeAux #1#2 {
- \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
-}
-\AtEndDocument{
- \cs_set_eq:NN \RecordIndexTypeAux \use_none:nn
-}
-\cs_set_eq:NN \RecordIndexType \__doc_idxtype_put:Nn
-\cs_new:Npn \__doc_idxtype_put_scan:nn #1#2 {
- \exp_args:Nf \__doc_idxtype_put:nn { \tl_to_str:n {#1} }{#2}
- \protected@write\@auxout{}
- {\string\RecordIndexTypeAux {\bslash #1 }{#2} }
-}
-\cs_generate_variant:Nn \__doc_idxtype_put_scan:nn {o}
-\cs_set_eq:NN \record@index@type@save \__doc_idxtype_put_scan:on
-\cs_new:Npn \__doc_idxtype_put:nn #1#2 {
- \exp_args:NNf
- \seq_if_in:NnTF \l__doc_donotindex_seq {\tl_to_str:n{#1}}
- {
- \__doc_trace:x{Not~ recording~ index~ type~ for~ '\bslash #1' }
- }
- {
- \__doc_trace:x{Recording~ index~ type~ for~ '\bslash #1' ~ as~ #2 }
- \prop_gput:Nnn \g__doc_idxtype_prop {#1}{#2}
- }
-}
-\cs_new:Npn \exp_args:co #1#2
- { \cs:w #1 \exp_after:wN \cs_end:\exp_after:wN {#2} }
-\cs_generate_variant:Nn \tl_to_str:n {o}
-
-\cs_new:Npn \__doc_maybe_index:o #1 {
- \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
- \SpecialIndex
-}
-\cs_set_eq:NN \maybe@index@macro \__doc_maybe_index:o
-\cs_new:Npn \__doc_maybe_index_short:o #1 {
- \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
- \SpecialShortIndex
-}
-\cs_set_eq:NN \maybe@index@short@macro \__doc_maybe_index_short:o
-\cs_new:Npn \__doc_maybe_index_aux:nN #1#2 {
- \__doc_trace:x{Searching~ for~ '\bslash #1'}
- \seq_if_in:NnTF \l__doc_donotindex_seq {#1}
- {
- \__doc_trace:x{Not~ indexing~ '\bslash #1' }
- }
- {
- \prop_get:NnNTF \g__doc_idxtype_prop {#1} \l__doc_idxtype_tl
- {
- \exp_args:Ncno \__doc_maybe_index_aux:Nnn
- { Code \tl_use:N \l__doc_idxtype_tl Index }
- {code} {\bslash #1}
- }
- {
- \__doc_trace:x{Indexing~ '\bslash #1'\space (\string #2)}
- \exp_args:No #2 {\bslash #1}
- }
- }
-}
-\cs_new:Npn \SpecialShortIndex #1 {
- \@SpecialIndexHelper@ #1\@nil
- \@bsphack
- \ifdoc@noindex \else
- \str_case_e:nnF {\@gtempa }
- {
- {\cs_to_str:N \^^M } {\def\reserved@a{ \string \space \actualchar }
- \def\reserved@b { \space }
- \let\reserved@c \@empty }
- { } {\def\reserved@a{ \string \space \actualchar }
- \def\reserved@b { \space }
- \let\reserved@c \@empty }
- {\c_left_brace_str} { \def\reserved@a{ \bgroup \actualchar }
- \def\reserved@b { \c_left_brace_str }
- \def\reserved@c { \noexpand\iffalse
- \c_right_brace_str
- \noexpand\fi } }
- {\c_right_brace_str} { \def\reserved@a{ \egroup \actualchar
- \noexpand\iffalse
- \c_left_brace_str
- \noexpand\fi }
- \def\reserved@b { \c_right_brace_str }
- \let\reserved@c \@empty }
- {\verbatimchar} { \def\reserved@a{ \quotechar\verbatimchar
- \actualchar }
- \let\reserved@b \@empty
- \def\reserved@c
- { \string\texttt{\string\string\verbatimchar} } }
- }
- { \def\reserved@a {\quotechar \@gtempa \actualchar }
- \def\reserved@b {\quotechar \@gtempa }
- \let\reserved@c \@empty }
- \special@index {
- \reserved@a
- \string\verb
- \quotechar *\verbatimchar \quotechar \bslash
- \reserved@b
- \verbatimchar
- \reserved@c
- \encapchar code}
- \fi
- \@esphack
-}
-
-\cs_new:Npn \__doc_maybe_index_aux:Nnn #1#2#3 {
- \cs_if_exist:NTF #1
- {
- \__doc_trace:x{Indexing~ '#3'\space as~
- \tl_use:N \l__doc_idxtype_tl }
- #1{#2}{#3}
- }
- {
- \PackageError{doc}{Doc~ element~
- '\tl_use:N \l__doc_idxtype_tl'~ unknown}%
-
- {When~ using~ '\string\RecordIndexType'~ the~ type~ must~
- be~ known~\MessageBreak
- to~ the~ system,~ i.e.,~ declared~ via~
- '\string\NewDocElement'\MessageBreak
- before~ it~ can~ be~ used~ in~ indexing.}
- }
-}
-\ExplSyntaxOff
+ \ifnot@excluded
+ \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
+ \@tempa \fi}
+\def\DoNotIndex{\begingroup \MakePrivateLetters
+ \catcode`\\12
+ \do@not@index}
+\long\def\do@not@index#1{%
+ \endgroup
+ \addto@hook\index@excludelist{#1,}}
+\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\newtoks\index@excludelist
+\index@excludelist{}
+\begingroup
+\catcode`\|=0%
+\catcode`\\=12
+|gdef|ifnot@excluded{|expandafter
+ |expanded@notin|expandafter{|expandafter
+ \|macro@namepart,}{|the|index@excludelist}}
+|endgroup
+\def\expanded@notin#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+ \ifx\expanded@notin##2}%
+ \expandafter\in@@#2#1\expanded@notin\in@@}
\@ifundefined{actualchar}{\def\actualchar{=}}{}
\@ifundefined{quotechar}{\def\quotechar{!}}{}
\@ifundefined{levelchar}{\def\levelchar{>}}{}
\@ifundefined{encapchar}{\def\encapchar{|}}{}
\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
+\def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble
+ \string#1\actualchar
+ \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
+ \@esphack}
+
+\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
+ \@esphack}
\begingroup
\catcode`\|=0
\catcode`\\=12
@@ -552,43 +448,75 @@
|endgroup
|fi}
|endgroup
-\def\SortIndex#1#2{%
- \ifdoc@noindex\else
- \index{#1\actualchar#2}%
- \fi
-}
+\def\SpecialIndex@#1#2{%
+ \@SpecialIndexHelper@#1\@nil
+ \def\@tempb{ }%
+ \ifcat \@tempb\@gtempa
+ \special@index{\quotechar\space\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar\space\verbatimchar#2}%
+ \else
+ \def\@tempb##1##2\relax{\ifx\relax##2\relax
+ \def\@tempc{\special@index{\quotechar##1\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar##1\verbatimchar#2}}%
+ \else
+ \def\@tempc{\special@index{##1##2\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \bslash##1##2\verbatimchar#2}}%
+ \fi}%
+ \expandafter\@tempb\@gtempa\relax
+ \@tempc
+ \fi}
+\def\SpecialMainEnvIndex#1{\@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ (environment)%
+ \encapchar main}%
+ \special@index{environments:\levelchar#1\actualchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\def\SpecialUsageIndex#1{\@bsphack
+ {\let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}%
+ \@esphack}
+\def\SpecialEnvIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (environment)\encapchar usage}%
+ \index{environments:\levelchar#1\actualchar
+ {\protect\ttfamily#1}\encapchar usage}\@esphack}
+\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\it@is@a#1{\special@index{\quotechar #1\actualchar
+ \string\verb\quotechar*\verbatimchar
+ \quotechar\bslash\quotechar#1\verbatimchar}}
\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
- \special@index{\bgroup\actualchar
- \string\verb% % to fool emacs highlighting
- \quotechar*\verbatimchar
- \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+ \special@index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
+ \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
- \special@index{\egroup\actualchar\string\iffalse{\string\fi
- \string\verb% % to fool emacs highlighting
+ \special@index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
\quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
\@ifundefined{PercentIndex}
{\def\PercentIndex{\it@is@a\percentchar}}{}
\def\OldMakeindex{\def\PercentIndex{%
- \special@index{\quotechar\percentchar\actualchar
- \string\verb% % to fool emacs highlighting
+ \special@index{\quotechar\percentchar\actualchar\string\verb
\quotechar*\verbatimchar\quotechar\bslash
\percentchar\percentchar\verbatimchar}}}
{\catcode`\%=12 \gdef\percentchar{%}}
-\def\it@is@a#1{\special@index{\quotechar #1\actualchar
- \string\verb% % to fool emacs highlighting
- \quotechar*\verbatimchar
- \quotechar\bslash\quotechar#1\verbatimchar}}
+\newif\ifhave@multicol
+\IfFileExists{multicol.sty}{\have@multicoltrue
+ \RequirePackage{multicol}%
+ }{}
\newdimen\IndexMin \IndexMin = 80pt
\newcount\c@IndexColumns \c@IndexColumns = 3
-\ifdoc@multicol
- \RequirePackage{multicol}
+\ifhave@multicol
\renewenvironment{theindex}
{\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]%
\IndexParms \let\item\@idxitem \ignorespaces}%
{\end{multicols}}
\else
+ \typeout{Can't find multicol.sty -- will use normal index layout if
+ necessary.}
\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@ \columnsep 35\p@
\twocolumn[\index@prologue]%
@@ -628,15 +556,13 @@
\def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
}}{}
\def\efill{\hfill\nopagebreak}%
-\def\pfill{\unskip~%
- \leaders\hbox to.6em{\hss .\hss}\hfill
- \penalty500\strut\nobreak
- \leaders\hbox to.6em{\hss .\hss}\hfil
- ~\ignorespaces}%
+\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill\kern\z@}%
+\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}%
+\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
+ \dotfil~\ignorespaces}%
\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
-\@ifundefined{code}{\def\code#1{#1}}{}
\def\PrintIndex{\@input@{\jobname.ind}%
\global\let\PrintIndex\@empty}
\def\changes{\@bsphack\begingroup\@sanitize
@@ -644,19 +570,18 @@
\changes@}
\def\changes@#1#2#3{%
\protected@edef\@tempa{\noexpand\glossary{#1\levelchar
- \ifx\saved@macroname\@empty
- \quotechar!%
- \actualchar
- \generalname
- \else
- \saved@indexname
- \actualchar
- \string\verb% % to fool emacs highlighting
- \quotechar*%
- \verbatimchar\saved@macroname
- \verbatimchar
- \fi
- :\levelchar #3}}%
+ \ifx\saved@macroname\@empty
+ \space
+ \actualchar
+ \generalname
+ \else
+ \saved@indexname
+ \actualchar
+ \string\verb\quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar
+ \fi
+ :\levelchar #3}}%
\@tempa\endgroup\@esphack}
\def\saved@macroname{}
\def\saved@indexname{}
@@ -664,7 +589,7 @@
\let\RecordChanges\makeglossary
\newdimen\GlossaryMin \GlossaryMin = 80pt
\newcount\c@GlossaryColumns \c@GlossaryColumns = 2
-\ifdoc@multicol
+\ifhave@multicol
\newenvironment{theglossary}{%
\begin{multicols}\c@GlossaryColumns
[\glossary@prologue][\GlossaryMin]%
@@ -693,16 +618,15 @@
\def\PrintChanges{\@input@{\jobname.gls}%
\global\let\PrintChanges\@empty}
\newcommand\AlsoImplementation{%
- \long\def\MaybeStopHere##1{\@bsphack\gdef\Finale{##1%
+ \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
\check@checksum}%
\init@checksum
\@esphack}%
}
\AlsoImplementation
-\def\OnlyDescription{\@bsphack\long\def\MaybeStopHere##1{%
+\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
##1\endinput}\@esphack}
\let\Finale\relax
-\def\StopEventually{\MaybeStopHere}
\ifx\l@nohyphenation\undefined
\newlanguage\l@nohyphenation
\fi
@@ -758,20 +682,13 @@
\endgroup
\global\catcode`#1\active
\else
- \@shortvrbinfo\@empty{#1 already}%
- {\@empty\verb% % to fool emacs highlighting
- (*)}%
+ \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
\fi}
\def\DeleteShortVerb#1{%
\expandafter\ifx\csname cc\string#1\endcsname\relax
- \@shortvrbinfo\@empty{#1 not}%
- {\@empty\verb% % to fool emacs highlighting
- (*)}%
+ \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
\else
- \@shortvrbinfo{Deleted }{#1 as}%
- {\@empty\verb% % to fool emacs
- % highlighting
- (*)}%
+ \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
\rem@special{#1}%
\global\catcode`#1\csname cc\string#1\endcsname
\global \expandafter\let \csname cc\string#1\endcsname \relax
@@ -801,6 +718,10 @@
\ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
\xdef\@sanitize{\@sanitize}%
\endgroup}
+\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
+ syntax, this is obsolete ***}\MakeShortVerb}
+\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
+ syntax, this is obsolete ***}\DeleteShortVerb}
\def\init@checksum{\relax
\global\bslash@cnt\z@}
\def\check@checksum{\relax
@@ -866,13 +787,9 @@
\newif\ifcodeline@index \codeline@indexfalse
\let\CodelineNumbered\codeline@indextrue
\def\codeline@wrindex#1{\if@filesw
- \begingroup
- \set@display@protect
\immediate\write\@indexfile
{\string\indexentry{#1}%
- {\number\c@CodelineNo}}%
- \endgroup
- \fi}
+ {\number\c@CodelineNo}}\fi}
\let\special@index = \@gobble
\def\CodelineIndex{\makeindex
\codeline@indextrue
@@ -916,326 +833,6 @@
\def\fileinfo{##3}}%
\edef\@tempa{\csname ver@#1\endcsname}%
\expandafter\@tempb\@tempa\relax? ? \relax\relax}
-
-\ifdoc@hyperref
- \let\PrintDescribeMacro \@empty
- \let\PrintDescribeEnv \@empty
- \let\PrintMacroName \@empty
- \let\PrintEnvName \@empty
- \let\SpecialUsageIndex \@empty
- \let\SpecialEnvIndex \@empty
- \expandafter\let\expandafter\doc@eoph@@k\csname doc.sty-h@@k\endcsname
- \RequirePackage{hypdoc}
- \expandafter\let\csname doc.sty-h@@k\endcsname\doc@eoph@@k
- \let\PrintDescribeMacro \relax
- \let\PrintDescribeEnv \relax
- \let\PrintMacroName \relax
- \let\PrintEnvName \relax
- \def\doc@providetarget{\HD@target}
- \def\doc@handleencap#1{\encapchar hdclindex{\the\c@HD@hypercount}{#1}}
-\else
- \let\doc@providetarget\@empty
- \def\doc@handleencap#1{\encapchar #1}
- \def\hdclindex#1#2{\ifx\@nil#2\@nil\else\csname #2\expandafter\endcsname\fi}
- \def\hdpindex #1{\ifx\@nil#1\@nil\else\csname #1\expandafter\endcsname\fi}
-\fi
-
-
-\ExplSyntaxOn
-
-\long\def\@doc@env#1#2#3{
- \endgroup
- \clist_map_inline:nn {#3} { \@doc@env@{#1}{#2}{##1} }
-}
-
-\ExplSyntaxOff
-\long\def\@doc@env@#1#2#3{%
- \topsep\MacroTopsep
- \trivlist
- \edef\saved@macroname{\string#3}%
- \if #1%
- \edef\saved@indexname{\expandafter\@gobble\saved@macroname}%
- \expandafter\ifx
- \csname Code#2Index\endcsname
- \CodeMacroIndex
- \else
- \record@index@type@save
- {\saved@indexname}{#2}%
- \fi
- \else
- \let\saved@indexname\saved@macroname
- \fi
- \def\makelabel##1{\llap{##1}}%
- \if@inlabel
- \let\@tempa\@empty
- \count@\macro@cnt
- \loop\ifnum\count@>\z@
- \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
- \repeat
- \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
- \advance\macro@cnt\@ne
- \else
- \macro@cnt\@ne
- \fi
- \ifdoc@noprint
- \item
- \else
- \edef\@tempa{%
- \noexpand\item[%
- \noexpand\doc@providetarget
- \noexpand\strut
- \noexpand\@nameuse{Print#2Name}{\saved@macroname}]}%
- \@tempa
- \fi
- \ifdoc@noindex\else
- \global\advance\c@CodelineNo\@ne
- \csname SpecialMain#2Index\expandafter\endcsname
- \expandafter{\saved@macroname}\nobreak
- \global\advance\c@CodelineNo\m@ne
- \fi
- \if#1\expandafter\DoNotIndex \expandafter {\saved@macroname}\fi
- \ignorespaces}
-
-\def\doc@env#1#2[#3]{%
- \@nameuse{doc@noprint\doc@noprintdefault}%
- \@nameuse{doc@noindex\doc@noindexdefault}%
- \setkeys{doc}{#3}%
- \begingroup
- \ifdoc@outer
- \catcode`\\12
- \fi
- \MakePrivateLetters
- \@doc@env{#1}{#2}%
-}
-
-\def\@doc@describe#1#2{%
- \ifdoc@noprint\else
- \marginpar{\raggedleft
- \strut
- \doc@providetarget
- \@nameuse{PrintDescribe#1}{#2}}%
- \fi
- \ifdoc@noindex\else
- \@nameuse{Special#1Index}{#2}%
- \fi
- \@esphack
- \endgroup
- \ignorespaces}
-\def\doc@describe#1[#2]{%
- \leavevmode\@bsphack
- \setkeys{doc}{#2}%
- \@doc@describe{#1}}
-\@ifundefined{temptokenb}{\newtoks\@temptokenb}{}
-\def\doc@createspecialindexes#1#2#3{%
- \@temptokena{\space (#2)}%
- \@temptokenb{#3:}%
- \@nameedef{SpecialMain#1Index}##1{%
- \noexpand\@bsphack
- \ifdoc@toplevel
- \noexpand\special@index{##1\noexpand\actualchar
- {\string\ttfamily\space##1}%
- \ifx\@nil#2\@nil\else \the\@temptokena \fi
- \noexpand\encapchar main}%
- \fi
- \ifx\@nil#3\@nil\else
- \noexpand\special@index{\the\@temptokenb\noexpand\levelchar
- ##1\noexpand\actualchar{\string\ttfamily\space##1}%
- \noexpand\encapchar main}%
- \fi
- \noexpand\@esphack}%
- \@nameedef{Special#1Index}##1{%
- \noexpand\@bsphack
- \ifdoc@toplevel
- \noexpand\doc@providetarget
- \noexpand\index{##1\noexpand\actualchar{\string\ttfamily\space##1}%
- \ifx\@nil#2\@nil\else \the\@temptokena \fi
- \noexpand\doc@handleencap{usage}}%
- \fi
- \ifx\@nil#3\@nil\else
- \noexpand\index{\the\@temptokenb\noexpand\levelchar
- ##1\noexpand\actualchar{\string\ttfamily\space##1}%
- \noexpand\doc@handleencap{usage}}%
- \fi
- \noexpand\@esphack}}
-\def\doc@createspecialmacrolikeindexes#1#2#3{%
- \@temptokena{\space (#2)}%
- \@temptokenb{#3:}%
- \@nameedef{Code#1Index}##1##2{%
- \noexpand\@SpecialIndexHelper@##2\noexpand\@nil
- \noexpand\@bsphack
- \noexpand\ifdoc@noindex\noexpand\else
- \ifdoc@toplevel
- \noexpand\special@index{\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\ifx\@nil#2\@nil\else \the\@temptokena \fi
-\noexpand\encapchar ##1}%
- \fi
- \ifx\@nil#3\@nil\else
- \noexpand\special@index{\the\@temptokenb\noexpand\levelchar
-\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\noexpand\encapchar ##1}%
- \fi
- \noexpand\fi
- \noexpand\@esphack}%
- \@nameedef{SpecialMain#1Index}##1{%
- \expandafter\noexpand\csname Code#1Index\endcsname
- {main}{##1}}%
- \@nameedef{Special#1Index}##1{%
- \noexpand\@SpecialIndexHelper@##1\noexpand\@nil
- \noexpand\@bsphack
- \noexpand\ifdoc@noindex\noexpand\else
- \ifdoc@toplevel
- \noexpand\doc@providetarget
- \noexpand\index{\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\ifx\@nil#2\@nil\else \the\@temptokena \fi
-\noexpand\doc@handleencap{usage}}%
- \fi
- \ifx\@nil#3\@nil\else
- \noexpand\index{\the\@temptokenb\noexpand\levelchar
-\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\noexpand\doc@handleencap{usage}}%
- \fi
- \noexpand\fi
- \noexpand\@esphack}}
-
-\def\doc@createdescribe#1{%
- \@namedef{Describe#1}{%
- \begingroup
- \MakePrivateLetters
- \@ifnextchar[%]
- {\doc@describe{#1}}{\doc@describe{#1}[]}}}
-\def\doc@createenv#1#2#3{%
- \@namedef{#3}{%
- \@ifnextchar[%]
- {\doc@env{#1}{#2}}{\doc@env{#1}{#2}[]}}%
- \@namedef{end#3}{\endtrivlist}%
-}
-
-\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
-
-
-\def\doc@declareerror#1#2{%
- \PackageError{doc}{Doc element '#1/#2' already defined?\@gobble}%
- {There is already a definition for
- '\string\Print#1Name',\MessageBreak
- '\string\PrintDescribe#1'
- or the environment '#2'.\MessageBreak
- Maybe you are overwriting something by mistake!\MessageBreak
- Otherwise use '\string\RenewDocElement' instead.}%
-}
-
-\def\doc@notdeclarederror#1#2{%
- \PackageError{doc}{Doc element '#1/#2' unknown}%
- {I expected an existing definition for
- '\string\Print#1Name',\MessageBreak
- '\string\PrintDescribe#1' and
- the environment '#2' but\MessageBreak
- not all of them are defined.\MessageBreak
- Maybe you wanted to use
- '\string\NewDocElement'?}%
-}
-\newcommand\NewDocElement[3][]{%
- \@ifundefined{Print#2Name}%
- {\@ifundefined{PrintDescribe#2}%
- {\@ifundefined{#3}%
- {\@ifundefined{end#3}%
- {\@NewDocElement{#1}}%
- \doc@declareerror
- }\doc@declareerror
- }\doc@declareerror
- }\doc@declareerror
- {#2}{#3}%
-}
-\newcommand\RenewDocElement[3][]{%
- \@ifundefined{Print#2Name}\doc@notdeclarederror
- {\@ifundefined{PrintDescribe#2}\doc@notdeclarederror
- {\@ifundefined{#3}\doc@notdeclarederror
- {\@ifundefined{end#3}\doc@notdeclarederror
- {\@NewDocElement{#1}}%
- }%
- }%
- }%
- {#2}{#3}%
-}
-\def\@NewDocElement#1#2#3{%
- \doc@macrolikefalse
- \doc@topleveltrue
- \def\doc@idxtype{#3}%
- \def\doc@idxgroup{#3s}%
- \let\doc@printtype\@empty
- \setkeys{doc}{#1}%
- \ifx\doc@printtype\@empty
- \@temptokena{}%
- \else
- \@temptokena\expandafter{\expandafter
- \textnormal\expandafter{\expandafter
- \space\expandafter
- (\doc@printtype)}}%
- \fi
- \@nameedef{Print#2Name}##1{%
- {\noexpand\MacroFont
- \ifdoc@macrolike
- \noexpand\string
- \fi
- ##1%
- \the\@temptokena
- }}%
- \expandafter\let\csname PrintDescribe#2\expandafter\endcsname
- \csname Print#2Name\endcsname
- \edef\doc@expr{%
- \ifdoc@macrolike
- \noexpand\doc@createspecialmacrolikeindexes
- \else
- \noexpand\doc@createspecialindexes
- \fi
- {#2}%
- }%
- \expandafter\expandafter\expandafter
- \doc@expr
- \expandafter\expandafter\expandafter
- {\expandafter\doc@idxtype\expandafter}\expandafter
- {\doc@idxgroup}%
- \doc@createdescribe{#2}%
- \ifdoc@macrolike
- \doc@createenv{TT}{#2}{#3}%
- \else
- \doc@createenv{TF}{#2}{#3}%
- \fi
-}
-
-
-\NewDocElement[macrolike = true ,
- idxtype = ,
- idxgroup = ,
- printtype =
- ]{Macro}{macro}
-
-\def\SpecialMainIndex{\SpecialMainMacroIndex}
-
-\def\SpecialUsageIndex{\SpecialMacroIndex}
-
-\def\SpecialIndex {\CodeMacroIndex{code}}
-
-\NewDocElement[macrolike = false ,
- idxtype = env. ,
- idxgroup = environments ,
- printtype = \textit{env.}
- ]{Env}{environment}
-
-
-\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}
-
\endinput
%%
-%% End of file `doc-v3beta.sty'.
+%% End of file `doc.sty'.
diff --git a/macros/latex/base/doc-code.pdf b/macros/latex/base/doc-code.pdf
new file mode 100644
index 0000000000..9d52323c41
--- /dev/null
+++ b/macros/latex/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex/base/doc-code.tex b/macros/latex/base/doc-code.tex
new file mode 100644
index 0000000000..6457d22e03
--- /dev/null
+++ b/macros/latex/base/doc-code.tex
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\AlsoImplementation}
+\input{doc.dtx}
diff --git a/macros/latex/base/doc.dtx b/macros/latex/base/doc.dtx
index 41bc073315..d6b21744df 100644
--- a/macros/latex/base/doc.dtx
+++ b/macros/latex/base/doc.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
-% The LaTeX Project and any individual authors listed elsewhere
+% Copyright 1993-2022
+% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
@@ -33,10 +33,20 @@
% ^^A category for `<'
%\catcode`\<=14
%<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%<+package> \ProvidesPackage{doc}
+%<+package>
+%<+package>\providecommand\DeclareRelease[3]{}
+%<+package>\providecommand\DeclareCurrentRelease[2]{}
+%<+package>
+%<+package>\DeclareRelease{v2.1g}{2016-02-15}
+%<+package> {doc-2016-02-15.sty}
+%<+package>\DeclareRelease{v2}{2021-06-01}
+%<+package> {doc-2021-06-01.sty}
+%<+package>\DeclareCurrentRelease{v3}{2022-06-01}
+%<+package>
+%<+package>\ProvidesPackage{doc}
%<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb> [2021/10/04 v2.1n
-%<+package|shortvrb> Standard LaTeX documentation package (FMi)]
+%<+package|shortvrb> [2022/06/08 v3.0j
+%<+package|shortvrb> Standard LaTeX documentation package V3 (FMi)]
%\catcode`\<=12
%
%%
@@ -47,7 +57,7 @@
%
%
%% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1989-2022 Frank Mittelbach, all rights reserved.
%
%
% Version: Date: Changes:
@@ -128,18 +138,104 @@
% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault}
% \DoNotIndex{\bfdefault}
%
-% \MakeShortVerb{\"}
+% \MakeShortVerb{\|}
% \setcounter{StandardModuleDepth}{1}
%
% {\catcode`\p=12 \catcode`\t=12 ^^A hack used later on to print
-% \gdef\dimenvalue#1pt{$#1$pt}} ^^A register values with a - sign
+% \gdef\dimenvalue#1pt{$#1$pt}} ^^A a register value with a - sign
+%
+% \newcommand{\DOC}{\texttt{doc}\xspace}
+%
+% \changes{v3.0j}{2022/06/02}{Use \cs{providecommand} to define \cs{pkg}}
+% \providecommand\env{\texttt}
+% \providecommand\opt{\texttt}
+% \providecommand\cls{\texttt}
+% \providecommand\pkg{\texttt}
+% \providecommand\prg{\textsf}
+%
+% \newcommand\DOX{\env{DoX}\xspace}
+% \newcommand\api{\textsc{api}\xspace}
+%
+% \newcommand\fmi[1]{\par\textbf{TODO: }\textit{#1}\par}
+%
+% \newcommand\NewIn[1]{\leavevmode
+% \marginpar{\hfill\fbox{\fbox{New in #1}}\hspace*{1em}}\ignorespaces}
+%
+%
+%\RenewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = LaTeX comands\actualchar\LaTeX{} commands ,
+% printtype =
+% ]{Macro}{macro}
+%
+%\RenewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = env. ,
+% idxgroup = Package environments,
+% printtype = \textit{env.}
+% ]{Env}{environment}
+%
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = Package commands,
+% printtype =
+% ]{InterfaceMacro}{imacro}
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = Package commands (obsolete),
+% printtype =
+% ]{ObsoleteInterfaceMacro}{omacro}
+%
+%\NewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = counter ,
+% idxgroup = LaTeX counters\actualchar \LaTeX{} counters ,
+% printtype = \textit{counter}
+% ]{LaTeXCounter}{lcounter}
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = counter ,
+% idxgroup = TeX counters\actualchar \protect\TeX{} counters ,
+% printtype = \textit{counter}
+% ]{TeXCounter}{tcounter}
+%
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = skip ,
+% idxgroup = LaTeX length\actualchar \LaTeX{} length (skip) ,
+% printtype = \textit{skip}
+% ]{LaTeXSkip}{lskip}
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = dimen ,
+% idxgroup = LaTeX length\actualchar \LaTeX{} length (dimen) ,
+% printtype = \textit{dimen}
+% ]{LaTeXDimen}{ldimen}
+%
+%\NewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = option ,
+% idxgroup = Package options ,
+% printtype = \textit{option}
+% ]{Option}{option}
+%
+% \renewcommand\code[1]{\mbox{$\ell$-#1}}
+% \renewcommand\main[1]{\underline{\mbox{$\ell$-#1}}}
+% \setcounter{IndexColumns}{2}
%
-% \newcommand{\DOC}{\texttt{doc}}
%
% \changes{v1.9t}{1995/05/11}{Use \cs{GetFileInfo}}
% \GetFileInfo{doc.sty}
%
-% \CheckSum{2213} ^^A % keep the checksum in this file
+% \CheckSum{0} ^^A % keep the checksum in this file but not now :-)
%
% \title{The \DOC{} and \texttt{shortvrb} Packages\thanks
% {This file has version number \fileversion{} dated \filedate{}.}}
@@ -149,190 +245,77 @@
% provided by Andrew Mills; fairly substantial additions,
% particularly from \texttt{newdoc}, and
% documentation of post-v1.5q features added at v1.7a by Dave
-% Love (SERC Daresbury Lab). Extraction of \texttt{shortvrb}
-% package added by Joachim Schrod (TU~Darmstadt).}}
+% Love (SERC Daresbury Lab).}~\thanks
+% {Extraction of \texttt{shortvrb}
+% package added by Joachim Schrod (TU~Darmstadt).}~\thanks
+% {Version~3 now integrates code from Didier Verna's
+% \DOX package and some of his documentation was
+% reused (a.k.a.\ stolen).}}
+% \date{Printed \today}
%
% \MaintainedByLaTeXTeam{latex}
+%
% \maketitle
%
% \begin{abstract}
-% This package contains the definitions that are necessary to
-% format the documentation of package files. The package was
-% developed in Mainz in cooperation with the Royal Military College
-% of Science. This is an update which documents various changes
-% and new features in \DOC{} and integrates the features of
-% \textsf{newdoc}.
+% Roughly 30 years ago (version 1.0 was dated 1988/05/05) I wrote
+% the first version of the \DOC package, a package to provide code
+% documentation for \TeX{} code. Since then it has be used all over
+% the place to document the \LaTeX{} kernel and most of the
+% packages that are nowadays available. The core code of version 2
+% (which is the current version) exists since 1998, i.e., for 20
+% years.
+%
+% If I would restart from scratch I would do a lot of things
+% differently these days and in fact several other people have
+% tried to come up with better solutions. However, as the saying
+% goes, a bad standard is better than none, \DOC has prevailed and
+% changing it now in incompatible ways is probably not really
+% helpful.
+%
+% So this is version 3 of the package with some smaller extensions
+% that are upwards compatible but hopefully serve well. Most
+% important modifications are the integration of the
+% \pkg{hypdoc} package to enable links within the document (in
+% particular from the index) if so desired. Also integrated are the
+% ideas from the \DOX package by Didier Verna (although I
+% offer a different interface that imho fits better with the rest
+% of \DOC's interfaces). Finally I updated a few odds and ends.
% \end{abstract}
%
-% \newif\ifmulticols
-% \IfFileExists{multicol.sty}{\multicolstrue}{}
%
-% \ifmulticols
+% \newpage
+%
% \addtocontents{toc}{\protect\begin{multicols}{2}}
-% \fi
%
-% {\parskip 0pt ^^A We have to reset \parskip
+% ^^A{\parskip 0pt ^^A We have to reset \parskip
% ^^A (bug in \LaTeX)
% \tableofcontents
-% }
+% ^^A}
%
% \changes{v1.7a}{1992/02/25}{Miscellaneous small changes to the text}
+% \changes{v3.0a}{2018/03/04}{Integrated DoX package}
+% \changes{v3.0a}{2018/03/04}{Interfaced hypdoc package}
%
-% \ifmulticols
-% \begin{multicols}{2}[\section*{Preface to version 1.7}]
-% \else \section*{Preface to version 1.7} \fi
-%
-% This version of \texttt{doc.dtx} documents changes which have occurred
-% since the last published version \cite{art:doc} but which have been
-% present in distributed versions of \texttt{doc.sty} for some time. It
-% also integrates the (undocumented) features of the distributed
-% \texttt{newdoc.sty}.
-%
-% The following changes and additions have been made to the user
-% interface since the published version~\cite{art:doc}. See
-% \S\ref{sec:interface} for more details.
-% \begin{description}
-% \item[Driver mechanism] "\DocInput" is now used in the driver file
-% to input possibly multiple independent \DOC{} files and \DOC{} no
-% longer has to be the last package. "\IndexListing" is replaced
-% by "\IndexInput";
-% \item[Indexing] is controlled by "\PageIndex" and "\CodelineIndex",
-% one of which must be specified to produce an index---there is no
-% longer a "\makeindex" in the default "\DocstyleParms";
-% \item[The \texttt{macro} environment] now takes as argument the
-% macro name {\em with\/} the backslash;
-% \item[Verbatim text] Newlines are now forbidden inside "\verb" and
-% commands "\MakeShortVerb" and "\DeleteShortVerb" are provided for
-% verbatim shorthand;
-% \item[\texttt{\bslash par}] can now be used in "\DoNotIndex";
-% \item[Checksum/character table support] for ensuring the integrity
-% of distributions is added;
-% \item[\texttt{\bslash printindex}] becomes "\PrintIndex";
-% \item[\texttt{multicol.sty}] is no longer necessary to use \DOC{} or
-% print the documentation (although it is recommended);
-% \item[`Docstrip' modules] are recognised and formatted specially.
-% \end{description}
-%
-% As well as adding some completely new stuff,
-% the opportunity has been taken to add some commentary to the code
-% formerly in \texttt{newdoc.sty} and that added after version 1.5k of
-% \texttt{doc.sty}. Since (as noted in the sections concerned) this
-% commentary wasn't written by Frank Mittelbach but the code was, it is
-% probably {\em not\/} true in this case that ``if the code and
-% comments disagree both are probably wrong''!
%
-% \subsection*{Bugs}
%
-% There are some known bugs in this version:
-% \begin{itemize}
-% \item The "\DoNotIndex" command doesn't work for some single
-% character commands most noticeable "\%".
-% \item The `General changes' glossary entry would come out after
-% macro names with a leading "!" and possibly a leading |"|;
-% \item If you have an old version of \textsf{makeindex} long "\changes"
-% entries will come out strangely and you may find the section
-% header amalgamated with the first changes entry. Try to get an
-% up-to-date one (see p.~\pageref{makeindex:version});
-% \item Because the accompanying \textsf{makeindex} style files support
-% the inconsistent attribute specifications of older and newer
-% versions \textsf{makeindex} always complains about three `unknown
-% specifier's when sorting the index and changes entries.
-% \item If "\MakeShortVerb" and "\DeleteShortVerb" are used with
-% single character arguments, e.g., "{|}" instead of "{\|}" chaos
-% may happen.
-% \end{itemize}
-% (Some `features' are documented below.)
-%
-% \subsection*{Wish list}
-%
-% \begin{itemize}
-% \item Hooks to allow "\DescribeMacro" and "\DescribeEnv" to write
-% out to a special file information about the package's `exported'
-% definitions which they describe. This could subsequently be
-% included in the \texttt{docstrip}ped \texttt{.sty} file in a
-% suitable form for use by smart editors in command completion,
-% spelling checking etc., based on the packages used in a document.
-% This would need agreement on a `suitable form'. \item Indexing of
-% the modules used in \texttt{docstrip}'s "%<" directives. I'm not
-% sure how to index directives containing module combinations; \item
-% Writing out bibliographic information about the package; \item Allow
-% turning off use of the special font for, say, the next guarded
-% block.
-% \end{itemize}
-%
-% \ifmulticols
-% \end{multicols}
-%
-% \begin{multicols}{2}[\medskip \rule{\textwidth}{.3pt}
-% \section{Introduction}]
-% \else
% \section{Introduction}
-% \fi
-%
-% The \TeX{} macros which are described here allow definitions and
-% documentation to be held in one and the same file. This has the
-% advantage that normally very complicated instructions are made
-% simpler to understand by comments inside the definition. In addition
-% to this, updates are easier and only one source file needs to be
-% changed. On the other hand, because of this, the package files are
-% considerably longer: thus \TeX{} takes longer to load them. If this
-% is a problem, there is an easy remedy: one needs only to run the
-% \texttt{docstrip.tex} program that removes nearly all lines that begin
-% with a
-% percent sign.
%
-% The idea of integrated documentation was born with the development
-% of the \TeX{} program; it was crystallized in Pascal with the \Web{}
-% system. The advantages of this method are plain to see (it's easy
-% to make comparisons \cite{art:Knuthliterat}). Since this
-% development, systems similar to \Web{} have been developed for other
-% programming languages. But for one of the most complicated
-% programming languages (\TeX) the documentation has however been
-% neglected. The \TeX{} world seems to be divided between:---
-% \begin{itemize} \item a couple of ``wizards'', who produce many
-% lines of completely unreadable code ``off the cuff'', and \item many
-% users who are amazed that it works just how they want it to do. Or
-% rather, who despair that certain macros refuse to do what is
-% expected of them.\end{itemize}
+% This is a new version of the \DOC package, written roughly 30 years
+% after the initial release. As the package has been used for so long
+% (and largely unchanged)
+% it is absolutely important to preserve existing interfaces, even if
+% we can agree that they could have been done better.
%
-% I do not think that the \Web{} system is {\em the\/} reference work;
-% on the contrary, it is a prototype which suffices for the
-% development of programs within the \TeX{} world. It is sufficient,
-% but not totally sufficient.\footnote{I know that this will be seen
-% differently by a few people, but this product should not be seen as
-% the finished product, at least as far as applications concerning
-% \TeX{} are concerned. The long-standing debate over `multiple
-% change files' shows this well.} As a result of \Web, new programming
-% perspectives have been demonstrated; unfortunately, though, they
-% haven't been developed further for other programming languages.
+% So this is a light-weight change, basically adding hyperlink support
+% and adding a way to provide generally \DOC elements (not just macros
+% and environments) and try to do this properly (which wasn't the case
+% for environments either in the past). The ideas for this have been
+% stolen from the \DOX package by Didier Verna even though I
+% didn't keep his interfaces.
%
-% The method of documentation of \TeX{} macros which I have introduced
-% here should also only be taken as a first sketch. It is designed
-% explicitly to run under \LaTeX{} alone. Not because I was of the
-% opinion that this was the best starting point, but because from this
-% starting point it was the quickest to develop.\footnote{This
-% argument is a bad one, however, it is all too often trotted out.} As
-% a result of this design decision, I had to move away from the
-% concept of modularization; this was certainly a step backward.
-%
-% I would be happy if this article could spark off discussion over
-% \TeX\ documentation. I can only advise anyone who thinks that they
-% can cope without documentation to ``Stop Time'' until he or she
-% completely understands the \AmSTeX{} source code.
-%
-%
-%
-%
-%
-% \subsection{Using the \DOC{} package}
-%
-% Just like any other package, invoke it by requesting it with a
-% |\usepackage| command in the preamble. \textsf{Doc}'s use of
-% |\reversemarginpars| may make it incompatible with some classes.
-% \changes{v1.7a}{1992/02/25}{Altered usage info}
-%
-%
-% \ifmulticols\end{multicols}\fi
+% Most of the documentation below is from the earlier release which
+% accounts for some inconsistencies in presentation, mea culpa.
%
%
% \section{The User Interface}\label{sec:interface}
@@ -342,36 +325,38 @@
% package one has to prepare a special driver file which produces the
% formatted document. This driver file has the following
% characteristics:
-%
-% \noindent |\documentclass[|\meta{options}]^^A
-% |{|\meta{document-class}|}|\\[1pt]
+% \begin{quote}
+% \noindent |\documentclass|\oarg{options}^^A
+% \marg{document-class}\\[1pt]
% |\usepackage{doc}|\\[3pt]
% \hspace*{10pt}\meta{preamble}\\[3pt]
% |\begin{document}|\\[3pt]
% \hspace*{10pt}\meta{special input commands}\\[3pt]
% |\end{document}|
-%
-% The \meta{document-class} might be any document class, I normally
+% \end{quote}
+% The \meta{document-class} might be any document class, I usually
% use \texttt{article}.
%
% In the \meta{preamble} one should place declarations which
% manipulate the behavior of the \DOC{} package like
% |\DisableCrossrefs| or |\OnlyDescription|.
%
-% \DescribeMacro\DocInput \DescribeMacro\IndexInput
-% Finally the \meta{special input commands} part should contain one or
-% more |\DocInput|\meta{file name} and/or
-% |\IndexInput|\meta{file name} commands. The
+%
+% \DescribeInterfaceMacro\DocInput \DescribeInterfaceMacro\IndexInput
+% Finally
+% the \meta{special input commands} part should contain one or
+% more |\DocInput|\marg{file name} and/or
+% |\IndexInput|\marg{file name} commands. The
% |\DocInput| command is used for files prepared for the
% \DOC{} package whereas |\IndexInput| can be used for all kinds of
% macro files. See page \pageref{..Input} for more details of
-% "\IndexInput". Multiple "\DocInput"s can be used with a
+% |\IndexInput|. Multiple |\DocInput|s can be used with a
% number of included files which are each self-contained
% self-documenting packages---for instance, each containing
-% "\maketitle".
+% |\maketitle|.
%
% As an example, the driver file for the \DOC{} package itself is
-% the following text surrounded by "%<*driver>" and "%</driver>".
+% the following text surrounded by |%<*driver>| and |%</driver>|.
% To produce the documentation you can simply run the \texttt{.dtx}
% file through \LaTeX{} in which case this code will be executed
% (loading the document class \texttt{ltxdoc}, etc.) or you can
@@ -379,7 +364,7 @@
% the \texttt{docstrip} program.
% The line numbers below are added by
% \DOC{}'s formatting.
-% Note that the class \textsf{ltxdoc} has the \DOC{} package
+% Note that the class \cls{ltxdoc} has the \DOC{} package
% preloaded.
% \changes{v1.7a}{1992/03/06}{Added
% docstrip-derivable driver file as example.}
@@ -387,20 +372,83 @@
% \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
+
+\usepackage[T1]{fontenc}
+\usepackage{xspace}
+
+\OnlyDescription
+
\EnableCrossrefs
- %\DisableCrossrefs % Say \DisableCrossrefs if index is ready
+ %\DisableCrossrefs % Say \DisableCrossrefs if index is ready
\CodelineIndex
-\RecordChanges % Gather update information
- %\OnlyDescription % comment out for implementation details
- %\OldMakeindex % use if your MakeIndex is pre-v2.9
-\setlength\hfuzz{15pt} % dont make so many
-\hbadness=7000 % over and under full box warnings
+\RecordChanges % Gather update information
+\SetupDoc{reportchangedates}
+ %\OnlyDescription % comment out for implementation details
+\setlength\hfuzz{15pt} % don't show so many
+\hbadness=7000 % over- and underfull box warnings
\begin{document}
\DocInput{doc.dtx}
\end{document}
%</driver>
% \end{macrocode}
%
+% \RecordIndexType{\CodelineIndex}{InterfaceMacro}
+% \RecordIndexType{\DisableCrossrefs}{InterfaceMacro}
+% \RecordIndexType{\DocInput}{InterfaceMacro}
+% \RecordIndexType{\EnableCrossrefs}{InterfaceMacro}
+% \RecordIndexType{\OnlyDescription}{InterfaceMacro}
+% \RecordIndexType{\RecordChanges}{InterfaceMacro}
+% \RecordIndexType{\hbadness}{TeXCounter}
+% \RecordIndexType{\hfuzz}{LaTeXDimen}
+%
+%
+% \subsection{Package options}
+%
+% \NewIn{v3}
+% Starting with version~3 the \DOC package now offers a small number
+% of package options to modify its overall behavior. These are:
+% \DescribeOption[noprint]{multicol}
+% \DescribeOption[noprint]{nomulticol}
+% \DescribeOption[noprint]{hyperref}
+% \DescribeOption[noprint]{nohyperref}
+% \DescribeOption[noprint]{debugshow}
+% \DescribeOption[noprint]{noindex}
+% \DescribeOption[noprint]{noprint}
+% \DescribeOption[noprint]{reportchangedates}
+% \begin{description}
+% \item[\opt{hyperref}, \opt{nohyperref}] Boolean (default \texttt{true}). Load the
+% \pkg{hyperref} package and make index references to code lines
+% and pages and other items clickable links. \opt{nohyperref} is
+% the complementary key.
+%
+% \item[\opt{multicol}, \opt{nomulticol}] Boolean (default \texttt{true}). Load the
+% \pkg{multicol} package for use in typesetting the index and the
+% list of changes. \opt{nomulticol} is
+% the complementary key.
+%
+% \item[\opt{debugshow}] Boolean (default \texttt{false}). Provide
+% various tracing information at the terminal and in the transcript
+% file. In particular show which elements are indexed.
+%
+% \item[\opt{noindex}] Boolean (default \texttt{false}). If set, all
+% automatic indexing is suppressed. This option can also be used on
+% individual elements as described below.
+%
+% \item[\opt{noprint}] Boolean (default \texttt{false}). If set, then
+% printing of element names in the margin will be suppressed. This
+% option can also be used on individual elements as described
+% below.
+% \item[\opt{reportchangedates}] Boolean (default \texttt{false}). If
+% set, then change entries list the date after the version number in
+% the change log.
+% \end{description}
+%
+% \DescribeInterfaceMacro{\SetupDoc} Instead of providing options to the \DOC
+% package you can call \cs{SetupDoc} and provide them there. This
+% allows, for example, to change default values in case \DOC was already
+% loaded earlier.
+%
+%
%
% \subsection{General conventions}
%
@@ -413,10 +461,18 @@
% \LaTeX{} commands except that the character `|%|' cannot be
% used as a comment character.
% \SortIndex{\string^\string^A}{\string\verb\verbatimchar
-% \string^\string^A\verbatimchar \encapchar usage} To allow user
-% comments, the |^^A| character is defined as a comment character
-% later on. Such `metacomments' may be also be included simply by
-% surrounding them with "\iffalse" \ldots~"\fi".
+% \string^\string^A\verbatimchar \encapchar usage}^^A
+% \SortIndex{\string^\string^X}{\string\verb\verbatimchar
+% \string^\string^X\verbatimchar \encapchar usage}
+% To allow user
+% comments, the characters |^^A| and |^^X| are both defined as a comment character
+% later on.\footnote{In version 2 it was only
+% \texttt{\string^\string^A}, but many keyboards combine
+% \texttt{\string^} and \texttt{A} and automatically turn it into
+% ``Ä''; so \texttt{\string^\string^X} was added as an
+% alternative in version 3.}
+% Such `metacomments' may be also be included simply by
+% surrounding them with |\iffalse| \ldots~|\fi|.
%
% All other parts of the file are called `definition parts'. They
% contain fractions of the macros described in the `documentation
@@ -430,13 +486,17 @@
% \DescribeEnv{macrocode}
% On the other hand, if the documentation of these macros is to be
% produced, the `definition parts' should be typeset verbatim. To
-% achieve this, these parts are surrounded by the \textsf{macrocode}
+% achieve this, these parts are surrounded by the \env{macrocode}
% environment.
% More exactly: before a `definition part' there should be a line
-% containing\\
-% \hspace*{\MacroIndent}\verb*+% \begin{macrocode}+\\
-% and after this part a line\\
-% \hspace*{\MacroIndent}\verb*+% \end{macrocode}+\\
+% containing
+% \begin{flushleft}
+% \hspace*{\MacroIndent}\verb*+% \begin{macrocode}+
+% \end{flushleft}
+% and after this part a line
+% \begin{flushleft}
+% \hspace*{\MacroIndent}\verb*+% \end{macrocode}+
+% \end{flushleft}
% There must be {\em exactly\/} four spaces between the |%|
% and |\end{macrocode}| --- \TeX{} is looking for this string
% and not for the macro while processing a `definition part'.
@@ -444,16 +504,16 @@
% Inside a `definition part' all \TeX{} commands are allowed; even the
% percent sign could be used to suppress unwanted spaces etc.
%
-% \DescribeEnv{macrocode*} Instead of the \textsf{macrocode}
-% environment one can also use the \textsf{macrocode$*$} environment
+% \DescribeEnv{macrocode*} Instead of the \env{macrocode}
+% environment one can also use the \env{macrocode$*$} environment
% which produces the same results except that spaces are printed as
% \nopagebreak\verb*+ + characters.
%
%
%
-% \subsection{Describing the usage of new macros}
+% \subsection{Describing the usage of macros and environments}
%
-% \DescribeMacro\DescribeMacro
+% \DescribeInterfaceMacro\DescribeMacro
% When you describe a new macro you may use |\DescribeMacro| to
% indicate that at this point the usage of a specific macro is
% explained. It takes one argument which will be printed in the margin
@@ -461,35 +521,38 @@
% |\DescribeMacro{\DescribeMacro}| to make clear that this is the
% point where the usage of |\DescribeMacro| is explained.
%
-% \DescribeMacro\DescribeEnv
-% An analogous macro |\DescribeEnv| should be used to indicate
-% that a \LaTeX{} environment is explained. It will produce a somewhat
-% different index entry. Below I used |\DescribeEnv{verbatim}|.
+% As the argument to |\DescribeMacro| is a command name, many people
+% got used to using the (incorrect) short form, i.e., omitting the
+% braces around the argument as in |\DescribeMacro\foo|. This does
+% work as long as the macro name consists only of ``letters''.
+% However, if the name contains special characters that are normally
+% not of type ``letter'' (such as |@|, or in case of \pkg{expl3} |_|
+% and |:|) this will fail dramatically. |\DescribeMacro| would then
+% receive only a partial command name (up to the first ``non-letter'')
+% e.g., |\DescribeMacro\foo@bar| would be equivalent to
+% |\DescribeMacro{\foo} @bar| and you can guess that this can
+% resulting in both incorrect output and possibly low-level error
+% messages.
+%
+% \DescribeInterfaceMacro\DescribeEnv
+% An analogous macro |\DescribeEnv| should be used to indicate that a
+% \LaTeX{} environment is explained. It will produce a somewhat
+% different index entry and a slightly different display in the
+% margin. Below I used |\DescribeEnv{verbatim}|.
%
-% \DescribeEnv{verbatim}
-% It is often a good idea to include examples of the usage of new macros
-% in the text. Because of the |%| sign in the first column of every
-% row, the \textsf{verbatim} environment is slightly altered to suppress
-% those
-% characters.\footnote{These macros were written by Rainer
-% Sch\"opf~\cite{art:verbatim}. He also
-% provided a new \textsf{verbatim} environment
-% which can be used inside of other macros.}
-% \DescribeEnv{verbatim*}
-% The \textsf{verbatim$*$} environment is changed in the same way.
-% \changes{v1.7a}{1992/02/26}{Documented \cs{verb} change.}
-% \DescribeMacro\verb
-% The "\verb" command is re-implemented to give an error report if a
-% newline appears in its argument.
-% The \textsf{verbatim} and \textsf{verbatim$*$} environments set text
-% in the style defined by "\MacroFont"~(\S\ref{sec:macrofont}).
%
+% \NewIn{v3}
+% Starting with version~3 the \cs{Describe...} commands accept an
+% optional argument in which you can specify either \opt{noindex}
+% or \opt{noprint} to suppress indexing or printing for that
+% particular instance. Using both would be possible too, but pointless
+% as then the commands wouldn't do anything any more.
%
%
-% \subsection{Describing the definition of new macros}
+% \subsection{Describing the definition of macros and environments}
%
% \DescribeEnv{macro}
-% To describe the definition of a new macro we use the \textsf{macro}
+% To describe the definition of a (new) macro we use the \env{macro}
% environment. It has one argument: the name of the new
% macro.\footnote{This is a change to the style design I described in
% ^^A \TUB ^^A removed in case ltugboat.sty not used
@@ -505,20 +568,26 @@
% labels in the margin are placed under each other.
% \changes{v1.7a}{1992/02/26}{Note on need for some text in macro env.}
% There should be some text---even if it's just an empty
-% "\mbox{}"---in this environment before "\begin{macrocode}" or the
+% |\mbox{}|---in this environment before |\begin{macrocode}| or the
% marginal label won't print in the right place.
%
-% \DescribeMacro\MacrocodeTopsep
-% \DescribeMacro\MacroTopsep
+% \NewIn{v3}
+% In fact it is now allowed to specify several macros in the argument,
+% separated by commas. This is a short form for starting several
+% \env{macro} environments in direct succession. Of course, you
+% should then have also only one matching |\end{macro}|.
+%
+% \DescribeLaTeXSkip\MacrocodeTopsep
+% \DescribeLaTeXSkip\MacroTopsep
% There also exist four style parameters: |\MacrocodeTopsep| and
% |\MacroTopsep| are used to control the vertical spacing above
-% and below the \textsf{macrocode} and the \textsf{macro}
-% \DescribeMacro\MacroIndent
+% and below the \env{macrocode} and the \env{macro}
+% \DescribeLaTeXDimen\MacroIndent
% environment, |\MacroIndent| is used to indent the lines of code
% and
-% \DescribeMacro\MacroFont \label{sec:macrofont}
+% \DescribeInterfaceMacro\MacroFont \label{sec:macrofont}
% |\MacroFont| holds the font and a possible size change command
-% for the code lines, the "verbatim"["*"] environment and the macro
+% for the code lines, the |verbatim|[|*|] environment and the macro
% names printed in the margin. If you want
% to change their default values in a
% class file (like \texttt{ltugboat.cls}) use the |\DocstyleParms|
@@ -526,17 +595,34 @@
% be changed directly as long as the redefinition happens before
% the |\begin{document}|.
%
+% \DescribeEnv{environment}
+% For documenting the definition of environments one can use the
+% environment \texttt{environment} which works like the \texttt{macro}
+% environment, except that it expects an \meta{env-name}
+% (without a backslash)
+% as its argument and internally provides different index
+% entries suitable for environments.
+% Nowadays you can alternatively specify a comma-separated list of environments.
+%
+% \NewIn{v3}
+% Starting with version~3 these environments accept an optional
+% argument in which you can specify \opt{noindex} or \opt{noprint} or
+% both to suppress indexing or printing for that particular
+% instance. If any such setting is made on the environment level it
+% overwrites whatever default was given when the \DOC element was
+% defined or when the package was loaded.
+%
%
%
%
-% \subsection{Formatting the margins}
+% \subsection{Formatting names in the margin}
%
-% \DescribeMacro\PrintDescribeMacro
-% \DescribeMacro\PrintDescribeEnv
-% \DescribeMacro\PrintMacroName
-% \DescribeMacro\PrintEnvName
-% As mentioned earlier, some macros and the \textsf{macro} environment
-% print their arguments in the margin. This is actually done by four
+% \DescribeInterfaceMacro\PrintDescribeMacro
+% \DescribeInterfaceMacro\PrintDescribeEnv
+% \DescribeInterfaceMacro\PrintMacroName
+% \DescribeInterfaceMacro\PrintEnvName
+% As mentioned earlier, some macros and environment
+% print their arguments in the margin. The actual formatting is done by four
% macros which are user
% definable.\footnote{You may place the changed definitions in a
% separate package
@@ -544,33 +630,157 @@
% file.
% For example, if you don't like any names in the
% margin
-% but want a fine index you can simply
-% \texttt{\bslash let}
-% these macros equal \texttt{\bslash @gobble}.
-% The doc package won't redefine any existing
-% definitions of these macros.}
-% They are named |\PrintDescribeMacro|, |\PrintDescribeEnv|,
-% |\PrintMacroName| (called by the \textsf{macro} environment) and
-% |\PrintEnvName| (called by the \textsf{environment} environment).
+% but want a fine index you can simply redefine them
+% accept their argument and do nothing with it.}
+% They are named |\PrintDescribeMacro| and |\PrintDescribeEnv| (defining
+% how |\DescribeMacro| and |\DescribeEnv| behave) and
+% |\PrintMacroName| and
+% |\PrintEnvName| (called by the \env{macro} and \env{environment}
+% environments, respectively).
+%
+%
+% \subsection{Providing further documentation items}
+%
+% Out of the box the \DOC package offers the above commands and
+% environments to document macros and environments.
+% \NewIn{v3}
+% With version 3
+% this has now been extended in a generic fashion so that you can
+% easily provide your own items, such as counters, length register,
+% options etc.
+%
+% \DescribeInterfaceMacro{\NewDocElement}
+% The general syntax for providing a new \DOC element is
+% \begin{quote}
+% \cs{NewDocElement}\oarg{options}\marg{element-name}\marg{env-name}
+% \end{quote}
+% By convention the \meta{element-name} has the first letter
+% uppercased as in \texttt{Env} or \texttt{Macro}.
+%
+% Such a declaration will define for you
+% \begin{itemize}
+% \item the command |\Describe|\meta{element-name} which has the
+% syntax
+% \begin{quote}
+% |\Describe|\meta{element-name}\oarg{options}\marg{element}
+% \end{quote}
+%
+% \item the environment \meta{env-name} which has the syntax
+% \begin{quote}
+% \cs{begin}\marg{env-name}\oarg{options}\marg{element}
+% \end{quote}
+%
+% \item the display command |\PrintDescribe|\meta{element-name} with
+% the syntax
+% \begin{quote}
+% |\PrintDescribe|\meta{element-name}\marg{element}
+% \end{quote}
+%
+% \item and the
+% |\Print|\meta{element-name}|Name| display command for the
+% environment.
+% \end{itemize}
+% If any of the commands or the environment is already defined (which
+% especially with the \meta{env-name} is a danger) then you will
+% receive an error telling you so.
+%
+% \DescribeInterfaceMacro{\RenewDocElement}
+% If you want to modify an existing \DOC element use
+% |\RenewDocElement| instead.
+%
+% For example, the already provided ``\texttt{Env}'' \DOC element could have been
+% defined simply by making the declaration
+% |\NewDocElement{Env}{environment}|
+% though that's not quite what has been done, as we will see later.
+%
+% \DescribeOption[noprint]{macrolike}
+% \DescribeOption[noprint]{envlike}
+% \DescribeOption[noprint]{toplevel}
+% \DescribeOption[noprint]{notoplevel}
+% \DescribeOption[noprint]{idxtype}
+% \DescribeOption[noprint]{printtype}
+% \DescribeOption[noprint]{idxgroup}
+% The \meta{options} are keyword/value and define further details on
+% how that \DOC element should behave. They are:
+% \begin{description}
+% \item[\opt{macrolike}] Boolean (default \opt{false}). Does this \DOC
+% element starts with a backslash?
+%
+% \item[\opt{envlike}] Boolean. Complementary option to
+% \opt{macrolike}.
+%
+% \item[\opt{toplevel}] Boolean (default \opt{true}). Should all
+% a top-level index entry be made? If set to \texttt{false} then
+% either no index entries are produced or only grouped index entries
+% (see \opt{idxgroup} for details).
+%
+% \item[\opt{notoplevel}] Boolean. Complementary option to
+% \opt{toplevel}.
+%
+% \item[\opt{idxtype}] String (default \meta{env-name}). What to put
+% (in parentheses if non-empty) at the end of a top-level index entry.
+%
+% \item[\opt{printtype}] String (default \meta{env-name}). What to put
+% (in parentheses if non-empty) after an element name in the margin.
+%
+% \item[\opt{idxgroup}] String (default
+% \meta{env-name}\texttt{s}). Name of the top-level index entry if
+% entries are grouped. They are only grouped if this option is
+% non-empty.
+%
+% \item[\opt{noindex}] Boolean (default \texttt{false}). If set this
+% will suppress indexing for elements of this type. This setting
+% overwrite any global setting of \opt{noindex}.
+%
+% \item[\opt{noprint}] Boolean (default \texttt{false}). If set this
+% will suppress printing the element name in the margin. This setting
+% overwrite any global setting of \opt{noprint}.
+% \end{description}
+% As usual giving a boolean option without a value sets it to
+% \texttt{true}.
+
+
+
+
+% \subsection{Displaying sample code verbatim}
%
+% \DescribeEnv{verbatim}
+% It is often a good idea to include examples of the usage of new macros
+% in the text. Because of the |%| sign in the first column of every
+% row, the \env{verbatim} environment is slightly altered to suppress
+% those
+% characters.\footnote{These macros were written by Rainer
+% Schöpf~\cite{art:verbatim}. He also
+% provided a new \env{verbatim} environment
+% which can be used inside of other macros.}
+% \DescribeEnv{verbatim*}
+% The \env{verbatim$*$} environment is changed in the same way.
+% \changes{v1.7a}{1992/02/26}{Documented \cs{verb} change.}
+% \DescribeInterfaceMacro\verb
+% The |\verb| command is re-implemented to give an error report if a
+% newline appears in its argument.
+% The \env{verbatim} and \env{verbatim$*$} environments set text
+% in the style defined by |\MacroFont|~(\S\ref{sec:macrofont}).
%
+%
+
% \subsection{Using a special escape character}
%
-% \DescribeMacro\SpecialEscapechar
+% \DescribeInterfaceMacro\SpecialEscapechar
% If one defines complicated macros it is sometimes necessary to
% introduce a new escape character because the `|\|' has got a
% special |\catcode|. In this case one can use
% |\SpecialEscapechar| to indicate which character is actually
% used to play the r\^ole of the `|\|'. A scheme like this is
-% needed because the \textsf{macrocode} environment and its counterpart
-% \textsf{macrocode$*$} produce an index entry for every occurrence of a
+% needed because the \env{macrocode} environment and its counterpart
+% \env{macrocode$*$} produce an index entry for every occurrence of a
% macro name. They would be very confused if you didn't tell them that
% you'd changed |\catcode|$\,$s. The argument to
% |\SpecialEscapechar| is a single-letter control sequence, that
-% is, one has to use "\|" for example to denote that `\verb+|+'
+% is, one has to use \verb=\|= for example to denote that `\verb+|+'
% is used as an escape character. |\SpecialEscapechar| only
-% changes the behavior of the next \textsf{macrocode} or
-% \textsf{macrocode$*$} environment.
+% changes the behavior of the next \env{macrocode} or
+% \env{macrocode$*$} environment.
%
% The actual index entries created will all be printed with |\|
% rather than \verb+|+, but this probably reflects their usage, if not
@@ -582,20 +792,24 @@
%
% \subsection{Cross-referencing all macros used}
%
-% \DescribeMacro\DisableCrossrefs \DescribeMacro\EnableCrossrefs As
-% already mentioned, every new macro name used within a
-% \textsf{macrocode} or \textsf{macrocode$*$} environment will produce
-% an index entry. In this way one can easily find out where a specific
-% macro is used. Since \TeX{} is considerably slower when it has to
-% produce such a bulk of index entries one can turn off this feature
-% by using |\DisableCrossrefs| in the driver file. To turn it on again
-% just use |\EnableCrossrefs|.\footnote{Actually, \texttt{\bslash
-% EnableCrossrefs} changes things more drastically; any following
-% \texttt{\bslash DisableCrossrefs} which might be present in the
-% source will be ignored.}
-%
-%
-% \DescribeMacro\DoNotIndex
+% \DescribeInterfaceMacro\DisableCrossrefs \DescribeInterfaceMacro\EnableCrossrefs As
+% already mentioned, every macro name used within a
+% \env{macrocode} or \env{macrocode$*$} environment will produce an
+% index entry. In this way one can easily find out where a specific
+% macro is used. Since \TeX{} is considerably slower\footnote{This
+% comment was written about 30 years ago. \TeX{} is still considerably
+% slower but while it took minutes to process a large document (such
+% as the \LaTeX{} kernel documentation) it takes seconds or less these
+% days. Thus \cs{DisableCrossrefs} isn't really that necessary these
+% days.} when it has to produce such a bulk of index entries one can
+% turn off this feature by using |\DisableCrossrefs| in the driver
+% file. To turn it on again just use
+% |\EnableCrossrefs|.\footnote{Actually, \cs{EnableCrossrefs} changes
+% things more drastically; any following call to \cs{DisableCrossrefs}
+% which might be present in the source will be ignored.}
+%
+%
+% \DescribeInterfaceMacro\DoNotIndex
% But also finer control is provided. The |\DoNotIndex| macro
% takes a list of macro names separated by commas. Those names won't
% show up in the index. You might use several |\DoNotIndex|
@@ -605,26 +819,28 @@
%
% All three above declarations are local to the current group.
%
-% Production (or not) of the index (via the "\makeindex" commend) is
+% Production (or not) of the index (via the |\makeindex| commend) is
% controlled by using or omitting the following declarations in the
% driver file preamble; if neither is used, no index is produced.
-% \DescribeMacro\PageIndex Using "\PageIndex" makes all index
+% \DescribeInterfaceMacro\PageIndex Using |\PageIndex| makes all index
% entries refer to their page number; with
-% \DescribeMacro\CodelineIndex "\CodelineIndex", index entries
-% produced by "\DescribeMacro" and "\DescribeEnv" refer to page number
-% but those produced by the \textsf{macro} environment refer to the
+% \DescribeInterfaceMacro\CodelineIndex |\CodelineIndex|, index entries
+% produced by |\DescribeMacro| and |\DescribeEnv| and possibly further
+% |\Describe...| commands refer to a page number
+% but those produced by the \env{macro} environment (or other \DOC
+% element environments) refer to the
% code lines, which will be numbered automatically.\footnote{The line
% number is actually that of the first line of the first
-% \textsf{macrocode} environment in the \textsf{macro} environment.}
-% \DescribeMacro\theCodelineNo
+% \env{macrocode} environment in the \env{macro} environment.}
+% \DescribeInterfaceMacro\theCodelineNo
% The style of this numbering can be controlled by defining the macro
-% "\theCodelineNo". Its default definition is to use scriptsize
+% |\theCodelineNo|. Its default definition is to use scriptsize
% arabic numerals; a user-supplied definition won't be overwritten.
%
-% \DescribeMacro\CodelineNumbered
+% \DescribeInterfaceMacro\CodelineNumbered
% When you don't wish to get an index but want your code lines
-% numbered use "\CodelineNumbered" instead of "\CodelineIndex". This
-% prevents the generation of an unnecessary ".idx" file.
+% numbered use |\CodelineNumbered| instead of |\CodelineIndex|. This
+% prevents the generation of an unnecessary |.idx| file.
%
%
% \subsection{Producing the actual index entries}
@@ -632,7 +848,7 @@
% Several of the aforementioned macros will produce some sort of index
% entries. These entries have to be sorted by an external
% program---the current implementation assumes that the
-% \textsf{makeindex} program by Chen~\cite{art:Chen} is used.
+% \prg{makeindex} program by Chen~\cite{art:Chen} is used.
%
% But this isn't built in: one has only to redefine some of the
% following macros to be able to use any other index program. All
@@ -644,25 +860,25 @@
%
% To allow the user to change the specific characters recognized by
% his or her index program all characters which have special meaning
-% in the \textsf{makeindex} program are given symbolic
+% in the \prg{makeindex} program are given symbolic
% names.\footnote{I don't know if there exists a program which needs
% more command characters, but I hope not.}
% However, all characters used should be of |\catcode| other than
% `letter' (11).
%
-% \DescribeMacro{\actualchar}
+% \DescribeInterfaceMacro{\actualchar}
% The |\actualchar| is used to separate the `key' and the actual
% index entry.
-% \DescribeMacro{\quotechar}
+% \DescribeInterfaceMacro{\quotechar}
% The |\quotechar| is used before a special index program
% character to suppress its special meaning.
-% \DescribeMacro{\encapchar}
+% \DescribeInterfaceMacro{\encapchar}
% The |\encapchar| separates the indexing information from a
-% letter string which \textsf{makeindex} uses as a \TeX{} command to
+% letter string which \prg{makeindex} uses as a \TeX{} command to
% format the page number associated with a special entry. It is used
% in this package to apply the |\main| and the |\usage|
% commands.
-% \DescribeMacro{\levelchar}
+% \DescribeInterfaceMacro{\levelchar}
% Additionally |\levelchar| is used to separate `item',
% `subitem' and `subsubitem' entries.
%
@@ -670,33 +886,54 @@
% which index program is used. In this way your files will be
% portable.
%
-% \DescribeMacro\SpecialMainIndex
-% \DescribeMacro\SpecialMainEnvIndex
+% \fmi{describe old \cs{SpecialMainIndex} and \cs{SpecialUsageIndex}}
+%
+% \DescribeInterfaceMacro\SpecialMainMacroIndex
+% \DescribeInterfaceMacro\SpecialMainEnvIndex
% To produce a main index entry for a macro the
-% |\SpecialMainIndex| macro\footnote{This macro is called by the
-% \textsf{macro} environment.} may be used. It is called `special'
+% |\SpecialMainMacroIndex| macro\footnote{This macro is called by the
+% \env{macro} environment.} may be used. It is called `special'
% because it has to print its argument verbatim.
% A similar macro, called |\SpecialMainEnvIndex| is used for indexing
% the main definition point of an
% environment.\footnote{This macro is called by the
-% \textsf{environment} environment.}
-% \DescribeMacro\SpecialIndex
-% If you want a normal index entry for a macro name
-% |\SpecialIndex| might be used.\footnote{This macro is called
-% within the \textsf{macrocode} environment when encountering a macro
-% name.}
-% \DescribeMacro\SpecialUsageIndex
-% \DescribeMacro\SpecialEnvIndex
+% \env{environment} environment.}
+%
+% \DescribeInterfaceMacro\SpecialMacroIndex
+% \DescribeInterfaceMacro\SpecialEnvIndex
% To index the usage of a macro or an environment
-% |\SpecialUsageIndex| and |\SpecialEnvIndex| may be used.
-% \DescribeMacro\SortIndex
-% Additionally a |\SortIndex| command is provided. It takes two
-% arguments---the sort key and the actual index entry.
+% |\SpecialMacroIndex| and |\SpecialEnvIndex| may be used.
%
% All these macros are normally used by other macros; you will need
% them only in an emergency.
%
-% \DescribeMacro\verbatimchar
+% \NewIn{v3}
+% If further code elements are declared with
+% |\NewDocElement|\marg{name}\texttt{...} then this sets up
+% additional indexing commands, e.g.,
+% \cs{SpecialMain\meta{name}Index}.
+%
+% \DescribeInterfaceMacro\SpecialIndex
+% The \env{macrocode} environment is automatically indexing macros
+% (normally by code line number). You can (with care) also do this
+% manually by
+% |\SpecialIndex|. However, note that if |\CodelineIndex| is used
+% this will generate an entry referring to the last code line which is
+% usually not what you want. It does, however, make some sense if you
+% always refer to pages only, i.e., if you use |\PageIndex|.
+%
+% \DescribeInterfaceMacro\SpecialShortIndex
+% \NewIn{v3}
+% For single character macros, e.g., |\{|, doesn't always work
+% correctly.
+% For this reason there is now also
+% a special variant the can produce correct index entries for them.
+%
+% \DescribeInterfaceMacro\SortIndex
+% Additionally a |\SortIndex| command is provided. It takes two
+% arguments---the sort key and the actual index entry.
+%
+% \DescribeInterfaceMacro\verbatimchar
% But there is one characteristic worth mentioning: all macro names in
% the index are typeset with the |\verb*| command. Therefore one
% special character is needed to act as a delimiter for this command.
@@ -704,12 +941,14 @@
% referenced indirectly, by the macro |\verbatimchar|. It expands
% by default to \verb?+? but if your code lines contain macros with
% `\texttt{+}' characters in their names (e.g.\ when you use \verb?\+?)
-% you will end up with an index entry containing \verb?\verb+\++?
-% which will be typeset as `\verb+\++' and not as `\verb?\+?'. In this
-% case you should redefine |\verbatimchar| globally or locally to
-% overcome this problem.
-%
-% \DescribeMacro\*
+% then that caused a problem because you ended up with an
+% index entry containing \verb?\verb+\++?
+% which will be typeset as `\verb+\++' and not as `\verb?\+?'.
+% \NewIn{v3}
+% In version 3 this is now automatically taken care of (with the help
+% of the |\SpecialShortIndex| command).
+%
+% \DescribeInterfaceMacro\*
% We also provide a |\*| macro. This is intended to be used for
% index entries like
% \begin{quote}
@@ -721,49 +960,39 @@
% \index{index entries\levelchar Special macros for \*}
%\end{verbatim}
%
-% \DescribeMacro\OldMakeindex
-% Versions of \textsf{makeindex} prior to 2.9 had some bugs affecting
-% \DOC{}. One of these,
-% pertaining to the "%" character doesn't have a work-around
-% appropriate for versions with and without the
-% bug.\label{makeindex:version} If
-% you have an old version, invoke "\OldMakeindex" in a
-% package file or the driver file to prevent problems with index entries
-% such as "\%", although you'll probably normally want to turn off
-% indexing of "\%" anyway. Try to get an up-to-date \textsf{makeindex}
-% from one of the \TeX{} repositories.
-%
%
% \subsection{Setting the index entries}
%
% \changes{v1.7a}{1992/03/11}{Usage note on gind.ist.} After the first
% formatting pass through the \texttt{.dtx} file you need to sort the
% index entries written to the \texttt{.idx} file using
-% \textsf{makeindex} or your favourite alternative. You need a
-% suitable style file for \textsf{makeindex} (specified by the
+% \prg{makeindex} or your favorite alternative. You need a
+% suitable style file for \prg{makeindex} (specified by the
% \texttt{-s} switch). A suitable one is supplied with \DOC{},
% called \texttt{gind.ist}.
%
-% \DescribeMacro\PrintIndex
+% \DescribeInterfaceMacro\PrintIndex
% To read in and print the sorted index, just put the
% |\PrintIndex| command as the last (commented-out, and thus
% executed during the documentation pass through the file) command
% in your package file. Precede it by any bibliography commands
% necessary for your citations.
% Alternatively, it may be more convenient to put all such calls
-% amongt the arguments of the |\StopEventually| macro, in
+% amongst the arguments of the |\MaybeStop| macro, in
% which case a |\Finale| command should appear at the end of
% your file.
%
% \DescribeEnv{theindex}
% Contrary to standard \LaTeX, the index is typeset in three columns
-% by default. This is controlled by the \LaTeX{} counter
+% by default.
+% \DescribeLaTeXCounter{IndexColumns}
+% This is controlled by the \LaTeX{} counter
% `\textsf{IndexColumns}' and can therefore be changed with a
% |\setcounter| declaration. Additionally one doesn't want to
-% start a new page unnecessarily. Therefore the \textsf{theindex}
+% start a new page unnecessarily. Therefore the \env{theindex}
% environment is redefined.
-% \DescribeMacro\IndexMin
-% When the \textsf{theindex} environment starts it will measure how much
+% \DescribeLaTeXDimen\IndexMin
+% When the \env{theindex} environment starts it will measure how much
% space is left on the current page. If this is more than
% |\IndexMin| then the index will start on this page. Otherwise
% |\newpage| is called.
@@ -771,23 +1000,23 @@
% Then a short introduction about the meaning of several index entries
% is typeset (still in onecolumn mode). Afterwards the actual index
% entries follow in multi-column mode.
-% \DescribeMacro\IndexPrologue
+% \DescribeInterfaceMacro\IndexPrologue
% You can change this prologue with the help of the
% |\IndexPrologue| macro. Actually the section heading is also
% produced in this way, so you'd better write something like:
% \begin{verbatim}
% \IndexPrologue{\section*{Index} The index entries underlined ...}
%\end{verbatim}
-% When the \textsf{theindex} environment is finished the last page will
+% When the \env{theindex} environment is finished the last page will
% be reformatted to produce balanced columns. This improves the layout
% and allows the next article to start on the same page.
-% \DescribeMacro\IndexParms
+% \DescribeInterfaceMacro\IndexParms
% Formatting of the index columns (values for |\columnssep|
% etc.)\ is controlled by the |\IndexParms| macro. It assigns the
% following values:
-% \SpecialUsageIndex{\parindent}\SpecialUsageIndex{\columnsep}^^A
-% \SpecialUsageIndex{\parskip}\SpecialUsageIndex{\rightskip}^^A
-% \SpecialUsageIndex{\mathsurround}\SpecialUsageIndex{\parfillskip}
+% \SpecialLaTeXDimenIndex{\parindent}\SpecialLaTeXDimenIndex{\columnsep}^^A
+% \SpecialLaTeXSkipIndex{\parskip}\SpecialLaTeXSkipIndex{\rightskip}^^A
+% \SpecialLaTeXDimenIndex{\mathsurround}\SpecialLaTeXSkipIndex{\parfillskip}
% \begin{center}
% \begin{tabular}{l@{\,=\,}ll@{\,=\,}l}
% |\parindent| & \IndexParms \the\parindent &
@@ -800,24 +1029,27 @@
% \expandafter\dimenvalue\the\parfillskip
% \end{tabular}
% \end{center}
-% \DescribeMacro{\@idxitem}
+% \DescribeInterfaceMacro{\@idxitem}
% Additionally it defines |\@idxitem| (which will be used when an
% |\item| command is encountered) and selects |\small| size.
% If you want to change any of these values you have to define them
% all.
%
-% \DescribeMacro\main
-% \DescribeMacro\usage
+% \DescribeInterfaceMacro\main
+% \DescribeInterfaceMacro\usage
+% \DescribeInterfaceMacro\code
% The page numbers for main index entries are encapsulated by the
% |\main| macro (underlining its argument) and the numbers
% denoting the description are encapsulated by the |\usage| macro
-% (which produces {\em italics}). As usual these commands are user
+% (which produces \textit{italics}). |\code| encapsulates page or code
+% line numbers in entries generated by parsing the code inside
+% \env{macrocode} environments. As usual these commands are user
% definable.
%
%
% \subsection{Changing the default values of style parameters}
%
-% \DescribeMacro\DocstyleParms If you want to overwrite some default
+% \DescribeInterfaceMacro\DocstyleParms If you want to overwrite some default
% settings made by the \DOC{} package, you can either put your
% declarations in the driver file (that is after \texttt{doc.sty} is
% read in) or use a separate package file for doing this work. In the
@@ -828,10 +1060,13 @@
%
% The doc package currently assigns values to the following
% registers:
-% \SpecialUsageIndex{\IndexMin}\SpecialUsageIndex{\MacrocodeTopsep}^^A
-% \SpecialUsageIndex{\MacroTopsep}^^A
-% \SpecialUsageIndex{\MacroIndent}\SpecialUsageIndex{\marginparpush}^^A
-% \SpecialUsageIndex{\marginparwidth}\SpecialUsageIndex{\tolerance}
+% \SpecialLaTeXDimenIndex{\IndexMin}^^A
+% \SpecialLaTeXSkipIndex{\MacrocodeTopsep}^^A
+% \SpecialLaTeXSkipIndex{\MacroTopsep}^^A
+% \SpecialLaTeXDimenIndex{\MacroIndent}^^A
+% \SpecialLaTeXDimenIndex{\marginparpush}^^A
+% \SpecialLaTeXDimenIndex{\marginparwidth}^^A
+% \SpecialTeXCounterIndex{\tolerance}
% \begin{center}
% \begin{tabular}{l@{\,=\,}ll@{\,=\,}l}
% |\IndexMin| & \the\IndexMin &
@@ -847,34 +1082,34 @@
%
% \subsection{Short input of verbatim text pieces}
%
-% \DescribeMacro\MakeShortVerb
-% \DescribeMacro{\MakeShortVerb*} \DescribeMacro\DeleteShortVerb It is
-% awkward to have to type, say, "\verb|"\ldots"|" continually when
+% \DescribeInterfaceMacro\MakeShortVerb
+% \DescribeInterfaceMacro{\MakeShortVerb*} \DescribeInterfaceMacro\DeleteShortVerb It is
+% awkward to have to type, say, \verb"\verb|"\ldots\verb"|" continually when
% quoting
% verbatim bits (like macro names) in the text, so an abbreviation
% mechanism is provided. Pick a character \meta{c}---one which
% normally has catcode `other' unless you have very good reason not
% to---which you don't envisage using in the text, or not using often.
-% (I like |"|, but you may prefer "|" if you have |"| active to do
+% (I like |"|, but you may prefer \verb"|" if you have |"| active to do
% umlauts, for instance.) Then if you say
-% "\MakeShortVerb{\"\meta{c}"}" you can subsequently use
+% |\MakeShortVerb{\|\meta{c}|}| you can subsequently use
% \meta{c}\meta{text}\meta{c} as the equivalent of
-% "\verb"\meta{c}\meta{text}\meta{c}; analogously, the "*"-form
-% "\MakeShortVerb*{\"\meta{c}"}" gives you the equivalent of
-% "\verb*"\meta{c}\meta{text}\meta{c}. Use
-% "\DeleteShortVerb{\"\meta{c}"}" if you subsequently want \meta{c} to
+% |\verb|\meta{c}\meta{text}\meta{c}; analogously, the |*|-form
+% |\MakeShortVerb*{\|\meta{c}|}| gives you the equivalent of
+% |\verb*|\meta{c}\meta{text}\meta{c}. Use
+% |\DeleteShortVerb{\|\meta{c}|}| if you subsequently want \meta{c} to
% revert to its previous meaning---you can always turn it on again
% after the unusual section. The `short verb' commands make global
-% changes. The abbreviated "\verb" may not appear in the argument of
-% another command just like "\verb". However the `short verb'
-% character may be used freely in the \textsf{verbatim} and
-% \textsf{macrocode} environments without ill effect.
-% "\DeleteShortVerb" is silently ignored if its argument does not
+% changes. The abbreviated |\verb| may not appear in the argument of
+% another command just like |\verb|. However the `short verb'
+% character may be used freely in the \env{verbatim} and
+% \env{macrocode} environments without ill effect.
+% |\DeleteShortVerb| is silently ignored if its argument does not
% currently represent a short verb character. Both commands type a
% message to tell you the meaning of the character is being changed.
%
-% Please remember that the command "\verb" cannot be used in arguments
-% of other commands. Therefore abbreviation characters for "\verb"
+% Please remember that the command |\verb| cannot be used in arguments
+% of other commands. Therefore abbreviation characters for |\verb|
% cannot be used there either.
%
% This feature is also available as a sole package, \texttt{shortvrb}.
@@ -885,24 +1120,33 @@
% We provide macros for logos such as \Web, \AmSTeX, \BibTeX,
% \SliTeX{} and \PlainTeX. Just type |\Web|, |\AmSTeX|,
% |\BibTeX|, |\SliTeX| or |\PlainTeX|, respectively.
-% \LaTeX{} and \TeX{} are already defined in the \LaTeX{} format.
+% \LaTeX{} and \TeX{} are already defined in \texttt{latex.tex}.
%
-% \DescribeMacro\meta
+% \DescribeInterfaceMacro\meta
% Another useful macro is |\meta| which has one argument and
% produces something like \meta{dimen parameter}.
%
-% \DescribeMacro\OnlyDescription
-% \DescribeMacro\StopEventually
+% \DescribeInterfaceMacro\OnlyDescription
+% \DescribeInterfaceMacro\MaybeStop
+% \DescribeObsoleteInterfaceMacro\StopEventually
% You can use the |\OnlyDescription| declaration in the driver
% file to suppress the last part of your document (which presumably
% exhibits the code). To make this work
-% you have to place the command |\StopEventually| at a suitable
-% point in your file. This macro has one argument in which you put
+% \NewIn{v3}
+% you have to place the command |\MaybeStop| at a suitable
+% point in your file. This macro\footnote{For about 30 years this
+% macro was called \cs{StopEventually} which was due to a ``false
+% friend'' misunderstanding. In the German language the word
+% ``eventuell'' mean roughly ``perhaps'' which isn't quite the same
+% as ``eventually''. But given that this is now used for so long
+% and all over the place we can't drop the old name. So it is still
+% there to allow processing all the existing documentation.}
+% has one argument in which you put
% all information you want to see printed if your document ends at
% this point (for example a bibliography which is normally printed at
% the very end). When the |\OnlyDescription| declaration is
-% missing the |\StopEventually|
-% \DescribeMacro\Finale
+% missing the |\MaybeStop|
+% \DescribeInterfaceMacro\Finale
% macro saves its argument in a macro called |\Finale| which can
% afterwards be used to get things back (usually at the very end).
% Such a scheme makes changes in two places unnecessary.
@@ -910,17 +1154,17 @@
% Thus you can use this feature to produce a local guide for the
% \TeX{} users which describes only the usage of macros (most of them
% won't be interested in your definitions anyway). For the same
-% reason the |\maketitle| \DescribeMacro\maketitle command is slightly
+% reason the |\maketitle| \DescribeInterfaceMacro\maketitle command is slightly
% changed to allow multiple titles in one document. So you can make
% one driver file reading in several articles at once.
-% \DescribeMacro{\ps@titlepage} To avoid an unwanted
+% \DescribeInterfaceMacro{\ps@titlepage} To avoid an unwanted
% \textsf{pagestyle} on the title page the |\maketitle| command issues
% a |\thispagestyle{titlepage}| declaration which produces a
% \textsf{plain} page if the \textsf{titlepage} page style is
-% undefined. This allows class files like \textsf{ltugboat.cls} to
+% undefined. This allows class files like \cls{ltugboat.cls} to
% define their own page styles for title pages.
%
-% \DescribeMacro\AlsoImplementation
+% \DescribeInterfaceMacro\AlsoImplementation
% Typesetting the whole document is the default. However, this default
% can also be explicitly selected using the declaration
% |\AlsoImplementation|. This overwrites any previous
@@ -933,24 +1177,23 @@
% \end{quote}
% to make sure that all documents will show the code part.
%
-% \DescribeMacro\IndexInput \label{..Input} Last but not least I
+% \DescribeInterfaceMacro\IndexInput \label{..Input} Last but not least I
% defined an |\IndexInput| macro which takes a file name as an
% argument and produces a verbatim listing of the file, indexing every
% command as it goes along. This might be handy, if you want to learn
% something about macros without enough documentation. I used this
-% feature to cross-reference \texttt{latex.tex} (these days
-% called \texttt{latex.ltx}) getting a verbatim
+% feature to cross-reference \texttt{latex.tex} getting a verbatim
% copy with about 15 pages index.\footnote{It took quite a long time
% and the resulting \texttt{.idx} file was longer than the
% \texttt{.dvi} file. Actually too long to be handled by the
-% \textsf{makeindex} program directly (on our MicroVAX) but the final
+% \prg{makeindex} program directly (on our MicroVAX) but the final
% result was worth the trouble.}
%
% \changes{v2.1d}{2006/02/02}{Corrected description of \cs{changes}
% macro.}
-% \DescribeMacro\changes
+% \DescribeInterfaceMacro\changes
% To maintain a change history within the file, the |\changes|
-% command may be placed amongt the description part of the changed
+% command may be placed amongst the description part of the changed
% code. It takes three arguments, thus:
% \begin{quote}
% |\changes{|\meta{version}|}{|\meta{date}|}{|^^A
@@ -960,7 +1203,7 @@
% |\glossary| mechanism is used for this) which may be printed
% after suitable formatting. The |\changes| macro generates the
% printed entry in such a change history; because old
-% versions\footnote{Before 2.6.} of the \textsf{makeindex}
+% versions\footnote{Before 2.6.} of the \prg{makeindex}
% program limit such fields to 64 characters, care should be taken
% not to exceed this limit when describing the change. The actual
% entry consists of the \meta{version}, the |\actualchar|, the current
@@ -970,101 +1213,38 @@
% text |\generalname| is used instead of the macro name. When
% referring to macros in change descriptions it is conventional to use
% |\cs{|\meta{macroname}|}| rather than attempting to format it properly
-% and using up valuable characters in the entry with old \textsf{makeindex}
+% and using up valuable characters in the entry with old \prg{makeindex}
% versions.
%
% \changes{v1.7a}{1992/02/26}{Description of \cs{RecordChanges} etc.
% added
-% to interface section.} \DescribeMacro\RecordChanges To cause the
-% change information to be written out, include "\RecordChanges" in
-% the driver file. \DescribeMacro\PrintChanges To read in and print
+% to interface section.} \DescribeInterfaceMacro\RecordChanges To cause the
+% change information to be written out, include |\RecordChanges| in
+% the driver file. \DescribeInterfaceMacro\PrintChanges To read in and print
% the sorted change history (in two columns), just put the
% |\PrintChanges| command as the last (commented-out, and thus
% executed during the documentation pass through the file) command in
% your package file. Alternatively, this command may form one of the
-% arguments of the |\StopEventually| command, although a change
+% arguments of the |\MaybeStop| command, although a change
% history is probably {\em not\/} required if only the description is
-% being printed. The command assumes that \textsf{makeindex} or some
+% being printed. The command assumes that \prg{makeindex} or some
% other program has processed the \texttt{.glo} file to generate a
-% sorted \texttt{.gls} file. You need a special \textsf{makeindex}
+% sorted \texttt{.gls} file. You need a special \prg{makeindex}
% style file; a suitable one is supplied with \DOC{}, called
-% \texttt{gglo.ist}. \DescribeMacro\GlossaryMin
-% \DescribeMacro\GlossaryPrologue \DescribeMacro\GlossaryParms The
-% "\GlossaryMin", "\GlossaryPrologue" and "\GlossaryParms" macros are
-% analogous to the "\Index"\ldots\ versions. (The \LaTeX{} `glossary'
+% \texttt{gglo.ist}.
+%
+% \DescribeLaTeXDimen\GlossaryMin
+% \DescribeInterfaceMacro\GlossaryPrologue
+% \DescribeInterfaceMacro\GlossaryParms
+% \DescribeLaTeXCounter{GlossaryColumns}
+% The
+% |\GlossaryMin|, |\GlossaryPrologue| and |\GlossaryParms| macros and
+% the counter \texttt{GlossaryColumns} are
+% analogous to the |\Index|\ldots\ versions. (The \LaTeX{} `glossary'
% mechanism is used for the change entries.)
%
-% \label{sec:checksum}
-% \DescribeMacro\CharacterTable
-% \DescribeMacro\CheckSum
-% To overcome some of the problems of sending files over the networks
-% we developed two macros which should detect corrupted files. If one
-% places the lines
-% \begin{flushleft}
-% \small\ttfamily ^^A \ttfamily to get the blanks between "..."s
-% ^^A right
-%"%%\CharacterTable"\\
-%"%% {Upper-case "
-%"\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"\\
-%"%% Lower-case "
-%"\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"\\
-%"%% Digits \0\1\2\3\4\5\6\7\8\9"\\
-%"%% Exclamation \! Double quote "\verb=\"=
-%" Hash (number) \#"\\
-%"%% Dollar \$ Percent \% Ampersand \&"\\
-%"%% Acute accent \' Left paren \( Right paren \)"\\
-%"%% Asterisk \* Plus \+ Comma \,"\\
-%"%% Minus \- Point \. Solidus \/"\\
-%"%% Colon \: Semicolon \; Less than \<"\\
-%"%% Equals \= Greater than \> Question mark \?"\\
-%"%% Commercial at \@ Left bracket \[ Backslash \\"\\
-%"%% Right bracket \] Circumflex \^ Underscore \_"\\
-%"%% Grave accent \` Left brace \{ Vertical bar \|"\\
-%"%% Right brace \} Tilde \~}"\\
-%"%%"
-%\end{flushleft}
-% at the beginning of the file then character translation failures
-% will be detected, provided of course, that the used \DOC{}
-% package has a correct default table. The percent
-% signs\footnote{There are two percent signs in each line. This has
-% the effect that these lines are not removed by the
-% \texttt{docstrip.tex} program.} at the beginning of the lines should
-% be typed in, since only the \DOC{} package should look at this
-% command.
-%
-%
-% Another problem of mailing files is possible truncation. To detect
-% these sort of errors we provide a |\CheckSum| macro. The check-sum
-% of a file is simply the number of backslashes in the code, i.e.\ all
-% lines between the \textsf{macrocode} environments. But don't be
-% afraid: you don't have count the code-lines yourself; this is done
-% by the \DOC{} package for you. You simply have add
-% \begin{quote}
-% |% \CheckSum{0}|
-% \end{quote}
-% near the beginning of the file and
-% use
-% the |\StopEventually| (which starts looking for backslashes) and the
-% |\Finale| command. The latter will inform you either that your file
-% has no check-sum (telling you the right number) or that your number
-% is incorrect if you put in anything other than zero but guessed wrong (this time
-% telling you both the correct and the
-% incorrect one). Then you go to the top of your file again and change the
-% line to the right number, i.e.
-% line
-% \begin{quote}
-% |% \CheckSum{|\meta{number}|}|
-% \end{quote}
-% and that's all.
-%
-% While |\CharacterTable| and |\CheckSum| have been important features
-% in the early days of the public internet when \DOC{} was written as
-% the mail gateways back then were rather unreliable and often mangled
-% files they are these days more a nuisance than any help. They are
-% therefore now fully optional and no longer recommended for use with new files.
%
-%
-% \DescribeMacro\bslash
+% \DescribeInterfaceMacro\bslash
% From time to time, it is necessary to print a |\| without
% being able to use the |\verb| command because the
% |\catcode|$\,$s of the symbols are already firmly
@@ -1072,53 +1252,55 @@
% |\bslash| presupposing, of course, that the actual font in
% use at this point contains a `backslash' as a symbol. Note that
% this definition of |\bslash| is expandable; it inserts a
-% $"\"_{12}$. This means that you have to |\protect|
+% $|\|_{12}$. This means that you have to |\protect|
% it if it is used in `moving arguments'.
%
-% \DescribeMacro\MakePrivateLetters
+% \DescribeInterfaceMacro\MakePrivateLetters
% \changes{v1.7a}{1992/02/26}{Documented \cs{MakePrivateLetters} in
% interface section}^^A
-% If your macros "\catcode" anything other than "@" to `letter', you
-% should redefine "\MakePrivateLetters" so that it also makes the
+% If your macros |\catcode| anything other than |@| to `letter', you
+% should redefine |\MakePrivateLetters| so that it also makes the
% relevant characters `letters' for the benefit of the indexing. The
-% default definition is just "\makeatletter".
+% default definition is just |\makeatletter|.
%
-% \DescribeMacro\DontCheckModules \DescribeMacro\CheckModules
-% \DescribeMacro\Module \DescribeMacro\AltMacroFont The `module'
-% directives of the \textsf{docstrip} system \cite{art:docstrip} are
-% normally recognised and invoke special formatting. This can be
+% \DescribeInterfaceMacro\DontCheckModules \DescribeInterfaceMacro\CheckModules
+% \DescribeInterfaceMacro\Module \DescribeInterfaceMacro\AltMacroFont The `module'
+% directives of the \prg{docstrip} system \cite{art:docstrip} are
+% normally recognized and invoke special formatting. This can be
% turned on and off in the \texttt{.dtx} file or the driver file using
-% "\CheckModules" and "\DontCheckModules". If checking for module
+% |\CheckModules| and |\DontCheckModules|. If checking for module
% directives is on (the default) then code in the scope of the
-% directives is set as determined by the hook "\AltMacroFont", which
+% directives is set as determined by the hook |\AltMacroFont|, which
% gives {\small\ttfamily\itshape small italic type\-writer\/} by
% default in the New Font Selection Scheme but just ordinary
% {\small\ttfamily small type\-writer} in the old one, where a font
% such as italic typewriter can't be used portably (plug for NFSS);
% you will need to override this if you don't have the italic
% typewriter font available. Code is in such a scope if it's on a
-% line beginning with "%<" or is between lines starting with
-% "%<*"\meta{name list}">" and "%</"\meta{name list}">". The
-% directive is formatted by the macro "\Module" whose single argument
+% line beginning with |%<| or is between lines starting with
+% |%<*|\meta{name list}|>| and |%</|\meta{name list}|>|. The
+% directive is formatted by the macro |\Module| whose single argument
% is the text of the directive between, but not including, the angle
% brackets; this macro may be re-defined in the driver or package file
% and by default produces results like \Module{+foo\string|bar} with no
% following space.
%
-% \DescribeMacro{StandardModuleDepth} Sometimes (as in this file) the
+% \DescribeLaTeXCounter{StandardModuleDepth} Sometimes (as in this file) the
% whole code is surrounded by modules to produce several files from a
% single source. In this case it is clearly not appropriate to format
-% all code lines in a special "\AltMacroFont". For this reason a
-% counter "StandardModuleDepth" is provided which defines the level of
+% all code lines in a special |\AltMacroFont|. For this reason a
+% counter |StandardModuleDepth| is provided which defines the level of
% module nesting which is still supposed to be formatted in
-% "\MacroFont" rather then "\AltMacroFont". The default setting is
-% "0", for this documentation it was set to
+% |\MacroFont| rather then |\AltMacroFont|. The default setting is
+% |0|, for this documentation it was set to
%\begin{verbatim}
% \setcounter{StandardModuleDepth}{1}
%\end{verbatim}
% at the beginning of the file.
%
%
+% \section{Examples and basic usage summary}
+%
% \subsection{Basic usage summary}
% \changes{v1.7a}{1992/03/11}{Added basic usage summary to spell
% it out.}
@@ -1126,26 +1308,482 @@
% To sum up, the basic structure of a \texttt{.dtx} file without any
% refinements is like this:
% \begin{verse}\small
-% "% "\meta{waffle}\ldots\\
+% |% |\meta{waffle}\ldots\\
% \quad\ldots \\
-% "% \DescribeMacro{\fred}"\\
-% "% "\meta{description of fred's use}\\
+% |% \DescribeMacro{\fred}|\\
+% |% |\meta{description of fred's use}\\
% \quad\ldots\\
-% "% \StopEventually{"\meta{finale code}"}"\\
+% |% \MaybeStop{|\meta{finale code}|}|\\
% \quad\ldots\\
-% "% \begin{macro}{\fred}"\\
-% "% "\meta{commentary on macro fred}\\
+% |% \begin{macro}{\fred}|\\
+% |% |\meta{commentary on macro fred}\\
% \verb*+% \begin{macrocode}+\\
% \meta{code for macro fred}\\
% \verb*+% \end{macrocode}+\\
-% "% \end{macro}"\\
+% |% \end{macro}|\\
% \quad\ldots\\
-% "% \Finale \PrintIndex \PrintChanges"
+% |% \Finale \PrintIndex \PrintChanges|
% \end{verse}
-% For examples of the use of most---if not all---of the features
-% described above consult the \texttt{doc.dtx} source itself.
+% For further examples of the use of most---if not all---of the features
+% described above, consult the \texttt{doc.dtx} source itself.
+%
+%
+%
+% \subsection{Examples}
+%
+% The default setup includes definitions for the \DOC elements
+% ``macro'' and ``environment''. They correspond to the following
+% declarations:
+%\begin{verbatim}
+% \NewDocElement[macrolike = true ,
+% idxtype = ,
+% idxgroup = ,
+% printtype =
+% ]{Macro}{macro}
+%
+% \NewDocElement[macrolike = false ,
+% idxtype = env. ,
+% idxgroup = environments ,
+% printtype = \textit{env.}
+% ]{Env}{environment}
+%\end{verbatim}
+%
+% To showcase the new features of \DOC version 3 to some extend, the
+% current documentation is done by redefining these declarations and
+% also adding a few additional declarations on top.
%
-% \subsection{Acknowledgements}
+% For any internal command we document we use \texttt{Macro} and put
+% all of them under the heading ``\LaTeX{} commands'' (note the use of \cs{actualchar}):
+%\begin{verbatim}
+%\RenewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = LaTeX comands\actualchar\LaTeX{} commands ,
+% printtype =
+% ]{Macro}{macro}
+%\end{verbatim}
+%
+% We only have package environments so we use \texttt{Env} for those
+% and group them as well:
+%\begin{verbatim}
+%\RenewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = env. ,
+% idxgroup = Package environments,
+% printtype = \textit{env.}
+% ]{Env}{environment}
+%\end{verbatim}
+%
+%
+% All the interface commands are also grouped together under the label
+% ``Package commands'', we use \texttt{InterfaceMacro} for them:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = Package commands,
+% printtype =
+% ]{InterfaceMacro}{imacro}
+%\end{verbatim}
+%
+% And since we also have a few obsolete interfaces we add yet another category:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = ,
+% idxgroup = Package commands (obsolete),
+% printtype =
+% ]{ObsoleteInterfaceMacro}{omacro}
+%\end{verbatim}
+%
+% Another type of category are the package keys:
+%\begin{verbatim}
+%\NewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = key ,
+% idxgroup = Package keys ,
+% printtype = \textit{key}
+% ]{Key}{key}
+%\end{verbatim}
+%
+% Finally we have \TeX{} counters (with a backslash in front) and
+% \LaTeX{} counters (no backslash) and the two types of \LaTeX{}
+% length registers:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = counter ,
+% idxgroup = TeX counters\actualchar \protect\TeX{} counters ,
+% printtype = \textit{counter}
+% ]{TeXCounter}{tcounter}
+%
+%\NewDocElement[macrolike = false ,
+% toplevel = false,
+% idxtype = counter ,
+% idxgroup = LaTeX counters\actualchar \LaTeX{} counters ,
+% printtype = \textit{counter}
+% ]{LaTeXCounter}{lcounter}
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = skip ,
+% idxgroup = LaTeX length\actualchar \LaTeX{} length (skip) ,
+% printtype = \textit{skip}
+% ]{LaTeXSkip}{lskip}
+%
+%\NewDocElement[macrolike = true ,
+% toplevel = false,
+% idxtype = dimen ,
+% idxgroup = LaTeX length\actualchar \LaTeX{} length (dimen) ,
+% printtype = \textit{dimen}
+% ]{LaTeXDimen}{ldimen}
+%
+%\end{verbatim}
+%
+% And we modify the appearance of the index: just 2 columns not 3 and
+% all the code-line entries get prefixed with an ``$\ell$'' (for line)
+% so that they can easily be distinguished from page index entries.
+%\begin{verbatim}
+% \renewcommand\code[1]{\mbox{$\ell$-#1}}
+% \renewcommand\main[1]{\underline{\mbox{$\ell$-#1}}}
+% \setcounter{IndexColumns}{2}
+%\end{verbatim}
+%
+%
+%
+% \section{Incompatibilities between version 2 and 3}
+%
+% The basic approach when developing version~3 was to provide a very
+% high level of compatibility with version~2 so that nearly all
+% older documents should work out of the box without the need for
+% any adjustments.
+%
+% But as with any change there are situations where that change can
+% result in some sort of incompatibility, e.g., if a newly introduce
+% command name was already been defined in the user document then
+% there will be a conflict that is nearly impossible to avoid
+% 100\%.
+%
+% As mentioned earlier, \DOC now supports options on several commands
+% and environments and as a result it is necessary to use braces
+% around the argument for \cs{DescribeMaro} if the ``macro to be
+% described'' uses private letters such as |@| or |_| as part of its
+% name. That was always the official syntax but in the past you could
+% get away with leaving out the braces more often than you can now.
+%
+% The old \DOC documentation also claimed that redefinitions of things
+% like \cs{PrintDescribeMacro} could be done before loading the
+% package (and not only afterwards) and \DOC would in that case not
+% change those commands. As the setup mechanisms are now much more
+% powerful and general such an approach is not really good. So with
+% \DOC version~3 modifications have to be done after the \DOC package
+% got loaded and the last modification will always win.
+%
+% I'm temped to drop compatibility with \LaTeX~2.09 (but so far I
+% have left it in).
+%
+% In the past it was possible to use macros declared with \cs{outer}
+% in the argument of \verb=\begin{macro}= or \cs{DoNotIndex} even
+% though \cs{outer} is not a concept supported in \LaTeX{}. This is no
+% longer possible. More exactly, it is no longer possible to prevent
+% them from being indexed (as \cs{DoNotIndex} can't be used), but you
+% can pass them to the \env{macro} environment as follows:
+%\begin{verbatim}
+% \begin{macro}[outer]{\foo}
+%\end{verbatim}
+% if \cs{foo} is a macro declared with \cs{outer}. The technical
+% reason for this change is that in the past various other commands,
+% such as |\{| or |\}| did not work properly in these arguments when
+% they where passed as ``strings'' and not as single macro tokens. But
+% by switching to macro tokens we can't have \cs{outer} macros because
+% their feature is to be not allowed in arguments. So what happens
+% above when you use \texttt{[outer]} is that the argument is read as
+% a string with four character tokens so that it is not recognized as
+% being \cs{outer}.
+%
+%
+% \section{Old interfaces no longer really needed}
+%
+% Thirty years is a long time in the life of computer programs, so
+% there are a good number of interfaces within \DOC that are really
+% only of historical interest (or when processing equally old sources.
+% We list them here, but in general we suggest that for new
+% documentation they should not be used.
+%
+%
+% \subsection{\prg{makeindex} bugs}
+%
+% \DescribeObsoleteInterfaceMacro\OldMakeindex
+% Versions of \prg{makeindex} prior to 2.9 had some bugs affecting
+% \DOC{}. One of these,
+% pertaining to the |%| character doesn't have a work-around
+% appropriate for versions with and without the
+% bug.\label{makeindex:version} If
+% you really still have an old version, invoke |\OldMakeindex| in a
+% package file or the driver file to prevent problems with index entries
+% such as |\%|, although you'll probably normally want to turn off
+% indexing of |\%| anyway. Try to get an up-to-date \prg{makeindex}
+% from one of the \TeX{} repositories.
+%
+% \subsection{File transmission issues}
+%
+% In the early days of the Internet file transmission issues have been
+% a serious problem. There was a famous gateway in Rochester, UK that
+% handled the traffic from the European continent to the UK and that
+% consisted of two IBM machines running with different codepages (that
+% had non-reversible differences). As a result ``strange'' \TeX{}
+% characters got replaced with something else with the result that the
+% files became unusable.
+%
+% To guard against this problem (or rather to detect it if something
+% got broken in transfer I added code to \DOC to check a static
+% character table and also to have a very simple checksum feature
+% (counting backslashes).
+%
+% These days the \cs{CheckSum} is of little value (and a lot of pain
+% for the developer) and character scrambling doesn't happen any more
+% so the \cs{CharacterTable} is essentially useless. Thus neither
+% should be used in new developments.
+%
+% \label{sec:checksum}
+% \DescribeObsoleteInterfaceMacro\CharacterTable
+% \DescribeObsoleteInterfaceMacro\CheckSum
+% To overcome some of the problems of sending files over the networks
+% we developed two macros which should detect corrupted files. If one
+% places the lines
+% \begin{flushleft}
+% \small\ttfamily ^^A \ttfamily to get the blanks between "..."s
+% ^^A right
+%|%%\CharacterTable|\\
+%|%% {Upper-case |
+%|\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z|\\
+%|%% Lower-case |
+%|\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z|\\
+%|%% Digits \0\1\2\3\4\5\6\7\8\9|\\
+%|%% Exclamation \! Double quote "|
+%| Hash (number) \#|\\
+%|%% Dollar \$ Percent \% Ampersand \&|\\
+%|%% Acute accent \' Left paren \( Right paren \)|\\
+%|%% Asterisk \* Plus \+ Comma \,|\\
+%|%% Minus \- Point \. Solidus \/|\\
+%|%% Colon \: Semicolon \; Less than \<|\\
+%|%% Equals \= Greater than \> Question mark \?|\\
+%|%% Commercial at \@ Left bracket \[ Backslash \\|\\
+%|%% Right bracket \] Circumflex \^ Underscore \_|\\
+%|%% Grave accent \` Left brace \{ Vertical bar |\verb=|=\\
+%|%% Right brace \} Tilde \~}|\\
+%|%%|
+%\end{flushleft}
+% at the beginning of the file then character translation failures
+% will be detected, provided of course, that the used \DOC{}
+% package has a correct default table. The percent
+% signs\footnote{There are two percent signs in each line. This has
+% the effect that these lines are not removed by the
+% \texttt{docstrip.tex} program.} at the beginning of the lines should
+% be typed in, since only the \DOC{} package should look at this
+% command.
+%
+%
+% Another problem of mailing files is possible truncation. To detect
+% these sort of errors we provide a |\CheckSum| macro. The check-sum
+% of a file is simply the number of backslashes in the code, i.e.\ all
+% lines between the \env{macrocode} environments. But don't be
+% afraid: you don't have count the code-lines yourself; this is done
+% by the \DOC{} package for you. You simply have add
+% \begin{quote}
+% |% \CheckSum{0}|
+% \end{quote}
+% near the beginning of the file and use the |\MaybeStop| (which
+% starts looking for backslashes) and the |\Finale| command. The
+% latter will inform you either that your file has no check-sum
+% (telling you the right number) or that your number is incorrect if
+% you put in anything other than zero but guessed wrong (this time
+% telling you both the correct and the incorrect one). Then you go to
+% the top of your file again and change the line to the right number,
+% i.e., line
+% \begin{quote}
+% |% \CheckSum{|\meta{number}|}|
+% \end{quote}
+% and that's all.
+%
+% While |\CharacterTable| and |\CheckSum| have been important features
+% in the early days of the public internet when \DOC{} was written as
+% the mail gateways back then were rather unreliable and often mangled
+% files they are these days more a nuisance than any help. They are
+% therefore now fully optional and no longer recommended for use with
+% new files.
+%
+%
+
+
+
+% ^^A =============================================================
+
+
+
+% \begin{multicols}{2}[\medskip \noindent\rule{\textwidth}{.3pt}
+% \section{Introduction to previous releases}]
+%
+% \begin{quote}
+% \textbf{Original abstract:}
+% This package contains the definitions that are necessary to
+% format the documentation of package files. The package was
+% developed in Mainz in cooperation with the Royal Military College
+% of Science. This is an update which documents various changes
+% and new features in \DOC{} and integrates the features of
+% \env{newdoc}.
+% \end{quote}
+%
+% The \TeX{} macros which are described here allow definitions and
+% documentation to be held in one and the same file. This has the
+% advantage that normally very complicated instructions are made
+% simpler to understand by comments inside the definition. In addition
+% to this, updates are easier and only one source file needs to be
+% changed. On the other hand, because of this, the package files are
+% considerably longer: thus \TeX{} takes longer to load them. If this
+% is a problem, there is an easy remedy: one needs only to run the
+% \texttt{docstrip.tex} program that removes nearly all lines that begin
+% with a
+% percent sign.
+%
+% The idea of integrated documentation was born with the development
+% of the \TeX{} program; it was crystallized in Pascal with the \Web{}
+% system. The advantages of this method are plain to see (it's easy
+% to make comparisons \cite{art:Knuthliterat}). Since this
+% development, systems similar to \Web{} have been developed for other
+% programming languages. But for one of the most complicated
+% programming languages (\TeX) the documentation has however been
+% neglected. The \TeX{} world seems to be divided between:---
+% \begin{itemize} \item a couple of ``wizards'', who produce many
+% lines of completely unreadable code ``off the cuff'', and \item many
+% users who are amazed that it works just how they want it to do. Or
+% rather, who despair that certain macros refuse to do what is
+% expected of them.\end{itemize}
+%
+% I do not think that the \Web{} system is {\em the\/} reference work;
+% on the contrary, it is a prototype which suffices for the
+% development of programs within the \TeX{} world. It is sufficient,
+% but not totally sufficient.\footnote{I know that this will be seen
+% differently by a few people, but this product should not be seen as
+% the finished product, at least as far as applications concerning
+% \TeX{} are concerned. The long-standing debate over `multiple
+% change files' shows this well.} As a result of \Web, new programming
+% perspectives have been demonstrated; unfortunately, though, they
+% haven't been developed further for other programming languages.
+%
+% The method of documentation of \TeX{} macros which I have introduced
+% here should also only be taken as a first sketch. It is designed
+% explicitly to run under \LaTeX{} alone. Not because I was of the
+% opinion that this was the best starting point, but because from this
+% starting point it was the quickest to develop.\footnote{This
+% argument is a bad one, however, it is all too often trotted out.} As
+% a result of this design decision, I had to move away from the
+% concept of modularization; this was certainly a step backward.
+%
+% I would be happy if this article could spark off discussion over
+% \TeX\ documentation. I can only advise anyone who thinks that they
+% can cope without documentation to ``Stop Time'' until he or she
+% completely understands the \AmSTeX{} source code.
+%
+% \subsection*{Using the \DOC{} package}
+%
+% Just like any other package, invoke it by requesting it with a
+% |\usepackage| command in the preamble. \DOC's use of
+% |\reversemarginpars| may make it incompatible with some classes.
+% \changes{v1.7a}{1992/02/25}{Altered usage info}
+%
+%
+% \end{multicols}
+%
+%
+%
+%
+% \begin{multicols}{2}[\subsection*{Preface to version 1.7 (from
+% around 1992)}]
+%
+% This version of \texttt{doc.dtx} documents changes which have occurred
+% since the last published version \cite{art:doc} but which have been
+% present in distributed versions of \texttt{doc.sty} for some time. It
+% also integrates the (undocumented) features of the distributed
+% \texttt{newdoc.sty}.
+%
+% The following changes and additions have been made to the user
+% interface since the published version~\cite{art:doc}. See
+% \S\ref{sec:interface} for more details.
+% \begin{description}
+% \item[Driver mechanism] |\DocInput| is now used in the driver file
+% to input possibly multiple independent \DOC{} files and \DOC{} no
+% longer has to be the last package. |\IndexListing| is replaced
+% by |\IndexInput|;
+% \item[Indexing] is controlled by |\PageIndex| and |\CodelineIndex|,
+% one of which must be specified to produce an index---there is no
+% longer a |\makeindex| in the default |\DocstyleParms|;
+% \item[The \texttt{macro} environment] now takes as argument the
+% macro name {\em with\/} the backslash;
+% \item[Verbatim text] Newlines are now forbidden inside |\verb| and
+% commands |\MakeShortVerb| and |\DeleteShortVerb| are provided for
+% verbatim shorthand;
+% \item[\texttt{\bslash par}] can now be used in |\DoNotIndex|;
+% \item[Checksum/character table support] for ensuring the integrity
+% of distributions is added;
+% \item[\texttt{\bslash printindex}] becomes |\PrintIndex|;
+% \item[\texttt{multicol.sty}] is no longer necessary to use \DOC{} or
+% print the documentation (although it is recommended);
+% \item[`Docstrip' modules] are recognized and formatted specially.
+% \end{description}
+%
+% As well as adding some completely new stuff,
+% the opportunity has been taken to add some commentary to the code
+% formerly in \pkg{newdoc} and that added after version 1.5k of
+% \DOC. Since (as noted in the sections concerned) this
+% commentary wasn't written by Frank Mittelbach but the code was, it is
+% probably {\em not\/} true in this case that ``if the code and
+% comments disagree both are probably wrong''!
+%
+% \subsubsection*{Bugs}
+%
+% There are some known bugs in this version:
+% \begin{itemize}
+% \item The |\DoNotIndex| command doesn't work for some single
+% character commands most noticeable |\%|.
+% \item The `General changes' glossary entry would come out after
+% macro names with a leading |!| and possibly a leading |"|;
+% \item If you have an old version of \prg{makeindex} long |\changes|
+% entries will come out strangely and you may find the section
+% header amalgamated with the first changes entry. Try to get an
+% up-to-date one (see p.~\pageref{makeindex:version});
+% \item Because the accompanying \prg{makeindex} style files support
+% the inconsistent attribute specifications of older and newer
+% versions \prg{makeindex} always complains about three `unknown
+% specifier's when sorting the index and changes entries.
+% \item If |\MakeShortVerb| and |\DeleteShortVerb| are used with
+% single character arguments, e.g., \verb"{|}" instead of \verb"{\|}" chaos
+% may happen.
+% \end{itemize}
+% (Some `features' are documented below.)
+%
+% \subsubsection*{Wish list}
+%
+% \begin{itemize}
+% \item Hooks to allow |\DescribeMacro| and |\DescribeEnv| to write
+% out to a special file information about the package's `exported'
+% definitions which they describe. This could subsequently be
+% included in the \texttt{docstrip}ped \texttt{.sty} file in a
+% suitable form for use by smart editors in command completion,
+% spelling checking etc., based on the packages used in a document.
+% This would need agreement on a `suitable form'. \item Indexing of
+% the modules used in \texttt{docstrip}'s |%<| directives. I'm not
+% sure how to index directives containing module combinations; \item
+% Writing out bibliographic information about the package; \item Allow
+% turning off use of the special font for, say, the next guarded
+% block.
+% \end{itemize}
+%
+%
+% \end{multicols}
+
+
+% \subsection*{Acknowledgements}
%
% I would like to thank all folks at Mainz and at the Royal Military
% College of Science for their help in this project. Especially Brian
@@ -1158,14 +1796,14 @@
% \texttt{doc.dtx} after its publication in \textsl{TUGboat\/} have
% been never properly described. Beside this splendid work he kindly
% provided additional code (like ``docstrip'' module formatting) which
-% I think every \textsf{doc.dtx} user will be grateful for.
+% I think every \DOC user will be grateful for.
%
%
-% \StopEventually{
+% \MaybeStop{
% \begin{thebibliography}{1}
% \bibitem{book:Buerger} \textsc{G. A. B\"urger}.
-% \newblock Wunderbare Reisen zu Wasser und zu Lande, Feldz\"uge
-% und lustige Abenteuer des Freyherrn v.\ M\"unchhausen.
+% \newblock Wunderbare Reisen zu Wasser und zu Lande, Feldzüge
+% und lustige Abenteuer des Freyherrn v.\ Münchhausen.
% \newblock London, 1786 \& 1788.
% \bibitem{art:Knuthliterat} \textsc{D. E. Knuth}.
% \newblock Literate Programming.
@@ -1189,20 +1827,20 @@
% \newblock \texttt{docstrip.dtx} (to appear).
% \newblock The file is part of the DOC package.
% \bibitem{book:Raspe} \textsc{R. E. Raspe} (*1737, \dag 1797).
-% \newblock Baron M\"unchhausens narrative of his marvellous
+% \newblock Baron Münchhausens narrative of his marvelous
% travels and campaigns in Russia.
% \newblock Oxford, 1785.
-% \bibitem{art:verbatim} \textsc{Rainer Sch\"opf}.
+% \bibitem{art:verbatim} \textsc{Rainer Schöpf}.
% \newblock A New Implementation of \LaTeX's \texttt{verbatim} and
% \texttt{verbatim*} Environments.
% \newblock File \texttt{verbatim.doc}, version 1.4i.
% \end{thebibliography}
%
-% \ifmulticols
% \addtocontents{toc}{\protect\end{multicols}}
-% \fi
%
-% } ^^A end \StopEventually
+% \PrintIndex
+%
+% } ^^A end \MaybeStop
%
%
% \section{The Description of Macros}
@@ -1228,50 +1866,211 @@
\@ifundefined{macro@cnt}{}{\endinput}
% \end{macrocode}
%
-% \DescribeMacro\fileversion
-% \DescribeMacro\filedate
-% \DescribeMacro\docdate
+% \DescribeObsoleteInterfaceMacro\fileversion
+% \DescribeObsoleteInterfaceMacro\filedate
+% \DescribeObsoleteInterfaceMacro\docdate
% As you can see I used macros like |\fileversion| to denote the
% version number and the date. They are defined at the very beginning
-% of the package file (without a surrounding \textsf{macrocode}
+% of the package file (without a surrounding \env{macrocode}
% environment), so I don't have to search for this place here when I
% change the version number. You can see their actual outcome in a
% footnote to the title.
%
%
-% The first thing that we do next is to get ourselves a new comment
-% sign. Because all sensible signs are already occupied, we will
-% choose one that can only be entered indirectly:
+% The first thing that we do next is to get ourselves two alternative comment
+% signs. Because all sensible signs are already occupied, we will
+% choose some that can only be entered indirectly:
% {\DoNotIndex{\^}^^A avoid misinterpretation !!!!! VERIFY
% \begin{macrocode}
\catcode`\^^A=14
+\catcode`\^^X=14
% \end{macrocode}
% We repeat this statement at the beginning of the document in case
% the \texttt{inputenc} package is used disabling it again.
% \changes{v2.0b}{1998/05/19}{Init docs private comment char at begin
% of document again (pr2581)}
% \begin{macrocode}
-\AtBeginDocument{\catcode`\^^A=14\relax}
+\AtBeginDocument{\catcode`\^^A=14\relax\catcode`\^^X=14\relax}
% \end{macrocode}
% \SortIndex{\string^\string^A}{\string\verb\verbatimchar
% \string^\string^A\verbatimchar
+% \encapchar main}^^A
+% \SortIndex{\string^\string^X}{\string\verb\verbatimchar
+% \string^\string^X\verbatimchar
% \encapchar main}
% }
%
%
-% \subsection{Options supported by \DOC{}}
+% \subsection{Keys supported by \DOC{}}
+%
+% In the past this used \pkg{kvoptions} but this will be
+% replaced by using \texttt{l3keys} at some point in the future.
+% Right now this is only a lightweight shift---the code could and
+% should be altered further.
+% \fmi{cleanup replacement of kvoptions}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+% Some keys are available as options for use in \cs{usepackage} some are
+% for the generated item \api's:
+% \fmi{cleanup documentation (and code once the new key interface is there)}
+% \begin{macrocode}
+\newif \ifdoc@noprint
+\newif \ifdoc@noindex
+\newif \ifdoc@hyperref \doc@hyperreftrue
+\newif \ifdoc@multicol \doc@multicoltrue
+\newif \ifdoc@debugshow
+\newif \ifdoc@reportchangedates
+\keys_define:nn {doc}
+ {
+ noprint .choice:,
+ noprint / true .code:n = { \legacy_if_set_true:n { doc@noprint } },
+ noprint / false .code:n = { \legacy_if_set_false:n { doc@noprint } },
+ noprint .default:n = { true },
+ noindex .choice:,
+ noindex / true .code:n = { \legacy_if_set_true:n { doc@noindex } },
+ noindex / false .code:n = { \legacy_if_set_false:n { doc@noindex } },
+ noindex .default:n = { true },
+ hyperref .choice:,
+ hyperref / true .code:n = { \legacy_if_set_true:n { doc@hyperref } },
+ hyperref / false .code:n = { \legacy_if_set_false:n { doc@hyperref } },
+ hyperref .default:n = { true },
+% \end{macrocode}
+% \changes{v3.0h}{2022/06/01}{fix choice key name (gh/750)}
+% \begin{macrocode}
+ nohyperref .choice:,
+ nohyperref / true .code:n = { \legacy_if_set_false:n { doc@hyperref } },
+ nohyperref / false .code:n = { \legacy_if_set_true:n { doc@hyperref } },
+ nohyperref .default:n = { true },
+ multicol .choice:,
+ multicol / true .code:n = { \legacy_if_set_true:n { doc@multicol } },
+ multicol / false .code:n = { \legacy_if_set_false:n { doc@multicol } },
+ multicol .default:n = { true },
+ nomulticol .choice:,
+ nomulticol / true .code:n = { \legacy_if_set_false:n { doc@multicol } },
+ nomulticol / false .code:n = { \legacy_if_set_true:n { doc@multicol } },
+% \end{macrocode}
+% \changes{v3.0h}{2022/06/01}{fix default key name (gh/750)}
+% \begin{macrocode}
+ nomulticol .default:n = { true },
+ debugshow .choice:,
+ debugshow / true .code:n = { \legacy_if_set_true:n { doc@debugshow } },
+ debugshow / false .code:n = { \legacy_if_set_false:n { doc@debugshow } },
+ debugshow .default:n = { true },
+ reportchangedates .choice:,
+ reportchangedates / true .code:n = { \legacy_if_set_true:n { doc@reportchangedates } },
+ reportchangedates / false .code:n = { \legacy_if_set_false:n { doc@reportchangedates } },
+ reportchangedates .default:n = { true },
+ }
+% \end{macrocode}
+% This one is for \cs{usepackage} and \cs{NewDocElement}:
+% \begin{macrocode}
+\newif \ifdoc@toplevel \doc@topleveltrue
+\keys_define:nn {doc}
+ {
+ toplevel .choice:,
+ toplevel / true .code:n = { \legacy_if_set_true:n { doc@toplevel } },
+ toplevel / false .code:n = { \legacy_if_set_false:n { doc@toplevel } },
+ toplevel .default:n = { true },
+ notoplevel .choice:,
+ notoplevel / true .code:n = { \legacy_if_set_false:n { doc@toplevel } },
+ notoplevel / false .code:n = { \legacy_if_set_true:n { doc@toplevel } },
+ notoplevel .default:n = { true }
+ }
+% \end{macrocode}
+% These are for \cs{NewDocElement}:
+% \begin{macrocode}
+\newif \ifdoc@macrolike
+\keys_define:nn {doc}
+ {
+ macrolike .choice:,
+ macrolike / true .code:n = { \legacy_if_set_true:n { doc@macrolike } },
+ macrolike / false .code:n = { \legacy_if_set_false:n { doc@macrolike } },
+ macrolike .default:n = { true },
+ envlike .choice:,
+ envlike / true .code:n = { \legacy_if_set_false:n { doc@macrolike } },
+ envlike / false .code:n = { \legacy_if_set_true:n { doc@macrolike } },
+ envlike .default:n = { true }
+ }
+
+\keys_define:nn { doc }
+ {
+ idxtype .tl_set:N = \doc@idxtype,
+ idxgroup .tl_set:N = \doc@idxgroup,
+ printtype .tl_set:N = \doc@printtype
+ }
+% \end{macrocode}
+% And this one only for instances of doc elements in the document, it
+% covers the case where you want to document a macro which is
+% declared to be \cs{outer}. This is not a concept officially
+% supported by \LaTeX{} but there are cases when it gets used.
+% \begin{macrocode}
+\newif\ifdoc@outer
+\keys_define:nn {doc}
+ {
+ outer .choice:,
+ outer / true .code:n = { \legacy_if_set_true:n { doc@outer } },
+ outer / false .code:n = { \legacy_if_set_false:n { doc@outer } },
+ outer .default:n = { true },
+ }
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \subsection{Processing the package keys}
+%
+% \begin{macrocode}
+\ProcessKeyOptions
+% \end{macrocode}
%
-% Not options available at the moment
%
+% \begin{macro}{\ifscan@allowed}
+% \begin{macro}{\scan@allowedtrue}
+% \begin{macro}{\scan@allowedfalse}
+% |\ifscan@allowed| is the switch used to determine if
+% the |\active@escape@char|\SpecialIndex{\active@escape@char}
+% should start the macro scanning mechanism.
% \begin{macrocode}
+\newif\ifscan@allowed \scan@allowedtrue
% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{imacro}{\SetupDoc}
+%
+% We need to save the default value for some options because \DOC elements
+% can locally set them.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+% \begin{macrocode}
+\def\SetupDoc#1{%
+ \csname keys_set:nn\endcsname{doc}{#1}%
+ \edef\doc@noprintdefault{\ifdoc@noprint true\else false\fi}%
+ \ifdoc@noindex
+% \end{macrocode}
+% If we do not index by default then we should also turn off
+% \cs{scan@allowed}.
+% \begin{macrocode}
+ \def\doc@noindexdefault{true}%
+ \scan@allowedfalse
+ \else
+ \def\doc@noindexdefault{false}%
+ \fi
+}
+% \end{macrocode}
+% \end{imacro}
+%
+% \begin{macrocode}
+\SetupDoc{} % just save the default values
+% \end{macrocode}
+%
%
%
% \subsection{Macros surrounding the `definition parts'}
%
% \begin{environment}{macrocode}
% Parts of the macro definition will be surrounded by the
-% environment \textsf{macrocode}. Put more precisely, they will be
+% environment \env{macrocode}. Put more precisely, they will be
% enclosed by a macro whose argument (the text to be set
% `verbatim') is terminated by the string
% \verb*+% \end{macrocode}+. Carefully note the number of spaces.
@@ -1307,7 +2106,7 @@
% \begin{macrocode}
\def\macro@code{%
% \end{macrocode}
-% In theory it should consist of a \textsf{trivlist} environment, but
+% In theory it should consist of a \env{trivlist} environment, but
% the empty space before and after the environment should not be
% too large.
% \begin{macrocode}
@@ -1384,7 +2183,7 @@
% indexing by code lines is switched on the line number is incremented
% and set appropriately. We also check whether the start of the next
% line indicates a \texttt{docstrip} module directive and process it
-% appropriately if so using "\check@module".
+% appropriately if so using |\check@module|.
% \begin{macrocode}
\global\@newlistfalse
\global\@minipagefalse
@@ -1408,9 +2207,9 @@
% \begin{macro}{\blank@linetrue}
% \begin{macro}{\blank@linefalse}
% |\ifblank@line| is the switch used in the definition above.
-% In the original \textsf{verbatim} environment the |\if@tempswa|
+% In the original \env{verbatim} environment the |\if@tempswa|
% switch is used. This is dangerous because its value may change
-% while processing lines in the \textsf{macrocode} environment.
+% while processing lines in the \env{macrocode} environment.
% \begin{macrocode}
\newif\ifblank@line
% \end{macrocode}
@@ -1419,10 +2218,10 @@
% \end{macro}
%
% \begin{macro}{\endmacrocode}
-% Because we have begun a \textsf{trivlist} environment in the
-% \textsf{macrocode} environment, we must also end it. We must
-% also act on the value of the "pm@module" flag (see below) and
-% empty "\everypar".
+% Because we have begun a \env{trivlist} environment in the
+% \env{macrocode} environment, we must also end it. We must
+% also act on the value of the |pm@module| flag (see below) and
+% empty |\everypar|.
% \changes{v1.5r}{1989/11/04}{Support for code line no. (Undoc)}
% \begin{macrocode}
\def\endmacrocode{%
@@ -1439,7 +2238,7 @@
% \end{macro}
%
%
-% \begin{macro}{\MacroFont}
+% \begin{imacro}{\MacroFont}
% Here is the default definition for the |\MacroFont| macro.
% With the new math font handling in NFSS2 it isn't any longer
% correct to suppress the math font setup since this is now handled
@@ -1459,7 +2258,7 @@
% bothered since doc-sources should be up-to-date but since the
% request came from someone called David Carlisle \ldots :-)
% \changes{v1.9y}{1996/01/26}{Support compat mode}
-% \changes{v2.1l}{2019/12/16}{Use \cs{shapedefault} not
+% \changes{v2.1l}{2019/12/16}{Use \cs{shapedefault} not
% \cs{updefault} for extended NFSS}
% \begin{macrocode}
\def\MacroFont{\small
@@ -1477,9 +2276,9 @@
\fi
}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
-% \begin{macro}{\AltMacroFont}
+% \begin{imacro}{\AltMacroFont}
% \begin{macro}{\macro@font}
% \changes{v1.7a}{1992/03/12}{Added to support distinction of modules.}
% \changes{v1.7c}{1992/03/26}{Altered font change for OFSS.}
@@ -1487,9 +2286,9 @@
% \changes{v1.8c}{1993/10/25}{NFSS standard}
% \changes{v1.9t}{1995/05/26}{Removed \cs{math@fontsfalse} (different
% math setup /pr1622}
-% Although most of the macro code is set in "\MacroFont" we want to be
-% able to switch to indicate module code set in "\AltMacroFont".
-% "\macro@font" keeps track of which one we're using. We can't do the
+% Although most of the macro code is set in |\MacroFont| we want to be
+% able to switch to indicate module code set in |\AltMacroFont|.
+% |\macro@font| keeps track of which one we're using. We can't do the
% same thing sensibly in OFSS as in NFSS.
% \begin{macrocode}
\@ifundefined{AltMacroFont}{%
@@ -1514,8 +2313,8 @@
\fi
}{}
% \end{macrocode}
-% To allow changing the "\MacroFont" in the preamble we defer
-% defining the internally used "\macro@font" until after the
+% To allow changing the |\MacroFont| in the preamble we defer
+% defining the internally used |\macro@font| until after the
% preamble.
% \changes{v2.0a}{1998/05/16}{Support changing \cs{MacroFont} in
% preamble}
@@ -1523,23 +2322,23 @@
\AtBeginDocument{\let\macro@font\MacroFont}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{imacro}
%
% \begin{macro}{\check@module}
% \begin{macro}{\ifpm@module}
% \changes{v1.7a}{1992/03/12}{Added.}
-% This is inserted by "\everypar" at the start of each macrocode line to
+% This is inserted by |\everypar| at the start of each macrocode line to
% check whether it starts with module information. (Such information is
-% of the form "%<"\meta{switch}">", where the "%" must be at the
+% of the form |%<|\meta{switch}|>|, where the |%| must be at the
% start of the line and \meta{switch} comprises names with various
-% possible separators and a possible leading "+", "-", "*" or "/"
+% possible separators and a possible leading |+|, |-|, |*| or |/|
% \cite{art:docstrip}. All that concerns us here is what the first
-% character of \meta{switch} is.) First it checks the "pm@module"
+% character of \meta{switch} is.) First it checks the |pm@module|
% flag in case the previous line had a non-block module
-% directive i.e., not "%<*" or "%</"; if it did we need to close the
-% group it started and unset the flag. "\check@module" looks ahead at
-% the next token and then calls "\ch@percent" to take action depending
-% on whether or not it's a "%"; we don't want to expand the token at
+% directive i.e., not |%<*| or |%</|; if it did we need to close the
+% group it started and unset the flag. |\check@module| looks ahead at
+% the next token and then calls |\ch@percent| to take action depending
+% on whether or not it's a |%|; we don't want to expand the token at
% this stage. This is all done conditionally so it can be turned off
% if it causes problems with code that wasn't designed to be
% \texttt{docstrip}ped.
@@ -1553,25 +2352,27 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \begin{macro}{\DontCheckModules}
-% \begin{macro}{\CheckModules}
+% \begin{imacro}{\DontCheckModules}
+% \begin{imacro}{\CheckModules}
% \changes{v1.7a}{1992/03/12}{Added.}
% \begin{macro}{\ifcheck@modules}
% Here are two driver-file interface macros for turning the module
-% checking on and off using the "check@modules" switch.
+% checking on and off using the |check@modules| switch.
% \begin{macrocode}
\def\DontCheckModules{\check@modulesfalse}
\def\CheckModules{\check@modulestrue}
\newif\ifcheck@modules \check@modulestrue
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+%
+%
% \begin{macro}{\ch@percent}
% \changes{v1.7a}{1992/03/12}{Added.}
-% If the lookahead token in "\next" is $"%"_{12}$ we go on to check
-% whether the following one is "<" and otherwise do nothing. Note the
-% "\expandafter" to get past the "\fi".
+% If the lookahead token in |\next| is $|%|_{12}$ we go on to check
+% whether the following one is |<| and otherwise do nothing. Note the
+% |\expandafter| to get past the |\fi|.
% \begin{macrocode}
\def\ch@percent{%
\if \percentchar\next
@@ -1582,7 +2383,7 @@
%
% \begin{macro}{\check@angle}
% \changes{v1.7a}{1992/03/12}{Added.}
-% Before looking ahead for the "<" the "%" is gobbled by the
+% Before looking ahead for the |<| the |%| is gobbled by the
% argument here.
% \begin{macrocode}
\def\check@angle#1{\futurelet\next\ch@angle}
@@ -1591,9 +2392,9 @@
% \begin{macro}{\ch@angle}
% \changes{v1.7a}{1992/03/12}{Added.}
% \changes{v1.9k}{1994/02/22}{Have \texttt{<} active}
-% If the current lookahead token is "<" we are defined to be
-% processing a module directive can go on to look for "+" etc.;
-% otherwise we must put back the gobbled "%". With \LaTeXe{}
+% If the current lookahead token is |<| we are defined to be
+% processing a module directive can go on to look for |+| etc.;
+% otherwise we must put back the gobbled |%|. With \LaTeXe{}
% \texttt{<} is active so we have to be a bit careful.
% \begin{macrocode}
\begingroup
@@ -1644,13 +2445,13 @@
% \end{macro}
% \begin{macro}{\pm@module}
% If we're not dealing with a block
-% directive ("*" or "/") i.e., it's a single special line, we set
-% everything up to the next ">" appropriately and then change to the
+% directive (|*| or |/|) i.e., it's a single special line, we set
+% everything up to the next |>| appropriately and then change to the
% special macro font inside a group which will be ended at the start
% of the next line. If the apparent module directive is missing the
-% terminating ">" this will lose, but then so will the \texttt{docstrip}
+% terminating |>| this will lose, but then so will the \texttt{docstrip}
% implementation. An alternative strategy would be to have
-% "\pm@module" make ">" active and clear a flag set here to indicate
+% |\pm@module| make |>| active and clear a flag set here to indicate
% processing the directive. Appropriate action could then be taken if
% the flag was found still to be set when processing the next line.
% \changes{v1.7a}{1992/03/12}{Added.}
@@ -1663,8 +2464,8 @@
\Module{#1}\begingroup
% \end{macrocode}
% We switch to a special font as soon the nesting is higher than
-% the current value of "\c@StandardModuleDepth". We do a local
-% update to the "\guard@level" here which will be restored after
+% the current value of |\c@StandardModuleDepth|. We do a local
+% update to the |\guard@level| here which will be restored after
% the current input line.
% \begin{macrocode}
\advance\guard@level\@ne
@@ -1706,8 +2507,7 @@
% \end{macro}
% \end{macro}
%
-%
-% \begin{macro}{\c@StandardModuleDepth}
+% \begin{lcounter}{StandardModuleDepth}
% \changes{v1.7i}{1992/07/11}{Counter added.}
% Counter defining up to which level modules are considered part of
% the main code. If, for example, the whole code is surrounded by
@@ -1716,38 +2516,39 @@
% \begin{macrocode}
\newcounter{StandardModuleDepth}
% \end{macrocode}
-% \end{macro}
+% \end{lcounter}
%
%
-% \begin{macro}{\guard@level}
+% \begin{tcounter}{\guard@level}
% \changes{v1.7f}{1992/05/16}{Added.}
% We need a counter to keep track of the guard nesting.
% \begin{macrocode}
\newcount \guard@level
% \end{macrocode}
-% \end{macro}
+% \end{tcounter}
+
% \begin{macro}{\Module}
% \changes{v1.7a}{1992/03/12}{Added.}
% \changes{v1.7d}{1992/04/25}{Use sans font for modules.}
% This provides a hook to determine the way the module directive is
% set. It gets as argument everything between the angle brackets.
% The default is to set the contents in sans serif text between
-% $\langle\,\rangle$ with the special characters suitably "\mathcode"d
-% by "\mod@math@codes". (You can't just set it in a sans text font
-% because normally "|" will print as an em-dash.) This is done
+% $\langle\,\rangle$ with the special characters suitably |\mathcode|d
+% by |\mod@math@codes|. (You can't just set it in a sans text font
+% because normally \verb"|" will print as an em-dash.) This is done
% differently depending on whether we have the NFSS or the old one. In
-% the latter case we can easily change "\fam" appropriately.
+% the latter case we can easily change |\fam| appropriately.
% \changes{v1.8c}{1993/10/25}{NFSS standard}
% \begin{macrocode}
\@ifundefined{Module}{%
% \end{macrocode}
% With NFSS what we probably {\em should\/} do is change to a new
-% "\mathversion" but I (Dave Love) haven't spotted an easy way to
+% |\mathversion| but I (Dave Love) haven't spotted an easy way to
% do so correctly if the document uses a version other than
-% "normal". (We need to know in what font to set the other
+% |normal|. (We need to know in what font to set the other
% groups.) This uses a new math alphabet rather than version and
% consequently has to worry about whether we're using
-% \textsf{oldlfnt} or not. I expect there's a better
+% \env{oldlfnt} or not. I expect there's a better
% way\ldots
% \begin{macrocode}
\def\Module#1{\mod@math@codes$\langle\mathsf{#1}\rangle$}
@@ -1759,11 +2560,11 @@
% \changes{v1.7c}{1992/03/26}{Added.}
% \changes{v2.1e}{2010/02/04}{Added mathcodes for +,-,:, and = (pr/4096)}
% As well as `words', the module
-% directive text might contain any of the characters "*/+-,&|!()"
-% for the current version of \textsf{docstrip}. We only need
+% directive text might contain any of the characters \verb"*/+-,&|!()"
+% for the current version of \prg{docstrip}. We only need
% special action for two of them in the math code changing required
-% above: "|" is changed to a "\mathop" (it's normally |"026A|) and
-% "&" is also made a "\mathop", but in family 0. Remember that "&"
+% above: \verb"|" is changed to a |\mathop| (it's normally |"026A|) and
+% |&| is also made a |\mathop|, but in family 0. Remember that |&|
% will not have a special catcode when it's encountered.
% \begin{macrocode}
\def\mod@math@codes{\mathcode`\|="226A \mathcode`\&="2026
@@ -1772,27 +2573,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\mathsf}
-% \changes{v1.7c}{1992/03/26}{Added.}
-% \changes{v1.7d}{1992/04/25}{Use sans font for modules.}
-% \changes{v1.7n}{1993/02/21}{\cs{sfmath} Renamed to \cs{mathsf}.}
-% \changes{v1.8c}{1993/10/25}{NFSS standard}
-% If NFSS is in use we need a new math alphabet which uses a sans serif
-% font. To support both the release one and two of NFSS the alphabet
-% was renamed to "\mathsf" which is defined in NFSS2.
-% \begin{macrocode}
-%\ifx\selectfont\undefined
-%\else
-% \ifx\mathsf\undefined
-% \newmathalphabet*{\mathsf}{\sfdefault}{m}{n}\fi
-%\fi
-% \end{macrocode}
-% \end{macro}
%
-%
-%
-% \begin{macro}{\MacrocodeTopsep}
-% \begin{macro}{\MacroIndent}
+% \begin{lskip}{\MacrocodeTopsep}
+% \begin{ldimen}{\MacroIndent}
% In the code above, we have used two registers. Therefore we have
% to allocate them. The default values might be overwritten with
% the help of the |\DocstyleParms| macro.
@@ -1805,22 +2588,22 @@
\newdimen\MacroIndent
\settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{ldimen}
+% \end{lskip}
%
%
%
%
% \begin{environment}{macrocode*}
% \begin{macro}{\endmacrocode*}
-% Just as in the \textsf{verbatim} environment, there is also a
-% `star' variant of the \textsf{macrocode} environment in which a
+% Just as in the \env{verbatim} environment, there is also a
+% `star' variant of the \env{macrocode} environment in which a
% space is shown by the symbol \verb*+ +. Until this moment, I
% have not yet used it (it will be used in the description of the
% definition of |\xmacro@code| below) but it's exactly on this one
-% occasion {\em here\/} that you can't use it (cf.\ M\"unchhausens
+% occasion {\em here\/} that you can't use it (cf.\ Münchhausens
% Marsh problem)\footnote{Karl Friedrich Hieronymus Frhr.\ v.\
-% M\"unchhausen (*1720, \dag1797). Several books were written
+% Münchhausen (*1720, \dag1797). Several books were written
% about fantastic adventures supposedly told by him (see
% \cite{book:Raspe} or \cite{book:Buerger}). In one story he
% escaped from the marsh by pulling himself out by his hair.}
@@ -1865,7 +2648,7 @@
% \end{macrocode*}
% Additionally, we need to ensure that the symbols in the above
% string contain the |\catcode|$\,$s which are available
-% within the \textsf{macrocode} environment.
+% within the \env{macrocode} environment.
% \begin{macrocode*}
\catcode`\{=12 \catcode`\}=12
\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
@@ -1908,65 +2691,7 @@
% \subsection{Macros for the `documentation parts'}
%
%
-% \begin{macro}{\DescribeMacro}
-% \begin{macro}{\Describe@Macro}
-% \changes{v1.5v}{1990/01/28}{Macro added.}
-% \changes{v1.5j}{1989/06/09}{\cs{ignorespaces} added as a temporary
-% fix}
-% \begin{macro}{\DescribeEnv}
-% \begin{macro}{\Describe@Env}
-% \changes{v1.5v}{1990/01/28}{Macro added.}
-% \changes{v1.5j}{1989/06/09}{\cs{ignorespaces} added as a temporary
-% fix}
-% The |\DescribeMacro| and |\DescribeEnv| macros should
-% print their arguments in the margin and produce an index entry.
-% We simply use |\marginpar| to get the desired result. This
-% is however not the best solution because the labels might be
-% slightly misplaced. One also might get a lot of `marginpar moved'
-% messages which are hard-wired into the \LaTeX{} output
-% routine.\footnote{It might be better to change these macros into
-% environments like the \textsf{macro} environment.} First we change
-% to horizontal mode if necessary. The \LaTeX{} macros
-% |\@bsphack| and |\@esphack| are used to make those
-% commands invisible (i.e.\ to normalize the surrounding space and
-% to make the |\spacefactor| transparent).
-% \changes{v1.5v}{1990/01/28}{\cs{MakePrivateLetters} added.}
-% \begin{macrocode}
-\def\DescribeMacro{\leavevmode\@bsphack
-% \end{macrocode}
-% When documenting the code for the \texttt{amstex.sty} option we
-% encountered a bug: the |\catcode| of |@| was active and
-% therefore couldn't be used in command names. So we first have to
-% make sure that we get all |\catcode|s right by calling
-% |\MakePrivateLetters| inside a group. Then we call
-% |\Describe@Macro| to do the work.
-% \changes{v2.0g}{1999/03/22}{Parse backslash as letter in argument
-% to \cs{DescribeMacro}.}
-% \changes{v2.0h}{1999/03/25}{Correct errors introduced in v2.0g.}
-% \begin{macrocode}
- \begingroup\MakePrivateLetters\Describe@Macro}
-\def\Describe@Macro#1{\endgroup
- \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
-% \end{macrocode}
-% Note the use of |\raggedleft| to place the output flushed
-% right. Finally we call a macro which produces the actual index
-% entry and finish with |\@esphack| to leave no
-% trace.\footnote{The whole mechanism won't work because
-% of the \texttt{\bslash leavevmode} in front.
-% As a temporary change \texttt{\bslash ignorespaces}
-% is added.}
-% \begin{macrocode}
- \SpecialUsageIndex{#1}\@esphack\ignorespaces}
-% \end{macrocode}
-% The |\DescribeEnv| macro is completely analogous.
-% \changes{v1.5v}{1990/01/28}{\cs{MakePrivateLetters} added.}
-% \begin{macrocode}
-\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
- \Describe@Env}
-\def\Describe@Env#1{\endgroup
- \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
- \SpecialEnvIndex{#1}\@esphack\ignorespaces}
-% \end{macrocode}
+
% To put the labels in the left margin we have to use the
% |\reversemarginpar| declaration. (This means that the
% \texttt{doc.sty} can't be used with all classes or packages.)
@@ -1978,12 +2703,12 @@
\reversemarginpar
\setlength\marginparpush{0pt} \setlength\marginparwidth{8pc}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\bslash}
+% \begin{macrocode}
+\setlength\marginparsep{\labelsep}
+% \end{macrocode}
+%
+% \begin{imacro}{\bslash}
% \changes{v1.7a}{1992/02/26}{Moved \cs{bslash} documentation to `user
% interface' part}
% We start a new group in which to hide the alteration of
@@ -2000,14 +2725,14 @@
% \begin{macrocode}
|gdef|bslash{\}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
%
% \begin{environment}{verbatim}
% \begin{environment}{verbatim*}
% \changes{v1.7i}{1992/07/12}{Added changed definition for verbatim!*.}
-% The \textsf{verbatim} environment holds no secrets; it consists of
+% The \env{verbatim} environment holds no secrets; it consists of
% the normal \LaTeX{} environment. We also set the
% |\@beginparpenalty| and change to the font given by
% |\MacroFont|.
@@ -2032,7 +2757,7 @@
% \begin{macro}{\@verbatim}
% Additionally we redefine the |\@verbatim| macro so that it
% suppresses |%| characters at the beginning of the line. The
-% first lines are copied literally from the \LaTeX{} format.
+% first lines are copied literally from \texttt{latex.tex}.
% \changes{v1.7i}{1992/07/12}{Added \cs{@@par} to clear possible
% \cs{parshape}.}
% \begin{macrocode}
@@ -2056,7 +2781,7 @@
% \begin{macrocode}
\check@percent}%
% \end{macrocode}
-% The rest is again copied literally from the \LaTeX{} format (less
+% The rest is again copied literally from \texttt{latex.tex} (less
% "\tt").
% \changes{v1.7a}{1992/02/26}{Removed redundant \cs{tt}.}
% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim,
@@ -2074,7 +2799,7 @@
% percent's |\catcode| so that it is seen by \TeX. The definition
% itself is nearly trivial: grab the following character, check if
% it is a |%|, and insert it again if not. At the end of the
-% \textsf{verbatim} environment this macro will peek at the next
+% \env{verbatim} environment this macro will peek at the next
% input line. In that case the argument to |\check@percent| might
% be a |\par| or a macro with arguments. Therefore we make the
% definition |\long| (|\par| allowed) and use the normal |\next|
@@ -2093,16 +2818,16 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\verb}
+% \begin{imacro}{\verb}
% \changes{v1.7a}{1992/02/27}{Now warns about newlines (from
% newdoc with `@noligs added).}
% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}}
-% We re-define "\verb" to check for newlines in its argument since a
+% We re-define |\verb| to check for newlines in its argument since a
% missing delimiter is difficult to detect in \DOC{} source.
% The code is the same as in \texttt{latex.tex} of September 19, 1993.
% Perhaps there should be a font-changing
-% hook rather than just using "\ttfamily", but if so it probably should be
-% different from "\MacroFont" since that normally includes "\small"
+% hook rather than just using |\ttfamily|, but if so it probably should be
+% different from |\MacroFont| since that normally includes |\small|
% and would look wrong inline.
% \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)}
% \begin{macrocode}
@@ -2111,24 +2836,27 @@
\ttfamily \verb@eol@error \let\do\@makeother \dospecials
\@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
% \begin{macro}{\verb@balance@group}
% \begin{macro}{\verb@egroup}
% \begin{macro}{\verb@eol@error}
% \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to
% \cs{verb@eol@error}, as in new LaTeX verbatim.}
-% \changes{v2.1n}{2021/05/28}{Use same error message text as in format}
% \begin{macrocode}
\let\verb@balance@group\@empty
-
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup}
-
+% \end{macrocode}
+%
+% \begin{macrocode}
\begingroup
\obeylines%
\gdef\verb@eol@error{\obeylines%
\def^^M{\verb@egroup\@latex@error{%
- \noexpand\verb ended by end of line}\@ehc}}%
+ \noexpand\verb command ended by end of line}\@ehc}}%
\endgroup
% \end{macrocode}
% \end{macro}
@@ -2155,7 +2883,7 @@
%
% \begin{macro}{\verbatim@nolig@list}
% \begin{macro}{\do@noligs}
-% These macros replace the old "\@noligs" mechanism by an
+% These macros replace the old |\@noligs| mechanism by an
% extensible version to allow more ligatures to be added.
% \begin{macrocode}
\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
@@ -2168,240 +2896,29 @@
% \end{macro}
% \end{macro}
%
-%
-% \begin{macro}{\macro}
-% \begin{macro}{\m@cro@}
-% \changes{v1.5v}{1990/01/28}{\cs{macro@} renamed to \cs{m@cro@}
-% since AmSTeX
-% defines another macro of the same name.}
-% \begin{macro}{\macro@cnt}
-% \label{page:macro} The \textsf{macro} environment is implemented as
-% a \textsf{trivlist} environment, whereby in order that the macro
+% \begin{tcounter}{\macro@cnt}
+% \label{page:macro} The \env{macro} environment is implemented as
+% a \env{trivlist} environment, whereby in order that the macro
% names can be placed under one another in the margin
% (corresponding to the macro's nesting depth), the macro
% |\makelabel| must be altered. In order to store the nesting
% depth, we use a counter. We also need a counter to count the
-% number of nested \textsf{macro} environments.
+% number of nested \env{macro} environments.
% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
% \changes{v1.9k}{1994/02/22}{Fix probably no longer necessary}
% \begin{macrocode}
\newcount\macro@cnt \macro@cnt=0
% \end{macrocode}
-% The environment takes an argument---the macro name to be
-% described. Since this name may contain special `letters' we have
-% to re-|\catcode| them before scanning the argument. This is done
-% by the |\MakePrivateLetters| macro.
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.7a}{1992/02/26}{Catcode backslash to other (from newdoc).}
-% \changes{v1.9k}{1994/02/22}{Don't omit extra group}
-% \begin{macrocode}
-\def\macro{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@ \iftrue}
-% \end{macrocode}
-%
-% \begin{environment}{environment}
-% \changes{v1.8c}{1993/10/25}{Environment added}
-% The ``environment'' environment will be implemented just like the
-% ``macro'' environment flagging any differences in the code by
-% passing |\iffalse| or |\iftrue| to the |\m@cro@| environment
-% doing the actual work.
-% \begin{macrocode}
-\def\environment{\begingroup
- \catcode`\\12
- \MakePrivateLetters \m@cro@ \iffalse}
-% \end{macrocode}
-% \end{environment}
-%
-% After scanning the argument we close the group to get the normal
-% |\catcode|$\,$s back. Then we assign a special value to
-% |\topsep| and start a \textsf{trivlist} environment.
-% \changes{v1.5f}{1989/05/07}{MacroTopsep parameter added.}
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.8c}{1993/10/25}{Support ``environment'' env}
-% \changes{v1.9k}{1994/02/22}{Remove \cs{macro@level}}
-% \begin{macrocode}
-\long\def\m@cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
-% \end{macrocode}
-% We also save the name being described in |\saved@macroname| for
-% use in conjunction with the |\changes| macro.
-% \begin{macrocode}
- \edef\saved@macroname{\string#2}%
- #1
-% \end{macrocode}
-% If documenting an environment we put is name in |\saved@indexname|
-% otherwise the name without the backslash.
-% \changes{v2.1g}{2016/02/15}{Use \cs{saved@indexname}}
-% \begin{macrocode}
- \let\saved@indexname\saved@macroname
- \else
- \edef\saved@indexname{\expandafter\@gobble\string#2}%
- \fi
-% \end{macrocode}
-% Now there follows a variation of |\makelabel| which is used
-% should the environment not be nested, or should it lie between
-% two successive |\begin{macro}| instructions or explanatory
-% text. One can recognize this with the switch |\if@inlabel|
-% which will be |true| in the case of successive |\item|
-% commands.
-% \begin{macrocode}
- \def\makelabel##1{\llap{##1}}%
-% \end{macrocode}
-% If |@inlabel| is |true| and if $\verb=\macro@cnt= > 0$
-% then the above definition needs to be changed, because in this
-% case \LaTeX{} would otherwise put the labels all on the same line
-% and this would lead to them being overprinted on top of each
-% other. Because of this |\makelabel| needs to be redefined
-% in this case.
-% \begin{macrocode}
- \if@inlabel
-% \end{macrocode}
-% If |\macro@cnt| has the value $1$, then we redefine
-% |\makelabel| so that the label will be positioned in the
-% second line of the margin. As a result of this, two macro names
-% appear correctly, one under the other. It's important whilst
-% doing this that the generated label box is not allowed to have
-% more depth than a normal line since otherwise the distance
-% between the first two text lines of \TeX{} will be incorrectly
-% calculated. The definition should then look like:
-%\begin{verbatim}
-% \def\makelabel##1{\llap{\vtop to \baselineskip
-% {\hbox{\strut}\hbox{##1}\vss}}}
-%\end{verbatim}
-% Completely analogous to this is the case where labels need to be
-% placed one under the other. The lines above are only an example
-% typeset with the \textsf{verbatim} environment. To produce the real
-% definition we save the value of |\macro@cnt| in
-% |\count@| and empty the temp macro |\@tempa| for later
-% use.
-% \begin{macrocode}
- \let\@tempa\@empty \count@\macro@cnt
-% \end{macrocode}
-% In the following loop we append for every already typeset label
-% an |\hbox{\strut}| to the definition of |\@tempa|.
-% \begin{macrocode}
- \loop \ifnum\count@>\z@
- \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
-% \end{macrocode}
-% Now be put the definition of |\makelabel| together.
-% \changes{v1.5b}{1989/04/27}{vbox to vtop changed in makelabel (test)}
-% \changes{v1.5e}{1989/04/28}{ht strutbox changed to baselineskip
-% (test)}
-% \begin{macrocode}
- \edef\makelabel##1{\llap{\vtop to\baselineskip
- {\@tempa\hbox{##1}\vss}}}%
-% \end{macrocode}
-% Next we increment the value of the nesting depth counter. This
-% value inside the \textsf{macro} environment is always at least one
-% after this point, but its toplevel definition is zero. Provided
-% this environment has been used correctly, $|\macro@cnt|=0$
-% should not occur when |@inlabel|=\textsf{true}. It is
-% however possible if this environment is used within other list
-% environments (but this would have little point).
-% \begin{macrocode}
- \advance \macro@cnt \@ne
-% \end{macrocode}
-% If |@inlabel| is false we reset |\macro@cnt| assuming
-% that there is enough room to print the macro name without
-% shifting.
-% \begin{macrocode}
- \else \macro@cnt\@ne \fi
-% \end{macrocode}
-% Now the label will be produced using |\item|. The following
-% line is only a hack saving the day until a better solution is
-% implemented. We have to face two problems: the argument might be
-% a |\par| which is forbidden in the argument of other macros
-% if they are not defined as |\long|, or it is something like
-% |\iffalse| or |\else|, i.e.\ something which will be
-% misinterpreted when \TeX{} is skipping conditional text. In both
-% cases |\item| will bomb, so we protect the argument by using
-% |\string|.
-% \begin{macrocode}
- \edef\@tempa{\noexpand\item[%
-% \end{macrocode}
-% Depending on whether we are inside a ``macro'' or ``environment''
-% environment we use |\PrintMacroName| or |\PrintEnvName| to
-% display the name.
-% \begin{macrocode}
- #1%
- \noexpand\PrintMacroName
- \else
- \noexpand\PrintEnvName
- \fi
- {\string#2}]}%
- \@tempa
-% \end{macrocode}
-% At this point we also produce an index entry. Because it is not
-% known which index sorting program will be used, we do not use the
-% command |\index|, but rather a command
-% |\SpecialMainIndex| after advancing the counter for indexing
-% by line number. This may be redefined by the user in
-% order to generate an index entry which will be understood by the
-% index program in use (note the definition of
-% |\SpecialMainIndex| for our installation).
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \changes{v1.9u}{1995/08/06}{Removed brace group which
-% killed \cs{DoNotIndex}}
-% We advance the current codeline number and after producing an
-% index entry revert to the original value
-% \begin{macrocode}
- \global\advance\c@CodelineNo\@ne
-% \end{macrocode}
-% Again the macro to call depends on the environment we are
-% actually in.
-% \begin{macrocode}
- #1%
- \SpecialMainIndex{#2}\nobreak
- \DoNotIndex{#2}%
- \else
- \SpecialMainEnvIndex{#2}\nobreak
- \fi
- \global\advance\c@CodelineNo\m@ne
-% \end{macrocode}
-% The |\nobreak| is needed to prevent a page break after the
-% |\write| produced by the |\SpecialMainIndex| macro. We
-% exclude the new macro in the cross-referencing feature, to
-% prevent spurious non-main entry references. Regarding possibly
-% problematic arguments, the implementation takes
-% care of |\par| and the conditionals are uncritical.
-% \changes{v1.7a}{1992/03/02}{Removed redundant code checking for
-% \cs{par}.}^^A
-%
-% Because the space symbol should be ignored between the
-% |\begin{macro}{...}| and the following text we must take
-% care of this with |\ignorespaces|.
-% \begin{macrocode}
- \ignorespaces}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{tcounter}
%
%
-%
-% \begin{macro}{\endmacro}
-% \begin{macro}{\endenvironment}
-% Older releases of this environment omit the |\endgroup| token,
-% when being nested. This was done to avoid unnecessary stack usage.
-% However it does not work if \textsf{macro} and
-% \textsf{environment} environments are mixed, therefore we now
-% use a simpler approach.
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.9k}{1994/02/22}{Don't checkfor nesting}
-% \begin{macrocode}
-\let\endmacro \endtrivlist
-\let\endenvironment\endmacro
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\MacroTopsep}
+% \begin{lskip}{\MacroTopsep}
% Here is the default value for the |\MacroTopsep| parameter
% used above.
% \begin{macrocode}
\newskip\MacroTopsep \MacroTopsep = 7pt plus 2pt minus 2pt
% \end{macrocode}
-% \end{macro}
+% \end{lskip}
%
%
%
@@ -2413,49 +2930,15 @@
% Therefore we define those macros only if they have not already
% been defined.
%
-% \begin{macro}{\PrintMacroName}
-% \begin{macro}{\PrintEnvName}
-% \begin{macro}{\PrintDescribeMacro}
-% \begin{macro}{\PrintDescribeEnv}
-% The formatting of the macro name in the left margin is done by
-% these macros. We first set a |\strut| to get the height and
-% depth of the normal lines. Then we change to the
-% |\MacroFont| using |\string| to |\catcode| the
-% argument to other (assuming that it is a macro name). Finally we
-% print a space. The font change remains local since this macro
-% will be called inside an |\hbox|.
-% \begin{macrocode}
-\@ifundefined{PrintMacroName}
- {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
-% \end{macrocode}
-% We use the same formatting conventions when describing a macro.
-% \begin{macrocode}
-\@ifundefined{PrintDescribeMacro}
- {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
-% \end{macrocode}
-% To format the name of a new environment there is no need to use
-% |\string|.
-% \begin{macrocode}
-\@ifundefined{PrintDescribeEnv}
- {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
-\@ifundefined{PrintEnvName}
- {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
%
% \subsection{Creating index entries by scanning `macrocode'}
%
% The following macros ensure that index entries are created for each
% occurrence of a \TeX-like command (something starting with
-% `|\|') providing indexing has been turned on with "\PageIndex"
-% or "\CodelineIndex". With the default definitions of
-% |\SpecialMainIndex|, etc., the index file generated is
-% intended to be processed by Chen's \textsf{makeindex} program
+% `|\|') providing indexing has been turned on with |\PageIndex|
+% or |\CodelineIndex|. With the default definitions of
+% |\specialMainMacroIndex|, etc., the index file generated is
+% intended to be processed by Chen's \prg{makeindex} program
% \cite{art:Chen}.
%
%
@@ -2464,15 +2947,15 @@
% introduce command names at places where |\| has to belong to
% some other category. Therefore, we may also need to recognize
% \verb+|+ as the introducer for a command when setting the text
-% inside the \textsf{macrocode} environment. Other users may have the
+% inside the \env{macrocode} environment. Other users may have the
% need to make similar reassignments for their macros.
%
%
-% \begin{macro}{\SpecialEscapechar}\label{sect:specialescapechar}
+% \begin{imacro}{\SpecialEscapechar}\label{sect:specialescapechar}
% \begin{macro}{\active@escape@char}
% \begin{macro}{\special@escape@char}
% The macro |\SpecialEscapechar| is used to denote a special escape
-% character for the next \textsf{macrocode} environment. It has one
+% character for the next \env{macrocode} environment. It has one
% argument---the new escape character given as a `single-letter'
% control sequence. Its main purpose is defining
% |\special@escape@char| to produce the chosen escape character
@@ -2528,7 +3011,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{imacro}
%
%
%
@@ -2564,7 +3047,7 @@
% `|\|' first to 12 (at the end of |\macro@code|) then
% re-|\catcode| it to 13 in order to produce a $|\|_{12}$
% in case 3b) above. This is done because we have to ensure that
-% `|\|' has |\catcode| 13 within the \textsf{macrocode}
+% `|\|' has |\catcode| 13 within the \env{macrocode}
% environment. Otherwise the delimiter for the argument of
% |\xmacro@code| would not be found (parameter matching
% depends on |\catcode|$\,$s).
@@ -2574,7 +3057,7 @@
\begingroup \catcode`\|=\z@ \catcode`\\=\active
% \end{macrocode}
% We carry out tasks 2) and 3b) first.
-% \SpecialEscapechar{\|}
+% \SpecialEscapechar\|
% \begin{macrocode}
|gdef|init@crossref{|catcode`|\|active |let\|bslash
% \end{macrocode}
@@ -2613,7 +3096,7 @@
%
%
%
-% \begin{macro}{\MakePrivateLetters}
+% \begin{imacro}{\MakePrivateLetters}
% Here is the default definition of this command, which makes just
% the |@| into a letter. The user may change it if he/she
% needs more or other characters masquerading as letters.
@@ -2621,7 +3104,7 @@
\@ifundefined{MakePrivateLetters}
{\let\MakePrivateLetters\makeatletter}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
% \begin{macro}{\close@crossref}
% At the end of a cross-referencing part we prepare ourselves for
@@ -2642,10 +3125,10 @@
% The |\init@crossref| will have made |\active| our
% |\special@escape@char|, so that each
% |\active@escape@char| will invoke |\scan@macro| when
-% within the \textsf{macrocode} environment. By this means, we can
+% within the \env{macrocode} environment. By this means, we can
% automatically add index entries for every \TeX-like command which
% is met whilst setting (in verbatim) the contents of
-% \textsf{macrocode} environments.
+% \env{macrocode} environments.
% \begin{macrocode}
\def\scan@macro{%
% \end{macrocode}
@@ -2658,7 +3141,7 @@
\special@escape@char
\step@checksum
% \end{macrocode}
-% If the \textsf{macrocode} environment contains, for example, the
+% If the \env{macrocode} environment contains, for example, the
% command |\\|, the second |\| should not start the
% scanning mechanism. Therefore we use a switch to decide if
% scanning of macro names is allowed.
@@ -2689,22 +3172,9 @@
% \end{macro}
%
%
-% \begin{macro}{\ifscan@allowed}
-% \begin{macro}{\scan@allowedtrue}
-% \begin{macro}{\scan@allowedfalse}
-% |\ifscan@allowed| is the switch used above to determine if
-% the |\active@escape@char|\SpecialIndex{\active@escape@char}
-% should start the macro scanning mechanism.
-% \begin{macrocode}
-\newif\ifscan@allowed \scan@allowedtrue
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
%
-% \begin{macro}{\EnableCrossrefs}
-% \begin{macro}{\DisableCrossrefs}
+% \begin{imacro}{\EnableCrossrefs}
+% \begin{imacro}{\DisableCrossrefs}
% At this point we might define two macros which allow the user to
% disable or enable the cross-referencing mechanism. Processing of
% files will be faster if only main index entries are generated
@@ -2718,8 +3188,8 @@
\def\EnableCrossrefs{\@bsphack\scan@allowedtrue
\def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
%
%
%
@@ -2750,6 +3220,10 @@
%
%
% \begin{macro}{\short@macro}
+%
+% \fmi{this needs cleaning up too, the results in the index are
+% currently wrong for cases like `\cs{ }' and the like.}
+%
% \changes{v1.5c}{1989/04/27}{Corrected bad bug by putting the
% scan@allowedfalse macro before printing
% the argument.}
@@ -2757,7 +3231,7 @@
% \cs{macro@namepart} as `letter' so index exclusion works.}
% This macro will be invoked (with a single character as parameter)
% when a single-character macro name has been spotted whilst
-% scanning within the \textsf{macrocode} environment.
+% scanning within the \env{macrocode} environment.
%
% First we take a look at the |\index@excludelist| to see
% whether this macro name should produce an index entry. This is
@@ -2775,14 +3249,14 @@
\uccode`\&=\expandafter`\string#1%
\uppercase{\def\x{\def\macro@namepart{&}}}%
\expandafter\endgroup\x
- \ifnot@excluded
% \end{macrocode}
-% If necessary the index entry is produced by the macro
-% |\produce@index|. Depending on the actual character seen,
-% this macro has to do different things, so we pass the character
-% as an argument.
+% Any indexing is then delegated to
+% |\maybe@index@short@macro|. Depending on the actual character seen,
+% this macro has to do different things, which is why we keep it separate from
+% |\maybe@index@macro| to avoid the special tests in the more
+% common case of a multi-letter macro name.
% \begin{macrocode}
- \produce@index{#1}\fi
+ \maybe@index@short@macro\macro@namepart
% \end{macrocode}
% Then we disable the cross-referencing mechanism with
% |\scan@allowedfalse| and print the actual character. The
@@ -2803,104 +3277,6 @@
%
%
%
-% \begin{macro}{\produce@index}
-% \changes{v1.4s}{1989/04/23}{Added noexpand to all
-% \cs{if} tests
-% to avoid garbage produced by new active chars}
-% \changes{v1.4s}{1989/04/23}{Used \texttt{\protect\bslash string} for
-% the same reason.}
-% \changes{v1.5c}{1989/04/27}{Corrected bad bug by placing the
-% scan@allowedfalse macro into short@macro}
-% This macro is supposed to generate a suitable |\SortIndex|
-% command for a given single-letter control sequence. We test
-% first for the cases which involve active characters (i.e.\ the
-% backslash, the special escape character (if any), the space and
-% the |^^M|). Using the |\if| test (testing for
-% character codes), we have to ensure that the argument isn't
-% expanded.
-% \begin{macrocode}
-\def\produce@index#1{%
- \if\noexpand#1\special@escape@char
-% \end{macrocode}
-% If the character is the special escape character (or the
-% `|\|' in case there was none) the |\it@is@a| macro is
-% used to produce the actual |\SortIndex| call.
-% \begin{macrocode}
- \scan@allowedfalse \it@is@a\special@escape@char \else
-% \end{macrocode}
-% Next comes the test for a `|\|' which must be the
-% $|\|_{13}$ expanding to |\bslash|.
-% \begin{macrocode}
- \if\noexpand#1\bslash \it@is@a\bslash \else
-% \end{macrocode}
-% Another possibility is \verb*+ +$_{13}$. Recall that |\space|
-% produces a \verb*+ +$_{10}$.
-% \begin{macrocode}
- \if\noexpand#1\space \it@is@a\space \else
-% \end{macrocode}
-% The last\footnote{Well, it isn't the last active character after
-% all. I added \texttt{\bslash @noligs} some days ago and now
-% \texttt{`} too is active. So we have to make sure that such
-% characters don't get expanded in the index.} possibility of an
-% active character is |^^M|\@. In this case we don't test for
-% character codes, since it is easier to look if the character is
-% equal to |\par|. (We are inside the \textsf{macrocode}
-% environment.)
-% \begin{macrocode}
- \ifx#1\par
-% \end{macrocode}
-% If we end up here we have just scanned a |\^^M| or something
-% similar. Since this will be treated like \verb*+\ + by \TeX{} we
-% produce a corresponding index entry.
-% \begin{macrocode}
- \it@is@a\space \else
-% \end{macrocode}
-% If it is the token |\relax| we do nothing. This can't happen
-% when the `doc' package is used in the way described here, but was
-% added to allow extensions like the \texttt{idxverb} option.
-% \changes{v1.5t}{1989/11/14}{Added \cs{relax} as a possible token to
-% allow extensions.}
-% \begin{macrocode}
- \ifx#1\relax \else
-% \end{macrocode}
-% The next three branches are needed because of bugs in
-% our \textsf{makeindex} program. You can't produce unbalanced index
-% entries\footnote{This is possible for \TeX{} if you use
-% \texttt{\string{$_{12}$ \rmfamily or
-% \ttfamily\string}$_{12}$},
-% but \textsf{makeindex} will complain.}
-% and you have to double a percent character. To get around these
-% restrictions we use special macros to produce the |\index|
-% calls.\footnote{Brian \textsc{Hamilton Kelly} has written fixes for
-% all three
-% bugs. When they've found their way through all
-% installations,
-% the lines above will be removed. See
-% page~\pageref{bug:fixes} if you already have them.
-% (I'm not sure which versions incorporate these, but
-% 2.11 is OK. See also
-% \pageref{makeindex:version}.)}
-% \begin{macrocode}
- \if\noexpand#1\bgroup \LeftBraceIndex \else
- \if\noexpand#1\egroup \RightBraceIndex \else
- \if\noexpand#1\percentchar \PercentIndex \else
-% \end{macrocode}
-% All remaining characters are used directly to produce their index
-% entries. This is possible even for the characters which have
-% special meanings in the index program, provided we quote the
-% characters. (This is correctly done in |\it@is@a|.)
-% \begin{macrocode}
- \it@is@a{\string#1}%
-% \end{macrocode}
-% We now need a whole pile of |\fi|$\,$s to match up with
-% the |\if|$\,$s.
-% \begin{macrocode}
- \fi \fi \fi \fi \fi \fi \fi \fi}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
% \begin{macro}{\macro@name}
% We now come to the macro which assembles command names which
% consist of one or more `letters' (which might well include
@@ -2968,9 +3344,11 @@
% routine. At this time \texttt{\bslash macro@namepart} might have a
% new value.}
% \begin{macrocode}
- \ifnot@excluded
- \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
- \@tempa \fi}
+% \ifnot@excluded
+% \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
+% \@tempa \fi
+ \maybe@index@macro \macro@namepart
+}
% \end{macrocode}
% \end{macro}
%
@@ -2980,155 +3358,525 @@
%
% \subsection[The index exclude list]{The index exclude
% list\footnotemark}
-% \footnotetext{Warning: the incomplete commentary on
+% \footnotetext{Info: the incomplete commentary on
% \texttt{\bslash DoNotIndex} and the macros it calls
% was written by Dave Love.}
%
-% The internal form of the index exclude list is
-% \begin{quote}
-% \meta{macro name}|,|\meta{macro name}|,|
-% \ldots|,|
-% \end{quote}
-% where \meta{macro name} is a macro name like
-% $"\"_{12}"p"{_{11}}"@"_{11}$ or $"\"_{12}"$"_{11}$. Note that the "\"
-% has category `other' and the other characters in the name are all
-% `letter', regardless of their normal category.
%
-% \begin{macro}{\DoNotIndex}
-% This macro is used to suppress macro names in the index. It
-% starts off with a new group because we have to change the
-% |\catcode|$\,$s of all characters which belong to `letters'
-% while macros are defined.
+%
+
+% \def\MakePrivateLetters{%
+% \makeatletter
+% \catcode`\_11
+% \catcode`\:11}
+%
+%
+% The following part of the code is a new implementation using the
+% \LaTeX3 programming layer as the constructs and types
+% provided therein are making programming much easier. Over time I
+% will probably replace the rest of that \DOC code too.
% \begin{macrocode}
-\def\DoNotIndex{\begingroup \MakePrivateLetters
- \catcode`\\12
+\ExplSyntaxOn
% \end{macrocode}
-% Then we call the macro which actually reads the argument given by
-% the user.
+%
+%
+% \DescribeMacro\l__doc_donotindex_seq
+% Local sequence that holds names (as strings) of commands that
+% should not be indexed. Within a \DOC element environment that
+% element is placed into the sequence so that it isn't
+% unnecessarily index within that part of the code. As the sequence
+% is local it will revert this setting at the end of the
+% environment so that the command is indexed elsewhere (unless it
+% is generally disabled from indexing.
+%
+% \DescribeMacro\g__doc_idxtype_prop
+% Global property list that holds for all commands that are special
+% \DOC elements the type of the element. The key is the command
+% name without backslash and the value is \DOC element type
+% identifier, e.g., |\texttt{Length}| for length registers if that
+% type has been set up. \DOC only indexes commands, that is things
+% starting with an escape character, i.e., a backslash (by
+% default). \DOC elements that do not start with an escape
+% character, e.g., environments are not identified when parsing
+% code so that aren't indexed automatically inside. Thus for them
+% there is no point in keeping them in that property list.
+%
+% \DescribeMacro{\doc_dont_index:n}
+% \DescribeInterfaceMacro{\DoNotIndex}
+% Takes a clist of commands (with backslash) as input and exclude
+% all of them from the index. User facing we make this available as
+% |\DoNotIndex|.
+%
+%
+% \DescribeInterfaceMacro\ShowIndexingState
+% Displays the current list of the exclude index list in a fairly
+% low-level form.
+%
+% \DescribeInterfaceMacro\RecordIndexType
+% This command takes two arguments: a command (with escape char)
+% and its type (i.e., first mandatory
+% argument of a |\NewDocElement| declaration. If |#1| should not be
+% included from the index, then the data is used to record that
+% this command is of this type. The information is then used to
+% generate appropriate index entries. Obviously, index entries
+% generated earlier will be listing the wrong type. Therefore this
+% information is also placed into the \texttt{.aux} file so that it
+% will be available at the beginning of further runs.
+%
+% This command is internally executed as part of any \DOC element
+% environment so it only needs to be explicitly given if for some
+% reason a command with a special type has no corresponding environment.
+%
+%
+%
+%
+% \begin{macro}{\l__doc_donotindex_seq}
+% \begin{macro}{\g__doc_idxtype_prop}
+% Declarations.
% \begin{macrocode}
- \do@not@index}
+\seq_new:N \l__doc_donotindex_seq
+\prop_new:N \g__doc_idxtype_prop
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
+% ^^A --------------------------------------------------
%
%
-% \begin{macro}{\do@not@index}
-% We make the |\do@not@index| macro |\long|
-% since the user might want to exclude the |\par|
-% macro.
+% \begin{macro}{\__doc_trace:x}
+% A helper for tracing\ldots
% \begin{macrocode}
-\long\def\do@not@index#1{%
+\cs_new:Npn\__doc_trace:x {
+ \legacy_if:nTF{ doc@debugshow }{ \iow_term:x } { \use_none:n }
+}
% \end{macrocode}
-% It just adds to a token list after finishing the group in which
-% the catcodes were changed.
-% \changes{v1.7a}{1992/02/26}{Replaced with newdoc version.}
+% \end{macro}
+%
+%
+% ^^A --------------------------------------------------
+%
+% \begin{macro}{\doc_dont_index:n}
+% \begin{macro}{\__doc_dont_index:n}
+% \begin{macro}{\__doc_dont_index_aux:n}
+%
+% Parses the argument a clist of commands with
+% |\MakePrivateLetters| in force (so that special characters are
+% recognized as being part of command names) and puts each command
+% without is backslash as a string into the sequence
+% |\l__doc_donotindex_seq|.
% \begin{macrocode}
- \endgroup
- \addto@hook\index@excludelist{#1,}}
+\cs_new:Npn \doc_dont_index:n {
+ \group_begin:
+ \MakePrivateLetters
+ \__doc_dont_index:n
+}
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\addto@hook}
-% The code for adding tokens (the second argument) to a token list
-% (the first argument) is taken from~\cite{art:verbatim}, but it needs
-% to be "\long" in case "\par" is amongt the tokens.
% \begin{macrocode}
-\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
+\cs_new:Npn \__doc_dont_index:n #1 {
+ \group_end:
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\index@excludelist}
-% We need an initially-empty register for the excluded list.
% \begin{macrocode}
-\newtoks\index@excludelist
-\index@excludelist{}
+ \__doc_trace:x{Disable~ indexing~ for~ '\tl_to_str:n{#1}' }
% \end{macrocode}
-% \end{macro}
+% Adding the commands to the |\l__doc_donotindex_seq| sequence is
+% done by mapping the function |\__doc_dont_index_aux:n| on each
+% element in the clist.
+% \begin{macrocode}
+ \clist_map_function:nN {#1} \__doc_dont_index_aux:n
+}
+% \end{macrocode}
+% We record each command by using its name as a string.
+% This means more tokens in the sequence but it allows
+% to compare names not ``action'' which is important as different
+% commands may have the same meaning (e.g., they may not be defined
+% at all),
+% \begin{macrocode}
+\cs_new:Npn \__doc_dont_index_aux:n #1 {
+ \seq_put_right:Nx \l__doc_donotindex_seq {\expandafter\@gobble \string#1}
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ifnot@excluded}
-% \changes{v1.7a}{1992/02/26}{Replaced with newdoc version.}
-% \begin{macro}{\expanded@notin}
-% Now we take a look at the |\index@excludelist| to see
-% whether a macro name saved in |\macro@namepart| should
-% produce an index entry. This macro is a pseudo |\if|; it
-% should expand to |\iftrue| or |\iffalse| depending on
-% the contents of |\index@excludelist|.
+% \begin{macro}{\DoNotIndex}
+% The document-level interface
% \begin{macrocode}
-\begingroup
+\cs_set_eq:NN \DoNotIndex \doc_dont_index:n
% \end{macrocode}
-% First we change "\catcode"s so that "\" is `other' and "|" a
-% temporary for the escape character. This is necessary since our
-% macro names are stored that way in the "\index@excludelist".
+% \end{macro}
+%
+%
+% \begin{macro}{\ShowIndexingState}
+% Some tracing information that may be helpful.
% \begin{macrocode}
-\catcode`\|=0%
-\catcode`\\=12
+\def \ShowIndexingState {
+ \__doc_trace:x{Show~ doc~ indexing~ state:}
+ \seq_show:N \l__doc_donotindex_seq
+% \tl_analysis_show:N\l__doc_donotindex_seq
+ \prop_show:N \g__doc_idxtype_prop
+}
% \end{macrocode}
-% Then we define "\ifnot@excluded" to call "\expanded@notin" with
-% two arguments: the first is the string "\" followed by the
-% contents of "\macro@namepart" followed by a "," and the second is
-% "\the" followed by "\index@excludelist". To achieve the expansion
-% of "\macro@namepart", i.e.\ to pass its contents, we need a
-% suitable number of "\expandafter"s.
-% \SpecialEscapechar{\|}
+% \end{macro}
+
+
+
+% ^^A --------------------------------------------------
+%
+%
+% \begin{macro}{\__doc_idxtype_put:Nn}
+% \begin{imacro}{\RecordIndexType}
+% \fmi{Change name of interface command!}
+% \begin{macro}{\RecordIndexTypeAux}
+% This is the internal form for |\RecordIndexType|. The first
+% argument is turned into a string and the rest of the processing
+% is then done by |\__doc_idxtype_put:nn|
+% \begin{macrocode}
+\cs_new:Npn \__doc_idxtype_put:Nn #1#2 {
+ \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
+% \end{macrocode}
+% We also make an entry in the \texttt{.aux} file so that this
+% declaration becomes immediately available in the next
+% run. However, for this we aren't reusing |\__doc_idxtype_put:N|
+% (a.k.a.\ |\RecordIndexType|) since that would result in doubling
+% such lines each time the document is run. Instead we use
+% |\RecordIndexTypeAux| which is only updating the data structures
+% without writing to the \texttt{.aux} file.
+% \begin{macrocode}
+ \protected@write\@auxout{}
+ {\string\RecordIndexTypeAux {\string#1 }{#2} }
+}
+% \end{macrocode}
+% When we execute this code from the \texttt{.aux} we better not
+% generate a new line in the \texttt{.aux}. Otherwise those would
+% cumulate over time.
% \begin{macrocode}
-|gdef|ifnot@excluded{|expandafter
- |expanded@notin|expandafter{|expandafter
- \|macro@namepart,}{|the|index@excludelist}}
-|endgroup
+\cs_new:Npn \RecordIndexTypeAux #1#2 {
+ \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
+}
% \end{macrocode}
-% The macro "\expanded@notin" now does the dirty work. It first
-% defines a macro "\in@@" with a very special parameter text. If
-% you look closely "\in@@" has three arguments, the first one is
-% delimited by the first argument of "\expanded@notin" (i.e.\ by
-% the string starting with a "\" and ending with a "," above), the
-% second is undelimited (which means that it will get the next
-% token after our string, and the third is delimited again and will
-% get the rest up to the token "\in@@". In other words the token
-% "\in@@" is also used as a delimiter.
-% \begin{macrocode}
-\def\expanded@notin#1#2{%
- \def\in@@##1#1##2##3\in@@{%
-% \end{macrocode}
-% Now the replacement text simply compares the second argument
-% (i.e.\ the undelimited one after our string) to the token
-% "\expanded@notin". This is an unclosed "\ifx" statement which
-% means that this macro behaves similar to a normal \TeX{}
-% conditional.
-% \begin{macrocode}
- \ifx\expanded@notin##2}%
-% \end{macrocode}
-% After all these preparations we call "\in@@". First we expand the
-% token after "\in@@" (which is "\the" from the second argument to
-% "\expanded@notin"). As a result we get the contents of the
-% "\index@excludelist" inserted after "\in@@". After this contents
-% we add once more the string we are looking for, then the token
-% "\expanded@notin" and finally the token "\in@@".
-% \begin{macrocode}
- \expandafter\in@@#2#1\expanded@notin\in@@}
-% \end{macrocode}
-% Now what happens when the macro "\in@@" above gets called? The
-% first argument to "\in@@" is delimited by our string. In other
-% words it will get everything from the contents of
-% "\index@excludelist" before this string. If the string is not in
-% "\index@excludelist" then it gets the whole contents, since after
-% it we had inserted the string one more. In this case the next
-% token is "\expanded@notin" which gets assigned to the second
-% argument and the third argument will be empty. If, on the other
-% hand, the string was inside "\index@excludelist" then the second
-% argument will not be the token "\expanded@notin" and the third
-% argument will be all the garbage up to "\in@@". Therefore testing
-% the seconded argument, as done in the definition of "\in@@" will
-% tell us whether or not the string is in "\index@includelist" and
-% this was exactly what we wanted. (Deep breath.) You got
-% that?\footnote{\TeX{}book page 125. The code described above is
-% originally due to Michael Spivak who used a similar method within
-% the \AmSTeX{} macros.}
-% \end{macro}
-% \end{macro}
+% Similarly, when the \texttt{.aux} is read at the end of the run we
+% should disable that command to avoid unnecessary processing.
+% \begin{macrocode}
+\AtEndDocument{
+ \cs_set_eq:NN \RecordIndexTypeAux \use_none:nn
+}
+% \end{macrocode}
+% Finally, we provide the user-level interface
+% \begin{macrocode}
+\cs_set_eq:NN \RecordIndexType \__doc_idxtype_put:Nn
+% \end{macrocode}
+% \end{macro}
+% \end{imacro}
+% \end{macro}
+%
+%
+% \begin{macro}{\__doc_idxtype_put_scan:nn}
+% When we want to record an index type for a scanned name we can't
+% turn that into a csname and then call |\__doc_idxtype_put:Nn|
+% because turning it into a csname may change the meaning of the
+% name from ``undefined'' to |\relax|. Got bitten by that when
+% processing the kernel sources containing |\@undefined| within the
+% code: suddenly that wasn't undefined any longer.
+% So here is another version that works only on characters as
+% input. As we don't know whether or not they are proper strings
+% already we first make sure that this is the case.
+% \begin{macrocode}
+\cs_new:Npn \__doc_idxtype_put_scan:nn #1#2 {
+ \exp_args:Nf \__doc_idxtype_put:nn { \tl_to_str:n {#1} }{#2}
+% \end{macrocode}
+% In this case we also have to append a backslash when writing to
+% the \texttt{.aux} file.
+% \begin{macrocode}
+ \protected@write\@auxout{}
+ {\string\RecordIndexTypeAux {\bslash #1 }{#2} }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\__doc_idxtype_put_scan:on}
+% And here is the one we really need since the characters are
+% stored in some macro.
+% \begin{macrocode}
+\cs_generate_variant:Nn \__doc_idxtype_put_scan:nn {o}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\record@index@type@save}
+% And here is the interface to the rest of the code:
+% \begin{macrocode}
+\cs_set_eq:NN \record@index@type@save \__doc_idxtype_put_scan:on
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\__doc_idxtype_put:nn}
+% This internal command takes two arguments: a command name as
+% string (no backslash) and its type (i.e., first mandatory
+% argument of a |\NewDocElement| declaration. If |#1| is not in
+% |\l__doc_donotindex_seq| it will add this data to the property
+% list |\g__doc_idxtype_prop| using |#1| as key and |#2| as its
+% value. If the key already exist its value will be overwritten. If
+% the command is later marked for exclusion from the index the
+% property list setting remains unchanged but as long as no index
+% is produced for the command it will not be consulted.
+%
+% Note: the command assumes that |#1| is already in string form
+% \begin{macrocode}
+\cs_new:Npn \__doc_idxtype_put:nn #1#2 {
+% \end{macrocode}
+% No mystery here: if the command is not marked for exclusion from
+% the index add the property. The extra |\tl_to_str:n| is a safety
+% measure in case the input wasn't already in that form (should
+% only be the case with broken input but \ldots)
+% \begin{macrocode}
+ \exp_args:NNf
+ \seq_if_in:NnTF \l__doc_donotindex_seq {\tl_to_str:n{#1}}
+% \end{macrocode}
+% Some tracing info \ldots{}
+% \begin{macrocode}
+ {
+ \__doc_trace:x{Not~ recording~ index~ type~ for~ '\bslash #1' }
+ }
+ {
+ \__doc_trace:x{Recording~ index~ type~ for~ '\bslash #1' ~ as~ #2 }
+% \end{macrocode}
+% Stick the data into the property list:
+% \begin{macrocode}
+ \prop_gput:Nnn \g__doc_idxtype_prop {#1}{#2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% ^^A --------------------------------------------------
+%
+%
+% \begin{macro}{\exp_args:co}
+% A helper: construct a function and call it with its first argument
+% expanded once:
+% \begin{macrocode}
+\cs_new:Npn \exp_args:co #1#2
+ { \cs:w #1 \exp_after:wN \cs_end:\exp_after:wN {#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tl_to_str:o}
+% Another helper: take some token list variable, expand it and turn
+% it into a string.
+% \begin{macrocode}
+\cs_generate_variant:Nn \tl_to_str:n {o}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% ^^A --------------------------------------------------
+%
+%
+%
+% \DescribeMacro\maybe@index@macro
+%
+% This takes a macro name (without backslash) as parsed within a
+% \env{macrocode} environment and checks if it should get indexed
+% (i.e., is not on the exclude list) and if so how (i.e., gets it
+% index type property and makes the right choice depending on that.
+%
+
+
+% \begin{macro}{\maybe@index@macro}
+% \begin{macro}{\__doc_maybe_index:o}
+% We first make sure that the argument is really a string (so that
+% we have a defined situation) and then
+% pass it on to |\__doc_maybe_index_aux:nN| to do the work.
+% The second argument defines the indexing operation
+% \cs{SpecialIndex} for multi-letter macros and below
+% \cs{SpecialShortIndex} for single character macros.
+% \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index:o #1 {
+ \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+ \SpecialIndex
+}
+% \end{macrocode}
+% And here is what we call it in the older non-expl3 code:
+% \begin{macrocode}
+\cs_set_eq:NN \maybe@index@macro \__doc_maybe_index:o
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\maybe@index@short@macro}
+% \begin{macro}{\__doc_maybe_index_short:o}
+% Single character macros are handled similarly but there the
+% indexing is done by \cs{SpecialShortIndex}.
+% \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_short:o #1 {
+ \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+ \SpecialShortIndex
+}
+\cs_set_eq:NN \maybe@index@short@macro \__doc_maybe_index_short:o
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\__doc_maybe_index_aux:nN}
+% Take a string (representing a macro without backslash) and make
+% the right choices with respect to indexing.
+% \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_aux:nN #1#2 {
+% \end{macrocode}
+% A bit of tracing:
+% \begin{macrocode}
+ \__doc_trace:x{Searching~ for~ '\bslash #1'}
+% \end{macrocode}
+% If the name is on the exclude list do nothing.
+% \begin{macrocode}
+ \seq_if_in:NnTF \l__doc_donotindex_seq {#1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ {
+ \__doc_trace:x{Not~ indexing~ '\bslash #1' }
+ }
+% \end{macrocode}
+% Otherwise check if this name has an index type property attached
+% to it.
+% \begin{macrocode}
+ {
+ \prop_get:NnNTF \g__doc_idxtype_prop {#1} \l__doc_idxtype_tl
+% \end{macrocode}
+% If so construct and execute
+% |\Code|\meta{idxtype}|Index|\footnote{I guess this should really
+% be an internal name not a user-level one.} which is done inside
+% |\__doc_maybe_index_aux|
+% \begin{macrocode}
+ {
+ \exp_args:Ncno \__doc_maybe_index_aux:Nnn
+ { Code \tl_use:N \l__doc_idxtype_tl Index }
+ {code} {\bslash #1}
+ }
+% \end{macrocode}
+% Otherwise execute |\SpecialIndex| which is a short form for
+% |\CodeMacroIndex{code}| or execute \cs{SpecialShortIndex} which
+% deals with some special cases for single letter macros.
+% \begin{macrocode}
+ {
+ \__doc_trace:x{Indexing~ '\bslash #1'\space (\string #2)}
+ \exp_args:No #2 {\bslash #1}
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
%
%
%
+% \begin{macro}{\SpecialShortIndex}
+% \fmi{to be documented; also needs cleaning up as it is a mix of
+% old and new right now}
+% \begin{macrocode}
+\cs_new:Npn \SpecialShortIndex #1 {
+ \@SpecialIndexHelper@ #1\@nil
+ \@bsphack
+ \ifdoc@noindex \else
+ \str_case_e:nnF {\@gtempa }
+ {
+ {\cs_to_str:N \^^M } {\def\reserved@a{ \string \space \actualchar }
+ \def\reserved@b { \space }
+ \let\reserved@c \@empty }
+ { } {\def\reserved@a{ \string \space \actualchar }
+ \def\reserved@b { \space }
+ \let\reserved@c \@empty }
+ {\c_left_brace_str} { \def\reserved@a{ \bgroup \actualchar }
+ \def\reserved@b { \c_left_brace_str }
+ \def\reserved@c { \noexpand\iffalse
+ \c_right_brace_str
+ \noexpand\fi } }
+ {\c_right_brace_str} { \def\reserved@a{ \egroup \actualchar
+ \noexpand\iffalse
+ \c_left_brace_str
+ \noexpand\fi }
+ \def\reserved@b { \c_right_brace_str }
+ \let\reserved@c \@empty }
+% \end{macrocode}
+% The case of \cs{verbatimchar} is tricky. We can't stick it into
+% the normal \cs{verb} because we would then get something like
+% \verb=\verb+\++= which would comes out as ``\verb+\++'' instead
+% of \verb=\+=. So we use the \cs{verb} to only generate the
+% backslash and then use \cs{texttt} on the \cs{verbatimchar}
+% itself. However, that is not enough if we are unlucky and
+% somebody (like Will :-)) has used something like \verb=&= with a
+% special catcode for the \cs{verbatimchar}. We therefore also
+% apply \cs{string} to it when we read it back.
+% \begin{macrocode}
+ {\verbatimchar} { \def\reserved@a{ \quotechar\verbatimchar
+ \actualchar }
+ \let\reserved@b \@empty
+ \def\reserved@c
+ { \string\texttt{\string\string\verbatimchar} } }
+ }
+ { \def\reserved@a {\quotechar \@gtempa \actualchar }
+ \def\reserved@b {\quotechar \@gtempa }
+ \let\reserved@c \@empty }
+ \special@index {
+ \reserved@a
+ \string\verb
+ \quotechar *\verbatimchar \quotechar \bslash
+ \reserved@b
+ \verbatimchar
+ \reserved@c
+ \encapchar code}
+ \fi
+ \@esphack
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+
+% \begin{macro}{\__doc_maybe_index_aux:Nnn}
+% Execute the function passed on as first argument taking argument
+% 2 and 3 as input.
+% \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_aux:Nnn #1#2#3 {
+% \end{macrocode}
+% We have to be a little careful: as that function name is
+% constructed it may not actually exist (as constructions generate
+% |\relax| in \TeX{} in that case). In that case we raise an error,
+% otherwise we execute (with a little bit of tracing info):
+% \begin{macrocode}
+ \cs_if_exist:NTF #1
+ {
+ \__doc_trace:x{Indexing~ '#3'\space as~
+ \tl_use:N \l__doc_idxtype_tl }
+ #1{#2}{#3}
+ }
+ {
+ \PackageError{doc}{Doc~ element~
+ '\tl_use:N \l__doc_idxtype_tl'~ unknown}%
+
+ {When~ using~ '\string\RecordIndexType'~ the~ type~ must~
+ be~ known~\MessageBreak
+ to~ the~ system,~ i.e.,~ declared~ via~
+ '\string\NewDocElement'\MessageBreak
+ before~ it~ can~ be~ used~ in~ indexing.}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
%
+% Back to old style coding \ldots
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
%
%
%
@@ -3138,20 +3886,20 @@
% index entries; these are either invoked explicitly, or automatically
% by |\scan@macro|. As already mentioned, the definitions given
% here presuppose that the |.idx| file will be processed by
-% Chen's \textsf{makeindex} program --- they may be redefined for use
-% with the user's favourite such program.
+% Chen's \prg{makeindex} program --- they may be redefined for use
+% with the user's favorite such program.
%
% To assist the reader in locating items in the index, all such
% entries are sorted alphabetically {\em ignoring\/} the initial
% `|\|'; this is achieved by issuing an |\index| command which
-% contains the `actual' operator for \textsf{makeindex}. The default
+% contains the `actual' operator for \prg{makeindex}. The default
% value for the latter operator is `|@|', but the latter character is
% so popular in \LaTeX\ package files that it is necessary to substitute
-% another character. This is indicated to \textsf{makeindex} by means
+% another character. This is indicated to \prg{makeindex} by means
% of an `index style file'; the character selected for this function
% is |=|, and therefore this character too must be specially treated
% when it is met in a \TeX\ command. A suitable index style file is
-% provided amongt the supporting files for this style file in
+% provided amongst the supporting files for this style file in
% \texttt{gind.ist} and is generated from this source by processing
% with \texttt{docstrip} to extract the module \textbf{gind}. A
% similar style file \texttt{gglo.ist} is supplied for sorting the
@@ -3172,12 +3920,12 @@
%<+gind|gglo>
% \end{macrocode}
%
-% \begin{macro}{\actualchar}
-% \begin{macro}{\quotechar}
-% \begin{macro}{\levelchar}
+% \begin{imacro}{\actualchar}
+% \begin{imacro}{\quotechar}
+% \begin{imacro}{\levelchar}
% First come the definitions of |\actualchar|,
% |\quotechar| and |\levelchar|. Note, that our defaults
-% are not the ones used by the \textsf{makeindex} program without a
+% are not the ones used by the \prg{makeindex} program without a
% style file.
% \begin{macrocode}
%<*package>
@@ -3190,85 +3938,39 @@
%<+gind|gglo>level '>'
%<*package>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
%
%
-% \begin{macro}{\encapchar}
-% The \textsf{makeindex} default for the |\encapchar| isn't
+% \begin{imacro}{\encapchar}
+% The \prg{makeindex} default for the |\encapchar| isn't
% changed.
% \begin{macrocode}
\@ifundefined{encapchar}{\def\encapchar{|}}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\verbatimchar}
+% \begin{imacro}{\verbatimchar}
% We also need a special character to be used as a delimiter for
% the |\verb*| command used in the definitions below.
% \begin{macrocode}
\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\SpecialIndex}
-% The |\SpecialIndex| command creates index entries for
-% macros. If the argument is |\|$xyz$, the command produces
-% \verb|\indexentry{|$xyz$\verb|=\verb!*+\|$xyz$\verb|+}{|$n$\verb|}|
-% given the above defined defaults for |\actualchar|,
-% |\quotechar| and |\verbatimchar|. We first remove the
-% initial `|\|' to get a better index.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \begin{macrocode}
-\def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble
- \string#1\actualchar
-% \end{macrocode}
-% Then follows the actual entry. A |\quotechar| is placed
-% before the |*| to allow its use as a special \textsf{makeindex}
-% character. Again |\@bsphack| and |\@esphack| are used
-% to make the macros invisible.
-% \begin{macrocode}
- \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
- \@esphack}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\SpecialMainIndex}
-% \begin{macro}{\SpecialMainEnvIndex}
-% \begin{macro}{\SpecialUsageIndex}
-% The |\SpecialMainIndex| macro is used to cross-reference the
-% names introduced by the \textsf{macro} environment. The action is
-% as for |\SpecialIndex|, except that \textsf{makeindex} is
-% instructed to `encap'sulate the entry with the string
-% \verb=|main= to cause it to generate a call of the |\main|
-% macro.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \changes{v2.0c}{1998/08/22}{Correctly handle single character
-% control sequences like \cs{<}.}
%
-% |\SpecialMainIndex| passes the macro name to be indexed on to the
-% macro |\SpecialIndex@|.
-% \begin{macrocode}
-\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
- \@esphack}
-% \end{macrocode}
-%
-% \begin{macro}{\SpecialIndex@}
-% \changes{v2.0c}{1998/08/22}{Macro added.}
-% \changes{v2.0f}{1999/02/27}{Temp fix to allow strange code in arg 1
-% (PR 2968)}
-% The macro |\SpecialIndex@| does the real work for |\SpecialMainIndex|
-% and |\SpecialUsageIndex|. It takes two arguments: the macro to be
-% indexed (as a control sequence or list of character tokens) and the
-% additional text for the index.
-% \changes{v2.0g}{1999/03/22}{Correct so-called temp fix. I'm not going to
-% explain this.}
+% \begin{macro}{\@SpecialIndexHelper@}
+% \fmi{doc or drop}
% \begin{macrocode}
\begingroup
\catcode`\|=0
\catcode`\\=12
+% \end{macrocode}
+% \SpecialEscapechar\|
+% \begin{macrocode}
|gdef|@SpecialIndexHelper@#1#2|@nil{%
|if |noexpand#1\%
|gdef|@gtempa{#2}%
@@ -3279,137 +3981,13 @@
|endgroup
|fi}
|endgroup
-\def\SpecialIndex@#1#2{%
% \end{macrocode}
-% The first thing it does is to convert the macro into a list of
-% characters. Note that a character token list remains (mostly) unchanged.
-% \begin{macrocode}
- \@SpecialIndexHelper@#1\@nil
-% \end{macrocode}
-% The macro name \verb*|\ | has to handled in a special way. The reason
-% is that the space token is skipped when \TeX\ is scanning macro
-% parameters, so that the trick used below will not work.
-% So, we check whether the replacement text of |\@tempa| starts with
-% a space token and write the appropriate index entry.
-% \begin{macrocode}
- \def\@tempb{ }%
- \ifcat \@tempb\@gtempa
- \special@index{\quotechar\space\actualchar
- \string\verb\quotechar*\verbatimchar
- \quotechar\bslash\quotechar\space\verbatimchar#2}%
- \else
-% \end{macrocode}
-% Having handled this special case we have to distinguish control
-% sequences consisting of one or more
-% letters and those that consists of exactly one nonletter. As character
-% tokens in the replacement text of the macro |\@gtempa| have all
-% category code $12$ (other), this is difficult. For simplicity, we treat
-% all single character control sequences alike, irregardless of whether
-% the character is a letter or not. This has the advantage that it works
-% even for strange settings of the category codes.
%
-% We define a utility macro |\@tempb| with two arguments, the second
-% delimited by |\relax|.
-% It will be called later so that the first argument is the first character
-% of the macro name, and the second argument receives the rest of the
-% characters. So we distinguish the two cases above by checking whether
-% the second argument is empty.
-% \begin{macrocode}
- \def\@tempb##1##2\relax{\ifx\relax##2\relax
-% \end{macrocode}
-% If so, we define the helper macro |\@tempc| in a way that it
-% adds quotechars in critical places.
-% \begin{macrocode}
- \def\@tempc{\special@index{\quotechar##1\actualchar
- \string\verb\quotechar*\verbatimchar
- \quotechar\bslash\quotechar##1\verbatimchar#2}}%
-% \end{macrocode}
-% Otherwise we write the characters as in |\SpecialIndex|.
-% \begin{macrocode}
- \else
- \def\@tempc{\special@index{##1##2\actualchar
- \string\verb\quotechar*\verbatimchar
- \bslash##1##2\verbatimchar#2}}%
- \fi}%
-% \end{macrocode}
-% Now pass the list of characters to \@tempb and call \@tempc to do the
-% work.
-% \begin{macrocode}
- \expandafter\@tempb\@gtempa\relax
- \@tempc
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% Slightly simpler is the main entry for environments
-% \changes{v1.9e}{1994/02/03}{use \cs{ttfamily} with \cs{string}}
-% \changes{v1.9f}{1994/02/07}{should have used \cs{noexpand}, sigh}
-% \changes{v1.9i}{1994/02/11}{should have used \cs{protect}}
-% \changes{v1.9j}{1994/02/16}{Back to string:-)}
-% \changes{v1.9s}{1994/10/14}{Added missing percent and changed to
-% \cs{ttfamily}}
-% \changes{v2.0d}{1998/12/20}{Correctly handle second index entry
-% by using \cs{special@index} not \cs{index} (PR/2928).}
-% \changes{v2.0e}{1998/12/28}{Use \cs{string}, not \cs{protect} in argument to
-% \cs{special@index}.}
-% \changes{v2.1c}{2004/07/23}{environment names incorrectly sorted in
-% index (pr/3615)}
-% \begin{macrocode}
-\def\SpecialMainEnvIndex#1{\@bsphack\special@index{%
- #1\actualchar
- {\string\ttfamily\space#1}
- (environment)%
- \encapchar main}%
- \special@index{environments:\levelchar#1\actualchar{%
- \string\ttfamily\space#1}\encapchar
- main}\@esphack}
-% \end{macrocode}
-% The |\SpecialUsageIndex| is similar to |\SpecialMainIndex|, except
-% that it uses the standard |\index| command.
-% \texttt{usage} instead of \texttt{main}.
-% \begin{macrocode}
-\def\SpecialUsageIndex#1{\@bsphack
- {\let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}%
- \@esphack}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-%
-% \begin{macro}{\SpecialEnvIndex}
-% Indexing environments is done a little bit differently; we produce
-% two index entries with the |\SpecialEnvIndex| macro:
-% \changes{v1.9e}{1994/02/03}{The index needs protecting}
-% \changes{v1.9g}{1994/02/08}{should have used \cs{noexpand}, sigh}
-% \changes{v1.9i}{1994/02/11}{should have used \cs{protect}}
-% \begin{macrocode}
-\def\SpecialEnvIndex#1{\@bsphack
-% \end{macrocode}
-% First we sort the environment under its own name stating in the
-% actual entry that this is an environment.
-% \begin{macrocode}
- \index{#1\actualchar{\protect\ttfamily#1}
- (environment)\encapchar usage}%
-% \end{macrocode}
-% The second entry is sorted as a subitem under the key
-% `environments:'.
-% \changes{v2.1b}{2004/02/09}{environment names incorrectly sorted in
-% index (pr/3615)}
-% \begin{macrocode}
- \index{environments:\levelchar#1\actualchar
- {\protect\ttfamily#1}\encapchar usage}\@esphack}
-% \end{macrocode}
-% Because both entries correspond to `descriptions' of the
-% environment, we encapsulate the page numbers with the
-% |\usage| macro.
% \end{macro}
%
%
%
-% \begin{macro}{\SortIndex}
+% \begin{imacro}{\SortIndex}
% This macro is used to generate the index entries for any
% single-character command that |\scan@macro| encounters. The
% first parameter specifies the lexical order for the character,
@@ -3417,76 +3995,87 @@
% the entry. It can also be used directly to generate index entries
% which differ in sort key and actual entry.
% \begin{macrocode}
-\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\SortIndex#1#2{%
+ \ifdoc@noindex\else
+ \index{#1\actualchar#2}%
+ \fi
+}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
%
-% \begin{macro}{\it@is@a}
-% This macro is supposed to produce a correct |\SortIndex|
-% entry for a given character. Since this character might be
-% recognised as a `command' character by the index program used,
-% all characters are quoted with the |\quotechar|.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \begin{macrocode}
-\def\it@is@a#1{\special@index{\quotechar #1\actualchar
- \string\verb\quotechar*\verbatimchar
- \quotechar\bslash\quotechar#1\verbatimchar}}
-% \end{macrocode}
-% \end{macro}
-%
-%
%
-% \begin{macro}{\LeftBraceIndex}
+% \begin{imacro}{\LeftBraceIndex}
% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \begin{macro}{\RightBraceIndex}
+% \begin{imacro}{\RightBraceIndex}
% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)} These
-% two macros fix the problems with \textsf{makeindex}. Note the
+% two macros fix the problems with \prg{makeindex}. Note the
% `hack' with |\iffalse}\fi| to satisfy both \TeX{} and the
-% \textsf{makeindex} program. When this is written to the
+% \prg{makeindex} program. When this is written to the
% \texttt{.idx} file \TeX{} will see both braces (so we get a
-% balanced text). \textsf{makeindex} will also see balanced braces
+% balanced text). \prg{makeindex} will also see balanced braces
% but when the actual index entry is again processed by \TeX{} the
% brace in between |\iffalse| |\fi| will vanish.
% \begin{macrocode}
\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
- \special@index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
- \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+ \special@index{\bgroup\actualchar
+ \string\verb% % to fool emacs highlighting
+ \quotechar*\verbatimchar
+ \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
- \special@index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+ \special@index{\egroup\actualchar\string\iffalse{\string\fi
+ \string\verb% % to fool emacs highlighting
\quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
%
%
-% \begin{macro}{\PercentIndex}
+% \begin{imacro}{\PercentIndex}
% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
% \changes{v1.7c}{1992/03/25}{Default now for bug-fixed makeindex}
-% By default we assume a version of \textsf{makeindex} without the
+% By default we assume a version of \prg{makeindex} without the
% percent bug is being used.
% \begin{macrocode}
\@ifundefined{PercentIndex}
{\def\PercentIndex{\it@is@a\percentchar}}{}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\OldMakeindex}
+% \end{imacro}
+%
+%
+% \begin{omacro}{\OldMakeindex}
% \changes{v1.7c}{1992/03/26}{Replaced \cs{NewMakeIndex}.}
-% \begin{macro}{\percentchar}
-% Here is one solution for the percent bug in \textsf{makeindex}.
+% \begin{imacro}{\percentchar}
+% Here is one solution for the percent bug in \prg{makeindex}.
% The macro |\percentchar| denotes a |%|$_{12}$. Calling this from
% a package or the driver file sets things up
% appropriately.\label{bug:fixes}
% \begin{macrocode}
\def\OldMakeindex{\def\PercentIndex{%
- \special@index{\quotechar\percentchar\actualchar\string\verb
+ \special@index{\quotechar\percentchar\actualchar
+ \string\verb% % to fool emacs highlighting
\quotechar*\verbatimchar\quotechar\bslash
\percentchar\percentchar\verbatimchar}}}
{\catcode`\%=12 \gdef\percentchar{%}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
+% \end{omacro}
+%
+%
+% \begin{macro}{\it@is@a}
+% This macro is supposed to produce a correct |\SortIndex|
+% entry for a given character. Since this character might be
+% recognized as a `command' character by the index program used,
+% all characters are quoted with the |\quotechar|.
+% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
+% \begin{macrocode}
+\def\it@is@a#1{\special@index{\quotechar #1\actualchar
+ \string\verb% % to fool emacs highlighting
+ \quotechar*\verbatimchar
+ \quotechar\bslash\quotechar#1\verbatimchar}}
+% \end{macrocode}
% \end{macro}
%
%
@@ -3494,7 +4083,7 @@
%
%
%
-% \subsection{Redefining the \textsf{index} environment}
+% \subsection{Redefining the \env{index} environment}
%
%\changes{v1.4r}{1989/04/22}{twocols env. placed into separate file}
%\changes{v1.4?}{1989/04/19}{use DEK's algorithm and implement
@@ -3502,34 +4091,10 @@
%\changes{v1.4?}{1989/04/16}{changes to the index env.}
%\changes{v1.5a}{1989/04/26}{Now input multicol.sty instead of
% multcols.sty}
-% \begin{macro}{\ifhave@multicol}
-% \changes{v1.7a}{1992/03/04}{Added to support avoiding multicol.sty} By
-% default the index is set in three columns, and will start on the
-% same page as, and underneath, the last part of the text of the
-% documented package file, if possible. The last page will be
-% reformatted with balanced columns. This requires the
-% \textsf{multicols} environment which is described elsewhere. So
-% that \DOC{} can be run independently of
-% \texttt{multicol.sty} we first check for its existence and set
-% the "have@multicol" flag appropriately for use below.
-% \changes{v1.9a}{1993/12/02}{Use \cs{IfFileExists}}
-% \changes{v1.9m}{1994/04/28}{Use \cs{RequirePackage} to load multicol}
-% \begin{macrocode}
-\newif\ifhave@multicol
-% \end{macrocode}
-% If we found \texttt{multicol.sty} we use it. It would be nice to
-% delay this (and the re-definition of "theindex") until we knew
-% whether an index was actually required \ldots
-% \begin{macrocode}
-\IfFileExists{multicol.sty}{\have@multicoltrue
- \RequirePackage{multicol}%
- }{}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\IndexMin}
-% \begin{macro}{\c@IndexColumns}
+% \begin{ldimen}{\IndexMin}
+% \begin{lcounter}{IndexColumns}
% \changes{v1.4t}{1989/04/24}{Counter added.}
% If \texttt{multicol} is in use,
% when the index is started we compute the remaining space on the
@@ -3542,8 +4107,9 @@
\newdimen\IndexMin \IndexMin = 80pt
\newcount\c@IndexColumns \c@IndexColumns = 3
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{lcounter}
+% \end{ldimen}
+%
%
%
% \begin{environment}{theindex}
@@ -3557,7 +4123,14 @@
% \changes{v1.6e}{1991/04/03}{Turned into env definition.}
% \changes{v1.7a}{1992/03/04}{Include test for multicols.}
% \begin{macrocode}
-\ifhave@multicol
+\ifdoc@multicol
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \RequirePackage{multicol}
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewenvironment{theindex}
{\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]%
% \end{macrocode}
@@ -3570,17 +4143,15 @@
%
% \begin{macro}{\endtheindex}
% \changes{v1.4t}{1989/04/24}{Incorporated new multicols env.}
-% At the end of the index, we have only to end the \textsf{multicols}
+% At the end of the index, we have only to end the \env{multicols}
% environment.
% \begin{macrocode}
{\end{multicols}}
% \end{macrocode}
-% If we can't use \textsf{multicols} we warn the user and use an
+% If we can't use \env{multicols} we warn the user and use an
% environment that's basically the one from \texttt{article.sty}.
% \begin{macrocode}
\else
- \typeout{Can't find multicol.sty -- will use normal index layout if
- necessary.}
\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@ \columnsep 35\p@
\twocolumn[\index@prologue]%
@@ -3591,8 +4162,8 @@
% \end{macro}
% \end{environment}
%
-% Here are the necessary \textsf{makeindex} declarations. We disable
-% scanning of macro names inside the index with "\scan@allowedfalse\n"
+% Here are the necessary \prg{makeindex} declarations. We disable
+% scanning of macro names inside the index with |\scan@allowedfalse\n|
% to avoid recursion.
% \begin{macrocode}
%</package>
@@ -3604,7 +4175,7 @@
% \end{macrocode}
%
%
-% \begin{macro}{\IndexPrologue}
+% \begin{imacro}{\IndexPrologue}
% \begin{macro}{\index@prologue}
% \changes{v1.9w}{1995/12/27}{Text changed}
% \changes{v1.9x}{1996/01/11}{Text depends on code lines used}
@@ -3639,11 +4210,11 @@
}}{}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{imacro}
%
%
%
-% \begin{macro}{\IndexParms}
+% \begin{imacro}{\IndexParms}
% These are some last-minute assignments for formatting the index
% entries. They are defined in a separate macro so that a user can
% substitute different definitions. We start by defining the
@@ -3678,7 +4249,7 @@
\def\subsubitem{\@idxitem\hspace*{25pt}}%
% \end{macrocode}
% \begin{macro}{\indexspace}
-% The \textsf{makeindex} program generates an |\indexspace|
+% The \prg{makeindex} program generates an |\indexspace|
% before each new alphabetic section commences. After this final
% definition we end the |\@ifundefined| and the definition of
% |\IndexParms|.
@@ -3690,10 +4261,10 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\efill}
+% \begin{imacro}{\efill}
% This definition of |\efill| is intended to be used after index
% items which have no following text (for example, ``\textit{
% see\/}'' entries). It just ensures that the current line is
@@ -3706,104 +4277,96 @@
%<+gind>item_x2 "\\efill \n \\subsubitem "
%<*package>
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
%
-% \begin{macro}{\pfill}
-% \begin{macro}{\dotfil}
-% \begin{macro}{\dotfill}
+% \begin{imacro}{\pfill}
% The following definitions provide the |\pfill| command; if
-% this is specified in the index style file to \textsf{makeindex} as
+% this is specified in the index style file to \prg{makeindex} as
% the delimiter to appear after index items, then the intervening
% space before the referenced page numbers will be filled with
% dots, with a little white space interpolated at each end of the
% dots. If the line is broken the dots will show up on both lines.
-% \changes{v2.1i}{2018/09/25}{Guard against following \cs{unskip} (git/23)}
% \begin{macrocode}
-\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill\kern\z@}%
-\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}%
-\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
- \dotfil~\ignorespaces}%
+\def\pfill{\unskip~%
+ \leaders\hbox to.6em{\hss .\hss}\hfill
+ \penalty500\strut\nobreak
+ \leaders\hbox to.6em{\hss .\hss}\hfil
+ ~\ignorespaces}%
%</package>
%<+gind|gglo>delim_0 "\\pfill "
%<+gind|gglo>delim_1 "\\pfill "
%<+gind|gglo>delim_2 "\\pfill "
%<*package>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
%
%
%
-% \begin{macro}{\*}
+% \begin{imacro}{\*}
% Here is the definition for the |\*| macro. It isn't used in
% this set of macros.
% \begin{macrocode}
\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\main}
+% \begin{imacro}{\main}
% The \textit{defining\/} entry for a macro name is flagged with
% the string \texttt{\encapchar main}\footnote{With the current
% definition of \texttt{\bslash encapchar} substituted for
-% \texttt{\encapchar}} in the |\index| command; \textsf{makeindex}
+% \texttt{\encapchar}} in the |\index| command; \prg{makeindex}
% processes this so that the |\main| macro will be invoked to
% underline the page number(s) on which the {\em definition\/} of
% the macro will be found.
% \begin{macrocode}
\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
-% \begin{macro}{\usage}
+% \begin{imacro}{\usage}
% The |\usage| macro is used to indicate entries describing
% the usage of a macro. The corresponding page number(s) will be
% set in \textit{italics}.
% \begin{macrocode}
\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
+%
+% \begin{imacro}{\code}
+% The |\code| macro is used to indicate index entries to code lines
+% that aren't main entries.
+% By default we do nothing special with them
+% the usage of a macro.
+% \begin{macrocode}
+\@ifundefined{code}{\def\code#1{#1}}{}
+% \end{macrocode}
+% \end{imacro}
%
%
-% \begin{macro}{\PrintIndex}
+% \begin{imacro}{\PrintIndex}
% \changes{v1.5k}{1989/09/04}{\cs{printindex} changed to
% \cs{PrintIndex}}
% \changes{v1.7a}{1992/02/26}{Documentation moved to interface section.}
% \changes{v1.9h}{1994/02/10}{Use \cs{@input@} instead of \cs{@input}.}
% \changes{v1.9w}{1995/12/29}{Turn the cmd into a noop after use.}
-% This is the same as "\printindex" in the \textsf{makeidx} package.
+% This is the same as |\printindex| in the \pkg{makeidx} package.
% \begin{macrocode}
\def\PrintIndex{\@input@{\jobname.ind}%
\global\let\PrintIndex\@empty}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
-% \begin{macro}{\printindex}
-% Since the above macro was called |\printindex| in older versions
-% of \texttt{doc.sty} the following definition was provided up to
-% version 1.9y.
-% \changes{v1.9z}{1996/04/17}{Commented out}
-% \begin{macrocode}
-%\def\printindex{\typeout{\string\printindex\space is obsolete!}%
-% \typeout{Please use \string\PrintIndex\space
-% if you are a macro implementor^^J
-% or get a newer version of the documented
-% software if you are a user}%
-% \PrintIndex}
-% \end{macrocode}
-% \end{macro}
%
% We want headings in the index (and changes list) according to the
% initial character of the next block of entries and have to instruct
-% \textsf{makeindex} appropriately. Unfortunately the specification
+% \prg{makeindex} appropriately. Unfortunately the specification
% for this changed sometime between versions 2.4 and 2.11 of
-% \textsf{makeindex}. We provide both ways of doing it but
+% \prg{makeindex}. We provide both ways of doing it but
% unfortunately this will always produce a warning message from
-% \textsf{makeindex}. This is for older versions:
+% \prg{makeindex}. This is for older versions:
% \changes{v1.7h}{1992/07/01}{Turn off headings in gls file}
% \begin{macrocode}
%</package>
@@ -3839,13 +4402,13 @@
% is otherwise ignored, but the others are written out and may be used
% to generate a history of changes, to be printed at the end of the
% document. However, note that older versions of Chen's standard
-% \textsf{makeindex}
+% \prg{makeindex}
% program limit any textual field to just 64 characters; therefore,
% is important that the number of characters in the second and third
% parameters should not exceed 61 altogether (to allow for the
% parentheses placed around the date).
%
-% \begin{macro}{\changes}
+% \begin{imacro}{\changes}
% \changes{BHK}{1989/04/26}{Documented \texttt{\protect\bslash changes}
% command.}
% \changes{BHK}{1989/04/26}{Changed definition of
@@ -3855,9 +4418,9 @@
% change in \LaTeX{} 2.09 changed the command name in the
% \texttt{.glo} file from \texttt{\bslash indexentry} to
% \texttt{\bslash glossaryentry}. It is therefore necessary to
-% have a special \textsf{makeindex} style file called
+% have a special \prg{makeindex} style file called
% \texttt{gglo.ist} to process this file correctly.} Thus
-% \textsf{makeindex} or a similar program can be used to process
+% \prg{makeindex} or a similar program can be used to process
% the output into a sorted ``glossary''. The |\changes| command
% commences by taking the usual measures to hide its spacing, and
% then redefines |\protect| for use within the argument of the
@@ -3880,42 +4443,57 @@
\catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
\changes@}
\def\changes@#1#2#3{%
- \protected@edef\@tempa{\noexpand\glossary{#1\levelchar
+ \protected@edef\@tempa{\noexpand\glossary{#1%
+% \end{macrocode}
+% If asked for we also show the date of in the change log (after
+% the version).
+% \changes{v3.0g}{2022/06/01}{Show change dates if asked for (gh/531)}
+% \begin{macrocode}
+ \ifdoc@reportchangedates
+ \space -- #2\fi
+ \levelchar
% \end{macrocode}
% \changes{v1.9u}{1995/08/06}{Use value of \cs{saved@macroname} to
% find out about change entries at outer level}
-% If the macro "\saved@macroname" doesn't contain any macro name
+% If the macro |\saved@macroname| doesn't contain any macro name
% (ie is empty) the current changes entry was done at top-level.
-% In this case we precede it by "\generalname".
+% In this case we precede it by |\generalname|.
% \begin{macrocode}
- \ifx\saved@macroname\@empty
- \space
- \actualchar
- \generalname
- \else
+ \ifx\saved@macroname\@empty
+% \end{macrocode}
+% Putting a |!| at the beginning of the entry hopefully moves this
+% entry to the very beginning during sorting.
+% \begin{macrocode}
+ \quotechar!%
+ \actualchar
+ \generalname
+ \else
% \end{macrocode}
% \changes{v2.1g}{2016/02/15}{Use \cs{saved@indexname}}
% \begin{macrocode}
- \saved@indexname
- \actualchar
- \string\verb\quotechar*%
- \verbatimchar\saved@macroname
- \verbatimchar
- \fi
- :\levelchar #3}}%
+ \saved@indexname
+ \actualchar
+ \string\verb% % to fool emacs highlighting
+ \quotechar*%
+ \verbatimchar\saved@macroname
+ \verbatimchar
+ \fi
+ :\levelchar #3}}%
\@tempa\endgroup\@esphack}
% \end{macrocode}
+% \end{imacro}
+%
%
% \begin{macro}{\saved@macroname}
-% \changes{BHK}{1989/04/26}{Provided for sorting outside \textsf{macro}
+% \changes{BHK}{1989/04/26}{Provided for sorting outside \env{macro}
% environment} The entries are sorted for convenience by the name
% of the most recently introduced macroname (i.e., that in the most
% recent |\begin{macro}| command). We therefore provide
% |\saved@macroname| to record that argument, and provide a default
-% definition in case |\changes| is used outside a \textsf{macro}
+% definition in case |\changes| is used outside a \env{macro}
% environment. (This is a {\em wicked\/} hack to get such entries
% at the beginning of the sorted list! It works providing no macro
-% names start with "!" or |"|.) \changes{v1.7a}{1992/03/02}{Changed
+% names start with |!| or |"|.) \changes{v1.7a}{1992/03/02}{Changed
% string used for better sorting.}
% \changes{v1.9u}{1995/08/06}{Now empty by default}
% \begin{macrocode}
@@ -3932,17 +4510,17 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\generalname}
+% \begin{imacro}{\generalname}
% \changes{v1.9u}{1995/08/06}{Macro added}
% This macro holds the string placed before changes entries on
% top-level.
% \begin{macrocode}
\def\generalname{General}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\RecordChanges}
+% \begin{imacro}{\RecordChanges}
% \changes{BHK}{1989/04/26}{Renames former \texttt{\protect\bslash
% PrintChanges} command.}
% To cause the changes to be written (to a \texttt{.glo}) file, we
@@ -3951,17 +4529,16 @@
% \begin{macrocode}
\let\RecordChanges\makeglossary
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\GlossaryMin}
+% \begin{ldimen}{\GlossaryMin}
% \changes{BHK}{1989/04/26}{Added to support
% \texttt{\protect\bslash changes}.}
-% \begin{macro}{\c@GlossaryColumns}
+% \begin{lcounter}{GlossaryColumns}
% \changes{BHK}{1989/04/26}{Added to support \texttt{\protect\bslash
% changes}.} The remaining macros are all analogues of those used
-% for the \textsf{theindex} environment. When the glossary is
+% for the \env{theindex} environment. When the glossary is
% started we compute the space which remains at the bottom of the
% current page; if this is greater than |\GlossaryMin| then the
% first part of the glossary will be placed in the available space.
@@ -3972,8 +4549,8 @@
\newdimen\GlossaryMin \GlossaryMin = 80pt
\newcount\c@GlossaryColumns \c@GlossaryColumns = 2
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{lcounter}
+% \end{ldimen}
%
%
% \begin{environment}{theglossary}
@@ -3983,13 +4560,12 @@
% \changes{v1.6e}{1991/04/03}{Turned into env definition.}
% \changes{v1.7a}{1992/03/10}{Changed to work without multicols if
% necessary.}
-% \begin{macro}{\endglossary}
% \changes{BHK}{1989/04/26}{Added to support
% \texttt{\protect\bslash changes}.}
-% The environment \textsf{theglossary} is defined in the same manner
-% as the \textsf{theindex} environment.
+% The environment \env{theglossary} is defined in the same manner
+% as the \env{theindex} environment.
% \begin{macrocode}
-\ifhave@multicol
+\ifdoc@multicol
\newenvironment{theglossary}{%
\begin{multicols}\c@GlossaryColumns
[\glossary@prologue][\GlossaryMin]%
@@ -4004,10 +4580,9 @@
{\if@restonecol\onecolumn\else\clearpage\fi}
\fi
% \end{macrocode}
-% \end{macro}
% \end{environment}
%
-% Here are the necessary \textsf{makeindex} declarations with scanning
+% Here are the necessary \prg{makeindex} declarations with scanning
% disabled as for the index.
% \begin{macrocode}
%</package>
@@ -4025,7 +4600,7 @@
% \end{macrocode}
%
%
-% \begin{macro}{\GlossaryPrologue}
+% \begin{imacro}{\GlossaryPrologue}
% \changes{BHK}{1989/04/26}{Added to support
% \texttt{\protect\bslash changes}.}
% \begin{macro}{\glossary@prologue}
@@ -4050,9 +4625,9 @@
}}{}
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \end{imacro}
%
-% \begin{macro}{\GlossaryParms}
+% \begin{imacro}{\GlossaryParms}
% \changes{BHK}{1989/04/26}{Added to support
% \texttt{\protect\bslash changes}.}
% Unless the user specifies otherwise, we set the change history
@@ -4067,19 +4642,20 @@
\parfillskip -15pt plus -1fil\relax}
}{}
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\PrintChanges}
+% \end{imacro}
+%
+% \begin{imacro}{\PrintChanges}
% \changes{BHK}{1989/04/26}{Added to support
% \texttt{\protect\bslash changes}.}
% To read in and print the sorted change history, just put the
% |\PrintChanges| command as the last (commented-out, and thus
% executed during the documentation pass through the file) command
% in your package file. Alternatively, this command may form one of
-% the arguments of the |\StopEventually| command, although a
+% the arguments of the |\MaybeStop| command, although a
% change history is probably {\em not\/} required if only the
% description is being printed.
%
-% The command assumes that \textsf{makeindex} or some other program
+% The command assumes that \prg{makeindex} or some other program
% has processed the \texttt{.glo} file to generate a sorted
% \texttt{.gls} file.
% \changes{v1.9h}{1994/02/10}{Use \cs{@input@} instead of \cs{@input}.}
@@ -4088,7 +4664,7 @@
\def\PrintChanges{\@input@{\jobname.gls}%
\global\let\PrintChanges\@empty}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
%
@@ -4096,25 +4672,25 @@
%
% \subsection{Bells and whistles}
%
-% \begin{macro}{\StopEventually}
+% \begin{imacro}{\MaybeStop}
% \changes{v1.5k}{1989/09/04}{Support for checksum.}
-% \begin{macro}{\Finale}
+% \begin{imacro}{\Finale}
% \changes{v1.5k}{1989/09/04}{Support for checksum.}
% \changes{v1.5z}{1990/04/22}{Define \cs{Finale} globally.}
-% \begin{macro}{\AlsoImplementation}
+% \begin{imacro}{\AlsoImplementation}
% \changes{v1.9w}{1995/12/27}{Macro added}
-% \begin{macro}{\OnlyDescription}
+% \begin{imacro}{\OnlyDescription}
% If |\AlsoImplementation| is in force the whole documentation
% including the code part will be typeset. This is the default.
% \begin{macrocode}
\newcommand\AlsoImplementation{%
% \end{macrocode}
% To make this happen we have to define
-% |\StopEventually| in a way that its argument is typeset at the
+% |\MaybeStop| in a way that its argument is typeset at the
% very end or more exactly at |\Finale|. For this we
% save its argument in the macro |\Finale|.
% \begin{macrocode}
- \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+ \long\def\MaybeStop##1{\@bsphack\gdef\Finale{##1%
% \end{macrocode}
% But |\Finale| will be called at the very end of a file. This
% is exactly the point were we want to know if the file is
@@ -4123,7 +4699,7 @@
% \begin{macrocode}
\check@checksum}%
% \end{macrocode}
-% On the other hand: |\StopEventually| is more or less a
+% On the other hand: |\MaybeStop| is more or less a
% dividing point between description and code. So we start to look
% for the check-sum of the documented file by calling
% |\init@checksum|.
@@ -4134,35 +4710,44 @@
% \end{macrocode}
%
% Since |\AlsoImplementation| should be the default we execute it
-% and thus |\StopEventually| gets the desired meaning.
+% and thus |\MaybeStop| gets the desired meaning.
% \begin{macrocode}
\AlsoImplementation
% \end{macrocode}
% When the user places an |\OnlyDescription| declaration in
% the driver file the document should only be typeset up to
-% |\StopEventually|. We therefore have to redefine this macro.
+% |\MaybeStop|. We therefore have to redefine this macro.
% \begin{macrocode}
-\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+\def\OnlyDescription{\@bsphack\long\def\MaybeStop##1{%
% \end{macrocode}
-% In this case the argument of |\StopEventually| should be set
+% In this case the argument of |\MaybeStop| should be set
% and afterwards \TeX{} should stop reading from this file.
% Therefore we finish this macro with
% \begin{macrocode}
##1\endinput}\@esphack}
% \end{macrocode}
-% If no |\StopEventually| command is given we silently ignore a
+% If no |\MaybeStop| command is given we silently ignore a
% |\Finale| issued.
% \changes{v1.9n}{1994/04/28}{Ignore \cs{Finale} if no
-% \cs{StopEventually} is given}
+% \cs{MaybeStop} is given}
% \begin{macrocode}
\let\Finale\relax
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
+%
+%
+% \begin{omacro}{\StopEventually}
+% The old wrong name for |\MaybeStop|. We need to use |\def|
+% (i.e., expansion) as |\MaybeStop| gets redefined once in a while.
+% \begin{macrocode}
+\def\StopEventually{\MaybeStop}
+% \end{macrocode}
+% \end{omacro}
%
-% \begin{macro}{\meta}
+% \begin{imacro}{\meta}
% \changes{v1.4t}{1989/04/24}{Macro added.}
% \changes{v1.5w}{1990/02/03}{Breaks at space allowed.}
% \changes{v1.6a}{1990/05/24}{Extra space bug corrected.}
@@ -4216,7 +4801,7 @@
}\ensuremath\rangle
}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
% \begin{macro}{\meta@font@select}
@@ -4228,7 +4813,7 @@
% \end{macro}
%
%
-% \begin{macro}{\IndexInput}
+% \begin{imacro}{\IndexInput}
% This next macro may be used to read in a separate file (possibly
% a package file that is {\em not\/} documented by this means) and
% set it verbatim, whilst scanning for macro names and indexing the
@@ -4243,7 +4828,7 @@
% \begin{macrocode}
\begingroup \macro@code
% \end{macrocode}
-% We also make spacing behave as in the \textsf{macrocode}
+% We also make spacing behave as in the \env{macrocode}
% environment, because otherwise all the spaces will be shown
% explicitly.
% \begin{macrocode}
@@ -4260,10 +4845,10 @@
% \begin{macrocode}
\endgroup}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\maketitle}
+% \begin{imacro}{\maketitle}
% The macro to generate titles is easily altered in order that it
% can be used more than once (an article with many titles). In the
% original, diverse macros were concealed after use with
@@ -4299,56 +4884,56 @@
\gdef\@date{\today}\gdef\@thanks{}%
\gdef\@author{}\gdef\@title{}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\ps@titlepage}
+% \begin{imacro}{\ps@titlepage}
% \changes{v1.5k}{1989/09/04}{Added \texttt{\protect\bslash
% ps@titlepage}} When a number of articles are concatenated into a
% journal, for example, it is not usual for the title pages of such
% documents to be formatted differently. Therefore, a class
-% such as \textsf{ltugboat} can define this macro in advance.
+% such as \cls{ltugboat} can define this macro in advance.
% However, if no such definition exists, we use pagestyle
% \texttt{plain} for title pages.
% \begin{macrocode}
\@ifundefined{ps@titlepage}
{\let\ps@titlepage=\ps@plain}{}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
-% \begin{macro}{\MakeShortVerb}
+% \begin{imacro}{\MakeShortVerb}
% \changes{v1.7a}{1992/02/27}{Added (from newdoc but now alters
% \cs{dospecials}, \cs{@sanitize}).}
-% This arranges an abbreviation for "\verb" such that if you say
-% "\MakeShortVerb{\"\meta{c}"}" subsequently using
+% This arranges an abbreviation for |\verb| such that if you say
+% |\MakeShortVerb{\|\meta{c}|}| subsequently using
% \meta{c}\meta{text}\meta{c} is equivalent to
-% "\verb"\meta{c}\meta{text}\meta{c}.\footnote{Warning:
+% |\verb|\meta{c}\meta{text}\meta{c}.\footnote{Warning:
% the commentary in the rest of this section was written by Dave
% Love.} In addition, the fact
% that \meta{c} is made active is recorded for the benefit of the
-% \textsf{verbatim} and \textsf{macrocode} environments.
+% \env{verbatim} and \env{macrocode} environments.
% Note particularly that the definitions below are global.
% The first thing we do (it needn't be first) is to record
-% the---presumably new---special character in "\dospecials" and
-% "\@sanitize" using "\add@special".
+% the---presumably new---special character in |\dospecials| and
+% |\@sanitize| using |\add@special|.
%
% \changes{v1.9e.2}{1994/02/07}{-js: Check if \protect\meta{c} is
% already an
% abbreviation for \cs{verb}.}
-% Some unwary user might issue "\MakeShortVerb" for a second time, we
+% Some unwary user might issue |\MakeShortVerb| for a second time, we
% better protect against this. We assume that this happened if a
-% control sequence "\cc\"\meta{c} is bound, the probability that this
+% control sequence |\cc\|\meta{c} is bound, the probability that this
% name is used by another module is low. We will output a warning
% below, so that a possible error might be noticed by the programmer
-% if he reads the "LOG" file. (Should have used module internal names,
+% if he reads the |LOG| file. (Should have used module internal names,
% 'though.)
%
-% \begin{macro}{\MakeShortVerb*}
+% \begin{imacro}{\MakeShortVerb*}
% \changes{v2.1a}{2003/12/09}{(HjG) Added \texttt{*} form}
-% This arranges an abbreviation for "\verb*" such that if you say
-% "\MakeShortVerb*{\"\meta{c}"}" subsequently using
+% This arranges an abbreviation for |\verb*| such that if you say
+% |\MakeShortVerb*{\|\meta{c}|}| subsequently using
% \meta{c}\meta{text}\meta{c} is equivalent to
-% "\verb*"\meta{c}\meta{text}\meta{c}.
+% |\verb*|\meta{c}\meta{text}\meta{c}.
% \begin{macrocode}
%</package>
%<*package|shortvrb>
@@ -4357,7 +4942,10 @@
{\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
{\def\@shortvrbdef{\verb}\@MakeShortVerb}}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+%
+% \begin{macro}{\@MakeShortVerb}
% \begin{macrocode}
\def\@MakeShortVerb#1{%
\expandafter\ifx\csname cc\string#1\endcsname\relax
@@ -4367,19 +4955,19 @@
\@shortvrbinfo{Made }{#1}\@shortvrbdef
\add@special{#1}%
% \end{macrocode}
-% Then the character's current catcode is stored in "\cc\"\meta{c}.
+% Then the character's current catcode is stored in |\cc\|\meta{c}.
% \begin{macrocode}
\expandafter
\xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
% \end{macrocode}
% The character is spliced into the definition using the same trick as
-% used in "\verb" (for instance), having activated "~" in a group.
+% used in |\verb| (for instance), having activated |~| in a group.
% \begin{macrocode}
\begingroup
\catcode`\~\active \lccode`\~`#1%
\lowercase{%
% \end{macrocode}
-% The character's old meaning is recorded in "\ac\"\meta{c} prior to
+% The character's old meaning is recorded in |\ac\|\meta{c} prior to
% assigning it a new one.
% \begin{macrocode}
\global\expandafter\let
@@ -4398,20 +4986,24 @@
% \end{macrocode}
% \changes{v1.9v}{1995/11/03}{(DPC) Use \cs{@shortvrbinfo}}
% \begin{macrocode}
- \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+ \@shortvrbinfo\@empty{#1 already}%
+ {\@empty\verb% % to fool emacs highlighting
+ (*)}%
\fi}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\DeleteShortVerb}
+%
+%
+% \begin{imacro}{\DeleteShortVerb}
% \changes{v1.7a}{1992/02/27}{Added (from newdoc but now alters
% \cs{dospecials}, \cs{@sanitize}).}
-% Here's the means of undoing a "\MakeShortVerb", for instance in a
+% Here's the means of undoing a |\MakeShortVerb|, for instance in a
% region where you need to use the character outside a verbatim
-% environment. It arranges for "\dospecials" and "\@sanitize" to be
+% environment. It arranges for |\dospecials| and |\@sanitize| to be
% altered appropriately, restores the saved catcode and, if necessary,
% the character's meaning (as stored by
-% "\MakeShortVerb"). If the catcode wasn't stored in
-% "\cc\"\meta{c} (by "\MakeShortVerb") the command is silently
+% |\MakeShortVerb|). If the catcode wasn't stored in
+% |\cc\|\meta{c} (by |\MakeShortVerb|) the command is silently
% ignored.
% \changes{v1.7a}{1992/02/28}{Check for previous matched
% \cs{MakeShortVerb}
@@ -4423,19 +5015,24 @@
% \changes{v2.1a}{2003/12/10}{(HjG) Notify user
% if it's not a short verb character}
% \begin{macrocode}
- \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+ \@shortvrbinfo\@empty{#1 not}%
+ {\@empty\verb% % to fool emacs highlighting
+ (*)}%
\else
% \end{macrocode}
% \changes{v1.9v}{1995/11/03}{(DPC) Use \cs{@shortvrbinfo}}
% \begin{macrocode}
- \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+ \@shortvrbinfo{Deleted }{#1 as}%
+ {\@empty\verb% % to fool emacs
+ % highlighting
+ (*)}%
\rem@special{#1}%
\global\catcode`#1\csname cc\string#1\endcsname
% \end{macrocode}
% \changes{v1.9e.2}{1994/02/07}{-js: Reset `cc`\protect\meta{c} in
-% \cs{DeleteShortVerb}}
-% We must not forget to reset "\cc\"\meta{c}, otherwise the check in
-% "\MakeShortVerb" for a repeated definition will not work.
+% in \cs{DeleteShortVerb}}
+% We must not forget to reset |\cc\|\meta{c}, otherwise the check in
+% |\MakeShortVerb| for a repeated definition will not work.
% \begin{macrocode}
\global \expandafter\let \csname cc\string#1\endcsname \relax
\ifnum\catcode`#1=\active
@@ -4446,7 +5043,7 @@
\csname ac\string#1\endcsname}%
\endgroup \fi \fi}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
% \begin{macro}{\@shortvrbinfo}
% \changes{v1.9v}{1995/11/03}{(DPC) Macro added}
@@ -4465,12 +5062,12 @@
% \begin{macro}{\add@special}
% \changes{v1.7a}{1992/02/27}{Added for short verb facility.}
% This helper macro adds its argument to the
-% "\dospecials" macro which is conventionally used by verbatim macros
+% |\dospecials| macro which is conventionally used by verbatim macros
% to alter the catcodes of the currently active characters. We need
-% to add "\do\"\meta{c} to the expansion of "\dospecials" after
+% to add |\do\|\meta{c} to the expansion of |\dospecials| after
% removing the character if it was already there to avoid multiple
-% copies building up should "\MakeShortVerb" not be balanced by
-% "\DeleteShortVerb" (in case anything that uses "\dospecials" cares
+% copies building up should |\MakeShortVerb| not be balanced by
+% |\DeleteShortVerb| (in case anything that uses |\dospecials| cares
% about repetitions).
% \begin{macrocode}
\def\add@special#1{%
@@ -4478,29 +5075,31 @@
\expandafter\gdef\expandafter\dospecials\expandafter
{\dospecials \do #1}%
% \end{macrocode}
-% Similarly we have to add "\@makeother\"\meta{c} to "\@sanitize"
-% (which is used in things like "\index" to re-catcode all special
+% Similarly we have to add |\@makeother\|\meta{c} to |\@sanitize|
+% (which is used in things like |\index| to re-catcode all special
% characters except braces).
% \begin{macrocode}
\expandafter\gdef\expandafter\@sanitize\expandafter
{\@sanitize \@makeother #1}}
% \end{macrocode}
% \end{macro}
+%
+%
% \begin{macro}{\rem@special}
% \changes{v1.7a}{1992/02/27}{Added for short verb facility.}
-% The inverse of "\add@special" is slightly trickier. "\do" is
+% The inverse of |\add@special| is slightly trickier. |\do| is
% re-defined to expand to nothing if its argument is the character of
% interest, otherwise to expand simply to the argument. We can then
-% re-define "\dospecials" to be the expansion of itself. The space
-% after "=`##1" prevents an expansion to "\relax"!
+% re-define |\dospecials| to be the expansion of itself. The space
+% after |=`##1| prevents an expansion to |\relax|!
% \begin{macrocode}
\def\rem@special#1{%
\def\do##1{%
\ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
\xdef\dospecials{\dospecials}%
% \end{macrocode}
-% Fixing "\@sanitize" is the same except that we need to re-define
-% "\@makeother" which obviously needs to be done in a group.
+% Fixing |\@sanitize| is the same except that we need to re-define
+% |\@makeother| which obviously needs to be done in a group.
% \begin{macrocode}
\begingroup
\def\@makeother##1{%
@@ -4511,19 +5110,6 @@
%<*package>
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\MakeShortverb}
-% \begin{macro}{\DeleteShortverb}
-% \changes{v1.7a}{1992/02/27}{Added (from newdoc).}
-% These commands from \textsf{newdoc} are now obsolete.
-% \begin{macrocode}
-\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
- syntax, this is obsolete ***}\MakeShortVerb}
-\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
- syntax, this is obsolete ***}\DeleteShortVerb}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
%
%
% \subsection[Providing a checksum and character table]
@@ -4535,7 +5121,7 @@
% \begin{macro}{\init@checksum}
% The checksum mechanism works by counting backslashes in the
% macrocode. This initializes the count (when called from
-% "\StopEventually").
+% |\MaybeStop|).
% \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
% \begin{macrocode}
\def\init@checksum{\relax
@@ -4546,8 +5132,8 @@
%
% \begin{macro}{\check@checksum}
% \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% This reports the sum compared with the value ("\bslash@cnt") the
-% file advertises. It's called from "\Finale" (if that hasn't been
+% This reports the sum compared with the value (|\bslash@cnt|) the
+% file advertises. It's called from |\Finale| (if that hasn't been
% re-defined).
% \changes{v2.1f}{2016/02/12}{Suppress \cs{CheckSum} check if no checksum
% is specified in the file}
@@ -4581,12 +5167,12 @@
% \end{macro}
%
%
-% \begin{macro}{\check@sum}
+% \begin{tcounter}{\check@sum}
% \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% \begin{macro}{\bslash@cnt}
+% \begin{tcounter}{\bslash@cnt}
% \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% We need to define counters, "\bslash@cnt" for the number of
-% backslashes counted and "\check@sum" for the value advertised by the
+% We need to define counters, |\bslash@cnt| for the number of
+% backslashes counted and |\check@sum| for the value advertised by the
% file if any. A negative value means there is no checksum checking which is the default.
% \changes{v2.1f}{2016/02/12}{Suppress \cs{CheckSum} check if no checksum
% is specified in the file}
@@ -4594,17 +5180,17 @@
\newcount\check@sum \check@sum = \m@ne
\newcount\bslash@cnt \bslash@cnt = \z@
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{tcounter}
+% \end{tcounter}
%
%
-% \begin{macro}{\CheckSum}
+% \begin{omacro}{\CheckSum}
% \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% This is the interface to setting "\check@sum".
+% This is the interface to setting |\check@sum|.
% \begin{macrocode}
\def\CheckSum#1{\@bsphack\global\check@sum#1\relax\@esphack}
% \end{macrocode}
-% \end{macro}
+% \end{omacro}
%
%
%
@@ -4617,13 +5203,13 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\CharacterTable}
+% \begin{omacro}{\CharacterTable}
% The user interface to the character table-checking does some
-% "\catcode"ing and then compares the following table with the
-% stored version. We need to have "@" of type ``other'' within the
+% |\catcode|ing and then compares the following table with the
+% stored version. We need to have |@| of type ``other'' within the
% table since this is the way it is usually returned when reading
% in a normal document. To nevertheless have a private letter we
-% use "~" for this purpose. "~" does no harm as a ``letter'' as it
+% use |~| for this purpose. |~| does no harm as a ``letter'' as it
% comes last in the table and therefore will not gobble following
% space.
% \changes{v1.5m}{1989/09/20}{Macro added to check character translation
@@ -4635,12 +5221,14 @@
% \begin{macrocode}
\def\CharacterTable{\begingroup \CharTableChanges \character@table}
% \end{macrocode}
-% \end{macro}
+% \end{omacro}
+%
% \def\MakePrivateLetters{\catcode`\~=11\makeatletter}
+%
% \begin{macro}{\character@table}
% This does the work of comparing the tables and reporting the result.
% Note that the following code is enclosed in a group
-% with "~" catcoded to letter.
+% with |~| catcoded to letter.
% \begin{macrocode}
\begingroup
\catcode`\~=11
@@ -4659,22 +5247,22 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\CharTableChanges}
+% \begin{omacro}{\CharTableChanges}
% When the character table is read in we need to scan it with a
-% fixed set of "\catcode"s. The reference table below was defined by
-% assuming the normal "\catcode"s of \TeX{}, i.e.\ "@" is of type
+% fixed set of |\catcode|s. The reference table below was defined by
+% assuming the normal |\catcode|s of \TeX{}, i.e.\ |@| is of type
% other and the only token of type ``letter'' are the usual letters
% of the alphabet. If, for some reason, other characters are made
-% ``letters'' then their "\catcode"s need to be restored before
+% ``letters'' then their |\catcode|s need to be restored before
% checking the table. Otherwise spaces in the table are gobbled and
% we get the information that the tables are different, even if
-% they are actually equal. For this reason "\CharTableChanges" can
-% be set up to locally restore the "\catcode"s of such ``letters''
+% they are actually equal. For this reason |\CharTableChanges| can
+% be set up to locally restore the |\catcode|s of such ``letters''
% to ``other''.
% \begin{macrocode}
\global\let\CharTableChanges\@empty
% \end{macrocode}
-% \end{macro}
+% \end{omacro}
%
% \begin{macro}{\default~table}
% Here's what the table {\em should\/} look like (modulo spaces).
@@ -4719,34 +5307,40 @@
%
% The code in this section allows index entries to refer to code line
% numbers---the number of the first line of macrocode in the
-% \textsf{macro} environment.
+% \env{macro} environment.
%
%
% \begin{macro}{\codeline@index}
-% Indexing by code line is controlled by the "codeline@index" switch.
+% Indexing by code line is controlled by the |codeline@index| switch.
% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
% \changes{v1.7a}{1992/02/24}{Documented code line no. support.}
-% \begin{macro}{\CodelineNumbered}
+% \begin{imacro}{\CodelineNumbered}
% \changes{v1.8a}{1993/05/19}{Macro added}
% \begin{macrocode}
\newif\ifcodeline@index \codeline@indexfalse
\let\CodelineNumbered\codeline@indextrue
% \end{macrocode}
+% \end{imacro}
% \end{macro}
-% \end{macro}
+%
% \begin{macro}{\codeline@wrindex}
-% The code index entries are written out by "\special@index". If
-% indexing is by code line this is "\let" to "\codeline@wrindex";
-% if indexing is by page it is just "\index". However, if
-% "\nofiles" is given, we omit writing such an index entry at all.
+% The code index entries are written out by |\special@index|. If
+% indexing is by code line this is |\let| to |\codeline@wrindex|;
+% if indexing is by page it is just |\index|. However, if
+% |\nofiles| is given, we omit writing such an index entry at all.
% \changes{v1.7j}{1992/08/14}{Added \cs{if@filesw}.}
% \begin{macrocode}
\def\codeline@wrindex#1{\if@filesw
+ \begingroup
+ \set@display@protect
\immediate\write\@indexfile
{\string\indexentry{#1}%
- {\number\c@CodelineNo}}\fi}
+ {\number\c@CodelineNo}}%
+ \endgroup
+ \fi}
% \end{macrocode}
% \end{macro}
+%
% \begin{macro}{\special@index}
% By default no index entries are written out.
% \begin{macrocode}
@@ -4756,8 +5350,8 @@
% \begin{macro}{\CodelineIndex}
% \changes{v1.5u}{1989/11/14}{Added \cs{PageIndex} and
% \cs{CodelineIndex} (Undoc)}
-% This switches on use of the index file with "\makeindex", sets the
-% switch to indicate code line numbering and defines "\special@index"
+% This switches on use of the index file with |\makeindex|, sets the
+% switch to indicate code line numbering and defines |\special@index|
% appropriately.
% \begin{macrocode}
\def\CodelineIndex{\makeindex
@@ -4765,17 +5359,17 @@
\let\special@index\codeline@wrindex}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\PageIndex}
-% "\PageIndex" is similar.
+% \begin{imacro}{\PageIndex}
+% |\PageIndex| is similar.
% \begin{macrocode}
\def\PageIndex{\makeindex
\codeline@indexfalse
\let\special@index\index}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
%
-% \begin{macro}{\c@CodelineNo}
+% \begin{lcounter}{CodelineNo}
% \changes{v1.5l}{1989/09/10}{Counter added to support code line
% numbers}
% \changes{v1.5y}{1990/02/24}{Default changed.}
@@ -4785,7 +5379,8 @@
% \begin{macrocode}
\newcount\c@CodelineNo \c@CodelineNo\z@
% \end{macrocode}
-% \end{macro}
+% \end{lcounter}
+%
% \begin{macro}{\theCodelineNo}
% \changes{v1.7a}{1992/02/25}{Existing definition not overwritten.}
% \changes{v1.7a}{1992/03/12}{Use \cs{reset@font} for NFSS.}
@@ -4817,7 +5412,6 @@
% \end{macrocode}
% \end{macro}
%
-% \DeleteShortVerb{\"}
%
% The following |\mathcode| definitions allow the characters
% `|\|'
@@ -4835,9 +5429,9 @@
% \texttt{\bslash mathcode}$\,$s
% to work with any family assignments. For an example
% see the article about the new font selection scheme.}
-% particularly for something like $|\@abc|=1$.
+% particularly for something like |\@abc=1|.
%
-% If an {\em old\/} version of the \textsf{german} package is in
+% If an {\em old\/} version of the \pkg{german} package is in
% force, then the `|"|' character is active and would upset the
% definition of the \meta{16-bit number} quantities below, therefore
% we change the |\catcode| of |"| inside a group, and use
@@ -4907,8 +5501,8 @@
%
% \subsection{Changing the \texttt{\protect\bslash catcode} of \%}
%
-% \begin{macro}{\MakePercentIgnore}
-% \begin{macro}{\MakePercentComment}
+% \begin{imacro}{\MakePercentIgnore}
+% \begin{imacro}{\MakePercentComment}
% And finally the most important bit: we change the |\catcode|
% of `|%|' so that it is ignored (which is how we are able to
% produce this document!). We provide two commands to do the actual
@@ -4919,10 +5513,10 @@
\def\MakePercentIgnore{\catcode`\%9\relax}
\def\MakePercentComment{\catcode`\%14\relax}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
%
-% \begin{macro}{\DocInput}
+% \begin{imacro}{\DocInput}
% The two macros above are now used to define the |\DocInput| macro
% which was introduced in version v1.5l (or so) of the \DOC{}
% package. In older versions |\MakePercentIgnore| was placed
@@ -4930,7 +5524,7 @@
% \begin{macrocode}
\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
% \end{macrocode}
-% \end{macro}
+% \end{imacro}
%
% \subsection{GetFileInfo}
%
@@ -4951,6 +5545,779 @@
% \end{macrocode}
% \end{macro}
%
+
+
+
+
+% \section{Integrating hypdoc}
+%
+% If the option \texttt{hyperref} is selected (which is the
+% default), then we load the \pkg{hypdoc} package. We do that as
+% late as possible so that we don't generate option clashes if it
+% is also loaded in the preamble. That package currently changes
+% more commands than it should (not knowing about their new
+% definitions defined below) so we have to save and restore a few.
+%
+% Midterm all this code in \pkg{hypdoc} should be directly included
+% in \DOC. For now, while they are separate we have to do this
+% juggling.
+% \begin{macrocode}
+\AddToHook{begindocument/before}[doc/hyperref]{%
+ \ifdoc@hyperref
+% \end{macrocode}
+% Annoying to code around issue \#22
+% \begin{macrocode}
+ \expandafter\let\expandafter\doc@eoph@@k\csname doc.sty-h@@k\endcsname
+% \end{macrocode}
+% We require the package without any option so if it was already
+% loaded there is no option clash.
+% \begin{macrocode}
+ \RequirePackage{hypdoc}
+ \expandafter\let\csname doc.sty-h@@k\endcsname\doc@eoph@@k
+% \end{macrocode}
+% After \pkg{hypdoc} got loaded we need to undefine those macros
+% again so that later on \texttt{Macro} and \texttt{Env} \DOC items
+% appear to be undefined.
+% \begin{macrocode}
+ \let\PrintDescribeMacro \@@PrintDescribeMacro
+ \let\PrintDescribeEnv \@@PrintDescribeEnv
+ \let\PrintMacroName \@@PrintMacroName
+ \let\PrintEnvName \@@PrintEnvName
+ \let\SpecialUsageIndex \@@SpecialUsageIndex
+ \let\SpecialEnvIndex \@@SpecialEnvIndex
+ \let\SortIndex \@@SortIndex
+ \let\DescribeMacro \@@DescribeMacro
+ \let\DescribeEnv \@@DescribeEnv
+% \end{macrocode}
+% The package adds new definitions for \cs{special@index} into
+% \cs{CodelineIndex} and \cs{PageIndex} but since we are loading it
+% very late we are already past them (in the preamble). So we test
+% the final state and do it here, if necessary.
+% \begin{macrocode}
+ \ifx\special@index\@gobble % do we write index entries at all?
+ \else
+ \ifcodeline@index
+ \let\special@index\HD@codeline@wrindex
+ \else
+ \let\special@index\HD@page@wrindex
+ \fi
+ \fi
+% \end{macrocode}
+% The \pkg{amsmath} documentation uses \cs{env} in headings and
+% with \pkg{hyperref} enabled this causes trouble in bookmarks.
+% \fmi{fix elsewhere eventually}
+% \begin{macrocode}
+ \AddToHook{class/amsdtx/after}{%
+ \pdfstringdefDisableCommands{\let\env\@empty }}%
+% \end{macrocode}
+% That package also adds extra code into |\index| entries but it doesn't
+% know about all the stuff that \DOC does (now). So we need to provide
+% us with two helpers that handle the |\encapchar| case in some entries.
+% \begin{macrocode}
+ \def\doc@providetarget{\HD@target}%
+ \def\doc@handleencap#1{\encapchar hdclindex{\the\c@HD@hypercount}{#1}}%
+% \end{macrocode}
+% If that package is not loaded these helpers do little to nothing.
+% \begin{macrocode}
+ \else
+ \let\doc@providetarget\@empty
+ \def\doc@handleencap#1{\encapchar #1}%
+% \end{macrocode}
+% We define the next commands just in case the user changed the option
+% \texttt{hyperref} from \texttt{true} to \texttt{false} without
+% removing the auxiliary files.
+% \begin{macrocode}
+ \def\hdclindex#1#2{\ifx\@nil#2\@nil\else\csname #2\expandafter\endcsname\fi}%
+ \def\hdpindex #1{\ifx\@nil#1\@nil\else\csname #1\expandafter\endcsname\fi}%
+\fi
+}
+% \end{macrocode}
+%
+%
+%
+%
+%
+% \section{Integrating the \DOX package code}
+%
+% The code in this section is largely taken over from the \DOX package
+% by Didier with only minor modifications (so far). This means it is a
+% bit back and forth and both the code and the documentation need
+% further updates.
+%
+% \subsection{\DOX environments}
+
+% \begin{macro}{\@doc@env,\@doc@env@}
+% \fmi{original doc -- fix}
+% \marg{are-we-macrolike}\marg{item}\marg{indextype}\marg{name}\\
+% In \texttt{doc.sty}, the \texttt{macro} and \texttt{environment}
+% environments go through the \cs{m@cro@} macro which implements specific
+% parts by testing a boolean condition as its first argument. This mechanism
+% is not extensible, so I have to hack away a more generic version that
+% would work for any new \texttt{dox} item, only which looks pretty much
+% like the original one (with the addition of options management).
+%
+% First step is to see if we have a comma-separated list of names
+% in |#3| and if so we call the macro doing the work individually
+% for each
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\def\@doc@env#1#2#3{
+% \end{macrocode}
+% The |\endgroup| here closes the scanning of names (using special catcodes.
+% \begin{macrocode}
+ \endgroup
+ \clist_map_inline:nn {#3} { \@doc@env@{#1}{#2}{##1} }
+}
+
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% And here is the payload for each name from the given list:
+% \begin{macrocode}
+\long\def\@doc@env@#1#2#3{%
+ \topsep\MacroTopsep
+ \trivlist
+ \edef\saved@macroname{\string#3}%
+% \end{macrocode}
+% Since version 2.1g, \texttt{doc} creates a \cs{saved@indexname} command
+% which in used by \cs{changes}. We now support that as well. The expansion of
+% this command depends on whether the documented item is macrolike or not,
+% which we don't know here (it's only know by \cs{NewDocElement}). That's why we
+% need one specific command generating \cs{saved@indexname} the right way for
+% every single item. These commands are
+% named\cs{@Save\meta{item}IndexName};
+% they are technically part of the generated API, only not meant for public
+% use.
+%
+% \fmi{above docu is no longer right (but code needs further changes
+% anyway}
+%
+% |#1| is either \texttt{TT} (for true = macrolike) or \texttt{TF}.
+% If true then we drop the first char from |\saved@macroname| and
+% store the result in |\saved@indexname| and use the latter for
+% sorting in the index.
+% \begin{macrocode}
+ \if #1%
+ \edef\saved@indexname{\expandafter\@gobble\saved@macroname}%
+%
+% \end{macrocode}
+% If the \DOC element described is macrolike but not a normal
+% ``macro'' then its type should be recorded and this is the places
+% where this happens. For macros (which should make up the bulk of
+% these items we don't do this and for anything else that looks
+% from an indexing perspective like a macro we don't do that either
+% to keep the list of exceptions small. That would be the case if
+% the indexing command |\Code|\meta{doc-element}|Index| is
+% equivalent to \cs{CodeMacroIndex}.
+% \begin{macrocode}
+ \expandafter\ifx
+ \csname Code#2Index\endcsname
+ \CodeMacroIndex
+ \else
+ \record@index@type@save
+ {\saved@indexname}{#2}%
+ \fi
+ \else
+ \let\saved@indexname\saved@macroname
+ \fi
+%
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty
+ \count@\macro@cnt
+ \loop\ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne
+ \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
+ \advance\macro@cnt\@ne
+ \else
+ \macro@cnt\@ne
+ \fi
+ \ifdoc@noprint
+ \item
+ \else
+ \edef\@tempa{%
+ \noexpand\item[%
+% \end{macrocode}
+% The second notable modification to the original macro involves dynamically
+% constructing the name of the print macro:
+% \begin{macrocode}
+ \noexpand\doc@providetarget
+ \noexpand\strut
+ \noexpand\@nameuse{Print#2Name}{\saved@macroname}]}%
+ \@tempa
+ \fi
+ \ifdoc@noindex\else
+ \global\advance\c@CodelineNo\@ne
+% \end{macrocode}
+% and the third one involves dynamically constructing the name of the index
+% macro:
+% \begin{macrocode}
+ \csname SpecialMain#2Index\expandafter\endcsname
+ \expandafter{\saved@macroname}\nobreak
+ \global\advance\c@CodelineNo\m@ne
+ \fi
+% \end{macrocode}
+% Suppress further |\index| entries when we are within a
+% \texttt{macrolike} environment. (There is no point doing that for
+% non-\texttt{macrolike} environments are index entries are only
+% generated for items starting with a backslash anyway.
+% \fmi{fix}
+% \begin{macrocode}
+ \if#1\expandafter\DoNotIndex \expandafter {\saved@macroname}\fi
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+%
+% \begin{macro}{\doc@env}
+% \marg{true-value}\marg{item}\oarg{options}\\
+% Handle optional arguments and call \cs{@doc@env}. Because environments can
+% be nested, we can't rely on grouping for getting options default values.
+% Hence, we need to reset the options at every call.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+% \begin{macrocode}
+\def\doc@env#1#2[#3]{%
+ \@nameuse{doc@noprint\doc@noprintdefault}%
+ \@nameuse{doc@noindex\doc@noindexdefault}%
+ \csname keys_set:nn\endcsname{doc}{#3}%
+ \begingroup
+ \ifdoc@outer
+ \catcode`\\12
+ \fi
+ \MakePrivateLetters
+ \@doc@env{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \subsection{\DOC descriptions}
+%
+% \begin{macro}{\@doc@describe}
+% \marg{item}\marg{name}\\
+% \begin{macrocode}
+\def\@doc@describe#1#2{%
+ \ifdoc@noprint\else
+ \marginpar{\raggedleft
+% \end{macrocode}
+% The hyperref target has to be in horizontal mode (which is the
+% case if it is after the \cs{strut}).
+% \begin{macrocode}
+ \strut
+ \doc@providetarget
+ \@nameuse{PrintDescribe#1}{#2}}%
+ \fi
+ \ifdoc@noindex\else
+ \@nameuse{Special#1Index}{#2}%
+ \fi
+ \@esphack
+ \endgroup
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\doc@describe}
+% \marg{item}\oarg{options}\\
+% Handle optional arguments and call \cs{@doc@describe}.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+% \begin{macrocode}
+\def\doc@describe#1[#2]{%
+ \leavevmode\@bsphack
+ \csname keys_set:nn\endcsname{doc}{#2}%
+ \@doc@describe{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{API construction}
+%
+%
+% \begin{macro}{\@temptokenb}
+% A scratch register (which may have been defined elsewhere)
+% \begin{macrocode}
+\@ifundefined{temptokenb}{\newtoks\@temptokenb}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\doc@createspecialmainindex}
+% \marg{item}\marg{idxtype}\marg{idxcat}
+% \begin{macro}{\doc@createspecialmainmacrolikeindex}
+% \marg{item}\marg{idxtype}\marg{idxcat}\\
+% \fmi{original doc -- fix}
+% The ``macrolike'' version does something similar to |doc|'s
+% \cs{SpecialIndex@} macro, but simplified. Let's just hope nobody will ever
+% define \verb*|\ | or nonletter macros as macrolike \DOC elements\ldots
+% \begin{macrocode}
+\def\doc@createspecialindexes#1#2#3{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@temptokena{\space (#2)}%
+ \@temptokenb{#3:}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@nameedef{SpecialMain#1Index}##1{%
+ \noexpand\@bsphack
+ \ifdoc@toplevel
+ \noexpand\special@index{##1\noexpand\actualchar
+ {\string\ttfamily\space##1}%
+ \ifx\@nil#2\@nil\else \the\@temptokena \fi
+ \noexpand\encapchar main}%
+ \fi
+ \ifx\@nil#3\@nil\else
+ \noexpand\special@index{\the\@temptokenb\noexpand\levelchar
+ ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+ \noexpand\encapchar main}%
+ \fi
+ \noexpand\@esphack}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@nameedef{Special#1Index}##1{%
+ \noexpand\@bsphack
+ \ifdoc@toplevel
+ \noexpand\doc@providetarget
+ \noexpand\index{##1\noexpand\actualchar{\string\ttfamily\space##1}%
+ \ifx\@nil#2\@nil\else \the\@temptokena \fi
+ \noexpand\doc@handleencap{usage}}%
+ \fi
+ \ifx\@nil#3\@nil\else
+ \noexpand\index{\the\@temptokenb\noexpand\levelchar
+ ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+ \noexpand\doc@handleencap{usage}}%
+ \fi
+ \noexpand\@esphack}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\doc@createspecialmacrolikeindexes#1#2#3{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@temptokena{\space (#2)}%
+ \@temptokenb{#3:}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@nameedef{Code#1Index}##1##2{%
+ \noexpand\@SpecialIndexHelper@##2\noexpand\@nil
+ \noexpand\@bsphack
+ \noexpand\ifdoc@noindex\noexpand\else
+ \ifdoc@toplevel
+ \noexpand\special@index{\noexpand\@gtempa\noexpand\actualchar
+ \string\verb% % to fool emacs highlighting
+ \noexpand\quotechar*\noexpand\verbatimchar
+ \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+ \ifx\@nil#2\@nil\else \the\@temptokena \fi
+ \noexpand\encapchar ##1}%
+ \fi
+ \ifx\@nil#3\@nil\else
+ \noexpand\special@index{\the\@temptokenb\noexpand\levelchar
+ \noexpand\@gtempa\noexpand\actualchar
+ \string\verb% % to fool emacs highlighting
+ \noexpand\quotechar*\noexpand\verbatimchar
+ \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+ \noexpand\encapchar ##1}%
+ \fi
+ \noexpand\fi
+ \noexpand\@esphack}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@nameedef{SpecialMain#1Index}##1{%
+ \expandafter\noexpand\csname Code#1Index\endcsname
+ {main}{##1}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@nameedef{Special#1Index}##1{%
+ \noexpand\@SpecialIndexHelper@##1\noexpand\@nil
+ \noexpand\@bsphack
+ \noexpand\ifdoc@noindex\noexpand\else
+ \ifdoc@toplevel
+ \noexpand\doc@providetarget
+ \noexpand\index{\noexpand\@gtempa\noexpand\actualchar
+ \string\verb% % to fool emacs highlighting
+ \noexpand\quotechar*\noexpand\verbatimchar
+ \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+ \ifx\@nil#2\@nil\else \the\@temptokena \fi
+ \noexpand\doc@handleencap{usage}}%
+ \fi
+ \ifx\@nil#3\@nil\else
+ \noexpand\index{\the\@temptokenb\noexpand\levelchar
+ \noexpand\@gtempa\noexpand\actualchar
+ \string\verb% % to fool emacs highlighting
+ \noexpand\quotechar*\noexpand\verbatimchar
+ \noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+ \noexpand\doc@handleencap{usage}}%
+ \fi
+ \noexpand\fi
+ \noexpand\@esphack}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+
+
+% \begin{macro}{\doc@createdescribe}
+% \marg{item}
+% \begin{macrocode}
+\def\doc@createdescribe#1{%
+ \@namedef{Describe#1}{%
+% \end{macrocode}
+% Because of the optional argument we have to set
+% |\MakePrivateLetters| already before parsing that (fingers
+% crossed). Otherwise incorrect but quite common usage, such as
+% |\DescribeMacro\foo@bar| will break because the scan for the
+% optional argument will tokenize the following input (i.e., |\foo|
+% in that case) before the |@| sign becomes a letter. As a result
+% |DescribeMacro| would receive only |\foo| as its argument.
+% \begin{macrocode}
+ \begingroup
+ \MakePrivateLetters
+ \@ifnextchar[%]
+ {\doc@describe{#1}}{\doc@describe{#1}[]}}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\doc@createenv}
+% \marg{item}\marg{envname}
+% \begin{macrocode}
+\def\doc@createenv#1#2#3{%
+ \@namedef{#3}{%
+ \@ifnextchar[%]
+ {\doc@env{#1}{#2}}{\doc@env{#1}{#2}[]}}%
+% \end{macrocode}
+% Instead of |\let|ting the end of the environment to
+% |\endtrivlist| we use one level of expansion. This way any
+% possible change in that environment (if that ever happens) is
+% properly reflected.
+% \begin{macrocode}
+ \@namedef{end#3}{\endtrivlist}%
+% \expandafter\let\csname end#3\endcsname\endtrivlist
+}
+% \end{macrocode}
+% \end{macro}
+
+
+%
+% \begin{macro}{\@nameedef}
+%
+% \begin{macrocode}
+\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
+% \end{macrocode}
+% \end{macro}
+
+%
+% \subsection{API creation}
+%
+% The whole user interface is created in one macro call.
+%
+%\begin{verbatim}
+% defaults:
+%
+% idxtype = #3
+% idxgroup = #3s
+% printtype =
+%\end{verbatim}
+
+
+
+% \begin{macro}{\doc@declareerror}
+%
+% \begin{macrocode}
+\def\doc@declareerror#1#2{%
+ \PackageError{doc}{Doc element '#1/#2' already defined?\@gobble}%
+ {There is already a definition for
+ '\string\Print#1Name',\MessageBreak
+ '\string\PrintDescribe#1'
+ or the environment '#2'.\MessageBreak
+ Maybe you are overwriting something by mistake!\MessageBreak
+ Otherwise use '\string\RenewDocElement' instead.}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\doc@notdeclarederror}
+%
+% \begin{macrocode}
+\def\doc@notdeclarederror#1#2{%
+ \PackageError{doc}{Doc element '#1/#2' unknown}%
+ {I expected an existing definition for
+ '\string\Print#1Name',\MessageBreak
+ '\string\PrintDescribe#1' and
+ the environment '#2' but\MessageBreak
+ not all of them are defined.\MessageBreak
+ Maybe you wanted to use
+ '\string\NewDocElement'?}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{imacro}{\NewDocElement}
+% \oarg{options}\marg{name}\marg{envname}
+%
+% \begin{macrocode}
+\newcommand\NewDocElement[3][]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@ifundefined{Print#2Name}%
+ {\@ifundefined{PrintDescribe#2}%
+ {\@ifundefined{#3}%
+ {\@ifundefined{end#3}%
+ {\@NewDocElement{#1}}%
+ \doc@declareerror
+ }\doc@declareerror
+ }\doc@declareerror
+ }\doc@declareerror
+ {#2}{#3}%
+}
+% \end{macrocode}
+% \end{imacro}
+%
+% \begin{imacro}{\RenewDocElement}
+% \oarg{options}\marg{name}\marg{envname}
+%
+% \begin{macrocode}
+\newcommand\RenewDocElement[3][]{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@ifundefined{Print#2Name}\doc@notdeclarederror
+ {\@ifundefined{PrintDescribe#2}\doc@notdeclarederror
+ {\@ifundefined{#3}\doc@notdeclarederror
+ {\@ifundefined{end#3}\doc@notdeclarederror
+ {\@NewDocElement{#1}}%
+ }%
+ }%
+ }%
+ {#2}{#3}%
+}
+% \end{macrocode}
+% \end{imacro}
+%
+%
+% \begin{macro}{\@NewDocElement}
+% \marg{options}\marg{name}\marg{envname}
+%
+% \begin{macrocode}
+\def\@NewDocElement#1#2#3{%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \doc@macrolikefalse
+ \doc@topleveltrue
+% \end{macrocode}
+%
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+% \begin{macrocode}
+ \def\doc@idxtype{#3}%
+ \def\doc@idxgroup{#3s}%
+ \let\doc@printtype\@empty
+ \csname keys_set:nn\endcsname{doc}{#1}%
+% \end{macrocode}
+% \begin{imacro}{\Print...Name}
+% \marg{name}
+% \fmi{extremely messy this with so many \cs{expandafter}s \ldots{}
+% should reimplement in expl3}
+% \begin{macrocode}
+ \ifx\doc@printtype\@empty
+ \@temptokena{}%
+ \else
+ \@temptokena\expandafter{\expandafter
+ \textnormal\expandafter{\expandafter
+ \space\expandafter
+ (\doc@printtype)}}%
+ \fi
+ \@nameedef{Print#2Name}##1{%
+ {\noexpand\MacroFont
+ \ifdoc@macrolike
+ \noexpand\string
+ \fi
+ ##1%
+ \the\@temptokena
+ }}%
+% \end{macrocode}
+% \end{imacro}
+%
+% \begin{imacro}{\PrintDescribe...}
+% \marg{name}
+% \begin{macrocode}
+ \expandafter\let\csname PrintDescribe#2\expandafter\endcsname
+ \csname Print#2Name\endcsname
+% \end{macrocode}
+% \end{imacro}
+%
+% \begin{imacro}{\SpecialMain...Index}
+% \marg{name}
+% \begin{imacro}{\Special...Index}
+% \marg{name}
+% \begin{macrocode}
+ \edef\doc@expr{%
+ \ifdoc@macrolike
+ \noexpand\doc@createspecialmacrolikeindexes
+ \else
+ \noexpand\doc@createspecialindexes
+ \fi
+ {#2}%
+ }%
+ \expandafter\expandafter\expandafter
+ \doc@expr
+ \expandafter\expandafter\expandafter
+ {\expandafter\doc@idxtype\expandafter}\expandafter
+ {\doc@idxgroup}%
+% \end{macrocode}
+% \end{imacro}
+% \end{imacro}
+%
+% \begin{imacro}{\Describe...}
+% \oarg{options}\marg{name}
+% \begin{macrocode}
+ \doc@createdescribe{#2}%
+% \end{macrocode}
+% \end{imacro}
+%
+% \begin{environment}{\meta{DocElement}}
+% \fmi{can't have formatting in argument -- fix}
+% \oarg{options}\marg{name}
+% \begin{macrocode}
+ \ifdoc@macrolike
+ \doc@createenv{TT}{#2}{#3}%
+ \else
+ \doc@createenv{TF}{#2}{#3}%
+ \fi
+}
+% \end{macrocode}
+% \end{environment}
+% \end{macro}
+
+
+
+
+
+% \subsection{Setting up the default \DOC elements}
+
+% \subsubsection{Macro facilities}
+%
+% Macros get only a single index entry (no index group, no index
+% type) and they do not get any label either when printing in the margin.
+% \begin{macrocode}
+\NewDocElement[macrolike = true ,
+ idxtype = ,
+ idxgroup = ,
+ printtype =
+ ]{Macro}{macro}
+% \end{macrocode}
+
+
+% \begin{macro}{SpecialMainIndex}
+%
+% In \DOC v2 we had \cs{SpecialMainIndex} and
+% \cs{SpecialMainEnvIndex} but now with additional \DOC elements we
+% always add the element name after ``\texttt{Main}'' so this would
+% be \cs{SpecialMainMacroIndex}. We use |\def| not |\let| so any
+% redefinition of |\SpecialMainMacroIndex| will be transparent.
+% \begin{macrocode}
+\def\SpecialMainIndex{\SpecialMainMacroIndex}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{SpecialUsageIndex}
+% \DOC v2 also had \cs{SpecialUsageIndex} which is now called
+% \cs{SpecialMacroIndex} generating the ``usage'' index entry for
+% a macro. Again we provide that as an alias via |\def|.
+%
+% In fact the documentation of \DOC v2 claimed that one can use
+% this for both macros and environments but that was never true as
+% for environments the result was that the first character was
+% dropped in sorting of the index. The correct way is to use
+% \cs{SpecialEnvIndex} for this.
+% \begin{macrocode}
+\def\SpecialUsageIndex{\SpecialMacroIndex}
+% \end{macrocode}
+% \end{macro}
+%
+
+% \begin{macro}{\SpecialIndex}
+% \begin{macrocode}
+\def\SpecialIndex {\CodeMacroIndex{code}}
+% \end{macrocode}
+% \end{macro}
+
+
+%
+% \subsubsection{Environment facilities}
+%
+% Providing documentation support for environments. Here we differ
+% from \DOC V2 by marking the environments with ``(\textit{env.})''
+% when printing the name in the margin.
+% \begin{macrocode}
+\NewDocElement[macrolike = false ,
+ idxtype = env. ,
+ idxgroup = environments ,
+ printtype = \textit{env.}
+ ]{Env}{environment}
+% \end{macrocode}
+%
+%
+%
+% To be able to restore the definition after \pkg{hypdoc} is loaded
+% we better save them here. We only load the package at the end of
+% the preamble, but the user might do this earlier and then chaos
+% is ensured.
+% \begin{macrocode}
+ \let\@@PrintDescribeMacro \PrintDescribeMacro
+ \let\@@PrintDescribeEnv \PrintDescribeEnv
+ \let\@@PrintMacroName \PrintMacroName
+ \let\@@PrintEnvName \PrintEnvName
+ \let\@@SpecialUsageIndex \SpecialUsageIndex
+ \let\@@SpecialEnvIndex \SpecialEnvIndex
+ \let\@@SortIndex \SortIndex
+ \let\@@DescribeMacro \DescribeMacro
+ \let\@@DescribeEnv \DescribeEnv
+% \end{macrocode}
+%
+%
+% \section{Misc additions}
+
+% \begin{imacro}{\cs}
+% \begin{macrocode}
+\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}
+% \end{macrocode}
+% \cls{amsdtx} has its own definition for \cs{cs} but that now
+% gets overwritten because the class loads \pkg{doc} afterwards. So
+% for now we reinstall it here.
+% \fmi{fix elsewhere}
+% \begin{macrocode}
+\AddToHook{class/amsdtx/after}{%
+ \DeclareRobustCommand\cs[1]{%
+ \@boxorbreak{%
+ \ntt
+ \addbslash#1\@empty
+ \@xp\@xp\@xp\@indexcs\@xp\@nobslash\string#1\@nil
+ }%
+ }%
+ \def\cn{\cs}%
+}
+% \end{macrocode}
+% \end{imacro}
+
+
% We can now finish the \texttt{docstrip} main module.
% \begin{macrocode}
%</package>
@@ -4958,5 +6325,15 @@
%
%
% \Finale
-% \PrintIndex \PrintChanges
+% \PrintChanges
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index 0c04b70a25..c649645b07 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.dtx b/macros/latex/base/docstrip.dtx
index c7480988b4..22c1f69aa0 100644
--- a/macros/latex/base/docstrip.dtx
+++ b/macros/latex/base/docstrip.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -935,7 +935,7 @@
% using*strange@programming<language>
%\end{verbatim}
%
-%\StopEventually{%
+%\MaybeStop{%
%^^A \section{Conclusion}
% \PrintIndex
% \PrintChanges
diff --git a/macros/latex/base/docstrip.ins b/macros/latex/base/docstrip.ins
index e34281fc36..e2187594a4 100644
--- a/macros/latex/base/docstrip.ins
+++ b/macros/latex/base/docstrip.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -52,7 +52,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -98,6 +98,7 @@ extension .ins) which are part of the distribution.
\generate{\file{ltxdoc.cls}{\from{ltxdoc.dtx}{class}}
+ \file{ltxdoc.cfg}{\from{ltxdoc.dtx}{cfg}}
}
\generate{\file{doc.sty}{\from{doc.dtx}{package}}
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index e738466196..07457cea0d 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/ec.ins b/macros/latex/base/ec.ins
index 90b7b2e61f..47823e7edf 100644
--- a/macros/latex/base/ec.ins
+++ b/macros/latex/base/ec.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index 34db11a39e..fca0d5c611 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.tex b/macros/latex/base/encguide.tex
index d70233eab4..3c95cf30cc 100644
--- a/macros/latex/base/encguide.tex
+++ b/macros/latex/base/encguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/exscale.dtx b/macros/latex/base/exscale.dtx
index ea67cb6fb7..bc884c4db0 100644
--- a/macros/latex/base/exscale.dtx
+++ b/macros/latex/base/exscale.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -106,7 +106,7 @@
% they are printed on another installation whereas when using the
% package file they would come out the same on both sites.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Implementation}
diff --git a/macros/latex/base/exscale.ins b/macros/latex/base/exscale.ins
index cfd2c535a7..d202aad7cf 100644
--- a/macros/latex/base/exscale.ins
+++ b/macros/latex/base/exscale.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index 59ff05aa27..ac3162238a 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.dtx b/macros/latex/base/fix-cm.dtx
index 1be2e16cc0..5f8983ed34 100644
--- a/macros/latex/base/fix-cm.dtx
+++ b/macros/latex/base/fix-cm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -216,7 +216,7 @@
%
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
diff --git a/macros/latex/base/fix-cm.ins b/macros/latex/base/fix-cm.ins
index 95931970f4..b688cd66cf 100644
--- a/macros/latex/base/fix-cm.ins
+++ b/macros/latex/base/fix-cm.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index 1d0a7e432b..ffe0337c9b 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index 04f2a069c0..34bae59bea 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.tex b/macros/latex/base/fntguide.tex
index a4b872a261..62d3538304 100644
--- a/macros/latex/base/fntguide.tex
+++ b/macros/latex/base/fntguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -12,7 +12,7 @@
% conditions of the LaTeX Project Public License, either version 1.3c
% 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
+% https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
@@ -33,16 +33,21 @@
\documentclass{ltxguide}[1995/11/28]
-\usepackage{varioref}
+
+\setcounter{totalnumber}{8}
+\setcounter{topnumber}{8}
+
+\usepackage[trace]{fewerfloatpages}
+\usepackage{booktabs,varioref}
\title{\LaTeXe{} font selection}
\author{\copyright~Copyright 1995--2021, \LaTeX\ Project
Team.\thanks{Thanks to Arash Esbati for documenting the
newer NFSS features of 2020}\\
- All rights reserved.}
+ All rights reserved.}
-\date{March 2021}
+\date{December 2021}
\begin{document}
@@ -160,7 +165,7 @@ For more information about \TeX{} and \LaTeX{}, please contact your
local \TeX{} Users Group, or the international \TeX{} Users Group.
Addresses and other details can be found at:
\begin{quote}\small\label{addrs}
- \texttt{http://www.tug.org/lugs.html}
+ \texttt{https://www.tug.org/lugs.html}
\end{quote}
@@ -288,6 +293,9 @@ naming scheme to allow for sensible default substitutions if necessary,
e.g., ``demi-bold'' is normally just another name for ``semi-bold'', so
should get |sb| assigned, etc.
+
+\newpage
+
\NEWdescription{2020/02/02}
The most common values for the font shape are:
\begin{center}
@@ -343,27 +351,29 @@ box warning, for example:
Overfull \hbox (3.80855pt too wide) in paragraph at lines 314--318
[]\OT1/cmr/m/n/10 Normally [] and [] will be iden-ti-cal,
\end{verbatim}
-The author commands for fonts set the five attributes:
-\begin{center}
- \hspace*{-1em}%
- \begin{tabular}{rcl}
- \emph{Author command} & \emph{Attribute}
+The author commands for fonts set the five attributes as shown in table~\vref{tab:attributes}.
+\begin{table}[!tbp]
+ \centering
+ \begin{tabular}{@{}r@{\hspace{3pt}}c@{\hspace{1pt}}c@{}}
+ \toprule
+ \multicolumn{1}{c}{\emph{Author command}} & \emph{Attribute}
& \emph{Value in} |article| \emph{class} \\
+ \midrule
|\textnormal{..}| or |\normalfont| & family & |cmr| \\
& series & |m| \\
- & shape & |n| \\[1pt]
+ & shape & |n| \\ \midrule%[2pt]
|\textrm{..}| or |\rmfamily| & family & |cmr| \\
|\textsf{..}| or |\sffamily| & family & |cmss| \\
|\texttt{..}| or |\ttfamily| & family & |cmtt| \\
|\textmd{..}| or |\mdseries| & series & |m| \\
- |\textbf{..}| or |\bfseries| & series & |bx| \\[1pt]
+ |\textbf{..}| or |\bfseries| & series & |bx| \\ \midrule%[2pt]
|\textit{..}| or |\itshape| & shape & |it| \\
|\textsl{..}| or |\slshape| & shape & |sl| \\
|\textsc{..}| or |\scshape| & shape & |sc| \\
|\textssc{..}| or |\sscshape| & shape & |ssc| \\
|\textsw{..}| or |\swshape| & shape & |sw| \\
- |\textulc{..}| or |\ulcshape| & shape & |ulc| (virtual) $\to$ |n|, |it|, |sl| or |ssc| \\
- |\textup{..}| or |\upshape| & shape & |up| (virtual) $\to$ |n| or |sc| \\[1pt]
+ |\textulc{..}| or |\ulcshape| & shape & |ulc| (virtual) $\to$ |n|, |it|, |sl| or |ssc| \\
+ |\textup{..}| or |\upshape| & shape & | up| (virtual) $\to$ |n| or |sc |\phantom{, , } \\\midrule%[2pt]
|\tiny| & size & |5pt| \\
|\scriptsize| & size & |7pt| \\
|\footnotesize| & size & |8pt| \\
@@ -373,9 +383,11 @@ The author commands for fonts set the five attributes:
|\Large| & size & |14.4pt| \\
|\LARGE| & size & |17.28pt| \\
|\huge| & size & |20.74pt| \\
- |\Huge| & size & |24.88pt|
+ |\Huge| & size & |24.88pt| \\
+ \bottomrule
\end{tabular}
-\end{center}
+ \caption{Author font commands and their effects (article class)}\label{tab:attributes}
+\end{table}
The values used by these commands are determined by the document class,
using the parameters defined in Section~\ref{Sec:text.param}.
@@ -386,16 +398,20 @@ This section does not explain how \LaTeX{} font specifications are
turned into \TeX{} font names. This is described in
Section~\ref{Sec:install}.
+
+\newpage
+
+
\subsection{Selection commands}
The low-level commands used to select a text font are as follows.
\begin{decl}
|\fontencoding| \arg{encoding} \\
- |\fontfamily| \arg{family} \\
- |\fontseries| \arg{series} \\
+ |\fontfamily| \arg{family} \qquad
+ |\fontseries| \arg{series} \qquad
|\fontshape| \arg{shape} \\
- |\fontsize| \arg{size} \arg{baselineskip} \\
+ |\fontsize| \arg{size} \arg{baselineskip} \qquad
|\linespread| \arg{factor}
\end{decl}
@@ -439,14 +455,14 @@ to |\selectfont|.
The current values of the font attributes are held in internal macros.
\begin{decl}
- |\f@encoding| \\
- |\f@family| \\
- |\f@series| \\
- |\f@shape| \\
- |\f@size| \\
+ |\f@encoding| \quad
+ |\f@family| \quad
+ |\f@series| \quad
+ |\f@shape| \quad
+ |\f@size| \quad
|\f@baselineskip| \\
- |\tf@size| \\
- |\sf@size| \\
+ |\tf@size| \quad
+ |\sf@size| \quad
|\ssf@size|
\end{decl}
@@ -482,9 +498,9 @@ specifies:
\end{verbatim}
\begin{decl}
- |\encodingdefault| \\
- |\familydefault| \\
- |\seriesdefault| \\
+ |\encodingdefault| \qquad
+ |\familydefault| \qquad
+ |\seriesdefault| \qquad
|\shapedefault|
\end{decl}
The encoding, family, series and shape of the main body font. By
@@ -493,8 +509,8 @@ default family is |\rmdefault|, this means that changing |\rmdefault|
will change the main body font of the document.
\begin{decl}
- |\rmdefault| \\
- |\sfdefault| \\
+ |\rmdefault| \qquad
+ |\sfdefault| \qquad
|\ttdefault|
\end{decl}
The families selected by |\textrm|, |\rmfamily|, |\textsf|, |\sffamily|,
@@ -502,7 +518,7 @@ The families selected by |\textrm|, |\rmfamily|, |\textsf|, |\sffamily|,
|cmtt|.
\begin{decl}
- |\bfdefault| \\
+ |\bfdefault| \qquad
|\mddefault|
\end{decl}
The series selected by |\textbf|, |\bfseries|, |\textmd| and
@@ -516,12 +532,12 @@ the fonts provided by |psnfss|) is to define silent substitutions from
and the |ssub| size function, see Section~\ref{sec:sizefunct}.
\begin{decl}
- |\itdefault| \\
- |\sldefault| \\
- |\scdefault| \\
- |\sscdefault| \\
+ |\itdefault| \qquad
+ |\sldefault| \qquad
+ |\scdefault| \qquad
+ |\sscdefault| \qquad
|\swdefault| \\
- |\ulcdefault| \\
+ |\ulcdefault| \qquad
|\updefault|
\end{decl}
\NEWfeature{2020/02/02}
@@ -611,6 +627,8 @@ This declaration is useful for setting up commands like |\rm| to behave
as they did in \LaTeX~2.09. We strongly urge you \emph{not} to misuse
this declaration to invent new font commands.
+\newpage
+
The following example defines |\it| to produce the italic shape of the
main document font if used in text and to switch to the font that would
normally be produced by the math alphabet |\mathit| if used in a
@@ -714,13 +732,13 @@ selected indirectly through symbol commands like |\oplus|.
Section~\ref{Sec:math.commands} explains how to define symbol commands.
\begin{decl}
- |\mathnormal{<math>}| \\
- |\mathcal{<math>}| \\
- |\mathrm{<math>}| \\
- |\mathbf{<math>}| \\
- |\mathsf{<math>}| \\
+ |\mathnormal{<math>}| \quad
+ |\mathcal{<math>}| \quad
+ |\mathbf{<math>}| \quad
|\mathit{<math>}| \\
- |\mathtt{<math>}|
+ |\mathrm{<math>}| \qquad
+ |\mathsf{<math>}| \qquad
+ |\mathtt{<math>}|
\end{decl}
Each math alphabet is a command which can only be used inside math mode.
For example, |$x + \mathsf{y} + \mathcal{Z}$| produces
@@ -799,6 +817,8 @@ Checks that \m{math-alph} has been declared as a math alphabet,
\m{version} is a known math version and \m{encoding} is a known encoding
scheme.
+\newpage
+
This example defines |\baz| for the `normal' math version only:
\begin{verbatim}
\SetMathAlphabet{\baz}{normal}{OT1}{cmss}{m}{n}
@@ -868,6 +888,8 @@ alphabet with command \m{math-alph} in \emph{all} math versions.
Checks that the command \m{math-alph} is either already a math alphabet
command or is undefined; and that \m{sym-font} is a symbol font.
+\newpage
+
Example:
\begin{verbatim}
\DeclareSymbolFontAlphabet{\mathrm}{operators}
@@ -928,6 +950,8 @@ Example:
\DeclareMathSymbol{\alphld}{\mathalpha}{AMSb}{"0C}
\end{verbatim}
+\newpage
+
\begin{decl}
|\DeclareMathDelimiter| \arg{cmd} \arg{type}
\arg{sym-font-1} \arg{slot-1}\\
@@ -1021,6 +1045,7 @@ Example:
This section explains how \LaTeX's font attributes are turned into
\TeX{} font specifications.
+
\subsection{Font definition files}
\NEWdescription{1997/12/01}
@@ -1043,6 +1068,8 @@ and font substitutions are made.
The declarations in the font definition file are responsible for telling
\LaTeX{} how to load fonts for that encoding/family combination.
+
+
\subsection{Font definition file commands}
\emph{Note}: A font definition file should contain only commands from
@@ -1056,7 +1083,11 @@ of a document.
|\ProvidesFile{<file-name>}[<release-info>]|
\end{decl}
The file should announce itself with a |\ProvidesFile| command, as
-described in \emph{\clsguide}. For example:
+described in \emph{\clsguide}.
+
+\newpage
+
+For example:
\begin{verbatim}
\ProvidesFile{t1ptm.fd}[1994/06/01 Adobe Times font definitions]
\end{verbatim}
@@ -2017,12 +2048,17 @@ glyphs from the math fonts instead of the current text font (this means
they always keep the same shape and do not nicely blend in with the text
font).
+\newpage
+
The following tables show the macros available. The next commands are
`constructed' accents and are built via \TeX{} macros:
\begin{center}
\begin{tabular}[t]{@{}ll}
\verb*|\capitalcedilla A| & \capitalcedilla A \\
\verb*|\capitalogonek A| & \capitalogonek A \\
+ \end{tabular}
+ \quad
+ \begin{tabular}[t]{@{}ll}
\verb*|\textcircled a| & \textcircled a
\end{tabular}
\end{center}
@@ -2052,12 +2088,21 @@ show the slot number:
\end{tabular}
\end{center}
-Table~\vref{tab:textcomp} contains macros to access text symbols. Again,
+Table~\vref{tab:textcomp}
+contains the full list of commands to access the text symbols.
+%
+% Tables~\vrefrange{tab:ts1-subset-always}{tab:ts1-subset-9-disable}
+% contain the commands to access the text symbols.
+%
+Again,
the numbers are the slots in the encoding.
-\begin{table}
-\centering\footnotesize
+\iftrue
+\begin{table}[!tp]
+ \centering\footnotesize
+ \renewcommand\arraystretch{1.07}
\begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
\verb|\textcapitalcompwordmark| & \textcapitalcompwordmark & 23 \\
\verb|\textascendercompwordmark| & \textascendercompwordmark & 31 \\
\verb|\textquotestraightbase| & \textquotestraightbase & 13 \\
@@ -2112,9 +2157,11 @@ the numbers are the slots in the encoding.
\verb|\textbullet| & \textbullet & 136 \\
\verb|\textcelsius| & \textcelsius & 137 \\
\verb|\textdollaroldstyle| & \textdollaroldstyle & 138 \\
- \verb|\textcentoldstyle| & \textcentoldstyle & 139
+ \verb|\textcentoldstyle| & \textcentoldstyle & 139 \\
+ \bottomrule
\end{tabular}\qquad
\begin{tabular}[t]{lp{1.5em}l}
+ \toprule
\verb|\textflorin| & \textflorin & 140 \\
\verb|\textcolonmonetary| & \textcolonmonetary & 141 \\
\verb|\textwon| & \textwon & 142 \\
@@ -2168,12 +2215,371 @@ the numbers are the slots in the encoding.
\verb|\textthreequarters| & \textthreequarters & 190 \\
\verb|\texteuro| & \texteuro & 191 \\
\verb|\texttimes| & \texttimes & 214 \\
- \verb|\textdiv| & \textdiv & 246
+ \verb|\textdiv| & \textdiv & 246 \\
+ \null \\
+ \bottomrule
+ \end{tabular}
+ \caption{Text symbols formerly from the \textsf{textcomp} package}
+ \label{tab:textcomp}
+\end{table}
+
+\fi
+
+The |TS1| encoding contains a rich set of symbols which means that
+several symbols are only available in a few \TeX{} fonts and some, such
+as the capital accents, not available at all but developed as part of
+the reference font implementation. In reality, many existing fonts
+don't provide a full set of glyphs defined in |TS1| encoding and the
+question arises: ``Which glyphs of the |TS1| encoding are implemented by
+which font?''
+
+\NEWfeature{2021/06/01}
+Fonts can be ordered in sub-encodings with the |\DeclareEncodingSubset|
+macro:
+\begin{decl}
+ |\DeclareEncodingSubset| \arg{encoding}
+ \arg{font family}
+ \arg{subset number}
+\end{decl}
+The macro takes 3 mandatory arguments: An \m{encoding} for which a
+subsetting is wanted (currently only |TS1|), the \m{font family} for
+which we declare the subset and finally the \m{subset number} between
+|0| (all of the encoding is supported) and |9| (many glyphs are
+missing). Hence, it is assumed that some symbols are always available
+by all fonts and each sub-encoding defines macros which become
+unavailable (i.e., they are not provided in the sub-encoding with that
+number and all sub-encodings with higher numbers.)
+
+\begin{table}[tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textquotestraightbase| & \textquotestraightbase & 13 \\
+ \verb|\textquotestraightdblbase| & \textquotestraightdblbase & 18 \\
+ \verb|\textcapitalcompwordmark| & \textcapitalcompwordmark & 23 \\
+ \verb|\textascendercompwordmark| & \textascendercompwordmark & 31 \\
+ \verb|\textdollar| & \textdollar & 36 \\
+ \verb|\textquotesingle| & \textquotesingle & 39 \\
+ \verb|\textasteriskcentered| & \textasteriskcentered & 42 \\
+ \verb|\textdagger| & \textdagger & 132 \\
+ \verb|\textdaggerdbl| & \textdaggerdbl & 133 \\
+ \verb|\textperthousand| & \textperthousand & 135 \\
+ \verb|\textbullet| & \textbullet & 136 \\
+ \verb|\texttrademark| & \texttrademark & 151 \\
+ \verb|\textcent| & \textcent & 162 \\
+ \verb|\textsterling| & \textsterling & 163 \\
+ \verb|\textyen| & \textyen & 165 \\
+ \verb|\textbrokenbar| & \textbrokenbar & 166 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textsection| & \textsection & 167 \\
+ \verb|\textcopyright| & \textcopyright & 169 \\
+ \verb|\textordfeminine| & \textordfeminine & 170 \\
+ \verb|\textlnot| & \textlnot & 172 \\
+ \verb|\textregistered| & \textregistered & 174 \\
+ \verb|\textdegree| & \textdegree & 176 \\
+ \verb|\textpm| & \textpm & 177 \\
+ \verb|\textparagraph| & \textparagraph & 182 \\
+ \verb|\textperiodcentered| & \textperiodcentered & 183 \\
+ \verb|\textordmasculine| & \textordmasculine & 186 \\
+ \verb|\textonequarter| & \textonequarter & 188 \\
+ \verb|\textonehalf| & \textonehalf & 189 \\
+ \verb|\textthreequarters| & \textthreequarters & 190 \\
+ \verb|\texttimes| & \texttimes & 214 \\
+ \verb|\textdiv| & \textdiv & 246 \\
+ \null \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols available in all \texttt{TS1} sub-encodings}
+ \label{tab:ts1-subset-always}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+ \centering
+ \begin{tabular}[t]{@{}lll@{}}
+ \toprule
+ \verb*|\textcircled| & \textcircled{} & acc \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbol unavailable in \texttt{TS1} sub-encoding \texttt{1}
+ and higher}
+ \label{tab:ts1-subset-1-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\capitalcedilla| & \capitalcedilla{} & acc \\
+ \verb|\capitalogonek| & \capitalogonek{} & acc \\
+ \verb|\capitalgrave| & \capitalgrave{} & 0 \\
+ \verb|\capitalacute| & \capitalacute{} & 1 \\
+ \verb|\capitalcircumflex| & \capitalcircumflex{} & 2 \\
+ \verb|\capitaltilde| & \capitaltilde{} & 3 \\
+ \verb|\capitaldieresis| & \capitaldieresis{} & 4 \\
+ \verb|\capitalhungarumlaut| & \capitalhungarumlaut{} & 5 \\
+ \verb|\capitalring| & \capitalring{} & 6 \\
+ \verb|\capitalcaron| & \capitalcaron{} & 7 \\
+ \verb|\capitalbreve| & \capitalbreve{} & 8 \\
+ \verb|\capitalmacron| & \capitalmacron{} & 9 \\
+ \verb|\capitaldotaccent| & \capitaldotaccent{} & 10 \\
+ \verb|\capitaltie| & \capitaltie{} & 27 \\
+ \verb|\newtie| & \newtie{} & 28 \\
+ \verb|\capitalnewtie{}| & \capitalnewtie{} & 29 \\
+ \verb|\textdblhyphen| & \textdblhyphen & 45 \\
+ \verb|\textzerooldstyle| & \textzerooldstyle & 48 \\
+ \verb|\textoneoldstyle| & \textoneoldstyle & 49 \\
+ \verb|\texttwooldstyle| & \texttwooldstyle & 50 \\
+ \verb|\textthreeoldstyle| & \textthreeoldstyle & 51 \\
+ \verb|\textfouroldstyle| & \textfouroldstyle & 52 \\
+ \verb|\textfiveoldstyle| & \textfiveoldstyle & 53 \\
+ \verb|\textsixoldstyle| & \textsixoldstyle & 54 \\
+ \verb|\textsevenoldstyle| & \textsevenoldstyle & 55 \\
+ \verb|\texteightoldstyle| & \texteightoldstyle & 56 \\
+ \verb|\textnineoldstyle| & \textnineoldstyle & 57 \\
+ \verb|\textmho| & \textmho & 77 \\
+ \verb|\textbigcircle| & \textbigcircle & 79 \\
+ \verb|\textlbrackdbl| & \textlbrackdbl & 91 \\
+ \verb|\textrbrackdbl| & \textrbrackdbl & 93 \\
+ \verb|\textasciigrave| & \textasciigrave & 96 \\
+ \verb|\textborn| & \textborn & 98 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textdivorced| & \textdivorced & 99 \\
+ \verb|\textdied| & \textdied & 100 \\
+ \verb|\textleaf| & \textleaf & 108 \\
+ \verb|\textmarried| & \textmarried & 109 \\
+ \verb|\textmusicalnote| & \textmusicalnote & 110 \\
+ \verb|\texttildelow| & \texttildelow & 126 \\
+ \verb|\textdblhyphenchar| & \textdblhyphenchar & 127 \\
+ \verb|\textasciibreve| & \textasciibreve & 128 \\
+ \verb|\textasciicaron| & \textasciicaron & 129 \\
+ \verb|\textacutedbl| & \textacutedbl & 130 \\
+ \verb|\textgravedbl| & \textgravedbl & 131 \\
+ \verb|\textdollaroldstyle| & \textdollaroldstyle & 138 \\
+ \verb|\textcentoldstyle| & \textcentoldstyle & 139 \\
+ \verb|\textnaira| & \textnaira & 143 \\
+ \verb|\textguarani| & \textguarani & 144 \\
+ \verb|\textpeso| & \textpeso & 145 \\
+ \verb|\textrecipe| & \textrecipe & 147 \\
+ \verb|\textpertenthousand| & \textpertenthousand & 152 \\
+ \verb|\textpilcrow| & \textpilcrow & 153 \\
+ \verb|\textbaht| & \textbaht & 154 \\
+ \verb|\textdiscount| & \textdiscount & 156 \\
+ \verb|\textopenbullet| & \textopenbullet & 158 \\
+ \verb|\textservicemark| & \textservicemark & 159 \\
+ \verb|\textlquill| & \textlquill & 160 \\
+ \verb|\textrquill| & \textrquill & 161 \\
+ \verb|\textasciidieresis| & \textasciidieresis & 168 \\
+ \verb|\textcopyleft| & \textcopyleft & 171 \\
+ \verb|\textcircledP| & \textcircledP & 173 \\
+ \verb|\textasciimacron| & \textasciimacron & 175 \\
+ \verb|\textasciiacute| & \textasciiacute & 180 \\
+ \verb|\textreferencemark| & \textreferencemark & 184 \\
+ \verb|\textsurd| & \textsurd & 187 \\
+ \null \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{2}
+ and higher}
+ \label{tab:ts1-subset-2-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|textlangle| & \textlangle & 60 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textrangle| & \textrangle & 62 \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{3}
+ and higher}
+ \label{tab:ts1-subset-3-disable}
+\end{table}
+
+
+Thus, the symbols that are available in sub-encoding $x$ are the symbols
+in table~\ref{tab:ts1-subset-always} (always available) and the symbols
+that only become unavailable in sub-encodings $> x$. The tables
+\vrefrange{tab:ts1-subset-1-disable}{tab:ts1-subset-9-disable} show the symbols that
+become unavailable in the different sub-encodings. Again, the numbers
+are the slots in the |TS1| encoding, |acc| indicates a `constructed'
+accent.
+
+\newpage
+
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textleftarrow| & \textleftarrow & 24 \\
+ \verb|\textrightarrow| & \textrightarrow & 25 \\
+ \verb|\textuparrow| & \textuparrow & 94 \\
+ \verb|\textdownarrow| & \textdownarrow & 95 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textcolonmonetary| & \textcolonmonetary & 141 \\
+ \verb|\textwon| & \textwon & 142 \\
+ \verb|\textlira| & \textlira & 146 \\
+ \verb|\textdong| & \textdong & 150 \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{4}
+ and higher}
+ \label{tab:ts1-subset-4-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textnumero| & \textnumero & 155 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textestimated| & \textestimated & 157 \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{5}
+ and higher}
+ \label{tab:ts1-subset-5-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textflorin| & \textflorin & 140 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textcurrency| & \textcurrency & 164 \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{6}
+ and higher}
+ \label{tab:ts1-subset-6-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textfractionsolidus| & \textfractionsolidus & 47 \\
+ \verb|\textminus| & \textminus & 61 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textohm| & \textohm & 87 \\
+ \verb|\textmu| & \textmu & 181 \\
+ \bottomrule
\end{tabular}
-\caption{Text symbols formerly from the \textsf{textcomp} package}
-\label{tab:textcomp}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{7}
+ and higher}
+ \label{tab:ts1-subset-7-disable}
\end{table}
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textblank| & \textblank & 32 \\
+ \verb|\textinterrobang| & \textinterrobang & 148 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\textinterrobangdown| & \textinterrobangdown & 149 \\
+ \null \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{8}
+ and higher}
+ \label{tab:ts1-subset-8-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+ \centering\footnotesize
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\texttwelveudash| & \texttwelveudash & 21 \\
+ \verb|\textthreequartersemdash| & \textthreequartersemdash & 22 \\
+ \verb|\textbardbl| & \textbardbl & 134 \\
+ \verb|\textcelsius| & \textcelsius & 137 \\
+ \bottomrule
+ \end{tabular}\qquad
+ \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+ \toprule
+ \verb|\texttwosuperior| & \texttwosuperior & 178 \\
+ \verb|\textthreesuperior| & \textthreesuperior & 179 \\
+ \verb|\textonesuperior| & \textonesuperior & 185 \\
+ \null \\
+ \bottomrule
+ \end{tabular}
+ \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{9}}
+ \label{tab:ts1-subset-9-disable}
+\end{table}
+
+
+
+As an example,
+%\begin{verbatim}
+ \verb=\DeclareEncodingSubset{TS1}{foo}{5}=
+%\end{verbatim}
+indicates that the font family |foo| contains the always available
+symbols (table~\vref{tab:ts1-subset-always}) and the ones disabled
+in sub-encodings 6--9, i.e.,
+tables~\vrefrange{tab:ts1-subset-6-disable}{tab:ts1-subset-9-disable}.
+
+As these days many font families are set up to end in |-LF| (lining
+figures), |-OsF| (oldstyle figures), etc. the declaration supports a
+shortcut: if the \m{font family} name ends in |-*| then the star gets
+replaced by these common ending, e.g.,
+\begin{verbatim}
+ \DeclareEncodingSubset{TS1}{Alegreya-*}{2}
+\end{verbatim}
+is the same as writing
+\begin{verbatim}
+ \DeclareEncodingSubset{TS1}{Alegreya-LF} {2}
+ \DeclareEncodingSubset{TS1}{Alegreya-OsF} {2}
+ \DeclareEncodingSubset{TS1}{Alegreya-TLF} {2}
+ \DeclareEncodingSubset{TS1}{Alegreya-TOsF}{2}
+\end{verbatim}
+If only some are needed then one can define them individually but in
+many cases all four are wanted, hence the shortcut.
+
+
+
+
\section{If you need to know more \ldots}
\NEWdescription{1996/06/01}
diff --git a/macros/latex/base/fontdef.dtx b/macros/latex/base/fontdef.dtx
index 581cfeb789..06af8feefd 100644
--- a/macros/latex/base/fontdef.dtx
+++ b/macros/latex/base/fontdef.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -164,7 +164,7 @@
% \end{quote}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The \texttt{docstrip} modules}
%
diff --git a/macros/latex/base/format.ins b/macros/latex/base/format.ins
index eece2f57ef..369f01a7c5 100644
--- a/macros/latex/base/format.ins
+++ b/macros/latex/base/format.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -88,7 +88,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 2015-2021
+Copyright (C) 2015-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -123,7 +123,7 @@ extension .ins) which are part of the distribution.
This is a generated file.
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -174,6 +174,7 @@ the system are in the document `cfgguide.tex'.
\from{lterror.dtx}{2ekernel}
\from{ltpar.dtx}{2ekernel}
\from{ltpara.dtx}{2ekernel} % L3 layer module
+ \from{ltmeta.dtx}{2ekernel} % L3 layer module
\from{ltspace.dtx}{2ekernel}
\from{ltlogos.dtx}{2ekernel}
\from{ltfiles.dtx}{2ekernel}
@@ -201,8 +202,10 @@ the system are in the document `cfgguide.tex'.
\from{ltfloat.dtx}{2ekernel}
\from{ltidxglo.dtx}{2ekernel}
\from{ltbibl.dtx}{2ekernel}
+ \from{ltmarks.dtx}{trace,2ekernel} % L3 layer module
\from{ltpage.dtx}{2ekernel}
\from{ltclass.dtx}{2ekernel,tracerollback}
+ \from{ltkeys.dtx}{2ekernel} % L3 layer module
\from{ltfilehook.dtx}{2ekernel} % L3 layer module
\from{ltshipout.dtx}{2ekernel} % L3 layer module
\from{ltoutput.dtx}{2ekernel}
diff --git a/macros/latex/base/graphpap.dtx b/macros/latex/base/graphpap.dtx
index cc9f4da3cb..78bb688f83 100644
--- a/macros/latex/base/graphpap.dtx
+++ b/macros/latex/base/graphpap.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -65,7 +65,7 @@
% The default value of \emph{N} is 10.
% The arguments must all be integers.
%
-% \StopEventually
+% \MaybeStop
%
% First, we define three counters. The first two are defined
% as raw TeX counters since multiplication and division must be
diff --git a/macros/latex/base/graphpap.ins b/macros/latex/base/graphpap.ins
index 65156ad917..d82cbd6670 100644
--- a/macros/latex/base/graphpap.ins
+++ b/macros/latex/base/graphpap.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index fe611d36d6..2caa28232f 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/idx.tex b/macros/latex/base/idx.tex
index 8257396f81..bc0dd71021 100644
--- a/macros/latex/base/idx.tex
+++ b/macros/latex/base/idx.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ifthen.dtx b/macros/latex/base/ifthen.dtx
index acb5cf1967..d36042990d 100644
--- a/macros/latex/base/ifthen.dtx
+++ b/macros/latex/base/ifthen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -42,7 +42,7 @@
%<driver>\ProvidesFile{ifthen.drv}
% \fi
% \ProvidesFile{ifthen.dtx}
- [2020/11/24 v1.1c Standard LaTeX ifthen package (DPC)]
+ [2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)]
%
% \iffalse
%<*driver>
@@ -80,6 +80,7 @@
% \changes{v1.0k}{1995/04/25}{Fix `driver' docstrip guards.}
% \changes{v1.0n}{1997/11/03}{Documentation fix.}
% \changes{v1.0o}{1998/08/17}{Documentation fix.}
+% \changes{v1.1d}{2022/04/13}{Make reference command locally expandable.}
%
% \section{Introduction}
%
@@ -164,7 +165,7 @@
% With \meta{test} as above, repeatedly executes \meta{while clause}
% while the test remains true.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Implementation}
%
@@ -263,6 +264,14 @@
% macros expanding to |T| or |F| has been completely replaced by a
% simpler system using |\iftrue|, which furthermore allows lazy
% evaluation on the second pass.
+% With a LaTeX 2022/06/01 we have to ensure that |\pageref| is expandable.
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2022/06/01}
+ {\def\TE@ref@exp{\let\pageref\@kernel@pageref@exp
+ \let\ref\@kernel@ref@exp}}
+ {\def\TE@ref@exp{\def\@setref##1##2##3{%
+ \ifx##1\relax\z@\else\expandafter##2##1\fi}}}
+% \end{macrocode}
% \begin{macrocode}
\long\def\ifthenelse#1{%
% \end{macrocode}
@@ -295,11 +304,11 @@
% \changes{v1.0l}{1996/03/22}
% {Use \cs{begingroup} not \cs{bgroup} for latex/2105}
% \changes{v1.1a}{1999/01/07}{\cs{isundefined} added for /2824}
+% \changes{v1.1d}{2022/04/13}{changed method to make \cs{pageref} and \cs{ref} locally expandable.}
% \begin{macrocode}
\begingroup
\let\protect\@unexpandable@protect
- \def\@setref##1##2##3{%
- \ifx##1\relax\z@\else\expandafter##2##1\fi}%
+ \TE@ref@exp
\def\value##1{\the\csname c@##1\endcsname}%
\let\equal\TE@equal \let\(\TE@lparen \let\)\TE@rparen
\let\isodd\TE@odd \let\lengthtest\TE@length
diff --git a/macros/latex/base/ifthen.ins b/macros/latex/base/ifthen.ins
index 42e1d3f5d9..88047e94f0 100644
--- a/macros/latex/base/ifthen.ins
+++ b/macros/latex/base/ifthen.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index d080e4da13..fe7349820d 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.dtx b/macros/latex/base/inputenc.dtx
index 1b8691d30f..e056f8ffd7 100644
--- a/macros/latex/base/inputenc.dtx
+++ b/macros/latex/base/inputenc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -379,8 +379,8 @@
% as these commands haven't been available in \textsf{inputenc} distributed
% with older releases of \LaTeX{}.
%
-
-% \StopEventually{}
+%
+% \MaybeStop{}
%
% \section{Announcing the files}
%
diff --git a/macros/latex/base/inputenc.ins b/macros/latex/base/inputenc.ins
index 920a585bff..adacf9efce 100644
--- a/macros/latex/base/inputenc.ins
+++ b/macros/latex/base/inputenc.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index af91c17d2a..274e06fbc0 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/lablst.tex b/macros/latex/base/lablst.tex
index da2d7dbceb..0821b0e4f0 100644
--- a/macros/latex/base/lablst.tex
+++ b/macros/latex/base/lablst.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/lamport-manual.pdf b/macros/latex/base/lamport-manual.pdf
index 2cbc7f31f4..a39bb10333 100644
--- a/macros/latex/base/lamport-manual.pdf
+++ b/macros/latex/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex/base/latex209.dtx b/macros/latex/base/latex209.dtx
index bf92f8ef1e..768f7237a5 100644
--- a/macros/latex/base/latex209.dtx
+++ b/macros/latex/base/latex209.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -166,7 +166,7 @@
% \changes{v0.11}{1994/01/21}{Split package into head and tail.}
% \changes{v0.23}{1994/05/11}{Added bezier option.}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Driver}
%
diff --git a/macros/latex/base/latex209.ins b/macros/latex/base/latex209.ins
index 33ebc2488c..f530347a3c 100644
--- a/macros/latex/base/latex209.ins
+++ b/macros/latex/base/latex209.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/latexchanges.pdf b/macros/latex/base/latexchanges.pdf
deleted file mode 100644
index f606f9abb5..0000000000
--- a/macros/latex/base/latexchanges.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/base/latexchanges.tex b/macros/latex/base/latexchanges.tex
deleted file mode 100644
index 933ea48ddb..0000000000
--- a/macros/latex/base/latexchanges.tex
+++ /dev/null
@@ -1,1025 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2015-2021
-% The LaTeX Project and any individual authors listed elsewhere
-% in this file.
-%
-% This file is part of the LaTeX base system.
-% -------------------------------------------
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% 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.3c or later is part of all distributions of LaTeX
-% version 2008 or later.
-%
-% This file has the LPPL maintenance status "maintained".
-%
-% The list of all files belonging to the LaTeX base distribution is
-% given in the file `manifest.txt'. See also `legal.txt' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-%
-% \fi
-% Filename: latexchanges.tex
-
-\NeedsTeXFormat{LaTeX2e}
-
-\documentclass{ltxguide}
-
-\usepackage[T1]{fontenc}
-
-\usepackage{url}
-
-\title{Changes to the \LaTeXe{} format}
-
-\author{\copyright~Copyright 2015--2021, \LaTeX\ Project Team.\\
- All rights reserved.}
-
-\date{2021-06-08}
-
-% a few commands from doc
-\newcommand\Lpack[1]{\mbox{\textsf{#1}}}
-\newcommand\DescribeMacro[1]{\texttt{\string#1}}
-
-\newcommand\pkg[1]{\texttt{#1}}
-\newcommand\cs[1]{\texttt{\textbackslash #1}}
-
-\makeatletter % -- provide command introduced in new release
- % so this typesets with an old format
-
-\DeclareTextCommandDefault\textcommabelow[1]
- {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
- \hbox{\check@mathfonts\fontsize\ssf@size\z@
- \math@fontsfalse\selectfont,}\hidewidth}\egroup}
-
-\makeatother
-
-
-
-\ifx\href\undefined
- \newcommand\ghissue[1]{github #1}
- \newcommand\gnatsissue[1]{gnats #1}
- \newcommand\ltnewsissue[1]{\LaTeX\ News~#1}
- \newcommand\sxanswer[1]{\url{https://tex.stackexchange.com\slash a\slash #1}}
- \newcommand\sxquestion[1]{\url{https://tex.stackexchange.com\slash q\slash #1}}
-\else
- \newcommand\ghissue[1]{%
- \href{https://github.com/latex3/latex2e/issues/#1}{github #1}}
- \newcommand\gnatsissue[1]{%
- \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/#1}{gnats #1}}
- \newcommand\ltnewsissue[1]{%
- \href{https://www.latex-project.org/news/latex2e-news/ltnews#1.pdf}{\LaTeX\ News~#1}}
- \newcommand\sxanswer[1]{%
- \url{https://tex.stackexchange.com/a/#1}}
- \newcommand\sxquestion[1]{%
- \url{https://tex.stackexchange.com/q/#1}}
-\fi
-
-
-\setcounter{tocdepth}{1} % don't show subsections
-
-
-\begin{document}
-
-\maketitle
-
-\begin{abstract}
-This document describes changes that were made to the
-\LaTeX\ format since the 2014-05-01 \LaTeX\ releases.
-
-
-As announced in \ltnewsissue{22}, the 2015 \LaTeX{} release adopts a new
-policy. Improvements and bug fixes will be made to the format sources,
-with the \Lpack{latexrelease} package being available to revert
-changes to use definitions from an earlier format.
-
-As a summary of changes for a main release will always be available in
-\LaTeX\ News, detailed changes are not repeated in this document,
-but changes in any patch releases will be listed in more
-detail here.
-
-More detailed change logs are available as
-\texttt{changes.txt} in the base distribution, and full code
- differences may be browsed via the code repository on GitHub
-see for example
-\url{https://github.com/latex3/latex2e/commits/master}.
-\end{abstract}
-
-\tableofcontents
-
-\newpage
-
-%\section{Introduction}
-
-\section{Changes introduced in 2021-06-01 patch~1}
-
-A further refinement to the handling of ``raw'' option lists added
-in the last release, see \ghissue{508}.
-
-Fixes an issue with rollback when \pkg{latexrelease} is loaded by some
-other package (as done for \texttt{platex} (\ghissue{577}).
-
-First aid for \pkg{ulem} and \pkg{varwidth} got added to help them
-along until they get corrected. \pkg{ulem} has a problem with the
-improved definition of \cs{hspace} and \pkg{varwidth} chokes on a
-newly introduced glue item in vertical lists, which is needed for
-paragraph hook handling (\ghissue{583}).
-
-
-\section{Changes introduced in 2021-06-01}
-
-The focus of this release is to provide further important building
-blocks for the future production of reliable tagged PDF output. Many
-other improvements have been made. Please see \ltnewsissue{33} for an
-overview of the new features and the change log in
-\texttt{changes.txt} for a more detailed list of individual changes.
-
-\section{Changes introduced in 2020-10-01 patch~4}
-
-This patch fixed two bugs in the hook management: if debugging for the
-L3 programming layer was turned on it reported inconsistent use of
-local/global variables. This was a spurious warning but nevertheless
-disconcerting (\ghissue{463}). The other bug was more serious, in some
-situations a wrong value of \verb=\CurrentFile= inside of file-related hooks
-could lead to errors (\ghissue{464}).
-
-We also added the documentation file \texttt{usrguide3.pdf} which
-will become the main home for documenting new features of \LaTeX. At
-this point in time it covers the \Lpack{xparse} functionality that has
-been added to the kernel.
-
-\section{Changes introduced in 2020-10-01 patch~3}
-
-This patch fixed some rollback issues that prevented successful
-rollback to other release levels in some cases. It also fixed an issue
-with file hooks involving files with explicit paths (\ghissue{422}).
-
-One important change was to handle hook declarations done in the
-document preamble in a special way, e.g., those done with
-\verb=\AtBeginDocument=. They are now always executed last and are not
-subject to the normal code sorting for hooks, because they are nearly always
-needed to overwrite earlier settings made in packages.
-
-Finally, the NFSS series handling was slightly changed to
-automatically drop surplus ``\texttt{m}''s from series specifications
-when needed (and warn about them when encountered), e.g.,
-``\texttt{mc}'' automatically becomes ``\texttt{c}'' which is the
-official NFSS name for a \emph{medium compact} series (\ghissue{453}).
-This was done to improve the fix in 2020-02-02 PL~5.
-
-\section{Changes introduced in 2020-10-01 patch~2}
-
-This patch fixed the passing of options to packages and classes when
-they are stored in a special place (denoted by \verb=\input@path=)
-instead of their normal location (\ghissue{414}). In that case the
-options got lost.
-
-\section{Changes introduced in 2020-10-01 patch~1}
-
-This patch fixed a file handling issue: to allow for spaces in file
-names quotes were used but this upsets Bib\TeX{} (\ghissue{400}). In
-addition, two rollback issues got corrected.
-
-\section{Changes introduced in 2020-10-01}
-
-Major enhancements in this release include pre-loading of the
-\Lpack{xparse} package for producing document-level commands with more
-complicated argument signatures and the new hook management system for
-\LaTeX{} documented in \texttt{lthooks-doc.pdf},
-\texttt{ltfilehook-doc.pdf} and \texttt{ltshipout-doc.pdf}.
-
-In addition there have been many smaller fixes and enhancements.
-Please see \ltnewsissue{32} for an overview of the new features and
-the change log in \texttt{changes.txt} for a more detailed list of
-individual changes.
-
-\section{Changes introduced in 2020-02-02 patch~5}
-
-The patch~4 dropped a bit too much in certain situations, e.g., it
-changed a series value of \texttt{semibold} (as used by
-\texttt{autoinst}) to \texttt{seibold}, rendering it useless. So we
-now only correct series values if they are a member of the
-following list: \texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm},
-\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm},
-\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx},
-\texttt{mx}, \texttt{mex} or \texttt{mux}. Here we assume that people
-intended to follow the NFSS convention but somehow got it wrong. So we
-drop one ``m'' and also add a warning that the
-\verb=\DeclareFontShape= declaration in question should be updated
-(\ghissue{293}).
-
-
-\section{Changes introduced in 2020-02-02 patch~4}
-
-In some cases the \texttt{filecontents} environment was opening the
-file for writing without quoting it, so that files with spaces failed
-(\ghissue{284}).
-
-Ensure that \verb=\DeclareFontShape= drops surplus ``m'' in situations
-where an \texttt{.fd} incorrectly specifies \texttt{mc} instead of
-\texttt{c}, etc.\ (\ghissue{289}).
-
-\section{Changes introduced in 2020-02-02 patch~3}
-
-Support the following scenario:
-\begin{verbatim}
-\fontfamily{ptm}\selectfont text \textbf{\sffamily bold sans text}
-\end{verbatim}
-The default bold series for \texttt{ptm} is \texttt{b} so
-\verb=\textbf= switches to that. The \verb=\sffamily= then tried to
-find \texttt{OT1/cmss/b/n} which doesn't exist instead of first
-altering the series default to use \texttt{bx} as needed for Computer
-Modern Sans Serif. This has now been corrected (\ghissue{277}).
-
-
-\section{Changes introduced in 2020-02-02 patch~2}
-
-Correct \verb=\capitalacute=, etc.\ so that they work in
-\texttt{tabbing} (\ghissue{271}). Provide \verb=\@defaultfamilyhook= to
-support CJK packages (\ghissue{269}). Provide a list of \texttt{fontenc}
-loads with their options in \verb=\@fontenc@load@list= so that Babel
-can determine the right \verb=\latinencoding= value (\ghissue{273}).
-
-
-\section{Changes introduced in 2020-02-02 patch~1}
-
-Fixed a misspelled command name that caused trouble (\ghissue{264}). Make
-\texttt{textcomp} package issue only info messages about glyph
-substitutions (\ghissue{262}) and warn if it attempts to run in an old format (\ghissue{260}).
-
-\section{Changes introduced in 2020-02-02}
-
-Major enhancements in this release include pre-loading \Lpack{expl3}
-to improve startup times, especially with Lua\TeX\ and Xe\TeX, and
-extra features in the font selection mechanism. Please see
-\ltnewsissue{31} for an overview of the new features and the change
-log in \texttt{changes.txt} for a more detailed list of individual
-changes.
-
-
-\section{Changes introduced in 2019-10-01 patch~3}
-
-Further fixes to the handling of filenames, expand macros (and
-\verb|\jobname| \emph{before} removing \verb|"|, not after.
-
-\section{Changes introduced in 2019-10-01 patch~2}
-
-Further fixes to the handling of filenames, \ghissue{204}: non-ascii
-filenames and filenames with spaces and multiple dots should now work
-in \verb|\includegraphics|.
-
-Reclassify some luatex callbacks. Other fixes for Issues raised:
-\ghissue{198}, \ghissue{201}, \ghissue{202}, \ghissue{205}.
-
-\section{Changes introduced in 2019-10-01 patch~1}
-
-Adjustments to \verb|\set@curr@file|, and \verb|\@extracolsep|.
-
-Added missing \verb=\else= branch in \texttt{nfssfont} so that
-\verb=\action= is executed if provided.
-
-\section{Changes introduced in 2019-10-01}
-
-Introduced \LaTeX\texttt{-dev} formats for pre testing future \LaTeX{}
-releases. Now there's a \texttt{latex-base-dev} package on CTAN which
-contains a pre-release of the \LaTeXe{} kernel and both \TeX Live and
-MiK\TeX{} include the standard \LaTeX{} executables (\texttt{pdflatex},
-\texttt{lualatex}, etc.) with \texttt{-dev} appended, which use the
-pre-release format.
-
-The handling of Unicode characters was improved by making them safe
-inside \verb|\ref|s and \verb|\label|s, by using \verb|\ifincsname|
-to make these characters safe in these contexts (\ghissue{95}).
-
-In line with the better handling of Unicode characters, file names
-can now contain any Unicode character plus spaces, as these cases
-are now correctly handled by the kernel.
-
-An optional argument was added to the \texttt{filecontents} environment,
-to which a comma-separated list of options can be given. The options
-include \texttt{overwrite} (or \texttt{force}), \texttt{nosearch}, and
-\texttt{noheader} (which has the same effect as the starred form of the
-environment). The environment is now allowed anywhere in the document.
-
-A plethora of \LaTeX{} commands was made robust so that fewer
-\verb|\protect| are needed when using some commands in moving arguments.
-There are a few border cases where it's tricker to make the command
-robust or where it's not worth it to do so, but most reasonable use
-cases are covered. The most notable change was \verb|\begin| and
-\verb|\end|, which are now robust and won't break when used in moving
-arguments.
-
-An extra \verb|\hskip 1sp| was added to \verb|c|-column table cells to
-protect against the presence of an \verb|\unskip| in the table cell
-(\ghissue{102}).
-
-\texttt{U+012F} which is ``i with ogonek'' should produce an
-``i'' and not a ``dotless i''. This has been corrected
-(\ghissue{122}).
-
-The Unicode slots \texttt{27E8} and \texttt{27E9} have been mapped to
-\verb|textlangle| and \verb|textrangle| which is the recommended mapping
-(\ghissue{110}).
-
-Basic ligatures (ff, fi, fl, ffi, ffl, ft, st) can now be input as a
-single unicode character in pdf\TeX, which is useful when copy-pasting
-(\ghissue{154}).
-
-\verb|\InputIfFileExists{foo}{\input{bar}}{}|
-did not load the files \texttt{foo.tex} and \texttt{bar.tex} but
-would load \texttt{bar.tex} twice. This has been corrected (\ghissue{109}).
-
-The \textsf{fncylab} and \textsf{varioref} packages changed \LaTeX's internal
-counter prefix commands \verb|p@...| so that they would take the counter
-value as an argument instead of just acting as a prefix to them. These
-packages also provided the \verb|\labelformat| macro to change the prefix
-macro and \verb|\Ref| so that using counters defined that way in the
-beginning of sentences would have the proper capitalization. These features
-were added to the \LaTeXe{} kernel.
-
-The kernel now says ``Trying to load\ldots''
-instead of ``Try loading \ldots'' in one of its informal
-messages to match style of similar messages (\ghissue{107}).
-
-\verb|\DeclareErrorFont| would change the font size to 10\,pt which, when
-used in the wrong place, would make incorrect font settings in the document.
-This has now been fixed (\gnatsissue{4399}).
-
-The default action of the file \texttt{nfssfont.tex} was set to produce a
-font table, so that one can simply hit enter instead of having to write
-\verb=\table\bye=.
-
-The \LaTeX{} kernel now provides dummy (empty) definitions for the two
-commands \verb|\conditionally@traceoff| and
-\verb|\conditionally@traceon| from the \texttt{trace} package so they
-can be used by package developers without worrying about them being
-defined or not (\ghissue{164}).
-
-
-
-
-
-\section{Changes introduced in 2018-12-01}
-
-Further additions to the characters supported by default in UTF-8.
-The commands \verb|\guillemetleft| and \verb|\guillemetright| are
-provided as alias for the names based on the Adobe font names
-(\ghissue{65}).
-
-The use of potrusion in tables of contents is suppressed by default,
-see \sxquestion{172785}.
-
-The handling of visible space in verbatim was adjusted for
-\ghissue{69} and \ghissue{70}.
-
-Spaces are removed from the argument passed to BiBTeX, \ghissue{88}.
-
-New commands \verb|\Hwithstroke| and \verb|\hwithstroke| added to T1 encoding support.
-
-The internal box structure for floats is adjusted to preserve box
-levels of split hyperlinks, avoiding a fatal pdftex error. \ghissue{94}.
-
-
-\section{Changes introduced in 2018-04-01 patch~5}
-Improved support for non ASCII filenames on the command line on
-filesystems using legacy encodings.
-
-Adjusted the new package rollback code so that some edge cases where rollback
-can not be guaranteed become a warning not an error.
-
-\section{Changes introduced in 2018-04-01 patch~4}
-No changes to the format, but \texttt{docstrip} adjusted so that non-ASCII
-\texttt{.ins} files work with the new UTF-8 defaults.
-
-\section{Changes introduced in 2018-04-01 patch~3}
-Additional adjustments for GitHub issues \ghissue{34} and \ghissue{38}, adjustment to the
-location of some documentation files, such as \texttt{source2e.tex} to
-be installed in the documentation sources not the default \TeX\ input
-tree.
-
-
-\section{Changes introduced in 2018-04-01 patch~2}
-Additional adjustments for GitHub issues \ghissue{32} and \ghissue{33}.
-
-\section{Changes introduced in 2018-04-01 patch~1}
-Make \verb|\UseRawInputEncoding| and \Lpack{latexrelease} reset \verb|\inputencodingname|
-when disabling the UTF-8 input handling.
-
-\section{Changes introduced in 2018-04-01}
-Further details of changes at this release are given in \ltnewsissue{28}, but in brief
-the main changes are as listed below.
-
-The default encoding for files has been changed to UTF-8.
-
-A new possibility to refer to older versions of packages has been added.
-
-New commands previously available in \Lpack{remreset} and
-\Lpack{chngcntr} packages for controlling counters have been added.
-
-The definition of \verb|\@ifundefined| has been refined to use the e-\TeX \verb|\ifcsname|
-primitive when available, and to avoid defining the command being tested to be \verb|\relax|
-in the case that it was previously undefined.
-
-\section{Changes introduced in 2017-04-15}
-Optionally, \LaTeX{} format and package dates may use ISO style dates with
-\texttt{-} rather than \texttt{/}.
-
-For Unicode \TeX{}s, made further adjustments to the composite accent
-code in \texttt{tuenc.def}, and further updates tracking changes in
-Lua\TeX, now at 1.04.
-
-Previously defining an encoding-specific composite with an undeclared
-accent (or an accent declared later) gave no error, but did nothing useful.
-\LaTeX\ will now detect this and give the accent command a default definition
-as an error, allowing the declared composite to work as intended.
-
-The definition of \verb|\-| is adjusted to match the comments in
-\gnatsissue{3855} to accommodate non standard settings of \verb|\hyphenchar|.
-
-In parboxes and similar settings, \verb|\lineskiplimit| is now
-reset (to the existing default value, \verb|\normallineskiplimit|).
-See \sxanswer{359934}.
-
- The code for \verb|\newpage| has been adjusted to add a test on the value of
-\verb|\prevdepth| so that the depth of the last line is preserved in
-forced page breaks.
-
-\section{Changes introduced in 2017/01/01 patch~3}
-Emergency patch to correct a typo in a change introduced in patch~2.
-
-\section{Changes introduced in 2017/01/01 patch~2}
-More adjustments for TU encoding, allowing for characters missing in
-common system fonts. Additional \texttt{fd} files
-for Latin Modern variants are included in the documented sources.
-
-\section{Changes introduced in 2017/01/01 patch~1}
-Fixes to TU encoding definitions for Lua\TeX\ and Xe\TeX.
-
-\section{Changes introduced in 2017/01/01}
-
-A new test is added during format making that e\TeX\ extensions are
-available. As noted in \LaTeX\ news, e\TeX\ will now be required to
-build \LaTeX.
-
-Further updates tracking changes for Lua\TeX~1.0.
-
-The definition of \verb|\showhyphens| is changed in formats built
-with Xe\TeX, as the original version, inherited from plain \TeX\ does
-not work with Xe-\TeX.
-
-Changes to the default encoding used by Lua\TeX\ and Xe\TeX\ formats to
-be TU (Unicode) rather than OT1 (7 bit legacy \TeX\ encoding).
-
-\section{Changes introduced in 2016/03/31 patch~3}
-Fixes to \verb|\newinsert| and \verb|\extrafloats|.
-
-\section{Changes introduced in 2016/03/31 patch~2}
-Adjustments to \verb|\c{g}| in OT1 encoding.
-
-\section{Changes introduced in 2016/03/31 patch~1}
-Adjust the upper limit for Character Class allocation in Xe-\TeX\ to
-4096 to match a change in Xe-\TeX.
-
-\section{Changes introduced in 2016/03/31}
-Modify picture mode as suggested in latex/4452 to avoid leaders of
-almost zero length.
-
-Modify the checks in \verb|\DeclareMathSymbol| and related commands
-so that they do not give errors with new Lua\TeX\ releases.
-
-\section{Changes introduced in 2016/02/01}
-Adjustments to Lua\TeX\ support to match changes to the Lua\TeX\ engine,
-and to the character class allocation in Xe\TeX.
-
-Load Unicode data from new generic \texttt{unicode-data} distribution.
-
-\section{Changes introduced in 2015/10/01 patch~2}
-
-This release fixes the behavior of the allocation mechanism if the switch
-from the standard to extended pool takes place within a group.
-
-\section{Changes introduced in 2015/10/01 patch~1}
-This release allows \Lpack{latexrelease} to revert the
-Lua\TeX{}-specific
-changes, in particular fixing an incorrect date in part of the mechanism and
-adding a method to disable callback management entirely.
-
-\section{Changes introduced in \LaTeX\ 2015/10/01}
-
-\subsection{LuaTeX allocation}
-Almost all changes at this release relate to incorporating allocation macros for luatex into the format
-as done for etex and xetex in 2015/01/01. For details see |ltluatex.dtx| or \ltnewsissue{22}.
-|ltluatex.dtx| now forms a new chapter (N) in the documented sources, |source2e.tex|.
-
-
-\subsection{Increased number of floats}
-The default float list has been increased from 18 to 52 registers if
-e\TeX\ is available.
-The list can be increased further using |\extrafloats| however this
-default allocation uses classic registers below 256 so the registers are
-also available for |\newinsert| as described below.
-
-\subsection{Improved \texttt{\textbackslash newinsert}}
-The command |\newinsert| has been extended to take registers from the lists of free float
-registers once the classic register allocation is used up. This should make it highly unlikely
-to get ``no room'' errors on register allocation assuming the format is used with
-an e-\TeX\ based \TeX\ engine.
-
-\subsection{New accent, \texttt{\textbackslash textcommabelow} (pr/4414)}
-The command |\textcommabelow| has been added. This is mainly intended for Romanian letters
-\textcommabelow{S}\,\textcommabelow{s}\,\textcommabelow{T}\,\textcommabelow{t}.
-
-\subsection{Unicode 8}
-The file |unicode-letters.def| used to initialize character data in
-Unicode \TeX\ variants has been regenerated from data files updated
-to Unicode~8.
-
-\section{Changes introduced in 2015/01/01 patch~2}
-There were no changes to the format at this release, but the sources were fixed to fix bug latex/4434
-affecting bottom float positioning if the \Lpack{latexrelease} package was used.
-
-\section{Changes introduced in 2015/01/01 patch~1}
-This release re-introduces the ``Patch Level'' scheme for identifying
-releases between main ``dated'' releases. Early \LaTeXe\ releases
-included a mechanism whereby updates could be provided by a
-\emph{patch
- file}. This was mainly intended to allow updates to be made without
-downloading the full sources again, which was an important
-consideration with download speeds and costs at the time.
-
-The new mechanism incorporates any changes directly into the sources,
-but having the patch level identified in the banner allows the
-\LaTeX\ release to be identified, even if (as in this case) most of the
-changes do not affect the format but affect other base packages such
-as \Lpack{latexrelease} and \Lpack{inputenc}. The patch level is shown
-in the banner at the start of the job, but does not affect the date
-handling of the |\IncludeInRelease| mechanism.
-
-Apart from re-arranging the version banner, the only change in the
-format is that |\newtoks| was accidentally defined twice, using the
-old and new allocation scheme described in Section \ref{e@alloc}.
-The old definition is now only in the \Lpack{latexrelease} package,
-for use when emulating old formats.
-
-
-
-
-\section
-[Changes between \LaTeX\ releases 2014/05/01 and 2015/01/01]
-{Changes between \LaTeX\ releases 2014/05/01 and 2015/01/01\footnote{Much of this text
-is taken from \Lpack{fixltx2e} package which was formerly used to make such changes available separately.}}
-
-\subsection{Support for \LaTeX\ version changes}
-\DescribeMacro{\includeInRelease}\arg{date}\oarg{date}\arg{label}\arg{message}\arg{code}
-
-\smallskip
-
-The |\includeInRelease| command has been added to support backward and
-forward compatibility for the \LaTeX\ format. It supports the
-declaration of conditional code that can be loaded based on options
-given to the \Lpack{latexrelease} package. Its use is described in
-detail in the \Lpack{latexrelease} package documentation.
-
-\subsection{New Allocation Code\label{e@alloc}}
-Previously |\newcount| and related commands were based on classic TeX
-and only allocated in the range 0--255. This was extended (in
-different ways) for e-\TeX\ in the |etex| package and in the
-|xelatex.ini| and |lualatex.ini| files used in those formats. Related
-to this the number of boxes allocated to store floats was
-limited. This was extended to a certain extent in the |morefloats|
-package (by Don Hosek and H.-Martin Muench) but the new allocation
-incorporates float allocation directly and supports much larger float
-lists using the extended registers.
-
-The new code allocates registers in the full extended range (
-$2^{15}-1$ for etex and xelatex, $2^{16}-1$ for lualatex.
-In addition a new command |\extrafloats| is provided.
-
-\DescribeMacro{\extrafloats}\arg{number}
-\smallskip
-
-This allocates additional registers for the \LaTeX\ float system to
-hold figures and tables etc. Similar functionality has been
-available via the \Lpack{morefloats} package but this is a different
-implementation using extended e-\TeX\ registers when available so
-allows many more registers to be reserved for floats as they are
-allocated from a pool of 32 or 64 thousand rather than 256 registers,
-depending on the engine in use.
-
-\DescribeMacro{\newmarks}\arg{command}
-\smallskip
-
-e-\TeX\ only, previously available via the \Lpack{etex} package.
-Allocates commands to use the extended e-\TeX\ mark mechanism.
-
-\DescribeMacro{\newXeTeXintercharclass}\arg{command}
-\smallskip
-
-Xe-\TeX\ only, previously in the Xe-\LaTeX\ format, but added via
-|xelatex.ini| not part of the core release.
-Allocates commands to use the Xe-\TeX\ character class mechanism.
-
-
-\subsection{e-\TeX\ tracing if available}
-|\loggingall| (Usually used via |\tracingall|) is extended to enable
-additional e-\TeX\ tracing if e-\TeX\ is available. (|\tracingall|
-extension has been available as part of the |etex| package previously).
-
-Also based on code from the |etex| package, a command |\tracingnone|
-is added to reverse the effects of |\tracingall| and turn off all primitive
-\TeX\ tracing. A new command |\hideoutput| has been added which resets the
-tracing parameters set by |\showoutput|.
-
-
-
-
-\subsection{\texttt{\textbackslash textsubscript} not defined in
- latex.ltx (pr/3492)}
-
-\begin{verbatim}
->>Number: 3492
->>Category: latex
->>Synopsis: \textsubscript not defined in latex.ltx
->>Arrival-Date: Tue Jan 14 23:01:00 CET 2003
->>Originator: Ionel Mugurel Ciobica
-
-I use \textsubscript much more often than \textsuperscript, and
-\textsubscript it is not defined in latex.ltx. Could you please
-consider including the definition of \textsubscript in the latex.ltx
-for the next versions of LaTeX. Thank you.
-\end{verbatim}
-
-\subsection{\texttt{\textbackslash @} discards spaces when moving
- (pr/3039)}
-
-\begin{verbatim}
->>Number: 3039
->>Category: latex
->>Synopsis: \@ discards spaces when moving
->>Arrival-Date: Sat May 22 09:01:06 1999
->>Originator: Donald Arseneau
->>Description:
-The \@ command expands to \spacefactor\@m in auxiliary files,
-which then ignores following spaces when it is reprocessed.
-\end{verbatim}
-
-\subsection{1-col fig can come before earlier 2-col fig
- (pr/2346)}
-
-\begin{verbatim}
->>Number: 2346
->>Category: latex
->>Synopsis: 2-col: 1-col fig can come before earlier 2-col fig
->>Arrival-Date: Wed Dec 18 15:41:07 1996
->>Originator: bil kleb
->>Description:
-as documented in Lamport's book, p. 198, concerning figure
-placement, "a figure will not be printed before an earlier
-figure, and a table will not be printed before an earlier
-table." however, there is a footnote stating, "However,
-in two-column page style, a single-column figure can come before
-an earlier double-column figure, and vice versa."
-
-This twocolumn behavior is undesirable---at least by me and
-most professional organizations i publish in. ed snyzter developed
-a hack fix for 2.09 several years ago which links the two
-counters, but i have not run across a similar "fix" for 2e...
-\end{verbatim}
-
-Originally fixed in package \Lpack{fix2col} which was merged into
-this package. Documentation and code from this package have been
-merged into this file.
-
-\subsubsection{Notes on the Implementation Strategy}
-
-The standard output routine maintains two lists of floats that have
-been `deferred' for later consideration. One list for single column
-floats, and one for double column floats (which are always
-immediately put onto their deferred list). This mechanism means
-that \LaTeX\ `knows' which type of float is contained in each box
-by the list that it is processing, but having two lists means
-that there is no mechanism for preserving the order between the
-floats in each list.
-
-The solution to this problem consists of two small changes to
-the output routine.
-
-Firstly, abandon the `double column float list' |\@dbldeferlist|
-and change every command where it is used so that instead the
-same |\@deferlist| is used as for single column floats.
-That one change ensures that double and single column floats
-stay in the same sequence, but as \LaTeX\ no longer `knows'
-whether a float is double or single column, it will happily
-insert a double float into a single column, overprinting the
-other column, or the margin.
-
-The second change is to provide an alternative mechanism for
-recording the two column floats. \LaTeX\ already has a compact
-mechanism for recording float information, an integer count register
-assigned to each float records information about the `type' of float
-`figure', `table' and the position information `htp' etc.
-
-The type information is stored in the `high' bits, one bit position
-(above `32') allocated to each float type. The `low' bits store
-information about the allowed positions, one bit each allocated for
-|h t b p|. In the \LaTeX2.09 system, the bit corresponding to `16'
-formed a `boundary' between these two sets of information, and it
-was never actually used by the system. Ed Sznyter's
-\Lpack{fixfloats} package not unreasonably used this position to
-store the double column information, setting the bit for double
-column floats. Then at each point in the output routine at which a
-float is committed to a certain region, an additional check must be
-made to check that the float is (or is not) double column. If it
-spans the wrong number of columns it is deferred rather than being
-added.
-
-Unfortunately the bit `16' is not available in \LaTeXe. It is used
-to encode the extra float position possibility `|!|' that was added
-in that system. It would be possible to use position `32' and to
-move the flags for `table', `figure',\ldots\ up one position, to
-start at 64, but this would mean that in principle one less float
-type would be supported, and more importantly is likely to break
-any other packages that assume anything about the output routine
-internals. So here I instead use another mechanism for flagging
-double column floats: By default all floats have depth 0pt.
-This package arranges that double column ones have depth 1sp.
-This information may then be used in the same manner as in
-the \Lpack{fixfloats} package, to defer any floats that are not of
-the correct column spanning type.
-
-
-
-\subsection{Infinite glue found (pr/4023 and pr/2346)}
-
-The fix for pr/2346 did not work as intended when used in conjunction
-with |\enlargethispage| as the latter introduced an infinite negative
-glue at the bottom of the page. That in turn make a |\vsplit|
-operation to get at the column marks invalid.
-
-\subsection{Wrong header for twocolumn (pr/2613)}
-
-\begin{verbatim}
->>Number: 2613
->>Category: latex
->>Synopsis: wrong headline for twocolumn
->>Arrival-Date: Mon Sep 22 16:41:09 1997
->>Originator: Daniel Reischert
->>Description:
-When setting the document in two columns
-the headline shows the top mark of the second column,
-but it should show the top mark of the first column.
-\end{verbatim}
-
-Originally fixed in package \Lpack{fix2col} which was merged into
-this package. Documentation and code from this package have been
-merged into this file.
-
-\subsubsection{Notes on the Implementation Strategy}
-
-The standard \LaTeX\ twocolumn system works internally by making
-each column a separate `page' that is passed independently to \TeX's
-page breaker. (Unlike say the \Lpack{multicol} package, where all
-columns are gathered together and then split into columns later,
-using |\vsplit|.) This means that the primitive \TeX\ marks that are
-normally used for header information, are globally reset after the
-first column. By default \LaTeX\ does nothing about this.
-A good solution is provided by Piet van Oostrum (building on earlier
-work of Joe Pallas) in his \Lpack{fixmarks} package.
-
-After the first column box has been collected the mark information
-for that box is saved, so that any |\firstmark| can be
-`artificially' used to set the page-level marks after the second
-column has been collected. (The second column |\firstmark| is not
-normally required.) Unfortunately \TeX\ does not provide a direct
-way of knowing if any marks are in the page, |\firstmark| always has a
-value from previous pages, even if there is no mark in this page.
-The solution is to make a copy of the box and then |\vsplit| it
-so that any marks show up as |\splitfirstmark|.
-
-The use of |\vsplit| does mean that the output routine will globally
-change the value of |\splitfirstmark| and
-|\splitbotmark|. The \Lpack{fixmarks} package goes to some trouble
-to save and restore these values so that the output routine does
-\emph{not} change the values. This part of \Lpack{fixmarks} is not
-copied here as it is quite costly (having to be run on every page) and
-there is no reason why anyone writing code using |\vsplit| should
-allow the output routine to be triggered before the split marks have
-been accessed.
-
-
-
-\subsection{\texttt{\textbackslash setlength} produces error if
- used with registers like \texttt{\textbackslash dimen0} (pr/3066)}
-
-\begin{verbatim}
->>Number: 3066
->>Category: latex
->>Synopsis: \setlength{\dimen0}{10pt}
->>Arrival-Date: Tue Jul 6 15:01:06 1999
->>Originator: Heiko Oberdiek
->>Description:
-The current implementation of \setlength causes an error,
-because the length specification isn't terminated properly.
-More safe:
-\def\setlength#1#2{#1=#2\relax}
-\end{verbatim}
-
-\subsection{Fewer fragile commands}
-
-\begin{verbatim}
->>Number: 3816
->>Category: latex
->>Synopsis: Argument of \@sect has an extra }.
->>Arrival-Date: Sat Oct 22 23:11:01 +0200 2005
->>Originator: Susanne Wunsch
-
-Use of a \raisebox in \section{} produces the error message
-mentioned in the subject.
-
-PR latex/1738 described a similar problem, which has been solved
-10 years ago. Protecting the \raisebox with \protect solved my
-problem as well, but wouldn't it make sense to have a similar fix
-as in the PR?
-
-It is particularly confusing, that an unprotected \raisebox in a
-\section*-environment works fine, while in a \section-environment
-produces error.
-\end{verbatim}
-
-While not technically a bug, in this day and age there are few
-reasons why commands taking optional arguments should not be robust.
-
-\subsubsection{Notes on the implementation strategy}
-
-Rather than changing the kernel macros to be robust, we have decided
-to add the macro \DescribeMacro{\MakeRobust}|\MakeRobust| in
-\Lpack{fixltx2e} so that users can easily turn fragile macros into
-robust ones. A macro |\foo| is made robust by doing the simple
-|\MakeRobust{\foo}|. \Lpack{fixltx2e} makes the following kernel
-macros robust: |\(|, |\)|, |\[|, |\]|,
- |\makebox|, |\savebox|,
-|\framebox|, |\parbox|, |\rule| and |\raisebox|.
-
-\ldots TODO \ldots fleqn vesion of |\[\]|
-
-\subsection{\texttt{\textbackslash addpenalty} ruins flush-bottom (pr/3073)}
-
-\begin{verbatim}
->>Number: 3073
->>Category: latex
->>Synopsis: \addpenalty ruins flush-bottom
->>Arrival-Date: Sat Jul 17 05:11:05 1999
->>Originator: Donald Arseneau
->>Description:
-Just to keep in mind for further development eh?
-A page break at an \addpenalty after \vspace does *not*
-give a flush-bottom page. (The intent of \addpenalty is
-apparently just to preserve the flush bottom by putting
-the breakpoint `above' the skip.)
-\end{verbatim}
-
-\subsection{Within counters only reset next level down (pr4393)}
-
-This is actually implicitly documented behavior in the \LaTeX{}
-Manual that states that |\stepcounter| resets all counters marked
-``within''. However it means that if, for example, theorems are
-numbered within sections and you start a new chapter in a book, the
-section counter is reset to zero but the theorem counter is not
-until the first section appears. Thus a theorem directly within the
-chapter body (without a new section) would show an incremented
-number relative to the last theorem of the previous chapter.
-
-
-For this reason we are now resetting all levels of within in one go
-even if that means that some of these resets may happen several times
-unnecessarily.
-
-
-\subsection{Check the optional arguments of floats}
-
-By default LaTeX silently ignores unknown letters in the optional
-arguments of floats. |\begin{figure}[tB]| the |B| is ignored so it
-acts like |\begin{figure}[t]| However |\begin{figure}[B]| does
-\emph{not} act like |\begin{figure}[]| as the check for an empty
-argument, or unsupplied argument, is earlier. |[]| causes the
-default float placement to be used, but |[B]| means that \emph{no}
-float area is allowed and so the float will not be placed until the
-next |\clearpage| or end of document, no warning is given.
-
-This package adds a check on each letter, and if it not one of
-|!tbhp| then an error is given and the code acts as if |p| had been
-used, so that the float may be placed somewhere.
-
-\subsection{\texttt{\textbackslash DeclareMathSizes} only take pts.
- (pr/3693)}
-
-\begin{verbatim}
->>Number: 3693
->>Category: latex
->>Synopsis: \DeclareMathSizes only take pts.
->>Arrival-Date: Fri Jun 11 16:21:00 CEST 2004
->>Originator: Morten Hoegholm
-
-The last three arguments of \@DeclareMathSizes cannot take a dimension
-as argument, making it inconsistent with the rest of the font changing
-commands and itself, as the second argument can take a dimension
-specification.
-\end{verbatim}
-
-\subsection{No hyphenation in first word after float environment (pr/3498)}
-
-\begin{verbatim}
->>Number: 3498
->>Category: latex
->>Synopsis: No hyphenation in first word after float environment
->>Arrival-Date: Thu Jan 30 13:21:00 CET 2003
->>Originator: Harald Harders
-
-If a float environment (figure, table) is written within a paragraph,
-the first word after the environment is not hyphenated.
-\end{verbatim}
-
-\subsection{\texttt{\textbackslash fnsymbol} should use text symbols
- (pr/3400)}
-
-\begin{verbatim}
->>Number: 3400
->>Category: latex
->>Synopsis: \fnsymbol should use text symbols if possible
->>Arrival-Date: Fri Jan 04 20:41:00 CET 2002
->>Originator: Walter Schmidt
-
-The \fnsymbol command can be used in both text and math
-mode. The symbols produced are, however, always taken from
-the math fonts. As a result, they may not match the text
-fonts, even if the symbols are actually available, for
-instance from the TS1 encoding. Since \fnsymbol is
-primarily used for footnotes in text, this should be fixed,
-IMO.
-\end{verbatim}
-
-
-
-
-
-\subsection{\texttt{\textbackslash footnotemark}[x] crashes with fixltx2e.sty
- (pr/3752)}
-
-\begin{verbatim}
->>Number: 3752
->>Category: tools
->>Synopsis: feature \footnotemark[x] crashes with fixltx2e.sty
->>Arrival-Date: Fri Dec 17 10:11:00 +0100 2004
->>Originator: Stefan Pofahl
-
- If I use /fnsymbol together with fixltx2e.sty I can not use
- optional parameter [num]
- \footnotemark[1] is not showing the mark number 1 but
- the mark \value{footnote}.
-\end{verbatim}
-This bug was related to pr/3400, where |\@fnsymbol| was made robust.
-
-\subsubsection{Notes on the implementation strategy}
-
-Pr/3400 made |\@fnsymbol| decide between text-mode and math-mode,
-which requires a certain level of robustness somewhere as the
-decision between text and math must be made at typesetting time and
-not when inside |\protected@edef| or similar commands. One way of
-dealing with this is to make sure the value seen by |\@fnsymbol| is
-a fully expanded number, which could be handled by code such as
-\begin{verbatim}
-\def\fnsymbol#1{\expandafter\@fnsymbol
- \expandafter{\the\csname c@#1\endcsname}}
-\end{verbatim}
-This would be a good solution if everybody used the high level
-commands only by writing code like |\fnsymbol{footnote}|. Unfortunately
-many classes (including the standard classes) and packages use the
-internal forms directly as in |\@fnsymbol\c@footnote| so the easy
-solution of changing |\fnsymbol| would break code that had worked for
-the past 20~years.
-
-Therefore the implementation here makes |\@fnsymbol| itself a
-non-robust command again and instead uses a new robust command
-\DescribeMacro{\TextOrMath}|\TextOrMath|, which will take care of
-typesetting either the math or the text symbol. In order to do so,
-we face an age old problem and unsolvable problem in \TeX: A
-reliable test for math mode that doesn't destroy
-kerning. Fortunately this problem can be solved when using e\TeX\ so
-if you use this as engine for your \LaTeX\ format, as recommended by
-the \LaTeX\ Project, you will get a fully functioning |\TextOrMath|
-command with no side effects. If you use regular \TeX\ as engine for
-your \LaTeX\ format then we have to choose between the lesser of two
-evils: 1)~breaking ligatures and preventing kerning or 2)~face the
-risk of choosing text-mode at the beginning of an alignment cell,
-which was supposed to be math-mode. We have decided upon 1) as is
-customary for regular robust commands in \LaTeX.
-
-
-
-\end{document}
diff --git a/macros/latex/base/latexrelease.dtx b/macros/latex/base/latexrelease.dtx
index 7d2290f4d8..294007553d 100644
--- a/macros/latex/base/latexrelease.dtx
+++ b/macros/latex/base/latexrelease.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -40,7 +40,7 @@
%<*latexrelease>
% \fi
% \ProvidesFile{latexrelease.dtx}
- [2021/04/29 v1.0n LaTeX release emulation and tests
+ [2022/02/28 v1.0o LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
% \iffalse
%</latexrelease>
@@ -471,7 +471,7 @@
%
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
@@ -487,10 +487,9 @@
% \begin{macro}{\sourceLaTeXdate}
% \changes{v1.0l}{2021/01/23}{\cs{sourceLaTeXdate} added}
% \changes{v1.0m}{2021/03/18}{Define \cs{sourceLaTeXdate} conditionally}
-% Store the original \LaTeX{} format version
-% as a number in the format |YYYYMMDD|. This macro has to
-% be defined conditionally, so that it isn't changed in case
-% \file{latexrelease.sty} is loaded twice (for tests), but it
+% Store the original \LaTeX{} format version as a number in the format
+% |YYYYMMDD |. This macro has to be defined conditionally, so that it
+% isn't changed in case \file{latexrelease.sty} is reloaded, but it
% can't be defined in the kernel only, otherwise
% \file{latexrelease.sty} wouldn't work in older \LaTeX{} due
% to the missing macro.
@@ -619,7 +618,7 @@ of this package available from CTAN}
\catcode58=11 % :
\catcode126=10 % ~
\catcode32=09 % <space>
- \xdef\latexrelease@postexpl{\unexpanded{%
+ \xdef\latexrelease@postltexpl{\unexpanded{%
%<@@=latexrelease>
% \end{macrocode}
%
@@ -691,14 +690,13 @@ of this package available from CTAN}
% store each in \cs{l_@@_restores_tl}, save a copy, and redefine each.
% \begin{macrocode}
\tl_clear_new:N \l_@@_restores_tl
-\cs_gset:Npn \@@_tmp:w #1 #2
+\cs_gset:Npn \@@_redefines:w #1 #2
{
- \quark_if_recursion_tail_stop_do:Nn #1
- { \cs_undefine:N \@@_tmp:w }
+ \quark_if_recursion_tail_stop:N #1
\tl_put_right:Nn \l_@@_restores_tl {#1}
\cs_set_eq:cN { @@_ \cs_to_str:N #1 } #1
\cs_set_eq:NN #1 #2
- \@@_tmp:w
+ \@@_redefines:w
}
% \end{macrocode}
%
@@ -731,12 +729,12 @@ of this package available from CTAN}
% \end{description}
% And here we go:
% \begin{macrocode}
-\@@_tmp:w
+\@@_redefines:w
\__kernel_chk_if_free_cs:N \use_none:n
\e@alloc \@@_e@alloc:NnnnnN
\__kernel_msg_error:nnx \use_none:nnn
\msg_new:nnnn \msg_gset:nnnn
- \NewDocumentCommand \DeclareDocumentCommand
+ % \NewDocumentCommand \DeclareDocumentCommand % after ltcmd.dtx
\newcommand \@@_declare_command:w
% \end{macrocode}
% Temp addition \ldots
@@ -752,6 +750,22 @@ of this package available from CTAN}
\msg_redirect_name:nnn { hooks } { exists } { none }
% \end{macrocode}
%
+% Now a one-off for |ltcmd.dtx|: we need to make \cs{NewDocumentCommand}
+% not complain on an already existing command, but it has to be done
+% after \cs{NewDocumentCommand} is defined, so this is separate from
+% the \cs{latexrelease@postltexpl} actions above:
+% \changes{v1.0o}{2022/02/28}
+% {Move most redefinitions to right after ltexpl.dtx}
+% \begin{macrocode}
+\cs_gset_protected:Npn \latexrelease@postltcmd
+ {
+ \@@_redefines:w
+ \NewDocumentCommand \DeclareDocumentCommand
+ \q_recursion_tail \q_recursion_tail
+ \q_recursion_stop
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
}}%
\endgroup
diff --git a/macros/latex/base/latexrelease.ins b/macros/latex/base/latexrelease.ins
index 0b65114a2f..b5e97a9479 100644
--- a/macros/latex/base/latexrelease.ins
+++ b/macros/latex/base/latexrelease.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -93,7 +93,7 @@ extension .ins) which are part of the distribution.
\from{ltluatex.dtx} {latexrelease}% empty
\from{ltexpl.dtx} {latexrelease}% empty
\from{ltdefns.dtx} {latexrelease}%
- \from{ltcmd.dtx} {latexrelease}%
+ \from{ltcmd.dtx} {latexrelease}% L3 layer module
\from{lthooks.dtx} {latexrelease}% L3 layer module
\from{ltcmdhooks.dtx} {latexrelease}% L3 layer module
\from{ltalloc.dtx} {latexrelease}% empty
@@ -101,6 +101,7 @@ extension .ins) which are part of the distribution.
\from{lterror.dtx} {latexrelease}% empty
\from{ltpar.dtx} {latexrelease}% empty
\from{ltpara.dtx} {latexrelease}% empty
+ \from{ltmeta.dtx} {latexrelease}% L3 layer module
\from{ltspace.dtx} {latexrelease}%
\from{ltlogos.dtx} {latexrelease}% L3 layer module
\from{ltfiles.dtx} {latexrelease}%
@@ -128,6 +129,7 @@ extension .ins) which are part of the distribution.
\from{ltfloat.dtx} {latexrelease}%
\from{ltidxglo.dtx} {latexrelease}% empty
\from{ltbibl.dtx} {latexrelease}% empty
+ \from{ltmarks.dtx} {latexrelease}% L3 layer module
\from{ltpage.dtx} {latexrelease}% empty
\from{ltclass.dtx} {latexrelease,tracerollback}%
\from{ltfilehook.dtx} {latexrelease}% empty % L3 layer module
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index df5139abe0..8724a65da4 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.dtx b/macros/latex/base/latexsym.dtx
index 7a97aa4318..62fb097c0d 100644
--- a/macros/latex/base/latexsym.dtx
+++ b/macros/latex/base/latexsym.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -84,7 +84,7 @@
% |\unrhd|~$\unrhd$
% \end{quote}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The \dst{} modules}
%
diff --git a/macros/latex/base/latexsym.ins b/macros/latex/base/latexsym.ins
index 902bbfc9e8..468afddd67 100644
--- a/macros/latex/base/latexsym.ins
+++ b/macros/latex/base/latexsym.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -87,7 +87,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index d9711ea51c..91835c6c0a 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.err b/macros/latex/base/lb2.err
index 53148e2833..46958ae3a5 100644
--- a/macros/latex/base/lb2.err
+++ b/macros/latex/base/lb2.err
@@ -419,7 +419,7 @@ Ende der Wettbewerbsperiode & Gewinner \\[4pt]
2006/04 & Jens Mandavid & 121 \\
2006/10 & Ralf Heckmann & 61 \\
2008/04 & --- \\
-\ldots & Termin einer weiteren Verlosung offen
+\ldots & keine weitere Verlosung
%2008/10 & \\
\end{tabular}
\end{center}
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index 695121e993..b192987d57 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.dtx b/macros/latex/base/letter.dtx
index 6beee81735..4052c260c8 100644
--- a/macros/latex/base/letter.dtx
+++ b/macros/latex/base/letter.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -45,7 +45,7 @@
%<*driver>
\ProvidesFile{letter.drv}
%</driver>
- [2021/03/05 v1.3c
+ [2021/12/07 v1.3c
%<+letter> Standard LaTeX document class]
% \end{macrocode}
%
@@ -178,7 +178,7 @@
% \maketitle
% \tableofcontents
%
-% \StopEventually
+% \MaybeStop{}
%
%
% \section{Initial Code}
diff --git a/macros/latex/base/letter.ins b/macros/latex/base/letter.ins
index 44777393eb..c078dc59ce 100644
--- a/macros/latex/base/letter.ins
+++ b/macros/latex/base/letter.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index 8e9974e32f..cc9cc990ff 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.err b/macros/latex/base/lgc2.err
index 96fd378fe9..45b440a7f4 100644
--- a/macros/latex/base/lgc2.err
+++ b/macros/latex/base/lgc2.err
@@ -10,7 +10,7 @@
%
% The current version of this file can be found at:
%
-% https://www.latex-project.org/guides/books.html
+% https://www.latex-project.org/help/books
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -351,12 +351,12 @@ You can customize this list to only show errata related to the printing
you own by changing the configuration in the file \texttt{\jobname.cfg}.
\begin{center}
- \Large \bfseries To Err is Human --- Bug Contest
+ \Large \bfseries To Err is Human --- Bug Contest (no longer open)
\end{center}
Any mistake found and reported is a gain for all readers of our book.
-For this reason Addison-Wesley and the authors offer a prize (for 6
-periods) to the eligible person who finds the largest
+For this reason Addison-Wesley and the authors offer a prize to the
+eligible person who finds the largest
number of bugs during that period (in case of a draw a random choice
will be made between all those with the largest number of findings).
A person can receive at most one prize, ever; errors found by any of
@@ -378,7 +378,7 @@ Good luck!
Contest period ends & Winner \\[4pt]
2008/05 & Milan Vujtek & 16 suggestions\\
2010/05 & & \\
-\ldots
+\ldots & contest no longer open
\end{tabular}
\end{center}
\end{list}
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index aa4dfc4d15..885057e32b 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/lppl.pdf b/macros/latex/base/lppl.pdf
index 0ba46a391a..1e9a4ce081 100644
--- a/macros/latex/base/lppl.pdf
+++ b/macros/latex/base/lppl.pdf
Binary files differ
diff --git a/macros/latex/base/ltalloc.dtx b/macros/latex/base/ltalloc.dtx
index 59c492836f..4530d4b07b 100644
--- a/macros/latex/base/ltalloc.dtx
+++ b/macros/latex/base/ltalloc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -62,7 +62,7 @@
%
% This section deals with counter and other variable allocation.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
diff --git a/macros/latex/base/ltbibl.dtx b/macros/latex/base/ltbibl.dtx
index cda0fa160a..4c219657b8 100644
--- a/macros/latex/base/ltbibl.dtx
+++ b/macros/latex/base/ltbibl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltbibl.dtx}
- [2020/12/10 v1.1s LaTeX Kernel (Bibliography)]
+ [2022/03/10 v1.1t LaTeX Kernel (Bibliography)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltbibl.dtx}
@@ -106,7 +106,7 @@
% |\nocite{*}| is special: it tells \BibTeX{} to put the whole of a
% collection of references into the bibliography.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/31}{Initial version of ltidxbib.dtx,
@@ -199,8 +199,41 @@
% \begin{macro}{\cite}
% \changes{v1.1j}{1995/10/16}{(DPC) Make robust}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\cite}{check for blank}%
\DeclareRobustCommand\cite{%
- \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+ \@ifnextchar [{\@tempswatrue\@citex@checkblank}{\@tempswafalse\@citex@checkblank[]}}
+% \end{macrocode}
+% Due to the way \cs{@for} as used in \cs{@citex} behaves an empty
+% argument to \cs{cite} did not produce any warning for a missing
+% citation. So we now inject a command before calling \cs{@citex} that
+% does the checking for us. It is not done in \cs{@citex} directly,
+% because that command is altered by a number of packages/classes
+% and this way it is more likely that the check survives.
+% \changes{v1.1t}{2022/03/10}{Ensure that an empty argument generates
+% a warning (gh/790)}
+% \begin{macrocode}
+\def\@citex@checkblank[#1]#2{%
+ \IfBlankTF {#2}%
+ {\@citex[#1]{\space}}%
+ {\@citex[#1]{#2}}%
+}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\cite}{check for blank}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\cite{%
+%<latexrelease> \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+%<latexrelease>\let\@citex@checkblank\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/base/ltboxes.dtx b/macros/latex/base/ltboxes.dtx
index 92d9228a8a..43db541b98 100644
--- a/macros/latex/base/ltboxes.dtx
+++ b/macros/latex/base/ltboxes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltboxes.dtx}
- [2021/10/14 v1.4c LaTeX Kernel (Box Commands)]
+ [2022/01/31 v1.4c LaTeX Kernel (Box Commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltboxes.dtx}
@@ -212,7 +212,7 @@
% \meta{height} \& \meta{depth} = actual height and depth of box in new
% position.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v0.1e}{1994/03/02}{Remove need for drv file}
% \changes{v0.1e}{1994/03/02}{Add 2ekernel module}
@@ -987,7 +987,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\parboxrestore}
+% \begin{macro}{\@parboxrestore}
% Restore various paragraph parameters, and also |\\|.
% \begin{macrocode}
\def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index 06e0f437af..20e59353ec 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2021/08/25 v1.4f LaTeX Kernel (Class & Package Interface)]
+ [2022/04/16 v1.5b LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -338,7 +338,7 @@
% or the old name \cs{@ifpackagelater}.
% \DescribeMacro\IfFormatAtLeastTF
-% To test the format date use
+% To test the format date use
% \begin{quote}
% |\IfFormatAtLeastTF{|\meta{date}|}{|^^A
% \meta{true}|}{|\meta{false}|}|
@@ -434,7 +434,7 @@
% standard (and other non-standard) distributions can put informative
% strings in this argument.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
@@ -1833,7 +1833,7 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}%
@@ -2175,27 +2175,22 @@
% \begin{macrocode}
\@ifl@aded\@currext\@currname
% \end{macrocode}
-% If the package is already loaded, check that there were no option
-% clashes:
-% \changes{v1.1b}{1998/05/07}
-% {Modify help message for latex/2805}
-% \begin{macrocode}
- {\@if@ptions\@currext{\@currname}{#2}{}%
- {\@latex@error
- {Option clash for \@cls@pkg\space \@currname}%
- {The package \@currname\space has already been loaded
- with options:\MessageBreak
- \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
- There has now been an attempt to load it
- with options\MessageBreak
- \space\space[#2]\MessageBreak
- Adding the global options:\MessageBreak
- \space\space
- \@ptionlist{\@currname.\@currext},#2\MessageBreak
- to your \noexpand\documentclass declaration may fix this.%
- \MessageBreak
- Try typing \space <return> \space to proceed.}}%
- \@firstofone}%
+% \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}}
+% In the current preferred approach, a key family name will exist for
+% processing using \pkg{ltkeys}. In that case, we replace the previous
+% package options with the new ones, then call the key handler.
+% Otherwise, we use the more classical clash handler.
+% \begin{macrocode}
+ {%
+ \@ifundefined{opt@fam@\@currname.\@currext}
+ {\@onefilewithoptions@clashchk{#2}}
+ {%
+ \@namedef{opt@\@currname.\@currext}{#2}%
+ \expandafter\expandafter\expandafter\ProcessKeyOptions
+ \expandafter\expandafter\expandafter
+ [\csname opt@fam@\@currname.\@currext\endcsname]%
+ }%
+ }%
{\makeatletter
% \end{macrocode}
% The next line seems to be necessary for 2.09 compatibility (the
@@ -2298,6 +2293,34 @@
\@reset@ptions}
% \end{macrocode}
%
+% \begin{macro}{\@onefilewithoptions@clashchk}
+% If the package is already loaded, check that there were no option
+% clashes.
+% \changes{v1.1b}{1998/05/07}
+% {Modify help message for latex/2805}
+% \changes{v1.5a}{2021/11/30}
+% {Separated out from \cs{@onefilewithoptions}}
+% \begin{macrocode}
+\def\@onefilewithoptions@clashchk#1{%
+ \@if@ptions\@currext{\@currname}{#1}{}%
+ {\@latex@error
+ {Option clash for \@cls@pkg\space \@currname}%
+ {The package \@currname\space has already been loaded
+ with options:\MessageBreak
+ \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+ There has now been an attempt to load it
+ with options\MessageBreak
+ \space\space[#1]\MessageBreak
+ Adding the global options:\MessageBreak
+ \space\space
+ \@ptionlist{\@currname.\@currext},#1\MessageBreak
+ to your \noexpand\documentclass declaration may fix this.%
+ \MessageBreak
+ Try typing \space <return> \space to proceed.}}%
+ \@firstofone}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
\let\@currpkg@reqd\@empty
% \end{macrocode}
@@ -2622,7 +2645,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\@onlypreamble\AtBeginDocument
% \end{macrocode}
@@ -2826,7 +2849,7 @@
% \end{macrocode}
%
% \changes{v1.3m}{2020-08-08}{define \cs{q@curr@file} directly as the
-% quotes have already been removed (gh/220)}
+% quotes have already been removed (gh/220)}
% \begin{macrocode}
\gdef\filec@ntents#1{%
\set@curr@file{\filec@ntents@checkdir#1}%
diff --git a/macros/latex/base/ltcmd.dtx b/macros/latex/base/ltcmd.dtx
index d2f184c3f7..59aa5bf475 100644
--- a/macros/latex/base/ltcmd.dtx
+++ b/macros/latex/base/ltcmd.dtx
@@ -2,7 +2,7 @@
%
% Copyright (C) 1999 Frank Mittelbach, Chris Rowley, David Carlisle
% Copyright (C) 2004-2008 Frank Mittelbach, The LaTeX3 Project
-% Copyright (C) 2009-2021
+% Copyright (C) 2009-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.0i}
-\def\ltcmddate{2021-12-02}
+\def\ltcmdversion{v1.0l}
+\def\ltcmddate{2022-03-18}
% \end{macrocode}
%
%<*driver>
@@ -67,7 +67,7 @@
% documentation for \pkg{ltcmd} is provided as part of \texttt{usrguide3}. Here,
% additional material aimed at programmers is provided
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<@@=cmd>
@@ -2352,15 +2352,17 @@
% Now just print everything in the required format. The auxiliary
% \cs{@@_split_signature:n} stores a ready-to-print token list in
% \cs{l_@@_tmpa_tl}, so we ust use that here:
+% \changes{v1.0j}{2021/13/31}
+% {Make \cs{ShowCommand} stop for interaction}
% \begin{macrocode}
\cs_new_protected:Npn \@@_show_command_aux:nNNn #1 #2 #3 #4
{
\@@_split_signature:n {#4}
- \iow_term:x
+ \tl_show:x
{
- > ~ \token_to_str:N #2 = #1: \iow_newline:
+ \token_to_str:N #2 = #1: \iow_newline:
\tl_use:N \l_@@_tmpa_tl
- -> \cs_replacement_spec:N #3 .
+ -> \cs_replacement_spec:N #3
}
}
% \end{macrocode}
@@ -2371,15 +2373,17 @@
% |\ShowCommand\foo| is used (if |foo| is an environment), we show
% |\endfoo| as well, and when |\ShowCommand\endfoo| is used, change
% that to |\ShowCommand\foo| and do the same.
+% \changes{v1.0j}{2021/13/31}
+% {Make \cs{ShowCommand} stop for interaction}
% \begin{macrocode}
\cs_new_protected:Npn \@@_show_environment:N #1
{
\exp_after:wN \@@_show_environment:Nnnw #1 \q_@@
- \iow_term:x
+ \tl_show:x
{
- > ~ \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
+ \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
-> \exp_args:Nc \cs_replacement_spec:N
- { environment~ \cs_to_str:N #1 ~end~aux~ } .
+ { environment~ \cs_to_str:N #1 ~end~aux~ }
}
}
\cs_new_protected:Npn \@@_show_environment:Nnnw #1 #2 #3 #4 \q_@@
@@ -4093,8 +4097,10 @@
% \begin{macro}{\@@_cmd_type_cases:Nnnnn}
% \changes{v1.0d}{2021/04/19}{Renamed \cs{__cmd_cmd_if_xparse:NTF} to
% \cs{__kernel_cmd_if_xparse:NTF} for cross-module usage}
-% \changes{v1.0d}{2021/07/30}{Added \cs{@@_cmd_type_cases:Nnnnn} for
+% \changes{v1.0d}{2021/07/30}{Added \cs{@@_cmd_type_cases:NnnnnF} for
% \cs{NewCommandCopy} and \cs{ShowCommand} support}
+% \changes{v1.0l}{2022/03/18}{Fix \cs{@@_cmd_type_cases:NnnnnF}
+%" prematurely expanding macros (gh/795)}
% \begin{macro}{\@@_cmd_if_xparse_aux:N}
%
% To determine whether the command is an \pkg{xparse} command check
@@ -4113,22 +4119,14 @@
\exp_args:Ne \str_case_e:nnF
{
\exp_args:Nf \tl_if_empty:nT { \cs_argument_spec:N #1 }
- {
- \token_if_macro:NT #1
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \token_to_str:N
- \exp_after:wN \use_i_delimit_by_q_stop:nw
- #1 \scan_stop: \q_stop
- }
- }
+ { \exp_not:N \exp_not:n { \exp_not:e { \tl_head:N #1 } } }
}
{
- { \token_to_str:N \@@_start:nNNnnn } {#2}
- { \token_to_str:N \@@_start_expandable:nNNNNn } {#3}
- { \token_to_str:N \@@_start_env:nnnnn } {#4}
+ { \exp_not:N \@@_start:nNNnnn } {#2}
+ { \exp_not:N \@@_start_expandable:nNNNNn } {#3}
+ { \exp_not:N \@@_start_env:nnnnn } {#4}
{
- \exp_after:wN \token_to_str:N
+ \exp_after:wN \exp_not:N
\cs:w environment~
\exp_last_unbraced:Ne \use_none:nnn
{ \cs_to_str:N #1 } ~end~aux \cs_end:
@@ -4712,6 +4710,27 @@
% \end{macrocode}
% \end{macro}
%
+%
+% \begin{macro}{\IfBlankT, \IfBlankF, \IfBlankTF}
+% Another simple re-naming.
+% \changes{v1.0k}{2022/02/19}{Added \cs{IfBlankTF} and friends}
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\IfBlankTF}{Testing~for~empty~or~blank}%
+\cs_new_eq:NN \IfBlankF \tl_if_blank:nF
+\cs_new_eq:NN \IfBlankT \tl_if_blank:nT
+\cs_new_eq:NN \IfBlankTF \tl_if_blank:nTF
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease> {\IfBlankTF}{Testing~for~empty~or~blank}%
+%<latexrelease>\cs_undefine:N \IfBlankF
+%<latexrelease>\cs_undefine:N \IfBlankT
+%<latexrelease>\cs_undefine:N \IfBlankTF
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ProcessedArgument}
% Processed arguments are returned using this name, which is reserved
% here although the definition will change.
@@ -4775,7 +4794,14 @@
%<latexrelease>
%<latexrelease>\EndModuleRelease
\ExplSyntaxOff
-%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postexpl}
+% \end{macrocode}
+%
+% Now in |latexrelease| mode, redefine \cs{NewDocumentCommand} to not
+% complain on commands already defined.
+% \changes{v1.0k}{2022-02-28}
+% {Move latexrelease redefinitions from ltcmd.dtx}
+% \begin{macrocode}
+%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltcmd}
%<latexrelease>\catcode`\^^@=\@latexrelease@catcode@null\relax
%</2ekernel|latexrelease>
% \end{macrocode}
diff --git a/macros/latex/base/ltcmdhooks-code.pdf b/macros/latex/base/ltcmdhooks-code.pdf
index b93038c6ac..70eeb7d4dd 100644
--- a/macros/latex/base/ltcmdhooks-code.pdf
+++ b/macros/latex/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-doc.pdf b/macros/latex/base/ltcmdhooks-doc.pdf
index 92c73d0ab1..9bb4f81784 100644
--- a/macros/latex/base/ltcmdhooks-doc.pdf
+++ b/macros/latex/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-doc.tex b/macros/latex/base/ltcmdhooks-doc.tex
index 1efae5f229..acbb880e72 100644
--- a/macros/latex/base/ltcmdhooks-doc.tex
+++ b/macros/latex/base/ltcmdhooks-doc.tex
@@ -2,5 +2,6 @@
\AtBeginDocument{\OnlyDescription
\let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
}
\input{ltcmdhooks.dtx}
diff --git a/macros/latex/base/ltcmdhooks.dtx b/macros/latex/base/ltcmdhooks.dtx
index 208f7c3d22..ccb5a35a71 100644
--- a/macros/latex/base/ltcmdhooks.dtx
+++ b/macros/latex/base/ltcmdhooks.dtx
@@ -270,7 +270,7 @@
% If you do that then both hooks automatically work and are patched
% into the right places.
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
%
@@ -1394,3 +1394,12 @@
%
% \Finale
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
diff --git a/macros/latex/base/ltcntrl.dtx b/macros/latex/base/ltcntrl.dtx
index d65b3aee94..5ebe256c75 100644
--- a/macros/latex/base/ltcntrl.dtx
+++ b/macros/latex/base/ltcntrl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -66,7 +66,7 @@
% This section defines a number of control structure macros, such as
% while-loops and for-loops.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{oldcomments}
% \begin{macrocode}
diff --git a/macros/latex/base/ltcounts.dtx b/macros/latex/base/ltcounts.dtx
index 39fb47728d..ffe2265ac3 100644
--- a/macros/latex/base/ltcounts.dtx
+++ b/macros/latex/base/ltcounts.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -124,7 +124,7 @@
% the default for \meta{format}.
% Star form omits redefining the print representation.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
diff --git a/macros/latex/base/ltdefns.dtx b/macros/latex/base/ltdefns.dtx
index 6c85ca915d..9e1fa43fad 100644
--- a/macros/latex/base/ltdefns.dtx
+++ b/macros/latex/base/ltdefns.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2021/06/04 v1.5q LaTeX Kernel (definition commands)]
+ [2022/05/13 v1.5q LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -96,7 +96,7 @@
%
% This section contains commands used in defining other macros.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
@@ -1601,7 +1601,7 @@
% But more importantly, the most common use case of copying a command is to
% redefine it later, while preserving the old definition, as in:
% \begin{verbatim}
-% \ProvideComandCopy \A \B
+% \ProvideCommandCopy \A \B
% \renewcommand \B { ... \A ... }
% \end{verbatim}
% then, if \verb=\A= is already defined the first line is skipped, an in this
diff --git a/macros/latex/base/ltdirchk.dtx b/macros/latex/base/ltdirchk.dtx
index 36a1ca616c..16a2ed9e68 100644
--- a/macros/latex/base/ltdirchk.dtx
+++ b/macros/latex/base/ltdirchk.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdirchk.dtx}
- [2021/01/15 v1.3a LaTeX Kernel (System Dependent Parts)]
+ [2021/12/11 v1.3a LaTeX Kernel (System Dependent Parts)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdirchk.dtx}
@@ -206,12 +206,26 @@
% error messages that use the default settings with a current version of
% \TeX, but this should not cause any confusion we hope.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Initialization}
% As this file is read at a very early stage, some definitions that
% are normally considered to be part of the format must be made here.
%
+% Most such definitions are repeated later in the ``right'' place,
+% usually (but not always) with different implementations. To be able
+% to spot this more easily if you look into the file
+% \texttt{latex.ltx} (which is stripped of comments) we add some
+% comment lines to that effect that survive the stripping process by
+% \texttt{docstrip}.
+% \changes{v1.3a}{2021/12/11}{Add comment lines into latex.ltx to
+% indicate temp definitions that are later overwritten (gh/725)}
+% \begin{macrocode}
+%<*dircheck>
+%% ---- START temporary definitions for bootstrapping; later overwritten ----
+%</dircheck>
+% \end{macrocode}
+%
% \subsection{INITEX}
% \changes{v0.2i}{1994/01/25}
% {Protect against looping on \cs{@@input} and \cs{@@end}.}
@@ -1007,6 +1021,7 @@
% \end{macro}
%
% \begin{macrocode}
+%% ---- END temporary definitions for bootstrapping ----
%</dircheck>
% \end{macrocode}
%
diff --git a/macros/latex/base/lterror.dtx b/macros/latex/base/lterror.dtx
index 10d93a1dbd..b302a9a74c 100644
--- a/macros/latex/base/lterror.dtx
+++ b/macros/latex/base/lterror.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -91,7 +91,7 @@
%
% This section defines \LaTeX's error commands.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \begin{macrocode}
diff --git a/macros/latex/base/ltexpl.dtx b/macros/latex/base/ltexpl.dtx
index 021edc644c..aab189bec2 100644
--- a/macros/latex/base/ltexpl.dtx
+++ b/macros/latex/base/ltexpl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2021/04/20 v1.3c LaTeX Kernel (expl3-dependent code)]
+ [2022/02/28 v1.3f LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltexpl.dtx}
@@ -57,7 +57,7 @@
%
% \section{\pkg{expl3}-dependent code}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v0.0}{2019-10-02}{Initial version}
%
@@ -288,6 +288,14 @@
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
+% Now in |latexrelease| mode, redefine a few commands to avoid ``already
+% defined'' errors.
+% \changes{v1.3f}{2022/02/28}
+% {Move latexrelease redefinitions from ltcmd.dtx}
+% \begin{macrocode}
+%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltexpl}
+% \end{macrocode}
+%
% \changes{v1.3a}{2021/01/21}
% {Move \pkg{xparse} rollback code to \texttt{ltcmd.dtx}}
%
@@ -387,4 +395,125 @@
% \end{macrocode}
%
%
+%
+%
+%
+%
+% \section{Document-level command names for \pkg{expl3} functions}
+%
+% Current home for L3 programing layer functions that we make
+% directly available at the document level. This section may need
+% to be moved later (after \cs{NewDocumentCommand} is defined in
+% case we want to use that in the setup).
+%
+%
+% \DescribeMacro\fpeval
+% The expandable command \cs{fpeval} takes as its argument a
+% floating point expression and produces a result using the normal
+% rules of mathematics. As this command is expandable it can be
+% used where \TeX{} requires a number and for example within a
+% low-level \cs{edef} operation to give a purely numerical
+% result. See \texttt{usrguide3} for further explanation.
+%
+% \DescribeMacro\inteval
+% \DescribeMacro\dimeval
+% \DescribeMacro\skipeval
+% The expandable command \cs{inteval} takes as its argument an
+% integer expression and produces a result using the normal rules
+% of mathematics. The operations recognised are |+|, |-|, |*| and
+% |/| plus parentheses. Division occurs with \emph{rounding}, and
+% ties are rounded away from zero. As this command is expandable it
+% can be used where \TeX{} requires a number and for example within
+% a low-level \cs{edef} operation to give a purely numerical
+% result. See \texttt{usrguide3} for further explanation.
+% \cs{dimeval} and \cs{skipeval} are similar, but generate fixed and
+% rubber length values, respectively.
+%
+%
+%
+% \begin{macro}{\fpeval,\inteval,\dimeval,\skipeval}
+% A document level wrapper around the code level function for
+% floating point calculations.
+% \changes{v1.3d}{2021/11/30}{Moved over from \texttt{xfp} package (gh/711)}
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\fpeval}{fp and int calculations}%
+\ExplSyntaxOn
+\cs_new_eq:NN \fpeval \fp_eval:n
+% \end{macrocode}
+% And a few more, this time wrappers around the e\TeX{} primitives.
+% \begin{macrocode}
+\cs_new_eq:NN \inteval \int_eval:n
+% \end{macrocode}
+%
+% \changes{v1.3d}{2021/12/07}{Added \cs{dimeval} and \cs{skipeval} (gh/711)}
+% \begin{macrocode}
+\cs_new_eq:NN \dimeval \dim_eval:n
+\cs_new_eq:NN \skipeval \skip_eval:n
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\fpeval}{fp and int calculations}%
+%<latexrelease>
+%<latexrelease>\let\fpeval\@undefined
+%<latexrelease>\let\inteval\@undefined
+%<latexrelease>\let\dimeval\@undefined
+%<latexrelease>\let\skipeval\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+%
+% \DescribeMacro\UseName
+% \DescribeMacro\ExpandArgs
+% When declaring new commands with \cs{NewDocumentCommand} or
+% \cs{NewCommandCopy} or similar, it is sometimes necessary to
+% ``construct'' the csname. As a general mechanism the L3
+% programming layer has \cs{exp\_args:N...} for this, but there is
+% no mechanism for it if \cs{ExplSyntaxOn} is not active. We
+% therefore offer a few of these commands also with CamelCase names.
+%
+%
+% \begin{macro}{\UseName,\ExpandArgs}
+% A document wrapper for changing arguments to cs names for use
+% with \cs{NewDocumentCommand} and similar functions.
+%
+% \changes{v1.3d}{2021/12/28}{Added document level names for \cs{exp\_args:Nc} and the like (gh/735)}
+% \changes{v1.3e}{2022/01/06}{Adjust document level names for \cs{exp\_args:Nc} and the like (gh/735)}
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\ExpandArgs}{Some pre-expansion commands}%
+\ExplSyntaxOn
+\cs_new_eq:NN \UseName \use:c
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new:Npn \ExpandArgs #1
+ {
+ \cs_if_exist_use:cF { exp_args:N #1 }
+ { \msg_expandable_error:nnn { kernel } { unknown-arg-expansion } {#1} }
+ }
+\msg_new:nnn { kernel } { unknown-arg-expansion }
+ { Unknown~arg~expansion~"#1" }
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\ExpandArgs}{Some pre-expansion commands}%
+%<latexrelease>
+%<latexrelease>\let\UseName\@undefined
+%<latexrelease>\let\ExpandArgs\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
% \Finale
diff --git a/macros/latex/base/ltfilehook-code.pdf b/macros/latex/base/ltfilehook-code.pdf
index 1f083a0c1d..1c2731b68b 100644
--- a/macros/latex/base/ltfilehook-code.pdf
+++ b/macros/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.pdf b/macros/latex/base/ltfilehook-doc.pdf
index 70c1bd459c..b41f835379 100644
--- a/macros/latex/base/ltfilehook-doc.pdf
+++ b/macros/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.tex b/macros/latex/base/ltfilehook-doc.tex
index 220de94188..c9287dfb2f 100644
--- a/macros/latex/base/ltfilehook-doc.tex
+++ b/macros/latex/base/ltfilehook-doc.tex
@@ -3,5 +3,6 @@
\AtBeginDocument{\OnlyDescription
% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
}
\input{ltfilehook.dtx}
diff --git a/macros/latex/base/ltfilehook.dtx b/macros/latex/base/ltfilehook.dtx
index 000f4d8c2a..8b5e982591 100644
--- a/macros/latex/base/ltfilehook.dtx
+++ b/macros/latex/base/ltfilehook.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2020-2021
+% Copyright (C) 2020-2022
% Frank Mittelbach, Phelype Oleinik & LaTeX Team
%
% This file is part of the LaTeX base system.
@@ -31,29 +31,14 @@
%%% From File: ltfilehook.dtx
%
% \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/04/01}
% \end{macrocode}
%
%<*driver>
\documentclass{l3doc}
-% bug fix fo l3doc.cls
-\ExplSyntaxOn
-\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
- {
- \vbox_set:Nn \l__codedoc_macro_box
- {
- \vbox_unpack_drop:N \l__codedoc_macro_box
- \hbox { \llap { \__codedoc_print_macroname:nN {#1} #2
- \MacroFont % <----- without it the \ is in lmr10 if a link is made
- \
- } }
- }
- \int_incr:N \l__codedoc_macro_int
- }
-\ExplSyntaxOff
\providecommand\InternalDetectionOff{}
\providecommand\InternalDetectionOn{}
@@ -73,9 +58,10 @@
%
% \long\def\fmi#1{\begin{quote}\itshape Todo: #1\end{quote}}
%
-% \let\hook\texttt
+% \providecommand\hook[1]{\texttt{#1}}
+%
%
-% \title{The \texttt{ltfilehook} package\thanks{This package has version
+% \title{The \texttt{ltfilehook} documentation\thanks{This code has version
% \ltfilehookversion\ dated \ltfilehookdate, \copyright\ \LaTeX\
% Project.}}
%
@@ -120,7 +106,7 @@
% }
% These are:
% \begin{description}
-% \item[\texttt{file/before}, \texttt{file/\meta{file-name}/before}]
+% \item[\hook{file/before}, \hook{file/\meta{file-name}/before}]
%
% These hooks are executed in that order just before the file is
% loaded for reading. The code of the first hook is used
@@ -128,16 +114,16 @@
% file with matching \meta{file-name} allowing you to specify
% code that only applies to one file.
%
-% \item[\texttt{file/\meta{file-name}/after}, \texttt{file/after}]
+% \item[\hook{file/\meta{file-name}/after}, \hook{file/after}]
%
% These hooks are after the file with name \meta{file-name} has
% been fully consumed. The order is swapped (the specific one
-% comes first) so that the \texttt{before} and \texttt{after}
+% comes first) so that the \hook{/before} and \hook{/after}
% hooks nest properly, which is important if any of them involve
% grouping (e.g., contain environments, for example).
% Furthermore both hooks are reversed hooks to support correct
% nesting of different packages adding code to both
-% \texttt{/before} and \texttt{/after} hooks.
+% \hook{/before} and \hook{/after} hooks.
%
% \end{description}
% \end{variable}
@@ -216,7 +202,7 @@
% \cs{RequirePackage}, \cs{LoadPackageWithOptions}, etc.) offer the
% hooks from section~\ref{sec:general-file-hooks} when they are
% used to load a package or class file, e.g.,
-% \texttt{file/array.sty/after} would be called after the
+% \hook{file/array.sty/after} would be called after the
% \pkg{array} package got loaded. But as packages and classes form as special group
% of files, there are some additional hooks available that only
% apply when a package or class is loaded.
@@ -230,21 +216,21 @@
% }
% These are:
% \begin{description}
-% \item[\texttt{package/before}, \texttt{package/after}]
+% \item[\hook{package/before}, \hook{package/after}]
%
% These hooks are called for each package being loaded.
%
-% \item[\texttt{package/\meta{name}/before},
-% \texttt{package/\meta{name}/after}]
+% \item[\hook{package/\meta{name}/before},
+% \hook{package/\meta{name}/after}]
%
% These hooks are additionally called if the package name is
% \meta{name} (without extension).
%
-% \item[\texttt{class/before}, \texttt{class/after}]
+% \item[\hook{class/before}, \hook{class/after}]
%
% These hooks are called for each class being loaded.
%
-% \item[\texttt{class/\meta{name}/before}, \texttt{class/\meta{name}/after}]
+% \item[\hook{class/\meta{name}/before}, \hook{class/\meta{name}/after}]
%
% These hooks are additionally called if the class name is
% \meta{name} (without extension).
@@ -269,8 +255,8 @@
% \>\cs{UseHook}\marg{\hook{package/\meta{package name}/after}} \\
% \>\cs{UseHook}\marg{\hook{package/after}}
% \end{tabbing}
-% and similar for class file loading, except that \texttt{package/}
-% is replaced by \texttt{class/} and \cs{AtEndOfPackage} by
+% and similar for class file loading, except that \hook{package/}
+% is replaced by \hook{class/} and \cs{AtEndOfPackage} by
% \cs{AtEndOfClass}.
%
% If a package or class is not loaded (or it was loaded before the
@@ -321,7 +307,7 @@
% These are:
% \begin{description}
%
-% \item[\texttt{include/before}, \texttt{include/\meta{name}/before}]
+% \item[\hook{include/before}, \hook{include/\meta{name}/before}]
%
% These hooks are executed (in that order) after the initial
% \cs{clearpage} and after \texttt{.aux} file is changed to use
@@ -331,14 +317,14 @@
% file.
%
%
-% \item[\texttt{include/\meta{name}/end}, \texttt{include/end}]
+% \item[\hook{include/\meta{name}/end}, \hook{include/end}]
%
% These hooks are executed (in that order) after \LaTeX{} has
% stopped reading from the \cs{include} file, but before it has
% issued a \cs{clearpage} to output any deferred floats.
%
%
-% \item[\texttt{include/\meta{name}/after}, \texttt{include/after}]
+% \item[\hook{include/\meta{name}/after}, \hook{include/after}]
%
% These hooks are executed (in that order) after \LaTeX{} has
% issued the \cs{clearpage} but before is has switched back
@@ -349,6 +335,19 @@
% included material and bypassed if it is not loaded because of
% some \cs{includeonly} statement.\footnotemark
%
+% \item[\hook{include/excluded}, \hook{include/\meta{name}/excluded}]
+%
+% The above hooks for \cs{include} files are only executed when
+% the file is loaded (or more exactly the load is attempted). If,
+% however, the \cs{include} file is explicitly excluded (through
+% an \cs{includeonly} statement) the above
+% hooks are bypassed and instead the \hook{include/excluded}
+% hook followed by the \hook{include/\meta{name}/excluded} hook
+% are executed. This happens after
+% \LaTeX{} has loaded the \texttt{.aux} file for this include file,
+% i.e., after \LaTeX{} has updated its counters to pretend that the file
+% was seen.
+%
% \end{description}
% \end{variable}\footnotetext{For that reason
% another \cs{clearpage} is executed after these hooks which
@@ -359,6 +358,9 @@
% All \hook{include} hooks involving the name of the included file are implemented as
% one-time hooks (whereas all other such hooks are normal hooks).
%
+% If you want to execute code that is run for every \cs{include}
+% regardless of whether or not it is excluded, use the
+% \hook{cmd/include/before} or \hook{cmd/include/after} hooks.
%
%
%
@@ -471,7 +473,7 @@
% the level value and search further for \texttt{LEVEL} with that value
% which should then be the \texttt{START} level of the file you are in.
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
@@ -728,7 +730,7 @@
% this declaration is done for you automatically and, indeed, they should
% not be declared explicitly.
%
-% Those named \hook{.../after} and \texttt{include/.../end}
+% Those named \hook{.../after} and \hook{include/.../end}
% are, when code is added, declared as reversed hooks.
%
%
@@ -742,8 +744,8 @@
% \begin{macro}{\@input@file@exists@with@hooks}
% \begin{macro}{\unqu@tefilef@und}
% \cs{InputIfFileExists} loads any file if it is available so we
-% have to add the hooks \texttt{file/before} and
-% \texttt{file/after} in the right places. If the file doesn't
+% have to add the hooks \hook{file/before} and
+% \hook{file/after} in the right places. If the file doesn't
% exist no hooks should be executed.
% \begin{macrocode}
%</2ekernel>
@@ -783,7 +785,7 @@
% can't rely on that still being true after the file has been
% processed. Thus for using the name in the file hooks we need to
% preserve the name and then restore it for the
-% \texttt{file/.../after} hook.
+% \hook{file/.../after} hook.
%
% The hook always refers to the file requested by the user. The hook
% is \emph{always} loaded for \cs{CurrentFile} which usually is the
@@ -1046,7 +1048,8 @@
%
% \subsection{Selecting a file (\cs{set@curr@file})}
%
-% \begin{macro}{\set@curr@file,\@curr@file,\@curr@file@reqd}
+% \begin{macro}{\set@curr@file,\set@curr@file@nosearch}
+% \begin{macro}{\@curr@file,\@curr@file@reqd}
% \changes{v1.0f}{2021/01/31}{set \cs{protect} to \cs{string} gh/481}
% Now we hook into \cs{set@curr@file} to resolve a possible file
% substitution, and add \cs{@expl@@@filehook@set@curr@file@@nNN}
@@ -1070,13 +1073,23 @@
% control sequence.
% \changes{v1.0i}{2021/04/20}
% {Make \string~ expand to a string (tracks change in l3kernel)}
+% \changes{v1.0m}{2022/03/10}
+% {Add \cs{set@curr@file@nosearch} for \pkg{graphicx}}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease>\IncludeInRelease{2022/06/01}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
-\def\set@curr@file#1{%
+\def\set@curr@file{%
+ \begingroup
+ \set@curr@file@aux}
+\edef\set@curr@file@nosearch{%
\begingroup
+ \let\noexpand\input@path\noexpand\@empty
+ \csname seq_clear:N\endcsname
+ \expandafter\noexpand\csname l_file_search_path_seq\endcsname
+ \noexpand\set@curr@file@aux}
+\def\set@curr@file@aux#1{%
\escapechar\m@ne
\let\protect\string
\edef~{\string~}%
@@ -1117,6 +1130,32 @@
% \end{macrocode}
%
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\set@curr@file}{Setting current file name}%
+%<latexrelease>\def\set@curr@file#1{%
+%<latexrelease> \begingroup
+%<latexrelease> \escapechar\m@ne
+%<latexrelease> \let\protect\string
+%<latexrelease> \edef~{\string~}%
+%<latexrelease> \expandafter\def\csname\expandafter\endcsname
+%<latexrelease> \expandafter{\csname\endcsname}%
+%<latexrelease> \@expl@@@filehook@if@no@extension@@nTF{#1}%
+%<latexrelease> {\@tempswatrue}{\@tempswafalse}%
+%<latexrelease> \@kernel@make@file@csname\@curr@file
+%<latexrelease> \@expl@@@filehook@resolve@file@subst@@w {#1}%
+%<latexrelease> \@expl@@@filehook@if@file@replaced@@TF
+%<latexrelease> {\@kernel@make@file@csname\@curr@file@reqd
+%<latexrelease> \@expl@@@filehook@normalize@file@name@@w{#1}%
+%<latexrelease> \if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file@reqd \fi}%
+%<latexrelease> {\if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file \fi
+%<latexrelease> \global\let\@curr@file@reqd\@curr@file}%
+%<latexrelease> \@expl@@@filehook@clear@replacement@flag@@
+%<latexrelease> \endgroup}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
%<latexrelease>\def\set@curr@file#1{%
@@ -1136,6 +1175,7 @@
%<latexrelease> \global\let\@curr@file@reqd\@curr@file}%
%<latexrelease> \@expl@@@filehook@clear@replacement@flag@@
%<latexrelease> \endgroup}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
@@ -1152,6 +1192,7 @@
%<latexrelease> \csname\@firstofone#1\@empty\endcsname}}%
%<latexrelease> \endgroup
%<latexrelease>}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
@@ -1159,10 +1200,12 @@
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
%<latexrelease>\let\set@curr@file\@undefined
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
%
diff --git a/macros/latex/base/ltfiles.dtx b/macros/latex/base/ltfiles.dtx
index 4c24716df6..d99dfdcd48 100644
--- a/macros/latex/base/ltfiles.dtx
+++ b/macros/latex/base/ltfiles.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfiles.dtx}
- [2021/10/14 v1.2p LaTeX Kernel (File Handling)]
+ [2022/05/27 v1.2r LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -106,7 +106,7 @@
% If the file exists on the system, execute \emph{then} and input
% \emph{NAME} otherwise execute \emph{else}.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v1.0a}{1994/03/07}{Initial version, split from latex.dtx}
% \changes{v1.0a}{1994/03/07}{Long lines wrapped to 72 columns}
@@ -817,7 +817,7 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease>\IncludeInRelease{2022/06/01}%
%<latexrelease> {\@include}{Spaces in file names and hooks}%
% \end{macrocode}
%
@@ -899,6 +899,16 @@
% \begin{macrocode}
\deadcycles\z@
\@nameuse{cp@#1}%
+% \end{macrocode}
+% We also execute a hook in this case, first a general used for
+% every include file that is exclude and then a specific one that
+% contains the name of the include file.
+% \changes{v1.2q}{2022/04/01}{Process some hooks is an include file is bypassed}
+% \begin{macrocode}
+%-----------------------------------------
+ \UseHook{include/excluded}%
+ \UseOneTimeHook{include/#1/excluded}%
+%-----------------------------------------
\fi
\let\@auxout\@mainaux
% \end{macrocode}
@@ -917,13 +927,66 @@
\NewHook{include/before}
\NewReversedHook{include/end}
\NewReversedHook{include/after}
+\NewHook{include/excluded}
%<latexrelease>\EndIncludeInRelease
%</2ekernel|latexrelease>
% \end{macrocode}
%
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@include}{Spaces in file names and hooks}%
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\def\@include#1 {%
+%<latexrelease>\ifx\@nodocument\relax
+%<latexrelease> \clearpage
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\write\@mainaux{\string\@input{#1.aux}}%
+%<latexrelease> \fi
+%<latexrelease> \@tempswatrue
+%<latexrelease> \if@partsw
+%<latexrelease> \@tempswafalse
+%<latexrelease> \edef\reserved@b{#1}%
+%<latexrelease> \@for\reserved@a:=\@partlist\do
+%<latexrelease> {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
+%<latexrelease> \fi
+%<latexrelease> \if@tempswa
+%<latexrelease> \let\@auxout\@partaux
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\openout\@partaux "#1.aux"
+%<latexrelease> \immediate\write\@partaux{\relax}%
+%<latexrelease> \fi
+%<latexrelease> \@filehook@set@CurrentFile
+%<latexrelease> \UseHook{include/before}%
+%<latexrelease> \UseOneTimeHook{include/#1/before}%
+%<latexrelease> \@input@{#1.tex}%
+%<latexrelease> \UseOneTimeHook{include/#1/end}%
+%<latexrelease> \UseHook{include/end}%
+%<latexrelease> \clearpage
+%<latexrelease> \UseOneTimeHook{include/#1/after}%
+%<latexrelease> \UseHook{include/after}%
+%<latexrelease> \clearpage
+%<latexrelease> \@writeckpt{#1}%
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\closeout\@partaux
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \deadcycles\z@
+%<latexrelease> \@nameuse{cp@#1}%
+%<latexrelease> \fi
+%<latexrelease> \let\@auxout\@mainaux
+%<latexrelease>\else
+%<latexrelease>\@latex@warning{%
+%<latexrelease> \noexpand\include should only be used after \string\begin{document}}%
+%<latexrelease>\@input@{#1}%
+%<latexrelease>\fi}
+%<latexrelease>\NewHook{include/before}
+%<latexrelease>\NewReversedHook{include/end}
+%<latexrelease>\NewReversedHook{include/after}
+% \end{macrocode}
+%
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\@include}{Spaces in file names}%
+%<latexrelease> {\@include}{Spaces in file names and hooks}%
%<latexrelease>\def\@include#1 {%
%<latexrelease> \clearpage
%<latexrelease> \if@filesw
@@ -1577,6 +1640,7 @@
%
% \changes{v1.0o}{1994/11/30}
% {Use \cs{@dofilelist}}
+% \changes{v1.2r}{2022/05/27}{Try saved version string, if ver@.. is \cs{relax} (gh/825)}
% \begin{macrocode}
\def\@dofilelist{%
\typeout{^^J *File List*}%
@@ -1587,6 +1651,15 @@
\ifx\filename@ext\relax tex\else\filename@ext\fi}%
\expandafter\let\expandafter\reserved@b
\csname ver@\reserved@a\endcsname
+% \end{macrocode}
+% Packages that \cs{relax} their \cs{ver@...} string to allow for
+% multiple loading (e.g., \pkg{fontenc}) can use \cs{ver@@...} to
+% store the version information instead.
+% \begin{macrocode}
+ \ifx\reserved@b\relax
+ \expandafter\let\expandafter\reserved@b
+ \csname ver@@\reserved@a\endcsname
+ \fi
\expandafter\expandafter\expandafter\@listfiles\expandafter
\filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@
\typeout{%
diff --git a/macros/latex/base/ltfinal.dtx b/macros/latex/base/ltfinal.dtx
index 40017a205a..b1b8ff953b 100644
--- a/macros/latex/base/ltfinal.dtx
+++ b/macros/latex/base/ltfinal.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2021/09/06 v2.2q LaTeX Kernel (Final Settings)]
+ [2022/06/02 v2.2u LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -57,11 +57,14 @@
%
%
% \section{Final settings}
-% This section contains the final settings for \LaTeX. It initializes
-% some debugging and typesetting parameters, sets the default
-% |\catcode|s and uc/lc codes, and inputs the hyphenation file.
%
-% \StopEventually{}
+% This section contains the final settings for \LaTeX. It initializes
+% some debugging and typesetting parameters, sets the default
+% |\catcode|s and uc/lc codes, and inputs the hyphenation file.
+%
+%
+%
+% \MaybeStop{}
%
% \changes{v0.1a}{1994/03/07}{Initial version, split from latex.dtx}
% \changes{v0.1a}{1994/03/07}{Remove oldcomments environment}
@@ -150,6 +153,34 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+% Allocate 3 mark classes to be used in \cs{markboth} and
+% \cs{markright}. Should be done earlier but for that definition of
+% \cs{newmarks} needs moving (which it should I guess).
+% \changes{v2.2s}{2022/04/03}{Integration of new mark management interface}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {2e-left}{Delayed legacy marks}%
+\NewMarkClass {2e-left}
+\NewMarkClass {2e-right}
+\NewMarkClass {2e-right-nonempty}
+% \end{macrocode}
+% No rollback really, the marks will remain.
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {2e-left}{Delayed legacy marks}%
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+
+
+%
%\begin{macro}{\newXeTeXintercharclass}
% \changes{v2.0a}{2014/12/30}{macro added}
% \changes{v2.0b}{2015/01/23}{use reserved count 257}
@@ -242,9 +273,9 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{trace_stack_levels}
+% \begin{macro}{trace\string_stack\string_levels}
% Now define the Lua function to emulate \cs{tracingstacklevels} and
-% install it in the \texttt{input_level_string} callback.
+% install it in the |input_level_string| callback.
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -1033,11 +1064,16 @@
%
% \begin{macro}{\MakeUppercase}
% \begin{macro}{\MakeUppercase}
+% \begin{macro}{\NoCaseChange}
+% \begin{macro}{\@uclclist}
+% \begin{macro}{\@expl@text@lowercase@@n}
+% \begin{macro}{\@expl@text@uppercase@@n}
% \begin{macro}{\@uclclist}
%
+%
% \changes{v1.1a}{1997/10/20}{Removed \cs{aa} and \cs{AA} from
% \cs{@uclclist} as these are macros.}
-%
+% \changes{v2.2r}{2022/02/20}{use \cs{text_lowercase:n}}%
% And whilst we're doing things with uc/lc tables, here are two
% commands to upper- and lower-case a string.
%
@@ -1048,6 +1084,24 @@
% mathematics, environment names, labels, etc. A much better
% long-term solution is to use all-caps fonts, but these aren't
% generally available.
+%
+% Two wrappers around the L3 case changing functions.
+% |\protected| to make them mostly safe as replacements for |uppercase|
+% and |\lowercase|.
+% \begin{macrocode}
+\ExplSyntaxOn
+\protected\def\@expl@text@lowercase@@n{\text_lowercase:n}
+\protected\def\@expl@text@uppercase@@n{\text_uppercase:n}
+% \end{macrocode}
+%
+% \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}}
+% |\NoCaseChange| protects its argument from the case change functions.
+% \begin{macrocode}
+\tl_put_right:Nn \l_text_case_exclude_arg_tl { \NoCaseChange }
+\cs_new_protected:Npn \NoCaseChange #1 {#1}
+\ExplSyntaxOff
+% \end{macrocode}
+%
% \begin{macrocode}
\DeclareRobustCommand{\MakeUppercase}[1]{{%
\def\i{I}\def\j{J}%
@@ -1056,20 +1110,17 @@
% \end{macrocode}
% Tell UTF-8 processing to process chars even though we are in an \cs{protected@edef}.
% \changes{v2.1h}{2019/09/14}{Expand UTF8 chars when case changing (github/177)}
+% \changes{v2.2r}{2022/02/20}
+% {Use \cs{@expl@text@uppercase@@n}, removing local redefinition of \cs{UTF@two@octets@noexpand}}%
+% \changes{v2.2t}{2022/04/21}{Support \cs{noexpand} in argument of \cs{@expl@text@uppercase@@n}}
% \begin{macrocode}
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\uppercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@uppercase@@n{\noexpand\unexpanded{#1}}}%
\reserved@a
}}
\DeclareRobustCommand{\MakeLowercase}[1]{{%
\def\reserved@a##1##2{\let##2##1\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\lowercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@lowercase@@n{\noexpand\unexpanded{#1}}}%
\reserved@a
}}
% \end{macrocode}
@@ -1105,6 +1156,10 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v1.0h}{1994/05/13}{Added output enc stuff}
% \changes{v1.0i}{1994/05/16}{moved output enc stuff to lfonts}
diff --git a/macros/latex/base/ltfloat.dtx b/macros/latex/base/ltfloat.dtx
index ac3b641817..8b5b92759a 100644
--- a/macros/latex/base/ltfloat.dtx
+++ b/macros/latex/base/ltfloat.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -83,7 +83,7 @@
% For example, `pht' specifies that the float can appear in any of
% three locations: page, here or top.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/ltfntcmd.dtx b/macros/latex/base/ltfntcmd.dtx
index 6c4ec4b3d1..64064abcb5 100644
--- a/macros/latex/base/ltfntcmd.dtx
+++ b/macros/latex/base/ltfntcmd.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -271,7 +271,7 @@
% amstex.sty} is used as this version can cause space to be removed
% immediately before the |\/|.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{The implementation}
diff --git a/macros/latex/base/ltfssaxes.dtx b/macros/latex/base/ltfssaxes.dtx
index 86c84b111f..843e8b544c 100644
--- a/macros/latex/base/ltfssaxes.dtx
+++ b/macros/latex/base/ltfssaxes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -66,7 +66,7 @@
%
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v1.0h}{2020/12/04}{Reorganized the rollback data}
%
diff --git a/macros/latex/base/ltfssbas.dtx b/macros/latex/base/ltfssbas.dtx
index 1f30372d06..d013ec0ecb 100644
--- a/macros/latex/base/ltfssbas.dtx
+++ b/macros/latex/base/ltfssbas.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -76,7 +76,7 @@
% completely accurate.
% \end{quote}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v3.0v}{1998/08/17}{(RmS) Documentation fixes.}
% \changes{v3.0j}{1995/10/22}{(RmS) New size function macro
@@ -2257,3 +2257,13 @@
%
% \Finale
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
+
diff --git a/macros/latex/base/ltfsscmp.dtx b/macros/latex/base/ltfsscmp.dtx
index 03be855127..09f43a0d94 100644
--- a/macros/latex/base/ltfsscmp.dtx
+++ b/macros/latex/base/ltfsscmp.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -82,7 +82,7 @@
% kernel and made available via \textsf{latexrelease} package so that
% backward compatibility remains ensured for very old documents.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v3.0b}{1995/06/15}
diff --git a/macros/latex/base/ltfssdcl.dtx b/macros/latex/base/ltfssdcl.dtx
index 4f2cabd613..65bc40803e 100644
--- a/macros/latex/base/ltfssdcl.dtx
+++ b/macros/latex/base/ltfssdcl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -77,7 +77,7 @@
% completely accurate.
% \end{quote}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Interface Commands}
%
diff --git a/macros/latex/base/ltfssini.dtx b/macros/latex/base/ltfssini.dtx
index f817fdd847..12e3b6289b 100644
--- a/macros/latex/base/ltfssini.dtx
+++ b/macros/latex/base/ltfssini.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -70,7 +70,7 @@
% distribution, or \emph{The \LaTeX\ Companion} for higher level
% documentation of these commands.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v3.0i}{1998/08/17}{(RmS) Minor documentation fixes.}
diff --git a/macros/latex/base/ltfsstrc.dtx b/macros/latex/base/ltfsstrc.dtx
index f562a4fa90..699fd2c594 100644
--- a/macros/latex/base/ltfsstrc.dtx
+++ b/macros/latex/base/ltfsstrc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -138,7 +138,7 @@
% \end{description}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{A driver for this document}
%
diff --git a/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index 7bad3dd37f..244eed91e2 100644
--- a/macros/latex/base/lthooks-code.pdf
+++ b/macros/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.pdf b/macros/latex/base/lthooks-doc.pdf
index fb7da9f5b2..266cd976ac 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.tex b/macros/latex/base/lthooks-doc.tex
index a51e2cd6e0..b5f3622a17 100644
--- a/macros/latex/base/lthooks-doc.tex
+++ b/macros/latex/base/lthooks-doc.tex
@@ -3,5 +3,6 @@
\AtBeginDocument{\OnlyDescription
% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
}
\input{lthooks.dtx}
diff --git a/macros/latex/base/lthooks.dtx b/macros/latex/base/lthooks.dtx
index 5b3d80e984..06a0e8258f 100644
--- a/macros/latex/base/lthooks.dtx
+++ b/macros/latex/base/lthooks.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2020-2021
+% Copyright (C) 2020-2022
% Frank Mittelbach, Phelype Oleinik & LaTeX Team
%
% This file is part of the LaTeX base system.
@@ -31,28 +31,13 @@
%%% From File: lthooks.dtx
%
% \begin{macrocode}
-\def\lthooksversion{v1.0s}
-\def\lthooksdate{2021/09/28}
+\def\lthooksversion{v1.0u}
+\def\lthooksdate{2022/05/19}
% \end{macrocode}
%
%<*driver>
\documentclass{l3doc}
-% bug fix fo l3doc.cls
-\ExplSyntaxOn
-\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
- {
- \vbox_set:Nn \l__codedoc_macro_box
- {
- \vbox_unpack_drop:N \l__codedoc_macro_box
- \hbox { \llap { \__codedoc_print_macroname:nN {#1} #2
- \MacroFont % <----- without it the \ is in lmr10 if a link is made
- \
- } }
- }
- \int_incr:N \l__codedoc_macro_int
- }
-\ExplSyntaxOff
\providecommand\InternalDetectionOff{}
\providecommand\InternalDetectionOn{}
@@ -798,6 +783,7 @@
% \begin{function}{\ShowHook,\LogHook}
% \begin{syntax}
% \cs{ShowHook} \Arg{hook}
+% \cs{LogHook} \Arg{hook}
% \end{syntax}
% Displays information about the \meta{hook} such as
% \begin{itemize}
@@ -1096,6 +1082,7 @@
% \begin{function}{\hook_show:n,\hook_log:n}
% \begin{syntax}
% \cs{hook_show:n} \Arg{hook}
+% \cs{hook_log:n} \Arg{hook}
% \end{syntax}
% Displays information about the \meta{hook} such as
% \begin{itemize}
@@ -1391,7 +1378,7 @@
% in real documents.
%
% For example, \pkg{babel} may want to provide hooks such as
-% \hook{babel/afterextras/\meta{language}}. Language support in
+% \hook{babel/\meta{language}/afterextras}. Language support in
% \pkg{babel} is often done through external language
% packages. Thus doing the activation for all languages inside the
% core \pkg{babel} code is not a viable approach. Instead it needs
@@ -1417,7 +1404,7 @@
% hook management (by adding various rules to ensure the
% appropriate ordering with respect to other code added by
% packages). However, this makes every document unnecessary
-% slow, because there has to be sorting even through the result is
+% slow, because there has to be sorting even though the result is
% predetermined. Furthermore it forces package writers to
% unnecessarily add such rules if they add further code to the hook
% (or break \LaTeX{}).
@@ -1502,9 +1489,6 @@
% Like \cs{AtBeginDocument} but for the \hook{enddocument} hook.
% \end{function}
%
-% There is also \cs{AtBeginDvi} which is discussed in conjunction
-% with the shipout hooks.
-%
% \bigskip
%
% The few hooks that existed previously in \LaTeXe{} used internally
@@ -1962,7 +1946,21 @@
% \end{description}
%
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+%
+% \subsection{Hook provided by the mark mechanism}
+%
+% See \texttt{ltmarks-doc.pdf} for details.
+% \begin{description}
+%
+% \item[\hook{insertmark}]
+%
+% This hook allows for a special setup while \cs{InsertMark}
+% inserts a mark. It is executed in group so local changes only
+% apply to the mark being inserted.
+%
+% \end{description}
+%
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
@@ -2198,7 +2196,6 @@
% \end{macro}
%
%
-%
% \subsection{Providing new hooks}
%
% \subsubsection{The data structures of a hook}
@@ -2219,7 +2216,7 @@
% A token list holding the relation between \meta{label1} and
% \meta{label2} in the \meta{hook}. The \meta{labels} are lexically
% (reverse) sorted to ensure that two labels always point to the same
-% token list. For global rules, the \meta{hook} name is |??|.
+% token list. For global rules, the \meta{hook} name is \texttt{??}.
%
% \item[\cs{@@\textvisiblespace\meta{hook}}] The code that is actually executed
% when the hook is called in the document is stored in this token
@@ -3458,7 +3455,12 @@
}
\tl_const:cn { c_@@_generic_env/./begin_tl } { + }
\tl_const:cn { c_@@_generic_env/./end_tl } { + }
+% \end{macrocode}
+%
+% \changes{v1.0t}{2022/04/01}{Support generic \texttt{include/.../excluded} hooks}
+% \begin{macrocode}
\tl_const:cn { c_@@_generic_include/./end_tl } { - }
+\tl_const:cn { c_@@_generic_include/./excluded_tl } { + }
% \end{macrocode}
%
% Deprecated generic hooks:
@@ -3589,7 +3591,7 @@
% expansion in the code later on.
%
% \cs{@@\textvisiblespace??} isn't used, but it has to be defined to trick
-% the code into thinking that \verb=??= is actually a hook.
+% the code into thinking that \texttt{??} is actually a hook.
% \begin{macrocode}
\prop_new:c {g_@@_??_code_prop}
\prop_new:c {@@~??}
@@ -3624,6 +3626,11 @@
% \end{macrocode}
%
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2022/06/01}{\@@_gset_rule:nnnn}
+%<latexrelease> {Refuse~setting~rule~for~one-time~hooks}
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new_protected:Npn \@@_gset_rule:nnnn #1#2#3#4
{
\@@_if_deprecated_generic:nT {#1}
@@ -3631,7 +3638,13 @@
\@@_deprecated_generic_warn:n {#1}
\@@_do_deprecated_generic:Nn \@@_gset_rule:nnnn {#1}
{#2} {#3} {#4}
- \exp_after:wN \use_none:nnnnnnnnn \use_none:n
+ \@@_clean_to_scan:w
+ }
+ \@@_if_execute_immediately:nT {#1}
+ {
+ \msg_error:nnnnnn { hooks } { rule-too-late }
+ {#1} {#2} {#3} {#4}
+ \@@_clean_to_scan:w
}
% \end{macrocode}
% First we ensure the basic data structure of the hook exists:
@@ -3650,10 +3663,41 @@
{#1} {#2} {#4}
\@@_update_hook_code:n {#1}
}
- { \msg_error:nnnnnn { hooks } { unknown-rule }
- {#1} {#2} {#3} {#4} }
+ {
+ \msg_error:nnnnnn { hooks } { unknown-rule }
+ {#1} {#2} {#3} {#4}
+ }
+ \s_@@_mark
}
% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}{\@@_gset_rule:nnnn}
+%<latexrelease> {Refuse~setting~rule~for~one-time~hooks}
+%<latexrelease>\cs_new_protected:Npn \@@_gset_rule:nnnn #1#2#3#4
+%<latexrelease> {
+%<latexrelease> \@@_if_deprecated_generic:nT {#1}
+%<latexrelease> {
+%<latexrelease> \@@_deprecated_generic_warn:n {#1}
+%<latexrelease> \@@_do_deprecated_generic:Nn \@@_gset_rule:nnnn {#1}
+%<latexrelease> {#2} {#3} {#4}
+%<latexrelease> \exp_after:wN \use_none:nnnnnnnnn \use_none:n
+%<latexrelease> }
+%<latexrelease> \@@_init_structure:n {#1}
+%<latexrelease> \@@_rule_gclear:nnn {#1} {#2} {#4}
+%<latexrelease> \cs_if_exist_use:cTF { @@_rule_#3_gset:nnn }
+%<latexrelease> {
+%<latexrelease> {#1} {#2} {#4}
+%<latexrelease> \@@_update_hook_code:n {#1}
+%<latexrelease> }
+%<latexrelease> {
+%<latexrelease> \msg_error:nnnnnn { hooks } { unknown-rule }
+%<latexrelease> {#1} {#2} {#3} {#4}
+%<latexrelease> }
+%<latexrelease> }
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
% \end{macro}
% \end{macro}
%
@@ -3831,7 +3875,6 @@
% \end{macro}
%
%
-%
% \begin{macro}{\@@_initialize_hook_code:n}
% Initializing or reinitializing the fast execution hook code. In
% the preamble this is selectively done in case a hook gets used
@@ -3840,8 +3883,8 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_initialize_hook_code:n #1
{
- \@@_debug:n{ \iow_term:x{^^JUpdate~ code~ for~ hook~
- '#1' \on@line :^^J} }
+ \@@_debug:n
+ { \iow_term:x { ^^J Update~code~for~hook~'#1' \on@line :^^J } }
% \end{macrocode}
% This does the sorting and the updates.
% First thing we do is to check if a legacy hook macro exists and
@@ -3859,6 +3902,7 @@
% \cs{@@_initialize_single:NNn} and pass to it ready made csnames
% as they are needed several times inside. This way we save a bit
% on processing time if we do that up front.
+% \changes{v1.0u}{2022/05/17}{Refuse sorting one-time hooks (gh/818).}
% \begin{macrocode}
\@@_if_usable:nT {#1}
{
@@ -3873,7 +3917,7 @@
{
% \end{macrocode}
% By default the algorithm sorts the code chunks and then saves the
-% result in a token list for fast execution; this is done by adding the code chunks
+% result in a token list for fast execution; this is done by adding the code chunks
% one after another, using \cs{tl_gput_right:NV}. When we sort code for
% a reversed hook, all we have to do is to add the code chunks in
% the opposite order into the token list. So all we have to do
@@ -3902,8 +3946,8 @@
% i.e., we are only interested in storing the keys and the value is
% arbitrary.
% \begin{macrocode}
- \@@_debug:n{ \exp_args:NNx \prop_gput:Nnn
- \g_@@_used_prop {#1}{} }
+ \@@_debug:n
+ { \exp_args:NNx \prop_gput:Nnn \g_@@_used_prop {#1} { } }
}
}
}
@@ -4169,7 +4213,7 @@
% \meta{hook-code-plist}. We are about to apply the next rule and
% enter it into the data structure. \cs{@@_apply_label_pair:nnn} will
% just call \cs{@@_label_if_exist_apply:nnnF} for the \meta{hook}, and
-% if no rule is found, also try the \meta{hook} name \verb=??=
+% if no rule is found, also try the \meta{hook} name \texttt{??}
% denoting a default hook rule.
%
% \cs{@@_label_if_exist_apply:nnnF} will check if the rule exists for
@@ -4286,7 +4330,7 @@
% out to be a real issue, we can improve the code.
%
% Here the code is removed from \cs{l_@@_cur_hook_tl} rather than
-% \verb=#3= because the latter may be \verb=??=, and the default
+% \verb=#3= because the latter may be \texttt{??}, and the default
% hook doesn't store any code. Removing it instead from \cs{l_@@_cur_hook_tl}
% makes the default rules \verb=->= and \verb=<-= work properly.
% \begin{macrocode}
@@ -4320,16 +4364,17 @@
% \@@_apply_-rule_>:nnn,
% \@@_apply_-rule_<-:nnn,
% \@@_apply_-rule_->:nnn,
-% \@@_apply_-rule_x:nnn,
+% \@@_apply_-rule_xW:nnn,
+% \@@_apply_-rule_xE:nnn,
% }
% Reversed rules.
% \begin{macrocode}
-\cs_new_eq:cc { @@_apply_-rule_<:nnn } { @@_apply_rule_>:nnn }
-\cs_new_eq:cc { @@_apply_-rule_>:nnn } { @@_apply_rule_<:nnn }
+\cs_new_eq:cc { @@_apply_-rule_<:nnn } { @@_apply_rule_>:nnn }
+\cs_new_eq:cc { @@_apply_-rule_>:nnn } { @@_apply_rule_<:nnn }
\cs_new_eq:cc { @@_apply_-rule_<-:nnn } { @@_apply_rule_<-:nnn }
\cs_new_eq:cc { @@_apply_-rule_->:nnn } { @@_apply_rule_->:nnn }
-\cs_new_eq:cc { @@_apply_-rule_xE:nnn } { @@_apply_rule_xE:nnn }
-\cs_new_eq:cc { @@_apply_-rule_xW:nnn } { @@_apply_rule_xW:nnn }
+\cs_new_eq:cc { @@_apply_-rule_xE:nnn } { @@_apply_rule_xE:nnn }
+\cs_new_eq:cc { @@_apply_-rule_xW:nnn } { @@_apply_rule_xW:nnn }
% \end{macrocode}
% \end{macro}
%
@@ -4535,7 +4580,7 @@
% \meta{inline function} is executed with |#1|${}={}$\meta{relation},
% |#2|${}={}$\meta{label_1}\verb=|=\meta{label_2},
% and |#3|${}={}$\meta{hook} (the latter may be the argument |#1| to
-% \cs{@@_list_rules:nn}, or |??| if it is a default rule).
+% \cs{@@_list_rules:nn}, or \texttt{??} if it is a default rule).
% \begin{macrocode}
\cs_new_protected:Npn \@@_list_rules:nn #1 #2
{
@@ -4847,6 +4892,7 @@
% clears the hook so that any further call to \cs{hook_use:n} or
% \cs{hook_use_once:n} will expand to nothing.
% \changes{v1.0r}{2021/09/06}{Clean up after \cs{UseOneTimeHook} (gh/606)}
+% \changes{v1.0u}{2022/05/13}{Check if prop exists to avoid l3debug error}
% \begin{macrocode}
\cs_new_protected:Npn \@@_use_once_set:n #1
{ \@@_tl_gset:cn { g_@@_#1_reversed_tl } { I } }
@@ -4855,7 +4901,7 @@
\@@_tl_gclear:c { @@~#1 }
\@@_tl_gclear:c { @@_next~#1 }
\@@_tl_gclear:c { @@_toplevel~#1 }
- \prop_gclear:c { g_@@_#1_code_prop }
+ \prop_gclear_new:c { g_@@_#1_code_prop }
}
% \end{macrocode}
% \end{macro}
@@ -4872,7 +4918,7 @@
% empty.
% \changes{v1.0r}{2021/09/06}{Macro added (gh/606)}
% \begin{macrocode}
-\prg_new_conditional:Npnn \@@_if_execute_immediately:n #1 { F, TF }
+\prg_new_conditional:Npnn \@@_if_execute_immediately:n #1 { T, F, TF }
{
\@@_if_usable:nTF {#1}
{
@@ -5113,7 +5159,8 @@
%
% \begin{macrocode}
\msg_new:nnnn { hooks } { unknown-rule }
- { Unknown~ relationship~ '#3'~
+ {
+ Unknown~ relationship~ '#3'~
between~ labels~ '#2'~ and~ '#4'~
\str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
Perhaps~ a~ misspelling?
@@ -5130,6 +5177,22 @@
% \end{macrocode}
%
% \begin{macrocode}
+\msg_new:nnnn { hooks } { rule-too-late }
+ {
+ Sorting~rule~for~'#1'~hook~applied~too~late.\\
+ Try~setting~this~rule~earlier.
+ }
+ {
+ You~tried~to~set~the~ordering~of~hook~'#1'~using\\
+ \ \ \iow_char:N\\DeclareHookRule{#1}{#2}{#3}{#4}\\
+ but~hook~'#1'~was~already~used~as~a~one-time~hook,~
+ thus~sorting~is\\
+ no~longer~possible.~Declare~the~rule~
+ before~the~hook~is~used.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\msg_new:nnnn { hooks } { misused-top-level }
{
Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
@@ -5596,4 +5659,10 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
diff --git a/macros/latex/base/lthyphen.dtx b/macros/latex/base/lthyphen.dtx
index 9244db0642..b7cede1175 100644
--- a/macros/latex/base/lthyphen.dtx
+++ b/macros/latex/base/lthyphen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -65,7 +65,7 @@
% of \texttt{hyphen.ltx}. See the comments below for additional
% information.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% To produce the printed version of this file the following code
% is used. It can be extracted with the \dst{} program, or one can run
diff --git a/macros/latex/base/ltidxglo.dtx b/macros/latex/base/ltidxglo.dtx
index 75a80cd439..395fe83975 100644
--- a/macros/latex/base/ltidxglo.dtx
+++ b/macros/latex/base/ltidxglo.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -68,7 +68,7 @@
%
% \DescribeMacro{\glossary} Make a glossary entry for |#1|.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/31}{Initial version of ltidxbib.dtx,
diff --git a/macros/latex/base/ltkeys.dtx b/macros/latex/base/ltkeys.dtx
new file mode 100644
index 0000000000..00c2600289
--- /dev/null
+++ b/macros/latex/base/ltkeys.dtx
@@ -0,0 +1,518 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021-2022
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+%
+% \iffalse
+%%% From File: ltkeys.dtx
+%
+%<*driver>
+% \fi
+\ProvidesFile{ltkeys.dtx}
+ [2022/02/21 v1.0f LaTeX Kernel (Kevyal options)]
+% \iffalse
+\documentclass{l3doc}
+\GetFileInfo{ltkeys.dtx}
+\title{\filename}
+\date{\filedate}
+\author{%
+ \LaTeX{} Team}
+
+\begin{document}
+ \maketitle
+ \DocInput{ltkeys.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Creating and using keyval options}
+%
+% As with any key--value input, using key--value pairs as package or
+% class options has two parts: creating the key options and setting (using)
+% them. Options created in this way \emph{may} be used after package loading
+% as general key--value settings: this will depend on the nature of the
+% underlying code.
+%
+% \begin{function}{\DeclareKeys}
+% \begin{syntax}
+% \cs{DeclareKeys} \oarg{family} \marg{declarations}
+% \end{syntax}
+% Creates a series of options from a comma-separated \meta{declarations} list.
+% Each entry in this list is a key--value pair, with the \meta{key} having one
+% or more \meta{properties}. A small number of \enquote{basic}
+% \meta{properties} are described below. The full range of properties,
+% provided by \pkg{l3keys}, can also be used for more powerful processing.
+% See \texttt{interface3} for the full details.
+%
+% The basic properties provided here are
+% \begin{itemize}
+% \item \texttt{.code} --- execute arbitrary code
+% \item \texttt{.if} --- sets a \TeX{} \cs{if...} switch
+% \item \texttt{.store} --- stores a value in a macro
+% \item \texttt{.usage} -- defines whether the option can be given only
+% when loading (\texttt{load}), in the preamble (\texttt{preamble}) or
+% has no limitation on scope (\texttt{general})
+% \end{itemize}
+% The part of the \meta{key} before the \meta{property} is the \meta{name},
+% with the \meta{value} working with the \meta{property} to define the
+% behaviour of the option.
+%
+% For example, with
+% \begin{verbatim}
+% \DeclareKeys[mypkg]
+% {
+% draft.if = @mypkg@draft ,
+% draft.usage = preamble ,
+% name.store = \@mypkg@name ,
+% name.usage = load ,
+% second-name.store = \@mypkg@other@name
+% }
+% \end{verbatim}
+% three options would be create. The option \texttt{draft} can be given
+% anywhere in the preamble, and will set a switch called \cs{if@mypkg@draft}.
+% The option \texttt{name} can only be given during package loading, and will
+% save whatever value it is given in \cs{@mypkg@name}. Finally, the option
+% \texttt{second-name} can be given anywhere, and will save its value in
+% \cs{@mypkg@other@name}.
+%
+% Keys created \emph{before} the use of \cs{ProcessKeyOptions}act as
+% package options.
+% \end{function}
+%
+% \begin{function}{\DeclareUnknownKeyHandler}
+% \begin{syntax}
+% \cs{DeclareUnknownKeyHandler} \oarg{family} \marg{code}
+% \end{syntax}
+% The function \cs{DeclareUnknownKeyHandler} may be used to define
+% the behavior when an undefined key is encountered. The \meta{code}
+% will receive the unknown key name as |#1| and the value as |#2|.
+% These can then be processed as appropriate, e.g.~by forwarding
+% to another package.
+% \end{function}
+%
+% \begin{function}{\ProcessKeyOptions}
+% \begin{syntax}
+% \cs{ProcessKeyOptions} \oarg{family}
+% \end{syntax}
+% The \cs{ProcessKeyOptions} function is used to check the current
+% option list against the keys defined for \meta{family}. Global (class)
+% options and local (package) options are checked when this function
+% is called in a package.
+% \end{function}
+%
+% \begin{function}{\SetKeys}
+% \begin{syntax}
+% \cs{SetKeys} \oarg{family} \Arg{keyvals}
+% \end{syntax}
+% Sets (applies) the explicit list of \meta{keyvals} for the \meta{family}:
+% it the latter is not given, the value of \cs{@currname} used. This command
+% may be used within a package to set options before or after using
+% \cs{ProcessKeyOptions}.
+% \end{function}
+%
+% \StopEventually{}
+%
+% \subsection{Implementation of \pkg{ltkeys}}
+%
+% \begin{macrocode}
+%<@@=keys>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \subsection{Key properties}
+%
+% \begin{macro}{.code, .if, .store, .usage}
+% \changes{v1.0b}{2022/02/05}
+% {Create properties in \texttt{ltlkeys}}
+% \changes{v1.0c}{2022/02/07}
+% {Correct \texttt.{.code} property}
+% \begin{macrocode}
+\group_begin:
+ \cs_set_protected:Npn \@@_tmp:nn #1#2
+ {
+ \quark_if_recursion_tail_stop:n {#1}
+ \cs_new_eq:cc
+ { \c_@@_props_root_str . #2 }
+ { \c_@@_props_root_str . #1 }
+ \@@_tmp:nn
+ }
+ \@@_tmp:nn
+ { code:n } { code }
+ { legacy_if_set:n } { if }
+ { tl_set:N } { store }
+ { usage:n } { usage }
+ { \q_recursion_tail } { }
+ \q_recursion_stop
+\group_end:
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Main mechanism}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
+% \end{macrocode}
+%
+% \begin{macro}{\l_@@_options_clist}
+% A single list is used for all options, into which they are collected
+% before processing.
+% \begin{macrocode}
+\clist_new:N \l_@@_options_clist
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{variable}{\l_@@_options_loading_bool}
+% Used to indicate we are in the loading phase: controls the outcome
+% of warnings.
+% \begin{macrocode}
+\bool_new:N \l_@@_options_loading_bool
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_options:n}
+% \changes{v1.0f}{2022/03/18}{Simplify to always cover global options}
+% \begin{macro}{\@@_options_aux:n}
+% \changes{v1.0b}{2022/01/15}
+% {Clear option list in end-of-package hook}
+% \begin{macro}{\@@_options_end:}
+% The main function calls functions to collect up the global and local
+% options into \cs{l_@@_options_clist} before calling the
+% underlying functions to actually do the processing. So that a suitable
+% message is produced if the option is unknown, the special
+% \texttt{unknown} key is set if it does not already exist for the
+% current family, and is cleaned up afterwards if required. To allow
+% the \LaTeXe{} layer to know this mechanism is active, and to deal
+% with the key family not matching the file name, we store the family
+% in all cases.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options:n #1
+ { \@@_options_expand_module:Nn \@@_options_aux:n {#1} }
+\cs_new_protected:Npn \@@_options_aux:n #1
+ {
+ \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1}
+ \cs_set_protected:Npn \@@_option_end: { }
+ \clist_clear:N \l_@@_options_clist
+ \@@_options_global:n {#1}
+ \@@_options_local:
+ \keys_if_exist:nnF {#1} { unknown }
+ {
+ \keys_define:nn {#1}
+ {
+ unknown .code:n =
+ {
+ \msg_error:nnxx { keys } { option-unknown }
+ { \l_keys_key_str } { \@currname }
+ }
+ }
+ \cs_set_protected:Npn \@@_option_end:
+ { \keys_define:nn {#1} { unknown .undefine: } }
+ }
+ \bool_set_true:N \l_@@_options_loading_bool
+ \keys_set:nV {#1} \l_@@_options_clist
+ \bool_set_false:N \l_@@_options_loading_bool
+ \AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
+ \@@_option_end:
+ \@@_options_loaded:n {#1}
+ }
+\msg_new:nnnn { keys } { option-unknown }
+ { Unknown~option~'#1'~for~package~#2. }
+ {
+ LaTeX~has~been~asked~to~set~an~option~called~'#1'~
+ but~the~#2~package~has~not~created~an~option~with~this~name.
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_global:n}
+% \changes{v1.0f}{2022/03/18}{Simplify to always cover global options}
+% Global (class) options are handled differently for \LaTeXe{} packages
+% and classes. Hence this function is essentially a check on the current
+% file type. The initial test is needed as \LaTeXe{} allows variables to
+% be equal to \cs{scan_stop:}, which is usually forbidden in \pkg{expl3}
+% code.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_global:n #1
+ {
+ \cs_if_eq:NNF \@classoptionslist \scan_stop:
+ {
+ \cs_if_eq:NNTF \@currext \@clsextension
+ { \@@_options_class:n {#1} }
+ { \@@_options_package:n {#1} }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_class:n}
+% For classes, each option (stripped of any content after |=|)
+% is checked for existence as a key. If found, the option is added to
+% the combined list for processing. On the other hand, unused options
+% are stored up in \cs{@unusedoptionlist}. Before any of that, though,
+% there is a simple check to see if there is an |unknown| key. If there
+% is, then \emph{everything} will match and the mapping can be skipped.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_class:n #1
+ {
+ \cs_if_free:cF { opt@ \@currname . \@currext }
+ {
+ \keys_if_exist:nnTF {#1} { unknown }
+ {
+ \clist_put_right:Nv \l_@@_options_clist
+ { opt@ \@currname . \@currext }
+ }
+ {
+ \clist_map_inline:cn { opt@ \@currname . \@currext }
+ {
+ \keys_if_exist:neTF
+ {#1} { \@@_remove_equals:n {##1} }
+ { \clist_put_right:Nn \l_@@_options_clist {##1} }
+ { \clist_put_right:Nn \@unusedoptionlist {##1} }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_package:n}
+% For global options when processing a package, the tasks are slightly
+% different from those for a class. The check is the same, but here
+% there is nothing to do if the option is not applicable. Each valid
+% option also needs to be removed from \cs{@unusedoptionlist}.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_package:n #1
+ {
+ \clist_map_inline:Nn \@classoptionslist
+ {
+ \keys_if_exist:neT {#1} { \@@_remove_equals:n {##1} }
+ {
+ \clist_put_right:Nn \l_@@_options_clist {##1}
+ \clist_remove_all:Nn \@unusedoptionlist {##1}
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_local:}
+% If local options are found, the are added to the processing list.
+% \LaTeXe{} stores options for each file in a macro which may or may not
+% exist, hence the need to use \cs{cs_if_exist:c}.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_local:
+ {
+ \cs_if_eq:NNF \@currext \@clsextension
+ {
+ \cs_if_exist:cT { opt@ \@currname . \@currext }
+ {
+ \clist_put_right:Nv \l_@@_options_clist
+ { opt@ \@currname . \@currext }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_remove_equals:n}
+% \begin{macro}[EXP]{\@@_remove_equals:w}
+% As the name suggests, this is a simple function to remove an equals
+% sign from the input. This is all wrapped up in an \texttt{n} function
+% so that there will always be a sign available.
+% \begin{macrocode}
+\cs_new:Npn \@@_remove_equals:n #1
+ { \@@_remove_equals:w #1 = \s_@@_stop }
+\cs_new:Npn \@@_remove_equals:w #1 = #2 \s_@@_stop { \exp_not:n {#1} }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{The document interfaces}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \keys_define:nn { nx }
+% \end{macrocode}
+%
+% \begin{macro}{\@@_options_expand_module:Nn}
+% \changes{v1.0e}{2022/02/21}
+% {Faster approach to module expansion}
+% \begin{macro}{\@@_options_expand_module:nN}
+% To deal with active characters inside the module argument whilst also
+% expanding that argument, we use a combination of \texttt{c}- and
+% \texttt{f}-type expansion. This works as the definitions for active
+% UTF-8 bytes contain an \cs{ifincsname} test.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_expand_module:Nn #1#2
+ {
+ \cs:w @@_options_expand_module:nN \use:e { \cs_end: {#2} } #1
+ }
+\cs_new_protected:Npn \@@_options_expand_module:nN #1#2
+ { #2 {#1} }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareKeys}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
+% Defining key options is quite straight-forward: we have an intermediate
+% function to allow for potential set-up steps.
+% \begin{macrocode}
+\NewDocumentCommand \DeclareKeys { O { \@currname } +m }
+ { \@@_options_expand_module:Nn \keys_define:nn {#1} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareUnknownKeyHandler}
+% \changes{v1.0c}{2022/02/15}{Added \cs{DeclareUnknownKeysHandler}}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
+% \changes{v1.0d}{2022/02/16}
+% {Rename \cs{DeclareUnknownKeysHandler} to \cs{DeclareUnknownKeyHandler}}
+% \begin{macrocode}
+\NewDocumentCommand \DeclareUnknownKeyHandler { O { \@currname } +m }
+ {
+ \cs_set_protected:cpn { @@_unknown_handler_ #1 :nn } ##1##2 {#2}
+ \@@_options_expand_module:Nn \keys_define:nx {#1}
+ {
+ unknown .code:n =
+ \exp_not:N \exp_args:NV
+ \exp_not:c { @@_unknown_handler_ #1 :nn }
+ \exp_not:N \l_keys_key_str {####1}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ProcessKeyOptions}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
+% \changes{v1.0f}{2022/03/18}{Remove \cs{ProcessKeyPackageOptions}}
+% We need to deal with the older interface from \pkg{l3keys2e} here: it had
+% a mandatory argument. We can mop that up using a look-ahead, and then
+% exploit that information to determine whether the package option handling
+% is set up for the new approach for clash handling.
+% \begin{macrocode}
+\NewDocumentCommand \ProcessKeyOptions { O { \@currname } }
+ { \@@_options:n {#1} }
+\@onlypreamble \ProcessKeyOptions
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Option usage scope}
+%
+% \begin{macro}{\@@_options_loaded:n}
+% \begin{macro}{\@@_options_loaded:nn}
+% Indicates that the load-time options for a package have been processed:
+% once this has happened, make them unavailable either with a warning or
+% an error.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_loaded:n #1
+ {
+ \prop_get:NnNT \l_keys_usage_load_prop {#1} \l_@@_tmpa_tl
+ {
+ \clist_map_inline:Nn \l_@@_tmpa_tl
+ {
+ \keys_define:nn {#1}
+ {
+ ##1 .code:n =
+ \@@_options_loaded:nn {#1} {##1}
+ }
+ }
+ }
+ }
+\cs_new_protected:Npn \@@_options_loaded:nn #1#2
+ {
+ \bool_if:NTF \l_@@_options_loading_bool
+ {
+ \msg_warning:nnxx { keys } { load-option-ignored }
+ { \use:c { opt@fam@\@currname.\@currext } } {#2}
+ }
+ { \msg_error:nnnn { keys } { load-only } {#1} {#2} }
+ }
+\msg_new:nnn { keys } { load-option-ignored }
+ { Package~"#1"~has~already~been~loaded:~ignoring~load-time~option~"#2". }
+\msg_new:nnnn { keys } { load-only }
+ { Key~"#2"~may~only~be~used~in~the~during~loading~of~package~"#1". }
+ {
+ LaTeX~was~asked~to~set~a~key~called~"#2",~but~this~is~only~allowed~
+ in~the~optional~argument~when~loading~package~"#1".
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Disable all preamble options in one shot.
+% \begin{macrocode}
+\tl_gput_left:Nn \@kernel@after@begindocument
+ {
+ \prop_map_inline:Nn \l_keys_usage_preamble_prop
+ {
+ \clist_map_inline:nn {#2}
+ {
+ \keys_define:nn {#1}
+ {
+ ##1 .code:n =
+ \msg_error:nnn { keys } { preamble-only } {##1}
+ }
+ }
+ }
+ }
+\msg_new:nnnn { keys } { preamble-only }
+ { Key~"#1"~may~only~be~used~in~the~preamble. }
+ {
+ LaTeX~was~asked~to~set~a~key~called~"#1",~but~this~is~only~allowed~
+ before~\begin{document}.~You~will~need~to~set~the~key~earlier.
+ }
+% \end{macrocode}
+%
+% \subsection{General key setting}
+%
+% \begin{macro}{\SetKeys}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
+% A simple wrapper.
+% \begin{macrocode}
+\NewDocumentCommand \SetKeys { O { \@currname } +m }
+ { \@@_options_expand_module:Nn \keys_set:nn {#1} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel>
+% \end{macrocode}
diff --git a/macros/latex/base/ltlength.dtx b/macros/latex/base/ltlength.dtx
index 1be147547e..f979dd4e23 100644
--- a/macros/latex/base/ltlength.dtx
+++ b/macros/latex/base/ltlength.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -83,7 +83,7 @@
% \DescribeMacro{\settodepth}
% Set the length, |#1| to the depth of a box containing |#2|.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
diff --git a/macros/latex/base/ltlists.dtx b/macros/latex/base/ltlists.dtx
index fecb312588..d0413dad08 100644
--- a/macros/latex/base/ltlists.dtx
+++ b/macros/latex/base/ltlists.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -135,7 +135,7 @@
% when it occurs immediately after an |\item| command in an enclosing
% list.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/07}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/ltlogos.dtx b/macros/latex/base/ltlogos.dtx
index 132eaf636f..56453f73db 100644
--- a/macros/latex/base/ltlogos.dtx
+++ b/macros/latex/base/ltlogos.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -65,7 +65,7 @@
%
% Various logos are defined here.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macro}{\TeX}
% The \TeX{} logo, adjusted so that a full stop after the logo
diff --git a/macros/latex/base/ltluatex.dtx b/macros/latex/base/ltluatex.dtx
index 258ac48297..18623fd677 100644
--- a/macros/latex/base/ltluatex.dtx
+++ b/macros/latex/base/ltluatex.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -28,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2021/10/15 v1.1v
+[2021/12/27 v1.1x
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -120,6 +120,17 @@
% tables from $1$ so |\luafunction0| is not available).
%
% \noindent
+% \DescribeMacro{\newluacmd}
+% |\newluadef{|\meta{function}|}|\\
+% Like \cs{newluafunction}, but defines the command using \cs{luadef}
+% instead of just assigning an integer.
+%
+% \noindent
+% \DescribeMacro{\newprotectedluacmd}
+% |\newluadef{|\meta{function}|}|\\
+% Like \cs{newluacmd}, but the defined command is not expandable.
+%
+% \noindent
% \DescribeMacro{\newwhatsit}
% |\newwhatsit{|\meta{whatsit}|}|\\
% Defines a custom \cs{whatsit}, indexed from~$1$.
@@ -380,7 +391,7 @@
%
% \endgroup
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
@@ -722,6 +733,22 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\newluacmd, \newprotectedluacmd}
+% \changes{v1.1x}{2021/12/27}{Macros added}
+% Additionally two variants are provided to make the passed control
+% sequence call the function directly.
+% \begin{macrocode}
+\def\newluacmd{%
+ \e@alloc\luafunction\luadef
+ \e@alloc@luafunction@count\m@ne\e@alloc@top
+}
+\def\newprotectedluacmd{%
+ \e@alloc\luafunction{\protected\luadef}
+ \e@alloc@luafunction@count\m@ne\e@alloc@top
+}
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Custom whatsits}
%
% \begin{macro}{\newwhatsit}
@@ -1351,6 +1378,8 @@ local callbacktypes = callbacktypes or {
% \changes{v1.1k}{2019/10/02}{mlist\_to\_hlist is \texttt{exclusive}}
% \changes{v1.1l}{2020/02/02}{post\_linebreak\_filter is \texttt{reverselist}}
% \changes{v1.1p}{2020/08/01}{new\_graf is \texttt{exclusive}}
+% \changes{v1.1w}{2021/11/17}{hpack\_quality is \texttt{exclusive}}
+% \changes{v1.1w}{2021/11/17}{vpack\_quality is \texttt{exclusive}}
% \begin{macrocode}
contribute_filter = simple,
buildpage_filter = simple,
@@ -1361,8 +1390,8 @@ local callbacktypes = callbacktypes or {
post_linebreak_filter = reverselist,
hpack_filter = list,
vpack_filter = list,
- hpack_quality = list,
- vpack_quality = list,
+ hpack_quality = exclusive,
+ vpack_quality = exclusive,
pre_output_filter = list,
process_rule = exclusive,
hyphenate = simple,
@@ -1516,11 +1545,11 @@ end
% Handler for |list| callbacks.
% \changes{v1.0k}{2015/12/02}{resolve name and i.description (PHG)}
% \changes{v1.1s}{2020/12/02}{Fix return value of list callbacks}
+% \changes{v1.1w}{2021/11/17}{Never pass on \texttt{true} return values for list callbacks}
% \begin{macrocode}
local function list_handler(name)
return function(head, ...)
local ret
- local alltrue = true
for _,i in ipairs(callbacklist[name]) do
ret = i.func(head, ...)
if ret == false then
@@ -1531,18 +1560,17 @@ local function list_handler(name)
return false
end
if ret ~= true then
- alltrue = false
head = ret
end
end
- return alltrue and true or head
+ return head
end
end
% \end{macrocode}
% Default for user-defined |list| and |reverselist| callbacks without explicit default.
% \begin{macrocode}
-local function list_handler_default()
- return true
+local function list_handler_default(head)
+return head
end
% \end{macrocode}
% Handler for |reverselist| callbacks.
@@ -1551,7 +1579,6 @@ end
local function reverselist_handler(name)
return function(head, ...)
local ret
- local alltrue = true
local callbacks = callbacklist[name]
for i = #callbacks, 1, -1 do
local cb = callbacks[i]
@@ -1564,11 +1591,10 @@ local function reverselist_handler(name)
return false
end
if ret ~= true then
- alltrue = false
head = ret
end
end
- return alltrue and true or head
+ return head
end
end
% \end{macrocode}
@@ -1899,14 +1925,10 @@ callback_register("mlist_to_hlist", function(head, display_type, need_penalties)
if current == false then
flush_list(head)
return nil
- elseif current == true then
- current = head
end
current = call_callback("mlist_to_hlist", current, display_type, need_penalties)
local post = call_callback("post_mlist_to_hlist_filter", current, display_type, need_penalties)
- if post == true then
- return current
- elseif post == false then
+ if post == false then
flush_list(current)
return nil
end
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index d5d63450a3..613b669f2f 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-code.pdf b/macros/latex/base/ltmarks-code.pdf
new file mode 100644
index 0000000000..719155ba02
--- /dev/null
+++ b/macros/latex/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-code.tex b/macros/latex/base/ltmarks-code.tex
new file mode 100644
index 0000000000..7a3b9173bb
--- /dev/null
+++ b/macros/latex/base/ltmarks-code.tex
@@ -0,0 +1,5 @@
+% This will typeset documentation + code
+%
+
+\AtBeginDocument{\AlsoImplementation}
+\input{ltmarks.dtx}
diff --git a/macros/latex/base/ltmarks-doc.pdf b/macros/latex/base/ltmarks-doc.pdf
new file mode 100644
index 0000000000..b329ad81df
--- /dev/null
+++ b/macros/latex/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-doc.tex b/macros/latex/base/ltmarks-doc.tex
new file mode 100644
index 0000000000..8a62bb95c6
--- /dev/null
+++ b/macros/latex/base/ltmarks-doc.tex
@@ -0,0 +1,8 @@
+% This will typeset only documentation but not the code
+%
+
+\AtBeginDocument{\OnlyDescription
+% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
+ }
+\input{ltmarks.dtx}
diff --git a/macros/latex/base/ltmarks.dtx b/macros/latex/base/ltmarks.dtx
new file mode 100644
index 0000000000..3dc4b493ac
--- /dev/null
+++ b/macros/latex/base/ltmarks.dtx
@@ -0,0 +1,1649 @@
+% \iffalse meta-comment
+%
+%% File: ltmarks.dtx (C) Copyright 2022
+% Frank Mittelbach, LaTeX Team
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+%%% From File: ltmarks.dtx
+%
+% \begin{macrocode}
+\def\ltmarksversion{v1.0d}
+\def\ltmarksdate{2022/06/01}
+% \end{macrocode}
+%<*driver>
+\documentclass{l3doc}
+
+%\usepackage{ltmarks}
+
+% Fixing footnotes in functions and variables: this should be in l3doc!
+
+\newcommand\fixfootnote[2]{\footnotemark
+ \AddToHookNext{env/#1/after}{\footnotetext{#2}}}
+\AddToHook{env/function/begin}{\def\footnote{\fixfootnote{function}}}
+\AddToHook{env/variable/begin}{\def\footnote{\fixfootnote{variable}}}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{ltmarks.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \providecommand\hook[1]{\texttt{#1}}
+% \providecommand\env[1]{\texttt{#1}}
+%
+%
+%
+% \title{The \texttt{ltmarks.dtx} code\thanks{This file has version
+% \ltmarksversion\ dated \ltmarksdate, \copyright\ \LaTeX\
+% Project.}}
+% \author{^^A
+% Frank Mittelbach, \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \maketitle
+%
+%
+% \begin{abstract}
+% Marks are used to communicate information about the content of a
+% page to the output routine. For example, in order to construct
+% running headers, the output routine needs information about which
+% section names are present on a page, and this information is
+% passed to it through the mark system. However, marks may also be
+% used for other purposes. This module provides a generalized
+% mechanism for marks of independent classes.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% ^^A \begin{documentation}
+%
+% \section{Introduction}
+%
+% The \TeX{} engines offer a low-level mark mechanism to
+% communicate information about the content of the current page to
+% the asynchronous operating output routine. It works by placing
+% \cs{mark} commands into the source document. When the material
+% for the current page is assembled in box 255, \TeX{} scans for
+% such marks and sets the commands \cs{topmark}, \cs{firstmark} and
+% \cs{botmark}. The \cs{firstmark} receives the content of the
+% first \cs{mark} seen in box 255 and \cs{botmark} the content of
+% the last mark seen. The \cs{topmark} holds the content of the
+% last mark seen on the previous page or more exactly the value of
+% \cs{botmark} from the previous page. If there are no marks on
+% the current page then all three are made equal to the
+% \cs{botmark} from the previous page.
+%
+% This mechanism works well for simple formats (such as plain \TeX)
+% whose output routines are only called to generate pages. It
+% fails, however, in \LaTeX{} (and other more complex formats),
+% because here the output routine is sometimes called without
+% producing a page, e.g., when encountering a float and placing it
+% into one of the float regions. In that case the output routine is
+% called, determines where to place the float, alters the goal for
+% assembling text material (if the float was added to the top or
+% bottom region) and then it resumes collecting textual material.
+%
+% As a result the \cs{botmark} gets updated and so \cs{topmark} no
+% longer reflects the situation at the top of the next page when that
+% page is finally boxed.
+%
+% Another problem for \LaTeX{} was that it wanted to use several
+% \enquote{independent} marks and in the early implementations of
+% \TeX{} there was only a single \cs{mark} command available.
+% For that reason \LaTeX{} implemented its own mark
+% mechanism where the marks always contained two parts with their
+% own interfaces: \cs{markboth} and \cs{markright} to set marks and
+% \cs{leftmark} and \cs{rightmark} to retrieve them.
+%
+% However, this extended mechanism (while supporting scenarios such
+% as chapter/section marks) was far from general. The mark
+% situation at the top of a page (i.e., \cs{topmark}) remained
+% unusable and the two marks offered were not really independent of
+% each other because \cs{markboth} (as the name indicates) was
+% always setting both.
+%
+% The new mechanism overcomes both
+% issues:
+% \begin{itemize}
+% \item
+% It provides arbitrarily many, fully independent named marks, that
+% can be allocated and, from that point onwards, used.
+% \item
+% It offers access for each such marks to retrieve its top,
+% first, and bottom values separately.
+% \item
+% Furthermore, the mechanism is augmented to give access to marks
+% in different \enquote{regions} which may not be just full pages.
+% \end{itemize}
+%
+%
+% \section{Design-level and code-level interfaces}
+%
+% The interfaces are mainly meant for package developers, but they
+% are usable (with appropriate care) also in the document
+% preamble, for example, when setting up special running headers
+% with \pkg{fancyhdr}, etc. They are therefore available both as
+% CamelCase commands as well as commands for use in the L3
+% programming layer. Both are described together below.
+%
+% \begin{function}{\NewMarkClass,\mark_new_class:n}
+% \begin{syntax}
+% \cs{NewMarkClass} \Arg{class}
+% \cs{mark_new_class:n} \Arg{class}
+% \end{syntax}
+% Declares a new \meta{class} of marks to be tracked by \LaTeX{}. Each \meta{class}
+% must be declared before it is used.
+%
+% Mark classes can only be declared before \verb=\begin{document}=.
+% \end{function}
+%
+% \begin{function}{\InsertMark,\mark_insert:nn}
+% \begin{syntax}
+% \cs{InsertMark} \Arg{class} \Arg{text}
+% \cs{mark_insert:nn} \Arg{class} \Arg{text}
+% \end{syntax}
+% Adds a mark to the current galley for the \meta{class}, containing the
+% \meta{text}.
+%
+% It has no effect in places in which you can't place floats, e.g.,
+% a mark inside a box or inside a footnote never shows up anywhere.
+%
+% If used in vertical mode it obeys \LaTeX's internal
+% \cs{@nobreak} switch, i.e., it does not introduce a
+% breakpoint if used after a heading. If used in horizontal mode it
+% doesn't handle spacing (like, for example, \cs{index} or
+% \cs{label} does, so it should be attached to material that is
+% typeset.
+% \end{function}
+%
+% \begin{variable}{insertmark}
+% \begin{syntax}
+% \cs{AddToHook} \texttt{\{insertmark\}} \Arg{code}
+% \end{syntax}
+% When marks are inserted, the mark content may need some special
+% treatment, e.g., by default \cs{label}, \cs{index}, and
+% \cs{glossary} do not expand at this time (but only later if and when the
+% mark content is actually used.
+% In order to allow packages to augment or alter this setup there is
+% a public hook \hook{insertmark} that is executed at this point. It
+% runs in a group so local modification to commands are only applied
+% to the \meta{text} argument of \cs{InsertMark} or \cs{mark_insert:nn}.
+% \end{variable}
+%
+% \begin{function}[EXP]{\TopMark, \FirstMark, \LastMark,
+% \mark_use_top:nn,\mark_use_first:nn,\mark_use_last:nn,}
+% \begin{syntax}
+% \cs{TopMark} \oarg{region} \Arg{class}
+% \cs{FirstMark} \oarg{region} \Arg{class}
+% \cs{LastMark} \oarg{region} \Arg{class}
+% \cs{mark_use_top:nn} \Arg{region} \Arg{class}
+% \cs{mark_use_first:nn} \Arg{region} \Arg{class}
+% \cs{mark_use_last:nn} \Arg{region} \Arg{class}
+% \end{syntax}
+% These functions expand to the appropriate mark \meta{text} for
+% the given \meta{class} in the specified \meta{region}.
+% The default \meta{region} in the design-level commands is \texttt{page}.
+% Note that with the L3 layer commands there are no
+% optional arguments, i.e., both arguments have to be provided.
+% \begin{texnote}
+% The result is returned within the \tn{unexpanded}
+% primitive (\cs{exp_not:n}), which means that the \meta{text}
+% does not expand further when appearing in an \texttt{x}-type
+% or \texttt{e}-type argument expansion.
+% \end{texnote}
+%
+% The \enquote{first} and \enquote{last} marks are
+% those seen first and last in the current region/page, respectively. The
+% \enquote{top} mark is the last mark of the \meta{class} seen
+% in an earlier region, i.e., the \meta{text} what would be \enquote{current} at the
+% very top of the region.
+%
+% \noindent\llap{\bfseries Important!\qquad}\indent
+% The commands are only meaningful inside the output routine, in
+% other places their result is (while not random) unpredictable due
+% to the way \LaTeX{} cuts text material into pages.
+%% \end{function}
+%
+%
+%
+% Currently, \meta{region} is one of
+% \texttt{page},
+% \texttt{previous-page},
+% \texttt{column}, and
+% \texttt{previous-column}.
+% If a page has just been finished then the region \texttt{page}
+% refers to the current page and \texttt{previous-page}, as the name
+% indicates, to the page that has been finished previously. This
+% means you are able to access mark information for the current page
+% as well as for the page before if you are inside the output
+% routine, without the need to explicitly save that information
+% beforehand.
+%
+% In single column documents the \texttt{column} is the same as the
+% \texttt{page} region, but in two-column documents, \texttt{column}
+% refers to the current column that just got finished and
+% \text{previous-column} to the one previously finished. Code for
+% running headers are (in standard \LaTeX{}) only evaluated when
+% both columns are assembled, which is another way of saying that in
+% that case \texttt{previous-column} refers to the left column and
+% \texttt{column} to the right column.
+% However, to make this a bit nicer to access, there are also alias
+% regions named \texttt{first-column} and
+% \texttt{last-column}\footnote{This is called \enquote{last} not \enquote{second}
+% in anticipation of extending the mechanism to multiple columns,
+% where first and last would still make sense.} to
+% access these regions.\footnote{At the moment there aren't any
+% \texttt{previous-...-column} regions to access the columns from
+% the previous page. If necessary, the mechanism could be
+% easily augmented to cover them too, though.}
+%
+% Note that you can only look backwards at already processed regions,
+% e.g., in a \texttt{twoside} document finishing a recto (odd,
+% right-hand) page you can access the data from the facing verso
+% (left-hand) page, but if you are finishing a left-hand page you
+% can't integrate data from the upcoming right-hand page. If such a
+% scenario needs to be realized then it is necessary to save the
+% left-hand page temporarily instead of finalizing it, process
+% material for the right-hand page and once both are ready, attach
+% running headers and footers and shipout out both in one
+% go.\footnote{As of now that scenario is not yet officially supported.}
+%
+% \begin{function}[EXP]{\IfMarksEqualTF,\mark_if_eq:nnnnTF,\mark_if_eq:nnnnnnTF}
+% \begin{syntax}
+% \cs{IfMarksEqualTF} \oarg{region} \Arg{class} \Arg{pos_1} \Arg{pos_2} \Arg{true} \Arg{false}
+% \cs{mark_if_eq:nnnnTF} \Arg{region} \Arg{class} \Arg{pos_1} \Arg{pos_2} \Arg{true} \Arg{false}
+% \cs{mark_if_eq:nnnnnnTF} \Arg{region_1} \Arg{class_1} \Arg{pos_1}
+% \verb= = \Arg{region_2} \Arg{class_2} \Arg{pos_2} \Arg{true} \Arg{false}
+% \end{syntax}
+% These conditionals allow you to compare the content of two marks
+% and act based on the result. The commands work in an expansion
+% context, if necessary.
+% \end{function}
+%
+% It is quite common when programming with marks to need to
+% interrogate conditions such as whether marks have appeared on a
+% previous page, or if there are multiple marks present on the
+% current page, and so on.
+% The tests above allow for the construction of a variety of
+% typical test scenarios, with three examples presented below.
+%
+% The first two conditionals cover only the common scenarios. Both
+% marks are picked up from the same \meta{region} (by default
+% \texttt{page}) and they have to be of the same
+% \meta{class}.\footnote{If an undeclared mark class is used the
+% tests return \emph{true} (not an error).}
+% The \meta{pos\textsubscript{\itshape i}} argument can be either
+% \texttt{top}, \texttt{first}, or \texttt{last}.
+%
+% If you wish to compare marks across different regions or across
+% different classes, you have to do it using the generic test only
+% available in the L3 programming layer or do it manually, i.e.,
+% get the marks and then compare the values yourself.\footnote{If
+% two undeclared mark classes are compared the result is always
+% \emph{true}; if a declared and an undeclared mark class is used
+% it is always \emph{false}.}
+%
+% However, the basic version is enough for the following typical use cases:
+% \begin{description}
+% \item[Test for at most one mark of class \texttt{myclass} on current
+% page:]
+%
+% If the first and last mark in a region are the same then
+% either there was no mark at all, or there was at most one. To test
+% this on the current page:
+%\begin{verbatim}
+% \NewMarkClass{myclass}
+% \IfMarksEqualTF{myclass}{first}{last}
+% { <zero or one mark> }{ <two or more marks> }
+%\end{verbatim}
+%
+% \item[Test for no mark of class \texttt{myclass} in the previous
+% page:]
+%
+% If the top mark is the same as the first mark, there is no mark
+% in the region at all. If we wanted to do this test for the
+% previous page:
+%\begin{verbatim}
+% \IfMarksEqualTF[previous-page]{myclass}{top}{first}
+% { <no marks> }{ <at least one mark> }
+%\end{verbatim}
+% Comparing \texttt{top} and \texttt{last} would give you the
+% same result.
+%
+% \item[Test for zero, one, or more than one:]
+%
+% Combining the two tests from above you can test for zero, one
+% or more than one mark.
+%\begin{verbatim}
+% \IfMarksEqualTF{myclass}{top}{first}
+% { <no marks> }
+% {\IfMarksEqualTF{myclass}{first}{last}
+% { <exactly one mark> }{ <more than one mark> }}
+%\end{verbatim}
+%
+% \end{description}
+%
+% If you need one of such tests more often (or if you want a separate
+% command for it for readability), then consider defining:
+%\begin{verbatim}
+% \providecommand\IfNoMarkTF[2][page]{\IfMarksEqualTF[#1]{#2}{first}{last}}
+%\end{verbatim}
+%
+%
+%
+% \subsection{Debugging mark code}
+%
+%
+% \begin{function}{\DebugMarksOn,\DebugMarksOff,
+% \mark_debug_on:,\mark_debug_off:}
+% \begin{syntax}
+% \cs{DebugMarksOn} ... \cs{DebugMarksOff}
+% \end{syntax}
+%
+% Commands to turn the debugging of mark code on or off. The
+% debugging output is rather coarse and not really intended for
+% normal use at this point in time.
+%
+% \end{function}
+%
+%
+%
+% \section{Application examples}
+%
+% If you want to figure out if a break was taken at a specific point,
+% e.g., whether a heading appears at the top of the page,
+% you can do something like this:
+%\begin{verbatim}
+% \newcounter{breakcounter}
+% \NewMarkClass{break}
+% \newcommand\markedbreak[1]{\stepcounter{breakcounter}%
+% \InsertMark{break}{\arabic{breakcounter}%
+% \penalty #1\relax
+% \InsertMark{break}{-\arabic{breakcounter}}
+%\end{verbatim}
+% To test if the break was taken you can test if
+% \verb=\TopMark{break}= is positive (taken) or negative (not taken)
+% or zero (there was never any marked break so far).
+% The absolute value can be used to keep track of which break it
+% was (with some further coding).
+%
+%
+% \emph{to be extended with additional application examples}
+%
+%
+%
+% \section{Legacy \LaTeXe{} interface}
+%
+% Here we describe the interfaces that \LaTeXe{} offered since the
+% early nineties and some minor extensions.
+%
+% \subsection{Legacy design-level and document-level interfaces}
+%
+% \begin{function}{\markboth, \markright}
+% \begin{syntax}
+% \cs{markboth} \Arg{left} \Arg{right}
+% \cs{markright} \Arg{right}
+% \end{syntax}
+% \LaTeXe{} uses two marks which aren't fully independent. A
+% \enquote{left} mark generated by the first argument of \cs{markboth}
+% and a \enquote{right} mark generated by the second argument of
+% \cs{markboth} or by the only argument of \cs{markright}. The
+% command \cs{markboth} and \cs{markright} are in turn called from
+% heading commands such as \cs{chaptermark} or \cs{sectionmark} and
+% their behavior is controlled by the document class.
+%
+% For example, in the \cls{article} class with \texttt{twoside} in
+% force the \cs{sectionmark} will issue \cs{markboth} with an empty
+% second argument and \cs{subsectionmark} will issue
+% \cs{markright}. As a result the left mark will contain chapter
+% titles and the right mark subsection titles.
+%
+% Note, however, that in one-sided documents the standard behavior is
+% that only \cs{markright} is used, i.e., there will only be
+% right-marks but no left marks!
+% \end{function}
+%
+% \begin{function}[EXP]{\leftmark, \rightmark}
+% \begin{syntax}
+% \cs{leftmark}
+% \cs{rightmark}
+% \end{syntax}
+% These functions return the appropriate mark value from the current page
+% and work as before, that is \cs{leftmark} will get the last (!)
+% left mark from the page and \cs{rightmark} the first (!) right
+% mark.
+%
+% In other words they work reasonably well if you want to show the
+% section title that is current when you are about to turn the page and
+% also show the first subsection title on the current page (or the last
+% from the previous page if there wasn't one). Other combinations
+% can't be shown using this interface.
+%
+% The commands are fully expandable, because this is how they have
+% been always defined in \LaTeX{}. However, this is of course
+% only true if the content of the mark they return is itself
+% expandable and does not contain any fragile material. Given that
+% this can't be guaranteed for arbitrary content, a programmer using
+% them in this way should use \cs{protected@edef} and \emph{not}
+% \cs{edef} to avoid bad surprises as far as this is possible, or use
+% the new interfaces (\cs{TopMark}, \cs{FirstMark}, and \cs{LastMark})
+% which return the \meta{text} in \cs{exp_not:n} to prevent
+% uncontrolled expansion.
+% \end{function}
+%
+%
+% \subsection{Legacy interface extensions}
+%
+% The new implementation adds three mark classes: \texttt{2e-left},
+% \texttt{2e-right} and \texttt{2e-right-nonempty} and patches
+% \cs{markboth} and \cs{markright} slightly so that they also update
+% these new mark classes, so that the new classes work with existing
+% document classes.
+%
+% As a result you can use \verb=\LastMark{2e-left}= and
+% \verb=\FirstMark{2e-right}= instead of \cs{leftmark} and
+% \cs{rightmark}. But more importantly, you can use any of the other
+% retrieval commands to get a different status value from those
+% marks, e.g., \verb=\LastMark{2e-right}= would return the last
+% subsection on the page (instead of the first as
+% returned by \cs{rightmark}).
+%
+% The difference between \texttt{2e-right} and
+% \texttt{2e-right-nonempty} is that the latter will only be updated
+% if the material for the mark is not empty. Thus
+% \verb=\markboth{title}{}= as issued by, say, \cs{sectionmark},
+% sets a \texttt{2e-left} mark with \texttt{title} and a
+% \texttt{2e-right} mark with the empty string but does not add a
+% \texttt{2e-right-nonempty} mark.
+%
+% Thus, if you have a section at the start of a page and you would
+% ask for \verb=\FirstMark{2e-right}= you would get an empty string
+% even if there are subsections on that page. But
+% \texttt{2e-right-nonempty} would then give you the first or last subsection
+% on that page. Of course, nothing is simple. If there are no
+% subsections it would tell you the last subsection from an earlier
+% page. We therefore need comparison tools, e.g., if top and
+% first are identical you know that the value is
+% bogus, i.e., a suitable implementation would be
+%\begin{verbatim}
+% \IfMarksEqualTF{2e-right-nonempty}{top}{first}
+% { <appropriate action if there was no real mark> }
+% {\FirstMark{2e-right-nonempty}}
+%\end{verbatim}
+%
+%
+%
+% \section{Notes on the mechanism}
+%
+% In contrast to vanilla \TeX, \eTeX{} extends the mark system to
+% allow multiple independent marks. However, it does not solve the
+% \cs{topmark} problem which means that \LaTeX{} still needs to manage
+% marks almost independently of \TeX{}. The reason for this is that
+% the more complex output routine used by \LaTeX{} to handle floats
+% (and related structures) means that \tn{topmark(s)} remain
+% unreliable. Each time the output routine is fired up, \TeX{} moves
+% \tn{botmark} to \tn{topmark}, and while \eTeX{} extends this to
+% multiple registers the fundamental concept remains the same. That
+% means that the state of marks needs to be tracked by \LaTeX{}
+% itself. An early implementation of this package used \TeX{}'s
+% \tn{botmark} only to ensure the correct interaction with the output
+% routine (this was before the \eTeX{} mechanism was even
+% available). However, other than in a prototype implementation for
+% \LaTeX3, this package was never made public.
+%
+% The new implementation now uses \eTeX{}'s marks as they have some
+% advantages, because with them we can leave the mark text within the
+% galley and only extract the marks during the output routine when we
+% are finally shipping out a page or storing away a column for use in
+% the next page. That means we do not have to maintain a global data
+% structure that we have to keep in sync with informational marks in
+% the galley but can rely on everything being in one place and thus
+% manipulations (e.g.~reordering of material) will take the marks with
+% them without a need for updating a fragile linkage.
+
+% To allow for completely independent marks we use the following
+% procedure:
+% \begin{itemize}
+% \item
+%
+% For every type of marks we allocate a mark class so
+% that in the output routine \TeX{} can calculate for each class
+% the current
+% top, first, and bottom mark independently. For this we use
+% \cs{newmarks}, i.e., one marks register per class.
+%
+% \item
+%
+% As already mentioned firing up an output routine without
+% shipping out a page means that \TeX's top marks get wrong so it
+% is impossible to rely on \TeX's approach directly. What we do
+% instead is to keep track of the real marks (for the last page or
+% more generally last region) in some global variables.
+%
+% \item
+%
+% These variables are updated in the output routine at defined
+% places, i.e., when we do real output processing but not if we
+% use special output routines to do internal housekeeping.
+%
+% \item
+%
+% The trick we use to get correctly updated variables is the
+% following: the material that contains new marks (for example the
+% page to be shipped out) is stored in a box. We then use \TeX{}
+% primitive box splitting functions by splitting off the largest
+% amount possible (which should be the whole box if nothing goes
+% really wrong). While that seems a rather pointless thing to do, it
+% has one important side effect: \TeX{} sets up first and bottom
+% marks for each mark class from the material it has split off. This
+% way we get the first and last marks (if there have been any) from
+% the material in the box.
+%
+% \item
+%
+% The top marks are simply the last marks from the previous
+% page or region. And if there hasn't been a first or bottom mark in
+% the box then the new top mark also becomes new first and last mark
+% for that class.
+%
+% \item
+%
+% That mark data is then stored in global token lists for use
+% during the output routine and legacy commands such as
+% \cs{leftmark} or new commands such as \cs{TopMark} simply access
+% the data stored in these token lists.
+% \end{itemize}
+% That's about it in a nutshell. Of course, there are some details to
+% be taken care of---those are discussed in the implementation sections.
+%
+%
+% \section{Internal output routine functions}
+%
+% The functions in this section are tied to the output routine and used in the
+% interface to \LaTeXe{} and perhaps at some later time within a new
+% output routine
+% for \LaTeX. They are not meant for general use and are therefore made internal.
+% Internal means that \verb|@@| automatically gets
+% replaced in the code (and in the documentation) so we have to give
+% it a suitable value.
+% \begin{macrocode}
+%<@@=mark>
+% \end{macrocode}
+%
+% \begin{function}{\@@_update_singlecol_structures:}
+% \begin{syntax}
+% \cs{@@_update_singlecol_structures:}
+% \end{syntax}
+% \LaTeXe{} integration function in case we are doing single column
+% layouts. It assumes that the page content is already stored in
+% \cs{@outputbox} and processes the marks inside that box. It is
+% called as part of \cs{@opcol}.
+% \end{function}
+%
+%
+% \begin{function}{\@@_update_dblcol_structures:}
+% \begin{syntax}
+% \cs{@@_update_singlecol_structures:}
+% \end{syntax}
+% \LaTeXe{} integration function mark used when we are doing double
+% column documents. It assumes that the page content is already
+% stored in \cs{@outputbox} and processes the marks inside that
+% box. It then does different post-processing depending on the start
+% of the switch \cs{if@firstcolumn}. If we are in the second column
+% it also has to update page marks, otherwise it only updates column
+% marks. It too is called as part of \cs{@opcol}.
+% \end{function}
+%
+% \begin{function}{\@@_update_structure:nn}
+% \begin{syntax}
+% \cs{@@_update_structure:nn} \Arg{region} \Arg{material with marks}
+% \end{syntax}
+% Helper function that inspects the marks
+% inside the second argument and assigns new mark values based on
+% that to the \meta{region} given in the first argument.
+% For this it first copies the mark structure from \meta{region} to
+% \texttt{previous-}\meta{region} and then takes all last mark
+% values currently in the region and makes them the new top mark
+% values. Finally it assigns new first and last values for all mark
+% classes based on what was found in the second argument.
+%
+% As a consequence, the allowed values for \meta{region} are
+% \texttt{page} and \texttt{column} because only they have
+% \texttt{previous-...} counterparts.
+%
+% Another important part to keep in mind is that marks are only
+% recognized if they appear on top-level, e.g., if we want to
+% process material stored in boxes we need to put it unboxed (using
+% \cs{unvcopy} etc.)\ into the second argument.
+% \end{function}
+%
+%
+%
+% \begin{function}{\@@_update_structure_alias:nn}
+% \begin{syntax}
+% \cs{@@_update_structure_alias:nn} \Arg{alias} \Arg{source}
+% \end{syntax}
+% Helper function that copies all mark values in the \meta{source}
+% region to \meta{alias}, i.e., make the structures identical. Used
+% to update the \texttt{previous-...} structures inside
+% \cs{@@_update_structure:nn} and \texttt{first-column} and
+% \texttt{last-column} structures inside
+% \cs{@@_update_singlecol_structures:} or
+% \cs{@@_update_dblcol_structures:}.
+% \end{function}
+%
+%
+%
+%
+% \begin{function}{\@@_update_structure_to_err:n}
+% \begin{syntax}
+% \cs{@@_update_structure_to_err:n} \Arg{region}
+% \end{syntax}
+% Helper function that sets all mark values in the \meta{region} to
+% an error message. This is currently used for \texttt{last-column}
+% at times where using marks from it would be questionable/wrong, i.e.,
+% when we have just processed the first column in a two-column document.
+% \end{function}
+%
+%
+%
+% ^^A \end{documentation}
+%
+%
+%
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+%
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\NewModuleRelease{2022/06/01}{ltmarks}
+%<latexrelease> {Marks~handling}
+% \end{macrocode}
+%
+% \subsection{Allocating new mark classes}
+%
+%
+% \begin{variable}{\g_@@_classes_seq}
+% A list holding all the mark classes that have been declared.
+% \begin{macrocode}
+\seq_new:N \g_@@_classes_seq
+% \end{macrocode}
+% \end{variable}
+%
+%
+%
+%
+% \begin{macro}{\mark_new_class:n,\@@_new_class:nn}
+% A mark class is created by initializing a number of data
+% structures. First, we get a register number to refer to the mark class.
+% The new mark class is then added to the \cs{g_@@_classes_seq}
+% sequence to be able to easily loop over all classes. Finally a
+% number of top-level global token lists are declared that hold
+% various versions of the mark for access.
+% \begin{macrocode}
+\cs_new_protected:Npn \mark_new_class:n #1
+{
+ \seq_if_in:NnTF \g_@@_classes_seq {#1}
+ {
+ \msg_error:nnn { mark } { class-already-defined }
+ {#1}
+ }
+ { \@@_new_class:nn {#1} }
+}
+% \end{macrocode}
+% This is only available in the preamble.
+% \changes{v1.0c}{2022/05/06}{Wrong command made \cs{@onlypreamble}}
+% \begin{macrocode}
+\@onlypreamble \mark_new_class:n
+% \end{macrocode}
+% The internal command carries out the necessary allocations.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_new_class:nn #1
+{
+%<*trace>
+ \@@_debug:n { \iow_term:x { Marks:~new~mark:~#1~\msg_line_context: } }
+%</trace>
+% \end{macrocode}
+% Use the \LaTeXe{} interface for now as the L3 programming layer
+% doesn't have one for marks yet.
+% \begin{macrocode}
+ \exp_args:Nc \newmarks {c_@@_class_ #1 _mark}
+% \end{macrocode}
+% Remember the new class in the sequence.
+% \begin{macrocode}
+ \seq_gput_right:Nn \g_@@_classes_seq {#1}
+% \end{macrocode}
+% We need three token lists for each region, one for top, first,
+% and last.
+% \begin{macrocode}
+ \tl_new:c { g_@@_page_top_ #1 _tl }
+ \tl_new:c { g_@@_page_first_ #1 _tl }
+ \tl_new:c { g_@@_page_last_ #1 _tl }
+% \end{macrocode}
+% For the \texttt{page} region we also keep track of the
+% \texttt{previous-page}.
+% \begin{macrocode}
+ \tl_new:c { g_@@_previous-page_top_ #1 _tl }
+ \tl_new:c { g_@@_previous-page_first_ #1 _tl }
+ \tl_new:c { g_@@_previous-page_last_ #1 _tl }
+% \end{macrocode}
+% Same game for \texttt{column} and \texttt{previous-column}
+% \begin{macrocode}
+ \tl_new:c { g_@@_column_top_ #1 _tl }
+ \tl_new:c { g_@@_column_first_ #1 _tl }
+ \tl_new:c { g_@@_column_last_ #1 _tl }
+ \tl_new:c { g_@@_previous-column_top_ #1 _tl }
+ \tl_new:c { g_@@_previous-column_first_ #1 _tl }
+ \tl_new:c { g_@@_previous-column_last_ #1 _tl }
+% \end{macrocode}
+% But for columns we also allocate token lists for the alias
+% regions \texttt{first-column} and \texttt{last-column}.
+% \begin{macrocode}
+ \tl_new:c { g_@@_first-column_top_ #1 _tl }
+ \tl_new:c { g_@@_first-column_first_ #1 _tl }
+ \tl_new:c { g_@@_first-column_last_ #1 _tl }
+ \tl_new:c { g_@@_last-column_top_ #1 _tl }
+ \tl_new:c { g_@@_last-column_first_ #1 _tl }
+ \tl_new:c { g_@@_last-column_last_ #1 _tl }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{Updating mark structures}
+%
+%
+% \begin{macro}{\l_@@_box,\g_@@_tmp_tl,\g_@@_new_top_tl}
+% For some operations we need a temporary private box and two
+% private global token lists.
+% \begin{macrocode}
+\box_new:N \l_@@_box
+\tl_new:N \g_@@_tmp_tl
+\tl_new:N \g_@@_new_top_tl
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@@_update_structure:nn}
+%
+% This function updates the mark structures. The first argument is
+% the region to update and second argument receives the material
+% that holds the marks. Out of this material we extract the first
+% and last marks for all classes (if there are any) to do the
+% assignments.
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_update_structure:nn #1#2
+ {
+% \end{macrocode}
+% First thing we do is copying the current structure to
+% \texttt{previous-...}; this leaves the current structure
+% untouched so we can update it class by class (which is necessary).
+% \begin{macrocode}
+ \@@_update_structure_alias:nn { previous-#1 } {#1}
+% \end{macrocode}
+% Getting the first and last marks out of the material in \verb=#2=
+% is done by putting the material in a box and then doing a
+% split operation to the maximum size possible (which hopefully
+% means all of the content).\footnote{We could verify this, maybe we
+% should.} Because this is an action only for the sake of getting
+% at the mark values we don't want any underfull
+% box warnings so we turn those (locally) off.
+% \begin{macrocode}
+ \group_begin:
+ \dim_set_eq:NN \tex_splitmaxdepth:D \c_max_dim
+ \int_set_eq:NN \tex_vbadness:D \c_max_int
+ \dim_set_eq:NN \tex_vfuzz:D \c_max_dim
+% \end{macrocode}
+% There is a further complication: if the region contains infinite
+% shrinking glue then a \tn{vsplit} operation will balk with a
+% low-level error. Now pages or columns, which are our main concern here, can't
+% have such infinite shrinkage if they are cut straight from the
+% galley, however the use of \tn{enlargethispage} actually does add
+% some at the very bottom (and also wraps the whole page into a box
+% by itself, so if we leave it this way then a) we get this error
+% and b) we don't see any marks because they are hidden one level
+% down).
+%
+% Another possible issue are packages or user code that place stray
+% \tn{vbox}es directly into the main galley (an example is
+% \pkg{marginnote} that attaches its marginals in this way). If such
+% boxes end up as the last item on the page we should not unpack
+% them.
+%
+% We therefore do an \tn{unskip} to get rid of that glue if present and
+% also check if we have then a \tn{vbox} as the last item and if so
+% unpack that too, but only under certain conditions, see
+% below. All this is temporary, just for getting the
+% marks out, so it doesn't affect the final page production.
+%
+% In fact, we go one step further and set the box to a large
+% negative height possible and afterwards take a look at the
+% reported badness: if it is zero we know that there has still been
+% infinite shrinkage in the box so that we can't do a
+% \tn{vsplit}. If that is the case we generate an error message and
+% bypass extracting the marks. We use only half of \cs{c_max_dim}
+% because otherwise \TeX{} will report an overfull vbox despite our
+% setting of \cs{tex_vfuzz:D}. This test will not find existing
+% infinite shrinkage in all cases, e.g., if there are several glues
+% that cancel each other, but it is the best we can do.
+% \begin{macrocode}
+ \vbox_set_to_ht:Nnn \l_@@_box { -.5\c_max_dim }
+ {
+ #2
+ \tex_unskip:D
+ \box_set_to_last:N \l_@@_box
+% \end{macrocode}
+% After having removed the last box from the current list (if there
+% was one)
+% we check if the list is now empty. If not, the the last box is
+% definitely not the one from \tn{enlargethispage} and so we can
+% and should leave it alone. Otherwise we check if this last box is
+% a \tn{vbox}.
+% \changes{v1.0d}{2022/06/01}{Extend the logic for detecting the marks
+% in the box (gh/836)}
+% \begin{macrocode}
+ \int_compare:nNnT \tex_lastnodetype:D < 0
+ {
+ \box_if_vertical:NT \l_@@_box
+ {
+% \end{macrocode}
+% If it is we do a further test and reset the \cs{l_@@_box}
+% to check if it contains infinitely shrinkable glue.
+% \begin{macrocode}
+ \vbox_set_to_ht:Nnn \l_@@_box { -.5\c_max_dim }
+ {
+ \vbox_unpack:N \l_@@_box
+ \tex_kern:D \c_zero_dim % ensure that box
+ % is not empty
+ }
+% \end{macrocode}
+% If not, then we unpack it, if yes we still ignore it for the process of
+% mark extraction. We do not generate an error though, because in all
+% likelihood this is an ordinary box like a marginal that does
+% contain something like \tn{vss}.
+% \begin{macrocode}
+ \int_compare:nNnT \tex_badness:D > 0
+ { \vbox_unpack:N \l_@@_box }
+ }
+ }
+% \end{macrocode}
+% If it wasn't a vbox, it was either an hbox or there was no box.
+% Given that we are only interested in the marks we don't need put
+% it back in that case. However, we have to make sure that the
+% outer box under construction
+% is not totally empty (which it might have been from the start, or
+% now), because \TeX{} does not report a badness for empty boxes
+% and that means our test would incorrectly conclude that we have
+% infinite shrinking glue. A simple \tn{kern} is enough to avoid
+% this (the same was already done above).
+% \begin{macrocode}
+ \tex_kern:D \c_zero_dim
+ }
+ \int_compare:nNnTF \tex_badness:D > 0
+% \end{macrocode}
+% If the box had no infinite shrinkage (or rather if our test
+% didn't show any) we vsplit it. Note that it
+% doesn't matter that we set it to this strange size first. If there
+% was infinite shrinkage after all, we end up with a low-level
+% \TeX{} error, but if there is, it is a coding error and needs
+% correcting.
+% \begin{macrocode}
+ {
+ \vbox_set_split_to_ht:NNn \l_@@_box \l_@@_box \c_max_dim
+% \end{macrocode}
+% After this action we can get first and last marks of the various
+% classes through \cs{tex_splitfirstmarks:D} and
+% \cs{tex_splitbotmarks:D}. So now we loop over all classes stored in
+% \cs{g_@@_classes_seq}.
+% \begin{macrocode}
+ \seq_map_inline:Nn \g_@@_classes_seq
+ {
+% \end{macrocode}
+% First action: get the last mark from the previous region, i.e.,
+% \verb=previous-#1=. But because it is also still inside \verb=#1=,
+% at the moment we use that to construct the name because this is a
+% tiny bit faster. Given that we
+% need this value in various assignments we store it away which
+% avoids unnecessary further csname generations.
+% \begin{macrocode}
+ \tl_gset_eq:Nc \g_@@_new_top_tl { g_@@_#1_last_##1_tl }
+% \end{macrocode}
+% This will first of all become the new top mark for the current class.
+% \begin{macrocode}
+ \tl_gset_eq:cN { g_@@_#1_top_##1_tl } \g_@@_new_top_tl
+% \end{macrocode}
+% Next action is to get ourselves the new last mark from the
+% material supplied.
+% \begin{macrocode}
+ \tl_gset:No \g_@@_tmp_tl
+ { \tex_splitbotmarks:D \use:c { c_@@_class_##1_mark } }
+% \end{macrocode}
+% If this mark doesn't exist then obviously first mark does
+% neither, so both become the last mark from the previous region. We
+% have to be a little careful here: something like
+% \verb=\mark_insert:nn{foo}{}= adds an \enquote{empty} mark that should
+% not be confused with no mark at all. But no mark in our material
+% will result in \cs{g_@@_tmp_tl} being fully empty. This is why we
+% have to make sure that \enquote{empty} from \cs{mark_insert:nn} only
+% appears to be empty but fails the next test (see below how this
+% is done).
+% \begin{macrocode}
+ \tl_if_empty:NTF \g_@@_tmp_tl
+ {
+ \tl_gset_eq:cN { g_@@_#1_last_ ##1_tl }
+ \g_@@_new_top_tl
+ \tl_gset_eq:cN { g_@@_#1_first_##1_tl }
+ \g_@@_new_top_tl
+ }
+% \end{macrocode}
+% If it wasn't empty, i.e., if it had a real value then we use this
+% value for our new last mark instead.
+% \begin{macrocode}
+ {
+ \tl_gset_eq:cN { g_@@_#1_last_##1_tl } \g_@@_tmp_tl
+% \end{macrocode}
+% Because we had a last mark we also have a first mark (which
+% might be the same, but might be not), so we pick that up and
+% assign it to the appropriate token list. This explains why we first
+% checked for the last mark because that makes the processing
+% faster in case there is none.
+% \begin{macrocode}
+ \tl_gset:co { g_@@_#1_first_##1_tl }
+ {
+ \tex_splitfirstmarks:D
+ \use:c { c_@@_class_##1_mark }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+% If the badness was zero (we actually tested for${}>0$ but it
+% can't get negative) then we had infinite shrinkage, so we report
+% that and set all marks to the value the last mark had before.
+% \begin{macrocode}
+ {
+ \msg_error:nnn { mark } { infinite-shrinkage } {#1}
+ \seq_map_inline:Nn \g_@@_classes_seq
+ {
+ \tl_gset_eq:cc { g_@@_#1_top_ ##1_tl }
+ { g_@@_#1_last_ ##1_tl }
+ \tl_gset_eq:cc { g_@@_#1_first_##1_tl }
+ { g_@@_#1_last_ ##1_tl }
+ }
+ }
+% \end{macrocode}
+% Once all mark classes have been processed the data structures are
+% updated and we can close the group which undoes our local
+% changes and retains only the global ones.
+% \begin{macrocode}
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@@_update_structure_alias:nn}
+% This function copies the structure for one region to another
+% (name), e.g., from \texttt{page} to \texttt{previous-page} above,
+% or later from \texttt{column} to \texttt{first-column}, etc.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_update_structure_alias:nn #1#2 {
+% \end{macrocode}
+% This requires a simple loop through all mark classes copying the
+% token list from one name to the next.
+% \begin{macrocode}
+ \seq_map_inline:Nn \g_@@_classes_seq
+ {
+ \tl_gset_eq:cc { g_@@_ #1 _top_ ##1 _tl }
+ { g_@@_ #2 _top_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_ #1 _first_ ##1 _tl }
+ { g_@@_ #2 _first_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_ #1 _last_ ##1 _tl }
+ { g_@@_ #2 _last_ ##1 _tl }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@@_update_structure_to_err:n,\@@_error:n}
+% A slight variation is to install a fixed error message as the value.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_update_structure_to_err:n #1 {
+ \seq_map_inline:Nn \g_@@_classes_seq
+ {
+ \tl_gset:cn { g_@@_ #1 _top_ ##1 _tl } { \@@_error:n {#1} }
+ \tl_gset:cn { g_@@_ #1 _first_ ##1 _tl } { \@@_error:n {#1} }
+ \tl_gset:cn { g_@@_ #1 _last_ ##1 _tl } { \@@_error:n {#1} }
+ }
+}
+% \end{macrocode}
+% Given that this is used in only one place, we could hardwire the
+% argument which would be a bit more compact, but who knows,
+% perhaps we end up with another reason to use this error command
+% elsewhere, so for now we keep the argument.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_error:n #1 {
+ \msg_error:nnn { mark } { invalid-use } {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{Placing and retrieving marks}
+%
+%
+%
+% \begin{macro}{\mark_insert:nn}
+% This function puts a mark for some \meta{class} at the current point.
+% \begin{macrocode}
+\cs_new_protected:Npn \mark_insert:nn #1#2
+{
+ \seq_if_in:NnTF \g_@@_classes_seq {#1}
+ {
+% \end{macrocode}
+% We need to pass the evaluated argument into the mark but protected
+% commands should not expand including those protected using the \cs{protect} approach of
+% \LaTeXe{}. We also disable \cs{label} and the
+% like.\footnote{Straight copy from \texttt{latex.ltx} but is this
+% even correct? At least a label in a running header makes little
+% sense if it get set several times! Maybe that needs looking at in
+% the 2e kernel.}
+%
+% At this point the code eventually should get a public
+% (and a kernel) hook instead of a set of hardwired settings.
+% \begin{macrocode}
+ \group_begin:
+% \end{macrocode}
+% Within the group we alter some comments, e.g, \cs{label} or
+% \cs{index}, to do the right at this point. This is done in the
+% kernel hook \cs{@kernel@before@insertmark} which is followed by
+% the public hook \hook{insertmark} that can be used by packages to
+% augment or alter that setup as necessary.
+% \begin{macrocode}
+ \@kernel@before@insertmark
+ \hook_use:n { insertmark }
+ \unrestored@protected@xdef \g_@@_tmp_tl {#2}
+%<*trace>
+ \@@_debug:n{ \iow_term:x { Marks:~ set~#1~<-~
+ '\tl_to_str:V \g_@@_tmp_tl' ~ \msg_line_context: } }
+%</trace>
+ \tex_marks:D \use:c { c_@@_class_ #1 _mark }
+ {
+% \end{macrocode}
+% Here is the trick to avoid truly empty marks: if the result from
+% the above processing is empty we add something which eventually
+% becomes empty, but not immediately; otherwise we just put
+% \cs{g_@@_tmp_tl} in.
+% \begin{macrocode}
+ \tl_if_empty:NTF \g_@@_tmp_tl
+ { \exp_not:n { \prg_do_nothing: } }
+ { \exp_not:o { \g_@@_tmp_tl } }
+ }
+ \group_end:
+% \end{macrocode}
+% A mark introduces a possible break point and in certain
+% situations that should not happen in vertical mode in \LaTeX{}.
+% This needs some cleanup \ldots.
+% \begin{macrocode}
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+% \end{macrocode}
+% If the mark class was not known, raise an error.
+% \begin{macrocode}
+ {
+ \msg_error:nnx { mark } { unknown-class }
+ { \tl_to_str:n {#1} }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[int]{\@kernel@before@insertmark}
+% \begin{macro}{insertmark}
+% By default \cs{label}, \cs{index}, and \cs{glossary} do nothing
+% when the mark is inserted.
+% \begin{macrocode}
+\cs_new:Npn \@kernel@before@insertmark {
+ \cs_set_eq:NN \label \scan_stop:
+ \cs_set_eq:NN \index \scan_stop:
+ \cs_set_eq:NN \glossary \scan_stop:
+}
+% \end{macrocode}
+% The public hook to augment the setup.
+% \begin{macrocode}
+\hook_new:n {insertmark}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\mark_use_top:nn, \mark_use_first:nn, \mark_use_last:nn}
+%
+% To retrieve the first, last or top region mark, we grab the
+% appropriate value stored in the corresponding token list variable
+% and pass its contents back. These functions should be used only
+% in output routines after \cs{@@_update_structure:nn} has acted,
+% otherwise their value will be wrong.
+%
+% If used with an unknown class or region they generate an error
+% (fairly low-level because we are in an expandable context).
+% \begin{macrocode}
+\cs_new:Npn \mark_use_first:nn #1#2 { \exp_not:v { g_@@_#1_first_#2_tl } }
+\cs_new:Npn \mark_use_last:nn #1#2 { \exp_not:v { g_@@_#1_last_#2_tl } }
+\cs_new:Npn \mark_use_top:nn #1#2 { \exp_not:v { g_@@_#1_top_#2_tl } }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{Comparing mark values}
+%
+%
+%
+% \begin{macro}[TF,EXP]{\mark_if_eq:nnnn,\mark_if_eq:nnnnnn}
+% Test if in a given region (\verb=#1=) for a given class
+% (\verb=#2=) the marks in position \verb=#3= and \verb=#4= (top,
+% first, or last) are identical
+% \begin{macrocode}
+\prg_new_conditional:Npnn \mark_if_eq:nnnn #1#2#3#4 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g_@@_ #1 _#3_ #2 _tl }
+ { g_@@_ #1 _#4_ #2 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+% \end{macrocode}
+% The fully general test (with two triplets of the form
+% \meta{region}, \meta{class}, and \meta{position}) is this:
+% \begin{macrocode}
+\prg_new_conditional:Npnn \mark_if_eq:nnnnnn #1#2#3#4#5#6 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g_@@_ #1 _#3_ #2 _tl }
+ { g_@@_ #4 _#6_ #5 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Messages}
+%
+% Mark errors are LaTeX kernel errors:
+% \changes{v1.0d}{2022/06/01}{Marks are kernel errors}
+% \begin{macrocode}
+\prop_gput:Nnn \g_msg_module_type_prop { mark } { LaTeX }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\msg_new:nnnn { mark } { class-already-defined }
+ { Mark~class~'#1'~already~defined }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~define~a~new~mark~class~called~'#1':~
+ this~mark~class~already~exists.
+ \c__msg_return_text_tl
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\msg_new:nnnn { mark } { unknown-class }
+ { Unknown~mark~class~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~manipulate~a~mark~of~class~'#1',~
+ but~this~class~of~marks~does~not~exist.
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+
+\msg_new:nnnn { mark } { invalid-use }
+ { Mark~region~'#1'~not ~usable }
+ {
+ \c__msg_coding_error_text_tl
+ The~region~'#1'~can~only~be~used~after~
+ all~columns~have~been~assembled.
+ \c__msg_return_text_tl
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\msg_new:nnnn { mark } { infinite-shrinkage }
+ { Infinite~shrinkage~found~in~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ The~mark~region~'#1'~contains~some~infinite~negative~glue~
+ allowing~it~to~shrink~to~an~arbitrary~size.~
+ This~makes~it~impossible~to~split~the~region~apart~to~
+ get~at~its~marks.~They~are~lost.
+ }
+% \end{macrocode}
+%
+%
+%
+% \subsection{Debugging the mark structures}
+%
+% Code and commands in this section are not final, it needs more
+% experimentation to see what kind of tracing information is going to
+% be useful in practice. For now the tracing is mainly meant to be used
+% for code testing and not so much for application testing.
+%
+% It is quite likely that the
+% commands and the behavior of the tracing might change in the
+% future once we gained some experience with it.
+%
+% \begin{macro}{\g_@@_debug_bool}
+% Holds the current debugging state.
+% \begin{macrocode}
+\bool_new:N \g_@@_debug_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mark_debug_on:,\mark_debug_off:}
+% \begin{macro}{\@@_debug:n}
+% \begin{macro}{\@@_debug_gset:}
+% Turns debugging on and off by redefining \cs{@@_debug:n}.
+% \begin{macrocode}
+\cs_new_eq:NN \@@_debug:n \use_none:n
+\cs_new_protected:Npn \mark_debug_on:
+ {
+ \bool_gset_true:N \g_@@_debug_bool
+ \@@_debug_gset:
+ }
+\cs_new_protected:Npn \mark_debug_off:
+ {
+ \bool_gset_false:N \g_@@_debug_bool
+ \@@_debug_gset:
+ }
+\cs_new_protected:Npn \@@_debug_gset:
+ {
+ \cs_gset_protected:Npx \@@_debug:n ##1
+ { \bool_if:NT \g_@@_debug_bool {##1} }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\DebugMarksOn,\DebugMarksOff}
+% CamelCase commands for debugging.
+% \begin{macrocode}
+\cs_new_eq:NN \DebugMarksOn \mark_debug_on:
+\cs_new_eq:NN \DebugMarksOff \mark_debug_off:
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@@_class_status:nn}
+% Shows the mark values across all regions for one mark class
+% (\verb=#2=). The first argument gives some \meta{info} to help
+% identifying where the command was called.
+% \begin{macrocode}
+%<*trace>
+\cs_new_protected:Npn \@@_class_status:nn #1#2
+ {
+ \typeout{ Marks:~#2~ #1:}
+ \typeout{\@spaces page~ (current):
+ | \exp_not:v { g_@@_page_top_ #2 _tl }
+ | \exp_not:v { g_@@_page_first_ #2 _tl }
+ | \exp_not:v { g_@@_page_last_ #2 _tl } |}
+ \typeout{\@spaces page~ (previous):
+ | \exp_not:v { g_@@_previous-page_top_ #2 _tl }
+ | \exp_not:v { g_@@_previous-page_first_ #2 _tl }
+ | \exp_not:v { g_@@_previous-page_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (previous):
+ | \exp_not:v { g_@@_previous-column_top_ #2 _tl }
+ | \exp_not:v { g_@@_previous-column_first_ #2 _tl }
+ | \exp_not:v { g_@@_previous-column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (current):
+ | \exp_not:v { g_@@_column_top_ #2 _tl }
+ | \exp_not:v { g_@@_column_first_ #2 _tl }
+ | \exp_not:v { g_@@_column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (first):
+ | \exp_not:v { g_@@_first-column_top_ #2 _tl }
+ | \exp_not:v { g_@@_first-column_first_ #2 _tl }
+ | \exp_not:v { g_@@_first-column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (second):
+ | \exp_not:v { g_@@_last-column_top_ #2 _tl }
+ | \exp_not:v { g_@@_last-column_first_ #2 _tl }
+ | \exp_not:v { g_@@_last-column_last_ #2 _tl } |}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\@@_status:n}
+% Show all mark class values across all regions.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_status:n #1
+ {
+ \seq_map_inline:Nn \g_@@_classes_seq
+ { \@@_class_status:nn {#1} {##1} }
+ }
+%</trace>
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{Designer-level interfaces}
+%
+%
+% \begin{macro}{\NewMarkClass,\InsertMark}
+% These two are identical to the L3 programming layer commands.
+% \begin{macrocode}
+\cs_new_eq:NN \NewMarkClass \mark_new_class:n
+\@onlypreamble \NewMarkClass
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_eq:NN \InsertMark \mark_insert:nn
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[EXP]{\TopMark, \FirstMark, \LastMark}
+% The following commands take an optional argument that defaults to
+% page. There is no checking that the region is actually valid. If
+% not there is simply an empty return.
+% \begin{macrocode}
+\NewExpandableDocumentCommand \FirstMark { O{page} m }
+ { \mark_use_first:nn {#1}{#2} }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewExpandableDocumentCommand \LastMark { O{page} m }
+ { \mark_use_last:nn {#1}{#2} }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewExpandableDocumentCommand \TopMark { O{page} m }
+ { \mark_use_top:nn {#1}{#2} }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}[EXP]{\IfMarksEqualTF}
+% We only provide a CamelCase command for the case with one region
+% (optional) and one class. One could think of also providing a
+% version for the general case with several optional arguments, but
+% use cases for this are most likely rare, so not done yet.
+% \begin{macrocode}
+\NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} {
+ \mark_if_eq:nnnnTF {#1}{#2}{#3}{#4}
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \section{\LaTeXe{} integration}
+%
+% \subsection{Core \LaTeXe{} integration}
+%
+% \begin{macro}{\@@_update_singlecol_structures:}
+% This command updates the mark structures if we are producing a
+% single column document.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_update_singlecol_structures: {
+% \end{macrocode}
+% First we update the \texttt{page} region (which also updates the
+% \texttt{previous-page}.
+%
+% The \cs{@outputbox} is normally in \cs{vbox} in \LaTeX{} but we
+% can't take that for granted (an \pkg{amsmath} test document
+% changed it to an \cs{hbox} just to trip me up) so we are a little
+% careful with unpack now.
+% \begin{macrocode}
+ \box_if_vertical:NTF \@outputbox
+ {
+ \@@_update_structure:nn {page}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \@@_update_structure:nn {page}
+ { \hbox_unpack:N \@outputbox }
+ }
+% \end{macrocode}
+% The we provide the necessary updates for the aliases.
+% \begin{macrocode}
+ \@@_update_structure_alias:nn {previous-column}{previous-page}
+ \@@_update_structure_alias:nn {column}{page}
+ \@@_update_structure_alias:nn {first-column}{page}
+ \@@_update_structure_alias:nn {last-column}{page}
+%<*trace>
+% move this into status itself?
+ \@@_debug:n
+ {
+ \@@_status:n
+ { in~ OR~ (
+ \legacy_if:nTF {@twoside}
+ { twoside-
+ \int_if_odd:nTF \c@page
+ { odd }{ even }
+ }
+ { oneside }
+ )
+ }
+ }
+%</trace>
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_update_dblcol_structures:}
+% This commands handles the updates if we are doing two-column pages.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_update_dblcol_structures: {
+% \end{macrocode}
+% First we update the \texttt{column} and \texttt{previous-column}
+% regions using the material assembled in \cs{@outputbox}.
+% \begin{macrocode}
+ \box_if_vertical:NTF \@outputbox
+ {
+ \@@_update_structure:nn {column}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \@@_update_structure:nn {column}
+ { \hbox_unpack:N \@outputbox }
+ }
+% \end{macrocode}
+% How we have to update the alias regions depends on whether or not
+% \cs{@opcol} was called to process the first column or to produce
+% the completed page
+% \begin{macrocode}
+ \legacy_if:nTF {@firstcolumn}
+ {
+% \end{macrocode}
+% If we are processing the first column then \texttt{column} is our
+% \texttt{first-column} and there is no \texttt{last-column} yet,
+% so we make those an error.
+% \begin{macrocode}
+ \@@_update_structure_alias:nn {first-column}{column}
+ \@@_update_structure_to_err:n {last-column}
+ }
+ {
+% \end{macrocode}
+% If we produce the completed page then the \texttt{first-column}
+% is the same as the new \texttt{previous-column}. However, the
+% structure should already be correct if you think about it
+% (because is was set to \texttt{column} last time which is now the
+% \texttt{previous-column}), thus there is no need to make an update.
+% \begin{macrocode}
+% \@@_update_structure_alias:nn {first-column}{previous-column}
+% \end{macrocode}
+% However, we now have a proper \texttt{last-column} so we assign that.
+% \begin{macrocode}
+ \@@_update_structure_alias:nn {last-column}{column}
+% \end{macrocode}
+% What now remains doing is to update the \texttt{page} and
+% \texttt{previous-page} regions. For this we have to copy the
+% settings in \texttt{page} into \texttt{previous-page} and then
+% update \texttt{page} such that the top and first marks are taken
+% from the \texttt{first-column} region and the last marks are
+% taken from the \texttt{last-column} region. All this has to be
+% done for all mark classes so we loop over our sequence.
+%
+% Note that one loop is needed if we arrange the copy statements in
+% a suitable way.
+% \begin{macrocode}
+ \seq_map_inline:Nn \g_@@_classes_seq
+ {
+ \tl_gset_eq:cc { g_@@_previous-page_top_ ##1 _tl }
+ { g_@@_page_top_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_previous-page_first_ ##1 _tl }
+ { g_@@_page_first_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_previous-page_last_ ##1 _tl }
+ { g_@@_page_last_ ##1 _tl }
+% \end{macrocode}
+% The \texttt{page} updates need to come after the corresponding
+% updates for \texttt{previous-page} otherwise we loose the
+% necessary value.
+% \begin{macrocode}
+ \tl_gset_eq:cc { g_@@_page_top_ ##1 _tl }
+ { g_@@_first-column_top_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_ page_first_ ##1 _tl }
+ { g_@@_first-column_first_ ##1 _tl }
+ \tl_gset_eq:cc { g_@@_page_last_ ##1 _tl }
+ { g_@@_last-column_last_ ##1 _tl }
+ }
+ }
+%<*trace>
+ \@@_debug:n
+ {
+ \@@_status:n
+ { in~ OR~ (
+ \legacy_if:nTF {@twoside}
+ { twoside-
+ \int_if_odd:nTF \c@page
+ { odd }{ even }
+ }
+ { oneside }
+ \space
+ \legacy_if:nTF {@firstcolumn}
+ { first~ }{ second~ }
+ column )
+ }
+ }
+%</trace>
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+% \begin{macro}[int]{\@expl@@@mark@update@singlecol@structures@@,
+% \@expl@@@mark@update@dblcol@structures@@}
+% \begin{macrocode}
+\cs_new_eq:NN \@expl@@@mark@update@singlecol@structures@@
+ \__mark_update_singlecol_structures:
+\cs_new_eq:NN \@expl@@@mark@update@dblcol@structures@@
+ \__mark_update_dblcol_structures:
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Other \LaTeXe{} output routines}
+%
+% This section will cover \pkg{multicol} and other packages altering
+% or providing their own output routine. Not done yet.
+%
+%
+%
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltmarks}%
+%<latexrelease> {Undo~Marks~handling}
+%<latexrelease>
+% \end{macrocode}
+% We keep the interface commands around even if we roll back in
+% case they are used in packages that don't roll back. Not likely
+% to do a lot of good, but then there is not much we can do, but
+% this at least then doesn't give errors.
+% \begin{macrocode}
+%<latexrelease>\DeclareRobustCommand \NewMarkClass[1]{}
+%<latexrelease>\DeclareRobustCommand \InsertMark[2]{}
+%<latexrelease>\RenewExpandableDocumentCommand \FirstMark { O{} m } { }
+%<latexrelease>\RenewExpandableDocumentCommand \LastMark { O{} m } { }
+%<latexrelease>\RenewExpandableDocumentCommand \TopMark { O{} m } { }
+%<latexrelease>\RenewExpandableDocumentCommand \IfMarksEqualTF { O{} mmm }{ }
+%<latexrelease>
+% \end{macrocode}
+% Same here, this avoided extra roll back code in the OR.
+% \begin{macrocode}
+%<latexrelease>\let \@expl@@@mark@update@singlecol@structures@@ \relax
+%<latexrelease>\let \@expl@@@mark@update@dblcol@structures@@ \relax
+%<latexrelease>
+%<latexrelease>
+%<latexrelease>\EndModuleRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% Reset module prefix:
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
diff --git a/macros/latex/base/ltmath.dtx b/macros/latex/base/ltmath.dtx
index 59e0d89a10..1bd979f7de 100644
--- a/macros/latex/base/ltmath.dtx
+++ b/macros/latex/base/ltmath.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -38,7 +38,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmath.dtx}
- [2021/10/14 v1.2j LaTeX Kernel (Math Setup)]
+ [2022/05/08 v1.2l LaTeX Kernel (Math Setup)]
% \iffalse
%</driver>
%
@@ -74,7 +74,7 @@
% This file contains a lot of the original plain \TeX{} code, as well
% as the \LaTeX{} environments for math. It still needs sorting out.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
@@ -467,8 +467,9 @@
% \end{macro}
%
% \begin{macro}{\openup}
+% \changes{v1.2k}{2022/04/08}{Make \cs{protected} (gh/123)}
% \begin{macrocode}
-\def\openup{\afterassignment\@penup\dimen@}
+\protected\def\openup{\afterassignment\@penup\dimen@}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1089,6 +1090,18 @@
% \end{macrocode}
% \end{macro}
%
+% \changes{v1.2l}{2022/05/08}{Use consistent math styles under \LuaTeX}
+% \LuaTeX\ contains new math primitives to place expression over or under
+% horizontally extensible glyphs. Before \LuaTeX\ 1.14 these did not work
+% correctly with the |\mathstyle| primitive and sometimes did not use
+% cramped style in consistent ways. For newer version, we opt into the
+% corrected behavior.
+% \begin{macrocode}
+\ifx\mathdefaultsmode\@undefined\else
+ \mathdefaultsmode=1
+\fi
+% \end{macrocode}
+%
% \begin{macrocode}
%</2ekernel>
% \end{macrocode}
diff --git a/macros/latex/base/ltmeta.dtx b/macros/latex/base/ltmeta.dtx
new file mode 100644
index 0000000000..31c5d8dbee
--- /dev/null
+++ b/macros/latex/base/ltmeta.dtx
@@ -0,0 +1,216 @@
+% \iffalse meta-comment
+%
+%% File: ltmeta.dtx (C) Copyright 2021, 2022
+% Frank Mittelbach, LaTeX Team
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+%%% From File: ltmeta.dtx
+%
+% \begin{macrocode}
+\def\ltmetaversion{v1.0b}
+\def\ltmetadate{2022/05/18}
+% \end{macrocode}
+%<*driver>
+\documentclass{l3doc}
+
+% Fixing footnotes in functions and variables: this should be in l3doc!
+
+\newcommand\fixfootnote[2]{\footnotemark
+ \AddToHookNext{env/#1/after}{\footnotetext{#2}}}
+\AddToHook{env/function/begin}{\def\footnote{\fixfootnote{function}}}
+\AddToHook{env/variable/begin}{\def\footnote{\fixfootnote{variable}}}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{ltmeta.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \providecommand\hook[1]{\texttt{#1}}
+% \providecommand\env[1]{\texttt{#1}}
+%
+%
+%
+% \title{The \texttt{ltmeta.dtx} code\thanks{This file has version
+% \ltmetaversion\ dated \ltmetadate, \copyright\ \LaTeX\
+% Project.}}
+% \author{Frank Mittelbach}
+%
+% \maketitle
+%
+%
+% \begin{abstract}
+% This code defines the \cs{DocumentMetadata} interface.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+%
+% In the past there was no dedicated location to declare settings
+% concerning a document as a whole. Settings are placed somewhere
+% in the preamble or with the class options or even with some
+% package options. For some settings this can be too late, for
+% example the pdf version can no longer be changed if a package has
+% used code which already opened the PDF.
+%
+% \cs{DocumentMetadata} as a new command unifies such settings in
+% one place. It must be used before \cs{documentclass} but can be
+% issued more than once there.
+%
+% At the moment most of the code run by \cs{DocumentMetadata} is
+% external to the format and subject to change. This includes the
+% supported key/values.
+%
+% For that reason all that happens right now in the format is to
+% look for suitable support files and if found, to redirect the
+% processing to them.
+%
+% \subsection{\cs{DocumentMetadata}}
+%
+% \begin{function}{\DocumentMetadata}
+% \begin{syntax}
+% \cs{DocumentMetadata}\Arg{key-value list}
+% \end{syntax}
+% \end{function}
+%
+%
+%
+% The keys defined for \cs{DocumentMetadata}
+% currently allow to set the PDF version, to set the PDF \texttt{/Lang},
+% to uncompress a PDF, to set the language and to declare a few PDF standards
+% and some color profiles.
+%
+% \cs{DocumentMetadata} is also used to
+% activate the new PDF management code and it loads
+% a number of required files for the PDF management code.
+% As this forces the loading of the backend files, a backend
+% which can't be detected automatically like |dvipdfmx|,
+% must be set in the first \cs{DocumentMetadata} call (if there is more than one).
+%
+% The full set of keys currently supported is documented in \texttt{documentmetadata-support.pdf}
+% for now.
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+%
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+% \end{macrocode}
+% Not needed yet but \ldots
+% \begin{macrocode}
+%\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\NewModuleRelease{2022/06/01}{ltmeta}
+%<latexrelease> {Document Metadata handling}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let \IfDocumentMetadataTF \@secondoftwo
+\protected\def\DocumentMetadata{%
+ \InputIfFileExists{documentmetadata-support.ltx}%
+ {}%
+% \end{macrocode}
+% The above file is changing \cs{DocumentMetadata} to a suitable
+% definition (or so we hope), so that we can try again --- if not
+% tough.
+%
+% If the file can't be found we say so and carry on without it.
+% \begin{macrocode}
+ {%
+ \@latex@error{No support files for
+ \noexpand\DocumentMetadata found}
+ {Is the 'LaTeX-lab' bundle installed?%
+ \MessageBreak
+ Without it, the declaration is ignored.}%
+% \end{macrocode}
+% No point in trying this more than once if there are several calls
+% in the document.
+% \begin{macrocode}
+ \let\DocumentMetadata\@gobble
+ }%
+ \let \IfDocumentMetadataTF \@firstoftwo
+ \DocumentMetadata
+}
+% \end{macrocode}
+%
+% To allow package and class author to support for document links
+% we provide also the new interface commands of the hyperref package
+% for the creation of targets.
+% \changes{v1.0b}{2022/05/17}{Default definition for targets added}
+% \begin{macro}{\MakeLinkTarget}
+% \begin{macro}{\LinkTargetOn}
+% \begin{macro}{\LinkTargetOff}
+% \begin{macro}{\NextLinkTarget}
+% \begin{macrocode}
+\NewDocumentCommand\MakeLinkTarget{sO{}m}{%
+ \ifvmode
+ \special{}%
+ \else
+ \@savsf\spacefactor
+ \smash{}%
+ \spacefactor\@savsf
+ \fi}
+\NewDocumentCommand\LinkTargetOn{}{}
+\NewDocumentCommand\LinkTargetOff{}{}
+\NewDocumentCommand\NextLinkTarget{m}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% We do not undo \cs{MakeLinkTarget} and friends if we roll back, in
+% case they are used in packages that themselves do not offer
+% rollback. This way a roll forward adds them, but the dummies remain
+% if you roll back and you don't get missing csname errors if they
+% are used.
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltmeta}%
+%<latexrelease> {Undo Document Metadata handling}
+%<latexrelease>
+%<latexrelease>\let\DocumentMetadata\@undefined
+%<latexrelease>
+%<latexrelease>\EndModuleRelease
+% \end{macrocode}
+% Again for the future \ldots
+% \begin{macrocode}
+%\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% Restore module prefix (if any):
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
diff --git a/macros/latex/base/ltmiscen.dtx b/macros/latex/base/ltmiscen.dtx
index 6cc58907a0..b7b2bf5e31 100644
--- a/macros/latex/base/ltmiscen.dtx
+++ b/macros/latex/base/ltmiscen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -81,7 +81,7 @@
% environments and related commands, the `flushing' environments,
% (|center|, |flushleft|, |flushright|), and |verbatim|.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index af795b23d4..a55de7eb1c 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews.tex b/macros/latex/base/ltnews.tex
index 406787c5f0..cba11c3ce3 100644
--- a/macros/latex/base/ltnews.tex
+++ b/macros/latex/base/ltnews.tex
@@ -38,9 +38,9 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltnews.tex}%
- [2021/06/07 v1.4d Master file for ltnews*.tex (LaTeX Project)]
+ [2021/11/12 v1.4d Master file for ltnews*.tex (LaTeX Project)]
-\providecommand*{\lastissue}{34}
+\providecommand*{\lastissue}{35}
\InputIfFileExists{ltnews-lastissue.cfg}{}{}
@@ -222,7 +222,11 @@
\def\y{|multicol}%
\ifx\x\y
\else
- \@latex@error{ltnews.tex: \string\usepackage[#1]{#2} found}\@ehc
+ \def\y{|color}%
+ \ifx\x\y
+ \else
+ \@latex@error{ltnews.tex: \string\usepackage[#1]{#2} found}\@ehc
+ \fi
\fi
\fi
\fi
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index 208069621e..ed4420fac7 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews01.tex b/macros/latex/base/ltnews01.tex
index 3703f23f61..08ac57d27d 100644
--- a/macros/latex/base/ltnews01.tex
+++ b/macros/latex/base/ltnews01.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index 611665a28d..dced90a7bd 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.tex b/macros/latex/base/ltnews02.tex
index dfc78e4843..1d875dcd03 100644
--- a/macros/latex/base/ltnews02.tex
+++ b/macros/latex/base/ltnews02.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index 4e98757b7c..a6f83c70e3 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.tex b/macros/latex/base/ltnews03.tex
index e555e12df4..93f0963426 100644
--- a/macros/latex/base/ltnews03.tex
+++ b/macros/latex/base/ltnews03.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index 6bda1af53e..d9eb536b86 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.tex b/macros/latex/base/ltnews04.tex
index 0a313664ba..527024fa18 100644
--- a/macros/latex/base/ltnews04.tex
+++ b/macros/latex/base/ltnews04.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index 3b5590d158..b24151feed 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.tex b/macros/latex/base/ltnews05.tex
index 840f04fe72..d13f469dd6 100644
--- a/macros/latex/base/ltnews05.tex
+++ b/macros/latex/base/ltnews05.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index a601cc3e65..d6ff0c4ce8 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.tex b/macros/latex/base/ltnews06.tex
index 52ecba9918..ac32eab8d1 100644
--- a/macros/latex/base/ltnews06.tex
+++ b/macros/latex/base/ltnews06.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index e5781cbadd..03172d6299 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.tex b/macros/latex/base/ltnews07.tex
index db3812e387..56cfd76661 100644
--- a/macros/latex/base/ltnews07.tex
+++ b/macros/latex/base/ltnews07.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index b08f0bf834..1500a3b436 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.tex b/macros/latex/base/ltnews08.tex
index d79a1b1b74..68cd1247e6 100644
--- a/macros/latex/base/ltnews08.tex
+++ b/macros/latex/base/ltnews08.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index f5ae7d4cef..46b251d25c 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.tex b/macros/latex/base/ltnews09.tex
index 2d56515ca0..af14a53e34 100644
--- a/macros/latex/base/ltnews09.tex
+++ b/macros/latex/base/ltnews09.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index 8607468376..71203b94e1 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.tex b/macros/latex/base/ltnews10.tex
index 5ab159f0bb..c6a77e6e36 100644
--- a/macros/latex/base/ltnews10.tex
+++ b/macros/latex/base/ltnews10.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index 2e41c1b23e..0b5e3aee42 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.tex b/macros/latex/base/ltnews11.tex
index 6d27fee067..b4f6d19910 100644
--- a/macros/latex/base/ltnews11.tex
+++ b/macros/latex/base/ltnews11.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index e25c52517d..7ce5bc2138 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.tex b/macros/latex/base/ltnews12.tex
index 62b08324b7..b7a01bc208 100644
--- a/macros/latex/base/ltnews12.tex
+++ b/macros/latex/base/ltnews12.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index bedabe5c47..7cc92b75fb 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.tex b/macros/latex/base/ltnews13.tex
index 08acf95df6..0cbbe49a5d 100644
--- a/macros/latex/base/ltnews13.tex
+++ b/macros/latex/base/ltnews13.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index 34874d53e5..35ff9ebfd6 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.tex b/macros/latex/base/ltnews14.tex
index 61c96c81ae..b5fa7cb019 100644
--- a/macros/latex/base/ltnews14.tex
+++ b/macros/latex/base/ltnews14.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 54143d4d6d..86e6f5112e 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.tex b/macros/latex/base/ltnews15.tex
index e143d5f4dd..3b1ea3f89c 100644
--- a/macros/latex/base/ltnews15.tex
+++ b/macros/latex/base/ltnews15.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index afe7946306..d1cff3c808 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.tex b/macros/latex/base/ltnews16.tex
index 17f9cd094a..7f7183ac0e 100644
--- a/macros/latex/base/ltnews16.tex
+++ b/macros/latex/base/ltnews16.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index 3b999d7051..bb04d1aca6 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.tex b/macros/latex/base/ltnews17.tex
index 614c5c7d63..4dab20f53f 100644
--- a/macros/latex/base/ltnews17.tex
+++ b/macros/latex/base/ltnews17.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index ca6f790803..21ef52e75d 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.tex b/macros/latex/base/ltnews18.tex
index 518aeda067..04491760b2 100644
--- a/macros/latex/base/ltnews18.tex
+++ b/macros/latex/base/ltnews18.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index af489f48d0..6e0428dbf1 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.tex b/macros/latex/base/ltnews19.tex
index f733c41dd4..43d388b29b 100644
--- a/macros/latex/base/ltnews19.tex
+++ b/macros/latex/base/ltnews19.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index 4313b687b8..464fd8b71b 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index f2301aa112..a0244199bd 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index b49c30a43f..271e7b5549 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.tex b/macros/latex/base/ltnews22.tex
index 7551616154..8d1c91acfa 100644
--- a/macros/latex/base/ltnews22.tex
+++ b/macros/latex/base/ltnews22.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index d0a0829e7e..1baa40823b 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.tex b/macros/latex/base/ltnews23.tex
index 99e9615074..29241766ca 100644
--- a/macros/latex/base/ltnews23.tex
+++ b/macros/latex/base/ltnews23.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index bbb1de7bdc..2819e7ae60 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.tex b/macros/latex/base/ltnews24.tex
index 44cd76a060..13d2fc8519 100644
--- a/macros/latex/base/ltnews24.tex
+++ b/macros/latex/base/ltnews24.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index d1207ea608..b15213fa0a 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.tex b/macros/latex/base/ltnews25.tex
index 735fda356e..5a9f480718 100644
--- a/macros/latex/base/ltnews25.tex
+++ b/macros/latex/base/ltnews25.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2016-2021
+% Copyright (C) 2016-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index 36548c5b6c..ef2f6476a5 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.tex b/macros/latex/base/ltnews26.tex
index f0e7578b70..94b4c4818b 100644
--- a/macros/latex/base/ltnews26.tex
+++ b/macros/latex/base/ltnews26.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index b407a06077..70a4b3298e 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.tex b/macros/latex/base/ltnews27.tex
index ba17d26e5e..03c8c04205 100644
--- a/macros/latex/base/ltnews27.tex
+++ b/macros/latex/base/ltnews27.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index b43107672c..267e85ea51 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.tex b/macros/latex/base/ltnews28.tex
index 03d4a04ae1..28bfe0577c 100644
--- a/macros/latex/base/ltnews28.tex
+++ b/macros/latex/base/ltnews28.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index 91dfa2d7f9..090fc4c658 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.tex b/macros/latex/base/ltnews29.tex
index 749b927218..c06d4de347 100644
--- a/macros/latex/base/ltnews29.tex
+++ b/macros/latex/base/ltnews29.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2018-2021
+% Copyright (C) 2018-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index 62408fe152..849f406acb 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index 7d6614ea23..11880394de 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.pdf b/macros/latex/base/ltnews32.pdf
index c5adbb165d..5850e93b18 100644
--- a/macros/latex/base/ltnews32.pdf
+++ b/macros/latex/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.tex b/macros/latex/base/ltnews32.tex
index 01bc515db5..28f3bf88b4 100644
--- a/macros/latex/base/ltnews32.tex
+++ b/macros/latex/base/ltnews32.tex
@@ -307,7 +307,7 @@ line) could result in an unnecessary extra line in order to prevent a
hyphen in the second-last line of the paragraph. This is now avoided
by setting \cs{finalhyphendemerits} to zero in unjustified settings.
%
-\githubissue{274}
+\githubissue{247}
\subsection{Set a non-zero \cs{baselineskip} in text scripts}
diff --git a/macros/latex/base/ltnews33.pdf b/macros/latex/base/ltnews33.pdf
index 3230ff1825..45cc1a580d 100644
--- a/macros/latex/base/ltnews33.pdf
+++ b/macros/latex/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews34.pdf b/macros/latex/base/ltnews34.pdf
index 7386496035..87a85b0599 100644
--- a/macros/latex/base/ltnews34.pdf
+++ b/macros/latex/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews34.tex b/macros/latex/base/ltnews34.tex
index 11f1ce2bce..04d1c25bc7 100644
--- a/macros/latex/base/ltnews34.tex
+++ b/macros/latex/base/ltnews34.tex
@@ -493,7 +493,8 @@ for which these are now the preferred replacements.
This optional argument
specifies the format of the counter, such as \cs{roman};
the default value is \cs{arabic}.
-
+Alternatively, you can use a starred form, in which case the format of the
+counter is not altered at all.
\subsection{Tests for package and class loading}
@@ -548,7 +549,7 @@ version of the font instead of substituting the (T1-encoded) Type 1 version.
\subsection{Additional Extended Latin characters predefined}
-More characters, such as \'k (U+1E131), are now pre-defined and
+More characters, such as \'k (U+1E31), are now pre-defined and
do not need a \verb|\DeclareUnicodeCharacter| declaration.
%
\githubissue{593}
@@ -783,7 +784,7 @@ possibilities.
A \env{tabular} environment is typeset (internally) as an \env{array}
environment with special settings, and it therefore uses (hidden) math mode.
Since it is not in fact a math formula,
-no extra space from \cs{mathsuround} should be added
+no extra space from \cs{mathsurround} should be added
(the spacing around the \env{tabular} should not get changed).
%
Note that this bug has been present ``forever'', which shows that \cs{mathsurround}
@@ -830,7 +831,7 @@ brace groups inside \cs{r@}\meta{label}) However, if \pkg{nameref} or
arguments; this could cause low-level errors in some cases.
The code has therefore now been changed to avoid these errors.
%
-\sxissue{603948}
+\sxissue{q/603948}
\medskip
diff --git a/macros/latex/base/ltnews35.pdf b/macros/latex/base/ltnews35.pdf
new file mode 100644
index 0000000000..2e946fa605
--- /dev/null
+++ b/macros/latex/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews35.tex b/macros/latex/base/ltnews35.tex
new file mode 100644
index 0000000000..0e0cda79b1
--- /dev/null
+++ b/macros/latex/base/ltnews35.tex
@@ -0,0 +1,987 @@
+% \iffalse meta-comment
+%
+% Copyright 2021-2022
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -——————————————
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% Filename: ltnews35.tex
+%
+% This is issue 35 of LaTeX News.
+
+\NeedsTeXFormat{LaTeX2e}[2020-02-02]
+
+\documentclass{ltnews}
+
+%% Maybe needed only for Chris' inadequate system:
+\providecommand\Dash {\unskip \textemdash}
+
+%% NOTE: Chris' preferred hyphens!
+%%\showhyphens{parameters}
+%% \hyphenation{because parameters parameter}
+
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern,url,hologo}
+
+\usepackage{csquotes}
+\usepackage{multicol}
+\usepackage{color}
+
+\providecommand\hook[1]{\texttt{#1}}
+
+\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$}
+\providecommand\option[1]{\texttt{#1}}
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}
+
+
+\providecommand\eTeX{\hologo{eTeX}}
+\providecommand\XeTeX{\hologo{XeTeX}}
+\providecommand\LuaTeX{\hologo{LuaTeX}}
+\providecommand\pdfTeX{\hologo{pdfTeX}}
+\providecommand\MiKTeX{\hologo{MiKTeX}}
+\providecommand\CTAN{\textsc{ctan}}
+\providecommand\TL{\TeX\,Live}
+\providecommand\githubissue[2][]{\ifhmode\unskip\fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(%
+ \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
+ {github issue#1 #2}%
+ )}%
+ \par\smallskip}
+%% But Chris has to mostly disable \href for his TEXPAD app:
+%% \def\href #1{} % Only For Chris' deficient TeX engine
+
+% simple solution right now (just link to the first issue if there are more)
+\def\getfirstgithubissue#1 #2\relax{#1}
+
+\providecommand\sxissue[1]{\ifhmode\unskip
+ \else
+ % githubissue preceding
+ \vskip-\smallskipamount
+ \vskip-\parskip
+ \fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}
+
+\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(%
+ \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}%
+ {gnats issue #1/#2}%
+ )}%
+ \par}
+
+\let\cls\pkg
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\acro[1]{\textsc{#1}}
+
+\vbadness=1400 % accept slightly empty columns
+
+
+\makeatletter
+% maybe not the greatest design but normally we wouldn't have subsubsections
+\renewcommand{\subsubsection}{%
+ \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
+ {-1em}{\@subheadingfont\colonize}%
+}
+\providecommand\colonize[1]{#1:}
+\makeatother
+
+\let\finalvspace\vspace % for document layout fixes
+
+% Undo ltnews's \verbatim@font with active < and >
+\makeatletter
+\def\verbatim@font{%
+ \normalsize\ttfamily}
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand\tubcommand[1]{}
+\tubcommand{\input{tubltmac}}
+
+\publicationmonth{June}
+\publicationyear{2022}
+
+\publicationissue{35}
+
+\begin{document}
+
+\tubcommand{\addtolength\textheight{4.2pc}} % only for TUB
+
+\maketitle
+{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000
+\tableofcontents}
+
+\setlength\rightskip{0pt plus 3em}
+
+
+\medskip
+
+
+\section{Introduction}
+
+The 2022 June release of \LaTeX{} is again focussing on improvements
+made for our multi-year project to automatically offer tagged PDF
+output~\cite{35:blueprint}. These are the new document metadata
+interface, the new mark mechanism for \LaTeX{}, a standard key/value
+approach for options, and the introduction of the \texttt{latex-lab}
+area for temporary code that can be optionally loaded by a document
+(when \cs{DocumentMetadata} is used with certain test keys). These
+additions are described in the first sections. Related to this effort
+there are updates to \pkg{hyperref} and \pkg{tagpdf}, both of which
+have their own distributions.
+
+As usual, we also added a number of smaller improvements and bug
+fixes in various components of core \LaTeX{}. Perhaps the most
+interesting ones (for some users) are direct support for floating
+point arithmetic (via \cs{fpeval}; see below) and the ability to
+properly color parts of math formulas without introducing spacing
+problems. For this we now offer the command \cs{mathcolor}; see the
+description near the end of the newsletter. There is also a new major
+release of the \pkg{doc} package that supports a more fine-grained
+classification of code elements and properly supports \pkg{hyperref}.
+
+
+\section{Document metadata interface}
+
+Until recently there was no dedicated location to declare
+settings that affect a document as a whole. Settings had to be placed
+somewhere in the preamble or as class options or sometimes even as
+package options. For some such settings this may cause issues, e.g.,
+setting the PDF version is only possible as long as the PDF output
+file has not yet been opened which can be caused by loading one or the
+other package.
+
+For the \enquote{\LaTeX{} Tagged PDF project}~\cite{35:blueprint}
+further metadata about the whole document (and its processing) need to
+be specified and again this data should be all placed in a single
+well-defined place.
+
+For this reason we introduce the new command \cs{DocumentMetadata} to
+unify all such settings in one place. The command expects a key/value
+list that describes all document metadata for the current document. It
+is only allowed to be used at the very beginning of the document,
+i.e., the declaration has to be placed \emph{before}
+\cs{documentclass} and will issue an error if found later.
+
+
+At this point in time we provide only the bare command in the format;
+the actual processing of the key/value is defined externally and the
+necessary code will be loaded if the command is used. This scheme is
+chosen for two reasons: by adding the command in the kernel it is
+available to everybody without the need to load a special package
+using \cs{RequirePackage}. The actual processing, though, is external
+so that we can easily extend the code (e.g., offering additional keys
+or changing the internal processing) while the above-mentioned project
+is progressing. Both together allows users to immediately benefit from
+intermediate results produced as part of the project, as well as
+offering the \LaTeX{} Project Team the flexibility to enable such
+intermediate results (for test purposes or even production use)
+in-between and independently of regular \LaTeX{} releases. Over time,
+tested and approved functionality can then seamlessly move into the
+kernel at a later stage without any alterations to documents already
+using it. At the same time, not using the new consolidated interface
+means that existing documents are in no way affected by the work that
+is carried out and is in a wider alpha or beta test phase.
+
+Documentation about the new command and
+already existing keys are in \file{l3meta.pdf} and \file{documentmetadata-support.pdf}
+and also in the documentation of the \pkg{pdfmanagement-testphase} package.
+
+Package and class authors can test if a user has used \cs{DocumentMetadata}
+with \cs{IfDocumentMetadataTF}.
+
+
+\section{The \pkg{latex-lab} bundle}
+
+We added a new \pkg{latex-lab}oratory bundle in which we place new
+code that is going to be available only through a
+\cs{DocumentMetadata} declaration and that is\Dash most
+importantly\Dash work under development and subject to
+change without further notice. This means that commands and interfaces provided there may
+get altered or removed again after some public testing. The code can
+be accessed through the \cs{DocumentMetadata} key \texttt{testphase}.
+Currently supported values are \texttt{phase-I} and \texttt{phase-II}
+that enable code of the tagged PDF project (phase~I is frozen, and
+phase~II is the phase we are currently working on). With
+\begin{verbatim}
+ \DocumentMetadata{testphase=phase-II}
+\end{verbatim}
+you currently enable tagging for paragraphs and footnotes; more
+document elements will follow soon.
+
+Eventually, code will move (once considered stable) from the
+testphase into the \LaTeX{} kernel itself. Tagging will continue to
+require a \cs{DocumentMetadata} declaration, but you will then be able
+to drop the \texttt{testphase} key setting.
+
+
+\section{A new mark mechanism for \LaTeX{}}
+
+The mark mechanism is \TeX{}'s way to pass information to the
+page-building process, which happens asynchronously, in order to
+communicate relevant data for running headers and footers to the
+latter, e.g., what is the first section on the page or the last
+subsection, etc. However, marks may also be
+used for other purposes. The new kernel module provides a generalized
+mechanism for marks of independent classes.
+
+The \TeX{} engines offer a low-level mark mechanism to
+communicate information about the content of the current page to
+the asynchronous operating output routine. It works by placing
+\cs{mark} commands into the source document.
+
+This mechanism works well for simple formats (such as plain \TeX)
+whose output routines are only called to generate pages. It
+fails, however, in \LaTeX{} (and other more complex formats),
+because here the output routine is sometimes called without
+producing a page, e.g., when encountering a float and placing it
+into one of the float regions.
+%
+When that happens \TeX{}'s \cs{topmark} no
+longer reflects the situation at the top of the next page when that
+page is finally boxed.
+
+Furthermore, \TeX{} only offered a single mark while \LaTeX{} wanted to
+keep track of more than one piece of information. For that reason,
+\LaTeX{} implemented its own mark mechanism where the marks always
+contained two parts with their own interfaces: \cs{markboth} and
+\cs{markright} to set marks and \cs{leftmark} and \cs{rightmark} to
+retrieve them.
+
+Unfortunately, this extended mechanism, while supporting scenarios such
+as chapter/section marks, was far from general. The mark
+situation at the top of a page (i.e., \cs{topmark}) remained
+unusable and the two marks offered were not really independent of
+each other because \cs{markboth} (as the name indicates) was
+always setting both.
+
+
+The new mechanism now available in \LaTeX{} starting with the 2022
+release overcomes both issues:
+\begin{itemize}
+\item
+ It provides arbitrary many, fully independent named marks, that
+ can be allocated and from that point onwards used.
+\item
+ It offers access for each such mark to retrieve its top,
+ first, and bottom value separately.
+\item
+ Furthermore, the mechanism is augmented to give access to marks
+ in different ``regions'', which may be other than full pages.
+\end{itemize}
+The legacy interfaces, e.g., \cs{markboth}, are kept. Thus classes and
+packages making use of them continue to work seamlessly. To make use
+of the extended possibility a new set of commands for the declaration of
+mark classes, setting their values and querying their state (in the
+output routine) is now available in addition.
+%
+You find the documentation for the new interfaces together with
+examples and further notes on the mechanism in the file
+\texttt{ltmarks-doc.pdf}. Just call \texttt{texdoc}
+\texttt{ltmarks-doc} to display it on your computer.
+
+
+\section{A key/value approach to option handling}
+
+The classical \LaTeXe{} method for handling options, using \cs{ProcessOptions},
+treats each entry in the list as a string. Many package authors have sought to
+extend this handling by treating each entry as a key--value pair (keyval)
+instead. To date, this has required the use of additional packages, for example
+\pkg{kvoptions}.
+
+The \LaTeX{} team have for some time offered the package \pkg{l3keys2e} to
+allow keyvals defined using the L3 programming layer module \pkg{l3keys} to act
+as package options. This ability has now been integrated directly into the
+kernel. As part of this integration, the syntax for processing keyval options
+has been refined, such that
+\begin{verbatim}
+\ProcessKeyOptions
+\end{verbatim}
+will now automatically pick up the package name as the key \emph{family},
+%unless explicitly given as an optional argument.
+unless explicitly given as an optional argument:
+\begin{verbatim}
+\ProcessKeyOptions[family]
+\end{verbatim}
+
+To support creating key options for this mechanism, the new command
+\cs{DeclareKeys} has been added. This works using the same general
+approach as \pkg{l3keys} or \pkg{pgfkeys}: each key has one or more
+\emph{properties} which define its behavior.
+
+Options for packages which use this new approach will not be checked for
+clashes by the kernel. Instead, each time a \cs{usepackage} or
+\cs{RequirePackage} line is encountered, the list of options given will be
+passed to \cs{ProcessKeyOptions}. Options which can only be given
+the first time a package is loaded can be marked using the property
+\texttt{.usage = load}, and will result in a warning if used in a subsequent
+package loading line.
+
+Package options defined in this way can also be set within a package using
+the new command \cs{SetKeys}, which again takes an optional argument
+to specify the \emph{family}, plus a mandatory one for the options themselves.
+
+
+
+\section{New or improved commands}
+
+
+\subsection{Floating point and integer calculations}
+
+The L3 programming layer offers expandable commands for calculating
+floating point and integer values, but so far these functions have
+only been available to programmers, because they require
+\cs{ExplSyntaxOn} to be in force. To make them easily available at the
+document level, the small package \pkg{xfp} defined \cs{fpeval} and
+\cs{inteval}.
+
+
+An example of use could be the following:
+\begin{verbatim}
+ \LaTeX{} can now compute:
+ \[ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} \]
+\end{verbatim}
+which produces the following output:
+\begin{quote}
+\LaTeX{} can now compute:
+\[ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} \]
+\end{quote}
+These two commands have now been moved into the kernel and in addition
+we also provide \cs{dimeval} and \cs{skipeval}. The details of their
+syntax are described in \file{usrguide3.pdf}. The command \cs{fpeval}
+offers a rich syntax allowing for extensive calculations, whereas the
+other three commands are essentially thin wrappers for \cs{numexpr},
+\cs{dimexpr}, and \cs{glueexpr} \Dash therefore inheriting some syntax
+%peculiars and limitations in expressiveness.
+peculiarities and limitations in expressiveness.
+% \newcommand\calulateheight[1]{%
+\begin{verbatim}
+ \newcommand\calculateheight[1]{%
+ \setlength\textheight{\dimeval{\topskip
+ + \baselineskip * \inteval{#1-1}}}}
+\end{verbatim}
+The above, for example, calculates the appropriate \cs{textheight} for
+a given number of text lines.
+%
+\githubissue{711}
+
+
+\subsection{CamelCase commands for changing arguments to csnames}
+
+It is sometimes helpful to \enquote{construct} a command name on the
+fly rather than providing it as a single \cs{...}\ token. For these
+kinds of tasks the \LaTeX3 programming layer offers a general mechanism
+(in the form of \cs{exp\_args:N...}\ and
+\cs{cs\_generate\_variant:Nn}). However, when declaring new
+document-level commands with \cs{NewDocumentCommand} or
+\cs{NewCommandCopy}, etc.\ the L3 programming layer may not be active,
+and even if it is, mixing CamelCase syntax with L3 programming syntax
+is not really a good approach. We have therefore added the commands
+\cs{UseName} and \cs{ExpandArgs} to assist in such
+situations, e.g.,
+\begin{verbatim}
+\NewDocumentCommand\newcopyedit{mO{red}}
+ {\newcounter{todo#1}%
+ \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
+ {\stepcounter{todo#1}%
+ \IfBooleanTF {##1}%
+ {\todo[color=#2!10]%
+ {\UseName{thetodo#1}: ##2}}%
+ {\todo[inline,color=#2!10]%
+ {\UseName{thetodo#1}: ##2}}%
+ }%
+ }
+\end{verbatim}
+which provides a declaration mechanism for copyedit commands, so that
+\verb=\newcopyedit{FMi}[blue]= then defines \cs{FMi} (and the
+necessary counter).
+
+The command \cs{ExpandArgs} can be useful with the argument \texttt{cc} or
+\texttt{Nc} in
+combination with \cs{NewCommandCopy} if the old or new command name
+or both need constructing. Finally, there is \cs{UseName} which
+takes its argument and turns it into a command (i.e., a CamelCase
+version of \cs{@nameuse} (\LaTeXe) or \cs{use:c} (L3 programming
+layer)) which was also used in the example above.
+%
+\githubissue{735}
+
+
+\subsection{Testing for (nearly) empty arguments}
+%
+In addition to \cs{IfNoValueTF} to test if an optional argument was
+provided or not, there is now also \cs{IfBlankTF}, which tests if the
+argument is empty or contains only blanks. Based on the result it
+selects a true or false code branch. As usual, the variants
+\cs{IfBlankT} and \cs{IfBlankF} are also provided for use when only one
+branch leads to some action. Further details and examples are given
+in \file{usrguide3.pdf}.
+
+This test can also be useful if you set up key/value options and want
+to test if a key was specified without giving a value, vs.\
+specifying \enquote{\textit{key}\texttt{ = ,}}.
+
+
+\subsection{Better allocator for Lua command ids}
+
+In \LuaTeX\ we already had the \cs{newluafunction} macro which allocates
+a Lua function identifier which can be used to define commands
+with \cs{luadef}. But this always required two steps: \cs{newluafunction}
+defines the passed control sequence as an integer, which then has to be used
+to define the actual Lua command with \cs{luadef}. After that, the integer is
+no longer needed. This was inconsistent with other allocators. Therefore we
+added two new allocators \cs{newluacmd} and \cs{newexpandableluacmd} which
+directly define a control sequences invoking the allocated Lua function.
+The former defines a non-expandable Lua command, the latter an expandable
+one. Of course, the associated Lua function still has to be defined by assigning
+a function to the \verb|lua.get_functions_table()| table. The required index is
+available in \cs{allocationnumber}.
+
+An example could be
+\begin{verbatim}
+\newluacmd \greeting
+\directlua {
+lua.get_functions_table()
+ [tex.count.allocationnumber]
+ = function()
+ local name = token.scan_argument()
+ tex.sprint('Hello ', name, '!')
+ end
+}
+
+\greeting{world}
+\end{verbatim}
+%
+\githubissue{536}
+
+\subsection{Starred command version for \cs{ref}, \cs{Ref} and \cs{pageref}}
+
+For a long time \pkg{hyperref} has provided starred versions for the reference commands
+which do not create active links. This syntax extension required users and
+package authors to check if \pkg{hyperref} was loaded and adjust the coding
+accordingly or take the starred forms out if text was copied to a document
+without \pkg{hyperref}. The commands have now been aligned with
+the \pkg{hyperref} usage and always allow an optional star. The \pkg{showkeys} package
+has been updated to handle the starred versions too, both with \pkg{hyperref} or \pkg{nameref}
+and without. The commands are defined with \cs{NewDocumentCommand} and so no longer expand when
+written to auxiliary files. This reduces the number of compilations needed to resolve references
+in captions and sectioning commands. The package \pkg{ifthen} has been updated to ensure that
+\cs{pageref} can still be used inside tests like \cs{isodd}.
+
+
+\subsection{Preparation for supporting PDF in backends}
+
+At the current point in time, basic support for PDF in
+backends is not part of \LaTeX{} core; it is provided by an external
+package like \pkg{hyperref}.
+At some time in the future that work will be placed
+into the kernel but for now it is separate and has to be
+explicitly loaded in the document. To enable class and package authors
+to support PDF-specific tasks like the creation of link targets without
+having to test first if \pkg{hyperref} has been loaded, dummy versions of
+the commands \cs{MakeLinkTarget}, \cs{LinkTargetOn}, \cs{LinkTargetOff} and
+\cs{NextLinkTarget} are provided.
+
+\section{Code improvements}
+
+\subsection{\cs{protected} UTF-8 character definitions}
+The characters defined via \file{utf8.def} are now defined as \cs{protected}
+macros. This makes them safe to use in expansion contexts where the
+classic \cs{protect} mechanism is not enabled, notably L3 programming
+layer \texttt{e} and \texttt{x} arguments.
+
+Related to this change \cs{MakeUppercase} and \cs{MakeLowercase} have
+been updated to use the Unicode-aware case changing functions
+\cs{text\string_lowercase:n} in place of the \TeX\ primitive \cs{lowercase}.
+The \cs{NoCaseChange} command from the \pkg{textcase} package has also been added.
+
+Note: for technical reasons these low-level character handling changes
+will not be rolled back if the format version is rolled back using the
+\pkg{latexrelease} package rollback mechanism.
+%
+\githubissue{780}
+
+\subsection{A small update to \cs{obeylines} and \cs{obeyspaces}}
+
+The plain \TeX{} versions of \cs{obeylines} and \cs{obeyspaces} make
+\verb=^^M= and \verb*= = active and force them to execute \cs{par} %*
+and \cs{space}, respectively. Don Knuth makes a remark in the \TeX{}book
+that one can then use a trick such as
+\begin{verbatim}
+ \let\par=\cr \obeylines \halign{...
+\end{verbatim}
+However, redefining \cs{par} like this
+may lead to all kinds of problems in \LaTeX. We have therefore changed
+the commands to use an indirection: the active characters now execute
+\cs{obeyedline} and \cs{obeyedspace}, which in turn do what the
+hardwired solution did before.
+
+\begin{quote}
+ \renewcommand\obeyedspace{\ \textbullet\ }
+ \footnotesize\obeyspaces%
+This means that it is now possible to %
+achieve special effects in a safe way. %
+This paragraph, for example, was produced by %
+making \cs{obeyedspace} generate %
+\texttt{\{\cs{\verbvisiblespace}\cs{textbullet}\cs{\verbvisiblespace}\}} and %
+enabling \cs{obeyspaces} within a %
+quote environment.
+\end{quote}
+Thus, if you are keen to use the plain \TeX{} trick, you need to say
+\cs{let}\cs{obeyedlines}\texttt{=}\cs{cr} now.
+%
+\githubissue{367}
+
+
+\subsection{\pkg{doc} upgraded to version~3}
+
+After roughly three decades the \pkg{doc} package received a cautious
+uplift, as already announced at the 2019 TUG conference\Dash changes
+to \pkg{doc} are obviously always done in a leisurely manner.
+
+Given that most documentation is nowadays viewed on screen,
+\pkg{hyperref} support is added and by default enabled (suppress it
+with option \option{nohyperref} or alternatively with
+\option{hyperref}\texttt{=false}) so the internal cross-references are
+properly resolved including those from the index back into the
+document.
+
+Furthermore, \pkg{doc} now has a general mechanism to define
+additional \enquote{doc} elements besides the two \texttt{Macro} and
+\texttt{Env} it has known in the past. This enables better
+documentation because you can now clearly mark different types of
+objects instead of simply calling them all \enquote{macros}.
+If desired, they can be collected together under a heading
+in the index so that you have a section just with your document
+interface commands, or with all parameters, or \ldots
+
+The code borrows ideas from Didier Verna's \pkg{dox} package (although
+the document level interface is different) and it makes use of Heiko
+Oberdiek's \pkg{hypdoc} package, which at some point in the future
+will be completely integrated, given that its whole purpose it to
+patch \pkg{doc}'s internal commands to make them \pkg{hyperref}-aware.
+
+All changes are expected to be upward compatible, but if you run into
+issues with older documentation using \pkg{doc} a simple and quick
+solution is to load the package as follows:
+\verb/\usepackage{doc}[=v2]/
+
+\subsection{\pkg{doc} can now show dates in change log}
+
+Up to now the change log was always sorted by version numbers
+(ignoring the date that was given in the \cs{changes} command). It
+can now be sorted by both version and date if you specify the option
+\option{reportchangedates} on package level and in that case the
+changes are displayed with
+\begin{quote}
+ \meta{version} -- \meta{date}
+\end{quote}
+as the heading (instead of just \meta{version}), when using
+\cs{PrintChanges}.
+%
+\githubissue{531}
+
+
+
+\subsection{\class{ltxdoc} gets options \option{nocfg} and \option{doc2}}
+
+The \LaTeX{} sources are formatted with the \class{ltxdoc} class,
+which supports loading a local config file \file{ltxdoc.cfg}. In the
+past the \LaTeX{} sources used such a file but it was not distributed.
+As a result reprocessing the \LaTeX{} sources elsewhere showed
+formatting changes. We now distribute this file which means that it
+is loaded by default. With the option \option{nocfg} this can be
+prevented.
+
+We also added a \option{doc2} option to the class so that it is
+possible to run old documentation with \pkg{doc} version~2, if
+necessary.
+
+
+
+\subsection{Lua\TeX\ callback improvements}
+
+The Lua\TeX\ callbacks \texttt{hpack\_quality} and \texttt{vpack\_quality} are
+now \texttt{exclusive} and therefore only allow a single handler.
+The previous type \texttt{list} resulted in incorrect parameters when multiple
+handlers were set; therefore, this only makes an existing restriction more
+explicit.
+
+Additionally the return value \texttt{true} for \texttt{list}
+callbacks is now handled internally and no longer passed on to the
+engine. This simplifies the handling of these callbacks and makes it
+easier to provide consistent interfaces for user-defined \texttt{list}
+callbacks.
+
+
+\subsection{Class \class{proc} supports \option{twoside}}
+
+The document class \class{proc}, which is a small variation on the
+\class{article} class, now supports the \option{twoside} option,
+displaying different data in the footer line on recto and verso pages.
+%
+\githubissue{704}
+
+
+\subsection{Croatian character support}
+
+The default \pkg{inputenc} support has been extended to support the 9 characters
+D\v Z, D\v z, d\v z, LJ, Lj, lj, NJ, Nj, nj, input as single UTF-8 code points
+in the range U+01C4 to U+01CC.
+%
+\githubissue{723}
+
+
+\subsection{Cleanup of the Unicode declaration interface}
+
+When declaring encoding specific commands for the Unicode (TU)
+encoding some declarations (e.g., \cs{DeclareUnicodeComposite}) do not
+have an explicit argument for the encoding name, but instead use
+the command \cs{UnicodeEncodingName} internally. There was one
+exception though: \cs{DeclareUnicodeAccent} required an explicit
+encoding argument. This inconsistency has now been removed and the
+encoding name is always implicit. To avoid a breaking change for a few
+packages on CTAN, \cs{DeclareUnicodeAccent} still accepts three
+arguments if the second argument is \texttt{TU} or
+\cs{UnicodeEncodingName}. Once all packages have been updated this
+code branch will get removed.
+
+At the same time we added \cs{DeclareUnicodeCommand} and
+\cs{DeclareUnicodeSymbol} for consistency. They also use
+\cs{UnicodeEncodingName} internally, instead of requiring an encoding
+argument as their general purpose counterparts do.
+%
+\githubissue{253}
+
+
+\subsection{New hook:\ \hook{include/excluded}}
+
+A few releases ago we introduced a number of file hooks for different
+types of files; see~\cite{35:ltnews32} and in
+particular~\cite{35:ltfilehook-doc}.
+%
+The hooks for \cs{include} files now have an addition: if such a file
+is not included (because \cs{includeonly} is used and its \meta{name}
+is not listed in the argument) then the hooks \hook{include/excluded}
+and \hook{include/\meta{name}/excluded} are executed in that
+order\Dash of course, only if they contain code. This happens after
+\LaTeX{} has loaded the \texttt{.aux} file for this include file,
+i.e., after \LaTeX{} has updated its counters to pretend that the file
+was seen.
+
+
+\subsection{Input support for normalized angle brackets}
+
+Source files containing \textlangle\ or \textrangle\ directly written
+as Unicode codepoints U+2329 and U+232A no longer break when the
+source file gets normalized under Unicode normalization rules.
+%
+\githubissue{gh/714}
+
+
+
+
+\section{Bug fixes}
+
+\subsection{Using \cs{DeclareUnicodeCharacter} with C1 control points}
+An error in the UTF-8 handling for non-Unicode \TeX\ has prevented
+\cs{DeclareUnicodeCharacter} being used with characters in the range
+hex 80 to 9F. This has been corrected in this release.
+%
+\githubissue{730}
+
+
+
+\subsection{Fix \cs{ShowCommand} when used with \pkg{ltcmd}}
+
+When \cs{ShowCommand} support was added for \pkg{ltcmd} in the previous
+release~\cite{35:ltnews34}, a blunder in the code made it so that
+when \cs{ShowCommand} was used on a command defined with \pkg{ltcmd}, it
+only printed the meaning of the command in the terminal, but didn't stop
+for interaction as it does elsewhere (mimicking \cs{show}). The issue
+is now fixed.
+%
+\githubissue{739}
+
+
+
+\subsection{Make \cs{cite}\texttt{\textbraceleft\textbraceright} produce a warning}
+
+When the \cs{cite} command can't resolve a citation label it issues a
+warning \enquote{Citation `\meta{label}' on page \meta{page}
+ undefined}. However, due to some implementation details a completely
+empty argument was always silently accepted. Given that there are probably
+people who write \verb=\cite{}= with the intention to fill in the
+correct label later it is rather unfortunate if that is not generating
+a warning that something in the document is still amiss.
+This has finally been corrected and a warning is now generated also in this case.
+%
+\githubissue{790}
+
+
+
+\subsection{Fix adding \hook{cmd} hooks to simple macros}
+
+A bug in how \LaTeX{} detected the type of a command caused a
+premature forced expansion of such commands, which, depending on their
+definition, could be harmless or could cause severe trouble. This has
+been fixed in the latest release.
+%
+\githubissue{795}
+\sxissue{q/637565}
+
+
+\subsection{Warn if \hook{shipout/lastpage} hook is executed too early}
+
+The hook \hook{shipout/lastpage} is intended to place \cs{special}s
+into the last page shipped out. This is needed for some use cases,
+e.g., tagging. If that hook is nonempty and the user has added additional
+pages since the last run, then \LaTeX{} executes this hook too early,
+but until now without giving any indication that the document needs
+rerunning. This has now been corrected and an appropriate warning is
+given.
+%
+\githubissue{813}
+
+
+\subsection{More consistent use of cramped math styles in \LuaTeX}
+
+Using \LuaTeX's \cs{Udelimiterover} to place a horizontally extensible glyph
+on top of a mathematical expression now causes the expression to be set in cramped
+style, as used in similar situations by traditional \TeX\ math rendering.
+Similarly, cramped style is now used for expressions set under such a delimiter
+using \cs{Uunderdelimiter}, but is no longer used when setting an expression on top
+of such extensible glyphs using \cs{Uoverdelimiter}.
+This new behavior follows \TeX's rule that cramped style is used whenever something
+else appears above the expression.
+Additionally the math style of these constructs can now be detected using \cs{mathstyle}.
+
+The old behavior can be restored by adding
+\begin{verbatim}
+ \mathdefaultsmode=0
+\end{verbatim}
+to a document.
+
+
+\subsection{Fixed bug when setting hook rules for one-time hooks}
+
+If a \cs{DeclareHookRule} command is set for a one-time hook, it has to
+come \emph{before} the hook gets used, because otherwise it never
+applies\Dash after all, the hook is used only once. There was a bug in
+the implementation in that the sorting mechanism was still applied if
+the \cs{DeclareHookRule} declaration appeared while the one-time hook was
+executed, causing the spurious typesetting of the code labels and the
+hook name. This bug is now fixed and an error is raised when a new
+sorting rule is added to an already-used one-time hook.
+
+A possible scenario in which this new error is raised is the following:
+package \pkg{AAA} declares a hook rule for \hook{begindocument} (i.e.,
+\cs{AtBeginDocument}) to sort out the behavior between itself and some
+other package. Package \pkg{BBB} wants to load package \pkg{AAA} but
+only if it hasn't been loaded in the preamble, so delays the loading to
+\hook{begindocument}. In that case the hook rule declared by \pkg{AAA}
+can no longer be applied and you get the error. If that happens the
+solution is to load the package in \hook{begindocument/before}, which
+is executed at the very end of the preamble but before
+\hook{begindocument} is processed.
+%
+\githubissue{818}
+
+
+
+
+\section{Changes to packages in the \pkg{amsmath} category}
+
+
+\subsection{\pkg{amsopn}:\ Do not reset \cs{operator@font}}
+
+The package \pkg{amsopn} used to define \cs{operator@font} but this
+command has been provided by the \LaTeX{} format for at least 14
+years. As a result the definition in \pkg{amsopn} is equivalent to a
+reset to the kernel definition, which is unnecessary and surprising if
+you alter the math setup (e.g., by loading a package) and at a later
+stage add \pkg{amsmath}, which then undoes part of your setup. For
+this reason the definition was taken out and
+\pkg{amsmath}/\pkg{amsopn} now relies on the format definition.
+
+In the unlikely event that you want the resetting to happen, use
+\begin{verbatim}
+ \makeatletter
+ \def\operator@font{\mathgroup\symoperators}
+ \makeatother
+\end{verbatim}
+after loading the package.
+%
+\githubissue{734}
+
+\subsection{\pkg{amsmath}:\ Error in \cs{shoveleft}}
+
+If \cs{shoveleft} started out with the words \enquote{plus} or
+\enquote{minus} it was misunderstood as part of a rubber length and
+led either to an error or was swallowed without trace. By adding a
+\cs{relax} this erroneous scanning into the argument of \cs{shoveleft}
+is now prevented.
+%
+\githubissue{714}
+
+
+\subsection{\pkg{amsmath} and \pkg{amsopn}:\ Robustify user commands}
+
+Most user-level commands have been made robust in the \LaTeX{} kernel
+during the last years, but variant definitions in \pkg{amsmath} turned
+them back into fragile beings. We have now made most commands in
+\pkg{amsmath} and \pkg{amsopn} robust as well to match the kernel
+behavior. This also resolves a bug recently discovered in the
+\pkg{mathtools} package, which was due to \cs{big} not being robust after
+\pkg{amsmath} was loaded.
+%
+\githubissue{123}
+
+
+
+\section{Changes to packages in the \pkg{graphics} category}
+
+\subsection{Color in formulas}
+
+While it is possible to color parts of a formula using \cs{color}
+commands the approach is fairly cumbersome. For example, to color a
+summation sign, but not its limits, you need four \cs{color} commands and
+some seemingly unnecessary sets of braces to get coloring and spacing
+right:
+{\hfuzz=1pt
+\begin{verbatim}
+\[ X = \color{red} \sum
+% without {{ the superscript below is misplaced
+ _{{\color{black} i=1}}
+% without {{ the \sum is black
+ ^{{\color{black} n}}
+ \color{black} % without it the x_i is red
+ x_i \]
+\end{verbatim}
+}\noindent
+Leaving out any of the \cs{color} commands or any of the \verb={{...}}=
+will give you a wrong result instead of the desired
+\[ X = \color{red} \sum
+ _{{\color{black} i=1}} % without {{ the superscript is misplaced
+ ^{{\color{black} n}} % without {{ the \sum is black
+ \color{black} % without it the x_i is red
+ x_i
+\]
+So even if this is possible, it is not a very practical solution and
+furthermore there are a number of cases where it is impossible to
+color a certain part of a formula, for example, an opening symbol such
+as \verb=\left(= but not the corresponding \verb=\right)=.
+
+We have therefore added the command \cs{mathcolor} to the \pkg{color}
+and \pkg{xcolor} package, which has the same syntax as \cs{textcolor},
+but is specially designed for use in math and handles sub and
+superscripts and other aspects correctly and preserves correct
+spacing. Thus, the above example can now be written as
+\begin{verbatim}
+\[ X = \mathcolor{red}{\sum}_{i=1}^n x_i \]
+\end{verbatim}
+This command is \emph{only} allowed in formulas.
+For details and further examples, see \file{mathcolor.pdf}.
+
+
+\subsection{Fix locating files with \cs{graphicspath}}
+%
+
+If a call to \cs{includegraphics} asked for a file (say, \file{image})
+without extension, and if both \file{A/image.pdf} and \file{B/image.tex}
+existed (both \file{A/} and \file{B/} in \cs{graphicspath}, but neither
+in a folder searched by \TeX), then \file{A/image.pdf} would not be
+found, and a \enquote{file not found} error would be incorrectly thrown.
+The issue is now fixed and the graphics file is correctly found.
+%
+\githubissue{776}
+\sxissue{q/630167}
+
+
+
+
+\section{Changes to packages in the \pkg{tools} category}
+
+\subsection{\pkg{multicol}:\ Fix \cs{newcolumn}}
+
+The recently added \cs{newcolumn} didn't work properly if used in
+vertical mode, where it behaved like \cs{columnbreak}, i.e., spreading
+the column material out instead of running the column short.
+%
+\sxissue{q/624940}
+
+
+\subsection{\pkg{bm}:\ Fix for \pkg{amsmath} operators}
+
+An internal command used in the definition of operator commands such
+as \cs{sin} in \pkg{amsmath} has been guarded in \cs{bm} to prevent
+internal syntax errors due to premature expansion.
+%
+\githubissue{744}
+
+
+
+\medskip
+
+\begin{thebibliography}{9}
+
+\fontsize{9.3}{11.3}\selectfont
+
+\bibitem{35:blueprint} Frank Mittelbach and Chris Rowley:
+ \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\
+ \url{https://latex-project.org/publications/indexbyyear/2020/}
+
+%\bibitem{35:source2e}
+% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\
+% \url{https://latex-project.org/help/documentation/}
+
+%\bibitem{35:ltnews31} \LaTeX{} Project Team:
+% \emph{\LaTeXe{} news 31}.\\
+% \url{https://latex-project.org/news/latex2e-news/ltnews31.pdf}
+
+\bibitem{35:ltnews32} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 32}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf}
+
+%\bibitem{35:ltnews33} \LaTeX{} Project Team:
+% \emph{\LaTeXe{} news 33}.\\
+% \url{https://latex-project.org/news/latex2e-news/ltnews33.pdf}
+
+\bibitem{35:ltnews34} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 34}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf}
+
+\bibitem{35:ltfilehook-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team:
+ \emph{The \texttt{\upshape ltfilehook} documentation}.\\
+ Run \texttt{texdoc} \texttt{ltfilehook-doc} to view.
+\end{thebibliography}
+
+
+
+\end{document}
diff --git a/macros/latex/base/ltoutenc.dtx b/macros/latex/base/ltoutenc.dtx
index 61ea381823..4dac4e1548 100644
--- a/macros/latex/base/ltoutenc.dtx
+++ b/macros/latex/base/ltoutenc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -44,7 +44,7 @@
%<*driver>
% \fi
\ProvidesFile{ltoutenc.dtx}
- [2021/10/16 v2.0x LaTeX Kernel (font encodings)]
+ [2022/05/27 v2.0z LaTeX Kernel (font encodings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutenc.dtx}
@@ -477,7 +477,7 @@
% \texttt{TS1} encoding.
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \subsection{Docstrip modules}
%
@@ -2949,14 +2949,14 @@
\endgroup
}
\else
- \newluafunction\@remove@tlig@@@@
+ \newprotectedluacmd\@remove@tlig@@@
% \end{macrocode}
% Now we can define the function. Mostly we just have to insert a protected glyph
% node, which is a glyph node with subtype 256. But we have to keep track of the
% current mode to avoid inserting the glyph into a vlist.
% \begin{macrocode}
\now@and@everyjob{\directlua{
- local rawchar_func = token.create'@remove@tlig@@@@'.index
+ local rawchar_func = token.create'@remove@tlig@@@'.index
local forcehmode = tex.forcehmode
local put_next = token.put_next
local glyph_id = node.id'glyph'
@@ -2972,7 +2972,6 @@
n.char = token.scan_int()
return node.write(n)
end
- token.set_lua('@remove@tlig@@@', rawchar_func, 'global', 'protected')
}}
% \end{macrocode}
% Now \verb+\remove@tlig+ can be implemented almost as in XeTeX.
@@ -3017,8 +3016,33 @@
\char#1\relax}
% \end{macrocode}
%
-% \begin{macrocode}
-\def\DeclareUnicodeAccent#1#2#3{%
+% In its original implementation \cs{DeclareUnicodeAccent} was
+% given 3 arguments (with second the ``Unicode encoding'' a.k.a.,
+% \cs{UnicodeEncodingName}) while in other places, e.g.,
+% \cs{DeclareUnicodeComposite}, we always made encoding implicit. So
+% we now change it here to implicit too so that the interfaces
+% become a bit more consistent. To avoid making that a
+% breaking change (even though it only affects two packages on
+% CTAN) we test for \verb=#2= being \cs{UnicodeEncodingName}. This
+% would not catch if somebody used
+% \verb|\DeclareUnicodeAccent{\=}{TU-sub}{"0304}|
+% but that fortunately hasn't happened. With the implicit argument
+% you would need to change \cs{UnicodeEncodingName} instead, as you
+% have to do anyway for the other interface commands.
+% \changes{v2.0y}{2021/12/12}{\cs{DeclareUnicodeAccent} now makes the
+% encoding argument implicit (gh/253)}
+% \begin{macrocode}
+\def\DeclareUnicodeAccent#1#2{%
+ \edef\reserved@a{#2}%
+ \edef\reserved@b{\UnicodeEncodingName}%
+ \ifx\reserved@a\reserved@b
+ \def\reserved@a{\DeclareUnicodeAccent@{#1}}%
+ \else
+ \def\reserved@a{\DeclareUnicodeAccent@{#1}\UnicodeEncodingName}%
+ \fi
+ \reserved@a{#2}%
+}
+\def\DeclareUnicodeAccent@#1#2#3{%
\DeclareTextCommand{#1}{#2}{\add@unicode@accent{#3}}%
}
% \end{macrocode}
@@ -3059,113 +3083,119 @@
\def\reserved@b{#1#2}}
% \end{macrocode}
%
+% Next two commands are simply syntactic sugar to go with the other
+% \cs{DeclareUnicode...} declarations.
+% \changes{v2.0y}{2021/12/12}{Added \cs{DeclareUnicodeCommand} and
+% \cs{DeclareUnicodeSymbol} (gh/253)}
+% \begin{macrocode}
+\def\DeclareUnicodeSymbol#1{\DeclareTextSymbol{#1}{\UnicodeEncodingName}}
+\def\DeclareUnicodeCommand#1{\DeclareTextCommand{#1}{\UnicodeEncodingName}}
+% \end{macrocode}
+%
% \begin{macrocode}
-\DeclareTextCommand\textquotesingle \UnicodeEncodingName{%
- \remove@tlig{"0027}}
-\DeclareTextCommand\textasciigrave \UnicodeEncodingName{%
- \remove@tlig{"0060}}
-\DeclareTextCommand\textquotedbl \UnicodeEncodingName{%
- \remove@tlig{"0022}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareTextSymbol{\textdollar} \UnicodeEncodingName{"0024}
-\DeclareTextSymbol{\textless} \UnicodeEncodingName{"003C}
-\DeclareTextSymbol{\textgreater} \UnicodeEncodingName{"003E}
-\DeclareTextSymbol{\textbackslash} \UnicodeEncodingName{"005C}
-\DeclareTextSymbol{\textasciicircum} \UnicodeEncodingName{"005E}
-\DeclareTextSymbol{\textunderscore} \UnicodeEncodingName{"005F}
-\DeclareTextSymbol{\textbraceleft} \UnicodeEncodingName{"007B}
-\DeclareTextSymbol{\textbar} \UnicodeEncodingName{"007C}
-\DeclareTextSymbol{\textbraceright} \UnicodeEncodingName{"007D}
-\DeclareTextSymbol{\textasciitilde} \UnicodeEncodingName{"007E}
-\DeclareTextSymbol{\textexclamdown} \UnicodeEncodingName{"00A1}
-\DeclareTextSymbol{\textcent} \UnicodeEncodingName{"00A2}
-\DeclareTextSymbol{\textsterling} \UnicodeEncodingName{"00A3}
-\DeclareTextSymbol{\textcurrency} \UnicodeEncodingName{"00A4}
-\DeclareTextSymbol{\textyen} \UnicodeEncodingName{"00A5}
-\DeclareTextSymbol{\textbrokenbar} \UnicodeEncodingName{"00A6}
-\DeclareTextSymbol{\textsection} \UnicodeEncodingName{"00A7}
-\DeclareTextSymbol{\textasciidieresis} \UnicodeEncodingName{"00A8}
-\DeclareTextSymbol{\textcopyright} \UnicodeEncodingName{"00A9}
-\DeclareTextSymbol{\textordfeminine} \UnicodeEncodingName{"00AA}
+\DeclareUnicodeCommand\textquotesingle {\remove@tlig{"0027}}
+\DeclareUnicodeCommand\textasciigrave {\remove@tlig{"0060}}
+\DeclareUnicodeCommand\textquotedbl {\remove@tlig{"0022}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareUnicodeSymbol{\textdollar} {"0024}
+\DeclareUnicodeSymbol{\textless} {"003C}
+\DeclareUnicodeSymbol{\textgreater} {"003E}
+\DeclareUnicodeSymbol{\textbackslash} {"005C}
+\DeclareUnicodeSymbol{\textasciicircum} {"005E}
+\DeclareUnicodeSymbol{\textunderscore} {"005F}
+\DeclareUnicodeSymbol{\textbraceleft} {"007B}
+\DeclareUnicodeSymbol{\textbar} {"007C}
+\DeclareUnicodeSymbol{\textbraceright} {"007D}
+\DeclareUnicodeSymbol{\textasciitilde} {"007E}
+\DeclareUnicodeSymbol{\textexclamdown} {"00A1}
+\DeclareUnicodeSymbol{\textcent} {"00A2}
+\DeclareUnicodeSymbol{\textsterling} {"00A3}
+\DeclareUnicodeSymbol{\textcurrency} {"00A4}
+\DeclareUnicodeSymbol{\textyen} {"00A5}
+\DeclareUnicodeSymbol{\textbrokenbar} {"00A6}
+\DeclareUnicodeSymbol{\textsection} {"00A7}
+\DeclareUnicodeSymbol{\textasciidieresis} {"00A8}
+\DeclareUnicodeSymbol{\textcopyright} {"00A9}
+\DeclareUnicodeSymbol{\textordfeminine} {"00AA}
% \end{macrocode}
% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}}
% \begin{macrocode}
-\DeclareTextSymbol{\guillemetleft} \UnicodeEncodingName{"00AB}
+\DeclareUnicodeSymbol{\guillemetleft} {"00AB}
% old Adobe name
-\DeclareTextSymbol{\guillemotleft} \UnicodeEncodingName{"00AB}
+\DeclareUnicodeSymbol{\guillemotleft} {"00AB}
% \end{macrocode}
%
% \begin{macrocode}
-\DeclareTextSymbol{\textlnot} \UnicodeEncodingName{"00AC}
-\DeclareTextSymbol{\textregistered} \UnicodeEncodingName{"00AE}
-\DeclareTextSymbol{\textasciimacron} \UnicodeEncodingName{"00AF}
-\DeclareTextSymbol{\textdegree} \UnicodeEncodingName{"00B0}
-\DeclareTextSymbol{\textpm} \UnicodeEncodingName{"00B1}
-\DeclareTextSymbol{\texttwosuperior} \UnicodeEncodingName{"00B2}
-\DeclareTextSymbol{\textthreesuperior} \UnicodeEncodingName{"00B3}
-\DeclareTextSymbol{\textasciiacute} \UnicodeEncodingName{"00B4}
-\DeclareTextSymbol{\textmu} \UnicodeEncodingName{"00B5}
-\DeclareTextSymbol{\textparagraph} \UnicodeEncodingName{"00B6}
-\DeclareTextSymbol{\textperiodcentered} \UnicodeEncodingName{"00B7}
-\DeclareTextSymbol{\textonesuperior} \UnicodeEncodingName{"00B9}
-\DeclareTextSymbol{\textordmasculine} \UnicodeEncodingName{"00BA}
+\DeclareUnicodeSymbol{\textlnot} {"00AC}
+\DeclareUnicodeSymbol{\textregistered} {"00AE}
+\DeclareUnicodeSymbol{\textasciimacron} {"00AF}
+\DeclareUnicodeSymbol{\textdegree} {"00B0}
+\DeclareUnicodeSymbol{\textpm} {"00B1}
+\DeclareUnicodeSymbol{\texttwosuperior} {"00B2}
+\DeclareUnicodeSymbol{\textthreesuperior} {"00B3}
+\DeclareUnicodeSymbol{\textasciiacute} {"00B4}
+\DeclareUnicodeSymbol{\textmu} {"00B5}
+\DeclareUnicodeSymbol{\textparagraph} {"00B6}
+\DeclareUnicodeSymbol{\textperiodcentered} {"00B7}
+\DeclareUnicodeSymbol{\textonesuperior} {"00B9}
+\DeclareUnicodeSymbol{\textordmasculine} {"00BA}
% \end{macrocode}
% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}}
% \begin{macrocode}
-\DeclareTextSymbol{\guillemetright} \UnicodeEncodingName{"00BB}
+\DeclareUnicodeSymbol{\guillemetright} {"00BB}
% old Adobe name
-\DeclareTextSymbol{\guillemotright} \UnicodeEncodingName{"00BB}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareTextSymbol{\textonequarter} \UnicodeEncodingName{"00BC}
-\DeclareTextSymbol{\textonehalf} \UnicodeEncodingName{"00BD}
-\DeclareTextSymbol{\textthreequarters} \UnicodeEncodingName{"00BE}
-\DeclareTextSymbol{\textquestiondown} \UnicodeEncodingName{"00BF}
-\DeclareTextSymbol{\AE} \UnicodeEncodingName{"00C6}
-\DeclareTextSymbol{\DH} \UnicodeEncodingName{"00D0}
-\DeclareTextSymbol{\texttimes} \UnicodeEncodingName{"00D7}
-\DeclareTextSymbol{\O} \UnicodeEncodingName{"00D8}
-\DeclareTextSymbol{\TH} \UnicodeEncodingName{"00DE}
-\DeclareTextSymbol{\ss} \UnicodeEncodingName{"00DF}
-\DeclareTextSymbol{\ae} \UnicodeEncodingName{"00E6}
-\DeclareTextSymbol{\dh} \UnicodeEncodingName{"00F0}
-\DeclareTextSymbol{\textdiv} \UnicodeEncodingName{"00F7}
-\DeclareTextSymbol{\o} \UnicodeEncodingName{"00F8}
-\DeclareTextSymbol{\th} \UnicodeEncodingName{"00FE}
-\DeclareTextSymbol{\DJ} \UnicodeEncodingName{"0110}
-\DeclareTextSymbol{\dj} \UnicodeEncodingName{"0111}
-\DeclareTextSymbol{\i} \UnicodeEncodingName{"0131}
-\DeclareTextSymbol{\IJ} \UnicodeEncodingName{"0132}
-\DeclareTextSymbol{\ij} \UnicodeEncodingName{"0133}
-\DeclareTextSymbol{\L} \UnicodeEncodingName{"0141}
-\DeclareTextSymbol{\l} \UnicodeEncodingName{"0142}
-\DeclareTextSymbol{\NG} \UnicodeEncodingName{"014A}
-\DeclareTextSymbol{\ng} \UnicodeEncodingName{"014B}
-\DeclareTextSymbol{\OE} \UnicodeEncodingName{"0152}
-\DeclareTextSymbol{\oe} \UnicodeEncodingName{"0153}
-\DeclareTextSymbol{\textflorin} \UnicodeEncodingName{"0192}
-\DeclareTextSymbol{\j} \UnicodeEncodingName{"0237}
-\DeclareTextSymbol{\textasciicaron} \UnicodeEncodingName{"02C7}
-\DeclareTextSymbol{\textasciibreve} \UnicodeEncodingName{"02D8}
-\DeclareTextSymbol{\textacutedbl} \UnicodeEncodingName{"02DD}
-\DeclareTextSymbol{\textgravedbl} \UnicodeEncodingName{"02F5}
-\DeclareTextSymbol{\texttildelow} \UnicodeEncodingName{"02F7}
-\DeclareTextSymbol{\textbaht} \UnicodeEncodingName{"0E3F}
-\DeclareTextSymbol{\SS} \UnicodeEncodingName{"1E9E}
-\DeclareTextSymbol{\textcompwordmark} \UnicodeEncodingName{"200C}
+\DeclareUnicodeSymbol{\guillemotright} {"00BB}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareUnicodeSymbol{\textonequarter} {"00BC}
+\DeclareUnicodeSymbol{\textonehalf} {"00BD}
+\DeclareUnicodeSymbol{\textthreequarters} {"00BE}
+\DeclareUnicodeSymbol{\textquestiondown} {"00BF}
+\DeclareUnicodeSymbol{\AE} {"00C6}
+\DeclareUnicodeSymbol{\DH} {"00D0}
+\DeclareUnicodeSymbol{\texttimes} {"00D7}
+\DeclareUnicodeSymbol{\O} {"00D8}
+\DeclareUnicodeSymbol{\TH} {"00DE}
+\DeclareUnicodeSymbol{\ss} {"00DF}
+\DeclareUnicodeSymbol{\ae} {"00E6}
+\DeclareUnicodeSymbol{\dh} {"00F0}
+\DeclareUnicodeSymbol{\textdiv} {"00F7}
+\DeclareUnicodeSymbol{\o} {"00F8}
+\DeclareUnicodeSymbol{\th} {"00FE}
+\DeclareUnicodeSymbol{\DJ} {"0110}
+\DeclareUnicodeSymbol{\dj} {"0111}
+\DeclareUnicodeSymbol{\i} {"0131}
+\DeclareUnicodeSymbol{\IJ} {"0132}
+\DeclareUnicodeSymbol{\ij} {"0133}
+\DeclareUnicodeSymbol{\L} {"0141}
+\DeclareUnicodeSymbol{\l} {"0142}
+\DeclareUnicodeSymbol{\NG} {"014A}
+\DeclareUnicodeSymbol{\ng} {"014B}
+\DeclareUnicodeSymbol{\OE} {"0152}
+\DeclareUnicodeSymbol{\oe} {"0153}
+\DeclareUnicodeSymbol{\textflorin} {"0192}
+\DeclareUnicodeSymbol{\j} {"0237}
+\DeclareUnicodeSymbol{\textasciicaron} {"02C7}
+\DeclareUnicodeSymbol{\textasciibreve} {"02D8}
+\DeclareUnicodeSymbol{\textacutedbl} {"02DD}
+\DeclareUnicodeSymbol{\textgravedbl} {"02F5}
+\DeclareUnicodeSymbol{\texttildelow} {"02F7}
+\DeclareUnicodeSymbol{\textbaht} {"0E3F}
+\DeclareUnicodeSymbol{\SS} {"1E9E}
+\DeclareUnicodeSymbol{\textcompwordmark} {"200C}
% \end{macrocode}
%
% \changes{v2.0u}{2021/02/19}{Add \cs{textnonbreakinghyphen}, \cs{textfiguredash}
% and \cs{texthorizontalbar} (gh/404)}
% \begin{macrocode}
-%\DeclareTextSymbol{\textnonbreakinghyphen} \UnicodeEncodingName{"2011}
-%\DeclareTextSymbol{\textfiguredash} \UnicodeEncodingName{"2012}
-\DeclareTextSymbol{\textendash} \UnicodeEncodingName{"2013}
-\DeclareTextSymbol{\textemdash} \UnicodeEncodingName{"2014}
-%\DeclareTextSymbol{\texthorizontalbar} \UnicodeEncodingName{"2015}
+%\DeclareUnicodeSymbol{\textnonbreakinghyphen} {"2011}
+%\DeclareUnicodeSymbol{\textfiguredash} {"2012}
+\DeclareUnicodeSymbol{\textendash} {"2013}
+\DeclareUnicodeSymbol{\textemdash} {"2014}
+%\DeclareUnicodeSymbol{\texthorizontalbar} {"2015}
% \end{macrocode}
% Unfortunately some fonts do not implement \texttt{"2011}, \texttt{"2012} and/or
% \texttt{"2015} (including the \LaTeX{} default fonts for Unicode
@@ -3175,70 +3205,70 @@
% The \verb=\nobreak\hskip\z@= is there to prevent a break after
% the hyphen but allow later breaks in the remainder of the word.
% \begin{macrocode}
-\DeclareTextCommand{\textnonbreakinghyphen} \UnicodeEncodingName
+\DeclareUnicodeCommand{\textnonbreakinghyphen}
{\iffontchar\font "2011 \char "2011 \else \mbox{-}\nobreak\hskip\z@ \fi}
-\DeclareTextCommand{\textfiguredash} \UnicodeEncodingName
+\DeclareUnicodeCommand{\textfiguredash}
{\iffontchar\font "2012 \char "2012 \else \char "2013 \fi}
-\DeclareTextCommand{\texthorizontalbar} \UnicodeEncodingName
+\DeclareUnicodeCommand{\texthorizontalbar}
{\iffontchar\font "2015 \char "2015 \else \char "2014 \fi}
% \end{macrocode}
%
% \begin{macrocode}
-\DeclareTextSymbol{\textbardbl} \UnicodeEncodingName{"2016}
-\DeclareTextSymbol{\textquoteleft} \UnicodeEncodingName{"2018}
-\DeclareTextSymbol{\textquoteright} \UnicodeEncodingName{"2019}
-\DeclareTextSymbol{\quotesinglbase} \UnicodeEncodingName{"201A}
-\DeclareTextSymbol{\textquotedblleft} \UnicodeEncodingName{"201C}
-\DeclareTextSymbol{\textquotedblright} \UnicodeEncodingName{"201D}
-\DeclareTextSymbol{\quotedblbase} \UnicodeEncodingName{"201E}
-\DeclareTextSymbol{\textdagger} \UnicodeEncodingName{"2020}
-\DeclareTextSymbol{\textdaggerdbl} \UnicodeEncodingName{"2021}
-\DeclareTextSymbol{\textbullet} \UnicodeEncodingName{"2022}
-\DeclareTextSymbol{\textellipsis} \UnicodeEncodingName{"2026}
-\DeclareTextSymbol{\textperthousand} \UnicodeEncodingName{"2030}
-\DeclareTextSymbol{\textpertenthousand} \UnicodeEncodingName{"2031}
-\DeclareTextSymbol{\guilsinglleft} \UnicodeEncodingName{"2039}
-\DeclareTextSymbol{\guilsinglright} \UnicodeEncodingName{"203A}
-\DeclareTextSymbol{\textreferencemark} \UnicodeEncodingName{"203B}
-\DeclareTextSymbol{\textinterrobang} \UnicodeEncodingName{"203D}
-\DeclareTextSymbol{\textfractionsolidus} \UnicodeEncodingName{"2044}
-\DeclareTextSymbol{\textlquill} \UnicodeEncodingName{"2045}
-\DeclareTextSymbol{\textrquill} \UnicodeEncodingName{"2046}
-\DeclareTextSymbol{\textdiscount} \UnicodeEncodingName{"2052}
-\DeclareTextSymbol{\textcolonmonetary} \UnicodeEncodingName{"20A1}
-\DeclareTextSymbol{\textlira} \UnicodeEncodingName{"20A4}
-\DeclareTextSymbol{\textnaira} \UnicodeEncodingName{"20A6}
-\DeclareTextSymbol{\textwon} \UnicodeEncodingName{"20A9}
-\DeclareTextSymbol{\textdong} \UnicodeEncodingName{"20AB}
-\DeclareTextSymbol{\texteuro} \UnicodeEncodingName{"20AC}
-\DeclareTextSymbol{\textpeso} \UnicodeEncodingName{"20B1}
-\DeclareTextSymbol{\textcelsius} \UnicodeEncodingName{"2103}
-\DeclareTextSymbol{\textnumero} \UnicodeEncodingName{"2116}
-\DeclareTextSymbol{\textcircledP} \UnicodeEncodingName{"2117}
-\DeclareTextSymbol{\textrecipe} \UnicodeEncodingName{"211E}
-\DeclareTextSymbol{\textservicemark} \UnicodeEncodingName{"2120}
-\DeclareTextSymbol{\texttrademark} \UnicodeEncodingName{"2122}
-\DeclareTextSymbol{\textohm} \UnicodeEncodingName{"2126}
-\DeclareTextSymbol{\textmho} \UnicodeEncodingName{"2127}
-\DeclareTextSymbol{\textestimated} \UnicodeEncodingName{"212E}
-\DeclareTextSymbol{\textleftarrow} \UnicodeEncodingName{"2190}
-\DeclareTextSymbol{\textuparrow} \UnicodeEncodingName{"2191}
-\DeclareTextSymbol{\textrightarrow} \UnicodeEncodingName{"2192}
-\DeclareTextSymbol{\textdownarrow} \UnicodeEncodingName{"2193}
-\DeclareTextSymbol{\textminus} \UnicodeEncodingName{"2212}
+\DeclareUnicodeSymbol{\textbardbl} {"2016}
+\DeclareUnicodeSymbol{\textquoteleft} {"2018}
+\DeclareUnicodeSymbol{\textquoteright} {"2019}
+\DeclareUnicodeSymbol{\quotesinglbase} {"201A}
+\DeclareUnicodeSymbol{\textquotedblleft} {"201C}
+\DeclareUnicodeSymbol{\textquotedblright} {"201D}
+\DeclareUnicodeSymbol{\quotedblbase} {"201E}
+\DeclareUnicodeSymbol{\textdagger} {"2020}
+\DeclareUnicodeSymbol{\textdaggerdbl} {"2021}
+\DeclareUnicodeSymbol{\textbullet} {"2022}
+\DeclareUnicodeSymbol{\textellipsis} {"2026}
+\DeclareUnicodeSymbol{\textperthousand} {"2030}
+\DeclareUnicodeSymbol{\textpertenthousand} {"2031}
+\DeclareUnicodeSymbol{\guilsinglleft} {"2039}
+\DeclareUnicodeSymbol{\guilsinglright} {"203A}
+\DeclareUnicodeSymbol{\textreferencemark} {"203B}
+\DeclareUnicodeSymbol{\textinterrobang} {"203D}
+\DeclareUnicodeSymbol{\textfractionsolidus} {"2044}
+\DeclareUnicodeSymbol{\textlquill} {"2045}
+\DeclareUnicodeSymbol{\textrquill} {"2046}
+\DeclareUnicodeSymbol{\textdiscount} {"2052}
+\DeclareUnicodeSymbol{\textcolonmonetary} {"20A1}
+\DeclareUnicodeSymbol{\textlira} {"20A4}
+\DeclareUnicodeSymbol{\textnaira} {"20A6}
+\DeclareUnicodeSymbol{\textwon} {"20A9}
+\DeclareUnicodeSymbol{\textdong} {"20AB}
+\DeclareUnicodeSymbol{\texteuro} {"20AC}
+\DeclareUnicodeSymbol{\textpeso} {"20B1}
+\DeclareUnicodeSymbol{\textcelsius} {"2103}
+\DeclareUnicodeSymbol{\textnumero} {"2116}
+\DeclareUnicodeSymbol{\textcircledP} {"2117}
+\DeclareUnicodeSymbol{\textrecipe} {"211E}
+\DeclareUnicodeSymbol{\textservicemark} {"2120}
+\DeclareUnicodeSymbol{\texttrademark} {"2122}
+\DeclareUnicodeSymbol{\textohm} {"2126}
+\DeclareUnicodeSymbol{\textmho} {"2127}
+\DeclareUnicodeSymbol{\textestimated} {"212E}
+\DeclareUnicodeSymbol{\textleftarrow} {"2190}
+\DeclareUnicodeSymbol{\textuparrow} {"2191}
+\DeclareUnicodeSymbol{\textrightarrow} {"2192}
+\DeclareUnicodeSymbol{\textdownarrow} {"2193}
+\DeclareUnicodeSymbol{\textminus} {"2212}
% \end{macrocode}
% \changes{v2.0k}{2018/11/18}{Provide \cs{Hwithstroke} and \cs{hwithstroke}}
% \begin{macrocode}
-\DeclareTextSymbol{\Hwithstroke} \UnicodeEncodingName{"0126}
-\DeclareTextSymbol{\hwithstroke} \UnicodeEncodingName{"0127}
+\DeclareUnicodeSymbol{\Hwithstroke} {"0126}
+\DeclareUnicodeSymbol{\hwithstroke} {"0127}
% \end{macrocode}
%
% Not all fonts have U+2217 but using U+002A requires some adjustment.
% \changes{v2.0t}{2021/02/17}{Adjust values for
% \cs{textasteriskcentered} To match TS1 definition (gh/502)}
% \begin{macrocode}
-\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
+\DeclareUnicodeCommand{\textasteriskcentered}{%
\iffontchar\font"2217 \char"2217 \else
\begingroup
\fontsize
@@ -3251,36 +3281,39 @@
}
% \end{macrocode}
% \begin{macrocode}
-\DeclareTextSymbol{\textsurd} \UnicodeEncodingName{"221A}
-\DeclareTextSymbol{\textlangle} \UnicodeEncodingName{"2329}
-\DeclareTextSymbol{\textrangle} \UnicodeEncodingName{"232A}
-\DeclareTextSymbol{\textblank} \UnicodeEncodingName{"2422}
-\DeclareTextSymbol{\textvisiblespace} \UnicodeEncodingName{"2423}
-\DeclareTextSymbol{\textopenbullet} \UnicodeEncodingName{"25E6}
-\DeclareTextSymbol{\textbigcircle} \UnicodeEncodingName{"25EF}
-\DeclareTextSymbol{\textmusicalnote} \UnicodeEncodingName{"266A}
-\DeclareTextSymbol{\textmarried} \UnicodeEncodingName{"26AD}
-\DeclareTextSymbol{\textdivorced} \UnicodeEncodingName{"26AE}
-\DeclareTextSymbol{\textinterrobangdown} \UnicodeEncodingName{"2E18}
+\DeclareUnicodeSymbol{\textsurd} {"221A}
+\DeclareUnicodeSymbol{\textlangle} {"2329}
+\DeclareUnicodeSymbol{\textrangle} {"232A}
+\DeclareUnicodeSymbol{\textblank} {"2422}
+\DeclareUnicodeSymbol{\textvisiblespace} {"2423}
+\DeclareUnicodeSymbol{\textopenbullet} {"25E6}
+\DeclareUnicodeSymbol{\textbigcircle} {"25EF}
+\DeclareUnicodeSymbol{\textmusicalnote} {"266A}
+\DeclareUnicodeSymbol{\textmarried} {"26AD}
+\DeclareUnicodeSymbol{\textdivorced} {"26AE}
+\DeclareUnicodeSymbol{\textinterrobangdown} {"2E18}
% \end{macrocode}
% Accents must be declared before the composites that use them.
% \begin{macrocode}
-\DeclareUnicodeAccent{\`} \UnicodeEncodingName{"0300}
-\DeclareUnicodeAccent{\'} \UnicodeEncodingName{"0301}
-\DeclareUnicodeAccent{\^} \UnicodeEncodingName{"0302}
-\DeclareUnicodeAccent{\~} \UnicodeEncodingName{"0303}
-\DeclareUnicodeAccent{\=} \UnicodeEncodingName{"0304}
-\DeclareUnicodeAccent{\u} \UnicodeEncodingName{"0306}
-\DeclareUnicodeAccent{\.} \UnicodeEncodingName{"0307}
-\DeclareUnicodeAccent{\"} \UnicodeEncodingName{"0308}
-\DeclareUnicodeAccent{\r} \UnicodeEncodingName{"030A}
-\DeclareUnicodeAccent{\H} \UnicodeEncodingName{"030B}
-\DeclareUnicodeAccent{\v} \UnicodeEncodingName{"030C}
-\DeclareUnicodeAccent{\b} \UnicodeEncodingName{"0332}
-\DeclareUnicodeAccent{\d} \UnicodeEncodingName{"0323}
-\DeclareUnicodeAccent{\c} \UnicodeEncodingName{"0327}
-\DeclareUnicodeAccent{\k} \UnicodeEncodingName{"0328}
-\DeclareTextCommand\textcommabelow \UnicodeEncodingName[1]
+\DeclareUnicodeAccent{\`}{"0300}
+\DeclareUnicodeAccent{\'}{"0301}
+\DeclareUnicodeAccent{\^}{"0302}
+\DeclareUnicodeAccent{\~}{"0303}
+\DeclareUnicodeAccent{\=}{"0304}
+\DeclareUnicodeAccent{\u}{"0306}
+\DeclareUnicodeAccent{\.}{"0307}
+\DeclareUnicodeAccent{\"}{"0308}
+\DeclareUnicodeAccent{\r}{"030A}
+\DeclareUnicodeAccent{\H}{"030B}
+\DeclareUnicodeAccent{\v}{"030C}
+\DeclareUnicodeAccent{\b}{"0332}
+\DeclareUnicodeAccent{\d}{"0323}
+\DeclareUnicodeAccent{\c}{"0327}
+\DeclareUnicodeAccent{\k}{"0328}
+% \end{macrocode}
+% The odd one out:
+% \begin{macrocode}
+\DeclareUnicodeCommand\textcommabelow[1]
{\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
\hbox{\check@mathfonts\fontsize\ssf@size\z@
\math@fontsfalse\selectfont,}\hidewidth}\egroup}
@@ -3731,7 +3764,10 @@
\@elt{\csname opt@fontenc.sty\endcsname}}
% \end{macrocode}
%
+% \changes{v2.0z}{2022/05/27}{Save the version string (gh/825)}
% \begin{macrocode}
+\global\expandafter\let\csname ver@@fontenc.sty\expandafter\endcsname
+ \csname ver@fontenc.sty\endcsname
\global\expandafter\let\csname ver@fontenc.sty\endcsname\relax
\global\expandafter\let\csname opt@fontenc.sty\endcsname\relax
\global\let\@ifl@ter@@\@ifl@ter
@@ -3743,4 +3779,12 @@
%
% \Finale
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
+
+^^A Needed for emacs
+^^A
+^^A Local Variables:
+^^A mode: latex
+^^A coding: utf-8-unix
+^^A End:
diff --git a/macros/latex/base/ltoutenc.ins b/macros/latex/base/ltoutenc.ins
index 1330b5c44e..8ff0f02608 100644
--- a/macros/latex/base/ltoutenc.ins
+++ b/macros/latex/base/ltoutenc.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/ltoutput.dtx b/macros/latex/base/ltoutput.dtx
index 78b0f2335f..c2cb8f66b3 100644
--- a/macros/latex/base/ltoutput.dtx
+++ b/macros/latex/base/ltoutput.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2021/09/03 v1.4h LaTeX Kernel (Output Routine)]
+ [2022/04/03 v1.4i LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -120,7 +120,7 @@
% \changes{v1.2n}{2015/02/21}
% {Removed autoload code}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \def \ie {i.e.~}
% \def \eg {e.g.~}
@@ -1648,8 +1648,18 @@
%<*2ekernel|fltrace>
\def \@opcol {%
\if@twocolumn
+% \end{macrocode}
+% \changes{v1.ih}{2022/04/03}{Interface with new mark mechanism}
+% The funny-looking internal commands are interfacing with the new
+% marks mechanism. We make sure (elsewhere) that those are always
+% defined, even when we roll back, so here we add them
+% unconditionally. This still need turning into a hook or config
+% point eventually:
+% \begin{macrocode}
+ \@expl@@@mark@update@dblcol@structures@@
\@outputdblcol
\else
+ \@expl@@@mark@update@singlecol@structures@@
\@outputpage
%<*trace>
\fl@trace{PAGE: one column (float? see above) page completed}%
diff --git a/macros/latex/base/ltpage.dtx b/macros/latex/base/ltpage.dtx
index 4504033f54..1d514fc7c7 100644
--- a/macros/latex/base/ltpage.dtx
+++ b/macros/latex/base/ltpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltpage.dtx}
- [2020/12/05 v1.0m LaTeX Kernel (page style setup)]
+ [2022/04/03 v1.0n LaTeX Kernel (page style setup)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltpage.dtx}
@@ -112,7 +112,7 @@
% command (|\ps@...|) to |\markboth| for setting the heading or to
% |\@gobbletwo| to do nothing.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
@@ -180,10 +180,11 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2019/10/01}%
-%<latexrelease> {\markboth}{Make commands robust}%
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\markboth}{New mark support}%
% \end{macrocode}
%
+%
% \begin{macro}{\markboth}
% \begin{macro}{\markright}
% \changes{v1.0d}{1994/05/20}{Changed setting for \cs{protect}.}
@@ -202,18 +203,37 @@
% \changes{v1.0j}{2000/05/26}{Reimplementation to fix expansion
% error (pr/3203).}
% \changes{v1.0m}{2020/07/27}{Don't make the command \cs{long} (gh/354)}
+% \changes{v1.0n}{2022/04/04}{Interface with new mark mechanism}
% \begin{macrocode}
+\ExplSyntaxOn
\DeclareRobustCommand*\markboth[2]{%
\begingroup
\let\label\relax \let\index\relax \let\glossary\relax
\unrestored@protected@xdef\@themark {{#1}{#2}}%
\@temptokena \expandafter{\@themark}%
+% \end{macrocode}
+% In addition to generating the legacy mark we output the
+% individual ones as well at the very same point.
+% The legacy mark is kept unchanged in order to work with packages
+% that expect that mark in exactly the way it is right now.
+%
+% We might want to think about how to improve this in one-side
+% documents, see comments below.
+%
+% We have not changed all of the code to L3 prog layer convention,
+% in case packages attempt to do some patching and expect the 2e
+% names being around. Eventually this should and will change.
+% \begin{macrocode}
+ \mark_insert:nn{2e-left}{#1}
+ \mark_insert:nn{2e-right}{#2}
+ \tl_if_empty:nF{#2}{ \mark_insert:nn{2e-right-nonempty}{#2} }
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
% \end{macrocode}
%
% \changes{v1.0m}{2020/07/27}{Don't make the command \cs{long} (gh/354)}
+% \changes{v1.0n}{2022/04/04}{Interface with new mark mechanism}
% \begin{macrocode}
\DeclareRobustCommand*\markright[1]{%
\begingroup
@@ -223,9 +243,23 @@
% \begin{macrocode}
\expandafter\@markright\@themark {#1}%
\@temptokena \expandafter{\@themark}%
+% \end{macrocode}
+% Same game with \cs{markright} more or less \ldots
+% \begin{macrocode}
+ \mark_insert:nn{2e-right}{#1}
+ \tl_if_empty:nF{#1}{ \mark_insert:nn{2e-right-nonempty}{#1} }
+% \end{macrocode}
+% The legacy \LaTeX{} mechanism always sets left and right mark,
+% i.e., if a sub-mark (i.e., right mark) is set the corresponding main
+% mark also is getting a mark with the same value it had previously.
+% However, for the individual mark classes this means we are losing
+% information so for them that is not done.
+% \begin{macrocode}
+% \mark_insert:nn{2e-left}{\exp_after:wN \use_i:nn \@themark }
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
+\ExplSyntaxOff
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -233,6 +267,27 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease> {\markboth}{Make commands robust}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand*\markboth[2]{%
+%<latexrelease> \begingroup
+%<latexrelease> \let\label\relax \let\index\relax \let\glossary\relax
+%<latexrelease> \unrestored@protected@xdef\@themark {{#1}{#2}}%
+%<latexrelease> \@temptokena \expandafter{\@themark}%
+%<latexrelease> \mark{\the\@temptokena}%
+%<latexrelease> \endgroup
+%<latexrelease> \if@nobreak\ifvmode\nobreak\fi\fi}
+%<latexrelease>\DeclareRobustCommand*\markright[1]{%
+%<latexrelease> \begingroup
+%<latexrelease> \let\label\relax \let\index\relax \let\glossary\relax
+%<latexrelease> \expandafter\@markright\@themark {#1}%
+%<latexrelease> \@temptokena \expandafter{\@themark}%
+%<latexrelease> \mark{\the\@temptokena}%
+%<latexrelease> \endgroup
+%<latexrelease> \if@nobreak\ifvmode\nobreak\fi\fi}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\markboth}{Make commands robust}%
%<latexrelease>
diff --git a/macros/latex/base/ltpageno.dtx b/macros/latex/base/ltpageno.dtx
index 03d36a53d9..8142639633 100644
--- a/macros/latex/base/ltpageno.dtx
+++ b/macros/latex/base/ltpageno.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -77,7 +77,7 @@
% numbered i, ii, etc.
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*2ekernel>
diff --git a/macros/latex/base/ltpar.dtx b/macros/latex/base/ltpar.dtx
index 969954be0a..50ff57183c 100644
--- a/macros/latex/base/ltpar.dtx
+++ b/macros/latex/base/ltpar.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -96,7 +96,7 @@
% \end{itemize}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \subsection{Implementation}
%
diff --git a/macros/latex/base/ltpara-code.pdf b/macros/latex/base/ltpara-code.pdf
index 19751686df..52bd980cb1 100644
--- a/macros/latex/base/ltpara-code.pdf
+++ b/macros/latex/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-doc.pdf b/macros/latex/base/ltpara-doc.pdf
index f0947f199e..5e05da5379 100644
--- a/macros/latex/base/ltpara-doc.pdf
+++ b/macros/latex/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-doc.tex b/macros/latex/base/ltpara-doc.tex
index c3892b8180..f3a51bbd2e 100644
--- a/macros/latex/base/ltpara-doc.tex
+++ b/macros/latex/base/ltpara-doc.tex
@@ -2,5 +2,6 @@
\AtBeginDocument{\OnlyDescription
\let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
}
\input{ltpara.dtx}
diff --git a/macros/latex/base/ltpara.dtx b/macros/latex/base/ltpara.dtx
index a2da67198a..9296f2b2cd 100644
--- a/macros/latex/base/ltpara.dtx
+++ b/macros/latex/base/ltpara.dtx
@@ -15,7 +15,7 @@
%
% \begin{macrocode}
\def\ltparaversion{v1.0k}
-\def\ltparadate{2021/11/11}
+\def\ltparadate{2022/05/13}
% \end{macrocode}
%<*driver>
\documentclass{l3doc}
@@ -123,7 +123,7 @@
% \verb=\hbox{a\par b}= is ignored, but \verb=$a\par b$= would complain.
%
% If this primitive ends the paragraph it does some special
-% \enquote{end of horizontal list} processing, then calls \TeX{}’s paragraph
+% \enquote{end of horizontal list} processing, then calls \TeX{}'s paragraph
% builder; this breaks the horizontal list into lines and then these
% lines are added as boxes to the enclosing vertical list and
% \TeX{} returns to vertical mode.
@@ -484,7 +484,7 @@
%
% To avoid issues a paragraph started by them should always be
% ended by \cs{RawParEnd}\footnote{Technical note for those who
-% know their \textit{\TeX book\/}: the \cs{RawParEnd} comand
+% know their \textit{\TeX book\/}: the \cs{RawParEnd} command
% invokes the original \TeX{} engine definition of \cs{par} that
% (soley) triggers the paragraph builder in \TeX{} when found
% inside unrestricted horizontal mode and does nothing in other
@@ -665,7 +665,7 @@
%
%
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
diff --git a/macros/latex/base/ltpictur.dtx b/macros/latex/base/ltpictur.dtx
index ae8b58995d..453ec6149e 100644
--- a/macros/latex/base/ltpictur.dtx
+++ b/macros/latex/base/ltpictur.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -83,7 +83,7 @@
% variant of this command, |\bezier|, is defined, in which the first
% argument is not optional.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v0.1a}{1994/03/07}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/ltplain.dtx b/macros/latex/base/ltplain.dtx
index 5fa7039679..ee1cf0a161 100644
--- a/macros/latex/base/ltplain.dtx
+++ b/macros/latex/base/ltplain.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltplain.dtx}
- [2021/07/16 v2.3g LaTeX Kernel (Plain TeX)]
+ [2022/01/25 v2.3h LaTeX Kernel (Plain TeX)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltplain.dtx}
@@ -102,7 +102,7 @@
% \LaTeX{} uses its own output routine, so most of the plain one was
% removed.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \begin{macrocode}
@@ -1186,18 +1186,143 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\obeylines}
-% \begin{macro}{\obeyspaces}
-% In |\obeylines|, we say |\let^^M=\par| instead of |\def^^M{\par}|
-% since this allows, for example, |\let\par=\cr \obeylines \halign{...|
+% \begin{macro}{\obeylines,\obeyspaces}
+% In |\obeylines|, we say |\let^^M=\obeyedline| instead of |\def^^M{\obeyedline}|
+% since this allows, for example,
+% |\let\obeyedline=\cr \obeylines \halign{...|.
+%
+% This is essentially a plain \TeX{} trick and in its original
+% version where you had to use to use |\let\par=\cr| not really a
+% safe idea in \LaTeX. If anybody used this trick
+% this now breaks (and one needs to use \cs{obeyedline} instead).
+% \changes{v2.3h}{2022/01/25}{Provide redirection to support special
+% use cases (gh/367)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}{\obeylines}%
+%<latexrelease> {Add a redirection to obeylines and obeyspaces}%
+% \end{macrocode}
+% If the active |^^M| escapes, e.g. into a \cs{write} (which is
+% effectively in a different context) we don't want the definition
+% from \cs{obeylines} but rather a simple \cs{par} (in fact even
+% the primitive one, not the \LaTeX{} version \cs{para\_end:} which
+% is only defined later.
+%
+% \begin{macrocode}
+\begingroup
+\catcode`\^^M=\active % these lines must end with %
+ \gdef\obeylines{\catcode`\^^M\active%
+ \let^^M\obeyedline%
+% \end{macrocode}
+%
+% The next line ending the definition is rather curious and it took
+% me awhile to understand why rollback fails. The problem is the
+% following: if \texttt{latexrelease} is used, then blocks of
+% \cs{IncludeInRelease} \dots\ \cs{EndIncludeInRelease} are
+% bypassed at high speed by grabbing each as a delimited
+% argument. However, in that case |^^M| is seen not as code but as
+% line ending characters and in that mode \TeX{} discards
+% everything from that point onwards to the real end of the line so
+% it works like a comment --- pretty strange really (and I think
+% due to the fact the the original pascal compiler could have some
+% garbage showing up after the normal line ending character. Thus
+% we really have to make sure that any closing braces is not one
+% the same line as an |^^M|, because otherwise it would get dropped
+% and we end with unbalanced braces and never see the
+% \cs{EndIncludeInRelease} --- weird. In other places it doesn't
+% matter because we aren't using the incomplete result.
% \begin{macrocode}
-{\catcode`\^^M=\active % these lines must end with %
- \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
- \global\let^^M\par} % this is in case ^^M appears in a \write
-\def\obeyspaces{\catcode`\ \active}
-{\obeyspaces\global\let =\space}
+ }%
+ \global\let^^M\par % this is in case ^^M appears in a \write
+\endgroup
+% \end{macrocode}
+%
+% \begin{macro}{\obeyedline}
+% The \cs{obeyedline} expands by default to
+% \cs{par} with whatever definition \cs{par} has when it is
+% executed. It can, however, be
+% redefined (before calling \cs{obeylines}!) to achieve some
+% special effects. If you want to alter is definition when already
+% in the scope of \cs{obeylines}, it has no effect (because
+% \cs{let} is used above).
+% In that case simply make another call to \cs{obeylines}
+% immediately. As you are in a restricted scope all that happens is
+% that your redefinition is applied.
+%
+% For the default definition we have to use \cs{def} not \cs{let}
+% because the meaning of \cs{par} can change and we want to use the
+% one that is current when \cs{obeylines} act.
+%
+% There is a small subtlety here: in an \cs{edef} the active |^^M| stayed
+% put (because it was equal to to the primitive \cs{par}), now
+% \cs{obeyedline} expands and you get what it contains, i.e., in that
+% case \cs{par}, into the \cs{edef} or \cs{mark} unless we use
+% \cs{protected} on it.
+% \begin{macrocode}
+\protected\gdef\obeyedline{\par}
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{\obeyedspace}
+% The definition of \cs{obeyspaces} is changed in the same way and
+% now executes \cs{obeyedspace} for each active space.
+% \begin{macrocode}
+\global\let\obeyedspace\space
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\begingroup
+\catcode`\ =\active%
+\gdef\obeyspaces{\catcode`\ \active\let =\obeyedspace}%
+% \end{macrocode}
+% An active space elsewhere generates \cs{space} by default
+% (for example in a \cs{write}).
+% \begin{macrocode}
+\global\let =\space%
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}{\obeylines}%
+%<latexrelease> {Add a redirection to obeylines and obeyspaces}%
+%<latexrelease>
+% \end{macrocode}
+% From 2019 onwards the commands are made robust (somewhat later in
+% the kernel sources). So if we roll back they are robust, so when
+% redefining them we have get rid of the robust payload
+% first. Otherwise that is seen by the later rollback below, which
+% then installs a fragile version of the new definition on top of
+% the one we roll back to here, sigh. \cs{kernel@make@fragile} also
+% changes its definition (later own) so this is done directly.
+% \begin{macrocode}
+%<latexrelease>\expandafter\let\csname obeylines \endcsname\@undefined
+%<latexrelease>\expandafter\let\csname obeyspace \endcsname\@undefined
+%<latexrelease>
+%<latexrelease>\begingroup
+%<latexrelease>\catcode`\^^M=\active % these lines must end with %
+%<latexrelease> \gdef\obeylines{\catcode`\^^M\active \let^^M\par %
+% \end{macrocode}
+% Closing brace on a separate line (see comment above).
+% \begin{macrocode}
+%<latexrelease> }%
+% \end{macrocode}
+% Another pitfall: if we do a rollback \cs{par} is no longer the
+% primitive, so the roll back definition needs \cs{let} to what is
+% new the primitive.
+% \begin{macrocode}
+%<latexrelease> \global\let^^M\RawParEnd % this is in case ^^M appears in a \write
+%<latexrelease>\endgroup
+%<latexrelease>\def\obeyspaces{\catcode`\ \active}
+%<latexrelease>
+%<latexrelease>\let\obeyedline\@undefined
+%<latexrelease>\let\obeyedspace\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\loop}
diff --git a/macros/latex/base/ltsect.dtx b/macros/latex/base/ltsect.dtx
index 67974c7387..71ab1ee89d 100644
--- a/macros/latex/base/ltsect.dtx
+++ b/macros/latex/base/ltsect.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -73,7 +73,7 @@
% document level commands are defined in the class files, in terms of
% these commands.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/ltshipout-code.pdf b/macros/latex/base/ltshipout-code.pdf
index 81c4fb666e..f0b7e9d4e0 100644
--- a/macros/latex/base/ltshipout-code.pdf
+++ b/macros/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.pdf b/macros/latex/base/ltshipout-doc.pdf
index 6da6e5b678..5d1c35c96e 100644
--- a/macros/latex/base/ltshipout-doc.pdf
+++ b/macros/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.tex b/macros/latex/base/ltshipout-doc.tex
index 33f87d8862..4cca5e9cbe 100644
--- a/macros/latex/base/ltshipout-doc.tex
+++ b/macros/latex/base/ltshipout-doc.tex
@@ -3,5 +3,6 @@
\AtBeginDocument{\OnlyDescription
% \let\tableofcontents\relax
+ \RenewCommandCopy\MaybeStop\StopEventually
}
\input{ltshipout.dtx}
diff --git a/macros/latex/base/ltshipout.dtx b/macros/latex/base/ltshipout.dtx
index 7f6555d18c..83fab820a9 100644
--- a/macros/latex/base/ltshipout.dtx
+++ b/macros/latex/base/ltshipout.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2022
%% Frank Mittelbach, LaTeX Team
%%
%
@@ -32,8 +32,8 @@
%%% From File: ltshipout.dtx
%
% \begin{macrocode}
-\providecommand\ltshipoutversion{v1.0j}
-\providecommand\ltshipoutdate{2021/06/09}
+\providecommand\ltshipoutversion{v1.0m}
+\providecommand\ltshipoutdate{2022/05/08}
% \end{macrocode}
%
%<*driver>
@@ -327,7 +327,10 @@
% \subsection{Legacy \LaTeX{} commands}
%
% \begin{function}{\AtBeginDvi,\AtEndDvi}
-% \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
+% \begin{syntax}
+% \cs{AtBeginDvi} \Arg{code}
+% \end{syntax}
+ % \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
% \hook{shipout/firstpage} hook. This is not really a good name
% as it is not just supporting \texttt{.dvi} but also \texttt{.pdf}
% output or \texttt{.xdv}.
@@ -335,15 +338,24 @@
% \cs{AtEndDvi} is the counterpart that was not available in the
% kernel but only through the package \pkg{atenddvi}. It fills the
% \hook{shipout/lastpage} hook.
+%
+% Neither interface can set a code label but uses the current default label.
+%
% \end{function}
%
% As these two wrappers have been available for a long time we
-% continue offering them. However, for new code we suggest using
-% the high-level hook management commands directly instead of
-% ``randomly-named'' wrappers. This will lead to code that is
-% easier to understand and to maintain. For this reason we do not
-% provide any other wrapper commands for the above hooks in the
-% kernel.
+% continue offering them (but not enhancing them, e.g., by providing
+% support for code labels).
+%
+% For new code we strongly suggest using the high-level hook
+% management commands directly instead of ``randomly-named''
+% wrappers. This will lead to code that is easier to understand
+% and to maintain and it also allows you to set code labels if
+% needed.
+%
+% For this reason we do not provide any other ``new'' wrapper
+% commands for the above hooks in the kernel, but only keep
+% the existing ones for backward compatibility.
%
%
% \subsection{Special commands for use inside the hooks}
@@ -644,7 +656,7 @@
% \end{function}
%
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
@@ -734,21 +746,21 @@
% \begin{macrocode}
\sys_if_engine_luatex:TF
{
- \newluafunction \@@_finalize_box:
+ \newprotectedluacmd \@@_finalize_box:
\exp_args:Nx \everyjob {
\exp_not:V \everyjob
\exp_not:N \lua_now:n {
luatexbase.create_callback('pre_shipout_filter', 'list')
local~call, getbox, setbox = luatexbase.call_callback, tex.getbox, tex.setbox~
- lua.get_functions_table()[\the \@@_finalize_box:] = function()
- local~result = call('pre_shipout_filter', getbox(\the \l_shipout_box))
- if~not (result == true) then~
+ lua.get_functions_table()[\the \allocationnumber] = function()
+ local~head = getbox(\the \l_shipout_box)
+ local~result = call('pre_shipout_filter', head)
+ if~not (result == head) then~
setbox(\the \l_shipout_box, result~or~nil)
end~
end
}
}
- \protected \luadef \@@_finalize_box: \the \@@_finalize_box:
} {
\cs_set_eq:NN \@@_finalize_box: \scan_stop:
}
@@ -1002,8 +1014,14 @@
\_@@_add_foreground_box:n
{ \UseHook{shipout/lastpage}
\@kernel@after@shipout@lastpage }
+ \bool_gset_true:N \g_@@_lastpage_handled_bool
+% \end{macrocode}
+% We record that we have handled the \hook{shipout/lastpage} hook
+% but only if we really did.
+% \changes{v1.0m}{2022/05/08}{Handle case where shipout/lastpage is
+% run too early (gh/813)}
+% \begin{macrocode}
}
- \bool_gset_true:N \g_@@_lastpage_handled_bool
}
\@@_finalize_box:
% \end{macrocode}
@@ -1711,15 +1729,35 @@
\gdef\string\@abspage@last {\int_use:N \g_shipout_readonly_int}}
\fi
% \end{macrocode}
-% But we may have guessed wrongly earlier and we still have to run the
+% But we may have guessed wrongly earlier and have run it too early
+% or we still have to run the
% \hook{shipout/lastpage} even though there is no page to place
% it into. If that is the case we make a trivial extra page and put
% it there. This temporary page will then vanish again on the next
% run but helps to keep pdf viewers happy.
+% In either case we should put out an appropriate ``rerun'' warning.
+% \changes{v1.0m}{2022/05/08}{Handle case where shipout/lastpage is
+% run too early (gh/813)}
% \begin{macrocode}
- \bool_if:NF \g_@@_lastpage_handled_bool
+ \bool_if:NTF \g_@@_lastpage_handled_bool
+ {
+% \end{macrocode}
+% If the hook was already executed, we have to test if that total
+% shipouts match the shipouts from last run (because that
+% corresponds to the page it was executed). If not we output a warning.
+% \begin{macrocode}
+ \int_compare:nNnF \@abspage@last = \g_shipout_readonly_int
+ {
+ \@latex@warning@no@line{Hook~ 'shipout/lastpage'~ executed~
+ on~ wrong~ page~ (\@abspage@last\space not~
+ \int_use:N\g_shipout_readonly_int).\MessageBreak
+ Rerun~ to~ correct~ this}%
+ }
+ }
{
% \end{macrocode}
+% If the hook was not run, we need to add an extra page and place
+% it there.
% However, making this extra page in case the hook is actually
% empty would be forcing a rerun without any reason, so we check
% that condition and also check if
@@ -1966,15 +2004,17 @@
%
%
% \begin{macro}{\AtEndDvi}
-% This package has only one public command to simulating it is easy
+% This package has only one public command, so simulating it is easy
% and actually sensible to provide as part of the kernel.
+% \changes{v1.0l}{2022/01/06}{Correctly simulate \cs{AtEndDvi} without
+% extending the syntax}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\AtEndDvi}{atenddvi emulation}%
\ExplSyntaxOn
-\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\cs_new_protected:Npn \AtEndDvi #1 {\AddToHook{shipout/lastpage}{#1}}
\ExplSyntaxOff
% \end{macrocode}
% As the package is integrate we prevent loading (no need to roll that back):
@@ -2041,9 +2081,11 @@
%
% \begin{macro}{\AtBeginShipout,\AtBeginShipoutNext}
% Filling hooks
+% \changes{v1.0l}{2022/01/06}{Correctly simulate \cs{AtBeginShipout}
+% and \cs{AtBeginShipoutNext} without extending the syntax}
% \begin{macrocode}
-\protected \def \AtBeginShipout {\AddToHook{shipout/before}}
-\protected \def \AtBeginShipoutNext {\AddToHookNext{shipout/before}}
+\protected\long\def\AtBeginShipout #1{\AddToHook{shipout/before}{#1}}
+\protected\long\def\AtBeginShipoutNext #1{\AddToHookNext{shipout/before}{#1}}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/base/ltspace.dtx b/macros/latex/base/ltspace.dtx
index 17fb0d6518..feb82730ec 100644
--- a/macros/latex/base/ltspace.dtx
+++ b/macros/latex/base/ltspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -114,7 +114,7 @@
% |\restorecr| : restores <CR> to its usual meaning.
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \subsection{Chris' comments}
%
diff --git a/macros/latex/base/lttab.dtx b/macros/latex/base/lttab.dtx
index 48627f40a3..e32153f31c 100644
--- a/macros/latex/base/lttab.dtx
+++ b/macros/latex/base/lttab.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -74,7 +74,7 @@
% \LaTeX\ Companion}. Use the |array| package to obtain the extended
% version.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/lttextcomp.dtx b/macros/latex/base/lttextcomp.dtx
index 1efc36d563..de6b221b6c 100644
--- a/macros/latex/base/lttextcomp.dtx
+++ b/macros/latex/base/lttextcomp.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -25,9 +25,10 @@
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
+%%% From File: lttextcomp.dtx
+%
% \fi
%
-%%% From File: lttextcomp.dtx
%
% \iffalse
%
@@ -36,7 +37,7 @@
%
%
\ProvidesFile{lttextcomp.dtx}
- [2021/04/16 v1.0f LaTeX Kernel (text companion symbols)]
+ [2021/12/09 v1.0f LaTeX Kernel (text companion symbols)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -68,7 +69,7 @@
%
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v1.0e}{2021/03/19}
% {Use \cs{NewModuleRelease}}
@@ -470,16 +471,17 @@
% \end{macrocode}
%
%
-% In the following sections the remaining default definitions are ordered by
-% sub-encoding in which they are become unavailable (i.e., they are
-% not provided in the sub-encoding with that number and all
-% sub-encodings with higher numbers.
+% In the following sections the remaining default definitions are
+% ordered by sub-encoding in which they are become
+% \textbf{unavailable}, i.e., they are not provided in the
+% sub-encoding with that number and all sub-encodings with higher
+% numbers.
%
% Thus the symbols that are available in sub-encoding $x$ are the
-% symbols above (always available) and the symbols list in the
-% sections for sub-encodings $x+1$ and higher.
+% symbols above (always available) and the symbols listed as becoming
+% unavailable in sub-encodings $x+1$ and higher.
%
-% \subsection{Sub-encoding \texttt{1} (drop symbols not working in
+% \subsection{Unavailable in sub-encoding \texttt{1} and higher (drop symbols not working in
% Latin Modern)}
%
% The \cs{textcircled} is available but the glyph is simply too
@@ -493,7 +495,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{2} (majority of new OTF fonts via autoinst)}
+% \subsection{Unavailable in sub-encoding \texttt{2} (majority of new OTF fonts via autoinst) and higher}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\t}
@@ -722,7 +724,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{3}}
+% \subsection{Unavailable in sub-encoding \texttt{3} and higher}
%
% Sub-encoding \texttt{2} is the one where we loose many
% symbols. In the higher-numbered sub-encodings we see only a few
@@ -738,7 +740,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{4}}
+% \subsection{Unavailable in sub-encoding \texttt{4} and higher}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\textcolonmonetary}
@@ -763,7 +765,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{5} (most older PS fonts)}
+% \subsection{Unavailable in sub-encoding \texttt{5} (most older PS fonts) and higher}
%
% Most older PS fonts (supported in \TeX{} since the early nineties
% when virtual fonts became available) are sorted under this
@@ -790,7 +792,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{6}}
+% \subsection{Unavailable in sub-encoding \texttt{6} and higher}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\textflorin}
@@ -801,7 +803,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{7}}
+% \subsection{Unavailable in sub-encoding \texttt{7} and higher}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\textfractionsolidus}
@@ -816,7 +818,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{8}}
+% \subsection{Unavailable in sub-encoding \texttt{8} and higher}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\textblank}
@@ -837,7 +839,7 @@
%
%
%
-% \subsection{Sub-encoding \texttt{9} (most missing)}
+% \subsection{Unavailable in Sub-encoding \texttt{9} (most missing)}
%
% \begin{macrocode}
\DeclareTextCommandDefault{\textcelsius}
diff --git a/macros/latex/base/ltthm.dtx b/macros/latex/base/ltthm.dtx
index 00fe97c77a..d0d04d9669 100644
--- a/macros/latex/base/ltthm.dtx
+++ b/macros/latex/base/ltthm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -80,7 +80,7 @@
% The way \meta{name} environments are numbered can be changed by
% redefining |\the|\meta{name}.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \changes{v1.0a}{1994/03/28}{Initial version, split from latex.dtx}
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index 82f2034fda..da9d3c590e 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltvers.dtx}
- [2021/08/10 v1.1h LaTeX Kernel (Version Info)]
+ [2022/02/28 v1.1i LaTeX Kernel (Version Info)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltvers.dtx}
@@ -61,7 +61,7 @@
% \LaTeX, and set |\everyjob| so that it is printed at the start of
% every \LaTeX\ run.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v1.0g}{1996/11/28}
% {Check for old format modified /2319}
@@ -112,10 +112,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2021-11-15}
+ {2022-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{1}
+\def\patch@level{0}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
@@ -125,7 +125,7 @@
% intended to help us internally when we locally install a
% format out of some development branch.
% \begin{macrocode}
-\edef\development@branch@name{}
+\edef\development@branch@name{develop \the\year-\the\month-\the\day}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -365,6 +365,8 @@
% \changes{v1.1f}{2021/03/18}{Added \cs{NewModuleRelease}.}
% \changes{v1.1g}{2021/04/16}
% {\cs{NewModuleRelease} with the same arguments as \cs{IncludeInRelease}.}
+% \changes{v1.1i}{2022/02/28}
+% {Detect a missing \cs{IncludeInRelease}\texttt{\{0000/00/00\}}.}
% \begin{macrocode}
\let\if@skipping@module\iffalse
\def\@skipping@moduletrue{\let\if@skipping@module\iftrue}
@@ -379,7 +381,7 @@
\GenericInfo{}{BEGIN module: \new@modulename\space (\new@moduledate)}%
\GenericInfo{}{ \@spaces\@spaces\@spaces\space#3\@gobble}%
\ifnum\sourceLaTeXdate<%
- \expandafter\@parse@version\new@moduledate//00\@nil\relax
+ \expandafter\@parse@version\new@moduledate//00\@nil\relax
\ifnum\expandafter\@parse@version\fmtversion//00\@nil<%
\expandafter\@parse@version\new@moduledate//00\@nil\relax
\GenericInfo{}{Skipping module \new@modulename}%
@@ -394,7 +396,19 @@
\@skipping@moduletrue
\expandafter\new@module@skip
\fi}
-\long\def\new@module@skip#1\IncludeInRelease{\IncludeInRelease}
+\long\def\new@module@skip#1\IncludeInRelease{%
+ \long\def\reserved@a##1\EndModuleRelease{}%
+ \if\relax\detokenize\expandafter{\reserved@a#1{}{}\EndModuleRelease}\relax
+ \else
+ \@latex@error{Missing mandatory \string\IncludeInRelease{0000/00/00}}\@ehc
+ \expandafter\@secondoftwo
+ \fi
+ \@gobble
+ {\@expandtwoargs\IncludeInRelease
+ {0000/00/00}{\new@modulename}%
+ {ERROR! Emergency recovery}%
+ #1}%
+ \IncludeInRelease}
\def\EndModuleRelease{%
\ifx\new@modulename\@empty
\@latex@error{Extra \string\EndModuleRelease.}\@eha
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index 4997791aa3..e06a073b96 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltx3info.tex b/macros/latex/base/ltx3info.tex
index 2a376f6431..13231da818 100644
--- a/macros/latex/base/ltx3info.tex
+++ b/macros/latex/base/ltx3info.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltxcheck.tex b/macros/latex/base/ltxcheck.tex
index 9e013bc2af..7f4b925b79 100644
--- a/macros/latex/base/ltxcheck.tex
+++ b/macros/latex/base/ltxcheck.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/ltxdoc.dtx b/macros/latex/base/ltxdoc.dtx
index 7a21f7d871..4d854728a0 100644
--- a/macros/latex/base/ltxdoc.dtx
+++ b/macros/latex/base/ltxdoc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -30,7 +30,7 @@
%
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{ltxdoc}
-%<class> [2020/12/05 v2.1b Standard LaTeX documentation class]
+%<class> [2022/06/03 v2.1f Standard LaTeX documentation class]
%
%<*driver>
\documentclass{ltxdoc}
@@ -51,6 +51,8 @@
%
% \fi
%
+% \providecommand\pkg[1]{\texttt{#1}}
+%
%
% \changes{v2.0i}{1994/04/29}{Update the documentation.}
% \changes{v2.0s}{1998/08/17}{(RmS) Documentation fixes.}
@@ -102,7 +104,7 @@
% \PassOptionsToClass{a4paper}{article}
%\end{verbatim}
%
-% All the source files are in two parts, separated by |\StopEventually|.
+% All the source files are in two parts, separated by |\MaybeStop|.
% The first part (should) contain `user' documentation. The second part
% is a full documented listing of the source code. The |doc| package
% provides the command |\OnlyDescription| which suppresses the code
@@ -115,10 +117,13 @@
% \AtBeginDocument{\OnlyDescription}
%\end{verbatim}
%
+% If your document relies on using the old \pkg{doc} version, you can
+% request that the class loads \pkg{doc} version~2 by passing the
+% option \texttt{doc2}.
%
% If the full source listing |sources2e.tex| is processed, then an index
-% and change history are produced by default, however indices are not
-% normally produced for individual files.
+% and change history are produced by default, however indexes are normally
+% not produced for individual files.
%
% As an example, consider |ltclass.dtx|, which contains the sources for
% the new class and package interface commands. With no |cfg|
@@ -156,47 +161,73 @@
% \includeonly{ltvers,ltboxes}
%\end{verbatim}
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Options}
%
% \begin{macrocode}
%<*class>
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareOption{a5paper}{\@latexerr{Option not supported}%
{}}
% \end{macrocode}
+% Prevent loading of a config file.
+% \begin{macrocode}
+\newif\ifltxdoc@load@cfg@ \ltxdoc@load@cfg@true
+\DeclareOption{nocfg}{\ltxdoc@load@cfg@false}
+% \end{macrocode}
%
+% Support rolling back \pkg{doc} to version 2:
+% \changes{v2.1e}{2022/05/27}{Support rolling back doc to version 2}
+% \begin{macrocode}
+\let\ltxdoc@doc@version\@empty % use current version by default
+\DeclareOption{doc2}{\def\ltxdoc@doc@version{=v2}}
+% \end{macrocode}
+%
% \begin{macrocode}
\DeclareOption*{%
\PassOptionsToClass {\CurrentOption}{article}}
% \end{macrocode}
%
-% \section{Configuration}
+% \section{Option Processing}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+% \section{Local configuration}
% Input a local configuration file, if it exists.
% \begin{macrocode}
+\ifltxdoc@load@cfg@
\InputIfFileExists{ltxdoc.cfg}
{\typeout{*************************************^^J%
* Local config file ltxdoc.cfg used^^J%
*************************************}}
{}
+\else
+ \typeout{*************************************^^J%
+ * Local config file ignored^^J%
+ *************************************}
+\fi
% \end{macrocode}
%
%
-% \section{Option Processing}
-%
-% \begin{macrocode}
-\ProcessOptions
-% \end{macrocode}
-%
% \section{Loading article and doc}
%
% \begin{macrocode}
\LoadClass{article}
% \end{macrocode}
%
+% By default, loadthe current \pkg{doc} version
+% (\cs{ltxdoc@doc@version} is empty). If option
+% \texttt{doc2} is given version 2 is loaded
+% (\cs{ltxdoc@doc@version} contains \texttt{=v2}).
+% \changes{v2.1e}{2022/05/27}{Support rolling back doc to version 2}
% \begin{macrocode}
-\RequirePackage{doc}
+\RequirePackage{doc}[\ltxdoc@doc@version]
% \end{macrocode}
%
% Make \verb+|+ be a `short verb' character, but not in the document
@@ -256,7 +287,7 @@
% arguments. It can \emph{not} be use to record commands that are defined as
% ``|\outer|'' nor is it possible to use it on conditionals such as
% |\iftrue| or defined by |\newif|.
-% |\cs{foo}| also prints |\foo|, for those who prefer that
+% |\cs{foo}| already available with the \texttt{doc} package also prints |\foo|, for those who prefer that
% syntax. (This second form can be used to record all types of command so the
% above restrictions do not apply.
% \begin{macro}{\cmd}
@@ -266,7 +297,7 @@
% \begin{macrocode}
\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
\def\cmd@to@cs#1#2{\char\number`#2\relax}
-\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+%\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} % already part of doc.sty
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -600,7 +631,76 @@ Bug reports can be opened (category \texttt{#1}) at\\%
%
% \begin{macrocode}
\def\task#1#2{}
+% \end{macrocode}
+% \changes{v2.1f}{2022/06/03}{define \cs{pkg} and other commands}
+% \changes{v2.1f}{2022/06/03}{allow \_ in macro names}
+% Some feaures from l3doc.cls
+% \begin{macrocode}
+\providecommand\LuaTeX{Lua\TeX}
+\providecommand\cls{\textsf}
+\providecommand\pkg{\textsf}
+\providecommand\enquote[1]{``#1''}
+\DeclareRobustCommand\cs[1]{\texttt{\bslash\detokenize{#1}}}%
+\AtBeginDocument{%
+ \renewcommand\PrintMacroName[1]{\MacroFont\detokenize{#1}}%
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
%</class>
% \end{macrocode}
+%
+%
+%
+% \section{Configuration file}
+%
+%
+% \begin{macrocode}
+%<*cfg>
+%
+% This is the ltxdoc configuration file we use to format the LaTeX
+% kernel sources.
+%
+%
+% Copyright 2006, 2007, 2011 Heiko Oberdiek
+% Copyright 2014-2021 The LaTeX Project
+%
+
+\ProvidesFile{ltxdoc.cfg}%
+ [2021/12/07 v2.0c ltxdoc.cls configuration (LaTeX Project)]
+\PassOptionsToClass{a4paper}{article}
+
+% hyperref and hypdoc are now loaded late (or by the user) so we have to wait
+% with any adjustments until that has happened
+
+\AddToHook{package/hyperref/after}{%
+%% \RequirePackage{hypdoc}% % this is now triggered by doc
+ \RequirePackage{pdftexcmds}\relax
+ \ifnum\pdf@strcmp{\jobname}{inputenc}=0 %
+ \hypersetup{pdfencoding=auto}%
+ \pdfstringdefDisableCommands{%
+ \def\meta#1{% inputenc.dtx
+ \9060\010#1\9060\011%
+ }%
+ }%
+ \else
+ \fi
+ \pdfstringdefDisableCommands{%
+ \let\env\relax % longtable.dtx
+ \let\mytt\relax % tabularx.dtx
+ }%
+}
+
+% This should work well for documentation of packages outside the
+% LaTeX kernel, but if not, you can prevent the loading with the
+% option "nocfg", i.e.,
+%
+% \documentclass[nocfg]{ltxdoc]
+%
+% or by providing your own config file
+
+\endinput
+%</cfg>
+% \end{macrocode}
% \Finale
%
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index 572d8a2001..9eae697fac 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/ltxref.dtx b/macros/latex/base/ltxref.dtx
index dd482299b2..596eb2fd74 100644
--- a/macros/latex/base/ltxref.dtx
+++ b/macros/latex/base/ltxref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltxref.dtx}
- [2020/12/05 v1.1o LaTeX Kernel (Cross Referencing)]
+ [2022/04/12 v1.1p LaTeX Kernel (Cross Referencing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltxref.dtx}
@@ -63,17 +63,19 @@
% {Extract file ltxref from ltcntlen.}
% \changes{v1.1b}{1994/05/21}{Use new warning commands}
% \changes{v1.1c}{1994/05/25}{Modify documentation}
+% \changes{v1.1p}{2022/04/12}{Add starred variants for the ref commands}
%
% \section{Cross Referencing}
% The user writes |\label|\marg{foo} to define the following
% cross-references:
%
-% |\ref|\marg{foo}: value of most recently incremented referenceable
+% |\ref|*\marg{foo}: value of most recently incremented referenceable
% counter. in the current environment. (Chapter, section,
-% theorem and enumeration counters are
-% referenceable, footnote counters are not.)
+% theorem, footnote and enumeration counters and other counters
+% stepped with \cs{refstepcounter} are
+% referenceable.)
%
-% |\pageref|\marg{foo}: page number at which |\label{foo}| command
+% |\pageref|*\marg{foo}: page number at which |\label{foo}| command
% appeared. where foo can be any string of characters not
% containing `|\|', `|{|' or `|}|'.
%
@@ -87,8 +89,12 @@
% leaving a space on both sides of it is equivalent to leaving
% a space on either side.
%
+% Note: the starred versions |\ref*| and |\pageref*| are provided
+% to align with the use of \pkg{hyperref}. Without \pkg{hyperref} (or some
+% other package using the starred form) the star is simply ignored.
%
-% \StopEventually{}
+%
+% \MaybeStop{}
%
% \subsection{Cross Referencing}
%
@@ -206,8 +212,10 @@
% \end{macrocode}
% \begin{macro}{\ref}
% \changes{LaTeX2e}{1993/12/11}{Macro reimplemented}
+% \changes{LaTeX2e}{2022/04/12}{Macro reimplemented with a starred version}
% \begin{macro}{\pageref}
% \changes{LaTeX2e}{1993/12/11}{Macro reimplemented}
+% \changes{LaTeX2e}{2022/04/12}{Macro reimplemented with a starred version}
% \begin{macro}{\@setref}
% \changes{LaTeX2e}{1993/12/11}{Macro added}
% \changes{v1.1h}{1995/10/24}{Switch for refundefined renamed}
@@ -229,9 +237,43 @@
\else
\expandafter#2#1\null
\fi}
-\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
-\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
- \@secondoftwo{#1}}
+% \end{macrocode}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\ref}{Add starred reference commands}%
+% \end{macrocode}
+% \begin{macrocode}
+\def\@kernel@sref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
+\def\@kernel@spageref#1{\expandafter\@setref\csname r@#1\endcsname
+ \@secondoftwo{#1}}
+\let\@kernel@ref\@kernel@sref
+\let\@kernel@pageref\@kernel@spageref
+\NewDocumentCommand\ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sref}{\@kernel@ref}}
+\NewDocumentCommand\pageref{s}
+ {\IfBooleanTF{#1}{\@kernel@spageref}{\@kernel@pageref}}
+% \end{macrocode}
+% As the commands are now protected we also need expandable versions for use
+% in \cs{ifthenelse}:
+% \begin{macrocode}
+\def\@kernel@pageref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{2}}{0}}
+\def\@kernel@ref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{1}}{0}}
+% \end{macrocode}
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\ref}{Add starred reference commands}%
+%<latexrelease>\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
+%<latexrelease>\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
+%<latexrelease> \@secondoftwo{#1}}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -311,8 +353,8 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {\refstepcounter}{Add \@currentcounter}%
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\Ref}{Add starred version}%
% \end{macrocode}
%
% \begin{macro}{\refstepcounter}
@@ -373,9 +415,14 @@
% normal \texttt{\textbackslash ref} which might spoil kerning.
% Perhaps one day this needs redoing.}
% \changes{v1.1l}{2019/08/22}{Commanded moved from \texttt{varioref.sty}}
+% \changes{v1.1p}{2022/04/12}{Macro reimplemented with a starred version}%
% \begin{macrocode}
-\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
- \expandafter\MakeUppercase\@tempa}
+\def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\def\@kernel@sRef#1{\protected@edef\@tempa{\@kernel@sref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\NewDocumentCommand\Ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}}
% \end{macrocode}
% \end{macro}
%
@@ -385,6 +432,18 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\Ref}{Add starred version}%
+%<latexrelease>\def\@currentcounter{}
+%<latexrelease>\def\refstepcounter#1{\stepcounter{#1}%
+%<latexrelease> \edef\@currentcounter{#1}%
+%<latexrelease> \protected@edef\@currentlabel
+%<latexrelease> {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+%<latexrelease>}
+%<latexrelease>\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
+%<latexrelease>\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
+%<latexrelease> \expandafter\MakeUppercase\@tempa}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}%
%<latexrelease>\let\@currentcounter\@undefined
diff --git a/macros/latex/base/makeindx.dtx b/macros/latex/base/makeindx.dtx
index 9dc03a8431..fb6c474659 100644
--- a/macros/latex/base/makeindx.dtx
+++ b/macros/latex/base/makeindx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -83,7 +83,7 @@
% \texttt{book} document classes, but works with other classes as
% well. It makes |\flushbottom| the default.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The {\sc docstrip} modules}
%
diff --git a/macros/latex/base/makeindx.ins b/macros/latex/base/makeindx.ins
index 427d4c7967..0fe55ed039 100644
--- a/macros/latex/base/makeindx.ins
+++ b/macros/latex/base/makeindx.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 265fb0877d..6ac94e0948 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/manifest.txt b/macros/latex/base/manifest.txt
index f6afcccce7..daebefee06 100644
--- a/macros/latex/base/manifest.txt
+++ b/macros/latex/base/manifest.txt
@@ -1,5 +1,5 @@
%
-% The following files form the LaTeX2e distribution of 2020-10-01
+% The following files form the LaTeX2e distribution
%
%
% CONTENTS OF THE LaTeX DISTRIBUTION
@@ -11,10 +11,6 @@
% README.md -- The distribution guide. START BY READING THIS FILE
% manifest.txt -- This file.
%
-% tex2.txt -- Extras for installing LaTeX on TeX2.
-%
-% texpert.txt -- Documentation for TeX experts.
-%
% legal.txt -- Copyright notice; warranty; copying conditions.
% lppl.txt -- The LaTeX Project Public License (current version).
% lppl-1-0.txt -- The LaTeX Project Public License (version 1.0).
@@ -72,6 +68,9 @@
% ltnews30.tex -- What was new in the release dated 2019/10.
% ltnews31.tex -- What was new in the release dated 2020/02.
% ltnews32.tex -- What was new in the release dated 2020/10.
+% ltnews33.tex -- What was new in the release dated 2021/06.
+% ltnews34.tex -- What was new in the release dated 2021/11.
+% ltnews35.tex -- What was new in the release dated 2022/06.
%
% ltx3info.tex -- Information about the LaTeX3 project.
@@ -139,6 +138,9 @@
% lthooks.dtx -- Hook management
% ltfilehook.dtx -- Hook management for file loading
% ltshipout.dtx -- Hook management for \shipout
+% ltcmdhooks.dtx -- Hook management (generic) for commands
+% ltpara.dtx -- Hook management for paragraphs
+% ltmarks.dtx -- Mark management
%
% Standard Classes:
% -----------------
@@ -186,7 +188,7 @@
% doc.dtx -- Package for self documenting code.
% docstrip.dtx -- Module for removing comments.
% ltxdoc.dtx -- Class file for printing documentation.
-% doc-v3beta.sty -- New version of doc, current for internal use only.
+% ltxdoc.cfg -- config file to format the LaTeX sources.
%
%
% Installation scripts for the various parts:
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index 915dbefc54..d486116f31 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.tex b/macros/latex/base/modguide.tex
index 15aad3358f..b0651da0a5 100644
--- a/macros/latex/base/modguide.tex
+++ b/macros/latex/base/modguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/newdc.ins b/macros/latex/base/newdc.ins
index e2ce183f05..eeec6479eb 100644
--- a/macros/latex/base/newdc.ins
+++ b/macros/latex/base/newdc.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/newlfont.dtx b/macros/latex/base/newlfont.dtx
index 3b6e001075..86c0d47ab6 100644
--- a/macros/latex/base/newlfont.dtx
+++ b/macros/latex/base/newlfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -84,7 +84,7 @@
% NFSS1, i.e., to change one font attribute without resetting the
% other attributes.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{The Code}
diff --git a/macros/latex/base/nfssfont.dtx b/macros/latex/base/nfssfont.dtx
index 554c7ae8f0..51d7834aa3 100644
--- a/macros/latex/base/nfssfont.dtx
+++ b/macros/latex/base/nfssfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -82,7 +82,7 @@
% the moment only a crude adaption of the test program for the
% Computer Modern fonts by Donald Knuth.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{A driver for this document}
%
diff --git a/macros/latex/base/nfssfont.ins b/macros/latex/base/nfssfont.ins
index 7d1b9cc41a..a181c61972 100644
--- a/macros/latex/base/nfssfont.ins
+++ b/macros/latex/base/nfssfont.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index 386f26aa32..75dc8427b6 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/olddc.ins b/macros/latex/base/olddc.ins
index d878507d8e..707fb207e6 100644
--- a/macros/latex/base/olddc.ins
+++ b/macros/latex/base/olddc.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/oldlfont.dtx b/macros/latex/base/oldlfont.dtx
index d04ddb6323..b7c9abc3eb 100644
--- a/macros/latex/base/oldlfont.dtx
+++ b/macros/latex/base/oldlfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -95,7 +95,7 @@
% \end{tabular}
% \end{center}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \changes{v2.2k}{1995/11/29}{Remove duplicate driver code.}
%
diff --git a/macros/latex/base/preload.dtx b/macros/latex/base/preload.dtx
index bf2bfebbfa..3b75df38fd 100644
--- a/macros/latex/base/preload.dtx
+++ b/macros/latex/base/preload.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -131,7 +131,7 @@
% \end{quote}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Module switches for the \dst{} program}
%
diff --git a/macros/latex/base/proc.dtx b/macros/latex/base/proc.dtx
index 7a1329fb82..135c67bc0b 100644
--- a/macros/latex/base/proc.dtx
+++ b/macros/latex/base/proc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -73,7 +73,7 @@
%</driver>
%<+class>\ProvidesClass{proc}
%<+style>\ProvidesFile{proc.sty}
- [2020/11/23 v1.3l
+ [2021/12/09 v1.3m
%<+class> Standard LaTeX document class]
%<+style> LaTeX 2.09 compatibility style option `proc']
% \end{macrocode}
@@ -131,7 +131,7 @@
% should appear after any |\footnote| commands that produce
% footnotes for the first column.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The {\sc docstrip} modules}
%
@@ -338,9 +338,17 @@
% \begin{macrocode}
\let\@oddhead\@empty
\let\@evenhead\@empty
-\def\@oddfoot{\normalfont\rightmark \hfil
- \pagename{} \thepage}
-\def\@evenfoot{\@oddfoot}
+\def\@oddfoot{\rightmark \hfil \pagename{} \thepage}
+% \end{macrocode}
+% If the \texttt{twoside} option is passed to the class we provide
+% a different footer that shows the \cs{leftmark} if that is set.
+% \changes{v1.3m}{2021/12/09}{Support twoside (gh/704)}
+% \begin{macrocode}
+\if@twoside
+ \def\@evenfoot{\pagename{} \thepage \hfil \leftmark}
+\else
+ \def\@evenfoot{\@oddfoot}
+\fi
% \end{macrocode}
%
%
diff --git a/macros/latex/base/proc.ins b/macros/latex/base/proc.ins
index cfed5bd6a3..16f60195e5 100644
--- a/macros/latex/base/proc.ins
+++ b/macros/latex/base/proc.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index d7454a3941..a332696bed 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.dtx b/macros/latex/base/slides.dtx
index e63c1901d6..5ea9e58d9c 100644
--- a/macros/latex/base/slides.dtx
+++ b/macros/latex/base/slides.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{slides.drv}
%</driver>
- [2021/10/04 v2.4b
+ [2022/05/18 v2.4b
%<+class> Standard LaTeX document class]
%<+cmd> SLiTeX definitions]
% \end{macrocode}
@@ -205,7 +205,7 @@
% features without adding additional |\DeclareFontShape| commands to
% your |.fd| files or the preamble of your document.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{The Implementation}
@@ -2348,8 +2348,9 @@ COLOR LAYER\\[.75in]%
% any output when the |@visible| switch is false.
%
% \changes{v2.2j}{1994/03/11}{Corrected \cs{@oval}, like previous
+% change to the \LaTeX{} format.}
% \changes{v2.4a}{2016/03/29}{Initialize in \cs{@oval}tests added for
-% latex/4452} change to the \LaTeX{} format.}
+% latex/4452}
% \begin{macrocode}
\def\line(#1,#2)#3{\if@visible\@xarg #1\relax \@yarg #2\relax
\@linelen #3\unitlength
diff --git a/macros/latex/base/slides.ins b/macros/latex/base/slides.ins
index 43ec2bebdf..8c9862c2d5 100644
--- a/macros/latex/base/slides.ins
+++ b/macros/latex/base/slides.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -96,7 +96,7 @@ extension .ins) which are part of the distribution.
This is a generated file.
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -138,7 +138,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index 5af868f79e..8493448c95 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index 64128ee15a..094ac62cf1 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index bdf4a4b04b..7bf5bb6271 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.tex b/macros/latex/base/source2e.tex
index abe8c1aac2..797304e8d6 100644
--- a/macros/latex/base/source2e.tex
+++ b/macros/latex/base/source2e.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -264,6 +264,8 @@ page_precedence "rnaA"
\DocInclude{ltpara} % Paragraph hooks (L3 module)
+ \DocInclude{ltmeta} % Document Metadara interface (L3 module)
+
\DocInclude{ltspace} % Spacing, line and page breaking.
\DocInclude{ltlogos} % Logos.
@@ -322,10 +324,14 @@ page_precedence "rnaA"
\DocInclude{ltbibl} % Bibliography
+ \DocInclude{ltmarks} % Output routine marks management (L3 module)
+
\DocInclude{ltpage} % \pagestyle \raggedbottom \sloppy
\DocInclude{ltclass} % Package & Class interface
+ \DocInclude{ltkeys} % Key-based option management (L3 module)
+
\DocInclude{ltfilehook} % Hook management for files (L3 module)
\DocInclude{ltshipout}% \shipout redefinition (L3 module)
diff --git a/macros/latex/base/source2edoc.cls b/macros/latex/base/source2edoc.cls
index bef81d995d..f0f1479cac 100644
--- a/macros/latex/base/source2edoc.cls
+++ b/macros/latex/base/source2edoc.cls
@@ -2,9 +2,11 @@
% This class is buggy and needs fixing
\ProvidesClass{source2edoc}
- [2021/01/14 v0.2b Quick hack to typeset source2.tex
+ [2022/04/03 v0.2c Quick hack to typeset source2.tex
(not usable for anything else and buggy -- will vanish again)!]
+
+
\LoadClass{l3doc}
\RemoveFromHook{begindocument}[l3doc] % drop the standard setting making " a shortverb
@@ -18,7 +20,7 @@
\ExplSyntaxOn
% in 2e we have a lot of functions that have no ``user-level'' documentation so we disable
-% a bogus backref in that case. Over time the sources should be clean up to have such documentation.
+% a bogus backref in that case. Over time the sources should be cleaned up to have such documentation.
\cs_set_protected:Npn \__codedoc_print_documented:
{
@@ -169,7 +171,10 @@
t\or u\or v\or w\or x\or y\or z\or A\or B\or C\or
D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or
N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or
- X\or Y\or Z\else\@ctrerr\fi}
+ X\or Y\or Z\or
+ aa\or bb\or cc\or % we are getting definitely too many modules
+ dd%
+ \else\@ctrerr\fi}
\def\docincludeaux{%
\def\thepart{\aalph{part}}\def\filesep{\thepart-}%
\let\filekey\@gobble
@@ -293,6 +298,11 @@ Bug reports can be opened (category \texttt{#1}) at\\%
\fi}%
\endgroup%
+
+% don't run tocs when they are in some module files
+\AddToHook{cmd/tableofcontents/after}{\global\let\tableofcontents\relax}
+
+
\InputIfFileExists{ltxdoc.cfg}
{\typeout{*************************************^^J%
* Local config file ltxdoc.cfg used^^J%
@@ -300,6 +310,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
{}
+
\errorstopmode
\batchmode
diff --git a/macros/latex/base/syntonly.dtx b/macros/latex/base/syntonly.dtx
index b214c49ae4..ae4d4cd1f8 100644
--- a/macros/latex/base/syntonly.dtx
+++ b/macros/latex/base/syntonly.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -55,7 +55,7 @@
% This command can be used in the preamble for running a document
% through \LaTeX{} without actually getting any output.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Identification}
diff --git a/macros/latex/base/syntonly.ins b/macros/latex/base/syntonly.ins
index 6b4113ed11..5812ef2fd6 100644
--- a/macros/latex/base/syntonly.ins
+++ b/macros/latex/base/syntonly.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index c80e7d19c3..e6ae0243f2 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/testpage.tex b/macros/latex/base/testpage.tex
index ff17984ee1..e199a2bb71 100644
--- a/macros/latex/base/testpage.tex
+++ b/macros/latex/base/testpage.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/tex2.txt b/macros/latex/base/tex2.txt
deleted file mode 100644
index 09cd388cde..0000000000
--- a/macros/latex/base/tex2.txt
+++ /dev/null
@@ -1,83 +0,0 @@
- LaTeX installation TeX2 information
-
- 16 September 1995
-
-
-In order to make a LaTeX format and use it you need, in addition to
-the LaTeX source files, a TeX implementation.
-
-If your TeX is very old, prior to version TeX3, then certain features
-will be missing from your system. In particular, you will probably
-have no support for `8-bit' input and hyphenation of words with
-accented characters.
-
-Most (perhaps all) TeX implementations are available in versions that
-are at least as recent as TeX3 (released in 1989) so the best course
-of action is to update your TeX installation before building LaTeX.
-
-However, if you must for some reason make the LaTeX format by running
-the old TeX2 then it is necessary to have a `configuration file' named
-fonttext.cfg. The existence of this file will prevent LaTeX trying to
-access 8-bit characters, which is not allowed in the old TeX2 version
-of TeX.
-
-If you fail to use such a configuration file, LaTeX will detect that it
-is running under TeX2 and stop with the following message (without
-making a format file):
-
-*************************************
-*
-* You MUST use a fonttext.cfg file!
-* As you are still using TeX2!!!!!!
-*
-* See the documentation file tex2.txt
-*
-*************************************
-
-
-There is more information about the file fonttext.cfg in the file
-cfgguide.tex; but for a minimal configuration that allows LaTeX to
-be built on TeX2, just do the following:
-
- * Copy the standard fonttext.ltx file to fonttext.cfg
- * Then edit the file fonttext.cfg as follows:
- -- Change the \ProvidesFile call (see below).
- -- Comment out all the lines referring to the `T1' encoding (but not
- those referring to the `OT1' encoding).
-
-Thus the resulting file will look something like the following.
-
-%%% File: fonttext.cfg
-\ProvidesFile{fonttext.cfg}
- [1995/06/05 v1.0 TeX2 text font setup]
-
-\input {OMLenc.def}
-%%%%% NOT FOR TeX2 \input {T1enc.def}
-\input {OT1enc.def} % <- should come after T1 for speed
-\input {OMSenc.def}
-\fontencoding{OT1}
-\DeclareFontEncodingDefaults{}{}
-%%%%% NOT FOR TeX2 \DeclareFontSubstitution{T1}{cmr}{m}{n}
-\DeclareFontSubstitution{OT1}{cmr}{m}{n}
-%%%%% NOT FOR TeX2 \input {T1cmr.fd}
-\input {OT1cmr.fd}
-\input {OT1cmss.fd}
-\input {OT1cmtt.fd}
-\DeclareErrorFont{OT1}{cmr}{m}{n}{10}
-\newcommand\rmdefault{cmr}
-\newcommand\sfdefault{cmss}
-\newcommand\ttdefault{cmtt}
-
-\newcommand\bfdefault{bx}
-\newcommand\mddefault{m}
-
-\newcommand\itdefault{it}
-\newcommand\sldefault{sl}
-\newcommand\scdefault{sc}
-\newcommand\updefault{n}
-
-\newcommand\encodingdefault{OT1}
-\newcommand\familydefault{\rmdefault}
-\newcommand\seriesdefault{\mddefault}
-\newcommand\shapedefault{\updefault}
-\endinput
diff --git a/macros/latex/base/texpert.txt b/macros/latex/base/texpert.txt
deleted file mode 100644
index 0eb1dd7784..0000000000
--- a/macros/latex/base/texpert.txt
+++ /dev/null
@@ -1,210 +0,0 @@
- LaTeX installation TeX expert information
-
- 1 June 1997
-
-
-SUMMARY
-=======
-
-This document contains information about the LaTeX installation for
-TeX experts. In particular it describes:
-
- * The checks performed by ltxcheck.tex
-
- * How to print the LaTeX source.
-
-For more general information, see install.txt.
-
-For information on configuring LaTeX see cfgguide.tex.
-
-
-THE LTXCHECK.TEX CHECKS
-=======================
-
-Here is a description of the checks run by ltxcheck.
-
-1) The \@currdir check.
-
- It is useful for LaTeX to know the syntax for the `current directory
- (or folder)', or `default directory', if the operating system has
- such a concept.
-
- For example, file abc.tex in this directory, or folder, is specified
- by:
- ./abc.tex on Unix and most DOS/OS2 TeX's,
- []abc.tex on VMS
- :abc.tex on a Macintosh.
- The above possibilities will be found automatically during the
- installation. However, if none of these syntaxes works on your
- system then the internal macro \@currdir will be set to be empty
- and ltxcheck will report this.
-
- If your system does have a notion of a current directory, you can
- define \@currdir in the file texsys.cfg.
-
- You could also report this to the latex-bug address, so that
- later releases can automatically cope with your system.
-
-2) The file name parser check.
- \filename@parse may be defined in texsys.cfg if the default
- installation does not define a suitable parser. (In fact no widely
- used TeX system should need such a re-definition as the standard
- installation should correctly define this command for unix, dos,
- atari, VMS, and Macintosh, at least.)
- Because of differences in directory syntax, most features of this
- command can not be checked in a portable way, however ltxcheck does
- check that at least {article.cls} is correctly parsed as base name
- article and extension cls.
-
-3) The \input@path check.
-
- On some systems TeX cannot check whether a file exists before
- trying to input it, unless the filename is expressed as a full path
- name, including the directory. On these systems LaTeX needs to be
- given a list of directories in which to look for files; the
- internal macro \input@path holds this information.
-
- When run, ltxcheck will try to locate the file article.cls.
- If it fails to find this file (and you have placed it in the
- `standard input directory') then you must define \input@path in
- the file texsys.cfg.
-
- The files texsys.cfg and ltdirchk.dtx contain examples of how to do
- this but only you know the directories and syntax that should be used
- for your installation.
-
- We hope to build up a better collection of examples in future
- releases of LaTeX, as it is tested on more TeX systems.
-
-4) TeX version check.
-
- The next check tests that you are running a recent version of TeX.
- If ltxcheck reports that you have TeX2, then you should try to
- upgrade TeX (and rebuild LaTeX) as soon as possible. LaTeX may be
- used with TeX2, but certain features will be missing and you will
- not be able to use the new (8-bit) font families that are now
- available. If you must stick with TeX2, please read the extra
- information in the file tex2.txt.
-
- If ltxcheck reports that your TeX version is older than 3.141, you
- will see some strange messages during the installation. This is
- because earlier versions of TeX printed certain line-breaks in
- messages on the terminal as `^^J' rather than starting a new line.
-
- LaTeX will work round this bug and thus avoid `^^J' appearing in
- error messages, but you should upgrade your TeX as soon as
- possible, as other bugs have been fixed, not just line breaks in
- messages.
-
- At the present time (2005) the current TeX version is 3.141592.
-
-5) Fonts check.
-
- Finally ltxcheck.tex tests to see if it can find a `representative
- sample' of the fonts used by LaTeX.
-
- Fonts that may cause problems are:
- a) The circle fonts. These were renamed some years ago from circle*
- to lcircle*, although some sites still have them under the old
- name. Also the names are longer than 8 letters which may cause
- some problems.
- b) The `extra Computer Modern' fonts. The American Mathematical
- Society has extended the range of sizes available in the
- Computer Modern fonts. LaTeX now assumes that these extra cm
- fonts are available.
- The fonts are available from a CTAN archive, in the directory
- ctan:macros/latex/fonts or alternatively as part of the
- AMS fonts collection, which also includes many useful
- mathematical fonts.
- c) The `T1 encoded Computer Modern' fonts. This is the ec or dc font
- collection. The new (1995) release 1.2 of the dc fonts changed
- most of the file names. For this reason the fd files such as
- t1cmr.fd cannot be written to work with the dc fonts of different
- releases. LaTeX by default unpacks the fd files for the ec
- dc fonts.
- If you have an older release of the dc fonts and do not wish to
- upgrade then you should unpack the necessary fd files by running
- LaTeX on the file olddc.ins (dc older than version 1.2) or
- newdc.ins (version 1.2 and 1.3).
- As the T1 fd files will have been used when making the format,
- you must re-run initex latex.ltx to remake the format if you
- update the fd files in this way.
- Running ltxcheck will produce a ! BAD LaTeX2e system!! error
- message if it detects that the `new' fd files are loaded into
- the format, but only the old dc fonts are available, and vice
- versa.
- If the old fonts are detected, and the `old' fd files are loaded
- then no error is generated, but a message suggesting that you
- upgrade is produced.
- The ec fonts are available from a CTAN archive, in the directory
- ctan:fonts/ec .
-
-
-6) Files check.
-
- Finally ltxcheck checks that the main TeX input files that LaTeX
- will use when running documents (such as the article class file,
- fd files, and main packages such as fontenc) are all available.
-
-
-DOCUMENTATION OF THE CODE
-=========================
-
-Most of the documentation is nowadays available as precomplied PDF
-files. This section describes how to produce typeset code
-documentation yourself from the source.
-
-To typeset a documented code file (a .dtx file) you simply run LaTeX
-on it. The file source2e.tex is a master file which produces the
-documented code for the whole LaTeX kernel (but not the standard
-packages, classes, or compatibility mode). You need to have LaTeX2e
-installed before doing this.
-
-To configure the appearance of this documentation, you can use a
-ltxdoc.cfg file. For example, putting the following line into this
-file will format the documentation for A4 paper:
-
- \PassOptionsToClass{a4paper}{article}
-
-The doc package, which is used by the documentation files, writes
-index files and change-history files that can be processed by the
-program MakeIndex. If this program is part of your TeX installation,
-you can get an index and history listing for a documentation file
-by running the .idx and .glo files through this program.
-
-For example, in Unix MakeIndex, you should say:
-
- makeindex -s gind.ist FILENAME
- makeindex -s gglo.ist -o FILENAME.gls FILENAME.glo
-
-source2e.tex needs a special source2e.ist file (in place of gind.ist).
-Running makeindex will produce some warning messages about ignored
-style specifiers; these can be safely ignored.
-
-See the comments at the end of source2e.tex for more information.
-
-
-CONFIGURING LaTeX
-=================
-
-In addition to the system-dependent customisation in texsys.cfg,
-various other parts of LaTeX can be configured to suit local needs.
-Further details can be found in the document cfgguide.tex. We
-recommend that you install the standard system before attempting any
-further customisation.
-
-If you are thinking of making other changes to LaTeX, please read the
-document modguide.tex as it describes the precautions you need to take
-when making modifications in order to ensure that standard LaTeX
-remains a stable, maintainable system.
-
-
-FURTHER INFORMATION
-===================
-
-You will find further information about various aspects of LaTeX in
-the distributed files with names <*>guide.tex. You will need
-to install the new version before you can typeset these files.
-
-
---- Copyright (C) 1995-2019 the LaTeX Project. All rights reserved ---
diff --git a/macros/latex/base/tlc2.err b/macros/latex/base/tlc2.err
index 46ba9ed845..8925a8bee1 100644
--- a/macros/latex/base/tlc2.err
+++ b/macros/latex/base/tlc2.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2014-09-30}
+\newcommand\erratafiledate{2022-01-03}
\def\comando#1{\texttt{\string#1}}
@@ -852,6 +852,9 @@ highlighting color\u{ as demonstrated below}:
\erroronpage{116}{Footnote 1, line 1}{CBC}{2004/05/18}{2}
Replace: ``I managed to confuse'' with ``we managed to confuse''.
+\erroronpage{117}{para 1, l.1}{EOl}{2022/01/02}{}
+ Missing letter: ``to cho\u{o}se''
+
\erroronpage{117}{para 2, l.2}{HjG}{2004/05/25}{2}
Missing letter: ``It take\u{s} two \ldots''
@@ -2233,6 +2236,10 @@ Change: ``The unaccented ASCII Latin letters and Arabic
Various deviations from alphabetical sort order of the table
entries.
+\erroronpage{553}{para 3, l.1}{EOl}{2022/01/02}{}
+ Missing letter: ``sup\u{p}ressing''
+
+
\iffalse % more blue align stuff
\erroronpage{534}{page}{FMi}{2004/04/23}{}
Printing problem: blue color not properly aligned (horizontally).
@@ -2313,7 +2320,7 @@ Plural: ``Clearly, 8 bits \u{are} not sufficient\ldots''
\erroronpage{551}{tab 9.3}{CBe}{2004/07/27}{}
I am surprised that in Russian there is no word for ``Glossary''.
- Frank: It most certainly exits :-), but right now Babel doesn't
+ Frank: It most certainly exists :-), but right now Babel doesn't
know about it---so there is nothing we can do about it at the
moment. Actually the same problem exists with Polish, although here
I got a translation ``s\l{}ownik termin\'ow'' which will eventually
@@ -2715,6 +2722,9 @@ some of the listed drivers are only of historical interest.
\erroronpage{616}{boxed texts}{FMi}{2004/05/26}{2}
Corrections as outlined in summary entry above.
+\erroronpage{617}{Fig. 10-2-2}{EOl}{2021/11/17}{}
+ A ``|%|'' should follow the ending ``|}|'' of the two |\bluefbox|es.
+
\erroronpage{618}{boxed text}{CAR}{2004/05/26}{2}
Replace: ``\textit{key val list}'' \> ``\textit{key/val-list}''
(also in following text).
@@ -2740,6 +2750,9 @@ some of the listed drivers are only of historical interest.
%\erroronpage{621}{page}{FMi}{2004/04/23}{}
% Printing problem: blue color not properly aligned.
+\erroronpage{621}{Fig. 10-2-8}{EOl}{2021/11/17}{}
+ A ``|%|'' should follow the ending ``|}|'' of the first |\bluefbox|.
+
\erroronpage{623}{para 1, l.7}{HjG}{2004/06/07}{2}
Delete word: ``some \u{of} key combinations''
@@ -2752,7 +2765,7 @@ some of the listed drivers are only of historical interest.
\u{\texttt{tabular}} examples''
\erroronpage{631}{para.2, l.6}{FMi/HjG}{2006/10/22}{s}
- Ersetze: "`\u{This point} is shown \ldots"' \>
+ Replace: "`\u{This point} is shown \ldots"' \>
"`\u{This} is shown \ldots"'
\erroronpage{631}{para -1, l.-1}{JBr}{2004/08/02}{2}
@@ -4547,6 +4560,7 @@ and
\contributor{DHL}{Dan Luecking}
\contributor{DIs}{Daniel Isaacson}
\contributor{DSch}{Dirk Schlimm}
+\contributor{EOl}{Edgar Olthof}
\contributor{ERy}{Elizabeth Ryan}
\contributor{FHa}{Ferdy Hanssen}
\contributor{FMi}{Frank Mittelbach}
@@ -4621,7 +4635,7 @@ preferably in a form usable directly in this file, i.e.,
\begin{flushleft}
|\erroronpage{|\textit{page-number}|}{|\textit{line-identification}|}{|%
\textit{your-initials}|}{|\textit{date}|}{}| \\
- \hspace*{2em}\textit{description of the the erratum}
+ \hspace*{2em}\textit{description of the erratum}
\end{flushleft}
Here is an example:
\begin{verbatim}
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index e8890a678a..3380da7878 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.ins b/macros/latex/base/tulm.ins
index 98962f2b20..a50060b201 100644
--- a/macros/latex/base/tulm.ins
+++ b/macros/latex/base/tulm.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 2016-2021
+Copyright (C) 2016-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index eb9b18dd27..2e2261a0ce 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/unpack.ins b/macros/latex/base/unpack.ins
index 6332fcb5c0..21ba62a33a 100644
--- a/macros/latex/base/unpack.ins
+++ b/macros/latex/base/unpack.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index fe3cfa214f..8af52cca0b 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.tex b/macros/latex/base/usrguide.tex
index a94d8a6a70..dfdf9443e6 100644
--- a/macros/latex/base/usrguide.tex
+++ b/macros/latex/base/usrguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/macros/latex/base/usrguide3.pdf b/macros/latex/base/usrguide3.pdf
index 39758373e4..e8048df824 100644
--- a/macros/latex/base/usrguide3.pdf
+++ b/macros/latex/base/usrguide3.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide3.tex b/macros/latex/base/usrguide3.tex
index 82c1c06863..efec9ad2a2 100644
--- a/macros/latex/base/usrguide3.tex
+++ b/macros/latex/base/usrguide3.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2020-2021
+% Copyright (C) 2020-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -31,12 +31,13 @@
\documentclass{ltxguide}
\usepackage[T1]{fontenc} % needed for \textbackslash in tt
+\usepackage{csquotes}
\title{New \LaTeX\ methods for authors (starting 2020)}
-\author{\copyright~Copyright 2020-2021, \LaTeX\ Project Team.\\
+\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
All rights reserved.}
-\date{2021-06-11}
+\date{2022-02-19}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -48,6 +49,18 @@
\renewcommand \verbatim@font {\normalfont \ttfamily}
\makeatother
+
+% for fpeval documentation
+
+\providecommand\fpop[1]{\mathop{\texttt{#1}}}
+\providecommand\fpbin[1]{\mathbin{\texttt{#1}}}
+\providecommand\fprel[1]{\mathrel{\texttt{#1}}}
+\providecommand\nan{\texttt{NaN}}
+
+\ExplSyntaxOn
+\ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
+\ExplSyntaxOff
+
\begin{document}
\maketitle
@@ -227,6 +240,11 @@ defined.
same name. This should be used sparingly.
\end{itemize}
+If the \meta{cmd} can't be provided as a single token but needs
+\enquote{constructing}, you can use \cs{ExpandArgs} as explained in
+Section~\ref{sec:preconstructing-csnames} which also gives an example
+in which this is needed.
+
\begin{decl}
|\NewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
|\RenewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
@@ -288,7 +306,7 @@ must exist). So after
\end{verbatim}
the user input |\foo{arg1}[arg2]{arg3}| and \verb*|\foo{arg1} [arg2] {arg3}|
will both be parsed in the same way.
-
+
The behavior of optional arguments \emph{after} any mandatory arguments is
selectable. The standard settings will allow spaces here, and thus with
\begin{verbatim}
@@ -338,6 +356,8 @@ defaults with testing for missing values.
Optional arguments make use of dedicated variables to return information about
the nature of the argument received.
+
+
\begin{decl}
|\IfNoValueTF| \arg{arg} \arg{true code} \arg{false code} \\
|\IfNoValueT| \arg{arg} \arg{true code} \\
@@ -373,11 +393,12 @@ will be logically \texttt{false}.
When two optional arguments follow each other (a syntax we typically
discourage), it can make sense to allow users of the command to
specify only the second argument by providing an empty first
-argument. Rather than testing separately for emptiness and for
+argument.
+\NEWdescription{2022/06/01}
+Rather than testing separately for emptiness and for
|-NoValue-| it is then best to use the argument type~|O| with an
-empty default value, and simply test for emptiness using the
-\pkg{expl3} conditional \cs{tl_if_blank:nTF} or its \pkg{etoolbox}
-analogue \cs{ifblank}.
+empty default value, and then test for emptiness using the
+conditional \cs{IfBlankTF} (described below) instead.
\begin{decl}
|\IfValueTF| \arg{arg} \arg{true code} \arg{false code} \\
@@ -388,6 +409,51 @@ The reverse form of the \cs{IfNoValue(TF)} tests are also available
as \cs{IfValue(TF)}. The context will determine which logical
form makes the most sense for a given code scenario.
+
+
+
+
+\begin{decl}[2022/06/01]
+ |\IfBlankTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfBlankT| \arg{arg} \arg{true code} \\
+ |\IfBlankF| \arg{arg} \arg{false code}
+\end{decl}
+
+
+The \cs{IfNoValueTF} command chooses the \meta{true code} if the optional argument has not
+been used at all (and it returns the special \texttt{-NoValue-}
+marker), but not if it has been given an empty value. In contrast
+\cs{IfBlankTF} returns true if its argument is either truly empty or
+only contains one or more normal blanks.
+For example
+\begin{verbatim}
+\NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}{No optional}%
+ {\IfBlankTF{#2}{Blanks in or empty}%
+ {Real content in}}%
+ \space argument!}
+\foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{verbatim}
+results
+in the following output:
+\begin{quote}
+ \NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}{No optional}%
+ {\IfBlankTF{#2}{Blanks in or empty}%
+ {Real content in}}%
+ \space argument!}
+ \foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{quote}
+
+Note that the \cs{space} in (4) is considered real content---because it is
+a command and not a \enquote{space} character---even though it results
+in producing a space. You can also observe in (5) the effect of the
+\texttt{!} specifier, preventing the last \cs{foo}
+from interpreting \texttt{[x]} as its optional argument.
+
+
+
+
\begin{decl}
|\BooleanFalse| \\
|\BooleanTrue|
@@ -554,10 +620,12 @@ spaces are trimmed at both ends of the body: in the example there would
otherwise be spaces coming from the ends the lines after |[\itshape]| and
|world!|. Putting the prefix |!| before \texttt{b} suppresses space-trimming.
-When \texttt{b} is used in the argument specification, the last argument of the environment declaration (e.g., \cs{NewDocumentEnvironment}), which consists of an \meta{end code} to insert at
-|\end|\marg{environment}, is redundant since one can simply put that code at
-the end of the \meta{start code}. Nevertheless this (empty) \meta{end code}
-must be provided.
+When \texttt{b} is used in the argument specification, the last
+argument of the environment declaration (e.g.,
+\cs{NewDocumentEnvironment}), which consists of an \meta{end code} to
+insert at |\end|\marg{environment}, is redundant since one can simply
+put that code at the end of the \meta{start code}. Nevertheless this
+(empty) \meta{end code} must be provided.
Environments that use this feature can be nested.
@@ -665,7 +733,7 @@ with both calls to the command seeing the delimiter |\x|.
\subsection{Creating new argument processors}
\begin{decl}
- |\ProcessedArgument|
+ |\ProcessedArgument|
\end{decl}
Argument processors allow manipulation of a grabbed argument before it is
passed to the underlying code. New processor implementations may be created
@@ -710,4 +778,280 @@ requested \meta{function} or \meta{environment} at the terminal. If
the \meta{function} or \meta{environment} has no known argument
specification then an error is issued.
+
+
+\section{Copying and showing (robust) commands}
+
+If you want to (slightly) alter an existing command you may want to
+save the current definition under a new name and then use that in a
+new definition. If the existing command is robust, then the old trick of
+using the low-level \cs{let} for this doesn't work, because it only
+copies the top-level definition, but not the part that actually does
+the work. As most \LaTeX{} commands are nowadays robust, \LaTeX{}
+now offers some high-level declarations for this instead.
+
+However, please note that it is usually better to make use of
+available hooks (e.g., the generic command or environment hooks),
+instead of copying the current definition and thereby freezing it; see
+the hook management documentation \texttt{lthooks-doc.pdf} for
+details.
+
+\begin{decl}
+ |\NewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
+ |\RenewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
+ |\DeclareCommandCopy| \arg{cmd} \arg{existing-cmd}
+\end{decl}
+
+This copies the definition of \meta{existing-cmd} to \meta{cmd}. After
+this \meta{existing-cmd} can be redefined and \meta{cmd}
+still works! This allows you to then provide a new definition for
+\meta{existing-cmd} that makes use of \meta{cmd} (i.e., of its old
+definition). For example, after
+\begin{verbatim}
+ \NewCommandCopy\LaTeXorig\LaTeX
+ \RenewDocumentCommand\LaTeX{}{\textcolor{blue}{\LaTeXorig}}
+\end{verbatim}
+all \LaTeX{} logos generated with \cs{LaTeX} will come out in blue
+(assuming you have a color package loaded).
+
+The differences between \cs{New...} and \cs{Renew...} are as
+elsewhere: i.e., you get an error depending on whether or not
+\meta{cmd} already exists, or in case of \cs{Declare...} it is copied
+regardless. Note that there is no \cs{Provide...} declaration, because
+that would be of limited value.
+
+
+If the \meta{cmd} or \meta{existing-cmd} can't be provided as a single
+token but need \enquote{constructing}, you can use \cs{ExpandArgs}
+as explained in
+Section~\ref{sec:preconstructing-csnames}.
+
+
+
+
+\begin{decl}
+ |\ShowCommand| \arg{cmd}
+\end{decl}
+
+This displays the meaning of the \meta{cmd} on the terminal and then
+stops (just like the primitive \cs{show}). The difference is that it
+correctly shows the meaning of more complex commands, e.g., in case of
+robust commands it displays not only the top-level definition but
+also the actual payload code and in case of commands declared with
+\cs{NewDocumentCommand}, etc.\ it also gives you detailed information
+about the argument signature.
+
+
+\section[Preconstructing command names \\ (or otherwise expanding arguments)]
+ {Preconstructing command names (or otherwise expanding arguments)}
+\label{sec:preconstructing-csnames}
+
+When declaring new commands with \cs{NewDocumentCommand} or
+\cs{NewCommandCopy} or similar, it is sometimes necessary to
+``construct'' the csname. As a general mechanism the L3 programming
+layer has \cs{exp_args:N...} for this, but there is no mechanism for
+it if \cs{ExplSyntaxOn} is not active (and mixing programming and user
+interface level commands is not a good approach anyhow). We therefore
+offer a mechanism to access this ability using CamelCase naming.
+
+\begin{decl}
+ |\UseName| \arg{string} \\
+ |\ExpandArgs| \arg{spec} \arg{cmd} \arg{arg1} \dots
+\end{decl}
+
+\cs{UseName} turns the \meta{string} directly into a csname and
+then executes it: this is equivalent to the long-standing
+\LaTeXe{} internal command \cs{@nameuse}, or the L3 programming
+equivalent \cs{use:c}. \cs{ExpandArgs} takes a \meta{spec} which
+describes how to expand the \meta{arguments}, carries out these
+operations then executes the \meta{cmd}. The \meta{spec} uses
+the descriptions offered by the L3 programming layer, and the
+relevant \cs{exp_args:N...} function must exist. Common cases will
+have a \meta{spec} of \texttt{c}, \texttt{cc} or \texttt{Nc}: see below.
+
+As an example, the following declaration provides a method to generate
+copyedit commands:
+\begin{verbatim}
+\NewDocumentCommand\newcopyedit{mO{red}}
+ {\newcounter{todo#1}%
+ \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
+ {\stepcounter{todo#1}%
+ \IfBooleanTF {##1}%
+ {\todo[color=#2!10]{\UseName{thetodo#1}: ##2}}%
+ {\todo[inline,color=#2!10]{\UseName{thetodo#1}: ##2}}%
+ }%
+ }
+\end{verbatim}
+Given that declaration you can then write
+\verb/\newcopyedit{note}[blue]/ which defines the command \cs{note}
+and the corresponding counter for you.
+
+A second example is to copy a command by string name using
+\cs{NewCommandCopy}: here we might need to construct both command
+names.
+\begin{verbatim}
+\NewDocumentCommand\savebyname{m}
+ {\ExpandArgs{cc}\NewCommandCopy{saved#1}{#1}}
+\end{verbatim}
+
+In the \meta{spec} each \texttt{c} stands for one argument that is
+turned into a `\texttt{c}'ommand. An \texttt{n} represents a
+`\texttt{n}'ormal argument that is not altered and \texttt{N} stands for
+a `\texttt{N}'ormal argument which is also left unchanged, but one
+consisting only of a single token (and usually unbraced). Thus, to
+construct a command from a string only for the second argument of
+\cs{NewCommandCopy} you would write
+\begin{verbatim}
+\ExpandArgs{Nc}\NewCommandCopy\mysectionctr{c@section}
+\end{verbatim}
+There are several other single letters supported in the L3 programming
+layer that \emph{could} be used in the \meta{spec} to manipulate
+arguments in other ways. If you are interested, take a look at the
+\enquote{Argument expansion} section in the L3 programming layer
+documentation in \texttt{interface3.pdf}.
+
+
+
+\section{Expandable floating point (and other) calculations}
+
+The \LaTeX3 programming layer which is part of the format offers a
+rich interface to manipulate floating point variables and values. To
+allow for (simpler) applications to use this on document-level or in
+packages otherwise not making use of the L3 programming layer a few
+interface commands are made available.
+
+
+\begin{decl}
+ |\fpeval| \arg{floating point expression}
+\end{decl}
+
+The expandable command \cs{fpeval} takes as its argument a floating
+point expression and produces a result using the normal rules of
+mathematics. As this command is expandable it can be used where \TeX{}
+requires a number and for example within a low-level \cs{edef} operation
+to give a purely numerical result.
+
+
+
+Briefly, the floating point expressions may comprise:
+\begin{itemize}
+ \item Basic arithmetic: addition $x\fpbin{+}y$, subtraction $x\fpbin{-}y$,
+ multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\sqrt{x}$,
+ and parentheses.
+ \item Comparison operators: $x\fprel{<}y$,
+ $x\fprel{<=}y$, $x\fprel{>?}y$,
+ $x\fprel{!=}y$ \emph{etc.}
+ \item Boolean logic: sign $\fpop{sign} x$,
+ negation $\fpop{!}x$, conjunction
+ $x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
+ operator $x\fprel{?}y\fprel{:}z$.
+ \item Exponentials: $\fpop{exp} x$, $\fpop{ln} x$, $x\mathord{\texttt{\^{}}}y$.
+ \item Integer factorial: $\fpop{fact} x$.
+ \item Trigonometry: $\fpop{sin} x$, $\fpop{cos} x$, $\fpop{tan} x$, $\fpop{cot} x$, $\fpop{sec}
+ x$, $\fpop{csc} x$ expecting their arguments in radians, and
+ $\fpop{sind} x$, $\fpop{cosd} x$,
+ $\fpop{tand} x$, $\fpop{cotd} x$,
+ $\fpop{secd} x$, $\fpop{cscd} x$ expecting their
+ arguments in degrees.
+ \item Inverse trigonometric functions: $\fpop{asin} x$,
+ $\fpop{acos} x$, $\fpop{atan} x$,
+ $\fpop{acot} x$, $\fpop{asec} x$,
+ $\fpop{acsc} x$ giving a result in radians, and
+ $\fpop{asind} x$, $\fpop{acosd} x$,
+ $\fpop{atand} x$, $\fpop{acotd} x$,
+ $\fpop{asecd} x$, $\fpop{acscd} x$ giving a result
+ in degrees.
+ \item Extrema: $\fpop{max}(x_{1},x_{2},\ldots)$, $\fpop{min}(x_{1},x_{2},\ldots)$,
+ $\fpop{abs}(x)$.
+ \item Rounding functions, controlled by two optional
+ values, $n$ (number of places, $0$ by default) and
+ $t$ (behavior on a tie, $\nan$ by default):
+ \begin{itemize}
+ \item $\fpop{trunc}(x,n)$ rounds towards zero,
+ \item $\fpop{floor}(x,n)$ rounds towards~$-\infty$,
+ \item $\fpop{ceil}(x,n)$ rounds towards~$+\infty$,
+ \item $\fpop{round}(x,n,t)$ rounds to the closest value, with
+ ties rounded to an even value by default, towards zero if $t=0$,
+ towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
+ \end{itemize}
+ \item Random numbers: $\fpop{rand}()$, $\fpop{randint}(m,n)$.
+ \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
+ \item Dimensions, automatically expressed in points, \emph{e.g.},
+ \texttt{pc} is~$12$.
+ \item Automatic conversion (no need for \cs{number}) of
+ integer, dimension, and skip variables to floating points numbers,
+ expressing dimensions in points and ignoring the stretch and
+ shrink components of skips.
+ \item Tuples: $(x_1,\ldots{},x_n)$ that can be added together,
+ multiplied or divided by a floating point number, and nested.
+\end{itemize}
+
+An example of use could be the following:
+\begin{verbatim}
+ \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} $.
+\end{verbatim}
+which produces the following output:
+\begin{quote}
+ \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} $.
+\end{quote}
+
+\begin{decl}
+ |\inteval| \arg{integer expression}
+\end{decl}
+
+ The expandable command \cs{inteval} takes as its argument an integer
+ expression and produces a result using the normal rules of
+ mathematics with some restrictions, see below. The operations
+ recognized are |+|, |-|, |*| and |/| plus parentheses. As this
+ command is expandable it can be used where \TeX{} requires a number
+ and for example within a low-level \cs{edef} operation to give a
+ purely numerical result.
+
+ This is basically a thin wrapper for the primitive \cs{numexpr}
+ command and therefore has some syntax restrictions. These are:
+ \begin{itemize}
+ \item \texttt{/} denotes division rounded to the closest integer with
+ ties rounded away from zero;
+ \item there is an error and the overall expression evaluates to zero
+ whenever the absolute value of any intermediate result exceeds
+ $2^{31}-1$, except in the case of scaling operations
+ $a$\texttt{*}$b$\texttt{/}$c$, for which $a$\texttt{*}$b$ may be
+ arbitrarily large;
+ \item parentheses may not appear after unary \texttt{+} or
+ \texttt{-}, namely placing \texttt{+(} or \texttt{-(} at the start
+ of an expression or after \texttt{+}, \texttt{-}, \texttt{*},
+ \texttt{/} or~\texttt{(} leads to an error.
+ \end{itemize}
+
+An example of use could be the following.
+\begin{verbatim}
+\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
+\end{verbatim}
+which results in
+\enquote{\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.}
+
+
+\begin{decl}
+ |\dimeval| \arg{dimen expression} \qquad
+ |\skipeval| \arg{skip expression}
+\end{decl}
+
+Similar to \cs{inteval} but computing a length (\texttt{dimen}) or a
+rubber length (\texttt{skip}) value. Both are thin wrappers around
+the corresponding engine primitives, which makes them fast, but
+therefore shows the same syntax peculiars as discussed
+above. Nevertheless, in practice they are usually sufficient. For
+example
+\begin{verbatim}
+\newcommand\calulateheight[1]{%
+ \setlength\textheight{\dimeval{\topskip+\baselineskip*\inteval{#1-1}}}}
+\end{verbatim}
+sets the \cs{textheight} to the appropriate value if a page should
+hold a specific number of text lines. Thus after |\calulateheight{40}|
+it is set to \dimeval{\topskip+\baselineskip*\inteval{40-1}}, given
+the values \cs{topskip} (\dimeval{\topskip}) and \cs{baselineskip}
+(\dimeval{\baselineskip}) in the current document.
+
\end{document}
diff --git a/macros/latex/base/utf8ienc.dtx b/macros/latex/base/utf8ienc.dtx
index 75990d1b03..363998a853 100644
--- a/macros/latex/base/utf8ienc.dtx
+++ b/macros/latex/base/utf8ienc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -190,7 +190,7 @@
% information.
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
%
@@ -216,7 +216,7 @@
%<+ts1> \ProvidesFile{ts1enc.dfu}
%<+x2> \ProvidesFile{x2enc.dfu}
%<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018> [2021/06/21 v1.2n UTF-8 support]
+%<-utf8-2018> [2022/06/07 v1.3c UTF-8 support]
% \end{macrocode}
%
% \begin{macrocode}
@@ -363,11 +363,12 @@
% \begin{macro}{\UTFviii@two@octets@noexpand}
% \begin{macro}{\UTFviii@three@octets@noexpand}
% \begin{macro}{\UTFviii@four@octets@noexpand}
+% \changes{v1.3a}{2022/02/19}{Use \cs{unexpanded} rather than \cs{noexpand} so only takes one expansion step}%
% These temporarily prevent the active chars from expanding.
% \begin{macrocode}
-\long\def\UTF@two@octets@noexpand#1#2{\noexpand#2\noexpand}
-\long\def\UTF@three@octets@noexpand#1#2#3{\noexpand#2\noexpand#3\noexpand}
-\long\def\UTF@four@octets@noexpand#1#2#3#4{\noexpand#2\noexpand#3\noexpand#4\noexpand}
+\long\def\UTF@two@octets@noexpand#1#2#3{\unexpanded{#2#3}}
+\long\def\UTF@three@octets@noexpand#1#2#3#4{\unexpanded{#2#3#4}}
+\long\def\UTF@four@octets@noexpand#1#2#3#4#5{\unexpanded{#2#3#4#5}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -376,11 +377,12 @@
% \begin{macro}{\UTFviii@two@octets@string}
% \begin{macro}{\UTFviii@three@octets@string}
% \begin{macro}{\UTFviii@four@octets@string}
+% \changes{v1.3a}{2022/02/19}{Use \cs{detokenize} rather than \cs{string} so only takes one expansion step}%
% And the same with \cs{string} for use in \cs{csname} constructions.
% \begin{macrocode}
-\long\def\UTF@two@octets@string#1#2{\string#2\string}
-\long\def\UTF@three@octets@string#1#2#3{\string#2\string#3\string}
-\long\def\UTF@four@octets@string#1#2#3#4{\string#2\string#3\string#4\string}
+\long\def\UTF@two@octets@string#1#2#3{\detokenize{#2#3}}
+\long\def\UTF@three@octets@string#1#2#3#4{\detokenize{#2#3#4}}
+\long\def\UTF@four@octets@string#1#2#3#4#5{\detokenize{#2#3#4#5}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -542,15 +544,24 @@
% |\count@| and ending at |\@tempcnta|${} - 1$, each time executing
% the code in |\UTFviii@tmp|.
%
-% All this is done in a group so that temporary catcode changes
-% etc.~vanish after everything is set up.
+% Store current settings so can restore after the loops without using a group (gh/762).
+%
+% \begin{macrocode}
+\edef\reserved@a{%
+\catcode`\noexpand\~=\the\catcode`\~\relax
+\catcode`\noexpand\"=\the\catcode`\"\relax
+\uccode`\noexpand\~=\the\uccode`\~\relax
+\count@=\the\count@\relax
+\@tempcnta=\the\@tempcnta\relax
+\let\noexpand\reserved@a\relax}
+% \end{macrocode}
%
% \begin{macrocode}
-\begingroup
\catcode`\~13
\catcode`\"12
% \end{macrocode}
%
+% \changes{v1.3a}{2022/02/19}{Use local protected definitions in the character definitions}%
% \begin{macrocode}
\def\UTFviii@loop{%
\uccode`\~\count@
@@ -566,7 +577,7 @@
% C0 controls are valid UTF-8 but defined to give the ``Character not defined error''
% They may be defined with |\DeclareUnicodeCharacter|.
% \begin{macrocode}
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@undefined@err{:\string~}}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@undefined@err{:\string~}}}
% 0 ^^@ null
\count@"1
\@tempcnta9
@@ -588,7 +599,7 @@
% \begin{macrocode}
\count@"80
\@tempcnta"C2
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -597,7 +608,7 @@
% \begin{macrocode}
\count@"C2
\@tempcnta"E0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@two@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@two@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -605,7 +616,7 @@
% \begin{macrocode}
\count@"E0
\@tempcnta"F0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@three@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@three@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -614,7 +625,7 @@
% \begin{macrocode}
\count@"F0
\@tempcnta"F5
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@four@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -623,12 +634,13 @@
% \begin{macrocode}
\count@"F5
\@tempcnta"100
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
% \end{macrocode}
%
+% Restore values after the loops.
% \begin{macrocode}
-\endgroup
+\reserved@a
% \end{macrocode}
%
% \end{macro}
@@ -773,12 +785,13 @@
% looks slightly strange but is designed for the sequence of |\expandafter|
% in |\DeclareUnicodeCharacter|.
%
+% \changes{v1.2o}{2021/12/13}{Use 80 not A0 to test for single byte UTF-8}
% \begin{macrocode}
- \ifnum\count@<"A0\relax
+ \ifnum\count@<"80\relax
\ifnum\catcode\count@=13
\uccode`\~=\count@\uppercase{\def\UTFviii@tmp{\@empty\@empty~}}%
\else
- \@latex@error{Cannot define non-active Unicode char value < 00A0}%
+ \@latex@error{Cannot define non-active Unicode char value < 0080}%
\@eha
\def\UTFviii@tmp{\UTFviii@tmp}%
\fi
@@ -1139,6 +1152,7 @@
% \changes{v1.1r}{2015/12/03}{Add some more ogonek cases}
% \changes{v1.1s}{2016/01/11}{Add some more caron and acute}
% \changes{v1.1t}{2017/01/28}{Add caron combinations for GgYy}
+% \changes{v1.3c}{2022/06/07}{Fix \cs{guillemetleft} and \cs{guillemetright} also in dfu files (gh/65)}%
% \begin{macrocode}
%<all,t1,ot1,ly1>\DeclareUnicodeCharacter{00A0}{\nobreakspace}
%<all,t1,ot1,ly1>\DeclareUnicodeCharacter{00A1}{\textexclamdown}
@@ -1152,7 +1166,8 @@
%<all,ts1,utf8>\DeclareUnicodeCharacter{00A9}{\textcopyright}
%<all,ts1,ly1,utf8>\DeclareUnicodeCharacter{00AA}{\textordfeminine}
%<*all,x2,t2c,t2b,t2a,t1,ot2,ly1,lcy>
-\DeclareUnicodeCharacter{00AB}{\guillemotleft}
+%\DeclareUnicodeCharacter{00AB}{\guillemotleft} % wrong Adobe name
+\DeclareUnicodeCharacter{00AB}{\guillemetleft}
%</all,x2,t2c,t2b,t2a,t1,ot2,ly1,lcy>
%<all,ts1>\DeclareUnicodeCharacter{00AC}{\textlnot}
%<all,t1,ot1,ly1>\DeclareUnicodeCharacter{00AD}{\-}
@@ -1170,7 +1185,8 @@
%<all,ts1>\DeclareUnicodeCharacter{00B9}{\textonesuperior}
%<all,ts1,ly1,utf8>\DeclareUnicodeCharacter{00BA}{\textordmasculine}
%<*all,x2,t2c,t2b,t2a,t1,ot2,ly1,lcy>
-\DeclareUnicodeCharacter{00BB}{\guillemotright}
+%\DeclareUnicodeCharacter{00BB}{\guillemotright} % wrong Adobe name
+\DeclareUnicodeCharacter{00BB}{\guillemetright}
%</all,x2,t2c,t2b,t2a,t1,ot2,ly1,lcy>
%<all,ts1,ly1>\DeclareUnicodeCharacter{00BC}{\textonequarter}
%<all,ts1,ly1>\DeclareUnicodeCharacter{00BD}{\textonehalf}
@@ -1368,6 +1384,18 @@
%<all,t1,ly1>\DeclareUnicodeCharacter{017E}{\v z}
%<all,ts1,ly1>\DeclareUnicodeCharacter{0192}{\textflorin}
% \end{macrocode}
+% \changes{v1.2n}{2021/12/10}{add 01C4-01CC}
+% \begin{macrocode}
+%<all,t1>\DeclareUnicodeCharacter{01C4}{D\v Z}
+%<all,t1>\DeclareUnicodeCharacter{01C5}{D\v z}
+%<all,t1>\DeclareUnicodeCharacter{01C6}{d\v z}
+%<all,t1>\DeclareUnicodeCharacter{01C7}{LJ}
+%<all,t1>\DeclareUnicodeCharacter{01C8}{Lj}
+%<all,t1>\DeclareUnicodeCharacter{01C9}{lj}
+%<all,t1>\DeclareUnicodeCharacter{01CA}{NJ}
+%<all,t1>\DeclareUnicodeCharacter{01CB}{Nj}
+%<all,t1>\DeclareUnicodeCharacter{01CC}{nj}
+% \end{macrocode}
% \changes{v1.1s}{2016/01/11}{add 01CD-01F4}
% \begin{macrocode}
%<all,t1>\DeclareUnicodeCharacter{01CD}{\v A}
@@ -1795,8 +1823,14 @@
%<all,ts1>\DeclareUnicodeCharacter{2191}{\textuparrow}
%<all,ts1>\DeclareUnicodeCharacter{2192}{\textrightarrow}
%<all,ts1>\DeclareUnicodeCharacter{2193}{\textdownarrow}
+% \end{macrocode}
+% \changes{v1.3b}{2022/05/08}{Declare Unicode codepoints U+3008/U+3009 to
+% better support normalized documents}
+% \begin{macrocode}
%<all,x2,ts1,t2c,t2b,t2a>\DeclareUnicodeCharacter{2329}{\textlangle}
+%<all,x2,ts1,t2c,t2b,t2a>\DeclareUnicodeCharacter{3008}{\textlangle}
%<all,x2,ts1,t2c,t2b,t2a>\DeclareUnicodeCharacter{232A}{\textrangle}
+%<all,x2,ts1,t2c,t2b,t2a>\DeclareUnicodeCharacter{3009}{\textrangle}
%<all,ts1>\DeclareUnicodeCharacter{2422}{\textblank}
%<all,x2,t2c,t2b,t2a,t1,utf8>\DeclareUnicodeCharacter{2423}{\textvisiblespace}
%<all,ts1>\DeclareUnicodeCharacter{25E6}{\textopenbullet}
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index ced71edebe..ca7dc00f2c 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 0dc2c71e36..f1f98e12a0 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex/contrib/pxcjkcat/README-ja.md b/macros/latex/contrib/pxcjkcat/README-ja.md
index accb5faf0d..4c93dc9b04 100644
--- a/macros/latex/contrib/pxcjkcat/README-ja.md
+++ b/macros/latex/contrib/pxcjkcat/README-ja.md
@@ -30,6 +30,13 @@ pxcjkcat パッケージ ー 本体
更新履歴
--------
+ * Version 1.4 〈2022/06/06〉
+ - `\cjkcategory` 命令ã§ãƒ–ロックを符å·å€¤ã§æŒ‡å®šå¯èƒ½ã«ã—ãŸã€‚
+
+ * Version 1.3 〈2022/05/28〉
+ - upTeX 1.25 版以é™ã®ãƒ–ロック定義を新ãŸã« CCV 4 ã¨è¦å®šã™ã‚‹ã€‚
+ - (試験的) key-value オプションã®ã‚µãƒãƒ¼ãƒˆã€‚
+
* Version 1.2 〈2022/05/25〉
- 最新㮠upTeX ã«å¯¾å¿œã•ã›ã‚‹ã€‚
- `nomode` オプションを追加。
diff --git a/macros/latex/contrib/pxcjkcat/README.md b/macros/latex/contrib/pxcjkcat/README.md
index 719a3e3396..11fcfe0132 100644
--- a/macros/latex/contrib/pxcjkcat/README.md
+++ b/macros/latex/contrib/pxcjkcat/README.md
@@ -65,10 +65,10 @@ following lines in the preamble:
If your document is mainly in Japanese, then put the following lines
in the preamble:
- \usepackage[prefercjkvar]{pxcjkcat}
+ \usepackage[ccv3,japanesevar]{pxcjkcat}
\usepackage[utf8]{inputenc}
-The former setting treats the "CJK-ambiguous" punctuation symbols as
+The former setting treats the “CJK-ambiguous†punctuation symbols as
non-CJK letters, while the latter as CJK letters. Of course, your
document must in encoded in UTF-8.
@@ -90,6 +90,8 @@ document must in encoded in UTF-8.
Revision History
----------------
+ * Version 1.4 〈2022/06/06〉
+ * Version 1.3 〈2022/05/28〉
* Version 1.2 〈2022/05/25〉
* Version 1.1 〈2018/04/01〉
* Version 1.0 〈2012/09/22〉
diff --git a/macros/latex/contrib/pxcjkcat/pxcjkcat.pdf b/macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
index 58eae044f8..8772b88c4a 100644
--- a/macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
+++ b/macros/latex/contrib/pxcjkcat/pxcjkcat.pdf
Binary files differ
diff --git a/macros/latex/contrib/pxcjkcat/pxcjkcat.sty b/macros/latex/contrib/pxcjkcat/pxcjkcat.sty
index ae11b02fde..04fad06654 100644
--- a/macros/latex/contrib/pxcjkcat/pxcjkcat.sty
+++ b/macros/latex/contrib/pxcjkcat/pxcjkcat.sty
@@ -10,9 +10,45 @@
%% package declaration
\NeedsTeXFormat{pLaTeX2e}
-\ProvidesPackage{pxcjkcat}[2022/05/25 v1.2 PX cjk-category mode]
+\ProvidesPackage{pxcjkcat}[2022/06/06 v1.4 PX cjk-category mode]
\def\pxkc@pkgname{pxcjkcat}
+%% code guards
+\edef\pxkc@restore@codes{%
+\catcode33=\the\catcode33%
+\catcode34=\the\catcode34%
+\catcode39=\the\catcode39%
+\catcode43=\the\catcode43%
+\catcode45=\the\catcode45%
+\catcode46=\the\catcode46%
+\catcode47=\the\catcode47%
+\catcode58=\the\catcode58%
+\catcode60=\the\catcode60%
+\catcode62=\the\catcode62%
+\catcode63=\the\catcode63%
+\catcode94=\the\catcode94%
+\catcode96=\the\catcode96%
+\catcode239=\the\catcode239%
+\endlinechar=\the\endlinechar%
+\relax}%
+\catcode33=12 % <!>
+\catcode34=12 % <">
+\catcode39=12 % <'>
+\catcode43=12 % <+>
+\catcode45=12 % <->
+\catcode46=12 % <.>
+\catcode47=12 % </>
+\catcode58=12 % <:>
+\catcode60=12 % <<>
+\catcode62=12 % <>>
+\catcode63=12 % <?>
+\catcode94=7 % <^>
+\catcode96=12 % <`>
+\catcode239=13 %
+\AtEndOfPackage{%
+\pxkc@restore@codes
+\let\pxkc@restore@codes\relax}
+
%--------------------------------------- general
%% error messages
@@ -30,10 +66,20 @@
\PackageError\pxkc@pkgname
{Invalid name (#1) for cjk-category mode}%
{\@eha}}
+\def\pxkc@err@naltn{%
+ \PackageError\pxkc@pkgname
+ {Change to cjk-category of 'latn' is forbidden}%
+ {\@eha}}
\def\pxkc@warn@dfblk#1{%
\PackageWarning\pxkc@pkgname
- {Defunct Unicode block '#1' is\MessageBreak
+ {Unsupported Unicode block '#1' is\MessageBreak
specified}}
+\def\pxkc@err@ivfmt#1{%
+ \PackageError\pxkc@pkgname
+ {Block specs are given in bad format%
+ \ifx\detokenize\@undefined\else
+ :\MessageBreak \space'\detokenize{#1}'\fi}%
+ {\@eha}}
%% \pxkc@debug{<message>}
\ifx\bxUseDebug\@undefined
@@ -42,13 +88,17 @@
\def\pxkc@debug#1{\typeout{**[\pxkc@pkgname] #1}}
\fi
+%% packages
+\RequirePackage{keyval}\relax
+
%% unique tokens
\def\pxkc@end{\pxkc@end@}
+\def\pxkc@mt{\pxkc@mt@}
\let\pxkc@mk\indent
%% variables
\newif\ifpxkc@ok
-\newif\ifpxkc@warn@defunct \pxkc@warn@defuncttrue
+\newif\ifpxkc@warn@bad \pxkc@warn@badtrue
\let\pxkc@good@mccv\relax
\let\pxkc@mccv\relax
\let\pxkc@ccmode@opt\relax
@@ -64,12 +114,29 @@
\def\pxkc@expanded#1{%
\edef\pxkc@next{#1}\pxkc@next}
+%% \pxkc@setup{<key>=<value>,...}
+\def\pxkc@setup#1{%
+ \let\pxkc@KV@errx\KV@errx \def\KV@errx##1{\@unknownoptionerror}%
+ \setkeys{\pxkc@pkgname}{#1}
+ \let\KV@errx\pxkc@KV@errx}
+
+%% \pxkc@handle@key{<key>}{<value>}{<name>}
+\def\pxkc@handle@key#1#2#3{%
+ \expandafter\let\expandafter\pxkc@tmpa\csname pxkc@#3\endcsname
+ \ifx\pxkc@tmpa\relax
+ \PackageError\pxkc@pkgname
+ {Invalid value for key '#1':\MessageBreak\@spaces#2}%
+ {\@eha}%
+ \else \pxkc@tmpa
+ \fi}
+
%--------------------------------------- package options
%% mode CCV options
\DeclareOption{ccv1}{\chardef\pxkc@mccv=1 }
\DeclareOption{ccv2}{\chardef\pxkc@mccv=2 }
\DeclareOption{ccv3}{\chardef\pxkc@mccv=3 }
+\DeclareOption{ccv4}{\chardef\pxkc@mccv=4 }
\DeclareOption{ccv+}{\chardef\pxkc@mccv=0 }
\DeclareOption{real}{\chardef\pxkc@mccv=0 }
%% mode options
@@ -83,11 +150,21 @@
\def\pxkc@M@@default {1}
\def\pxkc@M@@nomode {0}% special
\chardef\pxkc@good@mccv=0
+%% key-value options
+\define@key{\pxkc@pkgname}{ccv}{%
+ \pxkc@handle@key{ccv}{#1}{kv@ccv@@#1}}
+\@namedef{pxkc@kv@ccv@@1}{\chardef\pxkc@mccv=1 }
+\@namedef{pxkc@kv@ccv@@2}{\chardef\pxkc@mccv=2 }
+\@namedef{pxkc@kv@ccv@@3}{\chardef\pxkc@mccv=3 }
+\@namedef{pxkc@kv@ccv@@4}{\chardef\pxkc@mccv=4 }
+\@namedef{pxkc@kv@ccv@@real}{\chardef\pxkc@mccv=0 }
+%% dispatch
\DeclareOption*{%
- \@ifundefined{pxkc@M@@\CurrentOption}{\@unknownoptionerror}{%
+ \@ifundefined{pxkc@M@@\CurrentOption}{% key option
+ \expandafter\pxkc@setup\expandafter{\CurrentOption}%
+ }{%else; mode option
\chardef\pxkc@good@mccv=\@nameuse{pxkc@M@@\CurrentOption}\relax
\edef\pxkc@ccmode@opt{\CurrentOption}}}
-%% dispatch
\ProcessOptions\relax
%% clear up
@@ -120,6 +197,16 @@
\@ehc}
\expandafter\endinput\fi\relax
+%% engine version
+\chardef\pxkc@uptex@version=0
+\def\pxkc@next#1.#2#3#4\pxkc@end{%
+ \ifx\pxkc@mk#1\pxkc@mk \ifnum99<1#2#3
+ \chardef\pxkc@uptex@version=\the\uptexversion#2#3\relax
+ \fi\fi}
+\ifx\uptexversion\@undefined\else \ifx\uptexrevision\@undefined\else
+ \expandafter\pxkc@next\uptexrevision...\pxkc@end
+\fi\fi
+
%%-------- classification version check
%% \pxkc@is@same@block
@@ -136,15 +223,26 @@
\else
\pxkc@is@same@block{"A0}{"C0}\ifpxkc@ok
\chardef\pxkc@ccv=2 % v0.29+
- \else
+ \else\ifnum\pxkc@uptex@version<125
\chardef\pxkc@ccv=3 % v1.23+
- \fi
+ \else
+ \chardef\pxkc@ccv=4 % v1.25+
+ \fi\fi
\fi
\ifx\bxDebugCcv\@undefined\else % override
\chardef\pxkc@ccv=\bxDebugCcv\relax
\fi
+\pxkc@debug{upTeX version \number\pxkc@uptex@version}
\pxkc@debug{CJK category version \number\pxkc@ccv}
+%% Here show warning about the buggy engine version (v1.24)
+\ifnum\pxkc@ccv=1 \ifnum\pxkc@uptex@version=124
+ \PackageWarningNoLine\pxkc@pkgname
+ {The upTeX engine of version 1.24 is used!\MessageBreak
+ This version has a bug on CJK category,\MessageBreak
+ and here real CCV is regard as 1}
+\fi\fi
+
%% Here show warning for mode CCV recommendation.
%% (No warning if the good mode CCV is unavailable.)
\ifnum\pxkc@good@mccv>\pxkc@mccv \ifnum\pxkc@good@mccv>\pxkc@ccv\else
@@ -172,7 +270,24 @@
\let\pxkc@mccv\pxkc@ccv
\fi
-%% \pxkc@kcatcode
+%--------------------------------------- helpers
+
+%% constants
+\chardef\pxkc@ascii@max="7F
+
+%% \pxkc@cond\ifXXX...\fi{<true>}{<false>}
+\def\pxkc@cond#1\fi{%
+ #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+
+%% \pxkc@get@jchar{<charcode>}
+\def\pxkc@get@jchar#1{%
+ \begingroup
+ \forcecjktoken
+ \kansujichar\@ne=#1\relax
+ \xdef\pxkc@jchar{\kansuji\@ne}%
+ \endgroup}
+
+%% \pxkc@kcatcode{<charcode>}{<kcatcode>}
\ifx\bxUseDebug\@undefined
\def\pxkc@kcatcode#1#2{\kcatcode#1=#2\relax}
\else
@@ -187,32 +302,37 @@
%--------------------------------------- data tables
%% variables
-%\[pxkc@B@@<block>] : start codepoint of the block
+%\[pxkc@B@@<block>] : start charcode of the block
%\[pxkc@G@@<block>] : members of the group block
%\[pxkc@C@@<category>] : kcatcode value of the category
%% \pxkc@bslst
\def\pxkc@bslst{\@gobble}
-%% \pxkc@bval{<min_ccv>}{<block>}{<ucs>}{<full_name>}
+\def\pxkc@bbslst{}
+%% \pxkc@bval{<min_ccv>}{<block>}{<charcode>}{<full_name>}
\def\pxkc@bval#1#2#3#4{% #4 is unused for now
- \ifnum#1>\pxkc@ccv\else
+ \ifnum#1<\z@\else
+ % check if min_ccv >= 2 (now min_ccv has no other role)
\ifnum#1<\tw@ \pxkc@okfalse
\else
\@tempcnta=#3\relax
\@tempcntb\@tempcnta \advance\@tempcntb\m@ne
\pxkc@is@same@block\@tempcnta\@tempcntb
\fi
- \ifpxkc@ok \pxkc@debug{defunct: #2}%
- \@namedef{pxkc@B@@#2}{-1}% defunct
+ \ifpxkc@ok % bad
+ \@namedef{pxkc@B@@#2}{-1}%
+ \edef\pxkc@bbslst{\pxkc@bbslst\space#2}%
+ \else\ifnum#3=\z@ % 'latn'
+ \@namedef{pxkc@B@@#2}{0}%
\else
\@namedef{pxkc@B@@#2}{#3}%
\edef\pxkc@bslst{\pxkc@bslst,#2}%
- \fi
+ \fi\fi
\fi}
%% \pxkc@gval{<gblock>}{<block>,...}{<full_name>}
\def\pxkc@gval#1#2#3{\@namedef{pxkc@G@@#1}{#2}}
-%% \pxkc@cval{<category>}{<value>}
+%% \pxkc@cval{<category>}{<kcatcode>}
\def\pxkc@cval#1#2{\@namedef{pxkc@C@@#1}{#2}}
\pxkc@cval{noncjk}{15}
\pxkc@cval{kanji}{16}
@@ -286,7 +406,7 @@
\pxkc@bval{2}{lepc}{"1C00} {Lepcha}
\pxkc@bval{2}{olck}{"1C50} {Ol Chiki}
\pxkc@bval{2}{cyrlC}{"1C80} {Cyrillic Extended-C}
-\pxkc@bval{3}{geor2}{"1C90} {Georgian Extended}
+\pxkc@bval{4}{geor2}{"1C90} {Georgian Extended}
\pxkc@bval{2}{sund1}{"1CC0} {Sundanese Supplement}
\pxkc@bval{2}{sym38}{"1CD0} {Vedic Extensions}
\pxkc@bval{1}{latn4}{"1D00} {Phonetic Extensions}
@@ -426,13 +546,13 @@
\pxkc@bval{2}{phlp}{"10B80} {Psalter Pahlavi}
\pxkc@bval{2}{orkh}{"10C00} {Old Turkic}
\pxkc@bval{2}{hung}{"10C80} {Old Hungarian}
-\pxkc@bval{3}{rohg}{"10D00} {Hanifi Rohingya}
+\pxkc@bval{4}{rohg}{"10D00} {Hanifi Rohingya}
\pxkc@bval{2}{sym42}{"10E60} {Rumi Numeral Symbols}
-\pxkc@bval{3}{yezi}{"10E80} {Yezidi}
-\pxkc@bval{3}{sogo}{"10F00} {Old Sogdian}
-\pxkc@bval{3}{sogd}{"10F30} {Sogdian}
-\pxkc@bval{3}{chrs}{"10FB0} {Chorasmian}
-\pxkc@bval{3}{elym}{"10FE0} {Elymaic}
+\pxkc@bval{4}{yezi}{"10E80} {Yezidi}
+\pxkc@bval{4}{sogo}{"10F00} {Old Sogdian}
+\pxkc@bval{4}{sogd}{"10F30} {Sogdian}
+\pxkc@bval{4}{chrs}{"10FB0} {Chorasmian}
+\pxkc@bval{4}{elym}{"10FE0} {Elymaic}
\pxkc@bval{2}{brah}{"11000} {Brahmi}
\pxkc@bval{2}{kthi}{"11080} {Kaithi}
\pxkc@bval{2}{sora}{"110D0} {Sora Sompeng}
@@ -451,58 +571,58 @@
\pxkc@bval{2}{mong1}{"11660} {Mongolian Supplement}
\pxkc@bval{2}{takr}{"11680} {Takri}
\pxkc@bval{2}{ahom}{"11700} {Ahom}
-\pxkc@bval{3}{dogr}{"11800} {Dogra}
+\pxkc@bval{4}{dogr}{"11800} {Dogra}
\pxkc@bval{2}{wara}{"118A0} {Warang Citi}
-\pxkc@bval{3}{diak}{"11900} {Dives Akuru}
-\pxkc@bval{3}{nand}{"119A0} {Nandinagari}
+\pxkc@bval{4}{diak}{"11900} {Dives Akuru}
+\pxkc@bval{4}{nand}{"119A0} {Nandinagari}
\pxkc@bval{3}{zanb}{"11A00} {Zanabazar Square}
\pxkc@bval{3}{soyo}{"11A50} {Soyombo}
\pxkc@bval{2}{pauc}{"11AC0} {Pau Cin Hau}
\pxkc@bval{2}{bhks}{"11C00} {Bhaiksuki}
\pxkc@bval{2}{marc}{"11C70} {Marchen}
\pxkc@bval{3}{gonm}{"11D00} {Masaram Gondi}
-\pxkc@bval{3}{gong}{"11D60} {Gunjala Gondi}
-\pxkc@bval{3}{maka}{"11EE0} {Makasar}
-\pxkc@bval{3}{lisu1}{"11FB0} {Lisu Supplement}
-\pxkc@bval{3}{taml1}{"11FC0} {Tamil Supplement}
+\pxkc@bval{4}{gong}{"11D60} {Gunjala Gondi}
+\pxkc@bval{4}{maka}{"11EE0} {Makasar}
+\pxkc@bval{4}{lisu1}{"11FB0} {Lisu Supplement}
+\pxkc@bval{4}{taml1}{"11FC0} {Tamil Supplement}
\pxkc@bval{1}{xsux}{"12000} {Cuneiform}
\pxkc@bval{1}{xsux1}{"12400} {Cuneiform Numbers and Punctuation}
\pxkc@bval{2}{xsux2}{"12480} {Early Dynastic Cuneiform}
\pxkc@bval{2}{egyp}{"13000} {Egyptian Hieroglyphs}
-\pxkc@bval{3}{egyp1}{"13430} {Egyptian Hieroglyph Format Controls}
+\pxkc@bval{4}{egyp1}{"13430} {Egyptian Hieroglyph Format Controls}
\pxkc@bval{2}{hluw}{"14400} {Anatolian Hieroglyphs}
\pxkc@bval{2}{bamu1}{"16800} {Bamum Supplement}
\pxkc@bval{2}{mroo}{"16A40} {Mro}
\pxkc@bval{2}{bass}{"16AD0} {Bassa Vah}
\pxkc@bval{2}{hmng}{"16B00} {Pahawh Hmong}
-\pxkc@bval{3}{medf}{"16E40} {Medefaidrin}
+\pxkc@bval{4}{medf}{"16E40} {Medefaidrin}
\pxkc@bval{2}{plrd}{"16F00} {Miao}
\pxkc@bval{2}{cjk14}{"16FE0} {Ideographic Symbols and Punctuation}
\pxkc@bval{2}{tang}{"17000} {Tangut}
\pxkc@bval{2}{tang1}{"18800} {Tangut Components}
-\pxkc@bval{3}{kits}{"18B00} {Khitan Small Script}
-\pxkc@bval{3}{tang2}{"18D00} {Tangut Supplement}
+\pxkc@bval{4}{kits}{"18B00} {Khitan Small Script}
+\pxkc@bval{4}{tang2}{"18D00} {Tangut Supplement}
\pxkc@bval{2}{kana2}{"1B000} {Kana Supplement}
\pxkc@bval{3}{kanaA}{"1B100} {Kana Extended-A}
-\pxkc@bval{3}{kana3}{"1B130} {Small Kana Extension}
+\pxkc@bval{4}{kana3}{"1B130} {Small Kana Extension}
\pxkc@bval{3}{nshu}{"1B170} {Nushu}
\pxkc@bval{2}{dupl}{"1BC00} {Duployan}
\pxkc@bval{2}{sym53}{"1BCA0} {Shorthand Format Controls}
\pxkc@bval{1}{sym32}{"1D000} {Byzantine Musical Symbols}
\pxkc@bval{1}{sym33}{"1D100} {Musical Symbols}
\pxkc@bval{1}{sym34}{"1D200} {Ancient Greek Musical Notation}
-\pxkc@bval{3}{sym58}{"1D2E0} {Mayan Numerals}
+\pxkc@bval{4}{sym58}{"1D2E0} {Mayan Numerals}
\pxkc@bval{1}{sym35}{"1D300} {Tai Xuan Jing Symbols}
\pxkc@bval{1}{sym36}{"1D360} {Counting Rod Numerals}
\pxkc@bval{1}{sym37}{"1D400} {Mathematical Alphanumeric Symbols}
\pxkc@bval{2}{sgnw}{"1D800} {Sutton SignWriting}
\pxkc@bval{2}{glag1}{"1E000} {Glagolitic Supplement}
-\pxkc@bval{3}{hmnp}{"1E100} {Nyiakeng Puachue Hmong}
-\pxkc@bval{3}{wcho}{"1E2C0} {Wancho}
+\pxkc@bval{4}{hmnp}{"1E100} {Nyiakeng Puachue Hmong}
+\pxkc@bval{4}{wcho}{"1E2C0} {Wancho}
\pxkc@bval{2}{mend}{"1E800} {Mende Kikakui}
\pxkc@bval{2}{adlm}{"1E900} {Adlam}
-\pxkc@bval{3}{sym59}{"1EC70} {Indic Siyaq Numbers}
-\pxkc@bval{3}{sym61}{"1ED00} {Ottoman Siyaq Numbers}
+\pxkc@bval{4}{sym59}{"1EC70} {Indic Siyaq Numbers}
+\pxkc@bval{4}{sym61}{"1ED00} {Ottoman Siyaq Numbers}
\pxkc@bval{2}{sym51}{"1EE00} {Arabic Mathematical Alphabetic Symbols}
\pxkc@bval{2}{sym43}{"1F000} {Mahjong Tiles}
\pxkc@bval{2}{sym44}{"1F030} {Domino Tiles}
@@ -517,16 +637,16 @@
\pxkc@bval{2}{sym55}{"1F780} {Geometric Shapes Extended}
\pxkc@bval{2}{sym56}{"1F800} {Supplemental Arrows-C}
\pxkc@bval{2}{sym57}{"1F900} {Supplemental Symbols and Pictographs}
-\pxkc@bval{3}{sym60}{"1FA00} {Chess Symbols}
-\pxkc@bval{3}{sym62}{"1FA70} {Symbols and Pictographs Extended-A}
-\pxkc@bval{3}{sym63}{"1FB00} {Symbols for Legacy Computing}
+\pxkc@bval{4}{sym60}{"1FA00} {Chess Symbols}
+\pxkc@bval{4}{sym62}{"1FA70} {Symbols and Pictographs Extended-A}
+\pxkc@bval{4}{sym63}{"1FB00} {Symbols for Legacy Computing}
\pxkc@bval{1}{haniB}{"20000} {CJK Unified Ideographs Extension B}
\pxkc@bval{2}{haniC}{"2A700} {CJK Unified Ideographs Extension C}
\pxkc@bval{2}{haniD}{"2B740} {CJK Unified Ideographs Extension D}
\pxkc@bval{2}{haniE}{"2B820} {CJK Unified Ideographs Extension E}
\pxkc@bval{3}{haniF}{"2CEB0} {CJK Unified Ideographs Extension F}
\pxkc@bval{1}{hani2}{"2F800} {CJK Compatibility Ideographs Supplement}
-\pxkc@bval{3}{haniG}{"30000} {CJK Unified Ideographs Extension G}
+\pxkc@bval{4}{haniG}{"30000} {CJK Unified Ideographs Extension G}
\pxkc@bval{1}{spc07}{"E0000} {Tags}
\pxkc@bval{1}{spc08}{"E0100} {Variation Selectors Supplement}
\pxkc@bval{1}{spc09}{"F0000} {Supplementary Private Use Area-A}
@@ -544,6 +664,9 @@
\pxkc@bval{0}{latnx}{"00A0}{Latin-1 Supplement/Other}
\pxkc@bval{0}{latny}{"00C0}{Latin-1 Supplement/Latin}
\fi
+\ifx\pxkc@bbslst\@empty\else
+ \pxkc@debug{Unsupported blocks:\pxkc@bbslst}
+\fi
%% \pxkc@foreach@blocks
\edef\pxkc@foreach@blocks{%
@@ -554,22 +677,22 @@
\let\pxkc@cval\relax
\let\pxkc@gval\relax
\let\pxkc@bslst\relax
+\let\pxkc@bbslst\relax
%--------------------------------------- public interfaces
%%<*> \cjkcategory{<block>}{<category>}
% Sets the kcatcode of block <block> to <category>.
% Here <block> is given as a block name or a single character in the
-% block to be specified; <category> is given as a category name or
-% a number ranged in 15--19.
+% block (groups are not considered) to be specified;
+% <category> is given as a category name or a kcatcode value (15--19).
\newcommand*\cjkcategory{%
\begingroup
\forcecjktoken
\expandafter\endgroup\pxkc@cjkcategory@}% read args
\def\pxkc@cjkcategory@#1#2{%
- \ifnum2<1#2 % <category> is a number
- \edef\pxkc@arg{#2}%
- \else
+ \edef\pxkc@arg{#2}%
+ \ifnum2<1\pxkc@arg\relax \else % <category> is a number
\@ifundefined{pxkc@C@@#2}{%
\pxkc@err@ivcsy{#2}\def\pxkc@arg{18}%
}{%else
@@ -578,35 +701,48 @@
\fi
\pxkc@cjkcategory@a{#1}}
\def\pxkc@cjkcategory@a#1{%{<block>}
- \@for\pxkc@blk:={#1}\do{%
- \expandafter\pxkc@cjkcategory@b\expandafter{\pxkc@blk}}}
+ \pxkc@expand@text\pxkc@tmpa{#1}%
+ \ifx\pxkc@tmpa\relax
+ \pxkc@err@ivfmt{#1}%
+ \else
+ \@for\pxkc@blk:=\pxkc@tmpa\do{%
+ \expandafter\pxkc@cjkcategory@b\expandafter{\pxkc@blk}}%
+ \fi}
\def\pxkc@cjkcategory@b#1{%
- \pxkc@get@cp{#1}\ifnum\pxkc@cp>"7F
- \pxkc@kcatcode{\pxkc@cp}{\pxkc@arg}% FIXME: consider group
+ \pxkc@get@cp{#1}\ifpxkc@ok % charcode
+ \pxkc@kcatcode{\pxkc@cp}{\pxkc@arg}%
\else
- \edef\pxkc@blk{#1}%
- \pxkc@set@cjkcategory
+ \ifcase\pxkc@cp % no-op
+ \or % name
+ \edef\pxkc@blk{#1}%
+ \pxkc@set@cjkcategory
+ \else \pxkc@err@ivfmt{#1}% error
+ \fi
\fi}
%% \pxkc@set@cjkcategory
-% Sees \pxkc@blk and \pxkc@arg.
+% Sees \pxkc@blk (block name) and \pxkc@arg (kcatcode).
\def\pxkc@set@cjkcategory{%
\pxkc@letcs\pxkc@tmpa{pxkc@G@@\pxkc@blk}%
\ifx\pxkc@tmpa\relax
\pxkc@letcs\pxkc@cp{pxkc@B@@\pxkc@blk}%
\ifx\pxkc@cp\relax
\pxkc@err@ivbsy{\pxkc@blk}%
- \else\ifnum\pxkc@cp<\z@ % defunct
- \ifpxkc@warn@defunct \pxkc@warn@dfblk{\pxkc@blk}\fi
+ \else\ifnum\pxkc@cp<\z@ % bad
+ \ifpxkc@warn@bad \pxkc@warn@dfblk{\pxkc@blk}\fi
+ \else\ifnum\pxkc@cp=\z@
+ \ifnum\pxkc@arg=15 \else
+ \pxkc@err@naltn
+ \fi
\else
\pxkc@kcatcode{\pxkc@cp}{\pxkc@arg}%
- \fi\fi
+ \fi\fi\fi
\else
\pxkc@expanded{\noexpand\pxkc@cjkcategory@a{\pxkc@tmpa}}%
\fi}
-%%<*> \pxkc@cjkcategory{<block>}{<kcatcode>}
-%%<*> \pxkc@cjkcategory@mccv{<minmccv>}{<maxmccv>}{<block>}{<kcatcode>}
+%% \pxkc@cjkcategory{<block>}{<kcatcode>}
+%% \pxkc@cjkcategory@mccv{<minmccv>}{<maxmccv>}{<block>}{<kcatcode>}
% Other entry points for internal use.
\def\pxkc@cjkcategory#1#2{%
\def\pxkc@blk{#1}\edef\pxkc@arg{#2}%
@@ -617,9 +753,40 @@
\fi\fi}
%% \pxkc@get@cp{<arg>}
+% ok / 0=nop / 1=name / 2=err
\def\pxkc@get@cp#1{%
- \afterassignment\pxkc@get@cp@a\chardef\pxkc@cp=`#1?\pxkc@mk}
-\def\pxkc@get@cp@a#1\pxkc@mk{}
+ \pxkc@okfalse \chardef\pxkc@cp\z@
+ \pxkc@get@cp@a#1\pxkc@mk\pxkc@end}
+\def\pxkc@get@cp@a#1{%
+ \pxkc@cond\ifx#1\pxkc@mk\fi{%
+ \pxkc@get@cp@fin\pxkc@mk
+ }{\pxkc@cond\ifnum\pxkc@get@cp@b#1>\z@\fi{%
+ \pxkc@get@cp@c#1%
+ }{\pxkc@cond\ifnum2<"1#1 \fi{%
+ \pxkc@get@cp@c"#1%
+ }{%else
+ \chardef\pxkc@cp`#1 %
+ \pxkc@cond\ifnum\pxkc@cp>\pxkc@ascii@max\fi{%
+ \pxkc@oktrue \pxkc@get@cp@fin
+ }{%
+ \pxkc@okfalse \chardef\pxkc@cp\@ne \pxkc@get@cp@e
+ }%
+ }}}}
+\def\pxkc@get@cp@b#1{0\if#1"1\fi\if#1'1\fi\if#1+1\fi}
+\def\pxkc@get@cp@c{%
+ \afterassignment\pxkc@get@cp@d\count@=}
+\def\pxkc@get@cp@d{%
+ \chardef\pxkc@cp\count@
+ \ifnum\pxkc@cp=\count@ \pxkc@oktrue
+ \else \chardef\pxkc@cp\z@
+ \fi
+ \pxkc@get@cp@fin}
+\def\pxkc@get@cp@e#1\pxkc@mk{%
+ \pxkc@get@cp@fin\pxkc@mk}
+\def\pxkc@get@cp@fin#1\pxkc@mk\pxkc@end{%
+ \ifx\pxkc@mt#1\pxkc@mt\else
+ \pxkc@okfalse \chardef\pxkc@cp\tw@
+ \fi}
%%<*> \cjkcategorymode{<mode>}
% Invokes the cjk-category mode <mode>.
@@ -628,9 +795,10 @@
\ifx\pxkc@next\relax
\pxkc@err@ivmsy{#1}%
\else
- \pxkc@warn@defunctfalse
+ \pxkc@warn@badfalse
\pxkc@next
- \pxkc@warn@defuncttrue
+ \pxkc@warn@badtrue
+ \kcatcode0=15 % 'latn' is fixed
\fi}
%--------------------------------------- CJK category modes
@@ -639,10 +807,9 @@
\let\pxkc@cat\relax
\let\pxkc@base@cat\relax
-%% \[pxkc@K@@<block>] : Invariant blocks
+%% \[pxkc@K@@<block>] : the kcatcode of CJK core blocks
\def\do#1#2{\expandafter\chardef\csname pxkc@K@@#1\endcsname=#2 }
%C======================================
-\do{latn} {15} % Basic Latin
\do{hang1} {19} % Hangul Jamo
\do{sym15} {18} % Enclosed Alphanumerics
\do{cjk01} {16} % CJK Radicals Supplement
@@ -693,6 +860,10 @@
\do{hani2} {16} % CJK Compatibility Ideographs Supplement
\do{haniG} {16} % CJK Unified Ideographs Extension G
%=======================================
+\ifnum\pxkc@mccv<2
+ \do{cjk1b} {18}
+ \do{cjk1c} {18}
+\fi
%% \pxkc@reset@all{<kcatcode>}
\def\pxkc@reset@all#1{%
@@ -700,11 +871,9 @@
\pxkc@foreach@blocks\do{%
\pxkc@letcs\pxkc@cat{pxkc@K@@\pxkc@blk}%
\ifx\pxkc@cat\relax \let\pxkc@cat\pxkc@base@cat \fi
- \pxkc@kcatcode{\@nameuse{pxkc@B@@\pxkc@blk}}{\pxkc@cat}}%
- \ifnum\pxkc@mccv<2
- \pxkc@cjkcategory{cjk12}{18}%
- \fi}
+ \pxkc@kcatcode{\@nameuse{pxkc@B@@\pxkc@blk}}{\pxkc@cat}}}
+%% \[pxkc@M@@<mode>] : the implementation of a mode
%P======================================
%% 'forcecjk'
\def\pxkc@M@@forcecjk{%
@@ -720,7 +889,7 @@
%% 'prefercjkvar'
\def\pxkc@M@@prefercjkvar{%
\pxkc@M@@japanesevar
- \pxkc@cjkcategory@mccv{3}{3}{latny}{18}%
+ \pxkc@cjkcategory@mccv{3}{4}{latny}{18}%
\pxkc@cjkcategory{latnA}{18}%
\pxkc@cjkcategory{latnB}{18}%
\pxkc@cjkcategory{latn2}{18}%
@@ -741,7 +910,7 @@
\def\pxkc@M@@japanesevar{%
\pxkc@M@@prefernoncjk
\pxkc@cjkcategory@mccv{1}{2}{latn1}{18}%
- \pxkc@cjkcategory@mccv{3}{3}{latnx}{18}%
+ \pxkc@cjkcategory@mccv{3}{4}{latnx}{18}%
\pxkc@cjkcategory{sym04}{18}%
\pxkc@cjkcategory{sym07}{18}%
\pxkc@cjkcategory{sym08}{18}%
@@ -768,10 +937,90 @@
%% 'default'
\def\pxkc@M@@default{%
\pxkc@M@@forcecjk
- \pxkc@cjkcategory@mccv{3}{3}{latny}{15}%
- \pxkc@cjkcategory@mccv{3}{3}{latnA}{15}%
+ \pxkc@cjkcategory@mccv{3}{4}{latny}{15}%
+ \pxkc@cjkcategory@mccv{3}{4}{latnA}{15}%
+ \pxkc@cjkcategory@mccv{4}{4}{latnB}{15}%
}
+%--------------------------------------- safe text expansion
+
+%% variables
+\let\pxkc@expd\relax
+
+%% \pxkc@expand@text\CS{<text>}
+\def\pxkc@expand@text#1#2{%
+ \begingroup
+ \let\UTFviii@invalid@err \noexpand
+ \let\UTFviii@two@octets \pxkc@lead@byte@NB
+ \let\UTFviii@three@octets\pxkc@lead@byte@NC
+ \let\UTFviii@four@octets \pxkc@lead@byte@ND
+ \edef\pxkc@tmpa{#2}%
+ \let\UTFviii@invalid@err \pxkc@expand@text@err
+ \let\UTFviii@two@octets \pxkc@lead@byte@PB
+ \let\UTFviii@three@octets\pxkc@lead@byte@PC
+ \let\UTFviii@four@octets \pxkc@lead@byte@PD
+ \let\pxkc@expd\@empty
+ \expandafter\pxkc@expand@text@a\pxkc@tmpa\pxkc@mk\pxkc@end
+ \global\let\pxkc@g@tmpa\pxkc@expd
+ \endgroup
+ \let#1\pxkc@g@tmpa}
+\def\pxkc@expand@text@a{%
+ \futurelet\pxkc@tok\pxkc@expand@text@b}
+\def\pxkc@expand@text@b{%
+ \ifcat\noexpand\pxkc@tok0% other
+ \let\pxkc@next\pxkc@expand@text@d
+ \else\ifcat\noexpand\pxkc@tok\@sptoken
+ \let\pxkc@next\pxkc@expand@text@f
+ \else\ifx\pxkc@tok\pxkc@mk % end
+ \let\pxkc@next\pxkc@expand@text@fin
+ \else\ifx\pxkc@tok\bgroup
+ \let\pxkc@next\pxkc@expand@text@err
+ \else\expandafter\ifx\noexpand\pxkc@tok\pxkc@tok % unexpandable
+ \let\pxkc@next\pxkc@expand@text@c
+ \else \let\pxkc@next\pxkc@expand@text@e
+ \fi\fi\fi\fi\fi
+ \pxkc@next}
+\def\pxkc@expand@text@c#1{%
+ \edef\pxkc@expd{\pxkc@expd#1}%
+ \pxkc@expand@text@a}
+\def\pxkc@expand@text@d#1{%
+ \ifnum`#1>\pxkc@ascii@max % high byte
+ \let\pxkc@next\pxkc@expand@text@ret
+ \lccode"EF=`#1\relax\lowercase{\expandafter^^ef}% reactivate
+ \else \expandafter\pxkc@expand@text@c\expandafter#1%
+ \fi}
+\def\pxkc@expand@text@e#1{%
+ \ifcat\noexpand#1\noexpand^^ef% active-char
+ \let\pxkc@next\pxkc@expand@text@ret
+ \expandafter#1%
+ \else \expandafter\pxkc@expand@text@err
+ \fi}
+\expandafter\def\expandafter\pxkc@expand@text@f\space{%
+ \pxkc@expand@text@c\space}
+\def\pxkc@expand@text@fin#1#2\pxkc@end{%
+ \ifx\pxkc@mt#2\pxkc@mt \else \let\pxkc@expd\relax \fi}
+\def\pxkc@expand@text@err{%
+ \pxkc@expand@text@fin\pxkc@mk}
+\def\pxkc@expand@text@ret{% UTF-8 bytes are read
+ \pxkc@get@jchar\count@
+ \pxkc@expand@text@c\pxkc@jchar}
+
+%% processors
+\def\pxkc@lead@byte@NB#1{\noexpand#1\noexpand}
+\def\pxkc@lead@byte@NC#1#2{\noexpand#1\noexpand#2\noexpand}
+\def\pxkc@lead@byte@ND#1#2#3{\noexpand#1\noexpand#2\noexpand#3\noexpand}
+\def\pxkc@lead@byte@PB#1#2{%
+ \count@`#1 \advance\count@-"C0
+ \pxkc@trail@byte{#2}\pxkc@next}
+\def\pxkc@lead@byte@PC#1#2#3{%
+ \count@`#1 \advance\count@-"E0
+ \pxkc@trail@byte{#2}\pxkc@trail@byte{#3}\pxkc@next}
+\def\pxkc@lead@byte@PD#1#2#3#4{%
+ \count@`#1 \advance\count@-"F0
+ \pxkc@trail@byte{#2}\pxkc@trail@byte{#3}\pxkc@trail@byte{#4}\pxkc@next}
+\def\pxkc@trail@byte#1{%
+ \multiply\count@"40 \advance\count@`#1 \advance\count@-"80 }
+
%--------------------------------------- miscellaneous accessories
%%<*> \showcjkcategory
diff --git a/macros/latex/contrib/pxcjkcat/pxcjkcat.tex b/macros/latex/contrib/pxcjkcat/pxcjkcat.tex
index 4173f25a44..e8e00fcbc7 100644
--- a/macros/latex/contrib/pxcjkcat/pxcjkcat.tex
+++ b/macros/latex/contrib/pxcjkcat/pxcjkcat.tex
@@ -11,7 +11,7 @@
pdftitle={pxcjkcatパッケージ},
pdfauthor={八登崇之}}
\usepackage{bxtexlogo}
-\bxtexlogoimport{*}
+\bxtexlogoimport{*,LaTeXTeX}
\usepackage[verb]{bxghost}
\usepackage{shortvrb}
\MakeShortVerb{\|}
@@ -19,12 +19,13 @@
\newenvironment{myverbatim}
{\quote\small\verbatim}
{\endverbatim\endquote}
-\newcommand{\PkgVersion}{1.2}
-\newcommand{\PkgDate}{2022/05/25}
+\newcommand{\PkgVersion}{1.4}
+\newcommand{\PkgDate}{2022/06/06}
\newcommand{\Pkg}[1]{\textsf{#1}}
-\newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$}
+\newcommand{\Meta}[1]{%
+ $\langle$\mbox{}\nolinebreak#1\nolinebreak\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
-\newcommand{\Means}{:\quad}
+\newcommand{\Means}{:~}
\newcommand{\strong}{\textsf}
\newcommand{\wbr}{\linebreak[0]}
\newcommand{\Code}[1]{{\usefont{T1}{lmtt}{l}{n}#1}}
@@ -36,14 +37,182 @@
\maketitle
\begin{abstract}
-本パッケージã¯ã€
-{\upTeX}ã®å’Œæ–‡æ–‡å­—カテゴリ(kcatcode)を扱ã†{\LaTeX}上ã®
-インタフェースをæä¾›ã™ã‚‹ã€‚
+{\upTeX}エンジンã«ã¯
+「ソース中ã®éžASCII文字ã®æ‰±ã„ã€
+(和文・欧文ã®ä½•ã‚Œã¨ã—ã¦æ‰±ã†ã‹ã€ç­‰ï¼‰
+を制御ã™ã‚‹ãŸã‚ã®ã€Œå’Œæ–‡ã‚«ãƒ†ã‚´ãƒªï¼ˆkcatcode)ã€
+ã¨ã„ã†è¨­å®šãŒã‚る。
+本パッケージã¯ã€{\upTeX}ã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã‚’扱ã†ãŸã‚ã®
+{\LaTeX}ã®æ–‡æ›¸ä½œæˆè€…å‘ã‘ã®ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‚’æä¾›ã™ã‚‹ã€‚
\end{abstract}
\tableofcontents
%===========================================================
+\section{å‰æ知識}
+\label{sec:Introduction}
+
+%-------------------
+\subsection{和文カテゴリ}
+\label{ssec:cjkcategory}
+
+{\upTeX}エンジンã®ã€Œ\strong{和文カテゴリ}(kcatcode)ã€ã®è¨­å®šã¯
+「ソース中ã®éžASCII文字ã®æŒ¯èˆžã€ã‚’制御ã™ã‚‹ãŸã‚ã®ã‚‚ã®ã§ã‚る。
+例ãˆã°ã€Œã‚¢ã€ï¼ˆU+30A2)ã¨ã„ã†æ–‡å­—ã¯æ™®é€šã¯ï¼ˆæ—¢å®šå€¤ã§ã¯ï¼‰
+ä»®åã¨ã—ã¦æ‰±ã‚れるãŒã€U+30A2ã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã‚’変更ã™ã‚‹ã“ã¨ã§ã€
+ã“れを「和文記å·æ‰±ã„ã€ã€Œæ¬§æ–‡æ‰±ã„ã€ãªã©ã«å¤‰ãˆã‚‹ã“ã¨ãŒã§ãる。
+
+{\upTeX}ã®ä»•æ§˜ã§ã¯å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã®å€¤ã¯15~19ã®ç¯„囲ã®æ•´æ•°
+(\strong{和文カテゴリコード})
+ã¨ã—ã¦è¡¨ã•ã‚Œã‚‹ã€‚
+本パッケージã§ã¯æ“作を直感的ã«ã™ã‚‹ãŸã‚和文カテゴリã®å€¤ã«åå‰
+(\strong{カテゴリID})を付ã‘ã¦æ‰±ã†ã€‚
+和文カテゴリã®å€¤ã®ä¸€è¦§ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る。
+
+\begin{center}\small\begin{tabular}{ccl}
+ \hline
+ コード & カテゴリID & æ„味 \\
+ \hline
+ 15 & |noncjk| & 欧文扱ㄠ\\
+ 16 & |kanji| & 漢字扱ㄠ\\
+ 17 & |kana| & ä»®å扱ㄠ\\
+ 18 & |cjk| & 「ãã®ä»–ã®å’Œæ–‡ã€æ‰±ã„ \\
+ 19 & |hangul| & ãƒãƒ³ã‚°ãƒ«æ‰±ã„ \\
+ \hline
+\end{tabular}\end{center}
+和文カテゴリã®è¨­å®šã«ã‚ˆã‚‹å®Ÿéš›ã®ã€ŒæŒ¯èˆžã€ã®é•ã„ã«ã¯
+以下ã®ã‚ˆã†ãªã‚‚ã®ãŒã‚ã‚‹
+\footnote{ãªãŠã€ç¾åœ¨ã®{\upTeX}ã®ä»•æ§˜ã§ã¯|kanji|(16)ã¨|kana|(17)
+ ã®é–“ã«ã¯ã€ŒæŒ¯èˆžã€ã®é•ã„ã¯å­˜åœ¨ã—ãªã„よã†ã§ã‚る。}。
+\begin{itemize}
+\item 和文カテゴリãŒ|noncjk|(15)ã§ã‚る文字ã¯æ¬§æ–‡ã¨ã—ã¦æ‰±ã‚れる。
+ 対ã—ã¦ã€|noncjk|以外ã®æ–‡å­—ã¯å’Œæ–‡æ‰±ã„ã¨ãªã‚‹ã€‚
+ \Note ãªãŠã€æ¬§æ–‡æ‰±ã„ã¨ãªã‚‹æ–‡å­—ã¯æ¬§æ–‡{\LaTeX}({\pdfLaTeX})ã¨
+ åŒã˜æ©Ÿæ§‹ã§å‡¦ç†ã•ã‚Œã‚‹ã€‚
+ ã™ãªã‚ã¡ã€{\TeX}ã®ãƒ¬ãƒ™ãƒ«ã§ã¯UTF-8ã®ãƒã‚¤ãƒˆåˆ—ã¨ã—ã¦æ‰±ã‚ã‚Œã€
+ ã“れを\Pkg{inputenc}パッケージãŒé©åˆ‡ã«å‡¦ç†ã™ã‚‹ã“ã¨ã§
+ åˆã‚ã¦ã€Œæ–‡å­—ã€ã¨ã—ã¦èªè­˜ã•ã‚Œã‚‹ã€‚
+\item (u){\pLaTeX}ã«ã¯ã€Œè¡Œæœ«ã«ã‚る文字ãŒå’Œæ–‡æ–‡å­—ã®å ´åˆã«ã¯å½“該ã®æ”¹è¡Œã¯
+ 空白ã«ãªã‚‰ãšã«ç„¡è¦–ã•ã‚Œã‚‹ã€ã¨ã„ã†ç‹¬è‡ªã®å…¥åŠ›è¦å‰‡ãŒã‚ã‚‹ãŒã€
+ 和文カテゴリãŒ|hangul|(19)ã§ã‚る和文文字ãŒè¡Œæœ«ã«ã‚ã‚‹å ´åˆã¯
+ 欧文ã¨åŒæ§˜ã«æ”¹è¡Œã¯ç©ºç™½ã‚’発生ã•ã›ã‚‹ã€‚
+\item {\LaTeX}ã®|\|ã‹ã‚‰å§‹ã¾ã‚‹å‘½ä»¤å(制御綴)ã®æ§‹æˆã«ã¤ã„ã¦
+ 「複数文字ã®åå‰ã‚’作れるã®ã¯è‹±å­—ã®ã¿ã€ã¨ã„ã†è¦å‰‡ãŒã‚る。
+ 命令å構æˆã®è¦å‰‡ã«ã¤ã„ã¦ã€å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªãŒ
+ |kanji|(16)・|kana|(17)・|hangul|(19)
+ ã®å’Œæ–‡æ–‡å­—ã¯ã€Œè‹±å­—ã€ã¨åŒã˜æ‰±ã„ã«ãªã‚Šã€
+ |cjk|(18)ã®å’Œæ–‡æ–‡å­—ã¯ã€Œè‹±å­—以外ã®æ¬§æ–‡æ–‡å­—ã€ã¨åŒã˜æ‰±ã„ã«ãªã‚‹ã€‚
+\end{itemize}
+
+ãŸã ã—ã€{\upTeX}ã®ä»•æ§˜ã§ã¯ã€å’Œæ–‡æ–‡å­—カテゴリã®è¨­å®šã¯â€œæ–‡å­—å˜ä½â€ã§ã¯ãªã
+“Unicodeブロックå˜ä½â€ã§è¡Œã†ã‚ˆã†ã«ãªã£ã¦ã„る(一部例外ã‚り)。
+従ã£ã¦ã€ä¾‹ãˆã°ã€Œã‚¢ã€ï¼ˆU+30A2)ã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã‚’変更ã—ãŸã„ã¨ã„ã†å ´åˆã«ã¯ã€
+U+30A2ãŒå±žã™ã‚‹â€œKatakanaâ€ï¼ˆU+30A0~30FF)ã®ãƒ–ロックã«ã¤ã„ã¦
+和文カテゴリã®è¨­å®šã‚’è¡Œã†ã“ã¨ã«ãªã‚‹ã€‚
+
+本パッケージãŒæä¾›ã™ã‚‹å‘½ä»¤ã‚’利用ã™ã‚‹ã¨
+「“Katakanaâ€ã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã‚’|cjk|(18)ã«å¤‰æ›´ã™ã‚‹ã€
+ã¨ã„ã†è¨­å®šã¯
+\begin{quote}\small
+\begin{verbatim}
+\cjkcategory{kana}{cjk}
+\end{verbatim}
+\end{quote}
+ã§å®Ÿç¾ã§ãる。
+
+%-------------------
+\subsection{和文カテゴリモード}
+\label{ssec:cjkcategory-mode}
+
+\strong{和文カテゴリモード}ã¯
+å…¨ã¦ã®ãƒ–ロックã«å¯¾ã™ã‚‹å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã®ä¸€æ‹¬è¨­å®š
+(プリセット設定)ã®ã“ã¨ã§ã‚ã‚‹
+(TODO:ã¡ã‚ƒã‚“ã¨èª¬æ˜Žã™ã‚‹ï¼‰ã€‚
+
+モード設定ã«ã¯ä»¥ä¸‹ã®ã‚‚ã®ãŒã‚る。
+何れã®ãƒ¢ãƒ¼ãƒ‰ã‚‚ã€ã€ŒCJK中核セットã€ï¼ˆå¾Œè¿°ï¼‰ã®ãƒ–ロック群ã®
+設定ã¯å…±é€šã§ã€
+ãã®ä»–ã®ãƒ–ロックãŒæ¬§æ–‡æ‰±ã„(|noncjk|)ã§ã‚ã‚‹ã‹
+和文扱ã„(|cjk|%
+\footnote{å…¨ã¦ã®ãƒ¢ãƒ¼ãƒ‰è¨­å®šã«ãŠã„ã¦ã€ã€ŒCJK中核セットã€\strong{以外}ã®
+ ブロックã®ã‚«ãƒ†ã‚´ãƒªã¯å¿…ãš|noncjk|ã‹|cjk|ã®ä½•ã‚Œã‹ã«ãªã‚‹ã€‚}%
+)ã§ã‚ã‚‹ã‹ãŒç•°ãªã‚‹ã€‚
+\begin{itemize}
+\item |forcecjk|\Means
+ å…¨ã¦ã®ãƒ–ロックを和文扱ã„
+ (|noncjk|以外)ã¨ã™ã‚‹ã€‚
+ 和文フォントã®ä¸­ã®Unicode値ã®å‰²å½“ãŒã‚ã‚‹å…¨ã¦ã®æ–‡å­—ã‚’
+ 和文文字ã¨ã—ã¦ç›´æŽ¥ç”¨ã„ã‚‹ã“ã¨ãŒã§ãる。
+\item |default|\Means
+ ç¾åœ¨ã®ãƒ¢ãƒ¼ãƒ‰CCVã«å¯¾å¿œã™ã‚‹{\upTeX}ã®ç‰ˆ
+ (例ãˆã°ãƒ¢ãƒ¼ãƒ‰CCVãŒ3ãªã‚‰ã°v1.23)
+ ã«ãŠã‘る既定設定ã¨ä¸€è‡´ã•ã›ã‚‹ã€‚
+ \Note モードCCVãŒ2以下ã®å ´åˆã¯|forcecjk|ã¨åŒä¸€ã®è¨­å®šã«ãªã‚‹ã€‚
+\item |prefercjk|\Means
+ 和文扱ã„ã®ãƒ–ロックã¨ã—ã¦ã€ŒCJK中核セットã€ã®ä»–ã«
+ 「Adobeã®å®šã‚ã‚‹CJK文字集åˆ
+ \footnote{Adobe-Japan1ã€Adobe-GB1ã€Adobe-CNS1ã€Adobe-Korea1ã®4ã¤ã€‚}%
+ ã®ä½•ã‚Œã‹ã¨å…±é€šéƒ¨åˆ†ã‚’ã‚‚ã¤æ–‡å­—ブロックã€ã‚’加ãˆã¦ã€
+ 残りを欧文扱ã„ã«è¨­å®šã™ã‚‹ã€‚
+\item |prefercjkvar|\Means\hspace{-.25em}%
+ |prefercjk|ã‹ã‚‰ã‚®ãƒªã‚·ãƒ£ãƒ»ã‚­ãƒªãƒ«æ–‡å­—ã®
+ ブロックを欧文扱ã„ã«å¤‰æ›´ã—ãŸã‚‚ã®ã€‚
+\item |japanese|\Means
+ 和文扱ã„ã®ãƒ–ロックã¨ã—ã¦ã€ŒCJK中核セットã€ã®ä»–ã«
+ 「Adobe-Japan1ã®å…¨è§’å¹…ã®ã‚°ãƒªãƒ•
+ ã®ä½•ã‚Œã‹ã¨å…±é€šéƒ¨åˆ†ã‚’ã‚‚ã¤æ–‡å­—ブロックã€ã‚’加ãˆã¦ã€
+ 残りを欧文扱ã„ã«è¨­å®šã™ã‚‹ã€‚
+\item |japanesevar|\Means
+ |japanese|ã‹ã‚‰ã‚®ãƒªã‚·ãƒ£ãƒ»ã‚­ãƒªãƒ«æ–‡å­—ã®
+ ブロックを欧文扱ã„ã«å¤‰æ›´ã—ãŸã‚‚ã®ã€‚
+\item |prefernoncjk|\Means
+ 「CJK中核セットã€ã®ãƒ–ロックã®ã¿ã‚’和文扱ã„ã¨ã—ã€
+ 残りを欧文扱ã„ã«ã™ã‚‹ã€‚
+\end{itemize}
+
+\Note å„モードã§ã®å…·ä½“çš„ãªè¨­å®šå€¤ã«ã¤ã„ã¦ã¯\ref{sec:Values}節をå‚照。
+
+\paragraph{CJK中核セット}
+「CJK中核セットã€ã¯ä»¥ä¸‹ã®æ–‡å­—種ãŒå±žã™ã‚‹ãƒ–ロックã®ã‚»ãƒƒãƒˆã‚’指ã™ã€‚
+(括弧内ã¯ã€ãƒ¢ãƒ¼ãƒ‰è¨­å®šã«ãŠã„ã¦å½“該ã®ãƒ–ロックã«è¨­å®šã•ã‚Œã‚‹
+和文カテゴリã®å€¤ã€‚)
+ \begin{itemize}
+ \item 漢字・部首・注音字æ¯ï¼ˆ|kanji|)
+ \item ã²ã‚‰ãŒãªãƒ»ã‚«ã‚¿ã‚«ãƒŠï¼ˆ|kana|)
+ \item CJK記å·ã®ä¸€éƒ¨ãƒ»å…¨è§’åŠè§’互æ›å½¢ãƒ»å½æ–‡å­—
+ ・西å¤æ–‡å­—・女書文字・契丹文字(|cjk|)
+ \Note モードCCVãŒ2以上ã®å ´åˆã€|cjk12|ã®å†åˆ†å‰²ã®|cjk1b|ã€
+ |cjk1c|ã¯|kana|ã«è¨­å®šã•ã‚Œã‚‹ã€‚
+ \item ãƒãƒ³ã‚°ãƒ«å®Œæˆå½¢ãƒ»ãƒãƒ³ã‚°ãƒ«å­—æ¯ï¼ˆ|hangul|)
+\end{itemize}
+
+%-------------------
+\subsection{和文トークン状態}
+\label{ssec:cjktoken}
+
+{\upTeX}ã«ã¯ã€å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªï¼ˆkcatcode)ã¨ã¯åˆ¥ã«ã€
+éžASCII文字全体ã®å’Œæ–‡ãƒ»æ¬§æ–‡æ‰±ã„ã®è¨­å®šã‚’一斉ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ãŸã‚ã®
+命令ãŒå­˜åœ¨ã™ã‚‹
+\footnote{ã“れらã®å‘½ä»¤ã¯æœ¬ãƒ‘ッケージãŒæä¾›ã™ã‚‹ã‚‚ã®ã§ã¯ãªã
+ {\upTeX}ã«å…ƒã‹ã‚‰å­˜åœ¨ã™ã‚‹ã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„。}。
+\begin{itemize}
+\item |\enablecjktoken|\Means
+ 和文・欧文扱ã„ã®è¨­å®šã‚’和文カテゴリã®è¨­å®šã«å¾“ã‚ã›ã‚‹ã€‚
+\item |\disablecjktoken|\Means
+ 和文カテゴリ設定ã«é–¢ã‚らãšéžASCII文字全体を欧文扱ã„ã«ã™ã‚‹ã€‚
+ \Note ã‚ãŸã‹ã‚‚全ブロックã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã‚’|noncjk|(15)ã«è¨­å®šã—ãŸã®ã¨
+ åŒã˜çŠ¶æ…‹ã«ãªã‚‹ã€‚
+\item |\forcecjktoken|\Means
+ 和文カテゴリ設定ã«é–¢ã‚らãšéžASCII文字全体を和文扱ã„ã«ã™ã‚‹ã€‚
+ \Note 和文カテゴリãŒ|noncjk|(15)ã§ã‚るブロックã¯
+ ã‚ãŸã‹ã‚‚ãã‚ŒãŒ|cjk|(18)ã§ã‚るよã†ã«å‹•ä½œã™ã‚‹ã€‚
+\end{itemize}
+
+ã“れらã®å‘½ä»¤ç¾¤ã«ã‚ˆã‚Šå¤‰æ›´ã•ã‚Œã‚‹ãƒ‘ラメタã®ã“ã¨ã‚’本パッケージã§ã¯
+「\strong{和文トークン状態}ã€ã¨å‘¼ã¶ã“ã¨ã«ã™ã‚‹
+\footnote{「和文トークン状態ã€ã‚’指ã™å…¬å¼ã®ç”¨èªžã¯å­˜åœ¨ã—ãªã„ã¨æ€ã‚れる。}。
+
+%===========================================================
\section{パッケージ読込}
\label{sec:Loading}
@@ -68,42 +237,65 @@
\item |ccv2|\Means
モードCCVã‚’2({\upTeX} v0.29~1.22ã¨äº’æ›ï¼‰ã¨ã™ã‚‹ã€‚
\item |ccv3|\Means
- モードCCVã‚’3({\upTeX} v1.23以é™ã¨äº’æ›ï¼‰ã¨ã™ã‚‹ã€‚
+ モードCCVã‚’3({\upTeX} v1.23ã¨äº’æ›ï¼‰ã¨ã™ã‚‹ã€‚
+ \item |ccv4|\Means
+ モードCCVã‚’4({\upTeX} v1.25以é™ã¨äº’æ›ï¼‰ã¨ã™ã‚‹ã€‚
\item |real|ã¾ãŸã¯|ccv+|\Means
- モードCCVをエンジンã®å®Ÿã®CCVã¨ä¸€è‡´ã•ã›ã‚‹ã€‚
+ モードCCVã‚’{\upTeX}ã®å®Ÿéš›ã®CCVã¨ä¸€è‡´ã•ã›ã‚‹ã€‚
\end{itemize}
-\item |\cjkcategorymode|\strong{命令ã§æœ‰åŠ¹ãªãƒ¢ãƒ¼ãƒ‰å€¤}\Means
- 和文カテゴリãŒãƒ¢ãƒ¼ãƒ‰ã«å¾“ã£ã¦è¨­å®šã•ã‚Œã‚‹ã€‚
- \Note モード値オプションãŒéžæŒ‡å®šã®å ´åˆã¯ã€ãƒ‘ッケージ読込時ã«
- 和文カテゴリãŒå¤‰æ›´ã•ã‚Œã‚‹ã“ã¨ã¯ãªã„。
+\item \strong{和文カテゴリモード値}\Means
+ |\cjkcategorymode|命令ã§æœ‰åŠ¹ãªãƒ¢ãƒ¼ãƒ‰å€¤ï¼ˆ|prefernoncjk|等)
+ をオプションã¨ã—ã¦æŒ‡å®šå¯èƒ½ã§ã€
+ ã“ã®å ´åˆã€å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªãŒãƒ¢ãƒ¼ãƒ‰ã«å¾“ã£ã¦è¨­å®šã•ã‚Œã‚‹ã€‚
+ \Note 和文カテゴリモード値オプションãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã„å ´åˆã¯ã€
+ パッケージ読込時ã«å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªãŒå¤‰æ›´ã•ã‚Œã‚‹ã“ã¨ã¯ãªã„。
\item |nomode|\Means
- モード値オプションã®åŠ¹æžœã‚’打ã¡æ¶ˆã™ã€‚
+ 和文カテゴリモード値オプションã®åŠ¹æžœã‚’打ã¡æ¶ˆã™ã€‚
\end{itemize}
%===========================================================
\section{機能}
\label{sec:Function}
+%-------------------
+\subsection{和文カテゴリ設定ã«é–¢é€£ã™ã‚‹æ©Ÿèƒ½}
+\label{ssec:cjkcategory-function}
+
\begin{itemize}
\item |\cjkcategory{|\Meta{ブロック}|,...}{|\Meta{カテゴリ}|}|\Means
- \Meta{ブロック}ã§è¡¨ã•ã‚Œã‚‹æ–‡å­—ブロック(複数指定ãŒå¯èƒ½ï¼‰ã®
+ \Meta{ブロック}ã§æŒ‡å®šã•ã‚Œã‚‹æ–‡å­—ブロック(複数指定ãŒå¯èƒ½ï¼‰ã®
和文カテゴリを\Meta{カテゴリ}ã«å¤‰æ›´ã™ã‚‹ã€‚
\Meta{ブロック}ã¯ä»¥ä¸‹ã®ä½•ã‚Œã‹ã®å½¢å¼ã§æŒ‡å®šã™ã‚‹ï¼š
\begin{itemize}
- \item ブロックID(後述)
- %\item ブロックå
+ \item ブロックID(\ref{sec:Blocks}節å‚照)%
+ \footnote{ブロックIDã«ã‚ˆã‚‹æŒ‡å®šã¯{\upTeX}ã®ç‰ˆã®å½±éŸ¿ã‚’å—ã‘ãªã„。
+ 例ãˆã°ã€{\upTeX}ã®ç‰ˆï¼ˆãŠã‚ˆã³ãƒ¢ãƒ¼ãƒ‰CCV指定)ãŒä½•ã§ã‚ã£ã¦ã‚‚ã€
+ |latn1|ã¯å¸¸ã«â€œLatin-1 Supplementâ€ã®ç¯„囲(U+0080~00FF)を指ã™ã€‚
+ 実CCVãŒ3以上ã®å ´åˆã«|latn1|ã®ã‚«ãƒ†ã‚´ãƒªè¨­å®šã‚’è¡Œã£ãŸå ´åˆã¯ã€
+ 実際ã«ã¯|latnx|ã¨|latny|ã®2ã¤ã®ãƒ–ロックã«å¯¾ã—ã¦è¨­å®šãŒè¡Œã‚れる。}
\item éžASCII文字1ã¤\Means
- ãã®æ–‡å­—ã®å±žã™ã‚‹ãƒ–ロックを指ã™ã€‚
- \Note 文字ã«ã‚ˆã‚‹æŒ‡å®šã¯ã€Œ{\upTeX}ã®ç‰ˆã«ã‚ˆã‚‹ãƒ–ロック分割ã®å·®ç•°ã€ã«
- 影響ã•ã‚Œã‚‹ã“ã¨ã«æ³¨æ„。
- %\item 整数値\Means
- % ãã®ç¬¦å·ä½ç½®ã®å±žã™ã‚‹ãƒ–ロックを指ã™ã€‚
+ 当該ã®æ–‡å­—ãŒå±žã™ã‚‹ãƒ–ロックを指ã™ã€‚
+ \Note 「文字ã®å±žã™ã‚‹ãƒ–ロックã€ã¯ã€ãƒ¢ãƒ¼ãƒ‰CCV設定ã¨ã¯ç„¡é–¢ä¿‚ã§ã‚ã‚Š
+ 常ã«{\upTeX}ã®å®Ÿéš›ã®ãƒ–ロック定義ã«å¾“ã†ã€‚
+ 従ã£ã¦ãã®å‹•ä½œã¯{\upTeX}ã®ç‰ˆã«ä¾å­˜ã™ã‚‹ã“ã¨ã«æ³¨æ„。
+ \item 符å·å€¤ï¼ˆæ•´æ•°å€¤ï¼‰\Means
+ 当該ã®ç¬¦å·å€¤ã®æ–‡å­—ãŒå±žã™ã‚‹ãƒ–ロックを指ã™ã€‚
+ 符å·å€¤ã¯ä»¥ä¸‹ã®å½¢å¼ã§æŒ‡å®šã§ãã‚‹\Means
+ \begin{itemize}
+ \item \Meta{16進表記}\Means 例ãˆã°|1F600|。
+ \item |"|\Meta{16進表記}\Means 例ãˆã°|"1F600|。
+ \Note 16進数字ã®|A|~|F|ã¯å¤§æ–‡å­—ã§æ›¸ã。
+ \item |+|\Meta{æ•´æ•°}\Means 例ãˆã°|+128512|ã¯10進表記ã§128512ã€
+ ã™ãªã‚ã¡U+1F600を表ã™ã€‚
+ \Note \Meta{æ•´æ•°}ã®éƒ¨åˆ†ã«ã¯ä¸€èˆ¬ã«ä»»æ„ã®
+ 「{\LaTeXTeX}ã§æ•´æ•°ã‚’表ã™ãƒ†ã‚­ã‚¹ãƒˆã€ãŒè¨˜è¿°ã§ãる。
+ 例ãˆã°|+\value{mycode}|ã®ã‚ˆã†ã«æ›¸ãã¨ã‚«ã‚¦ãƒ³ã‚¿å€¤ã‚’指定ã§ãる。
+ \end{itemize}
+ \Note å‰é …ã¨åŒæ§˜ã€å‹•ä½œãŒ{\upTeX}ã®ç‰ˆã«ä¾å­˜ã™ã‚‹ã“ã¨ã«æ³¨æ„ã‚’è¦ã™ã‚‹ã€‚
\end{itemize}
- \Meta{カテゴリ}ã¯ä»¥ä¸‹ã«ç¤ºã™ã€Œã‚«ãƒ†ã‚´ãƒªIDã€ã§æŒ‡å®šã™ã‚‹
- \footnote{括弧内ã®æ•´æ•°å€¤ã¯{\upTeX}ãŒå†…部ã§ç”¨ã„ã¦ã„ã‚‹
- 「カテゴリコード値ã€ã§ã‚ã‚Šã€ã€Œã‚«ãƒ†ã‚´ãƒªIDã€ã®ä»£ã‚ã‚Šã«
- ã“ã®å€¤ã‚’指定ã™ã‚‹ã“ã¨ã‚‚ã§ãる。}:
+ \Meta{カテゴリ}ã¯ã€Œã‚«ãƒ†ã‚´ãƒªIDã€ã¾ãŸã¯
+ 「カテゴリコードã€ï¼ˆæ‹¬å¼§å†…ã®æ•´æ•°å€¤ï¼‰ã§æŒ‡å®šã™ã‚‹ã€‚
\begin{itemize}
\item |noncjk|(15)\Means 欧文扱ã„
\item |kanji|ã¾ãŸã¯|han|(16)\Means 漢字扱ã„
@@ -113,61 +305,70 @@
\end{itemize}
和文カテゴリã®å¤‰æ›´ã¯å±€æ‰€çš„(グルーピングã«å¾“ã†ï¼‰ã§ã‚る。
+
\Note モードCCVã®æŒ‡å®šã¯|\cjkcategory|ã®å‹•ä½œã«ã¯å½±éŸ¿ã‚’与ãˆãªã„。
+ \Note “Basic Latinâ€ãƒ–ロック(|latn|)ã®ã‚«ãƒ†ã‚´ãƒªã¯å¸¸ã«|noncjk|ã§
+ ãªã‘ã‚Œã°ãªã‚‰ãšã€|noncjk|以外ã«å¤‰æ›´ã—よã†ã¨ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã€‚
+
\item |\cjkcategorymode{|\Meta{モード}|}|\Means
å…¨ã¦ã®ãƒ–ロックã®å’Œæ–‡ã‚«ãƒ†ã‚´ãƒªã®ä¸€æ‹¬è¨­å®šï¼ˆãƒ¢ãƒ¼ãƒ‰è¨­å®šï¼‰ã‚’è¡Œã†ã€‚
- モードã«ã¯ä»¥ä¸‹ã®ã‚‚ã®ãŒã‚る。
- 何れã®ã‚»ãƒƒãƒˆã‚‚ã€å¾Œè¿°ã™ã‚‹ã€ŒCJK中核セットã€ã®è¨­å®šã¯å…±é€šã§ã‚ã‚Šã€
- ãれ以外ã®ãƒ–ロックãŒæ¬§æ–‡æ‰±ã„(|noncjk|)ã§ã‚ã‚‹ã‹
- 和文扱ã„(|cjk|)ã§ã‚ã‚‹ã‹ãŒç•°ãªã‚‹ã€‚
+ 有効ãªãƒ¢ãƒ¼ãƒ‰è¨­å®šã®å€¤ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る。
+ \Note モード設定ã®è©³ç´°ã«ã¤ã„ã¦ã¯
+ \ref{ssec:cjkcategory-mode}節をå‚照。
\begin{itemize}
- \item |forcecjk|\Means
- ASCII文字ã®ã¿æ¬§æ–‡æ‰±ã„ã§ä»–ã®ãƒ–ロックã¯å…¨ã¦å’Œæ–‡æ‰±ã„
- (|noncjk|以外)ã¨ã™ã‚‹ã€‚
- 和文フォントã®ä¸­ã®Unicode値ã®å‰²å½“ãŒã‚ã‚‹å…¨ã¦ã®æ–‡å­—ã‚’
- 和文文字ã¨ã—ã¦ç›´æŽ¥ç”¨ã„ã‚‹ã“ã¨ãŒã§ãる。
- \item |default|\Means
- 指定ã®ãƒ¢ãƒ¼ãƒ‰CCVã«ãŠã‘る既定ã®è¨­å®šã¨ä¸€è‡´ã•ã›ã‚‹ã€‚
- \Note モードCCVãŒ2以下ã®å ´åˆã¯|forcecjk|ã¨åŒä¸€ã®è¨­å®šã«ãªã‚‹ã€‚
- %\Note モードCCVãŒã‚¨ãƒ³ã‚¸ãƒ³ã®å®Ÿã®CCVã¨ä¸€è‡´ã™ã‚‹å ´åˆã¯ã€
- % エンジンã®æ—¢å®šã®è¨­å®šã¨ä¸€è‡´ã™ã‚‹ã€‚
- \Note モードCCVãŒ3ã®å ´åˆã®\strong{仕様ã¯æœªç¢ºå®š}ã§ã‚る。
- ç¾çŠ¶ã®å‹•ä½œã¯ã€Œv1.23ã®æ—¢å®šè¨­å®šã¨ä¸€è‡´ã•ã›ã‚‹ã€ã¨ãªã£ã¦ã„ã‚‹ãŒã€
- ã“ã®å‹•ä½œã¯\strong{å°†æ¥å¤‰æ›´ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹}。
- \item |prefercjk|\Means
- 和文扱ã„ã®ãƒ–ロックã¨ã—ã¦ã€ã€ŒCJK中核セットã€ã®ã‚‚ã®ã«åŠ ãˆã¦ã€
- 「Adobeã®å®šã‚ã‚‹CJK文字集åˆ
- \footnote{Adobe-Japan1ã€Adobe-GB1ã€Adobe-CNS1ã€Adobe-Korea1。}%
- ã®ä½•ã‚Œã‹ã¨å…±é€šéƒ¨åˆ†ã‚’ã‚‚ã¤æ–‡å­—ブロックã€ã‚’加ãˆã¦ã€
- 残りを欧文扱ã„ã«è¨­å®šã™ã‚‹ã€‚
- \item |prefercjkvar|\Means
- |prefercjk|ã«ãŠã„ã¦ã€ã‚®ãƒªã‚·ãƒ£ãƒ»ã‚­ãƒªãƒ«æ–‡å­—ã®
- ブロックを欧文扱ã„ã«å¤‰æ›´ã—ãŸã‚‚ã®ã€‚
- \item |japanese|\Means
- 和文扱ã„ã®ãƒ–ロックã¨ã—ã¦ã€ã€ŒCJK中核セットã€ã®ã‚‚ã®ã«åŠ ãˆã¦ã€
- 「Adobe-Japan1ã®å…¨è§’å¹…ã®ã‚°ãƒªãƒ•
- ã®ä½•ã‚Œã‹ã¨å…±é€šéƒ¨åˆ†ã‚’ã‚‚ã¤æ–‡å­—ブロックã€ã‚’加ãˆã¦ã€
- 残りを欧文扱ã„ã«è¨­å®šã™ã‚‹ã€‚
- \item |japanesevar|\Means
- |japanese|ã«ãŠã„ã¦ã€ã‚®ãƒªã‚·ãƒ£ãƒ»ã‚­ãƒªãƒ«æ–‡å­—ã®
- ブロックを欧文扱ã„ã«å¤‰æ›´ã—ãŸã‚‚ã®ã€‚
- \item |prefernoncjk|\Means
- 「CJK中核セットã€ã®ãƒ–ロックã®ã¿ã‚’和文扱ã„ã¨ã—ã€
- 残りを欧文扱ã„ã«ã™ã‚‹ã€‚
+ \item |forcecjk|
+ \item |default|
+ \item |prefercjk|
+ \item |prefercjkvar|
+ \item |japanese|
+ \item |japanesevar|
+ \item |prefernoncjk|
\end{itemize}
- ã“ã“ã§ã€ŒCJK中核セットã€ã®å†…容ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã‚る。
- \begin{itemize}
- \item 漢字・部首・注音字æ¯\Means |kanji|ã«è¨­å®šã€‚
- \item ã²ã‚‰ãŒãªãƒ»ã‚«ã‚¿ã‚«ãƒŠ\Means |kana|ã«è¨­å®šã€‚
- \item CJK記å·ã®ä¸€éƒ¨ãƒ»å…¨è§’åŠè§’互æ›å½¢ãƒ»å½æ–‡å­—
- ・西å¤æ–‡å­—・女書文字・契丹文字\Means |cjk|ã«è¨­å®šã€‚
- \Note モードCCVãŒ2以上ã®å ´åˆã€|cjk12|ã®å†åˆ†å‰²ã®|cjk1b|ã€
- |cjk1c|ã¯|kana|ã«è¨­å®šã•ã‚Œã‚‹ã€‚
- \item ãƒãƒ³ã‚°ãƒ«å®Œæˆå½¢ãƒ»ãƒãƒ³ã‚°ãƒ«å­—æ¯\Means |hangul|ã«è¨­å®šã€‚
+\end{itemize}
+
+%-------------------
+\subsection{和文トークン状態ã«é–¢ã™ã‚‹æ©Ÿèƒ½}
+\label{ssec:cjktoken-function}
+
+\Note 「和文トークン状態ã€ã«ã¤ã„ã¦ã¯\ref{ssec:cjktoken}節をå‚照。
+
+\begin{itemize}
+
+\item |\getcjktokenmode|\Means
+ ç¾åœ¨ã®å’Œæ–‡ãƒˆãƒ¼ã‚¯ãƒ³çŠ¶æ…‹ã®å–å¾—ã—ã¦ã€
+ ãれを表ã™æ•´æ•°å€¤ã‚’|\thecjktokenmode|ã«è¨­å®šã™ã‚‹ã€‚
+ \begin{itemize}
+ \item 0\Means |\disablecjktoken|ã®çŠ¶æ…‹ã€‚
+ \item 1\Means |\enablecjktoken|ã®çŠ¶æ…‹ã€‚
+ \item 2\Means |\forcecjktoken|ã®çŠ¶æ…‹ã€‚
+ \item 255\Means 状態å–å¾—ã«å¤±æ•—ã—ãŸ%
+ \footnote{{\TeX} Live 2022以é™ã§{\eTeX}拡張無ã—ã®{\upTeX}エンジンã®
+ å ´åˆã¯å–å¾—ãŒã§ããªã„。
+ ã—ã‹ã—ã€2014年以é™ã®{\LaTeX}カーãƒãƒ«ã¯{\eTeX}拡張を必須ã¨ã—ã¦ã„ã‚‹
+ ã®ã§ã€ãã®ã‚ˆã†ãªã‚¨ãƒ³ã‚¸ãƒ³ã®ä¸Šã§{\LaTeX}ãŒå‹•ä½œã—ã¦ã„ã‚‹å¯èƒ½æ€§ã¯
+ ã»ã¼è€ƒãˆã‚‰ã‚Œãªã„。
+ 従ã£ã¦ã€ç¾å®Ÿçš„ã«ã¯255ãŒè¿”ã‚‹ã“ã¨ã¯ãªã„ã¨æ€ã£ã¦ã‚ˆã„。}。
\end{itemize}
- \Note å„モードã§ã®å…·ä½“çš„ãªè¨­å®šå€¤ã«ã¤ã„ã¦ã¯\ref{sec:Values}節をå‚照。
+
+\item |\setcjktokenmode{|\Meta{整数値}|}|\Means
+ |\getcjktokenmode|ã®è¦å‰‡ã®æ•´æ•°å€¤ã‚’用ã„ã¦å’Œæ–‡ãƒˆãƒ¼ã‚¯ãƒ³çŠ¶æ…‹ã‚’設定ã™ã‚‹ã€‚
+
+\item |\withcjktokendisabled{|\Meta{コード}|}|\Means
+ 一時的ã«|\disablecjktoken|ã«å¤‰æ›´ã—ãŸçŠ¶æ…‹ã§ã€
+ \Meta{コード}を実行ã™ã‚‹ã€‚
+\item |\withcjktokenenabled{|\Meta{コード}|}|\Means
+ 一時的ã«|\enablecjktoken|ã«å¤‰æ›´ã—ãŸçŠ¶æ…‹ã§ã€
+ \Meta{コード}を実行ã™ã‚‹ã€‚
+\item |\withcjktokenforced{|\Meta{コード}|}|\Means
+ 一時的ã«|\forcecjktoken|ã«å¤‰æ›´ã—ãŸçŠ¶æ…‹ã§ã€
+ \Meta{コード}を実行ã™ã‚‹ã€‚
+\Note 以上3ã¤ã®å‘½ä»¤ã¯ã©ã‚Œã‚‚ã€
+「和文トークン状態を設定ã—ã¦\Meta{コード}を実行ã—ãŸå¾Œ
+和文トークン状態をå†è¨­å®šã™ã‚‹ã€
+ã¨ã„ã†å‹•ä½œã‚’è¡Œã†ã€‚
+ãã®ãŸã‚æ–°ãŸã«å±€æ‰€åŒ–グループã«å…¥ã‚‹ã“ã¨ã¯ãªã„。
\end{itemize}
@@ -176,9 +377,11 @@
\label{sec:CCV}
\noindent \strong{注æ„}\Means
-ã“ã®ç¯€ã«è¿°ã¹ã‚‰ã‚Œã¦ã„る説明ã¯ç¾çŠ¶ã®ä»•æ§˜ã¨é£Ÿã„é•ã£ã¦ã„る部分ãŒã‚ã‚Šã€
+\ref{sec:CCV}節ãŠã‚ˆã³\ref{sec:Blocks}ã«è¿°ã¹ã‚‰ã‚Œã¦ã„ã‚‹
+説明ã¯ç¾çŠ¶ã®ä»•æ§˜ã¨é£Ÿã„é•ã£ã¦ã„る部分ãŒã‚ã‚Šã€
大幅ãªæ”¹è¨‚ãŒå¿…è¦ãªçŠ¶æ…‹ã§ã‚る。
-ç¾çŠ¶ã®ä»•æ§˜ã§ã¯ã€ãƒ¢ãƒ¼ãƒ‰CCVã®å½±éŸ¿ã‚’å—ã‘ã‚‹ã®ã¯ãƒ¢ãƒ¼ãƒ‰è¨­å®šã®å®šç¾©ã®ã¿ã§ã‚ã‚Šã€
+å°‘ãªãã¨ã‚‚1.1版以é™ã®ä»•æ§˜ã§ã¯ã€
+モードCCVã®å½±éŸ¿ã‚’å—ã‘ã‚‹ã®ã¯ãƒ¢ãƒ¼ãƒ‰è¨­å®šã®å®šç¾©ã®ã¿ã§ã‚ã‚Šã€
ブロック分割ã¯å¸¸ã«å®Ÿéš›ã®ã‚¨ãƒ³ã‚¸ãƒ³ã®ã‚‚ã®ã«ä¸€è‡´ã•ã›ã¦ã„る。
\bigskip
@@ -197,11 +400,16 @@
\item 文字ブロックã®åˆ†å‰²ã®é•ã„ã‚’
「\strong{文字分類ãƒãƒ¼ã‚¸ãƒ§ãƒ³}(CCVï¼›Character Category Version)ã€
ã¨å‘¼ã¶ã“ã¨ã«ã™ã‚‹ã€‚
- ç¾çŠ¶ã§ã¯æ¬¡ã®ã‚‚ã®ãŒå­˜åœ¨ã™ã‚‹ã€‚
+ ç¾çŠ¶ã§ã¯æ¬¡ã®ã‚‚ã®ãŒå­˜åœ¨ã™ã‚‹
+ \footnote{{\upTeX}ã®v1.24ã«ã¯æ–‡å­—ブロック分割ã«é–¢ã—ã¦ãƒã‚°ãŒå­˜åœ¨ã™ã‚‹ã®ã§ã€
+ CCVã®å®šç¾©ã‹ã‚‰ã¯é™¤å¤–ã™ã‚‹ã€‚
+ ãªãŠã€å®Ÿéš›ã«v1.24ã®{\upTeX}ã§æœ¬ãƒ‘ッケージãŒèª­ã¿è¾¼ã¾ã‚ŒãŸå ´åˆã¯ã€
+ 実CCVã¯1ã¨è¦‹ãªã•ã‚Œã‚‹ï¼ˆã¯ãšã§ã‚る)。}。
\begin{itemize}
\item ãƒãƒ¼ã‚¸ãƒ§ãƒ³1: {\upTeX} v0.11~0.28ã¨äº’æ›
\item ãƒãƒ¼ã‚¸ãƒ§ãƒ³2: {\upTeX} v0.29~1.22ã¨äº’æ›
- \item ãƒãƒ¼ã‚¸ãƒ§ãƒ³3: {\upTeX} v1.23以é™ã¨äº’æ›
+ \item ãƒãƒ¼ã‚¸ãƒ§ãƒ³3: {\upTeX} v1.23ã¨äº’æ›
+ \item ãƒãƒ¼ã‚¸ãƒ§ãƒ³4: {\upTeX} v1.25以é™ã¨äº’æ›
\end{itemize}
\item \Pkg{pxcjkcat}ã®èª­è¾¼æ™‚ã«ã€ãã®ã‚ªãƒ—ションã«ãŠã„ã¦
@@ -351,7 +559,7 @@
\xI{lepc} \xV{2} \xR {1C00} {1C4F} \xN{Lepcha}\par
\xI{olck} \xV{2} \xR {1C50} {1C7F} \xN{Ol Chiki}\par
\xI{cyrlC} \xV{2} \xR {1C80} {1C8F} \xN{Cyrillic Extended-C}\par
-\xI{geor2} \xV{3} \xR {1C90} {1CBF} \xN{Georgian Extended}\par
+\xI{geor2} \xV{4} \xR {1C90} {1CBF} \xN{Georgian Extended}\par
\xI{sund1} \xV{2} \xR {1CC0} {1CCF} \xN{Sundanese Supplement}\par
\xI{sym38} \xV{2} \xR {1CD0} {1CFF} \xN{Vedic Extensions}\par
\xI{latn4} \xV{1} \xR {1D00} {1D7F} \xN{Phonetic Extensions}\par
@@ -491,13 +699,13 @@
\xI{phlp} \xV{2} \xR {10B80} {10BAF} \xN{Psalter Pahlavi}\par
\xI{orkh} \xV{2} \xR {10C00} {10C4F} \xN{Old Turkic}\par
\xI{hung} \xV{2} \xR {10C80} {10CFF} \xN{Old Hungarian}\par
-\xI{rohg} \xV{3} \xR {10D00} {10D3F} \xN{Hanifi Rohingya}\par
+\xI{rohg} \xV{4} \xR {10D00} {10D3F} \xN{Hanifi Rohingya}\par
\xI{sym42} \xV{2} \xR {10E60} {10E7F} \xN{Rumi Numeral Symbols}\par
-\xI{yezi} \xV{3} \xR {10E80} {10EBF} \xN{Yezidi}\par
-\xI{sogo} \xV{3} \xR {10F00} {10F2F} \xN{Old Sogdian}\par
-\xI{sogd} \xV{3} \xR {10F30} {10F6F} \xN{Sogdian}\par
-\xI{chrs} \xV{3} \xR {10FB0} {10FDF} \xN{Chorasmian}\par
-\xI{elym} \xV{3} \xR {10FE0} {10FFF} \xN{Elymaic}\par
+\xI{yezi} \xV{4} \xR {10E80} {10EBF} \xN{Yezidi}\par
+\xI{sogo} \xV{4} \xR {10F00} {10F2F} \xN{Old Sogdian}\par
+\xI{sogd} \xV{4} \xR {10F30} {10F6F} \xN{Sogdian}\par
+\xI{chrs} \xV{4} \xR {10FB0} {10FDF} \xN{Chorasmian}\par
+\xI{elym} \xV{4} \xR {10FE0} {10FFF} \xN{Elymaic}\par
\xI{brah} \xV{2} \xR {11000} {1107F} \xN{Brahmi}\par
\xI{kthi} \xV{2} \xR {11080} {110CF} \xN{Kaithi}\par
\xI{sora} \xV{2} \xR {110D0} {110FF} \xN{Sora Sompeng}\par
@@ -516,58 +724,58 @@
\xI{mong1} \xV{2} \xR {11660} {1167F} \xN{Mongolian Supplement}\par
\xI{takr} \xV{2} \xR {11680} {116CF} \xN{Takri}\par
\xI{ahom} \xV{2} \xR {11700} {1174F} \xN{Ahom}\par
-\xI{dogr} \xV{3} \xR {11800} {1184F} \xN{Dogra}\par
+\xI{dogr} \xV{4} \xR {11800} {1184F} \xN{Dogra}\par
\xI{wara} \xV{2} \xR {118A0} {118FF} \xN{Warang Citi}\par
-\xI{diak} \xV{3} \xR {11900} {1195F} \xN{Dives Akuru}\par
-\xI{nand} \xV{3} \xR {119A0} {119FF} \xN{Nandinagari}\par
+\xI{diak} \xV{4} \xR {11900} {1195F} \xN{Dives Akuru}\par
+\xI{nand} \xV{4} \xR {119A0} {119FF} \xN{Nandinagari}\par
\xI{zanb} \xV{3} \xR {11A00} {11A4F} \xN{Zanabazar Square}\par
\xI{soyo} \xV{3} \xR {11A50} {11AAF} \xN{Soyombo}\par
\xI{pauc} \xV{2} \xR {11AC0} {11AFF} \xN{Pau Cin Hau}\par
\xI{bhks} \xV{2} \xR {11C00} {11C6F} \xN{Bhaiksuki}\par
\xI{marc} \xV{2} \xR {11C70} {11CBF} \xN{Marchen}\par
\xI{gonm} \xV{3} \xR {11D00} {11D5F} \xN{Masaram Gondi}\par
-\xI{gong} \xV{3} \xR {11D60} {11DAF} \xN{Gunjala Gondi}\par
-\xI{maka} \xV{3} \xR {11EE0} {11EFF} \xN{Makasar}\par
-\xI{lisu1} \xV{3} \xR {11FB0} {11FBF} \xN{Lisu Supplement}\par
-\xI{taml1} \xV{3} \xR {11FC0} {11FFF} \xN{Tamil Supplement}\par
+\xI{gong} \xV{4} \xR {11D60} {11DAF} \xN{Gunjala Gondi}\par
+\xI{maka} \xV{4} \xR {11EE0} {11EFF} \xN{Makasar}\par
+\xI{lisu1} \xV{4} \xR {11FB0} {11FBF} \xN{Lisu Supplement}\par
+\xI{taml1} \xV{4} \xR {11FC0} {11FFF} \xN{Tamil Supplement}\par
\xI{xsux} \xV{1} \xR {12000} {123FF} \xN{Cuneiform}\par
\xI{xsux1} \xV{1} \xR {12400} {1247F} \xN{Cuneiform Numbers and Punctuation}\par
\xI{xsux2} \xV{2} \xR {12480} {1254F} \xN{Early Dynastic Cuneiform}\par
\xI{egyp} \xV{2} \xR {13000} {1342F} \xN{Egyptian Hieroglyphs}\par
-\xI{egyp1} \xV{3} \xR {13430} {1343F} \xN{Egyptian Hieroglyph Format Controls}\par
+\xI{egyp1} \xV{4} \xR {13430} {1343F} \xN{Egyptian Hieroglyph Format Controls}\par
\xI{hluw} \xV{2} \xR {14400} {1467F} \xN{Anatolian Hieroglyphs}\par
\xI{bamu1} \xV{2} \xR {16800} {16A3F} \xN{Bamum Supplement}\par
\xI{mroo} \xV{2} \xR {16A40} {16A6F} \xN{Mro}\par
\xI{bass} \xV{2} \xR {16AD0} {16AFF} \xN{Bassa Vah}\par
\xI{hmng} \xV{2} \xR {16B00} {16B8F} \xN{Pahawh Hmong}\par
-\xI{medf} \xV{3} \xR {16E40} {16E9F} \xN{Medefaidrin}\par
+\xI{medf} \xV{4} \xR {16E40} {16E9F} \xN{Medefaidrin}\par
\xI{plrd} \xV{2} \xR {16F00} {16F9F} \xN{Miao}\par
\xI{cjk14} \xV{2} \xR {16FE0} {16FFF} \xN{Ideographic Symbols and Punctuation}\par
\xI{tang} \xV{2} \xR {17000} {187FF} \xN{Tangut}\par
\xI{tang1} \xV{2} \xR {18800} {18AFF} \xN{Tangut Components}\par
-\xI{kits} \xV{3} \xR {18B00} {18CFF} \xN{Khitan Small Script}\par
-\xI{tang2} \xV{3} \xR {18D00} {18D7F} \xN{Tangut Supplement}\par
+\xI{kits} \xV{4} \xR {18B00} {18CFF} \xN{Khitan Small Script}\par
+\xI{tang2} \xV{4} \xR {18D00} {18D7F} \xN{Tangut Supplement}\par
\xI{kana2} \xV{2} \xR {1B000} {1B0FF} \xN{Kana Supplement}\par
\xI{kanaA} \xV{3} \xR {1B100} {1B12F} \xN{Kana Extended-A}\par
-\xI{kana3} \xV{3} \xR {1B130} {1B16F} \xN{Small Kana Extension}\par
+\xI{kana3} \xV{4} \xR {1B130} {1B16F} \xN{Small Kana Extension}\par
\xI{nshu} \xV{3} \xR {1B170} {1B2FF} \xN{Nushu}\par
\xI{dupl} \xV{2} \xR {1BC00} {1BC9F} \xN{Duployan}\par
\xI{sym53} \xV{2} \xR {1BCA0} {1BCAF} \xN{Shorthand Format Controls}\par
\xI{sym32} \xV{1} \xR {1D000} {1D0FF} \xN{Byzantine Musical Symbols}\par
\xI{sym33} \xV{1} \xR {1D100} {1D1FF} \xN{Musical Symbols}\par
\xI{sym34} \xV{1} \xR {1D200} {1D24F} \xN{Ancient Greek Musical Notation}\par
-\xI{sym58} \xV{3} \xR {1D2E0} {1D2FF} \xN{Mayan Numerals}\par
+\xI{sym58} \xV{4} \xR {1D2E0} {1D2FF} \xN{Mayan Numerals}\par
\xI{sym35} \xV{1} \xR {1D300} {1D35F} \xN{Tai Xuan Jing Symbols}\par
\xI{sym36} \xV{1} \xR {1D360} {1D37F} \xN{Counting Rod Numerals}\par
\xI{sym37} \xV{1} \xR {1D400} {1D7FF} \xN{Mathematical Alphanumeric Symbols}\par
\xI{sgnw} \xV{2} \xR {1D800} {1DAAF} \xN{Sutton SignWriting}\par
\xI{glag1} \xV{2} \xR {1E000} {1E02F} \xN{Glagolitic Supplement}\par
-\xI{hmnp} \xV{3} \xR {1E100} {1E14F} \xN{Nyiakeng Puachue Hmong}\par
-\xI{wcho} \xV{3} \xR {1E2C0} {1E2FF} \xN{Wancho}\par
+\xI{hmnp} \xV{4} \xR {1E100} {1E14F} \xN{Nyiakeng Puachue Hmong}\par
+\xI{wcho} \xV{4} \xR {1E2C0} {1E2FF} \xN{Wancho}\par
\xI{mend} \xV{2} \xR {1E800} {1E8DF} \xN{Mende Kikakui}\par
\xI{adlm} \xV{2} \xR {1E900} {1E95F} \xN{Adlam}\par
-\xI{sym59} \xV{3} \xR {1EC70} {1ECBF} \xN{Indic Siyaq Numbers}\par
-\xI{sym61} \xV{3} \xR {1ED00} {1ED4F} \xN{Ottoman Siyaq Numbers}\par
+\xI{sym59} \xV{4} \xR {1EC70} {1ECBF} \xN{Indic Siyaq Numbers}\par
+\xI{sym61} \xV{4} \xR {1ED00} {1ED4F} \xN{Ottoman Siyaq Numbers}\par
\xI{sym51} \xV{2} \xR {1EE00} {1EEFF} \xN{Arabic Mathematical Alphabetic Symbols}\par
\xI{sym43} \xV{2} \xR {1F000} {1F02F} \xN{Mahjong Tiles}\par
\xI{sym44} \xV{2} \xR {1F030} {1F09F} \xN{Domino Tiles}\par
@@ -582,16 +790,16 @@
\xI{sym55} \xV{2} \xR {1F780} {1F7FF} \xN{Geometric Shapes Extended}\par
\xI{sym56} \xV{2} \xR {1F800} {1F8FF} \xN{Supplemental Arrows-C}\par
\xI{sym57} \xV{2} \xR {1F900} {1F9FF} \xN{Supplemental Symbols and Pictographs}\par
-\xI{sym60} \xV{3} \xR {1FA00} {1FA6F} \xN{Chess Symbols}\par
-\xI{sym62} \xV{3} \xR {1FA70} {1FAFF} \xN{Symbols and Pictographs Extended-A}\par
-\xI{sym63} \xV{3} \xR {1FB00} {1FBFF} \xN{Symbols for Legacy Computing}\par
+\xI{sym60} \xV{4} \xR {1FA00} {1FA6F} \xN{Chess Symbols}\par
+\xI{sym62} \xV{4} \xR {1FA70} {1FAFF} \xN{Symbols and Pictographs Extended-A}\par
+\xI{sym63} \xV{4} \xR {1FB00} {1FBFF} \xN{Symbols for Legacy Computing}\par
\xI{haniB} \xV{1} \xR {20000} {2A6DF} \xN{CJK Unified Ideographs Extension B}\par
\xI{haniC} \xV{2} \xR {2A700} {2B73F} \xN{CJK Unified Ideographs Extension C}\par
\xI{haniD} \xV{2} \xR {2B740} {2B81F} \xN{CJK Unified Ideographs Extension D}\par
\xI{haniE} \xV{2} \xR {2B820} {2CEAF} \xN{CJK Unified Ideographs Extension E}\par
\xI{haniF} \xV{3} \xR {2CEB0} {2EBEF} \xN{CJK Unified Ideographs Extension F}\par
\xI{hani2} \xV{1} \xR {2F800} {2FA1F} \xN{CJK Compatibility Ideographs Supplement}\par
-\xI{haniG} \xV{3} \xR {30000} {3134F} \xN{CJK Unified Ideographs Extension G}\par
+\xI{haniG} \xV{4} \xR {30000} {3134F} \xN{CJK Unified Ideographs Extension G}\par
\xI{spc07} \xV{1} \xR {E0000} {E007F} \xN{Tags}\par
\xI{spc08} \xV{1} \xR {E0100} {E01EF} \xN{Variation Selectors Supplement}\par
\xI{spc09} \xV{1} \xR {F0000} {FFFFF} \xN{Supplementary Private Use Area-A}\par
diff --git a/macros/latex/required/amsmath/README.md b/macros/latex/required/amsmath/README.md
index f7c700994c..1bc1702484 100644
--- a/macros/latex/required/amsmath/README.md
+++ b/macros/latex/required/amsmath/README.md
@@ -1,7 +1,7 @@
The amsmath bundle for LaTeX
============================
-Release 2021-11-15
+Release 2022-06-01
Overview
--------
@@ -77,4 +77,5 @@ version 1.3c or later.
-----
<p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br />
-<p>Copyright (C) 2016-2021 The LaTeX Project and American Mathematical Society. <br />
+<p>Copyright (C) 2016-2022 The LaTeX Project and American Mathematical Society. <br />
+
diff --git a/macros/latex/required/amsmath/amsbsy.dtx b/macros/latex/required/amsmath/amsbsy.dtx
index 8557c6534a..d94bf9a72f 100644
--- a/macros/latex/required/amsmath/amsbsy.dtx
+++ b/macros/latex/required/amsmath/amsbsy.dtx
@@ -81,7 +81,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \[
% \pmb{\infty} = \boldsymbol{\infty} \quad ?
% \]
-% \StopEventually{}
+% \MaybeStop{}
%
% Standard package info.
% \begin{macrocode}
diff --git a/macros/latex/required/amsmath/amsbsy.ins b/macros/latex/required/amsmath/amsbsy.ins
index 9194608622..c35a72dad6 100644
--- a/macros/latex/required/amsmath/amsbsy.ins
+++ b/macros/latex/required/amsmath/amsbsy.ins
@@ -26,7 +26,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsbsy.pdf b/macros/latex/required/amsmath/amsbsy.pdf
index 50882b2530..e85825b6f9 100644
--- a/macros/latex/required/amsmath/amsbsy.pdf
+++ b/macros/latex/required/amsmath/amsbsy.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amscd.dtx b/macros/latex/required/amsmath/amscd.dtx
index f3528dd7c1..1ed5be6b67 100644
--- a/macros/latex/required/amsmath/amscd.dtx
+++ b/macros/latex/required/amsmath/amscd.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -97,7 +97,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{CD}\end{equation}
% \end{verbatim}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% Standard package info.
% \begin{macrocode}
diff --git a/macros/latex/required/amsmath/amscd.ins b/macros/latex/required/amsmath/amscd.ins
index 30b2f28177..5ecf051583 100644
--- a/macros/latex/required/amsmath/amscd.ins
+++ b/macros/latex/required/amsmath/amscd.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amscd.pdf b/macros/latex/required/amsmath/amscd.pdf
index f1182d6c20..c0ecd2961b 100644
--- a/macros/latex/required/amsmath/amscd.pdf
+++ b/macros/latex/required/amsmath/amscd.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsgen.dtx b/macros/latex/required/amsmath/amsgen.dtx
index 10ac58b18e..0493940071 100644
--- a/macros/latex/required/amsmath/amsgen.dtx
+++ b/macros/latex/required/amsmath/amsgen.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -49,7 +49,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% distribution. Some of these might eventually make it into the \latex/
% kernel.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% Standard package info.
% Using \cs{ProvidesFile} rather than \cs{ProvidesPackage} because
diff --git a/macros/latex/required/amsmath/amsgen.ins b/macros/latex/required/amsmath/amsgen.ins
index aacb6e0c39..7d845e61cf 100644
--- a/macros/latex/required/amsmath/amsgen.ins
+++ b/macros/latex/required/amsmath/amsgen.ins
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsgen.pdf b/macros/latex/required/amsmath/amsgen.pdf
index 7f7d05c81f..014feb8d2a 100644
--- a/macros/latex/required/amsmath/amsgen.pdf
+++ b/macros/latex/required/amsmath/amsgen.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsldoc.pdf b/macros/latex/required/amsmath/amsldoc.pdf
index b3cbac1118..dd7061eac5 100644
--- a/macros/latex/required/amsmath/amsldoc.pdf
+++ b/macros/latex/required/amsmath/amsldoc.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsldoc.tex b/macros/latex/required/amsmath/amsldoc.tex
index 97294772e7..4a8230e39f 100644
--- a/macros/latex/required/amsmath/amsldoc.tex
+++ b/macros/latex/required/amsmath/amsldoc.tex
@@ -1,6 +1,6 @@
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsmath.dtx b/macros/latex/required/amsmath/amsmath.dtx
index a5cf333e79..34d17b65f0 100644
--- a/macros/latex/required/amsmath/amsmath.dtx
+++ b/macros/latex/required/amsmath/amsmath.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -68,7 +68,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% provided here is found in the AMSmath Users' Guide,
% \fn{amsldoc.tex}.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% Standard file identification.
% \begin{macrocode}
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2021/10/15 v2.17l AMS math features]
+\ProvidesPackage{amsmath}[2022/04/08 v2.17n AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -615,7 +615,8 @@ Foreign command \@backslashchar#1;\MessageBreak
% abbreviations for some commonly needed mathstyle overrides. To
% conserve csnames we avoid making \cn{dfrac} and \cn{tfrac} robust
% (\cn{genfrac} is itself robust).
-% \changes{v2.17i}{2020/09/23}{added \cs{Ustack} for luatex (moved patch from lualatex-math)}
+% \changes{v2.17i}{2020/09/23}{added \cs{Ustack} for luatex (moved patch from lualatex-math)}
+% \changes{v2.17n}{2022/04/08}{Make fraction commands robust (gh/123)}
% \begin{macrocode}
%
\ifx\directlua\@undefined
@@ -623,8 +624,8 @@ Foreign command \@backslashchar#1;\MessageBreak
\else
\DeclareRobustCommand{\frac}[2]{{\Ustack{\begingroup#1\endgroup\@@over#2}}}
\fi
-\newcommand{\dfrac}{\genfrac{}{}{}0}
-\newcommand{\tfrac}{\genfrac{}{}{}1}
+\DeclareRobustCommand{\dfrac}{\genfrac{}{}{}0}
+\DeclareRobustCommand{\tfrac}{\genfrac{}{}{}1}
% \end{macrocode}
% The \cn{binom} command for binomial notation works like \cn{frac}
% and has similar variants. Note that we do not use \cs{z@} in
@@ -632,10 +633,11 @@ Foreign command \@backslashchar#1;\MessageBreak
% like \cn{binom}, and so the \cs{z@} with the potentially
% problematic \qc{\@} character would become visible when writing one
% of those commands to a \fn{.toc} file.
+% \changes{v2.17n}{2022/04/08}{Make binom commands robust (gh/123)}
% \begin{macrocode}
\DeclareRobustCommand{\binom}{\genfrac()\z@{}}
-\newcommand{\dbinom}{\genfrac(){0pt}0}
-\newcommand{\tbinom}{\genfrac(){0pt}1}
+\DeclareRobustCommand{\dbinom}{\genfrac(){0pt}0}
+\DeclareRobustCommand{\tbinom}{\genfrac(){0pt}1}
% \end{macrocode}
%
% \begin{macro}{\genfrac}
@@ -938,8 +940,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% an equation or piece of an equation. (Not including the equation
% number.) This isn't trivial for end-users to do it properly
% with \cs{fbox} so we provide a command for them.
+% \changes{v2.17n}{2022/04/08}{Make \cs{boxed} command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
+\DeclareRobustCommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
% \end{macrocode}
% \end{macro}
%
@@ -980,8 +983,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% small space on the left, larger space on the right. The \qc{\:}
% character by itself is treated as a \cs{mathrel} i.e. large, equal
% spacing on both sides.
+% \changes{v2.17n}{2022/04/08}{Make \cs{colon} command robust (gh/123)}
% \begin{macrocode}
-\renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
+\DeclareRobustCommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
\mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
% \end{macrocode}
% \end{macro}
@@ -1386,10 +1390,10 @@ Foreign command \@backslashchar#1;\MessageBreak
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
%
-\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
-\ams@newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}}
-\ams@newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}}
-\newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}}
+\ams@newcommand{\iint}{\DOTSI\MultiIntegral{2}}
+\ams@newcommand{\iiint}{\DOTSI\MultiIntegral{3}}
+\ams@newcommand{\iiiint}{\DOTSI\MultiIntegral{4}}
+\newcommand{\idotsint}{\DOTSI\MultiIntegral{0}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1403,8 +1407,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% the left-hand space a bit to make the subscript visually centered.
%
% \verb'#1' is the multiplicity.
+% \changes{v2.17n}{2022/04/08}{Make \cs{MultiIntegral} command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\MultiIntegral}[1]{%
+\DeclareRobustCommand{\MultiIntegral}[1]{%
\edef\ints@c{\noexpand\intop
\ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi
\ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi
@@ -1582,11 +1587,12 @@ Foreign command \@backslashchar#1;\MessageBreak
% the \latex/ kernel; the macro |\n@space| is then superfluous (since
% it is only used once) and should be removed to avoid wasting hash
% table space unnecessarily.
+% \changes{v2.17n}{2022/04/08}{Make biggg commands robust (gh/123)}
% \begin{macrocode}
-\renewcommand{\big}{\bBigg@\@ne}
-\renewcommand{\Big}{\bBigg@{1.5}}
-\renewcommand{\bigg}{\bBigg@\tw@}
-\renewcommand{\Bigg}{\bBigg@{2.5}}
+\DeclareRobustCommand{\big}{\bBigg@\@ne}
+\DeclareRobustCommand{\Big}{\bBigg@{1.5}}
+\DeclareRobustCommand{\bigg}{\bBigg@\tw@}
+\DeclareRobustCommand{\Bigg}{\bBigg@{2.5}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1666,6 +1672,17 @@ Foreign command \@backslashchar#1;\MessageBreak
{\mathop{\kern\z@#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
\hbox{\,\normalfont....}\vss}}}}
% \end{macrocode}
+%
+% We make the commands robust only at the end of the preamble as
+% \pkg{amsmath} interacts with \pkg{stix} (which should also move
+% to robust commands).
+% \changes{v2.17n}{2022/04/08}{Make dddot commands robust (gh/123)}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \MakeRobust\dddot
+ \MakeRobust\ddddot
+ }
+% \end{macrocode}
% \end{macro}
% \end{macro}
%
@@ -2087,14 +2104,16 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macro}{\mod}
% The commands \cn{bmod}, \cn{pmod}, \cn{pod}, \cn{mod} aren't
% currently robust. [mjd, 1994/09/05]
+% Now they are
+% \changes{v2.17n}{2022/04/08}{Make mod commands robust (gh/123)}
% \begin{macrocode}
-\renewcommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin
+\DeclareRobustCommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin
{\operator@font mod}\penalty900
\mkern5mu\nonscript\mskip-\medmuskip}
-\newcommand{\pod}[1]{\allowbreak
+\DeclareRobustCommand{\pod}[1]{\allowbreak
\if@display\mkern18mu\else\mkern8mu\fi(#1)}
-\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
-\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
+\DeclareRobustCommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
+\DeclareRobustCommand{\mod}[1]{\allowbreak\if@display\mkern18mu
\else\mkern12mu\fi{\operator@font mod}\,\,#1}
% \end{macrocode}
% \end{macro}
@@ -2109,8 +2128,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% fraction rules to line up. The \cs{strut} keeps the numerator of
% a subsidiary cfrac from coming too close to the fraction rule above
% it.
+% \changes{v2.17n}{2022/04/08}{Make \cs{cfrac} command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
+\DeclareRobustCommand{\cfrac}[3][c]{{\displaystyle\frac{%
\strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
\kern-\nulldelimiterspace}
% \end{macrocode}
@@ -2123,13 +2143,15 @@ Foreign command \@backslashchar#1;\MessageBreak
% naturally accept limits. \cs{binrel@@} uses information collected
% by \cs{binrel@} to make the resulting construction be of type
% mathrel or mathbin if the base symbol is either of those types.
+% \changes{v2.17n}{2022/04/08}{Make \cs{overset}, \cs{underset} and
+% \cs{overunderset} commands robust (gh/123)}
% \begin{macrocode}
-\newcommand{\overset}[2]{\binrel@{#2}%
+\DeclareRobustCommand{\overset}[2]{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
% \end{macrocode}
%
% \begin{macrocode}
-\newcommand{\underset}[2]{\binrel@{#2}%
+\DeclareRobustCommand{\underset}[2]{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
% \end{macrocode}
% \end{macro}
@@ -2141,7 +2163,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% something that is sometimes needed.
% \changes{v2.17c}{2019/04/01}{New command \cs{overunderset}}
% \begin{macrocode}
-\newcommand{\overunderset}[3]{\binrel@{#3}%
+\DeclareRobustCommand{\overunderset}[3]{\binrel@{#3}%
\binrel@@{\mathop{\kern\z@#3}\limits^{#1}_{#2}}}
% \end{macrocode}
% \end{macro}
@@ -2157,8 +2179,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% have to read and measure the top and bottom limits and use
% mathchoice to always get the right mathstyle for each piece,
% etc., etc.
+% \changes{v2.17n}{2022/04/08}{Make \cs{sideset} command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\sideset}[3]{%
+\DeclareRobustCommand{\sideset}[3]{%
\@mathmeasure\z@\displaystyle{#3}%
% \end{macrocode}
% Use a global box assignment here since the depth override is
@@ -2182,9 +2205,10 @@ Foreign command \@backslashchar#1;\MessageBreak
% denoting the part of the formula to be smashed.
% \changes{v2.17b}{2018/12/01}{Start LR-mode for \cs{smash}
% if necessary (github/49)}
+% \changes{v2.17n}{2022/04/08}{Make \cs{smash} command robust (gh/123)}
% \begin{macrocode}
\ifx\leavevmode@ifvmode\@undefined
-\renewcommand{\smash}[1][tb]{%
+\DeclareRobustCommand{\smash}[1][tb]{%
\def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}%
\edef\finsm@sh{\csname mb@#1\endcsname\z@\z@\box\z@}%
\ifmmode \@xp\mathpalette\@xp\mathsm@sh
@@ -2192,7 +2216,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\fi
}
\else
-\renewcommand{\smash}[1][tb]{%
+\DeclareRobustCommand{\smash}[1][tb]{%
\def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}%
\edef\finsm@sh{\csname mb@#1\endcsname\z@\z@ \leavevmode@ifvmode\box\z@}%
\ifmmode \@xp\mathpalette\@xp\mathsm@sh
@@ -2240,9 +2264,10 @@ Foreign command \@backslashchar#1;\MessageBreak
%
% \begin{macro}{\relbar}
% \begin{macro}{\Relbar}
+% \changes{v2.17n}{2022/04/08}{Make commands robust (gh/123)}
% \begin{macrocode}
-\ams@def\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}}
-\ams@def\Relbar{\mathrel\std@equal}
+\ams@DeclareRobustCommand\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}}
+\ams@DeclareRobustCommand\Relbar{\mathrel\std@equal}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2272,6 +2297,17 @@ Foreign command \@backslashchar#1;\MessageBreak
\ams@newcommand{\overleftrightarrow}{%
\mathpalette{\overarrow@\leftrightarrowfill@}}
% \end{macrocode}
+% Again we delay making commands robut for \pkg{stix}.
+% \changes{v2.17n}{2022/04/08}{Make commands robust (gh/123)}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \expandafter\let\csname overleftarrow \endcsname\@undefined
+ \expandafter\let\csname overrightarrow \endcsname\@undefined
+ \MakeRobust\overrightarrow
+ \MakeRobust\overleftarrow
+ \MakeRobust\overleftrightarrow
+ }
+% \end{macrocode}
%
% \begin{macrocode}
\def\underarrow@#1#2#3{%
@@ -2285,8 +2321,19 @@ Foreign command \@backslashchar#1;\MessageBreak
\mathpalette{\underarrow@\leftrightarrowfill@}}
% \end{macrocode}
%
+%
+% \changes{v2.17n}{2022/04/08}{Make commands robust (gh/123)}
% \begin{macrocode}
-%\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
+\AtBeginDocument{%
+ \MakeRobust\underrightarrow
+ \MakeRobust\underleftarrow
+ \MakeRobust\underleftrightarrow
+ }
+% \end{macrocode}
+%
+% \changes{v2.17n}{2022/04/08}{Make commands robust (gh/123)}
+% \begin{macrocode}
+%\DeclareRobustCommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
\def\ext@arrow#1#2#3#4#5#6#7{%
\mathrel{\mathop{%
% \end{macrocode}
@@ -2315,8 +2362,8 @@ Foreign command \@backslashchar#1;\MessageBreak
% sub/superscripts. These commands are robust because they take an
% optional argument.
% \begin{macrocode}
-\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
-\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
+\DeclareRobustCommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
+\DeclareRobustCommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
% \end{macrocode}
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2406,8 +2453,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macro}{\substack}
% The \cn{substack} command is just an abbreviation for the
% most common use of \env{subarray}.
+% \changes{v2.17n}{2022/04/08}{Make command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\substack}[1]{\subarray{c}#1\endsubarray}
+\DeclareRobustCommand{\substack}[1]{\subarray{c}#1\endsubarray}
% \end{macrocode}
% \end{macro}
%
@@ -2630,8 +2678,9 @@ ill-advised in LaTeX.%
% numbered within sections. The \LaTeX{} kernel contains a similar command
% \cs{counterwithin} (with a slightly extended syntax) that can be used
% as a drop-in replacement for \cs{numberwithin}.
+% \changes{v2.17n}{2022/04/08}{Make command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\numberwithin}[3][\arabic]{%
+\DeclareRobustCommand{\numberwithin}[3][\arabic]{%
\@ifundefined{c@#2}{\@nocounterr{#2}}{%
\@ifundefined{c@#3}{\@nocnterr{#3}}{%
\@addtoreset{#2}{#3}%
@@ -2645,8 +2694,9 @@ ill-advised in LaTeX.%
% To make references to equation numbers easier, we provide
% \cn{eqref}. We almost don't need \cn{textup}, except that
% \cs{tagform@} doesn't supply the italic correction.
+% \changes{v2.17n}{2022/04/08}{Make command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
+\DeclareRobustCommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
% \end{macrocode}
% \end{macro}
%
@@ -2685,8 +2735,9 @@ ill-advised in LaTeX.%
% The \cn{allowdisplaybreaks} command. Since this is intended for use
% outside displayed formulas (typically in the preamble), it does not
% need to use \cs{new@ifnextchar}.
+% \changes{v2.17n}{2022/04/08}{Make command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\allowdisplaybreaks}[1][4]{%
+\DeclareRobustCommand{\allowdisplaybreaks}[1][4]{%
\interdisplaylinepenalty\getdsp@pen{#1}\relax
}
% \end{macrocode}
@@ -2709,8 +2760,9 @@ ill-advised in LaTeX.%
% \begin{macro}{\dspbrk@context}
% \begin{macro}{\nogood@displaybreak}
% For breaks in a certain row of a alignment.
+% \changes{v2.17n}{2022/04/08}{Make command robust (gh/123)}
% \begin{macrocode}
-\newcommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}
+\DeclareRobustCommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}
\chardef\dspbrk@context=\sixt@@n
% \end{macrocode}
%
@@ -6130,15 +6182,16 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
% in his \fn{amstex.doc} Spivak indicates those commands should never
% be used on a first or last line. Perhaps better to leave the
% question open unless/until real-life examples turn up.
+% \changes{v2.17m}{2022/02/03}{Make \cs{shoveright} robust (if def is not trival)}
% \begin{macrocode}
\iftagsleft@
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\hskip\multlinegap
}
\else
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\iftag@
@@ -6153,12 +6206,14 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\fi
}
\fi
-
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Make \cs{shoveleft} robust (if def is not trival)}
+% \begin{macrocode}
\if@fleqn
\def\shoveleft#1{#1}%
\else
\iftagsleft@
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
@@ -6173,17 +6228,23 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\hskip\multlinegap
\fi
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Added missing \cs{relax} for (gh/716)}
+% \begin{macrocode}
+ \hskip-.5\wdz@ \relax
#1%
}
\else
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
\hskip\multlinegap
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Added missing \cs{relax} for (gh/716)}
+% \begin{macrocode}
+ \hskip-.5\wdz@ \relax
#1%
}
\fi
diff --git a/macros/latex/required/amsmath/amsmath.ins b/macros/latex/required/amsmath/amsmath.ins
index 1bb73101bb..82876ffc5d 100644
--- a/macros/latex/required/amsmath/amsmath.ins
+++ b/macros/latex/required/amsmath/amsmath.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsmath.pdf b/macros/latex/required/amsmath/amsmath.pdf
index 1212097e79..806926ebc0 100644
--- a/macros/latex/required/amsmath/amsmath.pdf
+++ b/macros/latex/required/amsmath/amsmath.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsopn.dtx b/macros/latex/required/amsmath/amsopn.dtx
index 03df1a116b..110a5fa8be 100644
--- a/macros/latex/required/amsmath/amsopn.dtx
+++ b/macros/latex/required/amsmath/amsopn.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -52,13 +52,13 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% similar to the standard function names \cn{sin}, \cn{lim},
% \cn{max}, etc.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% Standard file identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
-\ProvidesPackage{amsopn}[2021/08/26 v2.02 operator names]
+\ProvidesPackage{amsopn}[2022/04/08 v2.04 operator names]
% \end{macrocode}
%
% What \cs{nolimits@} does is keep a \cn{limits} typed by the user
@@ -151,41 +151,42 @@ Bug reports can be opened (category \texttt{#1}) at\\%
\@onlypreamble\@declmathop
% \end{macrocode}
%
+% \changes{v2.04}{2022/04/08}{Make operators \cs{protected} (gh/123)}
% \begin{macrocode}
-\def\arccos{\qopname\relax o{arccos}}
-\def\arcsin{\qopname\relax o{arcsin}}
-\def\arctan{\qopname\relax o{arctan}}
-\def\arg{\qopname\relax o{arg}}
-\def\cos{\qopname\relax o{cos}}
-\def\cosh{\qopname\relax o{cosh}}
-\def\cot{\qopname\relax o{cot}}
-\def\coth{\qopname\relax o{coth}}
-\def\csc{\qopname\relax o{csc}}
-\def\deg{\qopname\relax o{deg}}
-\def\det{\qopname\relax m{det}}
-\def\dim{\qopname\relax o{dim}}
-\def\exp{\qopname\relax o{exp}}
-\def\gcd{\qopname\relax m{gcd}}
-\def\hom{\qopname\relax o{hom}}
-\def\inf{\qopname\relax m{inf}}
-\def\injlim{\qopname\relax m{inj\,lim}}
-\def\ker{\qopname\relax o{ker}}
-\def\lg{\qopname\relax o{lg}}
-\def\lim{\qopname\relax m{lim}}
-\def\liminf{\qopname\relax m{lim\,inf}}
-\def\limsup{\qopname\relax m{lim\,sup}}
-\def\ln{\qopname\relax o{ln}}
-\def\log{\qopname\relax o{log}}
-\def\max{\qopname\relax m{max}}
-\def\min{\qopname\relax m{min}}
-\def\Pr{\qopname\relax m{Pr}}
-\def\projlim{\qopname\relax m{proj\,lim}}
-\def\sec{\qopname\relax o{sec}}
-\def\sin{\qopname\relax o{sin}}
-\def\sinh{\qopname\relax o{sinh}}
-\def\sup{\qopname\relax m{sup}}
-\def\tan{\qopname\relax o{tan}}
-\def\tanh{\qopname\relax o{tanh}}
+\protected\def\arccos{\qopname\relax o{arccos}}
+\protected\def\arcsin{\qopname\relax o{arcsin}}
+\protected\def\arctan{\qopname\relax o{arctan}}
+\protected\def\arg{\qopname\relax o{arg}}
+\protected\def\cos{\qopname\relax o{cos}}
+\protected\def\cosh{\qopname\relax o{cosh}}
+\protected\def\cot{\qopname\relax o{cot}}
+\protected\def\coth{\qopname\relax o{coth}}
+\protected\def\csc{\qopname\relax o{csc}}
+\protected\def\deg{\qopname\relax o{deg}}
+\protected\def\det{\qopname\relax m{det}}
+\protected\def\dim{\qopname\relax o{dim}}
+\protected\def\exp{\qopname\relax o{exp}}
+\protected\def\gcd{\qopname\relax m{gcd}}
+\protected\def\hom{\qopname\relax o{hom}}
+\protected\def\inf{\qopname\relax m{inf}}
+\protected\def\injlim{\qopname\relax m{inj\,lim}}
+\protected\def\ker{\qopname\relax o{ker}}
+\protected\def\lg{\qopname\relax o{lg}}
+\protected\def\lim{\qopname\relax m{lim}}
+\protected\def\liminf{\qopname\relax m{lim\,inf}}
+\protected\def\limsup{\qopname\relax m{lim\,sup}}
+\protected\def\ln{\qopname\relax o{ln}}
+\protected\def\log{\qopname\relax o{log}}
+\protected\def\max{\qopname\relax m{max}}
+\protected\def\min{\qopname\relax m{min}}
+\protected\def\Pr{\qopname\relax m{Pr}}
+\protected\def\projlim{\qopname\relax m{proj\,lim}}
+\protected\def\sec{\qopname\relax o{sec}}
+\protected\def\sin{\qopname\relax o{sin}}
+\protected\def\sinh{\qopname\relax o{sinh}}
+\protected\def\sup{\qopname\relax m{sup}}
+\protected\def\tan{\qopname\relax o{tan}}
+\protected\def\tanh{\qopname\relax o{tanh}}
% \end{macrocode}
%
% \begin{macro}{\operator@font}
@@ -198,8 +199,16 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% more accessible so that users can call this font for use in special
% constructs that are not ordinary operator names but conceptually
% related.
+%
+% \cs{operator@font} is also declared by the \LaTeX{} kernel (for
+% at least 14 years), thus defining it here effectively means
+% ``resetting it'' to the kernel value, which is counterproductive
+% in situations where the user (or a class) has altered its
+% definition and at a later point \pkg{amsopn} got added.
+% \changes{v2.03}{2022/01/20}{Do not reset \cs{operator@font} it is
+% already defined in the LaTeX kernel (gh/734)}
% \begin{macrocode}
-\def\operator@font{\mathgroup\symoperators}
+%\def\operator@font{\mathgroup\symoperators} % commented out in 2.03
\def\operatorfont{\operator@font}
% \end{macrocode}
% \end{macro}
@@ -218,23 +227,24 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% vertical spacing may not be optimal in script and scriptscript
% sizes. Unfortunately \tex/ provides no easy way to do math mode
% vertical spacing that varies with current math style like mu units.
+% \changes{v2.04}{2022/04/08}{Make operators \cs{protected} (gh/123)}
% \begin{macrocode}
-\def\varlim@#1#2{%
+\protected\def\varlim@#1#2{%
\vtop{\m@th\ialign{##\cr
\hfil$#1\operator@font lim$\hfil\cr
\noalign{\nointerlineskip\kern1.5\ex@}#2\cr
\noalign{\nointerlineskip\kern-\ex@}\cr}}%
}
-\def\varinjlim{%
+\protected\def\varinjlim{%
\mathop{\mathpalette\varlim@{\rightarrowfill@\textstyle}}\nmlimits@
}
-\def\varprojlim{%
+\protected\def\varprojlim{%
\mathop{\mathpalette\varlim@{\leftarrowfill@\textstyle}}\nmlimits@
}
-\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@}
+\protected\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@}
\def\varliminf@#1{\@@underline{\vrule\@depth.2\ex@\@width\z@
\hbox{$#1\m@th\operator@font lim$}}}
-\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@}
+\protected\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@}
\def\varlimsup@#1{\@@overline{\hbox{$#1\m@th\operator@font lim$}}}
% \end{macrocode}
%
diff --git a/macros/latex/required/amsmath/amsopn.ins b/macros/latex/required/amsmath/amsopn.ins
index 72c649c340..8a57404c1e 100644
--- a/macros/latex/required/amsmath/amsopn.ins
+++ b/macros/latex/required/amsmath/amsopn.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsopn.pdf b/macros/latex/required/amsmath/amsopn.pdf
index 0c6ae29bc2..0c1f60fd38 100644
--- a/macros/latex/required/amsmath/amsopn.pdf
+++ b/macros/latex/required/amsmath/amsopn.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amstext.dtx b/macros/latex/required/amsmath/amstext.dtx
index 88cc837f03..7498040214 100644
--- a/macros/latex/required/amsmath/amstext.dtx
+++ b/macros/latex/required/amsmath/amstext.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -72,7 +72,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% macro called \cs{mathhexbox} so that commands like \cn{dag}
% or \cn{P} will change sizes if used in math subscripts.
%
-% \StopEventually{}
+% \MaybeStop{}
% Package information.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
diff --git a/macros/latex/required/amsmath/amstext.ins b/macros/latex/required/amsmath/amstext.ins
index 5578a7e947..3ba3000eb8 100644
--- a/macros/latex/required/amsmath/amstext.ins
+++ b/macros/latex/required/amsmath/amstext.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amstext.pdf b/macros/latex/required/amsmath/amstext.pdf
index afaa124a10..bc92eb847d 100644
--- a/macros/latex/required/amsmath/amstext.pdf
+++ b/macros/latex/required/amsmath/amstext.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsxtra.dtx b/macros/latex/required/amsmath/amsxtra.dtx
index aaa5fd1a2d..c2bc4bbd26 100644
--- a/macros/latex/required/amsmath/amsxtra.dtx
+++ b/macros/latex/required/amsmath/amsxtra.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -53,7 +53,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% documents using the \pkg{amstex} package these commands are just
% wasted overhead.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
\ProvidesPackage{amsxtra}[1999/11/15 v1.2c AMS extra commands]
diff --git a/macros/latex/required/amsmath/amsxtra.ins b/macros/latex/required/amsmath/amsxtra.ins
index 7eca6e065a..70f50c6bcb 100644
--- a/macros/latex/required/amsmath/amsxtra.ins
+++ b/macros/latex/required/amsmath/amsxtra.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsxtra.pdf b/macros/latex/required/amsmath/amsxtra.pdf
index 7c694e14b2..6074bb822e 100644
--- a/macros/latex/required/amsmath/amsxtra.pdf
+++ b/macros/latex/required/amsmath/amsxtra.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/changes.txt b/macros/latex/required/amsmath/changes.txt
index 3f3c36bf79..83d6c6e3a1 100644
--- a/macros/latex/required/amsmath/changes.txt
+++ b/macros/latex/required/amsmath/changes.txt
@@ -3,6 +3,35 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 Release
+#########################
+
+2022-04-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsmath.dtx:
+ Make various math commands robust to match the LaTeX kernel (gh/123)
+
+ * amsopn.dtx:
+ Make various operators \protected (gh/123)
+
+
+2022-02-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsmath.dtx (subsection{The \env{multline} environment}):
+ Added missing \relax for (gh/716)
+ Also make \shoveleft and \shoveright robust (part of gh/123)
+
+2022-01-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsopn.dtx:
+ Do not define/reset \operator@font; it is already defined in
+ the LaTeX kernel (gh/734)
+
+2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * All *.dtx: Replaced \StopEventually by \MaybeStop
+
+#########################
# 2021-11-15 Release
#########################
diff --git a/macros/latex/required/amsmath/subeqn.pdf b/macros/latex/required/amsmath/subeqn.pdf
index c016df16b8..28c721c6f2 100644
--- a/macros/latex/required/amsmath/subeqn.pdf
+++ b/macros/latex/required/amsmath/subeqn.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/technote.pdf b/macros/latex/required/amsmath/technote.pdf
index 7027cfd8df..6a8c594364 100644
--- a/macros/latex/required/amsmath/technote.pdf
+++ b/macros/latex/required/amsmath/technote.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/testmath.pdf b/macros/latex/required/amsmath/testmath.pdf
index 7fc3601faf..8aef17f9ef 100644
--- a/macros/latex/required/amsmath/testmath.pdf
+++ b/macros/latex/required/amsmath/testmath.pdf
Binary files differ
diff --git a/macros/latex/required/firstaid/changes.txt b/macros/latex/required/firstaid/changes.txt
index 6f8268c6b6..a3626f83a4 100644
--- a/macros/latex/required/firstaid/changes.txt
+++ b/macros/latex/required/firstaid/changes.txt
@@ -1,3 +1,12 @@
+2022-02-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex2e-first-aid-for-external-files.dtx:
+ Fixes for biditools because taken out as package is updated
+
+2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * All *.dtx: Replaced \StopEventually by \MaybeStop
+
2021-11-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
index fb8d340137..1e6e286a73 100644
--- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
+++ b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
@@ -99,7 +99,7 @@
% release we have to make and distribute also a matching
% development release.
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
@@ -111,8 +111,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\LaTeXFirstAidDate{2021/11/11}
-\def\LaTeXFirstAidVersion{v1.0q}
+\def\LaTeXFirstAidDate{2022/02/20}
+\def\LaTeXFirstAidVersion{v1.0r}
% \end{macrocode}
%
% \begin{macrocode}
@@ -311,11 +311,12 @@
%<*kernel>
% \end{macrocode}
%
+% Bidi is now ar a new version: patches are no longer needed.
% \begin{macrocode}
-\AddToHook{file/biditools.sty/after}[firstaid]{%
- \FirstAidNeededT{biditools}{sty}%
- {2020/05/13 v2 Programming tools for bidi package}%
- {%
+%\AddToHook{file/biditools.sty/after}[firstaid]{%
+% \FirstAidNeededT{biditools}{sty}%
+% {2020/05/13 v2 Programming tools for bidi package}%
+% {%
% \end{macrocode}
% \pkg{bidi} adds some code to the beginning of \cs{document} which
% contains \cs{endgroup} and \cs{begingroup} which is no longer
@@ -324,20 +325,20 @@
% Patching \cs{document} using \cs{bidi@patchcmd} doesn't work so
% we take the extra groups out by hand:
% \begin{macrocode}
- \def\firstaid@bidi@document@patch
- \endgroup#1\begingroup#2\firstaid@bidi@document@patch
- {\unexpanded{#1#2}}%
- \edef\document{\expandafter\firstaid@bidi@document@patch\document
- \firstaid@bidi@document@patch}%
+% \def\firstaid@bidi@document@patch
+% \endgroup#1\begingroup#2\firstaid@bidi@document@patch
+% {\unexpanded{#1#2}}%
+% \edef\document{\expandafter\firstaid@bidi@document@patch\document
+% \firstaid@bidi@document@patch}%
% \end{macrocode}
% There are also some patches into \cs{enddocument}, some continue
% to go in but one fails, so we add that now into the right place.
% \begin{macrocode}
- \AddToHook{enddocument/info}%
- {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
- \bidi@afterenddocumentchecklabelsrerunhook}%
- }%
-}
+% \AddToHook{enddocument/info}%
+% {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
+% \bidi@afterenddocumentchecklabelsrerunhook}%
+% }%
+%}
% \end{macrocode}
%
%
@@ -559,6 +560,30 @@
}
% \end{macrocode}
%
+% \subsection{The \pkg{german} class first aid}
+%
+% Handling of \cs{protected} UTF-8
+% \begin{macrocode}
+\AddToHook{file/german.sty/after}[firstaid]{%
+ \FirstAidNeededT{german}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\germanTeX
+}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AddToHook{file/ngerman.sty/after}[firstaid]{%
+ \FirstAidNeededT{ngerman}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\ngermanTeX
+}%
+}
+% \end{macrocode}
%
%
%
diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
index d505fa379b..ef46525b24 100644
--- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
+++ b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/README.md b/macros/latex/required/graphics/README.md
index e58a421c93..5ccff78a3b 100644
--- a/macros/latex/required/graphics/README.md
+++ b/macros/latex/required/graphics/README.md
@@ -1,7 +1,7 @@
The LaTeX `graphics` bundle
===========================
-Release 2021-12-14
+Release 2022-06-01
Overview
--------
@@ -61,4 +61,4 @@ of the package.
-----
-<p>Copyright (C) 1993-2021 The LaTeX Project <br />
+<p>Copyright (C) 1993-2022 The LaTeX Project <br />
diff --git a/macros/latex/required/graphics/changes.txt b/macros/latex/required/graphics/changes.txt
index eb95865d2f..616f56230f 100644
--- a/macros/latex/required/graphics/changes.txt
+++ b/macros/latex/required/graphics/changes.txt
@@ -9,6 +9,26 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 Release
+#########################
+
+2022-03-10 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * graphics.dtx:
+ Use \set@curr@file@nosearch to avoid premature inclusion of path
+ from \cs{graphicspath} (gh/776).
+
+2022-01-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * mathcolor.dtx:
+ Support \mathcolor to correctly color parts of formulas without
+ spacing problems. This command is *only* supported in math mode.
+
+2021-12-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * color.dtx: Remove stray spaces after change for xcolor/gh/10}
+
+#########################
# 2021-12-14 Release
#########################
diff --git a/macros/latex/required/graphics/color.dtx b/macros/latex/required/graphics/color.dtx
index b4b0ad1091..cf3a7efbcf 100644
--- a/macros/latex/required/graphics/color.dtx
+++ b/macros/latex/required/graphics/color.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% color.dtx Copyright (C) 1994--1999 David Carlisle
-%% Copyright (C) 2005-2021
+%% Copyright (C) 2005-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -21,7 +21,7 @@
%<driver> \ProvidesFile{color.drv}
% \fi
% \ProvidesFile{color.dtx}
- [2021/12/07 v1.3c Standard LaTeX Color (DPC)]
+ [2022/01/06 v1.3d Standard LaTeX Color (DPC)]
%
% \iffalse
%<*driver>
@@ -56,7 +56,7 @@
% document \emph{Packages in the `graphics' bundle} in the file
% \texttt{grfguide.tex}.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Options}
@@ -826,6 +826,13 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Providing \cs{mathcolor}}
+%
+% This is shared coded between different packages, so external.
+%
+% \begin{macrocode}
+\input{mathcolor.ltx}
+% \end{macrocode}
%
% \section{Extra Groups}
% Turning on extra groups in the standard \LaTeX\ commands, so that
diff --git a/macros/latex/required/graphics/color.pdf b/macros/latex/required/graphics/color.pdf
index 540a4f2808..b3cca89de7 100644
--- a/macros/latex/required/graphics/color.pdf
+++ b/macros/latex/required/graphics/color.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/drivers.dtx b/macros/latex/required/graphics/drivers.dtx
index 6704ad11c6..e1c19e0296 100644
--- a/macros/latex/required/graphics/drivers.dtx
+++ b/macros/latex/required/graphics/drivers.dtx
@@ -3,7 +3,7 @@
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%% Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2021
+%% Copyright (C) 2000-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -77,7 +77,7 @@
%
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Colour}
diff --git a/macros/latex/required/graphics/drivers.pdf b/macros/latex/required/graphics/drivers.pdf
index 0f83884b10..a9bfdac464 100644
--- a/macros/latex/required/graphics/drivers.pdf
+++ b/macros/latex/required/graphics/drivers.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/epsfig.dtx b/macros/latex/required/graphics/epsfig.dtx
index a34aa6842e..b8927f2da5 100644
--- a/macros/latex/required/graphics/epsfig.dtx
+++ b/macros/latex/required/graphics/epsfig.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%% Copyright (C) 2000-2021
+%% Copyright (C) 2000-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -41,7 +41,7 @@
% \maketitle
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Preface}
% \begin{macrocode}
diff --git a/macros/latex/required/graphics/epsfig.pdf b/macros/latex/required/graphics/epsfig.pdf
index f8af4c38ae..b72f727ebb 100644
--- a/macros/latex/required/graphics/epsfig.pdf
+++ b/macros/latex/required/graphics/epsfig.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphics.dtx b/macros/latex/required/graphics/graphics.dtx
index cec35559ef..92b3c8f335 100644
--- a/macros/latex/required/graphics/graphics.dtx
+++ b/macros/latex/required/graphics/graphics.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphics.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2021
+%% Copyright (C) 1995-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -27,7 +27,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)]
+ [2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -276,7 +276,7 @@
% and |\rotatebox| commands that some people may prefer. It is provided
% by the accompanying |graphicx| package.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Graphics Kernel Functions}
%
@@ -1053,33 +1053,39 @@
% \edef{macrocode}
% \end{macro}
%
-% \begin{macro}{\set@curr@file}
+% \begin{macro}{\Gin@set@curr@file}
% \begin{macro}{\quote@name}
% \changes{v1.3c}{2019/10/08}
% {Definitions added for old formats}
+% \changes{v1.4e}{2022/03/10}
+% {Use \cs{Gin@set@curr@file}, and define it appropriately}
+% We have to cope with older formats (rollback as far as 2019-10-01)
+% and Plain. Define a minimal \cs{Gin@set@curr@file} first:
% \begin{macrocode}
-\def\Gin@temp#1{%
- \begingroup
- \escapechar\m@ne
- \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
- \endgroup
-}
-\ifx\set@curr@file\@Gin@temp
- \let\set@curr@file\@undefined
-\fi
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ifx\set@curr@file\@undefined
-\def\set@curr@file#1{%
+\def\Gin@set@curr@file#1{%
\begingroup
\escapechar\m@ne
\xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}%
- \endgroup
-}
-\def\quote@name#1{"\quote@@name#1\@gobble""}
-\def\quote@@name#1"{#1\quote@@name}
-\def\unquote@name#1{\quote@@name#1\@gobble"}
+ \endgroup}
+% \end{macrocode}
+% Then, if \cs{set@curr@file@nosearch} is undefined, we're before
+% 2022-06-01, and if \cs{set@curr@file} is undefined, we're before
+% 2019-10-01 (aka Plain, as far as these tests are concerned). Make
+% \cs{Gin@set@curr@file} be a copy of the most recent macro:
+% \cs{set@curr@file@nosearch} if it exists, and \cs{set@curr@file}
+% otherwise. If neither exist, we also need to define
+% \cs{quote@name} et~al.
+% \begin{macrocode}
+\ifx\set@curr@file@nosearch\@undefined
+ \ifx\set@curr@file\@undefined
+ \def\quote@name#1{"\quote@@name#1\@gobble""}
+ \def\quote@@name#1"{#1\quote@@name}
+ \def\unquote@name#1{\quote@@name#1\@gobble"}
+ \else
+ \let\Gin@set@curr@file\set@curr@file
+ \fi
+\else
+ \let\Gin@set@curr@file\set@curr@file@nosearch
\fi
% \end{macrocode}
% \end{macro}
@@ -1114,8 +1120,11 @@
%
% \changes{v1.3d}{2019/11/01}
% {\cs{curr@name} now unquoted}
+% \changes{v1.4e}{2022/03/10}
+% {Use \cs{set@curr@file@nosearch} to avoid premature inclusion of
+% path from \cs{graphicspath}}
% \begin{macrocode}
- \set@curr@file{#1}%
+ \Gin@set@curr@file{#1}%
\expandafter\filename@parse\expandafter{\@curr@file}%
% \end{macrocode}
% If extension is |.gz| tack on to previous extension, eg |.eps.gz| if available.
diff --git a/macros/latex/required/graphics/graphics.ins b/macros/latex/required/graphics/graphics.ins
index 95e190c9ec..09c37e7c38 100644
--- a/macros/latex/required/graphics/graphics.ins
+++ b/macros/latex/required/graphics/graphics.ins
@@ -40,4 +40,6 @@ reports for it can be opened at https://latex-project.org/bugs/
\generate{\file{rotating.sty}{\from{rotating.dtx}{package}}}
+\generate{\file{mathcolor.ltx}{\from{mathcolor.dtx}{code}}}
+
\endbatchfile
diff --git a/macros/latex/required/graphics/graphics.pdf b/macros/latex/required/graphics/graphics.pdf
index a50ff186fd..5cdae79b24 100644
--- a/macros/latex/required/graphics/graphics.pdf
+++ b/macros/latex/required/graphics/graphics.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphicx.dtx b/macros/latex/required/graphics/graphicx.dtx
index 29e0db5b12..8c20091585 100644
--- a/macros/latex/required/graphics/graphicx.dtx
+++ b/macros/latex/required/graphics/graphicx.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphicx.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2021
+%% Copyright (C) 1995-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -211,7 +211,7 @@
% which rotates around the reference point on the baseline, thus
% producing a box that is mainly \emph{below} the baseline.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Implementation}
diff --git a/macros/latex/required/graphics/graphicx.pdf b/macros/latex/required/graphics/graphicx.pdf
index 88ef6488c2..2a02092804 100644
--- a/macros/latex/required/graphics/graphicx.pdf
+++ b/macros/latex/required/graphics/graphicx.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.pdf b/macros/latex/required/graphics/grfguide.pdf
index 95e7c76295..419ea295ed 100644
--- a/macros/latex/required/graphics/grfguide.pdf
+++ b/macros/latex/required/graphics/grfguide.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.tex b/macros/latex/required/graphics/grfguide.tex
index 3b679ea382..585e87adc7 100644
--- a/macros/latex/required/graphics/grfguide.tex
+++ b/macros/latex/required/graphics/grfguide.tex
@@ -243,12 +243,27 @@ to the font commands such as |\textbf|:
So the above is essentially equivalent to
|{\color|\arg{name}\emph{text}|}|.
+\subsection{Using Colours in math formulas}
+
+While |\color| and to some extent |\textcolor| can be used in
+formulas, this is cumbersome, may lead to bad spacing, and in some
+situations is simply not possible. For this reason we also introduce
+|\mathcolor| which will help in this respect. The basic syntax is:
+
+\begin{decl}
+|\mathcolor|\arg{name}\arg{math}
+\end{decl}
+
+See \texttt{mathcolor.pdf} for details on this command.
+
+
\subsubsection{Using colour specifications directly}
\begin{decl}
|\color|\oarg{model}\arg{specification}\\
-|\textcolor|\oarg{model}\arg{specification}\arg{text}
+|\textcolor|\oarg{model}\arg{specification}\arg{text}\\
+|\mathcolor|\oarg{model}\arg{specification}\arg{math}
\end{decl}
Normally one would predeclare all the colours used in a package, or in
diff --git a/macros/latex/required/graphics/keyval.dtx b/macros/latex/required/graphics/keyval.dtx
index 58664b8f03..9fce6267e0 100644
--- a/macros/latex/required/graphics/keyval.dtx
+++ b/macros/latex/required/graphics/keyval.dtx
@@ -1,7 +1,7 @@
%
% \iffalse
%% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2021 David Carlisle, LaTeX Project
+%% Copyright (C) 2000-2022 David Carlisle, LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -20,7 +20,7 @@
%<driver> \ProvidesFile{keyval.drv}
% \fi
% \ProvidesFile{keyval.dtx}
- [2014/10/28 v1.15 key=value parser (DPC)]
+ [2022/05/29 v1.15 key=value parser (DPC)]
%
% \iffalse
%</!plain>
@@ -177,7 +177,7 @@
% \section{The Internal Interface}
% A declaration of the form:\\
% |\define@key{family}{key}{...}|\\
-% Defines a macro |\KV@prefix@key| with one argument. When used in a
+% Defines a macro |\KV@family@key| with one argument. When used in a
% keyval list, the macro receives the value as its argument.
%
% A declaration of the form:\\
@@ -202,7 +202,7 @@
% package do not break styles making use of these `low level'
% definitions.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/graphics/keyval.pdf b/macros/latex/required/graphics/keyval.pdf
index 8746550d0e..5b1bd6a06e 100644
--- a/macros/latex/required/graphics/keyval.pdf
+++ b/macros/latex/required/graphics/keyval.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/lscape.dtx b/macros/latex/required/graphics/lscape.dtx
index 969c94ae7a..d173af6468 100644
--- a/macros/latex/required/graphics/lscape.dtx
+++ b/macros/latex/required/graphics/lscape.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%% Copyright (C) 2000-2021
+%% Copyright (C) 2000-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -54,7 +54,7 @@
% page before the page head and foot are added.
%
%
-% \StopEventually{\end{landscape}}
+% \MaybeStop{\end{landscape}}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \changes{v1.00}{1992/04/28}{Initial release}
diff --git a/macros/latex/required/graphics/lscape.pdf b/macros/latex/required/graphics/lscape.pdf
index 178ffb231d..cc6e113a01 100644
--- a/macros/latex/required/graphics/lscape.pdf
+++ b/macros/latex/required/graphics/lscape.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/mathcolor.dtx b/macros/latex/required/graphics/mathcolor.dtx
new file mode 100644
index 0000000000..2341e71e28
--- /dev/null
+++ b/macros/latex/required/graphics/mathcolor.dtx
@@ -0,0 +1,431 @@
+% \iffalse meta-comment
+%
+%% File: mathcolor.dtx (C) Copyright 2021-2022
+% Frank Mittelbach, LaTeX Team
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+%%% From File: mathcolor.dtx
+%
+% \begin{macrocode}
+\def\mathcolorversion{v1.0b}
+\def\mathcolordate{2022/01/28}
+% \end{macrocode}
+%<*driver>
+\documentclass{l3doc}
+
+%\makeatletter \input{mathcolor.ltx} \makeatother
+
+\usepackage{color}
+
+% Fixing footnotes in functions and variables: this should be in l3doc!
+
+\newcommand\fixfootnote[2]{\footnotemark
+ \AddToHookNext{env/#1/after}{\footnotetext{#2}}}
+\AddToHook{env/function/begin}{\def\footnote{\fixfootnote{function}}}
+\AddToHook{env/variable/begin}{\def\footnote{\fixfootnote{variable}}}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{mathcolor.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+
+
+
+%
+% \title{Providing color in math\thanks{This file has version
+% \mathcolorversion\ dated \mathcolordate, \copyright\ \LaTeX\
+% Project.}}
+% \author{Frank Mittelbach}
+%
+% \maketitle
+%
+%
+% \section{Introduction}
+%
+% It is possible to use the \cs{color} command in math formulas but
+% doing that has a number of restrictions and often leads to rather
+% unreadable input. For example, to color the summation sign in red
+% in the following formula
+% \[
+% X = \color{red} \sum_{{\color{black} i=1}}^{{\color{black} n}} \color{black} x_i
+% \]
+% A total of four color commands and a number of seemingly
+% unnecessary extra braces in the sub and superscript are needed:
+%\begin{verbatim}
+% \[ X = \color{red} \sum
+% _{{\color{black} i=1}} % without {{ the superscript is misplaced
+% ^{{\color{black} n}} % without {{ the \sum is black
+% \color{black} % without the x_i is red
+% x_i \]
+%\end{verbatim}
+% While this is ugly but at least works, other things are simply
+% impossible, e.g.,
+% \[ \left\{ \frac{1}{2} \mathcolor{red}{\right\}} \]
+% are not achievable at all because of the fact that \cs{left} and
+% \cs{right} form a group. Thus, a \cs{color} command immediately
+% before the \cs{right} has no effect and \verb=\}= remains black.
+% Putting the color change before the \cs{left} and then resetting
+% the color inside would work if you want to color both braces, but
+% the above combination or the attempt to color only the left brace
+% fails always.
+%
+% Using \cs{textcolor} in formulas appears to work on first glance,
+% but it produces spacing problems that are not easy to overcome
+% either, because it generates a single \cs{mathord} and no
+% longer reflects its input, thus
+% \verb/\[ a = b \textcolor{red}{\neq} c \]/
+% produces
+% \[ a = b \textcolor{red}{\neq} c \]
+% This is a case one could mend by wrapping the
+% \cs{textcolor} and its arguments in a \cs{mathrel}, but even when
+% that is possible, the resulting formula source is difficult to
+% maintain and in other situations the solutions are even more
+% complicated or there is no solution at all.
+%
+% We therefore offer now a dedicated math coloring command named
+% \cs{mathcolor}.
+%
+% \begin{function}{\mathcolor}
+% \begin{syntax}
+% \cs{mathcolor} \oarg{model} \Arg{color-spec} \Arg{math material}
+% \end{syntax}
+% It has the same arguments as \cs{textcolor} but is intended for
+% use in formulas. The command does not generate a group and the
+% \meta{math material} retains its math atom states and it correctly
+% handles sub and superscripts that follow.
+% \end{function}
+%
+% The command can also be used to color a single opening or closing
+% symbol, e.g., the correct input to our earlier example is
+%\begin{verbatim}
+% \[ \left\{ \frac{1}{2} \mathcolor{red}{\right\}} \]
+%\end{verbatim}
+% which is how it was produced.
+%
+% If you attempt to color large operators that use explicit
+% \cs{limits}, \cs{nolimits}, or \cs{displaylimits}, then these
+% limit controls need to immediately follow the operator. However,
+% \cs{mathcolor} is written in a way that it is possible write
+%\begin{verbatim}
+% \[ \mathcolor{red}{\int}\limits_0^1 \textrm{ or }
+% \mathcolor{red}{\int\limits}_0^1 \]
+%\end{verbatim}
+% and achieve the same effect:
+% \[ \mathcolor{red}{\int}\limits_0^1 \textrm{ or }
+% \mathcolor{red}{\int\limits}_0^1 \]
+
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+% The code is called inside of the \pkg{color} or \pkg{xcolor}
+% packages, so \texttt{@} is already a letter, but the
+% coding here is done in the L3 programming layer, so we need to
+% activate that. But first we check if this file was loaded before,
+% e.g., when both \pkg{color} and \pkg{xcolor} are in the preamble
+% and in that case we stop immediately.
+% \begin{macrocode}
+%<*code>
+\ifcsname mathcolor\endcsname \endinput \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+%<@@=mathcolor>
+% \end{macrocode}
+%
+% \begin{macro}{\g_@@_seq}
+% We need to keep our own stack of color commands, so we allocate a
+% sequence for that.
+% \begin{macrocode}
+\seq_new:N \g_@@_seq
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\mathcolor}
+% The document-level command which expects a color (if unnamed then
+% the optional argument is the model) and colors the content of the
+% second argument (like \cs{textcolor}, but without spacing
+% problems in math).
+% \begin{macrocode}
+\DeclareDocumentCommand \mathcolor { o m m } {
+% \end{macrocode}
+% The \cs{mathcolor} is only supported in math mode because in text
+% mode it has problems scanning away a space after it, for example.
+% We therefore raise an error if it executes
+% anywhere else. The \LaTeXe{} error command is a
+% bit strangely named, because in the kernel it is only used for
+% math alphabets, but the message it gives is fine.
+% \changes{v1.0b}{2022/01/28}{Restrict command to math mode}
+% \begin{macrocode}
+ \mode_if_math:F { \non@alpherr {\mathcolor\space} }
+% \end{macrocode}
+% First real action is to save the current color value on a stack
+% (needed if the command is nested or contains some further color
+% changes with \cs{color} inside).
+% \begin{macrocode}
+ \seq_gpush:No \g_@@_seq \current@color
+% \end{macrocode}
+% Then we switch to the new color, but we do not want to reset the
+% color after the group (which is done by \cs{color} using
+% \cs{aftergroup}\cs{reset@color}). The best solution here would be
+% if the color packages would provide a command doing just the
+% color switching, but for now we simply undo that part by pushing
+% \cs{use_none:n} which gobbles the \cs{reset@color} added by
+% \cs{color} with \cs{aftergroup}.
+% \begin{macrocode}
+ \group_insert_after:N \use_none:n
+% \end{macrocode}
+% Switching the color is also slightly suboptimal, because
+% depending on whether or not we have a \meta{model} argument, we
+% have to call \cs{color} with or without the optional argument. But
+% going low-level here is not an option as we need to support
+% different color packages and their internals are not identical.
+% \begin{macrocode}
+ \IfValueTF{#1} { \color[#1]{#2} }{ \color{#2} }
+% \end{macrocode}
+% Then comes the math material we want to see colored:
+% \begin{macrocode}
+ #3
+% \end{macrocode}
+% After that we need to reset the color ourselves (without a group
+% that does it for us), i.e., popping the saved color from our
+% stack, but there are some twists to that so we do this in a
+% separate command (which in fact needs to be called several times,
+% so inlining the code wouldn't be possible.
+% \begin{macrocode}
+ \@@_scan_for_scripts:w
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@@_scan_for_scripts:w}
+% The complication when changing the color back is due to the fact
+% that the \cs{mathcolor} may be followed by \verb=^= or \verb=_=
+% or the hidden superscript \texttt{'} and its argument may end in a
+% \cs{mathop} in which case the sub and superscripts may be
+% attached as \cs{limits} instead of after the material. All cases
+% need separate treatment.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_scan_for_scripts:w {
+% \end{macrocode}
+% We therefore first parse for a \cs{c_math_subscript_token}
+% ignoring (dropping) any spaces and \cs{relax} as \TeX{} would
+% do. We do this with expansion so that hidden sub or superscripts
+% in macros are still found as long as the macros are expandable.
+% \begin{macrocode}
+ \@@_peek_catcode_ignore_filler_expand:NTF \c_math_subscript_token
+% \end{macrocode}
+% If we found that character we call a function that handles sub or
+% superscripts.
+% \begin{macrocode}
+ { \@@_handle_scripts:Nw }
+% \end{macrocode}
+% Otherwise check if this token we peeked at (which is now stored
+% in \cs{l_peek_token} is a superscript token.
+% \begin{macrocode}
+ { \token_if_math_superscript:NTF \l_peek_token
+% \end{macrocode}
+% If found we call the sub/superscript handler.
+% \begin{macrocode}
+ { \@@_handle_scripts:Nw }
+% \end{macrocode}
+% Otherwise we check if it was any of the limit operation
+% primitives. If that is the case, e.g., if we have a situation
+% such as
+%\begin{verbatim}
+% \mathcolor{red}{\int}\limits_1
+%\end{verbatim}
+% we have to move it directly after the \cs{int} to ensure there
+% is no color reset between the operator and the \cs{limits} command.
+% \begin{macrocode}
+ { \token_case_meaning:NnTF \l_peek_token
+ {
+ \limits { \limits }
+ \nolimits { \nolimits }
+ \displaylimits { \displaylimits }
+ }
+% \end{macrocode}
+% Once that is done, we have to get rid of the token we peeked at
+% and then restart scanning for sub or superscripts. Given that
+% \cs{@@_scan_for_scripts:w} expands while scanning the simplest
+% solution is to add \cs{use_none:n} in front of the peeked at token.
+% \begin{macrocode}
+ { \@@_scan_for_scripts:w \use_none:n }
+% \end{macrocode}
+% If it was one of these we look for a \texttt{'} and if found remove it and
+% replace it by its expansion. The reason we have to do this (and
+% not rely on the earlier peeking to expand for us is the fact
+% that \texttt{'} is only ``math active'' and that doesn't expand
+% under \cs{expanded} or \cs{expandafter}.
+% \begin{macrocode}
+ { \peek_meaning_remove:NTF '
+ { \@@_handle_scripts:Nw ^\c_group_begin_token \prim@s }
+% \end{macrocode}
+% If it is anything else we finish off which means we reset the
+% color (because we prevented that before to happen automatically
+% after the next group) and pop the color stack setting \cs{current@color}.
+% \begin{macrocode}
+ { \reset@color
+ \seq_gpop:NN \g_@@_seq \current@color
+ }
+ }
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\@@_handle_scripts:Nw}
+% The tricky part of handling sub and superscripts is that we have
+% to reset color to the one that is on the stack but reset it back
+% to what it was before to allow for cases like
+%\begin{verbatim}
+% \[ \mathcolor{red}{a+\sum}_{i=1}^n \]
+%\end{verbatim}
+% Here, \TeX{} constructs a \cs{vbox} stacking subscript, summation
+% sign, and superscript. So technically the superscript comes first
+% and the \cs{sum} that should get colored red is the middle.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_handle_scripts:Nw #1 {
+% \end{macrocode}
+% The argument is either \verb=^= or \verb=_=, so we execute it and
+% explicitly open two \verb={= groups. We need two because color
+% resets are always done after a group, so the first group is for
+% script material (in case it was just something like \verb=_i=)
+% and the second is needed for the color reset to keep it within
+% the super or subscript. If that reset would happen after it then
+% the color \cs{special} would interfere with \TeX{} math spacing.
+% \begin{macrocode}
+ #1 \c_group_begin_token \c_group_begin_token
+% \end{macrocode}
+% Now it is time to change the color back to the one on the stack.
+% \begin{macrocode}
+ \seq_get:NN \g_@@_seq \current@color
+ \set@color
+% \end{macrocode}
+% \cs{set@color} adds \cs{aftergroup}\cs{reset@color}. We now a add
+% bit more so that the code executed after the current (inner) group
+% looks like this:
+%\begin{verbatim}
+% \reset@color } \@@_scan_for_scripts:w
+%\end{verbatim}
+% The \cs{_@@_scan_for_scripts:w} then retakes control and initiates
+% parsing for another sub or superscript.
+% \begin{macrocode}
+ \group_insert_after:N \c_group_end_token
+ \group_insert_after:N \@@_scan_for_scripts:w
+% \end{macrocode}
+% Before we give control to \TeX{} to process the sub or
+% superscript some final adjustment is necessary: if the input was
+% \verb=^{...}= then we have one \verb={= too many, because we
+% already supplied the outer one already. In that case we drop
+% it. Otherwise we have an unbraced single token sub or superscript
+% which means we are missing a closing \verb=}= at the end and need
+% to account for that: this is done in \cs{_@@_handle_unbraced_script:N}.
+% \begin{macrocode}
+ \@@_peek_catcode_ignore_filler_expand:NTF \c_group_begin_token
+ { \peek_catcode_remove:NT \c_group_begin_token { } }
+ { \@@_handle_unbraced_script:N }
+ }% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\@@_handle_unbraced_script:N}
+% All we have to do here is to add the final closing brace.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_handle_unbraced_script:N #1 {
+ #1 \c_group_end_token }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Utility function for the peek module}
+%
+% This peek is expanding and ignores spaces and \cs{relax} (even
+% though the name doesn't say so)
+% but \cs{relax} is usually allowed in such places where we so it
+% may not be bad to have it in this way in general --- maybe this
+% should move to expl3 peek functions (or otherwise the naming
+% should perhaps be adjusted).
+%
+%
+% \begin{macrocode}
+\tl_new:N \l_@@_peek_tmp_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_catcode_ignore_filler_expand:NTF #1#2#3
+ {
+ \tl_set:Nn \l_@@_peek_tmp_tl
+ { \token_if_eq_catcode:NNTF \l_peek_token #1 {#2} {#3} }
+ \@@_peek_expand:w
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_expand:w
+ {
+ \exp_after:wN \peek_catcode_remove:NTF
+ \exp_after:wN \c_space_token
+ \exp_after:wN \@@_peek_test_expand:w
+ \exp_after:wN \@@_peek_test_relax:w
+ \exp:w \exp_end_continue_f:w
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_test_expand:w
+ {
+ \token_if_expandable:NTF \l_peek_token
+ { \@@_peek_expand:w }
+ { \l_@@_peek_tmp_tl }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_test_relax:w
+ {
+ \peek_meaning_remove:NTF \scan_stop:
+ { \@@_peek_expand:w }
+ { \@@_peek_test_expand:w }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%
+%
+
+%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%
+
diff --git a/macros/latex/required/graphics/mathcolor.pdf b/macros/latex/required/graphics/mathcolor.pdf
new file mode 100644
index 0000000000..1940791f90
--- /dev/null
+++ b/macros/latex/required/graphics/mathcolor.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotating.dtx b/macros/latex/required/graphics/rotating.dtx
index c6db1273a4..ac64086082 100644
--- a/macros/latex/required/graphics/rotating.dtx
+++ b/macros/latex/required/graphics/rotating.dtx
@@ -5,7 +5,7 @@
% File: rotating.dtx
%% Copyright (C) 1995-1999 Sebastian Rahtz and Leonor Barroca
%% Copyright (C) 2001-2003,2007-2009 Robin Fairbairns
-%% Copyright (C) 2016-2021 LaTeX Project
+%% Copyright (C) 2016-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%
@@ -157,7 +157,7 @@
% top does
% \end{tabular}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Setup}
% Now we present the documented code. First, package options.
diff --git a/macros/latex/required/graphics/rotating.pdf b/macros/latex/required/graphics/rotating.pdf
index 94fab64ec2..3352fd8fd1 100644
--- a/macros/latex/required/graphics/rotating.pdf
+++ b/macros/latex/required/graphics/rotating.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotex.pdf b/macros/latex/required/graphics/rotex.pdf
index 3ca96254af..6027e6cb08 100644
--- a/macros/latex/required/graphics/rotex.pdf
+++ b/macros/latex/required/graphics/rotex.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/trig.dtx b/macros/latex/required/graphics/trig.dtx
index 533f3b0648..4b673494af 100644
--- a/macros/latex/required/graphics/trig.dtx
+++ b/macros/latex/required/graphics/trig.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: trig.dtx Copyright (C) 1993-1999 David Carlisle
-%% Copyright (C) 2000-2021
+%% Copyright (C) 2000-2022 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -78,7 +78,7 @@
% |\dimen2=\UseSin{30}\dimen0|. Which means that |\UseSin| must
% \emph{expand} to a \meta{factor}.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/graphics/trig.pdf b/macros/latex/required/graphics/trig.pdf
index cc9bbe3bcf..8521167f77 100644
--- a/macros/latex/required/graphics/trig.pdf
+++ b/macros/latex/required/graphics/trig.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/README.md b/macros/latex/required/latex-lab/README.md
new file mode 100644
index 0000000000..410292cda5
--- /dev/null
+++ b/macros/latex/required/latex-lab/README.md
@@ -0,0 +1,42 @@
+# LaTeX laboratory
+
+Release 2022-06-01 pre-release 4
+
+## Overview
+
+This bundle holds optional files that are loaded in certain situations
+by kernel code (if available). For example, the new (as of 2021/12)
+`\DocumentMetadata` command in the kernel loads a file from here holding
+the real payload. While this code is still in development and the use
+is experimental and mainly for the tagging project, the code is stored
+outside the format so that there can be intermediate releases not
+affecting the production use of LaTeX.
+
+
+Once the code is finalized and properly tested it will eventually move
+to the kernel and the corresponding file in this bundle will
+vanish. Note that none of these files are directly user accessible in
+documents (i.e., they aren't packages) so the process is transparent
+to documents already using the new functionality.
+
+
+## Current support code in the bundle
+
+### Support for `\DocumentMetadata`
+
+### New output routine code (under development)
+
+ - so far there is a first implementation of footnote support
+
+
+## License
+
+The license is LPPL 1.3c.
+
+
+## Copyright
+
+This README file is
+
+Copyright (C) 2021-2022
+The LaTeX Project
diff --git a/macros/latex/required/latex-lab/changes.txt b/macros/latex/required/latex-lab/changes.txt
new file mode 100644
index 0000000000..80b3b4a22c
--- /dev/null
+++ b/macros/latex/required/latex-lab/changes.txt
@@ -0,0 +1,27 @@
+2022-05-28 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * latex-lab-prototype.dtx
+ Removed
+
+2022-14-04 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * documentmeta-support.dtx:
+ add key A-4 for first steps to support pdf/A-4
+
+2022-03-08 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * latex-lab-prototype.dtx
+ New file re-implementing ideas from on xtemplate.dtx using updated
+ keyval support
+
+2021-12-30 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * documentmeta-support.dtx:
+ cleaned up keys and bundle name
+ * added latex-lab-testphase.dtx for wrappers for the testphase
+ key.
+
+2021-12-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * README.md:
+ Add the bundle to support project work.
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-code.pdf b/macros/latex/required/latex-lab/documentmetadata-support-code.pdf
new file mode 100644
index 0000000000..a6dadb2e9c
--- /dev/null
+++ b/macros/latex/required/latex-lab/documentmetadata-support-code.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-code.tex b/macros/latex/required/latex-lab/documentmetadata-support-code.tex
new file mode 100644
index 0000000000..c051960ab9
--- /dev/null
+++ b/macros/latex/required/latex-lab/documentmetadata-support-code.tex
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\AlsoImplementation}
+\input{documentmetadata-support.dtx}
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf b/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
new file mode 100644
index 0000000000..1cfe4cdaf7
--- /dev/null
+++ b/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-doc.tex b/macros/latex/required/latex-lab/documentmetadata-support-doc.tex
new file mode 100644
index 0000000000..dcf45514d6
--- /dev/null
+++ b/macros/latex/required/latex-lab/documentmetadata-support-doc.tex
@@ -0,0 +1,6 @@
+% this will typeset only documentation but not the code
+
+\AtBeginDocument{\OnlyDescription
+ \let\tableofcontents\relax
+ }
+\input{documentmetadata-support.dtx}
diff --git a/macros/latex/required/latex-lab/documentmetadata-support.dtx b/macros/latex/required/latex-lab/documentmetadata-support.dtx
new file mode 100644
index 0000000000..23053a484a
--- /dev/null
+++ b/macros/latex/required/latex-lab/documentmetadata-support.dtx
@@ -0,0 +1,418 @@
+% \iffalse meta-comment
+%
+%% File: documentmetadata-support.dtx
+% Copyright (C) 2021-2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e
+%
+% for those people who are interested or want to report an issue.
+%
+% \begin{macrocode}
+\def\documentmetadatasupportversion{1.0b}
+\def\documentmetadatasupportdate{2022-14-04}
+% \end{macrocode}
+%
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{documentmetadata-support.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+%\NewDocElement[macrolike = false ,
+% toplevel = true,
+% idxtype = key ,
+% noprint = true ,
+% idxgroup = metadata keys ,
+% printtype = \textit{key}
+% ]{Mkey}{mkey}
+%
+%
+% \title{The \texttt{documentmetadata-support} code\thanks{This file
+% has version \documentmetadatasupportversion\ dated
+% \documentmetadatasupportdate, \copyright\ \LaTeX\
+% Project.}}
+% \author{Frank Mittelbach, Ulrike Fischer, \LaTeX{} Project}
+%
+% \maketitle
+%
+%
+% \section{Introduction}
+%
+% The kernel command \cs{DocumentMetadata}, which can be used as
+% the very first declaration in a document (i.e., before
+% \cs{documentclass}), defines metadata and other configuration
+% data that applies to the document as a whole (using a key/value
+% syntax).
+%
+% While the underlying functionality is still under
+% development (e.g., further keys will be added over time and keys
+% marked temporary may vanish again) the code for
+% \cs{DocumentMetadata} is place in a separate bundle, so that it
+% is easier to update it without the need to build a full \LaTeX{}
+% release. Over time the functionality will move fully into the
+% kernel.
+%
+% From a process perspective \cs{DocumentMetadata} loads the
+% \pkg{pdfmanagement} code the first time it is called and then
+% redefines itself to only manage key/value pairs in case it is
+% called more than once. In particular, this means that a document
+% without a \cs{DocumentMetadata} declaration has no code available
+% for extended management of PDF output as needed for various
+% features developed as part of the multi-year ``Tagged PDF''
+% project~\cite{blueprint}.
+%
+%
+%
+% \section{Currently supported key/values}
+%
+%
+% Currently the following keys are implemented for \cs{DocumentMetadata}:
+% \DescribeMkey{colorprofiles}
+% \DescribeMkey{debug}
+% \DescribeMkey{lang}
+% \DescribeMkey{pdfstandard}
+% \DescribeMkey{pdfversion}
+% \DescribeMkey{testphase}
+% \DescribeMkey{uncompress}
+%
+% \begin{description}
+% \item[\texttt{backend}] Passes the backend name to expl3. This is
+% needed only if the needed backend can't be automatically
+% determined or if the workflow used requires a special backend.
+%
+%^^A This will probably be extended to pass the value also to
+%^^A packages.
+%
+% \item[\texttt{pdfversion}] Sets the PDF version explicitly, e.g., \texttt{pdfversion=1.7}
+% \item[\texttt{uncompress}] (no value) Forces an uncompressed pdf
+% --- mainly for debugging purposes.
+%
+% \item[\texttt{lang}] Explicitly sets the Lang entry in the Catalog,
+% e.g., \texttt{lang=de-DE}. If not given the default value used is |en-US|.
+%
+% \item[\texttt{pdfstandard}] Choice key to set the pdf standard.
+% Currently |A-1b|, |A-2a|, |A-2b|, |A-2u|, |A-3a|, |A-3b|, |A-3u| and |A-4| are accepted as
+% values. The casing is irrelevant, |a-1b| works too.
+% The underlying code to ensure the requirements (as far as they
+% can be ensured) is still incomplete, but a color profile is included and the
+% \texttt{/OutputIntent} is set. The |u| variants for example do not force unicode,
+% but they will pass the information to hyperref and hyperxmp. The |a| variants
+% do \emph{not} enforce (or even test) a tagged pdf yet. The |A-4| support is
+% currently incomplete.
+% More information can be found in the documentation
+% of \pkg{l3pdfmeta}.
+%
+% \item[\texttt{colorprofiles}] This allows to load icc-colorprofiles. Details
+% are described in the documentation of \pkg{l3pdfmeta}.
+%
+% \item[\texttt{testphase}] This key is used to load testphase code. The values it accepts
+% and their effect will change over time, when testphase packages are added or
+% removed or when the code is moved into the kernel.
+% \begin{description}
+% \item[\texttt{phase-I}]
+% This value loads code implementing the first phase of the project~\cite{blueprint}, i.e., it
+% will load the tagpdf package. It will also activate tagging by issuing
+% |\tagpdfsetup{activate,interwordspace}|. This phase
+% is frozen.
+% \item[\texttt{phase-II}]
+% This is the current development phase.
+% Currently it differs from \texttt{phase-I} only in one point: It will
+% additionally activate tagging of paragraphs with
+% |\tagpdfsetup{paratagging}|. In the upcoming months it will
+% also enable automatic tagging of other basic document elements.
+% \end{description}
+% The |testphase| key can only be used in the first \cs{DocumentMetadata}.
+%
+% \item[\texttt{debug}] This key activates some debug options. It takes a list of key-values
+% as value. Currently the following keys are known:
+% \begin{description}
+% \item[\texttt{para}] with the default and only value |show|. It will activate the |paratagging-show|
+% option of \pkg{tagpdf},
+% \item[\texttt{log}] with the values as described in the documentation \pkg{tagpdf},
+% \item[\texttt{uncompress}] which does the same as |uncompress| as main key
+% \item[\texttt{pdfmanagement}] a boolean which allows to deactivate the pdfmanagement.
+% \item[\texttt{firstaidoff}] This accepts a comma lists of keywords and disables the patches
+% related to them. More information can be found in the documentation of
+% \pkg{pdfmanagement-firstaid}.
+% \end{description}
+% \end{description}
+%
+% \bibliographystyle{plain}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{blueprint} Frank Mittelbach and Chris Rowley:
+% \emph{\LaTeX{} Tagged PDF\,---\,A blueprint for a large project}.
+% \url{https://latex-project.org/publications/indexbyyear/2020/}
+%
+% \end{thebibliography}
+%
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
+%
+% \begin{implementation}
+%
+% \section{The Implementation}
+%
+%
+% \begin{macrocode}
+%<@@=pdfmanagement>
+%<*code>
+% \end{macrocode}
+%
+% \begin{macrocode}
+
+\RequirePackage{pdfmanagement-testphase}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn\makeatletter
+% \end{macrocode}
+
+
+
+% \begin{macro}{\DocumentMetadata}
+%
+% \cs{DocumentMetadata} should not be used after
+% \cs{documentclass} so we error in this case.
+% It can be used more than once
+% but follow-up calls should not do the initialization code.
+% \begin{macrocode}
+\cs_set_protected:Npn \DocumentMetadata #1
+ {
+ \cs_if_eq:NNTF \documentclass \@twoclasseserror
+ { \msg_error:nn { meta } { after-class } }
+ {
+% \end{macrocode}
+%
+% The wanted backend must be detected first, we read the init
+% key and then force the loading of the backend.
+% The backend can contain management commands, so the boolean should
+% be set to true first.
+% \begin{macrocode}
+ \bool_gset_true:N \g_@@_active_bool
+ \keys_set_groups:nnn { document / metadata} {init}{ #1 }
+ %if no backend has been loaded force it now:
+ \str_if_exist:NF \c_sys_backend_str
+ {
+ \sys_load_backend:n {}
+ }
+% \end{macrocode}
+% Now we load the extra backend code:
+% \begin{macrocode}
+ \ExplSyntaxOn\makeatletter
+ \file_input:n {l3backend-testphase-\c_sys_backend_str.def}
+ \ExplSyntaxOff\makeatother
+% \end{macrocode}
+% Set the default language (this requires that the backend has been loaded),
+% process the rest of the keys,
+% and setup the generic driver.
+% \begin{macrocode}
+ \keys_set_filter:nnn { document / metadata } { init } { lang=en-US, #1 }
+ \bool_if:NT \g_@@_active_bool
+ {
+ \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+ }
+% \end{macrocode}
+% \cs{pdfmanagement_add:nnn} has collected values in this hook.
+% \begin{macrocode}
+ \hook_use_once:n {pdfmanagement/add}
+% \end{macrocode}
+% Now we redefine \cs{DocumentMetadata} so that it only process the
+% keys on any further calls.
+%
+% We need to update the hyperref option if the active status changes.
+% \begin{macrocode}
+ \cs_set_protected:Npn \DocumentMetadata ##1
+ {
+ \keys_set_filter:nnn { document / metadata } { init } { ##1 }
+ \str_remove_all:cn {opt@hyperref.sty}{customdriver=hgeneric-testphase}
+ \bool_if:NT \g__pdfmanagement_active_bool
+ {
+ \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+ }
+ }
+% \end{macrocode}
+% Load more modules, the testphase code and the firstaid code. The code is only
+% loaded in the first \cs{DocumentMetadata} call!
+% \begin{macrocode}
+ \g_@@_testphase_tl
+ \RequirePackage{pdfmanagement-firstaid}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+% \begin{macrocode}
+%FMi defined elsewhere
+%FMi
+%FMi \clist_new:N \g_@@_firstaidoff_clist
+%FMi \tl_new:N \g_@@_testphase_tl
+% UFi should the definition move to here?
+\keys_define:nn { document / metadata }
+ {
+ backend .choices:nn =
+ { dvipdfmx , dvips , dvisvgm , luatex , pdftex , pdfmode , xdvipdfmx , xetex }
+ {
+ \sys_load_backend:n {#1}
+ },
+ backend .groups:n = { init } ,
+ }
+
+\keys_define:nn { document / metadata }
+ {
+ ,pdfversion .code:n =
+ {
+ \pdf_version_gset:n { #1 }
+ \AddToDocumentProperties[document]{pdfversion}{#1}
+ }
+ ,uncompress .code:n =
+ {
+ \pdf_uncompress:
+ }
+ ,uncompress .value_forbidden:n = true
+ ,lang .code:n =
+ {
+ \pdfmanagement_add:nnn {Catalog} {Lang}{(#1)}
+ \AddToDocumentProperties[document]{lang}{#1}
+ }
+ %,xmpmeta .bool_gset:N = \g_pdfmeta_xmp_bool %see pdfmeta unused and undefined for now!
+ % this uses internal command from pdfmeta, it should probably move there ...
+ ,pdfstandard .code:n =
+ {
+ \exp_args:Nnx
+ \keys_set:nn {document / metadata} {_pdfstandard=\str_uppercase:n{#1}}
+ }
+ ,_pdfstandard .choices:nn =
+ {A-1B,A-2A,A-2B,A-2U,A-3A,A-3B,A-3U,A-4}
+ {
+ \prop_if_exist:cT { g__pdfmeta_standard_pdf/#1_prop }
+ {
+ \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/#1 _prop }
+ }
+ \AddToDocumentProperties [document]{pdfstandard}{#1}
+ }
+ ,_pdfstandard / unknown .code:n =
+ {
+ \msg_warning:nnn{pdf}{unknown-standard}{#1}
+ }
+ ,testphase .multichoice:
+ ,testphase / tagpdf .code:n =
+ {
+ \tl_gput_right:Nn\g_@@_testphase_tl
+ {
+ \file_if_exist_input:nF {tagpdf-latex-lab-testphase.ltx}
+ {
+ \RequirePackage{tagpdf}
+ \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+ \tagpdfsetup{activate,paratagging,interwordspace}
+ \AddToDocumentProperties [document]{tagging}{active}
+ \AddToDocumentProperties [document]{tagging/para}{active}
+ \AddToDocumentProperties [document]{tagging/interwordspace}{active}
+ }
+ }
+ }
+ ,testphase / unknown .code:n =
+ {
+ \tl_gput_right:Nn\g_@@_testphase_tl
+ {
+ \AddToDocumentProperties [document]{testphase/#1}{loaded}
+ \file_if_exist_input:nF {#1-latex-lab-testphase.ltx}
+ {
+ \msg_warning:nnn{meta}{latex-lab-pkg-missing}{#1}
+ \AddToDocumentProperties [document]{testphase/#1}{missing}
+ }
+ }
+ }
+ ,activate .multichoice:
+ ,activate / tagging .code:n =
+ {
+ \PackageWarning{pdfmanagement-testphase}
+ {The~activate~key~is~deprecated.\MessageBreak
+ Tagging~is~activated~with~'testphase=tagpdf'~directly}{}
+ }
+ ,debug .code:n =
+ {
+ \keys_set:nn { document / metadata / debug } {#1}
+ }
+ ,debug / para .code:n =
+ {
+ \AddToHook
+ {
+ package/tagpdf/after
+ }
+ {
+ \tagpdfsetup{paratagging-show}
+ }
+ }
+ ,debug / log .code:n =
+ {
+ \AddToHook
+ {
+ package/tagpdf/after
+ }
+ {
+ \tagpdfsetup{log=#1}
+ }
+ }
+ ,debug / uncompress .code:n =
+ {
+ \pdf_uncompress:
+ }
+ ,debug / pdfmanagement .bool_gset:N = \g_@@_active_bool
+ ,debug / firstaidoff .clist_gset:N = \g_@@_firstaidoff_clist
+ }
+
+
+% \end{macrocode}
+% \subsection{Messages}
+% \begin{macrocode}
+%UFi is meta the right module name here?
+\prop_gput:Nnn \g_msg_module_type_prop { meta } { LaTeX }
+\prop_gput:Nnn \g_msg_module_name_prop { meta } { DocumentMetadata }
+
+\msg_new:nnn { meta } { after-class }
+ {
+ \token_to_str:N \DocumentMetadata \c_space_tl
+ should~be~used~only~before~\token_to_str:N\documentclass
+ }
+\msg_new:nnn { meta } { latex-lab-pkg-missing }
+ {
+ LaTeX-lab~package~'#1'~not~found.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff\makeatother
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%</code>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \Finale
+%
diff --git a/macros/latex/required/latex-lab/latex-lab-footnotes.dtx b/macros/latex/required/latex-lab/latex-lab-footnotes.dtx
new file mode 100644
index 0000000000..330ae7b0cc
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-footnotes.dtx
@@ -0,0 +1,1822 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-footnotes.dtx
+% Copyright (C) 2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{latex-lab-footnotes.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-footnotes} code\thanks{}}
+% \author{Frank Mittelbach, \LaTeX{} Project}
+%
+% \maketitle
+%
+% \newcommand\fmi[1]{\begin{quote} TODO: \itshape #1\end{quote}}
+% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
+% \providecommand\class[1]{\texttt{#1.cls}}
+% \providecommand\pkg[1]{\texttt{#1}}
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \emph{to be written}
+% \end{abstract}
+%
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+% This code reimplements the footnote interfaces for \LaTeX{}
+% offering configurable methods for layout and functionality
+% adjustments that avoid overwriting each other when used in
+% classes as well as in packages (as far as possible --- obviously
+% some adjustments are mutally exclusive). This is achieved by
+% providing a a larger number of hooks (for areas where different
+% packages/classes can easily coexist with their adjustments) and a
+% number of configuration points to which only one class or package
+% can write to successfully (in case of multiple changes the the
+% last one wins). The latter are for special functionality, e.g.,
+% if footnote text is typeset as a single paragraph, it can't be configured
+% the same time to be typeset vertically with one footnote below
+% each other.
+%
+% The interfaces are set up to support tagged PDF, but in order
+% for this to work, all packages altering the fontnote setup should
+% use the inferfaces provided here and not do it through the
+% legacy methods (though there is some support for the latter as
+% well, but if will not work in a cases).
+%
+% \subsection{Configuration methods}
+%
+% Historically, the footnote setup in \LaTeX{} was done by
+% providing definitions for \cs{@makefnmark} (format the footnote
+% mark in running text and in front of the footnote text) and
+% \cs{@makefntext} (formatting the footnote text and placing a mark
+% in front of it).
+%
+% There was a default definition for \cs{@makefnmark} in the format
+% that was used by most document classes,
+% but \cs{@makefntext} had to be defined in the class itself because
+% the format didn't provide a default. As a result you will find
+% definitions for the latter in all document classes and defintions
+% for \cs{@makefnmark} only in very few.
+%
+% Furthermore, to enable special footnote layouts or provide
+% additional functionality a few packages (and a few classes)
+% overwrote other internal commands of \LaTeX's footnote
+% mechanism. The commands affected in this way are mainly
+% \cs{@footnotemark} and \cs{@footnotetext}. These overwrites could
+% not be used in combination, so either the packages/classes had to
+% be aware of being loaded together (which they sometimes did or
+% tried to) or they would fail by overwriting each other
+% unconditionally.
+%
+% The present rewrite is an attempt to improve this situation, but
+% of course, it will only work if all packages/classes make use of
+% the new interfaces. Fortunately, the number of problematical
+% packages altering these internal commands are fairly small so
+% arranging for updates is a realistic goal --- to achieve properly
+% tagged PDF it is a requirement.
+%
+%
+%
+% \section{Hooks and configuration points}
+%
+% Note: the configuration points do not have an interface mechanism
+% yet and all their names are temporary right now.
+% Also note that configuration points are of interest only to very
+% few specialized packages, mainly \pkg{footmisc}, and packages
+% providing similar functionality---the current documentation is
+% therefore fairly sketchy.
+%
+% In contrast the hooks are of interest to many classes to provide
+% their layout alterations in a way that it works smoothly with
+% other packages handling aspects of foonote formatting.
+%
+%
+% \subsection{Formatting the mark in the main text}
+%
+% This implements formatting the mark\footnote{Like this one.} and
+% its relation to surrounding text, e.g., if several marks appear
+% in the same place, etc.
+%
+%
+% \subsubsection{Configuration points}
+%
+% None: everything is implemented through a single definition for
+% \cs{@footnotemark} that offers a number of hooks that can be used
+% by packages to implement handling of multiple marks and the
+% formatting of marks.
+%
+%
+% \subsubsection{Hooks}
+%
+% The hooks to customize the marks in the text are the following:
+% \begin{description}
+% \item[\hook{fnmark/before}]
+%
+% Executed at the very beginning of \cs{footnotemark}. Currently
+% there are two packages (\pkg{bibarts} and \pkg{chextras}) that
+% prepend material at this point (not ncessarily correctly, e.g.,
+% they do not all check that they are in horizontal mode).
+%
+% This hook is paired with hook \hook{fnmark/after}.
+%
+% \item[\hook{fnmark}]
+%
+% Executed in horizontal mode and after the current space factor
+% has been saved away for reuse. This is where currently code for multiple
+% marks does its preparation (as done by \pkg{footmisc} and
+% others).
+%
+% The hook is only executed in hmode, i.e., not if the mark is
+% generated in math --- maybe that means the multiple handling
+% should happen later?
+%
+% After the hook \cs{nobreak} is executed, so any
+% ``material'' added in the hook is tied to the following mark
+% unless it contains its own permissible penalty.
+%
+% \item[\hook{fnmark/begin}]
+%
+% This hook is executed directly in front of the typeset mark.
+% This is the place where \pkg{hyperref} adds part of its code,
+% i.e., after the \cs{nobreak} mentioned above. With a closer
+% integration of \pkg{hyperref} this hook may not be necessary at
+% all.
+%
+% \item[\hook{fnmark/end}]
+%
+% This hook is executed directly after the typeset mark. It is
+% used by \pkg{hyperref}, \pkg{memhfixc}, \pkg{scrlttr2}, and
+% \pkg{footmisc}. Used, for example, to implement support for
+% multiple marks in succession.
+%
+% It is \emph{not} a reversed hook.
+%
+%
+% \item[\hook{fnmark/after}]
+%
+% This hook is executed at the very end of the \cs{footnotemark} command.
+%
+% It is a reversed hook to pair with \hook{fnmark/before}
+% \end{description}
+%
+%
+%
+%
+% \subsubsection{Additional configuration possibilities}
+%
+% The actual formatting is done through \cs{@makefnmark} --- no
+% special customization support for now.
+%
+%
+%
+% \subsection{Formatting the footnote text}
+%
+% This implements the formatting of the footnote text the way it
+% appears at the bottom of the page (default case), or possibly
+% elsewhere, e.g. in the margin.
+%
+% \subsubsection{Configuration points}
+%
+% To cater for different layout configurations there are four
+% configuration points which can be set only by one package or
+% class, if two packages/classes set them they are mutually
+% incompatible.
+% These are:
+% \begin{description}
+% \item[\cs{@footnotetext@cfgpoint} (1 argument)]
+%
+% This receives all material that is to be processed (or stored)
+% including color protection code and what have you. The default
+% definition is to run \cs{insert}\cs{footins}.
+%
+% \item[\cs{@footnotetext@cfgpointii} (1 argument)]
+%
+% The default definition runs \cs{@makefntext} which contains
+% various hooks for customization. For most scenarios this is
+% sufficient. However, when running all footnotes as a single
+% paragraph at the bottom, then each footnote needs to be
+% prepared prior to storing in the insert and this configuration
+% point allows running extra code to do that.
+%
+% \item[\cs{@footnotetext@cfgpointiii} (no argument)]
+%
+% By default this configuration point adds a strut to the
+% footnote material. so that consecutive footnotes are properly
+% spaced vertically. In some use cases this is not appropriate
+% (e.g., when running all footnotes s a single paragraph) and so
+% this configuration point can cancel the action or do something
+% else instead.
+%
+% The configuration point is executed near the start of the
+% argument for the configuration point
+% \cs{@footnotetext@cfgpointii}.
+%
+% \item[\cs{@footnotetext@cfgpointiv} (no argument)]
+%
+% This configuration point is executed at the very end of the
+% argument passed to \cs{@footnotetext@cfgpointii}.
+% By default it adds a final strut as long as we are still in
+% horizontal mode (i.e., processing the footnote text paragraph.
+% When running several footnotes in one paragraph some additional
+% material (some horizontal glue) needs adding at this point.
+%
+% \end{description}
+% The configuration point \cs{@footnotetext@cfgpointii} runs
+% \cs{@makefntext} and this command contains two further
+% configuration points (and a few hooks):
+% \begin{description}
+% \item[\cs{@makefntext@cfgpoint} (1 argument)]
+%
+% This configuration point receives the material to typeset the
+% footnote mark. By default, all it does is running \cs{indent}
+% to get a paragraph indentation (if one is set up---in most
+% layouts it is 0~points) and then typesets the mark, but in
+% some designs it executes more elaborate code.
+%
+% If tagging is produced this configuration point is also
+% responsible for surrounding the mark with the appropriate tags
+% marking the mark as an Lbl. It does this using the command \cs{tag@FELbl}.
+%
+% \item[\cs{@makefntext@cfgpointii} (1 argument)]
+%
+% This configuration point manages the formatting of the footnote
+% text once the mark has been typeset.
+%
+% If tagging is produced this configuration point is also
+% responsible for surrounding the mark with the appropriate tags
+% marking the mark as an MC of type FENote. It does this using
+% the command \cs{tag@FENote}.
+%
+% \end{description}
+%
+%
+% The above configuration points are sufficient to implement all
+% commonly used footnote layouts assuming L-R typesetting. For R-L
+% typesetting they or may or may not need some extension (though
+% that is not clear right now).
+%
+%
+%
+% \subsubsection{Hooks}
+%
+% \begin{description}
+% \item[\hook{fntext/before}]
+%
+% Executed at the very beginning of \cs{footnotetext}. Currently
+% there is on package (\pkg{linguex}) that
+% prepends material at this point.
+%
+% This hook is paired with hook \hook{fnmark/after}.
+%
+% \item[\hook{fntext}]
+%
+% Executed at the beginning of the material passed to the first
+% configuration point. Typically used to set any baseline
+% stretch for the footnote text, e.g., by \pkg{setspace},
+% \pkg{footmisc}, \class{uathesis} and others. Could be done in a
+% later hook but is a bit more efficient here.
+%
+% After the hook has run, the font is established, i.e., it can't
+% be used to set a different font size.
+%
+% \item[\hook{fntext/para}]
+%
+% After the font is set default paragraph parameters are set up
+% including \cs{interlinepenalty}, \cs{hsize}, \cs{parindent} and
+% a number of others, as some of them depend on the font
+% size. Then the \hook{fntext/para} is run. If one wants to
+% change the font size, it is probably necessary to reset these
+% other parameters too, e.g., \cs{parindent}, which can be done
+% here.
+%
+% The configuration point \cs{@footnotetext@cfgpointii} normally
+% runs the command \cs{@makefntext} or some code that eventually
+% runs this command, and this then produces the footnote mark (in
+% front of the footnote text) and the formatted footnote text. In
+% front of both the mark and the footnote text some classes have
+% placed paragraph parameter adjustments in their redefinition of
+% \cs{@makefntext}. However, there is no need to place it there
+% it could equally well go into the \hook{fntext/para} hook. We
+% therefore do not provide another hook at this point.
+%
+% \item[\hook{fntext/begin} \& \hook{fntext/end}]
+%
+% The footnote text itself is surrounded by the hooks
+% \hook{fntext/begin} and \hook{fntext/end}. The two hooks are
+% not paired as they are typically used independently.
+%
+% \item[\hook{fntext/after}]
+%
+% At the very end of \cs{footnotetext} we execute the hook
+% \hook{fntext/after} which is a reversed hook paired with
+% \hook{fntext/before}. Some packages, e.g., \pkg{linuex}, have
+% code in that position.
+%
+% \end{description}
+%
+%
+%
+%
+% \subsubsection{Additional configuration possibilities}
+%
+% The formatting of the footnote mark in front of the footnote
+% texts is influenced by the setting of the dimen parameter
+% \cs{footnotemargin}. By default its value is 1.8em in the current
+% text font (or \texttt{-}\cs{maxdimen} when the para option is
+% chosen). The following rules apply:
+% \begin{itemize}
+% \item
+%
+% If it has the value \texttt{-}\cs{maxdimen} then the mark is
+% generated by \cs{@makefnmark}.
+%
+% \item
+%
+% Otherwise, if the value is
+% negative then the mark is placed into an \cs{llap} left aligned
+% in a box of size \texttt{-}\cs{footnotemargin}.
+%
+% \item
+%
+% If the value is zero an \cs{llap} is used without an inner box.
+%
+% \item
+%
+% If the value is greater zero (but less than \cs{maxdimen}) the
+% mark is placed right aligned into a box of size
+% \cs{footnotemargin}.
+%
+% \item
+%
+% The value \cs{maxdimen} is used as a marker to indicate that
+% no value was given and that the default should be used,
+% i.e. 1.8em or \texttt{-}\cs{maxdimen} depending on the chosen
+% option.
+% \end{itemize}
+%
+%
+% \section{Tagging support}
+%
+% \emph{To be documented}
+%
+%
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+% All this is very rough and misses a lot of documentation.
+%
+% \begin{macrocode}
+%<*kernel>
+%<@@=fnote>
+% \end{macrocode}
+%
+% \subsection{File declaration}
+% \begin{macrocode}
+\ProvidesFile{latex-lab-footnotes.ltx}
+ [2022-03-10 v0.6a changes to the footnote interfaces]
+% \end{macrocode}
+%
+% \begin{macrocode}
+
+% latex.ltx
+
+ % not looked at yet
+
+\long\def\@mpfootnotetext#1{%
+ \global\setbox\@mpfootins\vbox{%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \def\@currentcounter{mpfootnote}%
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \par
+ \color@endgroup}}
+
+
+\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+
+
+
+\def\@mpfn{footnote}
+\def\thempfn{\thefootnote}
+
+
+
+%-------------------------------------
+
+
+\ExplSyntaxOn
+
+
+\cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 {
+ \tl_if_novalue:nTF {#1}
+ {
+ \stepcounter {#2}
+ \protected@xdef \@thefnmark { \use:c { the#2 } }
+ }
+ {
+ \group_begin:
+% \end{macrocode}
+% Note that this is a local assignment even though \LaTeX{}
+% counters are normally globally changed. This is the way it was in
+% 2e and so far we haven't changed it. The alternative would be to
+% store the current value and restore it after \cs{@thefnmark} is
+% altered.
+% \begin{macrocode}
+ \int_set:cn { c@#2 }{ #1 }
+ \unrestored@protected@xdef \@thefnmark { \use:c { the#2 } }
+ \group_end:
+ }
+}
+
+\cs_new_protected:Npn \fnote_set_fnmark:nn #1#2 {
+ \tl_if_novalue:nTF {#1}
+ {
+ \protected@xdef \@thefnmark { \use:c { the#2 } }
+ }
+ {
+ \group_begin:
+ \int_set:cn { c@#2 }{ #1 }
+ \unrestored@protected@xdef \@thefnmark { \use:c { the#2 } }
+ \group_end:
+ }
+}
+
+%-------------------------------------
+
+% the debugging code is just temp
+\bool_new:N \g_fnote_debug_bool
+\bool_gset_true:N \g_fnote_debug_bool % for now we have debugging turned on by default
+
+%-------------------------------------
+
+
+
+\NewMirroredHookPair{fnmark/before}{fnmark/after}
+\NewHook{fnmark}
+\NewHook{fnmark/begin}
+\NewHook{fnmark/end}
+
+
+\cs_new:Npn \@@_debug_footnotemark: {
+ \bool_if:NT \g_fnote_debug_bool
+ {
+ \LogHook{fnmark/before}
+ \LogHook{fnmark}
+ \LogHook{fnmark/begin}
+ \LogHook{fnmark/end}
+ \LogHook{fnmark/after}
+ \cs_gset_eq:NN \@@_debug_footnotemark: \prg_do_nothing:
+ }
+}
+
+
+\cs_new_protected:Npn \fnote_footnotemark: {
+ \@@_debug_footnotemark:
+%-------
+% bibarts
+% chextras --- actually in the wrong place does an \unskip
+ \UseHook{fnmark/before}
+%-------
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}
+%-------
+% bxjsja-minimal.def --- what they do could be done at ``bibarts''
+% (a bit less efficient)
+% memhfixc.sty
+% footmisc.sty
+ \UseHook{fnmark}
+%-------
+ \nobreak
+ \fi
+%-------
+% hyperref.sty
+ \UseHook{fnmark/begin}
+%-------
+ \@kernel@process@makefnmark
+ \@makefnmark
+%-------
+% \end{macrocode}
+% If a footnote mark is placed by its own then it should finish by
+% executing \hook{fnmark/end}, resetting the space factor, and
+% finishing with \hook{fnmark/after}. However, inf a complete
+% footnote these actions have to happen only after we have handled
+% the footnote text (e.g., by placing it into an \cs{insert}. In
+% such a situation \cs{_@@_footmark_finish:} below does nothing
+% and the action is carried out later.
+% \begin{macrocode}
+ \@@_footnotemark_finish:
+}
+
+
+\cs_new:Npn \@@_finish: {
+% hyperref.sty
+% memhfixc.sty --- could move fnmark/after
+% scrlttr2.cls --- could vanish if footmisc uses a hook
+% footmisc.sty
+ \UseHook{fnmark/end}
+%-------
+ \ifhmode
+ \spacefactor \@x@sf \relax
+ \fi
+%
+%-------
+ \UseHook{fnmark/after}
+%-------
+}
+
+
+\cs_new_eq:NN \@@_footnotemark_finish: \@@_finish:
+
+
+
+% Not a public config point but the kernel hook to add tagging
+\def \@kernel@process@makefnmark { }
+
+
+% alterations not covered:
+%
+% ./arabtex/afoot.sty --- too different (and probably too old)
+
+
+% Provide the name \LaTeXe{} is used to.
+
+\cs_set_eq:NN \@footnotemark \fnote_footnotemark:
+
+
+
+%-------------------------------------
+
+\NewMirroredHookPair{fntext/before}{fntext/after}
+\NewHook{fntext}
+\NewHook{fntext/para}
+\NewHook{fntext/begin}
+\NewHook{fntext/end}
+
+
+\cs_new:Npn \@@_debug_footnotetext: {
+ \bool_if:NT \g_fnote_debug_bool
+ {
+ \cs_log:N\@footnotetext@cfgpoint
+ \cs_log:N\@footnotetext@cfgpointii
+ \cs_log:N\@footnotetext@cfgpointiii
+ \cs_log:N\@footnotetext@cfgpointiv
+ \cs_log:N\@makefntext@cfgpoint
+ \cs_log:N\@makefntext@cfgpointii
+ \LogHook{fntext/before}
+ \LogHook{fntext}
+ \LogHook{fntext/para}
+ \LogHook{fntext/begin}
+ \LogHook{fntext/end}
+ \LogHook{fntext/after}
+% \end{macrocode}
+% Show the info only once (if at all).
+% \begin{macrocode}
+ \cs_gset_eq:NN \@@_debug_footnotetext: \prg_do_nothing:
+ }
+ }
+
+\cs_new_protected:Npn \fnote_footnotetext:n #1 {
+ \@@_debug_footnotetext:
+%-------
+% ./linguex/linguex.sty
+ \UseHook{fntext/before}
+%-------
+ \@kernel@process@footnotetext
+ \@footnotetext@cfgpoint { % config point
+%-------
+% resetting baselinestretch ... (could be done further down)
+% ./uafthesis/uafthesis.cls
+% ./setspace/setspace.sty
+% ./footmisc/footmisc.sty (normal)
+ \UseHook{fntext}
+%-------
+ \reset@font
+ \footnotesize
+%-------
+% some classes use a different font size, e.g.,
+% ./nrc/nrc1.cls ./nrc/nrc2.cls
+% but those could be done in fntext/para instead
+%-------
+% \end{macrocode}
+% In case of sidenotes the next settings are pointless, but as they
+% do not hurt (except for the \cs{hsize} setting) and are needed
+% for all other cases we make them here and overwrite them for side notes
+% \begin{macrocode}
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \parindent 1em % typical default used in \@makefntext moved up here
+ \def\@currentcounter{footnote}
+ \protected@edef \@currentlabel { \p@footnote \@thefnmark }
+%-------
+% for altering para parameters ...
+% code for resphilosophica came earlier but it could go here.
+% Has the advantage that one can also overwrite \cs{@currentcounter}
+% and \cs{@currentlabel} is that is necessary.
+%
+% ./resphilosophica/resphilosophica.cls
+ \UseHook{fntext/para}
+%-------
+ \color@begingroup
+%-------
+% fnpara wants to replace \@makefntext{...} and para and side option of footmisc etc too ...
+% so we make this a config point
+%-------
+ \@footnotetext@cfgpointii % config point
+ {
+%-------
+% ./resphilosophica/resphilosophica.cls
+%-------
+ \@footnotetext@cfgpointiii % config point
+%-------
+% bibarts
+% fnbreak.sty
+ \UseHook{fntext/begin}
+%-------
+ \ignorespaces
+ #1
+%-------
+% bibarts
+% fnbreak.sty
+ \UseHook{fntext/end}
+%-------
+ \@footnotetext@cfgpointiv % config point
+ }
+ \par
+ \color@endgroup
+ }
+%-------
+% ./linguex/linguex.sty
+ \UseHook{fntext/after}
+%-------
+}
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@footnotetext@cfgpoint { \insert\footins }
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@footnotetext@cfgpointii { \@makefntext }
+
+
+% default for config point (0 args)
+\cs_new_protected:Npn \@footnotetext@cfgpointiii { \rule\z@\footnotesep }
+
+% default for config point (0 args)
+\cs_new_protected:Npn \@footnotetext@cfgpointiv { \@finalstrut\strutbox }
+
+
+% kernel hook for tagging (2 args)
+\cs_new_protected:Npn \@kernel@process@footnotetext {}
+
+% Provide the name \LaTeXe{} is used to and do this unconditionally
+% (no patching of class code if any). This means that if a class provides it own
+% definition that gets lost and if necessary needs to be handled
+% with firstaid (or updating of the class.
+
+\AddToHook{begindocument}{
+ \cs_set_eq:NN \@footnotetext \fnote_footnotetext:n
+}
+
+% alterations not covered:
+%
+% ./revtex4-1/revtex4-1.cls ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ... (need analysis)
+% ./bigfoot/bigfoot.sty
+
+
+
+% \footnotemargin is the logic implemented by footmisc. Perhaps we
+% don't want to do this like that in the kernel but for now I have
+% used this interface unchanged.
+
+
+\newdimen\footnotemargin
+\footnotemargin\maxdimen % no value given
+
+\AtBeginDocument{
+ \ifdim \footnotemargin=\maxdimen
+ \setlength\footnotemargin{1.8em}
+ \fi
+}
+
+
+\cs_new_protected:Npn \fnote_makefntext:n #1 {
+% \end{macrocode}
+% Some classes in their redefinition for \cs{@makefntext} have
+% places some paragraph parameters at this point, but those can
+% equally well go into the hook \hook{fntext/para}. We therefore do
+% not provide a further hook at this point.
+% \begin{macrocode}
+ \@makefntext@cfgpoint
+ {
+ \ifdim\footnotemargin>\z@
+ \hb@xt@ \footnotemargin{\hss\@makefnmark}
+ \else
+ \ifdim\footnotemargin=\z@
+ \llap{\@makefnmark}
+ \else
+ \ifdim\footnotemargin=-\maxdimen
+ \@makefnmark
+ \else
+ \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}
+ \fi
+ \fi
+ \fi
+ }
+ \@makefntext@cfgpointii
+ { #1 }
+}
+
+
+
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@makefntext@cfgpoint { \noindent }
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@makefntext@cfgpointii #1 { #1 }
+% \end{macrocode}
+%
+%
+%
+% If the definition for \cs{@makefntext} is that of the standard
+% classes then replace it with \cs{fnote_makefntext:n}, otherwise
+% try to patch the definition.
+%
+% Here is the the definition the way it is in
+% \texttt{classes.dtx}. Notice that (for saving space) there is no
+% space after \texttt{em} to terminate the assignment. We need to
+% mimic that, otherwise a test would return false even if the
+% definition has not been modified.
+%
+% \begin{macrocode}
+\newcommand\old@std@class@makefntext[1]{%
+ \parindent 1em%
+ \noindent
+ \hb@xt@1.8em{\hss\@makefnmark}#1}
+
+% \end{macrocode}
+% Here is the messy code for patching. Note that this is only there
+% to help classes along that aren't updated yet so it does some
+% minimal patching to hopefully add configuration points in the
+% right place.
+%
+% What it does is roughly the
+% following: It look for a definition of \cs{@makefntext} of the form
+%\begin{verbatim}
+% {AAA \hbox BBB { CCC } DDD #1 EEE }
+%\end{verbatim}
+% where ``BBB'' is something like \texttt{to 1em} or similar. It then
+% replaces that with
+%\begin{verbatim}
+% {AAA \@makefntext@cfgpoint{\hbox BBB { CCC }} DDD
+% \@makefntext@cfgpointii{#1} EEE }
+%\end{verbatim}
+% The patching is not very careful, i.e., it assumes there is only
+% one \verb=#1= in the replacement text and that a \cs{hbox} found
+% is the right one to patch. But that is enough to cater for all
+% definitions of \cs{@makefntext} out there in the TL distribution.
+%
+% If \cs{hbox} is not found it tries the same looking for
+% \cs{hb@xt@} which is what some classes use and if that is not
+% found either it assume that this is a version that uses
+% \cs{@makefnmark} without surrounding it in a box and if that
+% fails it gives up with an \cs{ERROR} (which needs to get a proper definition).
+% \begin{macrocode}
+
+\tl_new:N \l_@@_patch_tl
+\cs_new_eq:NN \@@_tmp:w \ERROR
+
+\cs_new_protected:Npn \@@_patch:
+ {
+ \tl_set:No \l_@@_patch_tl { \@makefntext { \@makefntext@cfgpointii{##1} } }
+ \tl_if_in:NnTF \l_@@_patch_tl { \hbox }
+ { \cs_set_eq:NN \@@_tmp:w \@@_patch_hbox:w }
+ {
+ \tl_if_in:NnTF \l_@@_patch_tl { \hb@xt@ }
+ { \cs_set_eq:NN \@@_tmp:w \@@_patch_hb@xt@:w }
+ {
+ \tl_if_in:NnTF \l_@@_patch_tl { \@makefnmark }
+ { \cs_set_eq:NN \@@_tmp:w \@@_patch_@makefnmark:w }
+ { \ERROR
+ \cs_set_eq:NN \@@_tmp:w \exp_stop_f: }
+ }
+ }
+ \tl_set:Nf \l_@@_patch_tl
+ { \exp_after:wN \@@_tmp:w \l_@@_patch_tl }
+ \cs_set:Npn \@@_tmp:w { \long \def \@makefntext ####1 }
+ \exp_after:wN \@@_tmp:w \exp_after:wN { \l_@@_patch_tl }
+ }
+% \end{macrocode}
+%
+% If \cs{@makefntext} contains \cs{hbox} then grab ``AAA'' as
+% \verb=#1= and ``BBB'' (up to the open \verb={=) and return it as
+%\begin{verbatim}
+% AAA \@makefntext@processX { \hbox BBB }
+%\end{verbatim}
+% \begin{macrocode}
+\cs_new:Npn \@@_patch_hbox:w #1 \hbox #2 #
+ { \exp_stop_f: #1 \@makefntext@processX { \hbox #2 } }
+% \end{macrocode}
+% Same for the other cases.
+% \begin{macrocode}
+\cs_new:Npn \@@_patch_hb@xt@:w #1 \hb@xt@ #2 #
+ { \exp_stop_f: #1 \@makefntext@processX { \hb@xt@ #2 } }
+\cs_new:Npn \@@_patch_@makefnmark:w #1 \@makefnmark
+ { \exp_stop_f: #1 \@makefntext@processX { \use:n } { \@makefnmark } }
+% \end{macrocode}
+%
+% The code provided by Bruno above expects 2 arguments but we need a
+% different structure so this is a simple reshuffling. Would be
+% better if we can patch the right structure in directly, but I'm
+% not a patch person, so this is the simple way out for now:
+%
+% \begin{macrocode}
+\cs_new:Npn \@makefntext@processX #1#2{\@makefntext@cfgpoint{#1{#2}}}
+% \end{macrocode}
+% At \verb=\begin{document}= check if the current definition is
+% that of the standard classes and if so replace it by
+% \cs{fnote_makefntext:n} otherwise try and patch the definition
+% using the approach above.
+% \begin{macrocode}
+
+\AddToHook{begindocument}{
+ \cs_if_eq:NNTF \@makefntext \old@std@class@makefntext
+ {
+ \cs_set_eq:NN \@makefntext \fnote_makefntext:n
+ }
+ {
+ \@@_patch:
+ }
+}
+
+
+% possibly add the following to check for multiple \hbox in
+% the definition:
+%
+% \seq_set_split:NnV \l_@@_patch_seq { \hbox } \l_@@_patch_tl
+% \int_compare:nT { \seq_count:N \l_@@_patch_seq } > 2 \ERROR
+%
+% \end{macrocode}
+%
+%
+%
+%
+% \subsection{Document-level commands}
+%
+% \begin{macrocode}
+
+\DeclareDocumentCommand\footnotetext {om} {
+ \fnote_set_fnmark:nn {#1} \@mpfn
+ \@footnotetext {#2}
+}
+
+
+%-------------------------------------
+
+
+\DeclareDocumentCommand\footnote {om} {
+ \fnote_step_fnmark:nn {#1} \@mpfn
+ \cs_set_eq:NN \@@_footnotemark_finish: \prg_do_nothing:
+ \@footnotemark
+ \cs_set_eq:NN \@@_footnotemark_finish: \@@_finish:
+ \@footnotetext {#2}
+ \@@_footnotemark_finish:
+}
+
+%-------------------------------------
+
+
+\DeclareDocumentCommand\footnotemark {o} {
+ \fnote_step_fnmark:nn {#1} { footnote }
+ \@footnotemark
+}
+
+
+%-------------------------------------
+
+\DeclareDocumentCommand\footref {m}{%
+ \begingroup
+ \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
+ \endgroup
+ \@footnotemark
+}
+
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=>
+% \end{macrocode}
+%
+%
+%
+%
+%
+%
+% \subsection{Firstaid for packages and classes}
+%
+% \subsubsection{\pkg{setspace}}
+%
+% It should not overwrite it any longer but use a hook, so for now we
+% do just that here.
+% \begin{macrocode}
+\AddToHook{package/setspace/after}
+ {\let \@footnotetext \fnote_footnotetext:n
+ \AddToHook{fntext}[setspace]{\let\baselinestretch\setspace@singlespace}}
+% \end{macrocode}
+%
+%
+%
+%
+% \subsubsection{\pkg{hyperref}}
+%
+% Prevent hyperref from redefining footnote stuff --- this is a
+% temp solution.
+% \begin{macrocode}
+\AddToHook{package/hyperref/after}{
+ \let\H@@footnotetext\fnote_footnotetext:n
+ \let\H@@footnotemark\fnote_footnotemark:
+ \let \@footnotetext \fnote_footnotetext:n
+ \let \@footnotemark \fnote_footnotemark:
+}
+
+
+
+% \end{macrocode}
+%
+% \subsection{Stuff that needs cleanup and documentation}
+%
+% \begin{macrocode}
+
+
+%-------------------------------------
+
+% use of kerns to mark h-mode positions (unit sp)
+%
+% 1 = CJK
+% 2 = CJK
+% 3 = multiple footnotes (footmisc, koma, eledmac, tufte, memoir,
+% parnotes, sidenotes)
+% 3 = outer kern in letter spacing (letterspace)
+% 3 = beginning of list (examdesign.cls)
+% 4 = CJK pigin
+% 5 = CJK ruby
+
+% 1-4 = polyglossia for korean
+
+%-------------------------------------
+
+
+
+%-------------------------------------
+% Tagging
+%-------------------------------------
+
+% hyperref support only when loaded (improve integration)
+
+\newcounter{absfootnote}
+\AddToHook{fnmark/begin}{\stepcounter{absfootnote}} % too simple (fails with opt args)
+
+
+
+% this is rubbish and should be handled better:
+
+\cs_new_protected:Npn \tag_if_loaded:TF { \cs_if_exist:NTF \tag_struct_begin:n }
+
+
+
+\cs_new_protected:Npn \tag@FEMark #1 {
+ \tag_if_loaded:TF
+ {
+ \tag_mc_end_push:
+ \exp_args:Nx
+ \tag_struct_begin:n{tag=Lbl,ref=fn.\the\c@absfootnote}
+ \tag_mc_begin:n{tag=Lbl}
+ \IfPackageLoadedTF{hyperref}{ \hyper@linkstart
+ {link}{fn.\the\c@absfootnote} }{}
+ #1
+ \IfPackageLoadedTF{hyperref}{ \hyper@linkend }{}
+ \tag_mc_end:
+ \tag_struct_end:
+ \tag_mc_begin_pop:n{}
+ }
+ { #1 }
+}
+
+% to be done next round around:
+%
+% \the\c@absfootnote should be replaced directly by some command with default meaning
+% \the\c@absfootnote so that the actual reference can be changed from the outside.
+%
+% there are several instances that are curently hardwired.
+
+\cs_set_eq:NN \@kernel@process@makefnmark \tag@FEMark
+
+
+
+% kernel hook for tagging (2 args)
+\cs_set:Npn \@kernel@process@footnotetext #1#2 {
+ \tag_if_loaded:TF
+ {
+ \tag_mc_end_push:
+ \tag_struct_begin:n { tag=FENote,label=fn.\the\c@absfootnote }
+ #1 {#2}
+ \tag_struct_end:
+ \tag_mc_begin_pop:n{}
+ }
+ { #1 {#2} }
+}
+
+
+
+\cs_set:Npn \@makefntext@cfgpoint #1 {
+ \noindent
+ \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_end_push: }
+ \tag@FELbl { #1 }
+}
+
+\cs_set:Npn \@makefntext@cfgpointii #1 {
+ \tag@FENote { #1 }
+ \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_begin_pop:n{} }
+}
+
+
+
+
+\cs_new_protected:Npn \tag@FELbl #1 {
+ \tag_if_loaded:TF
+ {
+ % target should perhaps be raised ...
+ \IfPackageLoadedTF{hyperref}{ \hypertarget{fn.\the\c@absfootnote}{} }{}
+ %\tag_struct_begin:n { tag=FENote,label=fn.\the\c@absfootnote } %alternativ location for structure
+ \tag_struct_begin:n { tag=Lbl }
+ \tag_mc_begin:n { tag=Lbl }
+ #1
+ \tag_mc_end:
+ \tag_struct_end:
+ }
+ { #1 }
+}
+
+\cs_new_protected:Npn \tag@FENote #1 {
+ \tag_if_loaded:TF
+ {
+ \tag_mc_begin:n{tag=FENote}
+ #1
+ \tag_mc_end:
+ %\tag_struct_end: %alternative location for structure end but ends inside a P
+ }
+ { #1 }
+}
+
+%-------------------------------------
+
+
+\ExplSyntaxOff
+%</kernel>
+% \end{macrocode}
+%
+%
+% \section{Reimplementing the \pkg{footmisc} package}
+%
+% \begin{macrocode}
+%<*footmisc>
+%%
+%% Copyright (c) 1995-2011 Robin Fairbairns
+%% Copyright (c) 2018-2022 Robin Fairbairns, Frank Mittelbach
+%%
+%% This file is part of the `latex-lab Bundle'.
+%% --------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% This work has the LPPL maintenance status 'maintained'.
+%%
+%%
+%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
+%% (C) Copyright 2018-2022 Frank Mittelbach
+\NeedsTeXFormat{LaTeX2e}
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{v5}{2011-06-06}{footmisc-2011-06-06.sty}
+\DeclareCurrentRelease{}{2022-02-14}
+\ProvidesPackage{latex-lab-footmisc}%
+ [2022/03/08 v6.0d
+ a miscellany of footnote facilities -- latex-lab version%
+ ]
+
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\newtoks\FN@temptoken
+\providecommand\protected@writeaux{%
+ \protected@write\@auxout
+}
+\def\l@advance@macro{\@@dvance@macro\edef}
+\def\@@dvance@macro#1#2#3{\expandafter\@tempcnta#2\relax
+ \advance\@tempcnta#3\relax
+ #1#2{\the\@tempcnta}%
+}
+\let\@advance@macro\l@advance@macro
+\DeclareOption{symbol}{\renewcommand\thefootnote{\fnsymbol{footnote}}}
+\newif\ifFN@robust \FN@robustfalse
+\DeclareOption{symbol*}{%
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \FN@robusttrue
+ \AtEndOfPackage{\setfnsymbol{lamport*-robust}}%
+}
+\newif\ifFN@para \FN@parafalse
+\DeclareOption{para}{%
+% \end{macrocode}
+% Options are executed in the order of declaration, thus no point in
+% checking for side option as footmisc did in the past
+% \begin{macrocode}
+% \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+% option "side"}%
+% {I shall ignore "\CurrentOption"}%
+ \FN@paratrue
+ \setlength\footnotemargin{-\maxdimen} % default when para is used
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{side}{\ifFN@para
+ \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+ option "para"}%
+ {I shall ignore "\CurrentOption"}%
+ \else
+ \def\@footnotetext@cfgpoint {\marginpar}
+ \AddToHook{fntext/para}{%
+ \hsize\marginparwidth % correct the default \hsize
+ \footnotesep\z@ % don't add a default separation
+ }
+ \def\@footnotetext@cfgpointii {\@makefntext}
+ \def\@footnotetext@cfgpointiii {}
+ \def\@footnotetext@cfgpointiv {}
+ \fi
+}
+\let\footnotelayout\@empty
+\DeclareOption{ragged}{%
+ \@ifundefined{RaggedRight}%
+ {\renewcommand\footnotelayout{\linepenalty50 \raggedright}}%
+ {\renewcommand\footnotelayout{\linepenalty50 \RaggedRight}}%
+}
+\newif\ifFN@perpage
+\FN@perpagefalse
+\DeclareOption{perpage}{%
+ \FN@perpagetrue
+}
+\newif\ifFN@fixskip \FN@fixskipfalse
+
+\let\FN@bottomcases\thr@@
+\newif\ifFN@abovefloats \FN@abovefloatstrue
+\DeclareOption{bottom}{%
+ \let\FN@bottomcases\@ne
+ \FN@abovefloatsfalse
+ \FN@fixskiptrue
+}
+\DeclareOption{bottomfloats}{%
+ \let\FN@bottomcases\tw@
+ \FN@abovefloatstrue \FN@fixskiptrue
+}
+\DeclareOption{abovefloats}{\FN@abovefloatstrue \FN@fixskiptrue}
+\DeclareOption{belowfloats}{\FN@abovefloatsfalse \FN@fixskiptrue}
+\DeclareOption{marginal}{%
+ \footnotemargin-0.8em\relax
+}
+\DeclareOption{flushmargin}{%
+ \footnotemargin0pt\relax
+}
+\newif\ifFN@hangfoot \FN@hangfootfalse
+\DeclareOption{hang}{%
+ \FN@hangfoottrue
+}
+\newcommand*\hangfootparskip{0.5\baselineskip}
+\newcommand*\hangfootparindent{0em}%
+\DeclareOption{norule}{%
+ \renewcommand\footnoterule{}%
+ \advance\skip\footins 4\p@\@plus2\p@\relax
+}
+\DeclareOption{splitrule}{%
+ \gdef\split@prev{0}
+ \let\pagefootnoterule\footnoterule
+ \let\mpfootnoterule\footnoterule
+ \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifx \@listdepth\@mplistdepth
+ \mpfootnoterule
+ \else
+ \ifnum\split@prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split@prev{\the\insertpenalties}%
+ \fi
+ }%
+}
+\newif\ifFN@stablefootnote \FN@stablefootnotefalse
+\DeclareOption{stable}{\FN@stablefootnotetrue}
+\newif\ifFN@multiplefootnote \FN@multiplefootnotefalse
+\DeclareOption{multiple}{\FN@multiplefootnotetrue}
+\ProcessOptions
+% \end{macrocode}
+% This version of \pkg{footmisc} can assume that the new OR code is
+% already available, thus nothing needs loading at this
+% point. However, as long as we use this code also in a package
+% version that can be loaded by other package while we are in a
+% transition phase it is not clear whether not the kernel code is
+% already available for other packages.
+% \begin{macrocode}
+%\@ifundefined{@kernel@before@cclv}
+% {\input{latex-lab-new-or.ltx}}{}
+% \end{macrocode}
+%
+% Footnote box layout for para footnotes;
+% this would also be the hook to support dblfootnotes (from the
+% \texttt{dblfnote} package if we integrate that).
+% \begin{macrocode}
+\ifFN@para
+ \def\@makecol@cfgpointii {%
+ \global\setbox\footins\vbox{\FN@makefootnoteparagraph}%
+ }
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifFN@fixskip
+ \def\@outputbox@removebskip{%
+ \ifx\@textbottom\relax \else
+ \@outputbox@append{%
+ \@tempskipa\lastskip
+ \ifnum \gluestretchorder\@tempskipa>\z@
+ \vskip-\@tempskipa
+ \xdef\@outputbox@reinsertbskip
+ {\noexpand\@outputbox@append{\vskip\the\@tempskipa}}%
+ \else
+ \global\let\@outputbox@reinsertbskip\relax
+ \fi
+ }%
+ \fi
+ }
+\let\@outputbox@reinsertbskip\relax
+\else
+ \let\@outputbox@removebskip \relax
+ \let\@outputbox@reinsertbskip\relax
+\fi
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
+\ifcase \FN@bottomcases\relax
+\ERROR
+\or
+ \ifFN@abovefloats
+ \def\@makecol@cfgpoint {%
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@if@bfloats@TF{\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}}%
+ \@outputbox@appendfootnotes
+ \@outputbox@attachfloats
+ }
+ \else
+ \def\@makecol@cfgpoint {%
+ \@outputbox@attachfloats
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}%
+ \@outputbox@appendfootnotes
+ }
+ \fi
+\or
+ \ifFN@abovefloats
+ \def\@makecol@cfgpoint {%
+ \@outputbox@appendfootnotes
+ \@if@bfloats@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}%
+ \@outputbox@attachfloats
+ }
+ \else
+ \def\@makecol@cfgpoint {%
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@if@bfloats@TF{\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}}%
+ \@outputbox@attachfloats
+ \@outputbox@appendfootnotes
+ }
+ \fi
+\or
+ \ifFN@abovefloats
+ \def\@makecol@cfgpoint {%
+ \@outputbox@appendfootnotes
+ \@outputbox@attachfloats
+ \@outputbox@reinsertbskip
+ }
+ \else
+ \def\@makecol@cfgpoint {%
+ \@outputbox@attachfloats
+ \@outputbox@appendfootnotes
+ \@outputbox@reinsertbskip
+}
+ \fi
+\else
+\ERROR
+\fi
+
+% next can be dropped when cleaned up
+\newif\ifFN@setspace
+\@ifpackageloaded{setspace}%
+ {%
+ \FN@setspacetrue
+ \@ifclassloaded{memoir}%
+ {%
+ \AddToHook{fntext}{\let\baselinestretch\m@m@singlespace}%
+ \let\FN@baselinestretch\m@m@singlespace
+ }%
+ {%
+% \AddToHook{fntext}{\let\baselinestretch\setspace@singlespace}%
+ \let\FN@baselinestretch\setspace@singlespace
+ }%
+ }%
+ {%
+ \FN@setspacefalse
+ }
+
+
+
+\ifFN@para
+ \def\@footnotetext@cfgpoint {\insert\footins}
+
+ \long\def\@footnotetext@cfgpointii #1{%
+ \setbox\FN@tempboxa\hbox{\@makefntext{#1}}%
+ \dp\FN@tempboxa\z@
+ \ht\FN@tempboxa
+ \dimexpr\wd\FN@tempboxa *%
+ \footnotebaselineskip /\columnwidth\relax
+ \box\FN@tempboxa
+ }
+
+
+ \def\@footnotetext@cfgpointiii {}
+ \def\@footnotetext@cfgpointiv {% config point
+ \strut
+ \penalty-10\relax
+ \hskip\footglue
+ }
+\fi
+
+
+
+\ifFN@para
+ \let\FN@tempboxa\@tempboxa
+ \newbox\FN@tempboxb
+ \newbox\FN@tempboxc
+ \newskip\footglue \footglue=1em plus.3em minus.3em
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \newdimen\footnotebaselineskip
+
+ % establish late:
+
+\AddToHook{begindocument/before} {%
+ {%
+ \footnotesize
+ \global\footnotebaselineskip=\normalbaselineskip
+ }%
+}
+% \end{macrocode}
+% The coding is based on David Kastrup's improvement to Don Knuth's
+% original implementation. You find in the \TeX{}book if you own
+% the latest edition.
+% \begin{macrocode}
+
+ \long\def\FN@makefootnoteparagraph{%
+ \FN@setfootnoteparawidth
+ \@parboxrestore
+ \baselineskip=\footnotebaselineskip
+ \unvbox\footins \FN@removehboxes
+ \RawParEnd
+ }
+ \def\FN@removehboxes{\setbox\FN@tempboxa\lastbox
+ \ifhbox\FN@tempboxa{\FN@removehboxes}%
+ \unhbox\FN@tempboxa
+ \else
+ \RawNoindent
+ \rule\z@\footnotesep
+ \fi
+ }
+\fi
+
+
+\@ifpackageloaded{multicol}
+ {\def\FN@setfootnoteparawidth
+ {\hsize\ifnum\doublecol@number>\@ne
+ \textwidth
+ \else \columnwidth \fi}}
+ {\def\FN@setfootnoteparawidth{\hsize\columnwidth}}
+
+\ifFN@perpage
+ \RequirePackage{perpage}
+ \MakePerPage{footnote}
+% \end{macrocode}
+% Fix a bug in perpage \ldots
+% \begin{macrocode}
+ \def\@stpelt#1{\global\csname c@#1\endcsname \m@ne
+ \stepcounter{#1}%
+ \pp@fix@MakePerPage{#1}%
+ }
+ \def\pp@fix@MakePerPage#1{%
+ \ifnum \value{#1}>\z@
+ \addtocounter{#1}\m@ne\fi
+ }
+% \end{macrocode}
+% The above code may look a bit odd: the \cs{stepcounter} sets the
+% counter to zero and then we alter it if it is not zero. The
+% reason is that \cs{stepcounter} resets other counters and when
+% perpage is loaded this results in updating counters on the reset
+% list to 1 (or to a higher starting value if \cs{MakePerPage} is
+% used with an optional argument, which is precisely the problem
+% here. By subtracting 1 in that case we set it back to 1 lower
+% than the starting value.
+%
+% But to make this fully work we also need to update a support
+% command in \pkg{perpage}:
+% \begin{macrocode}
+ \def\pp@cl@end@iii\stepcounter#1\pp@fix@MakePerPage#2{}
+\fi
+
+
+\ifFN@para
+
+% This can use the default interface, except that a negative value for
+% \footnotemargin makes little sense, so we test for this and warn if
+% necessary. But -\maxdimen is ok again, so would need to be a litte bit more elaborate.
+%
+
+%\AddToHook{fntext/para}{
+% \ifdim \footnotemargin >\z@ \else
+% \PackageWarningNoline{footmisc}{Option 'para' needs positive \noexpand\footnotemargin}%
+% \footnotemargin 1.8em\relax
+% \fi
+%}
+
+
+\AddToHook{fntext/begin}{\nobreak \hspace{.2em}}
+
+
+
+
+\else
+
+ \ifFN@hangfoot
+ \long\def\@makefntext#1{%
+ \bgroup
+ \setbox\@tempboxa\hbox{%
+ \ifdim\footnotemargin>\z@
+ \hb@xt@\footnotemargin{\@makefnmark\hss}%
+ \else
+ \@makefnmark
+ \fi
+ }%
+ \leftmargin\wd\@tempboxa
+ \rightmargin\z@
+ \linewidth \columnwidth
+ \advance \linewidth -\leftmargin
+ \parshape \@ne \leftmargin \linewidth
+ \footnotesize
+ \@setpar{{\@@par}}%
+ \leavevmode
+ \llap{\box\@tempboxa}%
+ \parskip\hangfootparskip\relax
+ \parindent\hangfootparindent\relax
+ \footnotelayout#1%
+ \par
+ \egroup
+ }
+
+ \else
+
+% This is now using the default interface:
+%
+% \long\def\@makefntext#1{%
+% \parindent1em
+% \noindent
+% \ifdim\footnotemargin>\z@
+% \hb@xt@ \footnotemargin{\hss\@makefnmark}%
+% \else
+% \ifdim\footnotemargin=\z@
+% \llap{\@makefnmark}%
+% \else
+% \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}%
+% \fi
+% \fi
+% \footnotelayout#1%
+% }
+
+ \fi
+\fi
+
+
+
+
+\ifFN@multiplefootnote
+ \providecommand*{\multiplefootnotemarker}{3sp}
+ \providecommand*{\multfootsep}{,}
+ \AddToHook{fnmark} {\FN@mf@check}
+ \AddToHook{fnmark/end} {\FN@mf@prepare}
+%
+ \def\FN@mf@prepare{%
+ \kern-\multiplefootnotemarker
+ \kern\multiplefootnotemarker\relax
+ }
+ \def\FN@mf@check{%
+ \ifdim\lastkern=\multiplefootnotemarker\relax
+%?? is that necessary or even correct ??
+ \edef\@x@sf{\the\spacefactor}%
+%?? shouldn't that be 2 unkerns ?? (none would also be ok)
+ \unkern % new
+ \unkern
+ \textsuperscript{\multfootsep}%
+ \spacefactor\@x@sf\relax
+ \fi
+ }
+\else
+ \let\FN@mf@prepare\relax
+\fi
+\ifFN@stablefootnote
+\let\FN@sf@@footnote\footnote
+\def\footnote{\ifx\protect\@typeset@protect
+ \expandafter\FN@sf@@footnote
+ \else
+ \expandafter\FN@sf@gobble@opt
+ \fi
+}
+\edef\FN@sf@gobble@opt{\noexpand\protect
+ \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname}
+\expandafter\def\csname FN@sf@gobble@opt \endcsname{%
+ \@ifnextchar[%]
+ \FN@sf@gobble@twobracket
+ \@gobble
+}
+\def\FN@sf@gobble@twobracket[#1]#2{}
+\let\FN@sf@@footnotemark\footnotemark
+\def\footnotemark{\ifx\protect\@typeset@protect
+ \expandafter\FN@sf@@footnotemark
+ \else
+ \expandafter\FN@sf@gobble@optonly
+ \fi
+}
+\edef\FN@sf@gobble@optonly{\noexpand\protect
+ \expandafter\noexpand\csname FN@sf@gobble@optonly \endcsname}
+\expandafter\def\csname FN@sf@gobble@optonly \endcsname{%
+ \@ifnextchar[%]
+ \FN@sf@gobble@bracket
+ {}%
+}
+\def\FN@sf@gobble@bracket[#1]{}
+\fi
+\newcommand\setfnsymbol[1]{%
+ \@bsphack
+ \@ifundefined{FN@fnsymbol@#1}%
+ {%
+ \PackageError{footmisc}{Symbol style "#1" not known}%
+ \@eha
+ }{%
+ \expandafter\let\expandafter\@fnsymbol\csname
+ FN@fnsymbol@#1\endcsname
+ }%
+ \@esphack
+}
+\let\FN@fnsymbol@lamport\@fnsymbol
+\newif\if@tempswb
+\DeclareDocumentCommand\DefineFNsymbols {smO{text}m}{%
+ \expandafter\ifx\csname FN@fnsymbol@#2\endcsname\relax
+ \PackageInfo{footmisc}{Declaring symbol style #2}%
+ \else
+ \PackageWarning{footmisc}{Redeclaring symbol style #2}%
+ \fi
+ \toks@{}%
+ \def\@tempb{\end}%
+ \FN@build@symboldef#4\end
+ \def\@tempc{math}%
+ \def\@tempd{#3}%
+ \expandafter\xdef\csname FN@fnsymbol@#2\endcsname##1{%
+ \ifx\@tempc\@tempd
+ \noexpand\ensuremath
+ \else
+ \noexpand\nfss@text
+ \fi
+ {%
+ \noexpand\ifcase##1%
+ \the\toks@
+ \noexpand\else
+ \IfBooleanTF#1{\noexpand\@ctrerr}%
+ {\noexpand\FN@orange##1}%
+ \noexpand\fi
+ }%
+ }%
+}
+\def\FN@build@symboldef#1{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@tempb
+ \else
+ \toks@\expandafter{\the\toks@\or#1}%
+ \expandafter\FN@build@symboldef
+ \fi
+}
+\DeclareDocumentCommand\DefineFNsymbolsTM {smm}{%
+ \expandafter\ifx\csname FN@fnsymbol@#2\endcsname\relax
+ \PackageInfo{footmisc}{Declaring symbol style #2}%
+ \else
+ \PackageWarning{footmisc}{Redeclaring symbol style #2}%
+ \fi
+ \toks@{}%
+ \def\@tempb{\end}%
+ \FN@build@symboldefTM#3\end\@null
+ \expandafter\xdef\csname FN@fnsymbol@#2\endcsname##1{%
+ \noexpand\ifcase##1%
+ \the\toks@
+ \noexpand\else
+ \IfBooleanTF#1{\noexpand\@ctrerr}%
+ {\noexpand\FN@orange##1}%
+ \noexpand\fi
+ }%
+}
+\def\FN@build@symboldefTM#1#2{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@tempb
+ \else
+ \toks@\expandafter{\the\toks@\or\TextOrMath{#1}{#2}}%
+ \expandafter\FN@build@symboldefTM
+ \fi
+}
+\def\FN@orange#1{%
+ \ifFN@robust
+ \@arabic#1%
+ \@bsphack
+ \PackageInfo{footmisc}{Footnote number \number#1 out of range}%
+ \protect\@fnsymbol@orange
+ \@esphack
+ \else \@ctrerr \fi
+}
+\global\let\@diagnose@fnsymbol@orange\relax
+\AtEndDocument{\@diagnose@fnsymbol@orange}
+\def\@fnsymbol@orange{%
+ \gdef\@diagnose@fnsymbol@orange{%
+ \PackageWarningNoLine{footmisc}{Some footnote number(s)
+ were out of range
+ \MessageBreak
+ see log for details%
+ }%
+ }%
+}
+\DefineFNsymbolsTM{bringhurst}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textbardbl \|%
+ \textparagraph \mathparagraph
+}%
+\DefineFNsymbolsTM{chicago}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textbardbl \|%
+ \#\#%
+}%
+\DefineFNsymbolsTM{wiley}{%
+ \textasteriskcentered *%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+}%
+\DefineFNsymbolsTM{lamport-robust}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+}
+\DefineFNsymbolsTM*{lamport*}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+ {\textsection\textsection}{\mathsection\mathsection}%
+ {\textparagraph\textparagraph}{\mathparagraph\mathparagraph}%
+ {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***}%
+ {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger}%
+ {\textsection\textsection\textsection}%%
+ {\mathsection\mathsection\mathsection}%
+ {\textparagraph\textparagraph\textparagraph}%%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\setfnsymbol{lamport*}
+\DefineFNsymbolsTM{lamport*-robust}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+ {\textsection\textsection}{\mathsection\mathsection}%
+ {\textparagraph\textparagraph}{\mathparagraph\mathparagraph}%
+ {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***}%
+ {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger}%
+ {\textsection\textsection\textsection}%%
+ {\mathsection\mathsection\mathsection}%
+ {\textparagraph\textparagraph\textparagraph}%%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\newcommand\mpfootnotemark{%
+ \@ifnextchar[%
+ \@xmpfootnotemark
+ {%
+ \stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \@footnotemark
+ }%
+}
+\def\@xmpfootnotemark[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@footnotemark
+}
+% \end{macrocode}
+% TEMP PATCHES FOR TESTING
+% \begin{macrocode}
+
+\endinput
+%</footmisc>
+% \end{macrocode}
+% \Finale
+%
diff --git a/macros/latex/required/latex-lab/latex-lab-footnotes.pdf b/macros/latex/required/latex-lab/latex-lab-footnotes.pdf
new file mode 100644
index 0000000000..2e35bfb74e
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-footnotes.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or.dtx b/macros/latex/required/latex-lab/latex-lab-new-or.dtx
new file mode 100644
index 0000000000..08b58a7286
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-new-or.dtx
@@ -0,0 +1,545 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-new-or.dtx
+% Copyright (C) 2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{latex-lab-new-or.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-new-or} code\thanks{}}
+% \author{Frank Mittelbach, \LaTeX{} Project}
+%
+% \maketitle
+%
+% \newcommand\fmi[1]{\begin{quote} TODO: \itshape #1\end{quote}}
+% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
+% \providecommand\pkg[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This code implements changes to the output routine.
+%
+%
+%
+%
+% \section{Hooks and configuration points}
+%
+% Note: the configuration points do not have an interface mechanism
+% yet and all their names are temporary right now.
+%
+%
+% \subsubsection{Configuration points}
+%
+% To cater for different layouts with respect to text, footnotes,
+% and bottom-floats placements there are two configuration points for
+% now.
+% \begin{description}
+% \item[\cs{@makecol@cfgpoint} (0 arguments)]
+%
+% In this configuration point the \cs{@outputbox} (holding the
+% galley text for the current column or page) is augmented by
+% attaching floats and footnote areas together with appropriate
+% spacing. Before the code is run any existing glue at the bottom
+% of the \cs{@outputbox} is removed and stored in a safe
+% place. If needed, it can be reinserted with one of the helper
+% commands.
+%
+% To support setting this up the following helper commands are available:
+% \begin{description}
+% \item[\cs{@outputbox@append} (1 argument)]
+%
+% This general purpose command alters the \cs{@outputbox} box by
+% appending material to it.
+%
+% \item[\cs{@outputbox@appendfootnotes} (0 arguments)]
+%
+% This command appends the footnotes to the \cs{@outputbox} (if
+% there are any). If not, then it does nothing.
+%
+% \item[\cs{@outputbox@attachfloats} (0 arguments)]
+% \item[\cs{@outputbox@attachtopfloats} (0 arguments)]
+% \item[\cs{@outputbox@attachbottomfloats} (0 arguments)]
+%
+% Attaching top and bottom floats can usually be done in one
+% go, but for special layouts we might want more control so we
+% provide also separate commands.
+%
+% \item[\cs{@outputbox@reinsertbskip} (0 arguments)]
+%
+% Reinsert the bottom skip of the \cs{@outputbox} that was
+% saved before.
+%
+% \item[Testing for existence of material]
+%
+% There are a number of helpers to run conditional code
+% depending on whether or not there are footnotes or bottom
+% floats. They are \cs{@if@footnotes@TF} and
+% \cs{@if@bfloats@TF}
+% (names are likely to change).
+%
+% \end{description}
+% This configuration point needs an appropriate definition; a
+% default is already given in the kernel.
+%
+% \item[\cs{@makecol@cfgpointii} (0 arguments)]
+%
+% This configuration point is used to manipulate the footnote
+% material inside \cs{box}\cs{footins}. It if contains code, it
+% is supposed to do some processing of that box and then write
+% the result back into it (and nothing else!). By default it
+% does nothing.
+%
+% \end{description}
+%
+% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+%
+% \begin{macrocode}
+%<*code>
+% \end{macrocode}
+%
+% \subsection{File declaration}
+% \begin{macrocode}
+\ProvidesFile{latex-lab-new-or.ltx}
+ [2022-03-09 v0.1b changes to the output routine]
+% \end{macrocode}
+% \subsection{\cs{@makecol} reimplementation}
+%
+% In order for other packages to prepend or append code to
+% \cs{@makecol}, they can use the generic command hooks
+% \texttt{cmd/@makecol/before} and \texttt{cmd/@makecol/after}, so
+% there is nothing we need to do here.
+%
+%
+% \begin{macro}{\@makecol}
+% \cs{@makecol} is shortened a lot, basically all the hardwired
+% code in the middle has moved into a configuration point.
+% \begin{macrocode}
+\def \@makecol {%
+ \@kernel@before@cclv
+ \setbox\@outputbox \box\@cclv
+% \end{macrocode}
+% The only real addition is the next command which either does
+% nothing or removes an infinite glue from the bottom of the
+% \cs{@outputbox}.
+% \begin{macrocode}
+ \@outputbox@removebskip
+% \end{macrocode}
+% Any ``here'' floats in the \cs{@outputbox} are now handled so we
+% recycle their registers and put them back to the \cs{@freelist}.
+% \begin{macrocode}
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+% \end{macrocode}
+% Here we have the configurable part.
+% \fmi{Interface to configuration points will change in the future}
+% \begin{macrocode}
+ \@makecol@cfgpoint
+% \end{macrocode}
+% The we deal with any \cs{enlargethispage} or run the normal code
+% to build a column.
+% \begin{macrocode}
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \@makenormalcolbox
+ \fi
+ \global \maxdepth \@maxdepth
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@outputbox@depth}
+% We need to know the depth of \cs{@outputbox} once in a
+% while. Rather than using a temp dimen (as it was done in the
+% past), we give it a proper register.
+% \begin{macrocode}
+\newdimen\@outputbox@depth
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makenormalcolbox}
+% Taken out of \cs{@makecol} for readability.
+% \begin{macrocode}
+\def \@makenormalcolbox {%
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \@outputbox@depth \dp\@outputbox
+ \unvbox \@outputbox
+ \vskip -\@outputbox@depth
+ \@textbottom
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@makespecialcolbox}
+% Make the colbox when \cs{enlargethispage} was used.
+% \begin{macrocode}
+\def \@makespecialcolbox {%
+ \@outputbox@append {\vskip-\@outputbox@depth}%
+ \@tempdima \@colht
+ \ifdim \wd\@kludgeins>\z@
+ \advance \@tempdima -\ht\@outputbox
+ \advance \@tempdima \pageshrink
+ \setbox\@outputbox \vbox to \@colht {%
+ \unvbox\@outputbox
+ \vskip \@tempdima
+ \@textbottom
+ }%
+ \else
+ \advance \@tempdima -\ht\@kludgeins
+ \setbox \@outputbox \vbox to \@colht {%
+ \vbox to \@tempdima {%
+ \unvbox\@outputbox
+ \@textbottom}%
+ \vss}%
+ \fi
+ {\setbox \@tempboxa \box \@kludgeins}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@outputbox@removebskip}
+%
+% This is really a bug fix for the kernel but one we only
+% automatically make in new documents using \cs{DocumentMetadata}.
+% \fmi{may make optional for legacy docs}
+% If
+% \cs{raggedbottom} is in force, footnotes get attached to the main
+% galley at a distance of \cs{footskip} on all pages except on
+% those that are ended by \cs{newpage} or \cs{clearpage} where the
+% \cs{vfil} from \cs{newpage} pushes the footnotes to the very bottom.
+%
+% This is kind of a weird difference to a page ending with
+% \cs{pagebreak}---in that case the page is also run
+% short, but the footnotes are not pushed to the bottom.
+%
+% In \pkg{footmisc} \cs{@outputbox@removebskip} is only applied when
+% \pkg{footmisc} is called with with an option specifying the
+% footnote placement, i.e., not in the default case.
+% In new documents we apply it always.
+% \begin{macrocode}
+\def\@outputbox@removebskip{%
+% \end{macrocode}
+% We first test if we are in a \cs{raggedbottom} layout. If not we
+% do nothing, but we don't disable the code because
+% \cs{raggedbottom} may get used only for some parts of the
+% document.
+% \begin{macrocode}
+ \ifx\@textbottom\relax \else
+% \end{macrocode}
+% We then append some negative glue at the end of \cs{@outputbox}
+% provided it has a glue stretch order of 1 or more (i.e., contains
+% a \texttt{fil} or \texttt{fill} part).
+% \begin{macrocode}
+ \@outputbox@append{%
+ \@tempskipa\lastskip
+ \ifnum \gluestretchorder\@tempskipa>\z@
+ \vskip-\@tempskipa
+% \end{macrocode}
+% \begin{macro}{\@outputbox@reinsertbskip}
+% We also record the value so that it can be reinserted
+% elsewhere. As we have to do this globally, we also need to
+% explicitly reset it if we don't find any such glue.
+% \begin{macrocode}
+ \xdef\@outputbox@reinsertbskip
+ {\noexpand\@outputbox@append{\vskip\the\@tempskipa}}%
+ \else
+ \global\let\@outputbox@reinsertbskip\relax
+ \fi
+ }%
+ \fi
+}
+% \end{macrocode}
+% We need a trivial top-level definition for
+% \cs{@outputbox@reinsertbskip} in case the first page has no
+% bottom glue and the command gets called.
+% \begin{macrocode}
+\let\@outputbox@reinsertbskip\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@kernel@before@cclv}
+% \begin{macro}{\@kernel@before@footins}
+% These two commands are internal kernel hooks intended for tagging
+% support in case that is active. By default they do nothing (and
+% may have been defined already by \cs{DocumentMetadata}).
+% \begin{macrocode}
+\providecommand\@kernel@before@cclv{}
+\providecommand\@kernel@before@footins{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{The output routine configuration components}
+%
+% Here we provide the components that are used to define
+% \cs{@makecol@cfgpoint}.
+%
+%
+% \begin{macro}{\@outputbox@append}
+%
+% This general purpose command alters the \cs{@outputbox} box by
+% appending material to it. As this is a box typesetting operation
+% we make sure that the last line of the box reflects the true
+% depth of the last line (in case that is needed later). We also
+% expose the current depth of \cs{@outputbox} as
+% \cs{@outputbox@depth} before unboxing so that its value can be
+% used by \verb=#1= if wanted.
+% \begin{macrocode}
+\def\@outputbox@append #1{%
+% \if!\detokenize{#1}!\else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \@outputbox@depth\dp\@outputbox % if needed in #1
+ \unvbox \@outputbox
+ #1%
+ }%
+% \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+% \begin{macro}{\@outputbox@appendfootnotes}
+%
+% This command appends the footnotes to the \cs{@outputbox} (if
+% there are any). If not then it does nothing.
+% \begin{macrocode}
+\def\@outputbox@appendfootnotes {%
+ \ifvoid\footins \else
+% \end{macrocode}
+% First come two configuration points: what to do if we are in a split
+% footnote situation and a second one that does some manipulation
+% of the \cs{footins} box before it gets appended.
+% \fmi{this code will get revised as part of CP handling in the future}
+% \begin{macrocode}
+ \@makecol@handlesplitfootnotes
+ \@makecol@cfgpointii
+% \end{macrocode}
+% Then the footnotes are appended:
+% \begin{macrocode}
+ \@outputbox@append{%
+ \vskip \skip\footins
+ \@kernel@before@footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+% \end{macrocode}
+% Support for \pkg{pdfcolfoot}, eventually this can go once color
+% is properly supported.
+% \begin{macrocode}
+ \csname pdfcolfoot@current\endcsname
+ \unvbox \footins
+ \color@endgroup
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@outputbox@attachfloats}
+% \begin{macro}{\@outputbox@attachtopfloats}
+% \begin{macro}{\@outputbox@attachbottomfloats}
+% Attaching top and bottom floats can usually be done in one go,
+% but for special layouts we might want more control so we provide
+% also separate commands.
+% \begin{macrocode}
+\let \@outputbox@attachfloats \@combinefloats
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def \@outputbox@attachtopfloats {%
+ \ifx \@toplist\@empty \else \@cflt \fi
+}
+\def \@outputbox@attachbottomfloats {%
+ \ifx \@botlist\@empty \else \@cflb \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\@makecol@handlesplitfootnotes}
+% \begin{macro}{\@makecol@splitfootnotemessagehook}
+% This is only an early draft and doesn't do much.
+% Contains incomplete preparation for tagging commented out.
+% \fmi{Interfaces and code will change in the future}
+% \begin{macrocode}
+\def\@makecol@handlesplitfootnotes {%
+% \ifx\splitfootnote@continuation\@empty \else
+% \setbox\footins\vbox{\splitfootnote@continuation\unvbox\footins}%
+% \global\let\splitfootnote@continuation\@empty
+% \fi
+ \ifnum\insertpenalties>\z@
+ \@makecol@splitfootnotemessagehook
+% \setbox\footins\vbox{\unvbox\footins --- END at split}%
+% \gdef\splitfootnote@continuation {--- START after split}%
+ \fi
+}
+%\def\splitfootnote@continuation{}
+% \end{macrocode}
+% This could issue warning if split footnotes are encountered.
+% \begin{macrocode}
+\let \@makecol@splitfootnotemessagehook \@empty
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@makecol@cfgpointii}
+%
+% Configuration point to support manipulation of footins box
+% (result needs to be moved back in there). Used by the
+% \texttt{para} option.
+% \fmi{Interface will change in the future}
+% \begin{macrocode}
+\let \@makecol@cfgpointii \@empty
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \fmi{Some temp interfaces until configuration points are available.}
+%
+% \begin{macro}{\@if@flushbottom@TF}
+% Test for \cs{flushbottom} (currently not used).
+% \begin{macrocode}
+\def\@if@flushbottom@TF{%
+ \ifx\@textbottom\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@if@footnotes@TF}
+% Test if footnotes are present on the current page.
+% \begin{macrocode}
+\def\@if@footnotes@TF{%
+ \ifvoid\footins
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@if@bfloats@TF}
+% Test if bottom floats are around.
+% \begin{macrocode}
+\def\@if@bfloats@TF{%
+ \ifx \@botlist\@empty
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{The \cs{@makecol} configuration}
+%
+%
+% \begin{macro}{\@makecol@cfgpoint}
+%
+% Here is only the configuration for the default case for now,
+% others are provided by \pkg{footmisc}.
+%
+% \begin{macrocode}
+ \def\@makecol@cfgpoint {%
+ \@outputbox@appendfootnotes
+ \@outputbox@attachfloats
+% \end{macrocode}
+% We do, however, reinsert the bottom skip from \cs{newpage} if it
+% was taken out earlier. This is, strictly speaking, not necessary
+% in most cases, but it is a \cs{vfil} while \cs{raggedbottom} is
+% only generating \verb=\vspace{0pt plus .0001fil}=, so if you have
+% several \cs{vfil} on the page before the \cs{newpage} you would
+% alter the space distribution if one is taken out.
+% \begin{macrocode}
+ \@outputbox@reinsertbskip
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \section {Replacement for the \pkg{footmisc} package}
+%
+% The replacement for \pkg{footmisc}. If the new code is used, we must replace
+% the package if it is loaded by the user:
+% \begin{macrocode}
+\declare@file@substitution{footmisc.sty}{latex-lab-footmisc.ltx}
+% \end{macrocode}
+%
+%
+%
+% \section {Temp stuff that is related but should go to the kernel}
+%
+% \begin{macrocode}
+\input{latex-lab-footnotes.ltx}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or.pdf b/macros/latex/required/latex-lab/latex-lab-new-or.pdf
new file mode 100644
index 0000000000..ad45673c55
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-new-or.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-testphase.dtx b/macros/latex/required/latex-lab/latex-lab-testphase.dtx
new file mode 100644
index 0000000000..d8d9c671c3
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-testphase.dtx
@@ -0,0 +1,84 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-testphase.dtx
+% Copyright (C) 2021-2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{latex-lab-testphase.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+
+% \title{The \texttt{latex-lab-testphase} code\thanks{}}
+% \author{Ulrike Fischer \LaTeX{} Project}
+%
+% \maketitle
+%
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This code implements small files which can be loaded with the |testphase|
+% key of \cs{DocumentMetadata}. This will be extended to allow user to load
+% well defined parts of the tagged PDF project.
+% Currently the values |phase-I|, |phase-II| and |new-or| are provided.
+% |tagpdf| is an undocumented alias for |phase-II| which is kept for compability.
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+%
+%
+% \section{The Implementation}
+% New output routine code is loaded in phase-II and new-or:
+% \begin{macrocode}
+%<*tagpdf|phase-II|new-or>
+\IfFileExists{latex-lab-testphase-new-or.sty}
+ {
+ \RequirePackage{latex-lab-testphase-new-or}
+ }
+ {}
+%</tagpdf|phase-II|new-or>
+% \end{macrocode}
+% \begin{macrocode}
+%<*tagpdf|phase-I|phase-II>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{tagpdf}
+\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+%</tagpdf|phase-I|phase-II>
+%<tagpdf|phase-II>\tagpdfsetup{activate,paratagging,interwordspace}
+%<phase-I>\tagpdfsetup{activate,interwordspace}
+%<*tagpdf|phase-I|phase-II>
+\AddToDocumentProperties [document]{tagging}{active}
+\AddToDocumentProperties [document]{tagging/para}{active}
+\AddToDocumentProperties [document]{tagging/interwordspace}{active}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</tagpdf|phase-I|phase-II>
+% \end{macrocode}
+% \Finale
+%
diff --git a/macros/latex/required/latex-lab/latex-lab-testphase.pdf b/macros/latex/required/latex-lab/latex-lab-testphase.pdf
new file mode 100644
index 0000000000..6ab6a28554
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-testphase.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab.ins b/macros/latex/required/latex-lab/latex-lab.ins
new file mode 100644
index 0000000000..bc668a71e1
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab.ins
@@ -0,0 +1,82 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the dtx file(s) in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright (C) 2021-2022 The LaTeX Project
+%%
+%%
+%% This file is part of the `LaTeX-lab Bundle' for LaTeX.
+%% -------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% In particular, NO PERMISSION is granted to modify the contents of this
+%% file since it contains the legal notices that are placed in the files
+%% it generates.
+%%
+%%
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip
+
+\keepsilent
+
+\usedir{tex/latex/contrib/latex-lab}
+
+\preamble
+
+This is a generated file.
+
+Copyright 2021,2022 LaTeX Project
+
+This file was generated from file(s) of the `LaTeX-lab Bundle'.
+------------------------------------------------------------------------------------
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+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.3c or later is part of all distributions of LaTeX
+version 2008 or later.
+
+This file may only be distributed together with a copy of the LaTeX
+`LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+without such generated files.
+
+The newest sources can be found below
+
+ https://github.com/latex3/latex2e/required/latex-lab
+
+where one can also log issues in case there are any.
+
+
+\endpreamble
+
+
+\generate{\file{documentmetadata-support.ltx}{\from{documentmetadata-support.dtx}{code}}}
+
+% files that should be loadable with the testphase key should use the naming scheme
+% #1-latex-lab-testphase.ltx
+\generate{\file{phase-I-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{phase-I}}}
+\generate{\file{phase-II-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{phase-II}}}
+
+\generate{\file{tagpdf-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{tagpdf}}}
+\generate{\file{new-or-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{new-or}}}
+
+% support files (the new-or code is a private package to make life easier)
+
+\generate{\file{latex-lab-testphase-new-or.sty}{\from{latex-lab-new-or.dtx}{code}}}
+\generate{\file{latex-lab-footmisc.ltx}{\from{latex-lab-footnotes.dtx}{footmisc}}}
+\generate{\file{latex-lab-footnotes.ltx}{\from{latex-lab-footnotes.dtx}{kernel}}}
+
+
+\endbatchfile
diff --git a/macros/latex/required/latex-lab/usage-of-@footnotemark.txt b/macros/latex/required/latex-lab/usage-of-@footnotemark.txt
new file mode 100644
index 0000000000..684a695faa
--- /dev/null
+++ b/macros/latex/required/latex-lab/usage-of-@footnotemark.txt
@@ -0,0 +1,186 @@
+% packages that alter \@footnotemark ...
+
+
+% bibarts
+
+\let\ba@footnmark=\@footnotemark
+\def\@footnotemark{\ifhmode{\nobreak \hskip 0.04em plus 0.01em}\else\leavevmode\fi\ba@footnmark}%
+
+
+% ./bxjscls/bxjsja-minimal.def
+
+\def\bxjs@cjk@loaded{%
+ \def\@footnotemark{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax
+ \unkern\unkern
+ \ifdim\lastskip>\z@ \unskip \fi
+ \fi\fi
+ \nobreak
+ \fi
+ \@makefnmark
+ \ifhmode \spacefactor\@x@sf \fi
+ \relax}%
+ \let\bxjs@cjk@loaded\relax
+}
+
+% ./arabtex/afoot.sty
+
+\let \a@@footnotemark \@footnotemark
+
+\def \a@footnotemark {% inside Arabic environment
+\iftrans \unskip \unskip \nobreak \@makefnmark \fi
+\ifarab \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \fi }
+
+% ./hyperref/hyperref.sty
+
+ \def\@footnotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \stepcounter{Hfootnote}%
+ \global\let\Hy@saved@currentHref\@currentHref
+ \hyper@makecurrent{Hfootnote}%
+ \global\let\Hy@footnote@currentHref\@currentHref
+ \global\let\@currentHref\Hy@saved@currentHref
+ \hyper@linkstart{link}{\Hy@footnote@currentHref}%
+ \@makefnmark
+ \hyper@linkend
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }%
+
+
+% ./hypdvips/hypdvips.sty
+
+ \def\@footnotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \stepcounter{Hfootnote}%
+ \global\let\Hy@saved@currentHref\@currentHref
+ \hyper@makecurrent{Hfootnote}%
+ \global\let\Hy@footnote@currentHref\@currentHref
+ \global\let\@currentHref\Hy@saved@currentHref
+ \ifHy@draft%
+ \@makefnmark%
+ \else%
+ \pp@hyperfootnote%
+ \fi%
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }
+
+ \newcommand{\pp@hyperfootnote}{%
+ \ifx\pp@activerect\pp@true%
+ \@makefnmark%
+ \else%
+ \ifpp@smallfootnotes%
+ \let\pp@backup@@thefnmark\@thefnmark%
+ \renewcommand{\@thefnmark}{\pdf@rect{\pp@backup@@thefnmark}}%
+ \Hy@colorlink\@footnotecolor%
+ \@makefnmark%
+ \Hy@endcolorlink%
+ \pdfmark{%
+ pdfmark=/ANN,%
+ linktype=footnote,%
+ Subtype=/Link,%
+ AcroHighlight=\@pdfhighlight,%
+ Border=\@pdfborder,%
+ BorderStyle=\@pdfborderstyle,%
+ Color=\@footnotebordercolor,%
+ Dest=\Hy@footnote@currentHref,%
+ Raw=H.B%
+ }%
+ \let\@thefnmark\pp@backup@@thefnmark%
+ \else%
+ \pdfmark[\@makefnmark]{%
+ pdfmark=/ANN,%
+ linktype=footnote,%
+ Subtype=/Link,%
+ AcroHighlight=\@pdfhighlight,%
+ Border=\@pdfborder,%
+ BorderStyle=\@pdfborderstyle,%
+ Color=\@footnotebordercolor,%
+ Dest=\Hy@footnote@currentHref%
+ }%
+ \fi%
+ \fi%
+ }
+
+
+% ./memoir/memhfixc.sty
+
+\ifHy@hyperfootnotes
+ \def\@footnotemark{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}%
+ \m@mmf@check% <--- added
+ \nobreak\fi
+ \stepcounter{Hfootnote}%
+ \global\let\Hy@saved@currentHref\@currentHref
+ \hyper@makecurrent{Hfootnote}%
+ \global\let\Hy@footnote@currentHref\@currentHref
+ \global\let\@currentHref\Hy@saved@currentHref
+ \hyper@linkstart{link}{\Hy@footnote@currentHref}%
+ \@makefnmark
+ \hyper@linkend
+ \m@mmf@prepare% <--- added
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }%
+\fi
+
+
+% caption3.sty
+
+% this is altering the top-level when inside a float
+
+
+% ./koma-script/scrlttr2.cls
+
+\newcommand*{\scr@footnotemark}{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi
+ \@makefnmark
+ \csname FN@mf@prepare\endcsname
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+% tested against this ...
+
+\newcommand*{\scr@saved@footnotemark}{%
+ \leavevmode
+ \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
+ \@makefnmark
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax}
+
+
+% ./chextras/chextras.sty
+
+\ifstd@notes\else
+ \let\std@footnotemark\@footnotemark
+ \def\alt@footnotemark{\unskip\thinspace\std@footnotemark}
+ \let\@footnotemark\alt@footnotemark
+
+% footmisx.sty
+
+ \newcommand*\@footmisxnotemark{%
+ \leavevmode
+ \ifhmode
+ \edef\@x@sf{\the\spacefactor}%
+ \FN@mf@check
+ \nobreak
+ \fi
+ \@footmicx@makefnmark
+ \ifFN@pp@towrite
+ \FN@pp@writetemp
+ \FN@pp@towritefalse
+ \fi
+ \FN@mf@prepare
+ \ifhmode\spacefactor\@x@sf\fi
+ \relax
+ }
+
+
diff --git a/macros/latex/required/latex-lab/usage-of-@footnotetext.txt b/macros/latex/required/latex-lab/usage-of-@footnotetext.txt
new file mode 100644
index 0000000000..48a3172843
--- /dev/null
+++ b/macros/latex/required/latex-lab/usage-of-@footnotetext.txt
@@ -0,0 +1,842 @@
+
+% ./bibarts/bibarts.sty
+
+\let\ba@footnotetext=\@footnotetext
+\long\def\@footnotetext#1{\ba@footnotetext{%
+ \global\let\thisto@ba=-%
+ \global\let\thisti@ba=-%
+ \global\let\thisp@ba=-%
+ \global\let\thisvol@ba=-%
+ \global\let\thiss@ba=-%
+ \global\let\thisn@ba=-%
+ \global\let\pos@ba=0%
+ \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces
+ #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba
+ \global\let\lastti@ba=\thisti@ba
+ \global\let\lastp@ba=\thisp@ba
+ \global\let\lastvol@ba=\thisvol@ba
+ \global\let\lasts@ba=\thiss@ba
+ \global\let\lastn@ba=\thisn@ba}}%
+
+
+% ./fnbreak/fnbreak.sty
+
+ \let\fnb@orig@footnotetext\@footnotetext
+ \long\def\@footnotetext#1{\fnb@orig@footnotetext{\fnb@fnstart#1\fnb@fnend}}%
+
+
+% ./revtex4-1/revtex4-1.cls ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ...
+
+\long\def\@footnotetext{%
+ \insert\footins\bgroup
+ \make@footnotetext
+}%
+\long\def\@mpfootnotetext{%
+ \minipagefootnote@pick
+ \make@footnotetext
+}%
+\long\def\make@footnotetext#1{%
+ \set@footnotefont
+ \set@footnotewidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@\@mpfn\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1%
+ \@finalstrut\strutbox\vadjust{\vskip\z@skip}%
+ }%
+ \color@endgroup
+ \minipagefootnote@drop
+}%
+
+
+% ./nrc/nrc1.cls ./nrc/nrc2.cls
+
+% this is missing the \par at the end and \@currentcounter
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \reset@font\smallt
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ }%
+}%
+
+%-------------------------------------
+
+% ./bigfoot/bigfoot.sty
+
+ \def\@footnotetext{\Footnotetextdefault{}}%
+
+%-------------------------------------
+
+
+% ./uafthesis/uafthesis.cls
+
+% this is missing the \par at the end and \@currentcounter
+
+%% this little gem provides for single-spaced footnotes
+\long\def\@footnotetext#1{\insert\footins{%
+ \ssp
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}}}
+
+%-------------------------------------
+
+
+
+% ./resphilosophica/resphilosophica.cls
+
+% I wonder if this \, is really intended below ...
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \normalfont\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM \hsize\columnwidth
+ \@parboxrestore \parindent\normalparindent \sloppy
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark}%
+ \@makefntext{%
+ \,\rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
+
+%-------------------------------------
+
+
+
+% ./setspace/setspace.sty
+
+% this is missing the \par at the end and \@currentcounter
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+% GT: Next line added. Hook desired here!
+ \def\baselinestretch {\setspace@singlespace}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+%-------------------------------------
+
+
+
+% ./linguex/linguex.sty
+
+
+\let\predefinedfootnotetext=\@footnotetext
+\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{#1}%
+ \@noftnotetrue}
+
+
+%-------------------------------------
+
+
+% ./fnpara/fnpara.sty
+
+\long\def\@footnotetext#1{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \setbox0=\hbox{%
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+ \penalty -10
+ \hskip\footglue
+ }%
+ }%
+ \dp0=0pt \ht0=\fudgefactor\wd0 \box0
+ \color@endgroup}}
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (para option)
+
+% this is missing the \par at the end and \@currentcounter
+
+ \long\def\FN@footnotetext#1{%
+ \insert\footins{%
+ \ifFN@setspace
+ \let\baselinestretch\FN@baselinestretch
+ \fi
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \setbox\FN@tempboxa\hbox{%
+ \@makefntext{\ignorespaces#1\strut
+ \penalty-10\relax
+ \hskip\footglue
+ }% end of \@makefntext parameter
+ }% end of \hbox
+ \dp\FN@tempboxa\z@
+ \ht\FN@tempboxa\dimexpr\wd\FN@tempboxa *%
+ \footnotebaselineskip / \columnwidth\relax
+ \box\FN@tempboxa
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (normal)
+
+% this is missing the \par at the end and \@currentcounter
+
+ \long\def\FN@footnotetext#1{%
+ \insert\footins{%
+ \ifFN@setspace
+ \let\baselinestretch\FN@baselinestretch
+ \fi
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }%
+
+
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (side option)
+
+ \long\def\FN@footnotetext#1{%
+ \marginpar{%
+ \ifFN@setspace
+ \let\baselinestretch\FN@baselinestretch
+ \fi
+ \reset@font\footnotesize
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \ignorespaces#1%
+ }%
+ \color@endgroup
+ }%
+ \FN@mf@prepare
+ }%
+
+
+
+%-------------------------------------
+
+
+
+% ./bxjscls/bxjsarticle.cls ./bxjscls/bxjsbook.cls ...
+
+\long\def\@footnotetext{%
+ \insert\footins\bgroup
+ \normalfont\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces}%
+ \futurelet\jsc@next\jsc@fo@t}
+\def\jsc@fo@t{\ifcat\bgroup\noexpand\jsc@next \let\jsc@next\jsc@f@@t
+ \else \let\jsc@next\jsc@f@t\fi \jsc@next}
+\def\jsc@f@@t{\bgroup\aftergroup\jsc@@foot\let\jsc@next}
+\def\jsc@f@t#1{#1\jsc@@foot}
+\def\jsc@@foot{\@finalstrut\strutbox\color@endgroup\egroup
+ \ifx\pltx@foot@penalty\@undefined\else
+ \ifhmode\null\fi
+ \ifnum\pltx@foot@penalty=\z@\else
+ \penalty\pltx@foot@penalty
+ \pltx@foot@penalty\z@
+ \fi
+ \fi}
+
+
+not covered so far supports \footnote{ catcode changes ...} but also
+\foonote A --- the latter is questionable I would say
+
+
+%-------------------------------------
+
+
+% ./fn2end/fn2end.sty
+
+obsolete I guess, ignored in evaluation
+
+
+%-------------------------------------
+
+
+% ./hyperref/hyperref.sty
+
+ \long\def\@footnotetext#1{%
+ \H@@footnotetext{%
+ \ifHy@nesting
+ \expandafter\ltx@firstoftwo
+ \else
+ \expandafter\ltx@secondoftwo
+ \fi
+ {%
+ \expandafter\hyper@@anchor\expandafter{%
+ \Hy@footnote@currentHref
+ }{\ignorespaces #1}%
+ }{%
+ \Hy@raisedlink{%
+ \expandafter\hyper@@anchor\expandafter{%
+ \Hy@footnote@currentHref
+ }{\relax}%
+ }%
+ \let\@currentHref\Hy@footnote@currentHref
+ \let\@currentlabelname\@empty
+ \ignorespaces #1%
+ }%
+ }%
+ }%
+
+
+Handling of anchors (in nested context) I guess. This needs to be
+married with the anchor setting that the tagging currently does and
+the latter improved/adjusted
+
+
+%-------------------------------------
+
+% ./biblatex-gb7714-2015/gb7714-2015ms.bbx ./biblatex-gb7714-2015/gb7714-2015mx.bbx ...
+
+ \long\def\@footnotetext##1{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \leftskip \footbibmargin%增加的左侧缩进
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces##1\@finalstrut\strutbox%
+ }%
+ \color@endgroup}}%
+
+fits the structure
+%-------------------------------------
+
+
+% ./amscls/amsbook.cls ./amscls/amsproc.cls ./amscls/amsart.cls ...
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \normalfont\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM \hsize\columnwidth
+ \@parboxrestore \parindent\normalparindent \sloppy
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark}%
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./umich-thesis/umich-thesis.cls
+
+% change LaTeX's footnotes to get vertical spacing correct
+\skip\footins \baselinestretch2\skip\footins
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \def\baselinestretch {\setspace@singlespace}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \vskip 1.2\baselineskip
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./nostarch/nostarch.cls
+
+\long\def\@footnotetext#1{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@{13.5pt}\ignorespaces#1}%
+ \color@endgroup}}%
+
+fixed \footsep, probably very old
+fits the structure
+%-------------------------------------
+
+
+
+% ./coursepaper/coursepaper.cls
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \def\baselinestretch {1}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./ucthesis/ucthesis.cls
+
+% Single-space footnotes.
+\long\def\@footnotetext#1{\insert\footins{\ssp\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}}}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./jura/jura.cls
+
+\long\def\@footnotetext#1{\insert\footins{%
+ \linespread{\J@FootnoteSpread}\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+
+fits the structure
+%-------------------------------------
+
+
+% ./asaetr/asaesub.sty
+
+2.09
+
+%-------------------------------------
+
+
+% ./lineno/fnlineno.sty
+
+%% |\FNLN@@text| stores the `\@footnotetext' found,
+%% we might check if it is `\FNLN@ltx@fntext' ... %% TODO
+\let\FNLN@@text\@footnotetext
+\def\@footnotetext{%
+ \ifLineNumbers \expandafter \FNLN@text
+ \else \expandafter \FNLN@@text
+ \fi}
+
+
+\def \FNLN@text {% %% 2010/12/31 arg read later
+ \vadjust{\penalty-\FNLN@M@swap@codepen}%
+%% Standard \LaTeX's `\@footnotetext' expands `\@thefnmark'
+%% to produce the footnote mark at the page bottom,
+%% right after it has been determined for the mark
+%% in the main text. \emph{Here} the footnote text
+%% will be typeset only when \emph{other} footnote marks
+%% may have been formed for typesetting the main text
+%% paragraph before.
+%% %%% (TODO clearer wording)
+%% In the \strong{footnote list}
+%% macro |\FNLN@list|, the (\dqtd{`&\protect'ed})
+%% \emph{current} expansion <mark> of `\@thefnmark'
+%% is stored as an item preceding the footnote text
+%% <text>. One footnote entry in `\FNLN@list'
+%% thus has the form \lq`<mark>\@lt<text>\@lt'\rq.
+%% \LaTeX's internal `\g@addto@macro' is used to \emph{append}
+%% an entry to the list (at the right). The OTR will later
+%% take the entries from the left of the list.
+%%
+%% The argument of the auxiliary/temporary `\@tempa'
+%% will contain the footnote text and thus must be able to
+%% carry `\par' tokens. We therefore need a `\long' version of
+%% `\protected@edef':
+ \let\@@protect\protect
+ \let\protect\@unexpandable@protect
+ \afterassignment\restore@protect
+ \long \edef \@tempa ##1{%
+ \noexpand\g@addto@macro \noexpand\FNLN@list {%
+ \@thefnmark \noexpand\@lt ##1\noexpand \@lt}}%
+%% ... issuing
+%% \lq`\g@addto@macro\FNLN@list{<mark>\elt<text>\@lt}'\rq\ ...
+ \@tempa %% reads arg
+}
+%% Here we initialize |\FNLN@list|:
+\let\FNLN@list\@empty
+
+
+
+probably continues working but needs separate checking
+
+%-------------------------------------
+
+
+
+% ./jurabib/jurabib.sty
+
+ \long\def\@footnotetext#1{%
+ \Orig@tabularx@footnotetext{%
+ \jb@fntrue
+ #1%
+ \setcounter{jb@cites@in@footnote}{0}%
+ }%
+ }%
+
+ \let\jbsaved@footnotetext\@footnotetext
+ \long\def\@footnotetext#1{%
+ \begingroup
+ \jb@fntrue
+ \jbsaved@footnotetext{#1}%
+ \setcounter{jb@cites@in@footnote}{0}%
+ \endgroup
+ }%
+
+
+first is table notes, second
+fits the structure
+%-------------------------------------
+
+
+
+% ./york-thesis/york-thesis.cls
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+ \def\baselinestretch {1}%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./ucdavisthesis/ucdavisthesis.cls
+
+\long\def\@footnotetext#1{\insert\footins{\renewcommand\baselinestretch{1}
+ \footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}\renewcommand\baselinestretch{\@spacing}}}
+
+looks old ...
+fits the structure
+%-------------------------------------
+
+
+% ./ledmac/afoot.sty
+
+fairly old and buggy in some aspects
+
+%%% Make the LaTeX \cs{footnote} catcode-safe, like in Plain TeX.
+
+\def \@footnotetext {% new, do not yet read footnote text
+ \insert \footins \bgroup
+ \ifx \footglue \undefined % prepare normal footnote
+ \interlinepenalty \interfootnotelinepenalty \floatingpenalty \@MM
+ \splittopskip \footnotesep \splitmaxdepth \dp \strutbox
+ \else
+ \global\long\def \@makefntext ##1{{$^{\@thefnmark }$}##1\nobreak }%
+ \setbox0=\hbox \bgroup % fnpara.sty is present
+ \floatingpenalty=20000 \footnotesize
+ \fi
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+ \a@fntext }
+
+
+%-------------------------------------
+
+
+% ./toptesi/toptesi.sty
+
+
+\long\def\@footnotetext#1{\insert\footins{\linespread{1}\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+ \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}}
+
+
+fits the structure
+%-------------------------------------
+
+
+% ./gb4e/gb4e.sty
+
+\let\@gbsaved@footnotetext=\@footnotetext
+\long\def\@footnotetext#1{%
+ \@noftnotefalse\setcounter{fnx}{0}%
+ \@gbsaved@footnotetext{#1}%
+ \@noftnotetrue}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./koma-script/scrlttr2.cls ./koma-script/scrextend.sty ./koma-script/scrreprt.cls ...
+
+same bug as footmisc: the @prepare is in the wrong place
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./tabu/tabu.sty
+
+not checked what that does
+
+
+%-------------------------------------
+
+
+% ./uwthesis/uwthesis.cls
+
+does chapter notes -- ignore for now
+
+%-------------------------------------
+
+
+% ./tools/multicol.sty
+
+\long\def\mult@footnotetext#1{\begingroup
+ \columnwidth\textwidth
+ \orig@footnotetext{#1}\endgroup}
+
+
+fits the structure, but need to think what makes sense here as this a
+temporary redefinition for the environment only
+
+%-------------------------------------
+
+
+% ./fancyvrb/fancyvrb.sty
+
+\long\def\V@footnotetext{%
+ \afterassignment\V@@footnotetext
+ \let\@tempa}
+\def\V@@footnotetext{%
+ \insert\footins\bgroup
+ \csname reset@font\endcsname
+ \footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \def\@currentcounter{footnote}%
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
+ \@makefntext{}%
+ \rule{\z@}{\footnotesep}%
+ \bgroup
+ \aftergroup\V@@@footnotetext
+ \ignorespaces}
+\def\V@@@footnotetext{\strut\egroup}
+
+
+another one of the footnote commands that do not read they argument as an argument
+
+%-------------------------------------
+
+
+% ./savefnmark/savefnmark.sty
+
+obsolete
+
+%-------------------------------------
+
+
+% ./changebar/changebar.sty
+
+\let\ltx@footnotetext\@footnotetext
+\long\def\cb@footnotetext#1{%
+ \cb@trace@stack{end footnote on page \the\c@page}%
+ \cb@pop\cb@currentstack
+ \ifnum\cb@topleft=\cb@nil
+ \ltx@footnotetext{#1}%
+ \else
+ \cb@push\cb@currentstack
+ \edef\cb@temp{\the\cb@curbarwd}%
+ \ltx@footnotetext{\cb@start[\cb@temp]#1\cb@end}%
+ \fi}
+\let\@footnotetext\cb@footnotetext
+
+
+% ./eledmac/eledmac.sty
+
+\apptocmd{\@footnotetext}{\m@mmf@prepare}{}{}
+\pretocmd{\@footnotetext}{%
+ \ifnumberedpar@
+ \edtext{}{\l@dbfnote{#1}}%
+ \else
+ }{}{}
+\apptocmd{\@footnotetext}{\fi}{}{}%
+
+
+% ./yafoot/dblfnote.sty
+
+\long\def\dfn@footnotetext#1{{\setbox\dfn@boxa\vbox{
+ \let\insert\dfn@gobble
+ \columnwidth\DFNcolumnwidth \hbadness\c@DFNsloppiness
+ \def\@makefnmark{\smash{\dfn@makefnmark}}
+ \dfn@latex@footnotetext{#1}\par \boxmaxdepth\dfn@fnmaxdp}%
+ \dfn@dima\ht\dfn@boxa \advance\dfn@dima\dp\dfn@boxa
+ \ifdim\dfn@dima>\z@\else
+ \dfn@dima1sp\relax
+ \setbox\dfn@boxa\vbox{\vbox to1sp{\unvbox\dfn@boxa\vfil}}\fi
+ \global\setbox\dfn@ins\vbox{\boxmaxdepth\dfn@fnmaxdp
+ \ifvoid\dfn@ins\else
+ \unvbox\dfn@ins \allowbreak \nointerlineskip \fi
+ \ifdfn@allowcbreak \unvbox \else \box \fi \dfn@boxa}%
+ \setbox\dfn@boxa\copy\dfn@ins
+ \dfn@split{.5\ht\dfn@boxa}\dfn@boxa\dfn@boxb\dfn@fnmaxdp\footnotesep
+ \advance\@tempdima\@tempdimb \@tempdimb\@tempdima
+ \advance\@tempdima-\dfn@fnht \global\dfn@fnht\@tempdimb
+ \insert\footins{\floatingpenalty\@MM \vbox to\@tempdima{}}%
+ \xdef\dfn@list{\dfn@list\@elt{\number\dfn@dima}{\number\@tempdima}}}}
+\let\dfn@latex@footnotetext\@footnotetext
+\let\@footnotetext\dfn@footnotetext
+
+
+% ./ftnxtra/ftnxtra.sty
+
+not checked what this does
+
+
+% ./acmart/acmart.cls
+
+\if@ACM@sigchiamode
+\long\def\@footnotetext#1{\marginpar{%
+ \reset@font\small
+ \interlinepenalty\interfootnotelinepenalty
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+\fi
+
+
+% ./memoir/memoir.cls
+
+ this needs some further analysis
+
diff --git a/macros/latex/required/latex-lab/usage-of-kern-kern.txt b/macros/latex/required/latex-lab/usage-of-kern-kern.txt
new file mode 100644
index 0000000000..e119197b70
--- /dev/null
+++ b/macros/latex/required/latex-lab/usage-of-kern-kern.txt
@@ -0,0 +1,80 @@
+
+ \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax
+./bxjscls/bxjsja-minimal.def
+
+
+
+ \ifdim\lastkern=-3sp \unkern
+ \ifdim\lastkern=3sp \kern-3sp
+ {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/letterspace.sty
+
+
+ \ifdim\lastkern=-3sp \unkern
+ \ifdim\lastkern=3sp \kern-3sp
+ {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/microtype-pdftex.def
+
+
+ \ifdim\lastkern=-3sp \unkern
+ \ifdim\lastkern=3sp \kern-3sp
+ {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/microtype-luatex.def
+
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./eledmac/eledmac.sty
+
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./reledmac/reledmac.sty
+
+
+\edef\CJK@kern{\kern -2sp\kern 2sp}
+\edef\CJK@CJK{\kern -1sp\kern 1sp}
+./cjk/texinput/CJK.sty
+
+
+\edef\ruby@kern{\kern -5sp\kern 5sp}
+./cjk/texinput/ruby.sty
+
+
+% hyphenation between pinyin syllables. Values 1sp-3sp are already used
+\edef\py@sp{\kern -4sp\kern 4sp}
+./cjk/texinput/pinyin.sty
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./tufte-latex/tufte-common.def
+
+
+
+\newcommand*{\multiplefootnotemarker}{3sp}
+./memoir/memoir.cls
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./parnotes/parnotes.sty
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./lwarp/lwarp-footmisc.sty
+
+
+ \bgroup \kern-3sp\kern3sp % kerns so I can test for beginning of list
+./examdesign/examdesign.cls
+
+
+ \kern-1sp \kern1sp }
+ \kern-2sp \kern2sp }
+ \kern-3sp \kern3sp }
+ \kern-4sp \kern4sp }
+./polyglossia/gloss-korean.ldf
+
+
+
+\NewDocumentCommand \@sidenotes@multisign { } {3sp}
+./sidenotes/sidenotes.sty
+
diff --git a/macros/latex/required/tools/README.md b/macros/latex/required/tools/README.md
index cad662ebb1..5c8ee4cc31 100644
--- a/macros/latex/required/tools/README.md
+++ b/macros/latex/required/tools/README.md
@@ -1,7 +1,7 @@
The LaTeX `tools` bundle
========================
-Release 2021-11-15
+Release 2022-06-01
Overview
--------
@@ -51,4 +51,4 @@ of the package.
-----
-<p>Copyright (C) 1993-2021 The LaTeX Project <br />
+<p>Copyright (C) 1993-2022 The LaTeX Project <br />
diff --git a/macros/latex/required/tools/afterpage.dtx b/macros/latex/required/tools/afterpage.dtx
index e5fa69f515..cf949c0aca 100644
--- a/macros/latex/required/tools/afterpage.dtx
+++ b/macros/latex/required/tools/afterpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -101,7 +101,7 @@
% on a new page.
% \end{enumerate}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macrocode}
%<*package>
diff --git a/macros/latex/required/tools/afterpage.ins b/macros/latex/required/tools/afterpage.ins
index 0cfc531f19..3aa1679f77 100644
--- a/macros/latex/required/tools/afterpage.ins
+++ b/macros/latex/required/tools/afterpage.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/afterpage.pdf b/macros/latex/required/tools/afterpage.pdf
index 305337ebc1..d9e5b6285f 100644
--- a/macros/latex/required/tools/afterpage.pdf
+++ b/macros/latex/required/tools/afterpage.pdf
Binary files differ
diff --git a/macros/latex/required/tools/array.dtx b/macros/latex/required/tools/array.dtx
index ba88aba7c2..c9f77d77a3 100644
--- a/macros/latex/required/tools/array.dtx
+++ b/macros/latex/required/tools/array.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -33,7 +33,7 @@
%<+package>\DeclareCurrentRelease{}{2020-10-01}
%<+package>
%<+package>\ProvidesPackage{array}
-%<+package> [2021/10/04 v2.5f Tabular extension package (FMi)]
+%<+package> [2022/03/10 v2.5f Tabular extension package (FMi)]
%
% \fi
%
@@ -753,7 +753,7 @@
%
% \changes{v2.2b}{1994/02/04}{Removed interactive prompt}
%
-% \StopEventually{
+% \MaybeStop{
%
%
% \begin{thebibliography}{1}
@@ -773,7 +773,7 @@
% Addison-Wesley, Reading, Massachusetts, 1986.
% \end{thebibliography}
%
-% } ^^A end of \StopEventually
+% } ^^A end of \MaybeStop
%
%
%
@@ -890,8 +890,8 @@
% c & 0 & 0 \\
% l & 0 & 1 \\
% r & 0 & 2 \\
-% p-arg & 0 & 3 \\
-% t-arg & 0 & 4 \\
+% m-arg & 0 & 3 \\
+% p-arg & 0 & 4 \\
% b-arg & 0 & 5 \\
% | & 1 & 0 \\
% !-arg & 1 & 1 \\
@@ -907,8 +907,8 @@
% @ & 7 & --- \\
% < & 8 & --- \\
% > & 9 & --- \\
-% p & 10 & 3 \\
-% t & 10 & 4 \\
+% m & 10 & 3 \\
+% p & 10 & 4 \\
% b & 10 & 5
% \end{tabular}
% \end{center}
diff --git a/macros/latex/required/tools/array.pdf b/macros/latex/required/tools/array.pdf
index b53441748b..6059b098ca 100644
--- a/macros/latex/required/tools/array.pdf
+++ b/macros/latex/required/tools/array.pdf
Binary files differ
diff --git a/macros/latex/required/tools/bm.dtx b/macros/latex/required/tools/bm.dtx
index 2b56b92b54..daf4dce66b 100644
--- a/macros/latex/required/tools/bm.dtx
+++ b/macros/latex/required/tools/bm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
%
% \iffalse
-%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019 2021 2022
%% David Carlisle Frank Mittelbach
%%
%% Development of this package was commissioned by Y&Y Inc.
@@ -36,7 +36,7 @@
%<driver>\ProvidesFile{bm.drv}
% \fi
% \ProvidesFile{bm.dtx}
- [2021/04/25 v1.2e Bold Symbol Support (DPC/FMi)]
+ [2022/01/05 v1.2f Bold Symbol Support (DPC/FMi)]
%
% \iffalse
%<*driver>
@@ -312,7 +312,7 @@
% the package option |nopbm| is available which prevents its use in which case |\bm| will
% use the non-bold for characters from the affected font,
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
@@ -839,9 +839,12 @@
\unvcopy{\GenericError{##1}{##2}{##3}{##4}}}%
% \end{macrocode}
% For AMS definitions.
+% \changes{v1.2f}{2022/01/05}
+% {Guard \cs{nolimits@}, gh/744}
% \begin{macrocode}
\let\DN@\copy
\let\FN@\copy
+ \let\nolimits@\copy
\let\next@\copy
\global\let\bm@first\@empty
% \end{macrocode}
@@ -1016,7 +1019,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\bm@end}
+% \begin{macro}[outer]{\bm@end}
% \changes{v0.10}{1997/01/04}
% {Macro added}
% Normally speaking |\outer| declarations should be avoided at all
diff --git a/macros/latex/required/tools/bm.ins b/macros/latex/required/tools/bm.ins
index c00a3e5cca..51243a6090 100644
--- a/macros/latex/required/tools/bm.ins
+++ b/macros/latex/required/tools/bm.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/bm.pdf b/macros/latex/required/tools/bm.pdf
index 676814876a..bac5c04169 100644
--- a/macros/latex/required/tools/bm.pdf
+++ b/macros/latex/required/tools/bm.pdf
Binary files differ
diff --git a/macros/latex/required/tools/calc.dtx b/macros/latex/required/tools/calc.dtx
index 78b6167fe6..97ef72e7b9 100644
--- a/macros/latex/required/tools/calc.dtx
+++ b/macros/latex/required/tools/calc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -425,7 +425,7 @@
% syntax characters.
%
%
-% \StopEventually{
+% \MaybeStop{
% \begin{thebibliography}{1}
% \bibitem{texbook}
% \textsc{D. E. Knuth}.
diff --git a/macros/latex/required/tools/calc.pdf b/macros/latex/required/tools/calc.pdf
index 27edf27493..1d82f19254 100644
--- a/macros/latex/required/tools/calc.pdf
+++ b/macros/latex/required/tools/calc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/changes.txt b/macros/latex/required/tools/changes.txt
index 43464f8b24..689d3f4369 100644
--- a/macros/latex/required/tools/changes.txt
+++ b/macros/latex/required/tools/changes.txt
@@ -10,6 +10,32 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 Release
+#########################
+
+2022-04-12 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * showkeys.dtx: Adapt to starred references, update varioref support.
+ Added rollback to 2014-10-28
+
+2022-01-05 David Carlisle <David.Carlisle@latex-project.org>
+
+ * bm.dtx: Guard \nolimits@ for gh issue 744
+
+2021-12-05 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * multicol.dtx (subsection{Manual column breaking} \label{sec:colbreak}):
+ Added a missing guard in \newcolumn -- it only worked in hmode (sx/624940)
+
+2021-11-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * multicol.dtx: Added rollback to v1.8 (2019-10-01 release)
+
+2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * All *.dtx: Replaced \StopEventually by \MaybeStop
+
+#########################
# 2021-11-15 Release
#########################
@@ -87,7 +113,7 @@ All changes above are only part of the development branch for the next release.
2021-03-28 David Carlisle <David.Carlisle@latex-project.org>
* longtable.dtx: \reset@font in captions gh/133
-
+
* longtable.dtx: Allow paragraphs in footnotes gh/364
2021-03-10 Johannes Braams <Johannes.Braams@latex-project.org>
@@ -1903,4 +1929,3 @@ Wed Jul 10 11:15:30 1996 David Carlisle <carlisle@cs.man.ac.uk>
Changed driver code slightly.
Moved the driver code in front so that the documentation can be
processed by simply running the file through LaTeX2e.
-
diff --git a/macros/latex/required/tools/dcolumn.dtx b/macros/latex/required/tools/dcolumn.dtx
index 069e633221..7415e23752 100644
--- a/macros/latex/required/tools/dcolumn.dtx
+++ b/macros/latex/required/tools/dcolumn.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -191,7 +191,7 @@
% "D{+}{\,\pm\,}{3,3}" will give nice, symmetric layout of up to three
% digits on either side of a $\pm$ sign.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{The Macros}
diff --git a/macros/latex/required/tools/dcolumn.pdf b/macros/latex/required/tools/dcolumn.pdf
index 8b5ed07f9e..ae58873898 100644
--- a/macros/latex/required/tools/dcolumn.pdf
+++ b/macros/latex/required/tools/dcolumn.pdf
Binary files differ
diff --git a/macros/latex/required/tools/delarray.dtx b/macros/latex/required/tools/delarray.dtx
index cc503707b0..d8aba52f32 100644
--- a/macros/latex/required/tools/delarray.dtx
+++ b/macros/latex/required/tools/delarray.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -100,7 +100,7 @@
% \end{verbatim}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/tools/delarray.pdf b/macros/latex/required/tools/delarray.pdf
index e166deaf34..5b38f447a9 100644
--- a/macros/latex/required/tools/delarray.pdf
+++ b/macros/latex/required/tools/delarray.pdf
Binary files differ
diff --git a/macros/latex/required/tools/enumerate.dtx b/macros/latex/required/tools/enumerate.dtx
index 150a7386b8..89910438e9 100644
--- a/macros/latex/required/tools/enumerate.dtx
+++ b/macros/latex/required/tools/enumerate.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -122,7 +122,7 @@
% |\ref{LA}|, |\ref{LB}| and |\ref{LC}| produce
% `\ref{LA}', `\ref{LB}' and `\ref{LC}' respectively.
%
-% \StopEventually{}
+% \MaybeStop{}
%
%\section{Macros}
%
diff --git a/macros/latex/required/tools/enumerate.pdf b/macros/latex/required/tools/enumerate.pdf
index f9c8f07850..6ea6e1d4d6 100644
--- a/macros/latex/required/tools/enumerate.pdf
+++ b/macros/latex/required/tools/enumerate.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fileerr.dtx b/macros/latex/required/tools/fileerr.dtx
index d916304116..59c1bbbbec 100644
--- a/macros/latex/required/tools/fileerr.dtx
+++ b/macros/latex/required/tools/fileerr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -51,7 +51,7 @@
% \par After installing these files the user can respond with
% |h|, |q|, |r|, |s|, |e|, |x|, and on some systems also with
% \meta{return} to \TeX's missing file name question.
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The documentation driver}
% This code will generate the documentation. Since it is the
diff --git a/macros/latex/required/tools/fileerr.pdf b/macros/latex/required/tools/fileerr.pdf
index 3ae0da8810..7507c3009b 100644
--- a/macros/latex/required/tools/fileerr.pdf
+++ b/macros/latex/required/tools/fileerr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fontsmpl.dtx b/macros/latex/required/tools/fontsmpl.dtx
index b720826773..de2b55a608 100644
--- a/macros/latex/required/tools/fontsmpl.dtx
+++ b/macros/latex/required/tools/fontsmpl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -70,7 +70,7 @@
% The |fontsmpl| document prompts interactively for a font family (for
% example `|cmr|') and produces a sample of that family.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Documentation}
%
diff --git a/macros/latex/required/tools/fontsmpl.pdf b/macros/latex/required/tools/fontsmpl.pdf
index 5a4123dfc5..0ee42b5913 100644
--- a/macros/latex/required/tools/fontsmpl.pdf
+++ b/macros/latex/required/tools/fontsmpl.pdf
Binary files differ
diff --git a/macros/latex/required/tools/ftnright.dtx b/macros/latex/required/tools/ftnright.dtx
index e8da56aa20..1a7f7f584f 100644
--- a/macros/latex/required/tools/ftnright.dtx
+++ b/macros/latex/required/tools/ftnright.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -292,7 +292,7 @@
% worth of footnote material and that means that some of your footnotes are
% likely to be detached from their reference and show up on a later page!
%
-% \StopEventually{
+% \MaybeStop{
%
% \begin{small}
% \begin{thebibliography}{1}
diff --git a/macros/latex/required/tools/ftnright.pdf b/macros/latex/required/tools/ftnright.pdf
index e98cb88633..1085686752 100644
--- a/macros/latex/required/tools/ftnright.pdf
+++ b/macros/latex/required/tools/ftnright.pdf
Binary files differ
diff --git a/macros/latex/required/tools/hhline.dtx b/macros/latex/required/tools/hhline.dtx
index 98d6802451..74143d1373 100644
--- a/macros/latex/required/tools/hhline.dtx
+++ b/macros/latex/required/tools/hhline.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -148,7 +148,7 @@
% program, or if this is not possible, increasing "\arrayrulewidth"
% may help to reduce the effect.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/tools/hhline.pdf b/macros/latex/required/tools/hhline.pdf
index 188fd037f7..47076e83e9 100644
--- a/macros/latex/required/tools/hhline.pdf
+++ b/macros/latex/required/tools/hhline.pdf
Binary files differ
diff --git a/macros/latex/required/tools/indentfirst.dtx b/macros/latex/required/tools/indentfirst.dtx
index e54df284ae..dff777d29d 100644
--- a/macros/latex/required/tools/indentfirst.dtx
+++ b/macros/latex/required/tools/indentfirst.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -59,7 +59,7 @@
%
% \CheckSum{4}^^A Still I think a record:-)
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \begin{macro}{\if@afterindent}
% \LaTeX\ uses the switch |\if@afterindent| to decide whether to indent
diff --git a/macros/latex/required/tools/indentfirst.pdf b/macros/latex/required/tools/indentfirst.pdf
index f6460af970..dbc58d7de9 100644
--- a/macros/latex/required/tools/indentfirst.pdf
+++ b/macros/latex/required/tools/indentfirst.pdf
Binary files differ
diff --git a/macros/latex/required/tools/layout.dtx b/macros/latex/required/tools/layout.dtx
index de61aeae8c..323705e9ba 100644
--- a/macros/latex/required/tools/layout.dtx
+++ b/macros/latex/required/tools/layout.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -92,7 +92,7 @@
% \layout
% \end{figure}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The implementation}
%
diff --git a/macros/latex/required/tools/layout.pdf b/macros/latex/required/tools/layout.pdf
index 153ffc0a8a..911f310408 100644
--- a/macros/latex/required/tools/layout.pdf
+++ b/macros/latex/required/tools/layout.pdf
Binary files differ
diff --git a/macros/latex/required/tools/longtable.dtx b/macros/latex/required/tools/longtable.dtx
index b66aef075e..72b8727d81 100644
--- a/macros/latex/required/tools/longtable.dtx
+++ b/macros/latex/required/tools/longtable.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -770,7 +770,7 @@
% \end{verbatim}
% \endgroup
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \finalclearpage
% \section{The Macros}
diff --git a/macros/latex/required/tools/longtable.ins b/macros/latex/required/tools/longtable.ins
index 92a04e00d4..7f53df7c5e 100644
--- a/macros/latex/required/tools/longtable.ins
+++ b/macros/latex/required/tools/longtable.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/longtable.pdf b/macros/latex/required/tools/longtable.pdf
index 77ab8c2bbc..009110e47c 100644
--- a/macros/latex/required/tools/longtable.pdf
+++ b/macros/latex/required/tools/longtable.pdf
Binary files differ
diff --git a/macros/latex/required/tools/multicol-2019-10-01.sty b/macros/latex/required/tools/multicol-2019-10-01.sty
new file mode 100644
index 0000000000..221f62f68e
--- /dev/null
+++ b/macros/latex/required/tools/multicol-2019-10-01.sty
@@ -0,0 +1,1105 @@
+%% This is a rollback file for multicol to the last version within release 2019-10-01
+%% =======================
+%%
+%%
+%% This is file `multicol.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% multicol.dtx (with options: `package,badness,check,marktrace,nobalance')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% Package `multicol' to use with LaTeX2e
+%% Copyright 1989-2019 Frank Mittelbach
+%%
+%% In addition to the terms of LPPL any distributed version
+%% (unchanged or modified) of multicol has to keep the statement
+%% about the moral obligation for using multicol. In case of major
+%% changes where this would not be appropriate the author of the
+%% changed version should contact the copyright holder.
+%%
+%%
+%% Moral obligation for using multicol:
+%% ------------------------------------
+%%
+%% Users of multicol who wish to include or use multicol or a modified
+%% version in a proprietary and commercially market product are asked
+%% under certain conditions (see below) for the payment of a license
+%% fee. The size of this fee is to be determined, in each instance,
+%% by the commercial user, depending on his/her judgment of the value of
+%% multicol for his/her product.
+%%
+%%
+%% The conditions for this are as follows:
+%%
+%% The producer of a proprietary and commercially market product
+%% that involves typesetting using multicol is asked to determine
+%% the value of a license fee for using multicol if
+%%
+%% - the product is a document and the producer has decided to
+%% include multicol to typeset (parts of) the document or has
+%% directed the author of the document to include multicol (for
+%% example, by providing a class file to be used by the author)
+%%
+%% - the product is a LaTeX class or package that includes multicol
+%%
+%%
+%% There is no moral obligation in case
+%%
+%% - the product is a document but producer has not directed
+%% the author to include multicol (in that case the moral obligation
+%% lies with the author of the document)
+%%
+%% - the product does not involve typesetting, e.g., consists, for
+%% example, of distributing multicol and its documentation.
+%%
+%% - the product is not proprietary, i.e., is made available as free
+%% software itself (which doesn't prohibit its commercial marketing)
+%%
+%% - multicol is used for non-commercial purposes
+%%
+%%
+%% Determining a license fee might result in a license fee of zero
+%% (i.e., no payment) in case a producer has determined that the use
+%% of multicol has no enhancing effect on the product. This is a
+%% plausible scenario, i.e., in the above two cases the producer is
+%% only asked to evaluate the value of multicol for the product
+%% not for the payment of a license fee per se (which might or might
+%% not follow from this evaluation).
+%%
+%% The license fee, if any, can be payed either to the LaTeX fund
+%% (see ltx3info.txt in the base LaTeX distribution) or to the author of
+%% the program who can be contacted at
+%%
+%% Frank.Mittelbach@latex-project.org
+%%
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
+\DeclareCurrentRelease{}{2018-04-01}
+
+\ProvidesPackage{multicol}
+ [2019/12/09 v1.8y multicolumn formatting (FMi)]
+%%
+\DeclareOption{twocolumn}
+ {\PackageWarning{multicol}{May not work
+ with the twocolumn option}}
+\newcount\c@tracingmulticols
+\DeclareOption{errorshow}
+ {\c@tracingmulticols\z@}
+\DeclareOption{infoshow}
+ {\c@tracingmulticols\@ne}
+\DeclareOption{balancingshow}
+ {\c@tracingmulticols\tw@}
+\DeclareOption{markshow}
+ {\c@tracingmulticols\thr@@}
+\DeclareOption{debugshow}
+ {\c@tracingmulticols5\relax}
+\let\mc@gridwarn\maxdimen
+\DeclareOption{grid}{\def\mc@gridwarn{\@maxdepth}}
+\DeclareOption{colaction}{%
+ \def\mc@col@status@write{%
+ \protected@write\@auxout{}%
+ {\string\mc@col@status
+ {\ifmc@firstcol 1\else 2\fi}}%
+ \mc@firstcolfalse}%
+ \def\mc@lastcol@status@write{%
+ \protected@write\@auxout{}%
+ {\string\mc@col@status{3}}}%
+}
+\let\mc@col@status@write\relax
+\let\mc@lastcol@status@write\relax
+\ProcessOptions
+\def\multicols#1{\col@number#1\relax
+ \ifnum\col@number<\tw@
+ \PackageWarning{multicol}%
+ {Using `\number\col@number'
+ columns doesn't seem a good idea.^^J
+ I therefore use two columns instead}%
+ \col@number\tw@ \fi
+ \ifnum\col@number>20
+ \PackageError{multicol}%
+ {Too many columns}%
+ {Current implementation doesn't
+ support more than 20 columns.%
+ \MessageBreak
+ I therefore use 20 columns instead}%
+ \col@number20 \fi
+ \ifx\@footnotetext\mult@footnotetext\else
+ \let\orig@footnotetext\@footnotetext
+ \let\@footnotetext\mult@footnotetext
+ \fi
+ \@ifnextchar[\mult@cols{\mult@cols[]}}
+\long\def\mult@footnotetext#1{\begingroup
+ \columnwidth\textwidth
+ \orig@footnotetext{#1}\endgroup}
+\def\mult@cols[#1]{\@ifnextchar[%
+ {\mult@@cols{#1}}%
+ {\mult@@cols{#1}[\premulticols]}}
+\def\mult@@cols#1[#2]{%
+ \par
+ \ifinner \@boxedmulticolstrue
+ \else
+ \ifnum \doublecol@number>\z@
+ \@boxedmulticolstrue
+ \fi
+ \fi
+ \mult@info\z@
+ {Starting environment with
+ \the\col@number\space columns%
+ \if@boxedmulticols\MessageBreak
+ (boxed mode)\fi
+ }%
+ \enough@room{#2}%
+ #1\par\addvspace\multicolsep
+ \ifdim \prevdepth = -\@m\p@
+ \else
+ \@tempcnta\prevdepth
+ \@tempcntb\baselineskip
+ \divide\@tempcnta\@tempcntb
+ \advance\@tempcnta\@ne
+ \dimen@\prevdepth
+ \advance\dimen@ -\@tempcnta\baselineskip
+ \advance\dimen@ \topskip
+ \kern-\dimen@
+ \fi
+ \begingroup
+ \prepare@multicols
+ \if@boxedmulticols
+ \setbox\mult@box\vbox\bgroup
+ \color@setgroup
+ \fi
+ \ignorespaces}
+\newif\if@boxedmulticols
+\@boxedmulticolsfalse
+\newbox\mult@box
+\def\enough@room#1{%
+ \if@boxedmulticols\else
+ \par
+ \bgroup\@nobreakfalse\addpenalty\z@\egroup
+ \page@free \pagegoal
+ \advance \page@free -\pagetotal
+ \@tempskipa#1\relax
+ \mult@info\z@
+ {Current page:\MessageBreak
+ height=%
+ \the\pagegoal: used \the\pagetotal
+ \space -> free=\the\page@free
+ \MessageBreak
+ needed \the\@tempskipa
+ \space(for #1)}%
+ \ifdim \page@free <#1\newpage \fi
+ \fi}
+\def\prepare@multicols{%
+ \multicol@leftmargin\@totalleftmargin
+ \@totalleftmargin\z@
+ \parshape\z@
+ \doublecol@number\col@number
+ \multiply\doublecol@number\tw@
+ \advance\doublecol@number\mult@rightbox
+ \if@boxedmulticols
+ \let\l@kept@firstmark\kept@firstmark
+ \let\l@kept@botmark\kept@botmark
+ \global\let\kept@firstmark\@empty
+ \global\let\kept@botmark\@empty
+ \else
+ \nointerlineskip {\topskip\z@\null}%
+ \output{%
+ \global\setbox\partial@page\vbox
+ {%
+ \ifvoid\partial@page\else
+ \PackageError{multicol}%
+ {Error saving partial page}%
+ {The part of the page before
+ the multicols environment was
+ nearly full with^^Jthe result
+ that starting the environment
+ will produce an overfull
+ page. Some^^Jtext may be lost!
+ Please increase \premulticols
+ either generally or for this%
+ ^^Jenvironment by specifying a
+ suitable value in the second
+ optional argument to^^Jthe
+ multicols environment.}
+ \unvbox\partial@page
+ \box\last@line
+ \fi
+ \unvbox\@cclv
+ \global\setbox\last@line\lastbox
+ }%
+ \prep@keptmarks
+ \global\let\kept@topmark\firstmark
+ }\eject
+ \advance\@colroom-\ht\partial@page
+ \set@mult@vsize\relax
+ \output{\multi@column@out}%
+ \init@mult@footins
+ \reinsert@footnotes
+ \def\clearpage{%
+ \ifx\@deferlist\@empty\else
+ \PackageError{multicol}%
+ {Deferred floats not cleared}%
+ {A \string\clearpage\space inside multicols acts like
+ \string\newpage\space and doesn't clear floats.\MessageBreak
+ Move it before the multicols environment if you need it.}%
+ \fi
+ \newpage}%
+ \fi
+ \vbadness\@Mi \hbadness5000
+ \tolerance\multicoltolerance
+ \pretolerance\multicolpretolerance
+ \setemergencystretch\col@number\hsize
+ \set@floatcmds
+ \advance\baselineskip\multicolbaselineskip
+ \hsize\linewidth \advance\hsize\columnsep
+ \advance\hsize-\col@number\columnsep
+ \divide\hsize\col@number
+ \full@width\linewidth
+ \linewidth\hsize
+ \columnwidth\hsize
+}
+\def\init@mult@footins{%
+ \multiply\count\footins\col@number
+ \multiply\skip \footins\col@number
+}
+\def\set@mult@vsize#1{%
+ \vsize\@colroom
+ \@tempdima\baselineskip
+ \advance\@tempdima-\topskip
+ \advance\vsize\@tempdima
+ \vsize\col@number\vsize
+ \advance\vsize-\@tempdima
+ \advance\vsize\col@number\baselineskip
+ #1\advance\vsize
+ \c@collectmore\baselineskip}
+\newdimen\multicol@leftmargin
+\mathchardef\@Mvi=10006 % 10005 is \columnbreak
+\def\endmulticols{\par
+ \if@boxedmulticols
+ \remove@discardable@items\color@endgroup\egroup
+ \balance@columns
+ \return@nonemptymark{first}%
+ \kept@firstmark
+ \return@nonemptymark{bot}%
+ \kept@botmark
+ \page@sofar
+ \global\let\kept@firstmark
+ \l@kept@firstmark
+ \global\let\kept@botmark
+ \l@kept@botmark
+ \mult@info\tw@
+ {Restore kept marks to\MessageBreak
+ first: \meaning\kept@firstmark
+ \MessageBreak bot\space\space:
+ \meaning\kept@botmark }%
+ \else
+ \ifdim\pagegoal=\maxdimen
+ \ifvoid\colbreak@box\else
+ \mult@info\@ne{Re-adding forced
+ break(s) for splitting}%
+ \unvbox\colbreak@box\fi
+ \fi
+ \penalty\z@
+ \penalty-\@Mvi
+ \ifvbox\partial@page
+ \unvbox\partial@page\fi
+ \global\let\kept@firstmark\@empty
+ \global\let\kept@botmark\@empty
+ \mult@info\tw@
+ {Make kept marks empty}%
+ \fi
+ \@checkend{multicols}%
+ \endgroup
+ \global\c@unbalance\z@
+ \if@boxedmulticols
+ \mc@col@status@write
+ \else
+ \reinsert@footnotes
+ \ifdim \pagegoal=\maxdimen
+ \global\vsize\@colroom
+ \else
+ \enough@room\postmulticols
+ \fi
+ \fi
+ \addvspace\multicolsep
+ \prevdepth\z@
+ \mult@info\z@
+ {Ending environment
+ \if@boxedmulticols
+ \space(boxed mode)\fi
+ }}
+\newcount\c@unbalance
+\newcount\c@collectmore
+\newcount\doublecol@number
+\newcount\multicoltolerance
+\newcount\multicolpretolerance
+\newdimen\full@width
+\newdimen\page@free
+\newdimen\premulticols
+\newdimen\postmulticols
+\newskip\multicolsep
+\newskip\multicolbaselineskip
+\newbox\partial@page
+\newbox\last@line
+\c@unbalance = 0
+\c@collectmore = 0
+\multicoltolerance = 9999
+\multicolpretolerance = -1
+\premulticols = 50pt
+\postmulticols= 20pt
+\multicolsep = 12pt plus 4pt minus 3pt
+\multicolbaselineskip=0pt
+\def\process@cols#1#2{\count@#1\relax
+ \loop
+ #2%
+ \advance\count@\tw@
+ \ifnum\count@<\doublecol@number
+ \repeat}
+\def\page@sofar{%
+ \process@cols\mult@rightbox
+ {\ifvoid\count@
+ \setbox\count@\hbox to\hsize{}%
+ \else
+ \wd\count@\hsize
+ \fi}%
+ \count@\col@number \advance\count@\m@ne
+ \mult@info\z@
+ {Column spec: \the\full@width\space = indent
+ + columns + sep =\MessageBreak
+ \the\multicol@leftmargin\space
+ + \the\col@number\space
+ x \the\hsize\space
+ + \the\count@\space
+ x \the\columnsep
+ }%
+\ifvmode\else\errmessage{Multicol Error}\fi
+ \nointerlineskip
+ \setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
+ \moveright\multicol@leftmargin
+ \hbox to\full@width{%
+ \mc@align@columns
+ \rlap{\phantom p}%
+ }%
+ \prevdepth\z@
+ \kern-\dimen\tw@
+ \ifdim\dimen\tw@ > \mc@gridwarn
+ \PackageWarning{multicol}%
+ {Very deep columns!\MessageBreak
+ Grid alignment might be broken}%
+ \fi
+}
+\def\columnseprulecolor{\normalcolor}
+\def\reinsert@footnotes{\ifvoid\footins\else
+ \insert\footins{}\fi}
+\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
+ \@minus \@maxdepth}
+\def\multi@column@out{%
+ \ifnum\outputpenalty <-\@M
+ \speci@ls \else
+ \ifvoid\colbreak@box\else
+ \mult@info\@ne{Re-adding forced
+ break(s) for splitting}%
+ \setbox\@cclv\vbox{%
+ \unvbox\colbreak@box
+ \penalty-\@Mv
+ \unvbox\@cclv}%
+ \fi
+ \splittopskip\topskip
+ \splitmaxdepth\@maxdepth
+ \boxmaxdepth\@maxdepth
+ \dimen@\@colroom
+ \divide\skip\footins\col@number
+ \ifvoid\footins \else
+ \leave@mult@footins
+ \fi
+
+ \ifvbox \@kludgeins
+ \advance \dimen@ -\ht\@kludgeins
+ \ifdim \wd\@kludgeins>\z@
+ \shr@nkingtrue
+ \fi
+ \fi
+ \process@cols\mult@gfirstbox{%
+ \setbox\count@
+ \vsplit\@cclv to\dimen@
+ \set@keptmarks
+ \setbox\count@
+ \vbox to\dimen@
+ {\unvbox\count@
+ \ifshr@nking\vfilmaxdepth\fi}%
+ }%
+ \setbox\mult@rightbox
+ \vsplit\@cclv to\dimen@
+ \set@keptmarks
+ \setbox\mult@rightbox\vbox to\dimen@
+ {\unvbox\mult@rightbox
+ \ifshr@nking\vfilmaxdepth\fi}%
+ \ifvoid\@cclv \else
+ \unvbox\@cclv
+ \ifnum\outputpenalty=\@M
+ \else
+ \penalty\outputpenalty
+ \fi
+ \ifvoid\footins\else
+ \PackageWarning{multicol}%
+ {I moved some lines to
+ the next page.\MessageBreak
+ Footnotes on page
+ \thepage\space might be wrong}%
+ \fi
+ \ifnum \c@tracingmulticols>\thr@@
+ \hrule\allowbreak \fi
+ \fi
+ \ifx\@empty\kept@firstmark
+ \let\firstmark\kept@topmark
+ \let\botmark\kept@topmark
+ \else
+ \let\firstmark\kept@firstmark
+ \let\botmark\kept@botmark
+ \fi
+ \let\topmark\kept@topmark
+ \mult@info\tw@
+ {Use kept top mark:\MessageBreak
+ \meaning\kept@topmark
+ \MessageBreak
+ Use kept first mark:\MessageBreak
+ \meaning\kept@firstmark
+ \MessageBreak
+ Use kept bot mark:\MessageBreak
+ \meaning\kept@botmark
+ \MessageBreak
+ Produce first mark:\MessageBreak
+ \meaning\firstmark
+ \MessageBreak
+ Produce bot mark:\MessageBreak
+ \meaning\botmark
+ \@gobbletwo}%
+ \boxmaxdepth\maxdimen
+ \setbox\@cclv\vbox{\unvbox\partial@page
+ \page@sofar}%
+ \@makecol\@outputpage
+ \global\let\kept@topmark\botmark
+ \global\let\kept@firstmark\@empty
+ \global\let\kept@botmark\@empty
+ \mult@info\tw@
+ {(Re)Init top mark:\MessageBreak
+ \meaning\kept@topmark
+ \@gobbletwo}%
+ \global\@colroom\@colht
+ \global \@mparbottom \z@
+ \global \@textfloatsheight \z@
+ \process@deferreds
+ \@whilesw\if@fcolmade\fi{\@outputpage
+ \global\@colroom\@colht
+ \process@deferreds}%
+ \mult@info\@ne
+ {Colroom:\MessageBreak
+ \the\@colht\space
+ after float space removed
+ = \the\@colroom \@gobble}%
+ \set@mult@vsize \global
+ \fi}
+\def\leave@mult@footins{%
+ \advance\dimen@-\skip\footins
+ \advance\dimen@-\ht\footins
+}
+\def\speci@ls{%
+ \ifnum\outputpenalty <-\@Mi
+ \ifnum \outputpenalty<-\@MM
+ \PackageError{multicol}{Document end
+ inside multicols environment}\@ehd
+ \@specialoutput
+ \else
+ \ifnum\outputpenalty = -\@Mv
+ \mult@info\@ne{Forced column
+ break seen}%
+ \global\advance\vsize-\pagetotal
+ \global\setbox\colbreak@box
+ \vbox{%
+ \ifvoid\colbreak@box
+ \else
+ \unvbox\colbreak@box
+ \penalty-\@Mv
+ \fi
+ \boxmaxdepth\@maxdepth
+ \setbox\@cclv\vbox{%
+ \unvbox\@cclv
+ \remove@discardable@items}%
+ \dimen@\dp\@cclv
+ \unvbox\@cclv
+ \kern-\dimen@
+ }%
+ \reinsert@footnotes
+ \else
+ \ifnum\outputpenalty = -\@Mvi
+ \mult@info\@ne{End penalty of multicols seen}%
+ \outputpenalty\@M % pretend we had a natural forced break
+ \balance@columns@out
+ \else
+ \PackageWarningNoLine{multicol}%
+ {Floats and marginpars not
+ allowed inside `multicols'
+ environment!}%
+ \unvbox\@cclv\reinsert@footnotes
+ \xdef\@freelist{\@freelist\@currlist}%
+ \gdef\@currlist{}%
+ \fi
+ \fi
+ \fi
+ \else \@doclearpage \fi
+}
+\def\process@deferreds{%
+ \@floatplacement
+ \@tryfcolumn\@deferlist
+ \if@fcolmade\else
+ \begingroup
+ \let\@tempb\@deferlist
+ \gdef\@deferlist{}%
+ \let\@elt\@scolelt
+ \@tempb \endgroup
+ \fi}
+\newif\ifshr@nking
+\def\raggedcolumns{%
+ \@bsphack\shr@nkingtrue\@esphack}
+\def\flushcolumns{%
+ \@bsphack\shr@nkingfalse\@esphack}
+\def\balance@columns@out{%
+ \setbox\mult@box\vbox{%
+ \ifvoid\colbreak@box\else
+ \unvbox\colbreak@box
+ \penalty-\@Mv
+ \mult@info\@ne{Re-adding
+ forced break(s) in balancing}%
+ \fi
+ \unvbox\@cclv
+ \remove@discardable@items
+ }%
+ \balance@columns
+ \iftoo@bad
+ \mult@info\@ne
+ {Balancing failed ...
+ cut a normal page}%
+ \setbox\@cclv\vbox
+ {\vskip\topskip
+ \vskip-\splittopskip
+ \unvbox\mult@box
+ \penalty-\@Mvi
+ }%
+ \multi@column@out
+ \else
+ \global\vsize\@colroom
+ \global\advance\vsize\ht\partial@page
+ \ifvbox\@kludgeins\insert\@kludgeins
+ {\unvbox\@kludgeins}\fi
+ \unvbox\partial@page
+ \return@nonemptymark{first}\kept@firstmark
+ \return@nonemptymark{bot}\kept@botmark
+ \page@sofar
+ \penalty\z@
+ \fi
+}
+\def\balance@columns{%
+ \get@keptmarks\mult@box
+ \setbox\mult@box\vbox{%
+ \penalty-\@M
+ \unvbox\mult@box
+ }%
+ \@tempdima\topskip
+ \splittopskip\@tempdima
+ \@plus\multicolundershoot
+ \@minus\multicolovershoot
+ \splitmaxdepth\@maxdepth
+ \boxmaxdepth\@maxdepth
+ \setbox\@tempboxa\vsplit\mult@box to\z@
+ \@tempdima\ht\mult@box
+ \advance\@tempdima\dp\mult@box
+ \divide\@tempdima\col@number
+ \count@\@tempdima
+ \divide\count@\baselineskip
+ \dimen@\count@\baselineskip
+ \advance\dimen@\topskip
+ \ifdim \dimen@ >\@tempdima
+ \advance\dimen@-\baselineskip
+ \fi
+ \@tempdima\dimexpr
+ \topskip +\c@minrows\baselineskip-\baselineskip\relax
+ \ifnum\dimen@<\@tempdima
+ \mult@info\@ne
+ {Start value
+ \the\dimen@ \space ->
+ \the\@tempdima \space (corrected for minrows)}%
+ \dimen@\@tempdima
+ \fi
+ \advance\dimen@\c@unbalance\baselineskip
+ \mult@info\@ne
+ {Balance columns\on@line:
+ \ifnum\c@unbalance=\z@\else
+ (off balance=\number\c@unbalance)\fi
+ \@gobbletwo}%
+ \ifnum\dimen@<\topskip
+ \mult@info\@ne
+ {Start value
+ \the\dimen@ \space ->
+ \the\topskip \space (corrected)}%
+ \dimen@\topskip
+ \fi
+ \vbadness\@M
+ \vfuzz \maxdimen
+ \last@try-\p@
+ \loop
+ {\process@cols\mult@grightbox
+ {\global\setbox\count@
+ \box\voidb@x}}%
+ \global\setbox\mult@grightbox
+ \copy\mult@box
+ \too@badfalse
+ \forcedbreak@leftoverfalse
+ {\process@cols\mult@firstbox{%
+ \global\setbox\count@
+ \vsplit\mult@grightbox to\dimen@
+ \global\setbox\count@
+ \vbox to\dimen@
+ {\unvbox\count@}%
+ \ifnum\c@tracingmulticols>\@ne
+ \@tempcnta\count@
+ \advance\@tempcnta-\mult@grightbox
+ \divide\@tempcnta \tw@
+ \message{^^JColumn
+ \number\@tempcnta\space
+ badness: \the\badness\space}%
+ \fi
+ \ifnum\badness>\c@columnbadness
+ \ifnum\c@tracingmulticols>\@ne
+ \message{too bad
+ (>\the\c@columnbadness)}%
+ \fi
+ \too@badtrue
+ \fi
+ }}%
+ \global\setbox\mult@grightbox
+ \vbox{\unvbox\mult@grightbox}%
+ \setbox\mult@nat@firstbox
+ \vbox{\unvcopy\mult@firstbox}%
+ \ifnum\c@tracingmulticols>\@ne
+ \message{^^JFirst column
+ = \the\dimen@\space
+ (\the\ht\mult@nat@firstbox)}\fi
+ \ifnum\c@tracingmulticols>\@ne
+ \message{<> last column =
+ \the\ht\mult@grightbox^^J}%
+ \fi
+ \ifdim\ht\mult@grightbox >\dimen@
+ \too@badtrue
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Rejected: last
+ column too large!}%
+ \fi
+ \else
+ \setbox\@tempboxa
+ \copy\mult@grightbox
+ \setbox\z@\vsplit\@tempboxa to\maxdimen
+ \ifvoid\@tempboxa
+ \global\setbox\mult@grightbox
+ \vbox to\dimen@
+ {\unvbox\mult@grightbox}%
+ \ifnum\c@tracingmulticols>\@ne
+ \message{Final badness:
+ \the\badness}%
+ \fi
+ \ifnum\badness>\c@finalcolumnbadness
+ \global\setbox\mult@grightbox
+ \vbox to\dimen@
+ {\unvbox\mult@grightbox\vfil}%
+ \ifnum\c@tracingmulticols>\@ne
+ \message{ setting natural
+ (> \the\c@finalcolumnbadness)}%
+ \fi
+ \fi
+ \else
+ \@tempdima\@colroom
+ \advance\@tempdima \maxbalancingoverflow
+ \ifdim \dimen@ < \@tempdima
+ \too@badtrue
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Rejected: unprocessed
+ forced break(s) in last column!}%
+ \fi
+ \else
+ \forcedbreak@leftovertrue
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Failed: columns too large
+ with unprocessed forced break(s)!}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \ifdim\ht\mult@nat@firstbox<\dimen@
+ \ifdim\ht\mult@nat@firstbox>\last@try
+ \too@badtrue
+ \ifnum\c@tracingmulticols>\@ne
+ \typeout{Retry: using natural
+ height of first column!}%
+ \fi
+ \dimen@\ht\mult@nat@firstbox
+ \last@try\dimen@
+ \advance\dimen@-\p@
+ \fi
+ \fi
+ \iftoo@bad
+ \advance\dimen@\p@
+ \repeat
+ \ifforcedbreak@leftover
+ \too@badtrue
+ \else
+ \if@boxedmulticols\else
+ \ifdim\dimen@>\@colroom
+ \dimen@\@colroom
+ \fi
+ \fi
+ \process@cols\mult@rightbox
+ {\@tempcnta\count@
+ \advance\@tempcnta\@ne
+ \vfuzz\z@
+ \setbox\count@\vbox to\dimen@
+ {%
+ \vskip \z@
+ \@plus-\multicolundershoot
+ \@minus-\multicolovershoot
+ \unvbox\@tempcnta
+ \ifshr@nking\vfilmaxdepth\fi
+ }%
+ \ifnum\badness>\@M
+ \vfuzz\maxdimen % no overfull warning
+ \setbox\@tempboxa \vbox to\dimen@
+ {\vskip-\maxbalancingoverflow
+ \unvcopy\count@}%
+ \ifnum\badness>\@M
+ \mult@info\@ne
+ {Balanced column more than
+ \the\maxbalancingoverflow\space
+ too large}%
+ \too@badtrue
+ \else
+ \mult@info\@ne
+ {Balanced column
+ too large, but less than
+ \the\maxbalancingoverflow}%
+ \fi
+ \fi
+ }%
+ \fi
+}
+\newdimen\maxbalancingoverflow
+\maxbalancingoverflow=12pt
+
+\ifnum\numexpr \count20-\count14-1<41 % = 2 * 20 + 1
+ \count14=\@cclv
+\fi
+\newbox\mult@rightbox
+\newbox\mult@grightbox
+\newbox\mult@gfirstbox
+\newbox\mult@firstbox
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa
+\let\@tempa\relax
+\@ifundefined{emergencystretch}
+ {\newdimen\emergencystretch}{}
+\def\setemergencystretch#1#2{%
+ \emergencystretch 4pt
+ \multiply\emergencystretch#1}
+
+\def\set@floatcmds{%
+ \let\@dblfloat\@dbflt
+ \def\end@dblfloat{\@endfloatbox
+ \@largefloatcheck
+ \outer@nobreak
+ \ifnum\@floatpenalty<\z@
+ \@cons\@deferlist\@currbox
+ \fi
+ \ifnum\@floatpenalty=-\@Mii
+ \@Esphack
+ \fi}}
+\def\kept@topmark{{}{}}
+\let\kept@firstmark\@empty
+\let\kept@botmark\@empty
+\def\return@nonemptymark#1#2{%
+ \ifx#2\@empty
+ \else
+ \mult@info\tw@
+ {Returned #1 mark:\MessageBreak
+ \meaning#2}%
+ \toks@\expandafter{#2}%
+ \mark{\the\toks@}%
+ \nobreak
+ \fi}
+\def\get@keptmarks#1{%
+ \begingroup
+ \vbadness\@M
+ \setbox#1\copy#1%
+ \setbox#1\vsplit#1to\maxdimen
+ \set@keptmarks
+ \endgroup
+}
+\def\set@keptmarks{%
+ \ifx\kept@firstmark\@empty
+ \expandafter\gdef\expandafter
+ \kept@firstmark
+ \expandafter{\splitfirstmark}%
+ \ifx\kept@firstmark\@empty\else
+ \mult@info\tw@
+ {Set kept first mark:\MessageBreak
+ \meaning\kept@firstmark%
+ \@gobbletwo}%
+ \fi
+ \fi
+ \expandafter\def\expandafter\@tempa
+ \expandafter{\splitbotmark}%
+ \ifx\@tempa\@empty\else
+ \global\let\kept@botmark\@tempa
+ \mult@info\tw@
+ {Set kept bot mark:\MessageBreak
+ \meaning\kept@botmark%
+ \@gobbletwo}%
+ \fi}%
+\def\prep@keptmarks{%
+ \if@boxedmulticols \else
+ \get@keptmarks\partial@page
+ \fi}
+\skip0=0pt
+\edef\the@zero@skip{\the\skip0}
+\def\remove@discardable@items{%
+ \unpenalty
+ \edef\@tempa{\the\lastskip}%
+ \unskip
+ \ifx\@tempa\the@zero@skip
+ \edef\@tempb{\the\lastskip}%
+ \ifx\@tempb\the@zero@skip
+ \else
+ \unskip
+ \ifnum \lastpenalty=\@M
+ \vskip\@tempb\vskip\@tempa\relax
+ \else
+ \remove@discardable@items
+ \fi
+ \fi
+ \else
+ \remove@discardable@items
+ \fi
+}
+\newif\iftoo@bad
+\def\too@badtrue{\global\let\iftoo@bad\iftrue}
+\def\too@badfalse{\global\let\iftoo@bad\iffalse}
+\newif\ifforcedbreak@leftover
+\newcount\c@minrows
+\c@minrows=1
+\newcount\c@columnbadness
+\c@columnbadness=10000
+\newcount\c@finalcolumnbadness
+\c@finalcolumnbadness=9999
+
+\newdimen\last@try
+
+\newdimen\multicolovershoot
+\newdimen\multicolundershoot
+\multicolovershoot=0pt
+\multicolundershoot=2pt
+\newbox\mult@nat@firstbox
+\def\mult@info#1#2{%
+ \ifnum\c@tracingmulticols>#1%
+ \GenericWarning
+ {(multicol)\@spaces\@spaces}%
+ {Package multicol: #2}%
+ \fi
+}
+ \@namedef{multicols*}{%
+ \ifinner
+ \PackageWarning{multicol}%
+ {multicols* inside a box does
+ not make sense.\MessageBreak
+ Going to balance anyway}%
+ \else
+ \def\balance@columns@out
+ {\multi@column@out \penalty-\@Mvi }%
+ \fi
+ \begin{multicols}
+}
+\@namedef{endmulticols*}{%
+ \par
+ \ifdim\lastskip>\z@ \vskip-\lastskip \fi
+ \ifdim \prevdepth>\z@
+ \vskip-\ifdim\prevdepth>\boxmaxdepth
+ \boxmaxdepth
+ \else \prevdepth \fi
+ \fi
+ \ifshr@nking\else
+ \vfil
+ \fi
+ \end{multicols}}
+\mathchardef\@Mv=10005
+\def\columnbreak{%
+ \ifnum\col@number<\tw@
+ \PackageError{multicol}%
+ {\noexpand\columnbreak outside multicols}%
+ {This command can only be used within
+ a multicols or multicols* environment.}%
+ \else
+ \ifvmode
+ \penalty -\@Mv\relax
+ \else
+ \@bsphack
+ \vadjust{\penalty -\@Mv\relax}%
+ \@esphack
+ \fi
+ \fi}
+\newbox\colbreak@box
+\def\LR@column@boxes{%
+ \process@cols\mult@gfirstbox{%
+ \ifdim\dp\count@>\dimen\tw@
+ \global\dimen\tw@\dp\count@ \fi
+ \mc@col@status@write
+ \box\count@
+ \hss{\columnseprulecolor\vrule
+ \@width\columnseprule}\hss}%
+ \ifdim\dp\mult@rightbox>\dimen\tw@
+ \global\dimen\tw@\dp\mult@rightbox \fi
+ \mc@lastcol@status@write
+ \box\mult@rightbox
+}
+
+\def\RL@column@boxes{%
+ \process@cols\mult@gfirstbox{%
+ \hskip\hsize
+ \hss{\columnseprulecolor\vrule
+ \@width\columnseprule}\hss
+ }%
+ \hskip\hsize
+ \process@cols\mult@gfirstbox{%
+ \ifdim\dp\count@>\dimen\tw@
+ \global\dimen\tw@\dp\count@ \fi
+ \hskip-\hsize
+ \mc@col@status@write
+ \box\count@
+ \hskip-\hsize
+ \hskip-\columnsep
+ }%
+ \ifdim\dp\mult@rightbox>\dimen\tw@
+ \global\dimen\tw@\dp\mult@rightbox \fi
+ \hskip-\hsize
+ \mc@lastcol@status@write
+ \box\mult@rightbox
+ \hskip-\hsize
+ \hskip\full@width
+ }
+\newcommand\RLmulticolcolumns
+ {\let\mc@align@columns
+ \RL@column@boxes}
+\newcommand\LRmulticolcolumns
+ {\let\mc@align@columns
+ \LR@column@boxes}
+\LRmulticolcolumns
+\newcount\mc@col@check@num
+
+\newcommand\docolaction{%
+ \ifx\mc@col@status@write\relax
+ \PackageError{multicol}%
+ {Option 'colaction' not selected}%
+ {\string\docolaction\space
+ requires the use of the 'colaction'
+ option on the package}%
+ \fi
+ \global\advance\mc@col@check@num\@ne
+ \edef\mc@col@type{\expandafter\ifx
+ \csname mc@col-\the\mc@col@check@num
+ \endcsname\relax
+ 0\else
+ \csname mc@col-\the\mc@col@check@num
+ \endcsname
+ \fi}%
+ \@ifstar
+ {\@docolactionstartrue \@docolaction}%
+ {\@docolactionstarfalse\@docolaction}%
+}
+\newcommand\@docolaction[4][1]{%
+ \edef\@docolactioncheck{\write\@auxout
+ {\string\mc@set@col@status
+ {mc@col-\the\mc@col@check@num}%
+ {\mc@col@type}}}%
+ \if@docolactionstar \@docolactioncheck \fi
+ \ifcase \mc@col@type\relax
+ \ifcase #1\or #2\or#3\or#4\fi
+ \or
+ #2% % 1 First col
+ \or
+ #3% % 2 any middle col
+ \or
+ #4% % 3 last col
+ \else
+ \ERRORwrongdefaultgiven
+ \fi
+ \if@docolactionstar \else \@docolactioncheck \fi
+}
+\newif\if@docolactionstar
+\def\mc@col@status#1{%
+ \gdef\mc@curr@col@status{#1}}
+\def\mc@set@col@status#1#2{%
+ \global\expandafter\let\csname #1\endcsname
+ \mc@curr@col@status}
+\AtEndDocument{\def\mc@set@col@status#1#2{%
+ \ifnum #2=\mc@curr@col@status\else
+ \@tempswatrue
+ \fi}%
+}
+\newif\ifmc@firstcol
+\mc@firstcoltrue
+\endinput
+%%
+%% End of file `multicol.sty'.
diff --git a/macros/latex/required/tools/multicol.dtx b/macros/latex/required/tools/multicol.dtx
index 8d868357da..aa21d75f07 100644
--- a/macros/latex/required/tools/multicol.dtx
+++ b/macros/latex/required/tools/multicol.dtx
@@ -92,17 +92,19 @@
%<package>\providecommand\DeclareCurrentRelease[2]{}
%<package>
%<package>\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
-%<package>\DeclareCurrentRelease{}{2018-04-01}
+%<package>\DeclareRelease{v1.8}{2019-10-01}{multicol-2019-10-01.sty}
+%<package>\DeclareCurrentRelease{}{2021-11-15}
%<package>
%<package>\ProvidesPackage{multicol}
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2021/10/28 v1.9b multicolumn formatting (FMi)]
+ [2021/11/30 v1.9d multicolumn formatting (FMi)]
%
%
%%
%
+% \changes{v1.9c}{2021/11/30}{Added rollback to v1.8}
% \changes{v1.5n}{1997/06/05}{Applied improvement of documentation,
% kindly done by Robin Fairbairns.}
% \changes{v1.4h}{1992/06/04}{Added mark tracing with
@@ -844,7 +846,7 @@
% \changes{v1.5l}{1996/01/13}{Try hard to explain unresolved reference
% that happens if \cs{OnlyDescription} is used}
%
-% \StopEventually{\PrintIndex \PrintChanges
+% \MaybeStop{\PrintIndex \PrintChanges
% \ifx\Finale\relax
% \typeout{**********************************}
% \typeout{* Info: Typesetting this document with
@@ -4149,7 +4151,11 @@
a multicols or multicols* environment.}%
\else
\ifvmode
- \nobreak\vfill\penalty -\@Mv\relax
+% \end{macrocode}
+% We need to guard the \cs{vfill} from disappearing.
+% \changes{v1.9d}{2021/12/05}{Guard the \cs{vfill} (sx/624940)}
+% \begin{macrocode}
+ \nobreak\vfill\kern\z@\penalty -\@Mv\relax
\else
\@bsphack
\vadjust{\nobreak\vfill\kern\z@\penalty -\@Mv\relax}%
diff --git a/macros/latex/required/tools/multicol.ins b/macros/latex/required/tools/multicol.ins
index c8838f8be2..9bbf2780ad 100644
--- a/macros/latex/required/tools/multicol.ins
+++ b/macros/latex/required/tools/multicol.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/multicol.pdf b/macros/latex/required/tools/multicol.pdf
index 28fca20e96..206491447a 100644
--- a/macros/latex/required/tools/multicol.pdf
+++ b/macros/latex/required/tools/multicol.pdf
Binary files differ
diff --git a/macros/latex/required/tools/rawfonts.dtx b/macros/latex/required/tools/rawfonts.dtx
index f54aeaf44d..cbd1ba89ea 100644
--- a/macros/latex/required/tools/rawfonts.dtx
+++ b/macros/latex/required/tools/rawfonts.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -63,7 +63,7 @@
% \end{verbatim}
% to your |latex209.cfg| \LaTeX~2.09 compatibility configuration file.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section*{Implementation}
%
diff --git a/macros/latex/required/tools/rawfonts.pdf b/macros/latex/required/tools/rawfonts.pdf
index 7f9906149f..0e773a6289 100644
--- a/macros/latex/required/tools/rawfonts.pdf
+++ b/macros/latex/required/tools/rawfonts.pdf
Binary files differ
diff --git a/macros/latex/required/tools/shellesc.dtx b/macros/latex/required/tools/shellesc.dtx
index 54027cada7..4f60ff8d03 100644
--- a/macros/latex/required/tools/shellesc.dtx
+++ b/macros/latex/required/tools/shellesc.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% Source File: shellesc.dtx
-%% Copyright (C) 2015-2021
+%% Copyright (C) 2015-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
diff --git a/macros/latex/required/tools/shellesc.pdf b/macros/latex/required/tools/shellesc.pdf
index c67ea825d4..2eca7d5446 100644
--- a/macros/latex/required/tools/shellesc.pdf
+++ b/macros/latex/required/tools/shellesc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/showkeys-2014-10-28.sty b/macros/latex/required/tools/showkeys-2014-10-28.sty
new file mode 100644
index 0000000000..b4d7b19028
--- /dev/null
+++ b/macros/latex/required/tools/showkeys-2014-10-28.sty
@@ -0,0 +1,272 @@
+%%
+%% This is file `showkeys.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% showkeys.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% File: showkeys.dtx Copyright (C) 1992-1997 David Carlisle
+%% File: showkeys.dtx Copyright (C) 2006-2019 David Carlisle, LaTeX Project
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{showkeys}
+ [2014/10/28 v3.17 Show cite and label keys (DPC, MH)]
+\DeclareOption{notref}{\let\SK@ref\@empty}
+\DeclareOption{notcite}{\let\SK@cite\@empty}
+\let\SK@refcolor\relax
+\let\SK@labelcolor\relax
+\DeclareOption{color}{\AtEndOfPackage{%
+ \RequirePackage{color}%
+ \definecolor{refkey}{gray}{.75}%
+ \definecolor{labelkey}{gray}{.75}%
+ \def\SK@refcolor{\color{refkey}}%
+ \def\SK@labelcolor{\color{labelkey}}}}
+\DeclareOption{final}{%
+ \providecommand*\showkeyslabelformat[1]{}%
+ \endinput}
+\DeclareOption{draft}{}
+\ProcessOptions
+\let\SK@label\label
+\let\SK@bibitem\@bibitem
+\let\SK@lbibitem\@lbibitem
+\def\label#1{%
+ \@bsphack
+ \SK@\SK@@label{#1}%
+ \begingroup
+ \SK@label{#1}%
+ \endgroup
+ \@esphack}
+\def\@bibitem#1{%
+ \SK@bibitem{#1}\SK@\SK@@label{#1}\ignorespaces}
+\def\@lbibitem[#1]#2{%
+ \SK@lbibitem[{#1}]{#2}\SK@\SK@@label{#2}\ignorespaces}
+\def\SK@#1#2{%
+ \protected@edef\@tempa{#2}%
+ \expandafter#1\meaning\@tempa\SK@}
+\providecommand*\showkeyslabelformat[1]{%
+ \fbox{\normalfont\small\ttfamily#1}}
+\def\SK@@label#1>#2\SK@{%
+ \gdef\SK@lab{\smash{\SK@labelcolor\showkeyslabelformat{#2}}}%
+ \ifvmode
+ \if@inlabel
+ \global\setbox\@labels\hbox{%
+ \llap{\SK@lab\SK@lab@relax
+ \kern\@totalleftmargin\kern\marginparsep}%
+ \box\@labels}%
+ \else
+ \dimen@\prevdepth
+ \nointerlineskip
+ \ifinner
+ \skip@\lastskip\unskip
+ \advance\skip@\lastskip\unskip
+ \setbox\z@\lastbox
+ \ifvoid\z@
+ \llap{\SK@lab\SK@lab@relax\kern\marginparsep}%
+ \else
+ \hbox{\box\z@\rlap{\kern\marginparsep\SK@labx}}%
+ \fi
+ \vskip\skip@
+ \else
+ \llap{\SK@lab\SK@lab@relax\kern\marginparsep}%
+ \fi
+ \prevdepth\dimen@
+ \fi
+ \else
+ \csname SK@\@currenvir\endcsname
+ \ifSK@equation\else
+ \ifmmode
+ \SK@labx
+ \else
+ \ifinner
+ \rlap\SK@lab
+ \else
+ \vadjust{\llap{\SK@lab\kern\marginparsep}}%
+ \fi
+ \SK@lab@relax
+ \fi
+ \fi
+ \fi}
+\AtBeginDocument{%
+ \let\SK@eqnnum\@eqnnum
+ \@ifpackageloaded{amsmath}{%
+ \let\SK@tagform@\tagform@
+ \let\SK@maketag@@@\maketag@@@
+ \iftagsleft@
+ \def\tagform@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \llap{\SK@lab\kern\marginparsep}%
+ \SK@lab@relax\SK@tagform@{#1}}%
+ \def\maketag@@@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \llap{\SK@lab\kern\marginparsep}\SK@lab@relax
+ \SK@maketag@@@{#1}%
+ }%
+ \def\@eqnnum{%
+ \llap{\SK@lab\kern\displaywidth\kern\marginparsep}%
+ \SK@lab@relax\SK@eqnnum}%
+ \else
+ \def\tagform@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \SK@tagform@{#1}%
+ \rlap{\kern\marginparsep\SK@lab}\SK@lab@relax}%
+ \def\maketag@@@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \SK@maketag@@@{#1}%
+ \rlap{\kern\marginparsep\SK@lab}\SK@lab@relax
+ }%
+ \def\@eqnnum{\SK@eqnnum\rlap{\kern\marginparsep\SK@lab}%
+ \SK@lab@relax}%
+ \fi
+ }%
+ {%
+ \@ifundefined{ver@leqno.clo}{%
+ \def\@eqnnum{\SK@eqnnum\rlap{\kern\marginparsep\SK@lab}%
+ \SK@lab@relax}%
+ }{%
+ \def\@eqnnum{%
+ \llap{\SK@lab\kern\displaywidth\kern\marginparsep}%
+ \SK@lab@relax\SK@eqnnum}%
+ }%
+ }%
+}
+\def\SK@labx{\rlap\SK@lab\global\let\SK@lab\relax}
+\def\SK@lab@relax{\global\let\SK@lab\relax}\SK@lab@relax
+\newif\ifSK@equation
+\let\SK@equation\SK@equationtrue
+\let\SK@eqnarray\SK@equationtrue
+\toks@\expandafter{\eqnarray}
+\edef\eqnarray{\let\noexpand\tagform@\noexpand\SK@tagform@\the\toks@}
+\let\SK@align\SK@equationtrue
+\let\SK@alignat\SK@equationtrue
+\let\SK@xalignat\SK@equationtrue
+\let\SK@xxalignat\SK@equationtrue
+\let\SK@gather\SK@equationtrue
+\let\SK@multline\SK@equationtrue
+\let\SK@flalign\SK@equationtrue
+\expandafter\let\csname SK@align*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@alignat*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@flalign*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@gather*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@multline*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@equation*\endcsname\SK@equationtrue
+\def\SK@def#1{%
+ \edef\@tempa{\expandafter\@gobble\string#1}%
+ \@ifundefined{\@tempa\space}%
+ {\expandafter\let\csname SK@\@tempa\endcsname#1}%
+ {\expandafter\let\csname SK@\@tempa\expandafter\endcsname
+ \csname\@tempa\space\endcsname}%
+ \expandafter\def\expandafter#1\expandafter{%
+ \expandafter\protect\csname\@tempa\space\endcsname}%
+ \expandafter\def\csname\@tempa\space\endcsname}
+\ifx\SK@ref\@empty
+\AtBeginDocument{%
+ \@ifpackageloaded{varioref}{%
+ \SK@def\@@vpageref#1[#2]#3{{%
+ \let\label\SK@label
+ \SK@@@vpageref{#1}[{#2}]{#3}}}%
+ \def\vr@f#1{%
+ \leavevmode\unskip\vref@space
+ \ref{#1}%
+ {\let\label\SK@label
+ \vpageref[\unskip]{#1}}}%
+ }{}}
+\else
+\AtBeginDocument{%
+ \SK@def\ref#1{\SK@\SK@@ref{#1}\SK@ref{#1}}%
+ \SK@def\pageref#1{\SK@\SK@@ref{#1}\SK@pageref{#1}}%
+ \@ifpackageloaded{varioref}{%
+ \SK@def\@@vpageref#1[#2]#3{{%
+ \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
+ \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%
+ \def\vr@f#1{%
+ \leavevmode\unskip\vref@space
+ \ref{#1}%
+ \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
+ \vpageref[\unskip]{#1}}%
+ }{}}
+\fi
+\ifx\SK@cite\@empty
+\AtBeginDocument{%
+ \ifx\HAR@checkdef\@undefined\else
+ \expandafter\let\expandafter
+ \SK@HAR@bi\csname\string\harvarditem\endcsname
+ \expandafter\def\csname\string\harvarditem\endcsname[#1]#2#3#4{%
+ \SK@HAR@bi[{#1}]{#2}{#3}{#4}\SK@\SK@@label{#4}}%
+ \fi}
+\else
+\AtBeginDocument{%
+ \ifx\HAR@checkdef\@undefined
+ \ifx\citen\@undefined
+ \SK@def\@citex[#1]#2{\SK@citex[{#1}]{#2}}%
+ \else
+ \SK@def\citen#1{\SK@\SK@@ref{#1}\SK@citen{#1}}%
+ \fi
+ \SK@def\citeauthor#1{\SK@\SK@@ref{#1}\SK@citeauthor{#1}}%
+ \SK@def\citefullauthor#1{\SK@\SK@@ref{#1}\SK@citefullauthor{#1}}%
+ \SK@def\citeyear#1{\SK@\SK@@ref{#1}\SK@citeyear{#1}}%
+ \else
+ \SK@def\HAR@checkdef#1#2{%
+ \expandafter\SK@\expandafter\SK@@ref\expandafter{#1}%
+ \SK@HAR@checkdef{#1}{#2}}%
+ \expandafter\let\expandafter
+ \SK@HAR@bi\csname\string\harvarditem\endcsname
+ \expandafter\def\csname\string\harvarditem\endcsname[#1]#2#3#4{%
+ \SK@HAR@bi[{#1}]{#2}{#3}{#4}\SK@\SK@@label{#4}}%
+ \fi}
+\def\SK@citex[#1]#2{%
+ \SK@\SK@@ref{#2}\SK@@citex[{#1}]{#2}}
+\fi
+\def\SK@@ref#1>#2\SK@{%
+ \leavevmode\vbox to\z@{{%
+ \vss
+ \SK@refcolor
+ \rlap{\vrule\raise .75em%
+ \hbox{\underbar{\normalfont\footnotesize\ttfamily#2}}}}}}
+\endinput
+%%
+%% End of file `showkeys.sty'.
diff --git a/macros/latex/required/tools/showkeys.dtx b/macros/latex/required/tools/showkeys.dtx
index 3c9236f2ef..3aed90d304 100644
--- a/macros/latex/required/tools/showkeys.dtx
+++ b/macros/latex/required/tools/showkeys.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -28,11 +28,18 @@
\ProvidesFile{showkeys.dtx}
%</dtx>
%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>
+%<package>\providecommand\DeclareRelease[3]{}
+%<package>\providecommand\DeclareCurrentRelease[2]{}
+%<package>
+%<package>\DeclareRelease{}{2014-10-28}{showkeys-2014-10-28.sty}
+%<package>\DeclareCurrentRelease{}{2022-06-01}
+%<package>
%<package>\ProvidesPackage{showkeys}
%<driver> \ProvidesFile{showkeys.drv}
% \fi
% \ProvidesFile{showkeys.dtx}
- [2014/10/28 v3.17 Show cite and label keys (DPC, MH)]
+ [2022/04/12 v3.18 Show cite and label keys (DPC, MH)]
%
% \iffalse
%<*driver>
@@ -70,7 +77,8 @@
% {Support harvard, varioref and natbib packages,}
% \changes{v3.02}{1995/03/17}
% {Support new AMS files}
-%
+% \changes{v3.18}{2022/04/12}
+% {Support starred references}
% \section{Introduction}\label{sec:intro}
%
% |showkeys.sty| modifies the |\label|, |\ref|, |\pageref|, |\cite|, and
@@ -248,7 +256,7 @@
%
% \end{thebibliography}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
@@ -749,18 +757,10 @@
% \changes{v3.13}{2006/01/09}{Updated varioref support, for latex/3373}
% \changes{v3.15}{2006/06/19}
% {Prevent loss of brackets}
+% \changes{v3.18}{2022/04/12}
+% {update varioref support: it no longer uses label, so no patch
+% needed if notref is used.}
% \begin{macrocode}
-\AtBeginDocument{%
- \@ifpackageloaded{varioref}{%
- \SK@def\@@vpageref#1[#2]#3{{%
- \let\label\SK@label
- \SK@@@vpageref{#1}[{#2}]{#3}}}%
- \def\vr@f#1{%
- \leavevmode\unskip\vref@space
- \ref{#1}%
- {\let\label\SK@label
- \vpageref[\unskip]{#1}}}%
- }{}}
\else
% \end{macrocode}
%
@@ -775,22 +775,26 @@
% {Make redefinition conditional on notref option}
% \changes{v3.15}{2006/06/19}
% {Prevent loss of brackets}
+% \changes{v3.18}{2022/04/12}
+% {support new kernel commands with starred versions}
+% \changes{v3.18}{2022/04/12}
+% {update varioref support: it no longer uses label}
% \begin{macrocode}
\AtBeginDocument{%
- \SK@def\ref#1{\SK@\SK@@ref{#1}\SK@ref{#1}}%
- \SK@def\pageref#1{\SK@\SK@@ref{#1}\SK@pageref{#1}}%
+ \let\@kernel@ref@\@kernel@ref
+ \let\@kernel@sref@\@kernel@sref
+ \SK@def\@kernel@ref#1{\SK@\SK@@ref{#1}\SK@@kernel@ref{#1}}%
+ \SK@def\@kernel@sref#1{\SK@\SK@@ref{#1}\SK@@kernel@sref{#1}}%
+ \SK@def\@kernel@pageref#1{\SK@\SK@@ref{#1}\SK@@kernel@pageref{#1}}%
+ \SK@def\@kernel@spageref#1{\SK@\SK@@ref{#1}\SK@@kernel@spageref{#1}}%
+ \SK@def\@kernel@Ref#1{{\let\@kernel@ref\@kernel@ref@\SK@\SK@@ref{#1}\SK@@kernel@Ref{#1}}}%
+ \SK@def\@kernel@sRef#1{\let\@kernel@sref\@kernel@sref@\SK@\SK@@ref{#1}\SK@@kernel@sRef{#1}}%
% \end{macrocode}
% varioref support.
% \begin{macrocode}
\@ifpackageloaded{varioref}{%
\SK@def\@@vpageref#1[#2]#3{{%
- \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
- \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%
- \def\vr@f#1{%
- \leavevmode\unskip\vref@space
- \ref{#1}%
- \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
- \vpageref[\unskip]{#1}}%
+ \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%%
}{}}
% \end{macrocode}
%
diff --git a/macros/latex/required/tools/showkeys.pdf b/macros/latex/required/tools/showkeys.pdf
index 96b4c88ab0..49429fdeb6 100644
--- a/macros/latex/required/tools/showkeys.pdf
+++ b/macros/latex/required/tools/showkeys.pdf
Binary files differ
diff --git a/macros/latex/required/tools/somedefs.dtx b/macros/latex/required/tools/somedefs.dtx
index 825a93ec66..24916b4286 100644
--- a/macros/latex/required/tools/somedefs.dtx
+++ b/macros/latex/required/tools/somedefs.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -87,7 +87,7 @@
% For a longer example of the use of the |somedefs| package, look at the
% |rawfonts| package.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section*{Implementation}
%
diff --git a/macros/latex/required/tools/somedefs.pdf b/macros/latex/required/tools/somedefs.pdf
index 7599f073cd..0a7116d3fd 100644
--- a/macros/latex/required/tools/somedefs.pdf
+++ b/macros/latex/required/tools/somedefs.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tabularx.dtx b/macros/latex/required/tools/tabularx.dtx
index a0f75fc4fa..0d1cbeac34 100644
--- a/macros/latex/required/tools/tabularx.dtx
+++ b/macros/latex/required/tools/tabularx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -261,7 +261,7 @@
% This behaviour of the package can be customised slightly
% as noted in the documentation of the code section.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/tools/tabularx.ins b/macros/latex/required/tools/tabularx.ins
index a0d39c2564..0c6d26e940 100644
--- a/macros/latex/required/tools/tabularx.ins
+++ b/macros/latex/required/tools/tabularx.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/tabularx.pdf b/macros/latex/required/tools/tabularx.pdf
index f07adf175a..84eb73e06f 100644
--- a/macros/latex/required/tools/tabularx.pdf
+++ b/macros/latex/required/tools/tabularx.pdf
Binary files differ
diff --git a/macros/latex/required/tools/theorem.dtx b/macros/latex/required/tools/theorem.dtx
index 8543ff9d7c..2dc0412efb 100644
--- a/macros/latex/required/tools/theorem.dtx
+++ b/macros/latex/required/tools/theorem.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -332,7 +332,7 @@
% (looking everything over) and many others providing useful
% suggestions.
%
-% \StopEventually{%
+% \MaybeStop{%
% \begin{thebibliography}{9}
% \bibitem{bk:GMS94} \textsc{M.~Goossens}, \textsc{F.~Mittelbach}
% and \textsc{A.~Samarin}.
diff --git a/macros/latex/required/tools/theorem.pdf b/macros/latex/required/tools/theorem.pdf
index 767812d4af..3c78214b6d 100644
--- a/macros/latex/required/tools/theorem.pdf
+++ b/macros/latex/required/tools/theorem.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.pdf b/macros/latex/required/tools/tools-overview.pdf
index b52db51d7d..a8c55fbe0a 100644
--- a/macros/latex/required/tools/tools-overview.pdf
+++ b/macros/latex/required/tools/tools-overview.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.tex b/macros/latex/required/tools/tools-overview.tex
index a2dae49e8f..882a2ae77f 100644
--- a/macros/latex/required/tools/tools-overview.tex
+++ b/macros/latex/required/tools/tools-overview.tex
@@ -1,7 +1,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{tools-overview.tex}[2015/03/31 v1.0 Tools overview]
-% Copyright (C) 2006-2021
+% Copyright (C) 2006-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/tools.ins b/macros/latex/required/tools/tools.ins
index 15c64ac80a..b93f649153 100644
--- a/macros/latex/required/tools/tools.ins
+++ b/macros/latex/required/tools/tools.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -49,7 +49,7 @@ reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/trace.dtx b/macros/latex/required/tools/trace.dtx
index d10243f690..93906eb76b 100644
--- a/macros/latex/required/tools/trace.dtx
+++ b/macros/latex/required/tools/trace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -278,7 +278,7 @@
% \small \texttt{\$} \stop
%\end{verbatim}
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
diff --git a/macros/latex/required/tools/trace.pdf b/macros/latex/required/tools/trace.pdf
index 8e407516eb..03c5e05f66 100644
--- a/macros/latex/required/tools/trace.pdf
+++ b/macros/latex/required/tools/trace.pdf
Binary files differ
diff --git a/macros/latex/required/tools/varioref.dtx b/macros/latex/required/tools/varioref.dtx
index faf8b0383c..579c411868 100644
--- a/macros/latex/required/tools/varioref.dtx
+++ b/macros/latex/required/tools/varioref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -40,7 +40,7 @@
%<package>\DeclareCurrentRelease{}{2019-10-01}
%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2021/07/07 v1.6f package for extended references (FMi)]
+%<package> [2022/01/09 v1.6f package for extended references (FMi)]
% \fi
%
%%
@@ -149,7 +149,7 @@
% |\pageref| when the difference is larger. The word `facing' is used
% when label and reference both fall onto a double spread. However,
% if a special page numbering scheme is used instead of the usual
-% arabic numbering (e.g., |\pagenumbering{roman}|) then there will be
+% Arabic numbering (e.g., |\pagenumbering{roman}|) then there will be
% no distinction between one or many pages off.
%
%\DescribeMacro\vpageref Sometimes one wants to refer only to page
@@ -172,7 +172,7 @@
% A space in front of |\vpageref| it will be ignored if
% the command doesn't produce any text at all.
%
-% But in fact |\vpageref| allows even more control. If has two
+% But in fact |\vpageref| allows even more control. It has two
% optional arguments. With the first one, one can specify the text
% that should be used if label and reference fall on the same page.
% This is very helpful if both are near to each other, so that they
@@ -293,7 +293,7 @@
% Another command for conditional processing is |\vpagerefnearby|. It
% takes three arguments: a label and a \meta{true} and \meta{false}
% argument. It compares the page reference to the label with the
-% current page number and if both are arabic number and only differ by
+% current page number and if both are Arabic number and only differ by
% $\pm1$ the \meta{true} argument is executed otherwise the
% \meta{false} argument. In other words it tells you if a |\vpageref|
% to the label would result in a textual reference to the previous,
@@ -330,19 +330,19 @@
% space in front. Of course you are then responsible to always add it
% when necessary, but that does make the source more readable so it is
% a good thing. This also has the advantage that the star forms are
-% now unnecessary again and can be used in the way implemeented by
+% now unnecessary again and can be used in the way implemented by
% \pkg{hyperref} if both packages are used together.
%
% In fact it would be much nicer to make that the
% default but the package has been used by many people for so many
-% years that changing the default would break way to many older documents.
+% years that changing the default would break way too many older documents.
%
%
% \DescribeMacro\labelformat
% A reference via |\ref| produces by default the data associated with
% the corresponding |\label| command (typically a number); any
% additional formatting has to be provided by the user. With
-% |\labelformat| it is possible to declare scuch formatting for each
+% |\labelformat| it is possible to declare such formatting for each
% ``reference'' counter, e.g.,
%\begin{verbatim}
% \labelformat{section}{section~#1}
@@ -454,7 +454,7 @@
%\DescribeMacro\reftextvario To allow a bit random variation in the
% generated strings one can use the command |\reftextvario| inside the
% string macros. It takes two arguments and selects one or the other
-% for printing depending on the number of already seens |\vref| or
+% for printing depending on the number of already seen |\vref| or
% |\vpageref| commands. As an example see the definitions of
% |\reftextbefore| etc.\ \vpageref[below]{reftextbefore}.
%
@@ -485,7 +485,7 @@
% \DescribeMacro\fullrefformat
% In some languages (currently only for Japanese) the generated text
% has to typeset in different word order to most other (Western) languages.
-% To accomodate for this \cs{vrefformat}, etc.\ has been
+% To accommodate for this \cs{vrefformat}, etc.\ has been
% added to allow to alter this on a per language basis.
% There should be normally no need to alter the setup. For details see
% the code section.
@@ -572,7 +572,7 @@
% know for sure that label and reference can't fall onto nearby pages.
%
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex\PrintChanges}
%
%
% \section{The documentation driver file}
@@ -701,7 +701,7 @@
% \label{reftextbefore} The options do set the macros that
% generate the textual strings. Note, that they do not start with a
% space, the space is already added in the main macro below.
-% \changes{v1.2a}{1998/08/22}{Added american defaults for
+% \changes{v1.2a}{1998/08/22}{Added American defaults for
% \cs{reftextpagerange} and \cs{reftextlabelrange}}
% \changes{v1.4d}{2002/11/11}{Changed default for \cs{reftextbefore}}
%
@@ -1335,7 +1335,7 @@
% \end{macrocode}
% Defaults for Japanese. It needs a special \cs{vrefformat},
% \cs{Vrefformat}, \cs{fullrefformat} and \cs{vrefrangeformat}
-% for gramatical reasons. As our standard documentation
+% for grammatical reasons. As our standard documentation
% workflow uses pdf\TeX{} the Japanese letters can't be displayed
% easily, so you will see missing glyphs below. To see the real
% letters you have to look at the source or package file.
@@ -1354,7 +1354,7 @@
\def\reftextpagerange#1#2{\pageref{#1}ã‹ã‚‰\pageref{#2}ページ}%
\def\reftextlabelrange#1#2{\ref{#1}ã‹ã‚‰\ref{#2}}%
% \end{macrocode}
-% Note that the parentheses beow are not normal ones but full width
+% Note that the parentheses below are not normal ones but full width
% ones U+FF08 and U+FF09!
% \begin{macrocode}
\def\vrefformat#1#2{\ref{#2}(\vpageref[#1]{#2})}%
@@ -1376,7 +1376,7 @@
%
% The option assumes that there is a command |\aza| defined which
% helps resolving this problem.\footnote{This information is actually quite
-% old but unfortunately never made it into varioref. In case any work
+% old but unfortunately never made it into \pkg{varioref}. In case any work
% has been undertaken to resolve this please inform the author about it.}
% \changes{v1.2a}{1998/08/22}{Added defaults for magyar}
% \changes{v1.4j}{2005/01/22}{Defined \cs{reftextfaceafter} and
@@ -1505,7 +1505,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The portuguese default text has been provided by
+% The Portuges default text has been provided by
% Jos\'e Carlos Oliveira Santos \verb=jcsantos@fc.up.pt=.
% \changes{v1.2b}{1999/11/25}{Added portuguese defaults}
% \changes{v1.2c}{1999/12/02}{Added more portuguese defaults}
@@ -1552,7 +1552,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The text for russian was taken from the book in Russian by
+% The text for Russian was taken from the book in Russian by
% I.~A.~Kotelnikov and P.~Z.~Chebotaev, and adapted
% to the encoding-independent form by Vladimir Volovich
% (\verb=vvv@vsu.ru=).
@@ -1589,7 +1589,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The text for slovak defaults was contributed by Miroslav Sedivy\\
+% The text for Slovak defaults was contributed by Miroslav Sedivy\\
% (\verb=<miro@slovensko.com>=).
% \changes{v1.4b}{2002/03/11}{Contributed defaults added}
% \begin{macrocode}
@@ -1613,7 +1613,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The text for slovene defaults was contributed by Roman Maurer\\
+% The text for Slovene defaults was contributed by Roman Maurer\\
% (\verb=<roman.maurer@amis.net>=).
% \changes{v1.4a}{2002/03/05}{Contributed defaults added}
% \begin{macrocode}
@@ -1633,7 +1633,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% Text for spanish defaults was contributed by Julio Sanchez
+% Text for Spanish defaults was contributed by Julio Sanchez
% (\verb=jsanchez@gmv.es=) and Fernando Dobladez (\verb=<ferd@fuego.com>=).
% \changes{v1.0f}{1994/03/16}{Inserted missing hash mark}
% \changes{v1.0k}{1994/06/05}{Corrected misspelled cmd `extrasspanish}
@@ -1657,7 +1657,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The text for swedish was contributed by Mats Dahlgren
+% The text for Swedish was contributed by Mats Dahlgren
% (\verb=matsd@sssk.se=).
% \changes{v1.0p}{1995/01/10}{Added swedish strings}
% \changes{v1.2a}{1998/08/22}{Added swedish defaults for
@@ -1729,7 +1729,7 @@
}}
% \end{macrocode}
% We support francais as an alternative to french since people
-% might be used to it, but we discurrage it.
+% might be used to it, but we discourage it.
% \begin{macrocode}
\DeclareOption{francais}{%
\typeout{Please use `french' instead of `francais'}%
@@ -1757,7 +1757,7 @@
%
%
% Whether or not \pkg{varioref} uses its own white space and
-% removes the one in the source document is handeled by the
+% removes the one in the source document is handled by the
% following two options. For historical reasons the default is to
% handle the space, but the recommendation these days is to use
% \texttt{nospace}.
@@ -1814,7 +1814,7 @@
% space either. Thus in this case the star form doesn't
% have any effect and below |\vp@gerefstar| is let to
% |\vp@geref|. This allows a package like \pkg{hyperef} to redefine
-% it and useit for its own tasks (like denoting that no link should
+% it and use it for its own tasks (like denoting that no link should
% be produced).
% \begin{macrocode}
\DeclareRobustCommand\vpageref{\@ifstar
@@ -1859,7 +1859,7 @@
% By default the second optional argument is empty.
% \changes{v1.0h}{1994/06/11}{Pass first argument in both cases}
% \changes{v1.0i}{1994/06/20}{Do it correctly}
-% \changes{v1.6a}{2019/08/25}{Default for optional argumet changed}
+% \changes{v1.6a}{2019/08/25}{Default for optional argument changed}
% \begin{macrocode}
{\@@vpageref{#1}}{\@@vpageref{#1}[]}}
% \end{macrocode}
@@ -2169,7 +2169,7 @@
% \pkg{varioref} by testing
%\begin{verbatim}
% \ifdefined\vp@gerefstar
-% ... code fore noew varioref
+% ... code for new varioref
% \else
% ... code for old varioref
% \fi
@@ -2638,7 +2638,7 @@
% \begin{macro}{\vpagerefcomparenearby}
% \changes{v1.6a}{2019/08/25}{Macro added}
-% True if the two pages have arabic page numbers are at most off by
+% True if the two pages have Arabic page numbers are at most off by
% one so that |\vpageref| would produce a special string.
%
% This is in some sense a general version of |\vpagerefnearby| for
diff --git a/macros/latex/required/tools/varioref.ins b/macros/latex/required/tools/varioref.ins
index 559f1f2854..cef11f9c2f 100644
--- a/macros/latex/required/tools/varioref.ins
+++ b/macros/latex/required/tools/varioref.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/varioref.pdf b/macros/latex/required/tools/varioref.pdf
index e1a3f52c5f..32259ea3a4 100644
--- a/macros/latex/required/tools/varioref.pdf
+++ b/macros/latex/required/tools/varioref.pdf
Binary files differ
diff --git a/macros/latex/required/tools/verbatim.dtx b/macros/latex/required/tools/verbatim.dtx
index fcbaf28172..c7cb2f02a9 100644
--- a/macros/latex/required/tools/verbatim.dtx
+++ b/macros/latex/required/tools/verbatim.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -242,7 +242,7 @@
% This command has also a |*|-variant that prints spaces as \verb*+ +.
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
%
% \section{Interfaces for package writers}
diff --git a/macros/latex/required/tools/verbatim.pdf b/macros/latex/required/tools/verbatim.pdf
index 6c1dd55c35..357918e255 100644
--- a/macros/latex/required/tools/verbatim.pdf
+++ b/macros/latex/required/tools/verbatim.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xr.dtx b/macros/latex/required/tools/xr.dtx
index c0d0b90c0f..33e096c6cd 100644
--- a/macros/latex/required/tools/xr.dtx
+++ b/macros/latex/required/tools/xr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -89,7 +89,7 @@
% For compatibility with |xcite|, |\externalcitedocument| is made available
% as an alias for |\externaldocument|
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The macros}
%
diff --git a/macros/latex/required/tools/xr.pdf b/macros/latex/required/tools/xr.pdf
index b48bceadb4..f918a9664d 100644
--- a/macros/latex/required/tools/xr.pdf
+++ b/macros/latex/required/tools/xr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xspace.dtx b/macros/latex/required/tools/xspace.dtx
index adcfe154da..7b29b7b0be 100644
--- a/macros/latex/required/tools/xspace.dtx
+++ b/macros/latex/required/tools/xspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -199,7 +199,7 @@
% \end{verbatim}
%
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{The Macros}
%
diff --git a/macros/latex/required/tools/xspace.pdf b/macros/latex/required/tools/xspace.pdf
index e562c76f96..acf4f25ef1 100644
--- a/macros/latex/required/tools/xspace.pdf
+++ b/macros/latex/required/tools/xspace.pdf
Binary files differ
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index b104481a42..da37383239 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,11 @@
+2022-06-08 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (ifthen.4ht): restore \ifthen from
+ \NROrg@ifthenelse only when it is defined.
+
+ * tex4ht-4ht.tex (minted-sty-hooks.4ht): fixed deprecated way of
+ calling to package hooks.
+
2022-06-01 Michal Hoftich <michal.h21@gmail.com>
* tex4ht-fonts-modern.tex (
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index c516dffdb4..5830229c20 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1138 2022-05-23 12:21:20Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1144 2022-06-08 22:03:06Z karl $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2022 TeX Users Group
@@ -13591,10 +13591,14 @@ The need to initialize \''\@svsechd' arises in
Nameref redefines ifthenelse command, but it clashes with BibLaTeX,
so we revert back to the original version.
+The 2022 version of Nameref doesn't redefine it anymore, so we will
+restore the original ifthen only if we are on a system with not updated
+Nameref.
+
\<fix nameref ifthen\><<<
-\@ifpackageloaded{nameref}{%
+\ifdefined\NROrg@ifthenelse%
\let\ifthenelse\NROrg@ifthenelse%
-}{}
+\fi
>>>
\<fix ifthen\><<<
@@ -25008,10 +25012,10 @@ As it can be declared in the preamble, we must patch the usepackage code.
>>>
\<minted-sty-hooks.4ht\><<<
-% minted-sty-hook.4ht, generated from |jobname.tex
-% Copyright 2020 TeX Users Group
+% minted-sty-hooks.4ht, generated from |jobname.tex
+% Copyright 2022 TeX Users Group
|<TeX4ht license text|>
-\AddToHook{package/after/minted}{%
+\AddToHook{package/minted/after}{%
\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}
|<minted breaklines|>
}
diff --git a/systems/doc/pdftex/samplepdftex/README b/systems/doc/pdftex/samplepdftex/README
new file mode 100644
index 0000000000..188e5c98c1
--- /dev/null
+++ b/systems/doc/pdftex/samplepdftex/README
@@ -0,0 +1,24 @@
+$Id: README 883 2022-06-08 17:30:43Z karl $
+This samplepdf directory contains a few plain TeX example files. They
+are not meant to be used as-is, and may interfere with any real document.
+Please take them and adapt them as you see fit.
+
+The pdftex manual (texdoc pdftex ==
+http://mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf)
+is the reference documentation for pdfTeX.
+
+samplepdf.tex - document exhibiting many pdfTeX features.
+Please peruse both the output and the source.
+
+pdfcolor.tex - defining and using colors. (Used in samplepdf.tex)
+
+efcode.tex - sample \efcode settings and macros for font expansion.
+protcode.tex - sample \efcode settings and macros for character protrusion.
+(These two not used by samplepdf.tex. See the LaTeX package microtype
+for much more sophisticated support -- https://ctan.org/pkg/microtype.)
+
+Additionally, the standalone macro file supp-pdf.tex (-> supp-pdf.mkii)
+can read MetaPost output directly in pdftex while generating PDF. No
+need for eps-to-pdf conversion. It comes from ConTeXt and is included in
+the TeX distributions.
+
diff --git a/systems/doc/pdftex/samplepdftex/efcode.tex b/systems/doc/pdftex/samplepdftex/efcode.tex
new file mode 100644
index 0000000000..2a8f1320b1
--- /dev/null
+++ b/systems/doc/pdftex/samplepdftex/efcode.tex
@@ -0,0 +1,89 @@
+% $Id: efcode.tex 883 2022-06-08 17:30:43Z karl $
+% Public domain. Originally written by Han The THanh.
+% Example \efcode ("expansion factor code") settings
+% for per-glyph tuning of font expansions.
+%
+% Also includes a basic macro to enable font expansion, adjusting for
+% LuaTeX and pdfTeX.
+%
+% As written, this file does nothing but make definitions.
+% Adapt and adjust for your needs.
+%
+% Much more in the LaTeX microtype package (https://ctan.org/pkg/microtype).
+
+\newcount\temploopefcode
+\def\resetefcode#1{% reset all to 1000
+ \temploopefcode=0
+ \loop
+ \efcode#1\temploopefcode=1000
+ \advance\temploopefcode 1
+ \ifnum\temploopefcode < 256 \repeat
+}
+
+\def\setefcode#1{%
+ \efcode#1`\2=700
+ \efcode#1`\3=700
+ \efcode#1`\6=700
+ \efcode#1`\8=700
+ \efcode#1`\9=700
+ \efcode#1`\A=500
+ \efcode#1`\B=700
+ \efcode#1`\C=700
+ \efcode#1`\D=500
+ \efcode#1`\E=700
+ \efcode#1`\F=700
+ \efcode#1`\G=500
+ \efcode#1`\H=700
+ \efcode#1`\K=700
+ \efcode#1`\M=700
+ \efcode#1`\N=700
+ \efcode#1`\O=500
+ \efcode#1`\P=700
+ \efcode#1`\Q=500
+ \efcode#1`\R=700
+ \efcode#1`\S=700
+ \efcode#1`\U=700
+ \efcode#1`\W=700
+ \efcode#1`\Z=700
+ \efcode#1`\a=700
+ \efcode#1`\b=700
+ \efcode#1`\c=700
+ \efcode#1`\d=700
+ \efcode#1`\e=700
+ \efcode#1`\g=700
+ \efcode#1`\h=700
+ \efcode#1`\k=700
+ \efcode#1`\m=700
+ \efcode#1`\n=700
+ \efcode#1`\o=700
+ \efcode#1`\p=700
+ \efcode#1`\q=700
+ \efcode#1`\s=700
+ \efcode#1`\u=700
+ \efcode#1`\w=700
+ \efcode#1`\z=700
+}
+
+% emacs-page
+% Different primitives for LuaTeX and pdfTeX.
+% This fragment courtesy of Robert Schlicht,
+% https://tex.stackexchange.com/questions/646769. Public domain.
+%
+\input iftex.sty
+\ifluatex
+ \adjustspacing=2
+ \def\mtplnfontexpand#1{%
+ \expandglyphsinfont #1 20 20 1\relax}
+\else
+ \pdfadjustspacing=2
+ \def\mtplnfontexpand#1{%
+ \pdffontexpand #1 20 20 1 autoexpand\relax}
+\fi
+% enable for these fonts.
+%\mtplnfontexpand\tenrm
+%\mtplnfontexpand\tensl
+%\mtplnfontexpand\tenbf
+
+%\hsize=2.2in
+%\input story
+%\bye
diff --git a/systems/doc/pdftex/samplepdftex/pdfcolor.tex b/systems/doc/pdftex/samplepdftex/pdfcolor.tex
index f09ecbcb75..1e172db5a4 100644
--- a/systems/doc/pdftex/samplepdftex/pdfcolor.tex
+++ b/systems/doc/pdftex/samplepdftex/pdfcolor.tex
@@ -1,4 +1,6 @@
+% $Id: pdfcolor.tex 883 2022-06-08 17:30:43Z karl $
% Very simple macros to show how to use colors with pdftex
+% Public domain. Originally written by Han The Thanh.
\def\cmykGreenYellow{0.15 0 0.69 0}
\def\cmykYellow{0 0 1 0}
diff --git a/systems/doc/pdftex/samplepdftex/protcode.tex b/systems/doc/pdftex/samplepdftex/protcode.tex
new file mode 100644
index 0000000000..ab24297645
--- /dev/null
+++ b/systems/doc/pdftex/samplepdftex/protcode.tex
@@ -0,0 +1,93 @@
+% $Id: protcode.tex 883 2022-06-08 17:30:43Z karl $
+% Public domain. Originally written by Han The THanh.
+% Example \lpcode and \rpcode ("left/right protrusion code") settings
+% for per-glyph tuning of protrusion, and a macro to execute them
+%
+% As written, this file does nothing but make definitions.
+% Adapt and adjust for your needs.
+%
+% Much more in the LaTeX microtype package (https://ctan.org/pkg/microtype).
+
+\def\setprotcode#1{%
+ % this macro works with OT1 encoding only -- mostly ASCII,
+ % but assumes OT1 for quotes and dashes.
+ \rpcode#1`\!=200
+ \rpcode#1`\,=700
+ \rpcode#1`\-=700
+ \rpcode#1`\.=700
+ \rpcode#1`\;=500
+ \rpcode#1`\:=500
+ \rpcode#1`\?=200
+ \lpcode#1`\`=700
+ \rpcode#1`\'=700
+ \lpcode#1 92=500 % ``
+ \rpcode#1 34=500 % ''
+ \rpcode#1 123=300 % --
+ \rpcode#1 124=200 % ---
+ \rpcode#1`\)=50
+ \rpcode#1`\A=50
+ \rpcode#1`\F=50
+ \rpcode#1`\K=50
+ \rpcode#1`\L=50
+ \rpcode#1`\T=50
+ \rpcode#1`\V=50
+ \rpcode#1`\W=50
+ \rpcode#1`\X=50
+ \rpcode#1`\Y=50
+ \rpcode#1`\k=50
+ \rpcode#1`\r=50
+ \rpcode#1`\t=50
+ \rpcode#1`\v=50
+ \rpcode#1`\w=50
+ \rpcode#1`\x=50
+ \rpcode#1`\y=50
+ \lpcode#1`\(=50
+ \lpcode#1`\A=50
+ \lpcode#1`\J=50
+ \lpcode#1`\T=50
+ \lpcode#1`\V=50
+ \lpcode#1`\W=50
+ \lpcode#1`\X=50
+ \lpcode#1`\Y=50
+ \lpcode#1`\v=50
+ \lpcode#1`\w=50
+ \lpcode#1`\x=50
+ \lpcode#1`\y=0
+ \adjustprotcode#1\relax
+}
+
+\newif\ifneedadjustprotcode
+\newbox\boxA
+\newcount\countA
+\newcount\countB
+\def\adjustprotcode#1{%
+ \needadjustprotcodefalse
+ \ifnum\pdftexversion = 14
+ \ifnum \expandafter`\pdftexrevision > `g
+ \needadjustprotcodetrue
+ \fi
+ \else\ifnum\pdftexversion > 14
+ \needadjustprotcodetrue
+ \fi \fi
+ \ifneedadjustprotcode
+ \countA=0
+ \loop
+ \ifcase\lpcode#1\countA\else
+ \adjustcp\lpcode#1\countA
+ \fi
+ \ifcase\rpcode#1\countA\else
+ \adjustcp\rpcode#1\countA
+ \fi
+ \advance\countA 1
+ \ifnum\countA < 256 \repeat
+ \fi
+}
+\def\adjustcp#1#2#3{%
+ \setbox\boxA=\hbox{%
+ \ifx#2\font\else#2\fi
+ \char#3}%
+ \countB=\wd\boxA
+ \multiply\countB #1#2#3\relax
+ \divide\countB \fontdimen6 #2\relax
+ #1#2#3=\countB\relax
+}
diff --git a/systems/doc/pdftex/samplepdftex/samplepdf.mp b/systems/doc/pdftex/samplepdftex/samplepdf.mp
new file mode 100644
index 0000000000..bb5788f37a
--- /dev/null
+++ b/systems/doc/pdftex/samplepdftex/samplepdf.mp
@@ -0,0 +1 @@
+prologues := 1; def drawleaf(expr A, B, C) = pickup pencircle scaled 4bp; draw (0, 0) {dir 60} .. A .. {dir 60} B withcolor C; pickup pencircle scaled 2bp; draw A {dir 75} .. {dir 45} B withcolor C; draw A {right} .. {dir 75} B withcolor C; enddef; beginfig(0); drawleaf((50, 50), (400, 250), .6green); d := .5 xpart (400, 250); currentpicture := currentpicture reflectedabout ((d, 0), (d, 1)); endfig; beginfig(1); drawleaf((50, 50), (400, 250), .6blue); currentpicture := currentpicture reflectedabout ((50, 50), (400, 250)); endfig; end;
diff --git a/systems/doc/pdftex/samplepdftex/samplepdf.pdf b/systems/doc/pdftex/samplepdftex/samplepdf.pdf
new file mode 100644
index 0000000000..c7909e49b2
--- /dev/null
+++ b/systems/doc/pdftex/samplepdftex/samplepdf.pdf
@@ -0,0 +1,8632 @@
+%PDF-1.5
+%ÐÔÅØ
+4 0 obj
+<<
+/Length 1573
+>>
+stream
+0 g
+1 0 0 1 72 720 cm
+0 0 0 1 k
+1 0 0 1 -72 -720 cm
+BT
+/F1 9.9626 Tf 72 710.037 Td [(This)-333(is)-334(v)28(ersion)-333(140)-334(\050revision)-333(21\051)-333(of)-334(p)-27(dfT)]TJ 174.069 -2.144 Td [(E)]TJ 5.535 2.144 Td [(X.)]TJ -179.604 -11.955 Td [(This)-333(\014le)-334(is)-333(PDF)-333(v)28(e)-1(rsion)-333(1.5.)]TJ 0 -23.91 Td [(F)83(on)28(t)-333(cmr10)-334(has)-333(resource)-333(name)-334(tag)-333(1)-333(and)-334(ob)-55(ject)-334(n)28(um)28(b)-28(er)-333(1)-333(in)-334(the)-333(PDF)-333(output.)-445(F)84(on)28(t)-334(size)-333(is)-333(10.0pt.)]TJ 0 -11.955 Td [(Ligatures:)-444(\013on)27(t,)-333(\014n)28(t,)-333(\015in)27(t)]TJ 0 -11.956 Td [(No)-333(ligatures:)-445(ffont,)-333(fint,)-333(flint)]TJ 0 -23.91 Td [(Changing)-333(color)-334(can)-333(be)-333(done)-334(by)-333(inserting)-333(`raw')-333(PDF)-334(code,)-333(like)]TJ
+0 1 1 0 k
+ [-667(this.)]TJ
+ET
+1 0 0 1 72 624.414 cm
+0 g
+1 0 0 1 -72 -624.414 cm
+BT
+/F1 9.9626 Tf 72 614.396 Td [(A)-333(simple)-334(picture:)]TJ
+ET
+1 0 0 1 151.508 614.396 cm
+q 1 j 0 1 0 rg 0 0 1 RG 0 0 10 10 re B Q
+1 0 0 1 -151.508 -614.396 cm
+BT
+/F1 9.9626 Tf 72 602.441 Td [(...and)-333(now)-334(l)1(o)-1(ok)-333(at)-333(the)-333(lowe)-1(r-left)-333(corner)-333(of)-333(the)-334(page.)]TJ
+ET
+q 1 j 0 1 0 rg 0 0 1 RG 0 0 10 10 re B Q
+q -1 0 0 1 612 0 cm .5 g
+BT
+/F1 9.9626 Tf 463.481 590.486 Td [(Do)-333(you)-334(like)-333(that?)]TJ
+ET
+Q
+BT
+/F1 9.9626 Tf 72 578.531 Td [(default)-333(color,)]TJ
+1 1 0 0 k
+ [-667(some)-333(new)-334(default)]TJ
+0 1 1 0 k
+ [-666(red,)]TJ
+1 0 1 0 k
+ [-667(green,)]TJ 231.509 -523.241 Td [(1)]TJ
+ET
+
+endstream
+endobj
+3 0 obj
+<<
+/Type /Page
+/Contents 4 0 R
+/Resources 2 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+2 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+7 0 obj
+<<
+/Length 5
+>>
+stream
+Hello
+endstream
+endobj
+16 0 obj
+<<
+/Length 4219
+>>
+stream
+1 0 1 0 k
+BT
+/F1 9.9626 Tf 72 710.037 Td [(still)-333(green,)]TJ
+0 1 1 0 k
+ [-667(red)-333(again,)]TJ
+1 1 0 0 k
+ [-667(default)-333(again,)]TJ
+0 g
+ [-667(back)-333(to)-333(black.)]TJ 0 -23.91 Td [(We)-333(have)-334(an)-333(access)-334(to)-333(PDF)-333(object)-333(numbers,)-334(even)-333(before)-333(defining)-334(those)-333(objects.)]TJ
+ET
+q
+1 0 0 1 72 672.235 cm
+/Fm1 Do
+Q
+BT
+/F1 9.9626 Tf 72 662.217 Td [(XObject)-333(above)-334(has)-333(been)-333(written)-334(as)-333(object)-333(13.)]TJ 0 -11.955 Td [(Its)-333(resource)-334(name)-333(tag)-334(i)1(s)-334(1)-333(\050)]TJ/F30 9.9626 Tf 119.496 0 Td [(/Fm1)-525(13)-525(0)-525(R)]TJ/F1 9.9626 Tf 60.855 0 Td [(entry)-333(in)-334(page)-333(resources)-333(dictionary\051.)]TJ -180.351 -23.911 Td [(It)-314(took)-314(0.12779)-314(seconds)-315(to)-314(typeset)-314(the)-314(whole)-314(stuff)-314(above.)-438(To)-314(typeset)-314(the)-315(last)-314(two)-314(sentences)-314(it)-314(took)-314(0)-314(`scaled)]TJ 0 -11.955 Td [(seconds')-333(\0501s/65536\051.)]TJ 0 -23.91 Td [(Random)-333(seed)-334(initialized)-333(to)-333(382715649.)-445(We)-333(may)-333(c)-1(h)1(ange)-334(it,)-333(lets)-334(say)-333(to)-333(8375.)]TJ 0 -11.956 Td [(10)-333(uniformly)-334(d)1(istributed)-334(random)-333(numbers)-333([0..100]:)-445(4,)-333(80,)-333(23,)-334(54,)-333(87,)-333(23,)-334(50,)-333(96,)-333(26,)-333(7)-1(3.)]TJ 0 -11.955 Td [(10)-333(normally)-334(distrib)1(uted)-334(random)-333(numbers:)]TJ/F13 9.9626 Tf 0 -11.955 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.767 0 Td [(3973,)]TJ/F13 9.9626 Tf 26.014 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.768 0 Td [(15367,)-333(0)]TJ/F7 9.9626 Tf 35.976 0 Td [(:)]TJ/F1 9.9626 Tf 2.767 0 Td [(86794,)]TJ/F13 9.9626 Tf 30.995 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.768 0 Td [(11275,)-333(0)]TJ/F7 9.9626 Tf 35.976 0 Td [(:)]TJ/F1 9.9626 Tf 2.767 0 Td [(28667,)]TJ/F13 9.9626 Tf 30.995 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.768 0 Td [(77115,)]TJ/F13 9.9626 Tf 30.995 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.767 0 Td [(00499,)]TJ/F13 9.9626 Tf 30.995 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(0)]TJ/F7 9.9626 Tf 4.981 0 Td [(:)]TJ/F1 9.9626 Tf 2.768 0 Td [(11049,)-333(2)]TJ/F7 9.9626 Tf 35.976 0 Td [(:)]TJ/F1 9.9626 Tf 2.768 0 Td [(44452,)]TJ/F13 9.9626 Tf 30.994 0 Td [(\000)]TJ/F1 9.9626 Tf 7.749 0 Td [(2)]TJ/F7 9.9626 Tf 4.982 0 Td [(:)]TJ/F1 9.9626 Tf 2.767 0 Td [(01015.)]TJ -405.702 -23.91 Td [(If)-333(there)-334(is)-333(a)-333(text)-334(`)]TJ/F30 9.9626 Tf 77.294 0 Td [(Some)-525(text/\0501\051)]TJ/F1 9.9626 Tf 67.994 0 Td [(',)]TJ -145.288 -11.955 Td [(in)-333(PDF)-334(strin)1(g)-334(one)-333(should)-333(use)]TJ/F30 9.9626 Tf 131.23 0 Td [(\050Some\134040text/\134\0501\134\051)]TJ/F1 9.9626 Tf 99.377 0 Td [(,)]TJ -230.607 -11.956 Td [(and)-333(in)-334(P)1(DF)-334(name)-333(it)-333(w)-1(ou)1(ld)-334(be)]TJ/F30 9.9626 Tf 134.358 0 Td [(/Some#20text#2F#281#29)]TJ/F1 9.9626 Tf 115.067 0 Td [(.)]TJ -249.425 -11.955 Td [(In)-333(hex)-334(form)-333(it)-333(looks)-334(like)]TJ/F30 9.9626 Tf 108.289 0 Td [(<536F6D6520746578742F283129>)]TJ/F1 9.9626 Tf 146.449 0 Td [(,)]TJ -254.738 -11.955 Td [(but)-333(you)-334(can)-333(always)-333(reverse)-334(it)-333(to)-333(get)]TJ/F30 9.9626 Tf 160.399 0 Td [(Some)-525(text/\0501\051)]TJ/F1 9.9626 Tf 67.994 0 Td [(.)]TJ -228.393 -23.91 Td [(The)-274(source)-275(of)-274(this)-275(document)-274(is)]TJ/F30 9.9626 Tf 134.21 0 Td [(53135)]TJ/F1 9.9626 Tf 28.885 0 Td [(bytes)-274(long.)-425(Last)-275(modification)-274(date)-274(is)]TJ/F30 9.9626 Tf 160.45 0 Td [(D:20160504155738-07'00')]TJ/F1 9.9626 Tf 120.298 0 Td [(.)-425(The)]TJ -443.843 -11.955 Td [(md5)-408(sum)-408(is)]TJ/F30 9.9626 Tf 55.471 0 Td [(32E238AEC231B7F7B742322DB7E42749)]TJ/F1 9.9626 Tf 167.371 0 Td [(.)-668(Bytes)-408(7)-408(to)-407(13)-408(of)-408(the)-408(source)-408(are)-408(hex)]TJ/F30 9.9626 Tf 171.933 0 Td [(73616D706C6570)]TJ/F1 9.9626 Tf -394.775 -11.956 Td [(\050string)-333(`samplep'\051.)]TJ 231.509 -379.778 Td [(2)]TJ
+ET
+
+endstream
+endobj
+15 0 obj
+<<
+/Type /Page
+/Contents 16 0 R
+/Resources 14 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+6 0 obj
+(Hello)
+endobj
+8 0 obj
+<<
+/MyStreamAttribute /MyValue
+/Length 5
+>>
+stream
+Hello
+endstream
+endobj
+9 0 obj
+<<
+/Type /File
+/Name (obj.dat)
+>>
+endobj
+10 0 obj
+<<
+/Length 34
+>>
+stream
+<<
+/Type /File
+/Name (obj.dat)
+>>
+
+endstream
+endobj
+11 0 obj
+<<
+/MyStreamAttribute /MyValue
+/Length 34
+>>
+stream
+<<
+/Type /File
+/Name (obj.dat)
+>>
+
+endstream
+endobj
+12 0 obj
+(This is object number 12)
+endobj
+13 0 obj
+<<
+/Type /XObject
+/Subtype /Form
+/MyXObjectFormAttribute /MyValue
+/BBox [0 0 168.231 8.856]
+/FormType 1
+/Matrix [1 0 0 1 0 0]
+/Resources 20 0 R
+/Length 139
+>>
+stream
+1 0 0 1 0 -783.144 cm
+BT
+/F1 9.9626 Tf 0 785.081 Td [(This)-333(is)-334(a)-333(box)-333(saved)-334(as)-333(a)-333(XObject)-334(form)]TJ
+ET
+
+endstream
+endobj
+20 0 obj
+<<
+/MyXObjectFormResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+14 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R /F30 17 0 R /F13 18 0 R /F7 19 0 R >>
+/XObject << /Fm1 13 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+29 0 obj
+<<
+/Length 543
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 710.037 Td [(The)-333(previous)-334(page)-333(has)-333(been)-334(written)-333(as)-333(object)-334(3.)]TJ
+ET
+q
+1 0 0 1 72 396.104 cm
+/Im1 Do
+Q
+BT
+/F1 9.9626 Tf 72 387.336 Td [(The)-333(last)-334(image)-333(has)-333(1)-334(page\050s\051.)]TJ
+ET
+q
+0.386543 0 0 0.386543 72 264.631 cm
+/Im2 Do
+Q
+q
+161.9797 0 0 113.3858 72 152.477 cm
+/Im3 Do
+Q
+q
+0.059998 0 0 0.059998 72 133.817 cm
+/Im6 Do
+Q
+BT
+/F1 9.9626 Tf 72 124.544 Td [(640)-333(pixels)-334(in)-333(1200dpi)-333(makes)-334(38.53516pt.)]TJ 231.509 -69.254 Td [(3)]TJ
+ET
+
+endstream
+endobj
+28 0 obj
+<<
+/Type /Page
+/Contents 29 0 R
+/Resources 27 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+21 0 obj
+<<
+/Type /XObject
+/Subtype /Form
+/FormType 1
+/PTEX.FileName (./pic.pdf)
+/PTEX.PageNumber 1
+/PTEX.InfoDict 30 0 R
+/BBox [0 3.18719 440 311]
+/Resources <<
+/ProcSet [ /PDF /ImageC ]
+/XObject <<
+/Im1 31 0 R
+>>/ExtGState <<
+/GS1 32 0 R
+>>>>
+/Length 61
+/Filter /FlateDecode
+>>
+stream
+H‰Òw6TH/æ*ä21¶Ô³´4R0
+
+endstream
+endobj
+30 0 obj
+<<
+/CreationDate (D:20000117151933Z)
+/Producer (Acrobat Distiller Command 3.0 for Solaris 2.3 and later \(SPARC\) Wed Sep 4 14:35:50 PDT 1996)
+/ModDate (D:20050716192505+02'00')
+>>
+endobj
+31 0 obj
+<<
+/Type /XObject
+/Subtype /Image
+/Name /Im1
+/Width 440
+/Height 311
+/BitsPerComponent 8
+/ColorSpace /DeviceRGB
+/Length 31464
+/Filter /DCTDecode
+>>
+stream
+ÿØÿî
+
+     #"""#'''''''''' 
+    !! !!''''''''''ÿÀ
+ 
+ 
+„”EF¤´VÓU(òãóÄÔäôeu…•¥µÅÕåõfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø)9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêú
+&6E'dtU7ò£³Ã()Óã󄔤´ÄÔäôeu…•¥µÅÕåõFVfv†–¦¶ÆÖæöGWgw‡—§·Ç×ç÷8HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÝ
+ίá훉 ãøŽ”ËëÛ助Óß,.Ƙ¥;Œ¿L7í mTÀñË¥1C~ù¸m‚ÓJt©é—Nøþ‘—Ǧ–íš”ëŠqËâ)Z`¶@(Ó*”öÅøo¶4¦6ŠQã¹íšk‹p¡Íéû~miDŽ¹©S×ý\W‡¶n=©¢”€ëqn=}¼3pÛZQ¦:˜§Û/ˆë¾6´¥Ç¶n>4Åx ®ÚÒŸf¦,½:eˆÁû±´Ò…<røí‚Väÿ
+ü/‹—Øÿ
+Ò‚‡#ÚŠ·ï§Y.()Áqþ^)þ¶ÜÈÑÆ}29Ÿ²¾F[Z¹2ºÍˆˆˆ=[áâ¿­± ƒ&íõ+!}-»¨Wœ€†¨uû,Ëÿ
+$Xo¥k›[rlaG~2_â_ïö¸·Ë¦,šíĪ4›ù_Òª0¨o…¸²ÿ
+¥¢´Œÿ
+ü<U° v—÷-µö·,Q\‰’ä3P"|<cÿ
+ëPYÆß¼ŽHÜ yrãþW*.M5K=*A7ÕBú©0
+‘½9r_†OµðñoåÈ,ñÞZÝ´sVæÚ[pî¿i›âÿ
+Æضƒ¯I§ÜÁ3Fb„Å鸕w^)ÇüŸøËûÊ-g½mA Ô÷Ë>ø…”æâÖ)›ˆ2-hØ«J±
+°#µ)_ø†d3]ǵ1 ™Í¿ì$VŠ*OÙÄåÔ=i›‰@@ ?³Ë,Búá®­Ù­Ã
+9ñé‚×dåüðJž« RÂœÊü,ëña6§&¢µ¨SÕ1ŠžIË—?êá­ÍŒ±[†–Eœ’d—“oÅ“ì¯üE|ëG'î,žE•Ø<RcTUø—üœ†BxdÁšUÀ`nÐPn¥_§ó+|?/µƒ,.à‚ç—6i‚ÕªÛ/ÃðÇñþ×ùXg¡Ü‹69¸
+ÈæÁIvû\¸§ìü'‡MÓõ K›dî0ý—ÂßäýØ#óbº¥÷Biîd ?$.Ç›Éû\Éû?Žl(Õ.e3Ö[o^ƒñøwgnKñsþ]—ý¼ÙÅ?âËgÿÓêÊ |Ï\°-éO–øà6ü1Ào—4RÐ>CluËMÎÝó6ÊH´ñ¥pZ¬äøûXà7é_ã„V7ñÏ«ÎLf*ˆy–û_Ù_³û?kXÑ‚ö¯\mFí°
+ž6›c»uö 8É‹¬LÑ
+òO8PÝÒ64~<—öŸöz~Öb‰ƒ“f²6{vƒY-þ·q?¯s(ÐQ#_Ù•qIÌ‘?13ð¥>ÿ
+<Ã}sa`g¶C SûÀ:…þl7êHȯ›&–;uÔ¬fÞ5tgCû?%oÙeÈHдË`Àô¯3O³=Öâ"Ïé@§pß³ðÿ
+ÿ
+™¸ö=2À Ü¿¾v‚/Q{ŠJà%4ÇõËRž%+Aßù¹7û,‹‰™Û«2·©D»•’‰5)nÙ•E&Aû E_´¸K+y%Ž'‹Ñ£zœËV¿Ì¿íroÃ1rDHØP
+JÑ`X'r&‘ùó<¶*ßóN ´m™`z•­øtåËŠÿ
+°•^
+Ú^Gq ”U5P¦€ž?kàø~,k
+Ý^„>±¨ ˇò—ùzü_,^k{–¹Š(H ž Éy~ÓþËo—áÂPAgòË
+­þO,<·Ñ£VÐÜ$MëHæ :qTgUøÿ
+Š+ü¼™¾Ïíey4â‡Ä݆í^Ⱦ²xµiñ©]ד,‹Éÿ
+¯Úø›ç‚fÖDð¹EµXO§é–á!fý®8XX´½R¤0AO‡ùp°†{îkÍå˜æÛ/ò«ÍÙfòH1d£PÓ­¢žr[÷ið° ¯._䳕óÂÝ8ÎÚ„P‘•rcŽ6^`/Úýž9µ'wˆ\D
+Ë
+À«V^eÙÔÑ¿ioáÄ¢s ¡½hùr‰7'Ùø¿gÁ=‘–CëÈ•`éד27,Qîâµ
+,u9溑®”‡WGW+·_ü+dƒ_Xm­ZP8špÛoµÇ“­Ínf„–€þè‘Ïìó嘹n;©4Ön+U«A
+ƒÿ
+†FoÙ^_qP¼¾œeñÔ¯¥K{ßz¼›¿æ®ßvY¦â½L†û–Mf÷ú´+¨<)l‘”*iñò—Ÿ< }ªKqyÇÖ!"äºïûçû8o¦yB_G×Öï^~
+u kTúäWº%Ì,
+áÙ[ào‡ìü-ð䦻ŽH
+õ9Xm3ñ_‡ì/Õ‘x´ûˆîdki“2á[o‹ŸóðÊNxÇx1‘Ù™<ÓªÛ5­Ì°ºFÎL…>2Üâ9v6jÒ-䡤X…hň-û?óbßR€¯@­¹b‚ŸórÁVK¥³¤;Õ‡0w'ù¿Ùf&MAÈm®­-åÂ+_c‘¥  ±ðÿ
+¼¿güŸ‹áùd¶@+¤¼¹¢~ã©5&û+Ãüœ¸ZÙ¢/ï$ŽA ,ƒýí`ý9!1ÜÓÒ`yüT'Ùeû|³Š9X<bvzE-ð¯ì¯Úþ\@Ê62ØÜ]Hnƒª8ý…íÅ~‹“ûfÄäiàyäŽ7^´çÕ[âø[ý–l6œÎßÿÖ(¹·ÖÙP9æŸg—ó2/Ï ê+væ×-3EéRƒ—‡
+@ê9åö—ùY>ÏùŒçwÜFÕaX˜!I jWü®Nê È‰õwô”GÐþÀ$["¬íö¹‚§e^\••¿—1§—Ä<E<ÊÞÁn¦K‰Meþë­íÿ
+ïdiY,‘iÔôâßÃÿ
+Üþ/‡ í5Id¼’ ˆ&7“à¥~Ëpÿ
+cIf›§_Ç!yä*¢GŽ€PUVä¿ðY3ºAg,Ppç ˆjU›ù—ù¹U²k4Ì—w34F2GÂx³Ç—._ú¸i§E-…€…I·w1ŽªßgâûòÃãâ#êô²lª0Þj¡`¼–$µ·J²B<®ËÁ}OåUåû?µ„WLa¼fÜ
+¸a_åø_³E ¬Jü4nŸ/æñÂYõ©õ4–ß‚¤1Dä7Vý¦ÿ
+Õ[Åû¿´¹Ño,Ò ›Rd3HçÒ¡ÛüŸ‡ìÿ
+‚þ$IU%Ü.Ìßå|?ü_dc,í>ªUnÊe4š…IËÃöþûCâÂÙm嵸ku€ 4©où·áÌ€1Ë`¾äÚ{Ø.XÅ:²3¥TüCý—'þÜØW'Õæ‰+PСF5Ûí|?ñ,Øøq¯§àˉÿ×*±¾76ú”Òqõ˜ƒÕ_‰~?åuÂoïž!)U•€z þ×ÚUþl>ŠÞàød(õÚ2ëð,ŸðÃCaÅ$•øºÑDQ¸un—ùW®k¢8œrQw<R©fa¡‘è´ø¸òo uhîmCXsœ«¸ªª—,Ü~×òöýœVîêg-¿/ôjˆC³Ë—ñ›mNâBÑ(ˆTàR‰Å¿kàÁŠ2®?æ¨è ¿ŠÎdTôÔñ«·íýŸÙûXh*{ r+û<££røY¿›¼å¦,³¼Æ0 ‡“ËùÉø±h}Kð’\ÜF± õ!„òçðòý¬—z¿…!TdeSÖ‰<Ãqý©0ÿ
+îÕøq=2=>9ðGé¼Â‚®EU™x«ñþÖZ3FÎ?S.*@éúf·i,Èc%@ÜH Ëíqÿ
+A¯%ø~Ö[<f0É<ù®Zä6RlkYS‹,m‹G¥©·0ßJ¥@øŠSâåö¿kh/Hô"â±ïjµ!y|L«öp Á/¯†rŽ„ÆHWçü¿µÉy€ß”¸X¦VÒYÛ1‡ÐbÇ%Š37ù\¿âXïSœNj AM_×û§ü­ñ¦ÊålÖK÷à•z·óG³ÿ
+õ²ÓC"ÝJÅÐH8"®çâý•û²E,ÊÐ¥Ä@´RF û)ž?Í×ìá6ó!7ßÛÕ”€ËþËü¯Ã $»µ†& Ò?ÞÑGÇûÏúë)ÌnUõ&·A|ì¶ÑDÆY´aP>û_/Ù\KQ‚/©ú"£9.¿¶3sâ¼1a&F»õ™X2!Ívn*¿·û-û8koc`öm LÊÀž$|gü¦ãÅÿ
+OýŸõp+E ¸y˨šE
+CÊ©|KÇâ¹"ÒµSq¤ {hÀ[Y
+šq…™}I>?‹öGú¸ðX…xãt¦¬Tòû\V!¦Im«t#5’9S§É[’H­ñqãÅ°’' âÈôÂAcªMo?Ý2Kéñ¯.?Åÿ
+J¯ù\þÖ*±[Dd·€2BW„|E_ƒ~Òÿ
+­»³O0»º®ÿ
+&£ªYŽ>Qó0K,Ÿºp•!Ù䢪¨NÆj²¹?/ò?â9òý£Irò£†¬A’¡›þ5ëømí ^UõX™9–çñü<—Ž ôrpB&­'Ô®.íØÉ)å"#=¿Ö厷y­âäÆðˆøÈw欿³ø.œ\ê7QÀÔHBm]™Øa´Úk@=@QÏ÷Híû<WöŸí.Y. ýL)ª\NÒ¼€ªDè9u¯³„²]ÜÈ Aôº¬Cþ5ÃØôû{¥VPìh‡…@âßðËƹfÒÆÆy”ÑŠq›“¹rVáñqÿ
+áŸ:¤¥“d|?³ö~,(7^¼ìÐʤÀv@7eoµf<Iõ"üf¼•oK4;ü‘­þuÍ‚BªehÈ!âåÄðãû?äý¯Ç6YÆŠÿÑ„ÛÄœcv`8
+®.î!Ôi’â jý‹‡ümŽ;’y¢.´‹x­„\牎 *ü?¯ícGÛ[[§Ô§[†’¼¤d¡äümðâ÷-5ð %ÀSvUéÇìÿ
+î—þ%—Ï68ôýMÐÄeÉŒiÞH½¿PË"€@u©þl‘Úþ[XÆ\Þrwì¨ÃþŸ'¶VB &ßµþ¶ šÞ(PLc,h cÇ0eªÔH_ ’0D Ø6·¥A§YE €kˆR^eMWùyr¯/i–ͨ#ÜZÊæJT—HÂ7ó}¯æùáÿ
+²ææJ•·B¦ŸkûÏù¹†Lm½Xæ }‰T¿
+“†cOø=IÞ­OÁýœJâÖdV1>õZü_ñ3d˜ æš.E§Â(#!ú…õǪÖñ:•o÷YgâÉ&¡rÊ
+ƧÕC·!JáÈË ’Ì‹Y §¯û,”6úœl†Ò‰nØ‘Y*ˆ*\t?å«Ó ç‚k¥¬€ÄEy„o‰¹rUUýŸõ°bhÓ‰beýÚ¤ˆMy"þÏÁ͸ÿ
+”X×zRº„«!·Š¼œÒ½Ù¸ÿ
+qo…áý¥ÿ
+H®k „·3©'Ò‹ˆæ8îîËËÙû?åfÅäºÛÄK3þî‹ý§ø¿á³6Wêþsg§…ÿÒˆi•U
+¿ê§íf·8
+ün$î?›ì}¬;šîX¡ž&‹ÐDQX’¿câþ\ÄÔFòìÎ2ÍHLFZS(<ÒBPŒqþUÀöºº¶¤œc1 ã%KHOúÍö¸òø±XtùZRMVI
+ó ü¼¹ÿ
+'Û§
+òÿ
+§/…·åþºÿ
+ƒJqØ|Y"K¥Ä®¯OÞ'þ͘Ÿ¼•¹p#ø+Ey-QPiJÕ±F»‰Ð,Ž~øx·Úÿ
+ZImmÔH”Ôª*#Óí|?gö³'0‰Ã¨×72ÆümŠ<¦°ðëñ`ª\ýp-Â4­<ö¾.-Ë—Úþ˜ý:àÚ0inÀOÅþWÃËüúàéoÿ
+ËKÁv’4b6¡æÁ׊óåþ®Z¤±}f#¬~9jËB¬ßküœ‰]O5Ìja™¾<ÈN›íþÇÃËüŸ| ¶±!•íädŠC΄ðåþÅ08#|œ)™áˆZÚ”}XÆï^ŸìŸþ6ÂxÌÍtG‘81bœy~ñ¸ýŸö†2æ[ÖS­
+ɤff(Ti 'öm5À’JÅ"Ñ.ßð_³‚›R0ÙɧÞ?­ÂÚ~êËþëlRÞöv·XÖêÛmÃqþmúð¡ulöäN#yjh茟úßµ” òQ‹g—[R=% AªíþVhZÔÊ·QpP§Ó‘Ír_Ùþl¦êV°Sj¼šO¦½~&ûMüßkŽÖµ­SêIÆÎKd§?YäÜ7ù<1—ˆL±Æ0„XÞ†¹°Óô·™®qSaªQÿ
+ñÃ+{ÍBée¹šÏë%” Ëí7Áö±¢yÑã_¨0ã%9’Û|_jßgŽ11ˆ¡#…BÇO¹¾»[3ÌE»št †ïåè OYVIPU6ßg&ZT¬maÏÓ¤c㢒9Ÿ,1KSx†'‰•JQW5ùu¹8èzb“ŒôyMÔ6ðü$€Šƒ¶[bÑ—ž΃¨yâc$–â€Ò@^<p6‘ä9g“ý82ª±GB:·ÉŽ¯…™z˜+Þ,4ç$p³R'`@*xòÉjèZEÂ$q)¤Ö@´2'í7Ùû=W%ñyJŽá-@¡ÁWö–¶p¿¤heø¾‡!-h<£ÂÌÂD0Yté-®…´+HeªR»+/Ä¿ë7ö[`iâ]ÎxúNƒ’o±É϶H/LÑJZ8ŠÄw&›ÿ
+—÷q(EôÑ@
+%¸O,±%·ZŠœí;®Ì…åÿ
+º†ŽÆ&X˜„ôÁ*ÚfÂ;>hÙ¸ŽAd1ÿ
+zªbW:…‹ ¦ýáÈ,þx„–f¶%º­ljyÚÚv doÙ£m’:}E},ŽQI®¢DÒ¼¡
+îí×
+ç…1*¢JÛ‡÷å†&úØ9`(h0–[ŸE¤ˆ ãZÇS×âÃ#³‹ ±­`!ã„F=Bzš‘…ßSžÚe0R¾›òèY¿ký^™U¸³PGñÓ¬ñIe‘‡¦CÑÇùÿ
+úe”—Z¼Åý¤j±ªÄ«ûÆÿ
+¸–
+úcleË0‰Wö§ü6&FŠk£$‚é.
+™ŠžõïÉ~?‹ŸêÒ
+¥YIæOvâÜqbßWv–8"~* `eUôAãÌžOþªáÄ·åÀ†‘ý?
+æAY6cI\—‡ äƒ_õÌâF@Ä“]òqÒɲŸÚäh<1¾¨
+Ê^\¿ ¯xì‹tU¾¦/·€%Ã0=(Ux³­…f)AÄÿ
+Ù¬–#3aˆ‘‰úYÃêÎ¥q¦ôÿ
+wle!ˆà¢ŒohÆ
+.’)ÇòÒ€¿ÙÉDÄ­©r˜Ñá¹Ã˜m%ƒHIãaþ“+Æçþ*ül߆È ¢†ïÏ$÷b3L±'£ –”ÜúïË—ü 1ÉuHB/þéþ®iD>¨‹aNãþ#¦½ˆ¨^!‰$ãÅá1ÐÆ
+Ð{å„¥Y'~#±<àq ¨­WÇÚmyV‹ÈoþÇ– ífF‡_™\Ç21åJ8f<’–øªvø³¥Qñ 5žÅZF BQz«¯,øE¥ví–G$O_|Rá6Ô¦00­OA™†4‚2äÓjæ+ … Ÿâùüò×r1+H†”P¨? =3FCqÞ´ÿ
+ž(w¢åF
+µ¡ïñetñ(
+ª ö¹`¥§0Mýÿ
+¶HŸR2A¥0”‰‡J Èü"´ÇE+Èœ4„óD¿ŽÊYfcÇ$
+~×úØ/R󷪃¦ž´|¶-Ï“dz9#‚µ¨ø}¾,©‚¤” H ¥rÞ"#A‡%6ý8·DÑ‚±Iê$dìWöU—ß\[ÝE¡ wqU×üë‘¥r{cÄŒªcJ×ý–+ÚQSÑ5º±x),mÊ9Úû\—ýlÓ+!SצßËúü²"Ã#ü4¡=Ïí`f*Šj+”a{&7ÕÑž,zõÇ;
+ªU—÷ly ã•Èv-O„×’U•ïק‚€*Ü`¯ä¥¨AS±ÄÏÂàöí\QîY”©§kZncö}» $ 4Ûû÷ÆÓá¥>œÄŸ£*µ­0„¯”Ê®3ßÇ7#ÐýØÝjFlÀoLØ¡ÿÐb·A@)ðÓk±ÿ
+ïSôdGÌð³\
+…ïñd³^Œ:DÌÀéQÉwÿ
+‚
+ßNÙ³t®ÛfÅ_ÿÑ*yþÃ|oÖG^ø\×U†R­*%urcŒZ©#þ áVÍ™•:ñ˜Å…É‘èÚÿ
+T?¼c#ÿ
+ÔÏòÿ
+vzXò]È?ñÕÒ+ÿ
+
+endstream
+endobj
+32 0 obj
+<<
+/Type /ExtGState
+/SA false
+/OP false
+/HT /Default
+>>
+endobj
+22 0 obj
+<<
+/Type /XObject
+/Subtype /Form
+/FormType 1
+/PTEX.FileName (./pic.pdf)
+/PTEX.PageNumber 1
+/PTEX.InfoDict 30 0 R
+/BBox [0 3.18719 440 311]
+/Resources <<
+/ProcSet [ /PDF /ImageC ]
+/XObject <<
+/Im1 31 0 R
+>>/ExtGState <<
+/GS1 32 0 R
+>>>>
+/Length 61
+/Filter /FlateDecode
+>>
+stream
+H‰Òw6TH/æ*ä21¶Ô³´4R0
+
+endstream
+endobj
+23 0 obj
+<<
+/Type /XObject
+/Subtype /Image
+/Width 440
+/Height 308
+/BitsPerComponent 8
+/ColorSpace /DeviceRGB
+/Length 406560
+>>
+stream
+f‘¯f‘¯d­d­d­c¬c¬c¬i”³g’±f‘¯c¬c¬d­f‘¯g’±bŒªbŒªf‘¯i”³f‘¯bŒªf‘¯nšºf‘¯i”³nšºnšºm™¸j•µi”³i”³j”¸j”¸j”¸j”¸j”¸j”¸j”¸j”¸f³d±d±g‘µk•ºm—¼k•ºj”¸m™¸k—¶k—¶k—¶k—¶k—¶j•µj•µk—¶k—¶k—¶m™¸m™¸nšºnšºnšºo™¶n—µm•³k”±k”±k”±k”±k”±rœºqš¸n—µm•³m•³n—µqš¸rœºm”­n•¯q™³ršµtœ¶ršµt—³r•±u™µu™µw—µw—µy—µy—µy—µy—µq™³q™³q™³q™³q™³q™³q™³q™³k’¬k’¬m”­n•¯q™³ršµtœ¶tœ¶m”±j‘­i¬j‘­m”±o—µo—µn•³rš¸o—µm”±m”±n•³n•³m”±j‘­o™¶n—µk”±k”±n—µn—µk”±j’¯n—µqš¸rœºo™¶j’¯i‘­m•³qš¸o™¶j’¯g¬j’¯o™¶rœºo™¶j’¯m•³n—µo™¶qš¸o™¶k”±i‘­fªm•³m•³m•³m•³m•³m•³m•³m•³o™¶o™¶o™¶o™¶o™¶o™¶o™¶o™¶k”±m•³o™¶qš¸qš¸o™¶m•³k”±n—µn—µn—µm•³k”±k”±j’¯j’¯m”±n•³n•³o—µo—µq™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶nŸ¶mžµmžµkœ³nš³m™±n™±m—¯o—±q™³t—³u™µw—µu•³u•³t”±ršµršµo—±n•¯n•¯n•¯n•¯n•¯ršµršµršµršµršµršµršµršµq™¶q™¶q™¶rš¸rš¸tœºtœºtœºq™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶už¸tœ¶tœ¶ršµršµtœ¶tœ¶už¸m”­o—±ršµq™³o—±n•¯n•¯o—±uš¯t™­r—¬r—¬uš¯uš¯t™­r—¬q•ªr—¬t™­uš¯uš¯uš¯t™­t™­užµtœ³tœ³rš±rš±tœ³tœ³užµužµtœ³tœ³rš±rš±tœ³tœ³užµužŸršœq™šužŸ{¥¦~¨ª|¦¡~¡žd„j…|E]O)7+,<-?M:ET>IXA4ENXmtŸ{—¯y—¯u’¯u•³…¨Çxœ¸yžºy£º{¥¼{¦¶y¥µu£­t¡¬…£µ…£µ‡¥¶‡¥¶‡¥¶‡¥¶…£µ…£µŠ¨º…£µ‚Ÿ±…£µ¬¾­À‡¥¶œ­šª¶’¡­œ¨‘Ÿ¬•¦¶š¬¼—¨¸‘¡±š±Âš±Â™±Å”¬À¦º‘¨¼™±Å¡ºÏ£¬³¥­µ£¯º£¯º¡­¸žªµ™¨µ—¦³—¨¸‘¡±‰ž­Œ¡±Š¡µ‡ž±‡¡¸¨ÀŒªÄŒªÄŠ¨Â…£¼„¡º„¡ºŠ¥¼ªÂŒ£¶¦º’ª¾”¬À•¬¼”ªº‘¦¶¥µ•¦¼•¦¼—¨ºš¬¾ž¯À£¯Â¥±¼¬±¾ÀÅϺ¸Ä¶¶º¾¾ÂÀ¼¾º¶¸Âº¸ÍÅÄǾËÏÅÓ¸ÀĺÂÉÇĨ¦£•”³±ª¼¾µ‚„|XXXŠ‰‘Ÿ¡¨{{‡Ÿ¡¡³„…|¦¨žoqiqrj”•y‡­¯¦bŒªc¬d­f‘¯g’±i”³j•µj•µf‘¯f‘¯f‘¯f‘¯g’±j•µm™¸nšºm™¸j•µi”³j•µf‘¯_‰¦_‰¦c¬bŒªf‘¯j•µk—¶i”³f‘¯d­f‘¯i’¶i’¶i’¶i’¶i’¶i’¶i’¶i’¶g‘µf³f³i’¶k•ºm—¼k•ºi’¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶m™¸k—¶k—¶k—¶m™¸m™¸nšºnšºnšºqš¸qš¸o™¶n—µm•³m•³n—µn—µqš¸qš¸o™¶n—µn—µo™¶qš¸qš¸n•¯o—±q™³ršµtœ¶ršµu™µt—³u™µu™µw—µw—µy—µy—µ{™¶{™¶q™³q™³q™³q™³q™³q™³q™³q™³n•¯n•¯o—±o—±o—±q™³q™³q™³q™¶n•³k’¯k’¯m”±n•³m”±k’¯q™¶n•³m”±m”±o—µo—µn•³k’¯o™¶n—µk”±m•³n—µn—µm•³j’¯n—µn—µn—µm•³j’¯j’¯k”±m•³o™¶k”±g¬j’¯o™¶rœºo™¶j’¯m•³n—µo™¶qš¸o™¶m•³j’¯g¬m•³m•³m•³m•³m•³m•³m•³m•³o™¶o™¶o™¶o™¶o™¶o™¶o™¶o™¶m•³n—µo™¶qš¸qš¸o™¶n—µm•³qš¸qš¸qš¸o™¶o™¶o™¶o™¶o™¶n•³n•³o—µo—µo—µq™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶mžµmžµkœ³kœ³nš³nš³oš³n™±o—±q™³u™µu™µw—µw—µu•³t”±ršµq™³o—±o—±n•¯o—±o—±o—±ršµršµršµršµršµršµršµršµq™¶q™¶rš¸rš¸rš¸tœºtœºtœºrš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸už¸tœ¶tœ¶ršµršµtœ¶tœ¶už¸n•¯q™³tœ¶tœ¶ršµo—±q™³ršµwœ±uš¯t™­t™­wœ±wœ±uš¯t™­q•ªr—¬t™­uš¯uš¯uš¯uš¯t™­užµužµtœ³rš±rš±rš±tœ³tœ³užµužµtœ³rš±rš±tœ³užµužµq™šwŸ¡ª¬…±³‚­¯{¥¦q™”o‘[yuMd],#*+7'4A.ScKDXbawŠu‘¡~š³„£¼|š¸q‘­x™¶yžº{Ÿ¼x¡¸y£ºy¥µx£³w¥¯u£­ž¯ž¯‚Ÿ±‚Ÿ±‚Ÿ±‚Ÿ±ž¯ž¯Œª¼‰¦¸‡¥¶Š¨º­À­ÀŠ¨º„¡³šª¶”£¯žª’¡­—¨¸š¬¼—¨¸’£³—­¾™¯À—¯Ä”¬À‘¨¼‘¨¼—¯ÄœµÉ¦¯¶¦¯¶¥±¼¦³¾¦³¾£¯ºŸ¯¼ž­ºœ­¾”¥µ£³£³Š¡µ‡ž±…Ÿ¶Œ¦¾Š¨ÂŠ¨ÂŠ¨Â‡¥¾„¡º…£¼Œ¦¾‘¬Ä•­Â”¬À’ª¾¦º¥µ£³£³Œ¡±—¨¾™ªÀš¬¾ž¯Â¡³Ä¨µÇª¶Â±¶ÄºÀɸ¶Â¸¸¼¾¾Â¾À¾º¼Å¾¼ÏÇŶ­ºÅ¼ÉÍÄËÍÄËÂÀ¼ª¨¥¡Ÿ™³±ª¥¦ž‚„|iiiœš£­¯¶„„‘‡‡—ŠŠš—™’”Šqrj„…|™š’‘’Šœž•‘‰d­d­f‘¯g’±i”³j•µk—¶m™¸i”³i”³i”³j•µk—¶m™¸oœ¼qž¾j•µd­c¬i”³k—¶g’±g’±j•µbŒªf‘¯i”³j•µg’±f‘¯d­f‘¯g‘µg‘µg‘µg‘µg‘µg‘µg‘µg‘µj”¸i’¶i’¶j”¸m—¼m—¼j”¸g‘µj•µj•µj•µk—¶m™¸m™¸nšºnšºm™¸m™¸m™¸m™¸nšºnšºnšºnšºrœºrœºqš¸o™¶o™¶o™¶o™¶qš¸qš¸qš¸o™¶o™¶o™¶o™¶qš¸qš¸o—­q™¯rš±tœ³wš³wš³u™±u™±u—¯u—¯w™±w™±{™³{™³|šµ|šµq™¯q™¯q™¯q™¯q™¯q™¯q™¯q™¯rš±rš±q™¯q™¯o—­o—­n•¬n•¬tœºq™¶m”±m”±m”±n•³m”±j‘­o—µn•³m”±m”±o—µq™¶o—µn•³qš¸n—µm•³m•³n—µn—µm•³j’¯o™¶m•³j’¯j’¯k”±m•³k”±j’¯o™¶k”±i‘­k”±o™¶rœºo™¶k”±k”±m•³n—µo™¶o™¶n—µk”±j’¯m•³m•³m•³m•³m•³m•³m•³m•³o™¶o™¶o™¶o™¶o™¶o™¶o™¶o™¶n—µn—µo™¶qš¸qš¸o™¶n—µn—µo™¶o™¶qš¸qš¸qš¸qš¸rœºrœºo—µo—µo—µq™¶q™¶q™¶rš¸rš¸q™¶q™¶q™¶q™¶q™¶q™¶q™¶q™¶nœ¯nœ¯nœ¯nœ¯qœ±qœ±rš±rš±t—¯t—¯u™±wš³xš³w™±u—¯u—¯q™¯q™¯o—­o—­o—­q™¯rš±rš±rš±rš±rš±rš±rš±rš±rš±rš±q™¶rš¸rš¸rš¸tœºtœºtœºtœºuž¼už¼už¼už¼už¼už¼už¼už¼užµužµtœ³tœ³tœ³tœ³užµužµq™¯tœ³wŸ¶wŸ¶tœ³rš±rš±tœ³xž³uš¯t™­uš¯wœ±xž³wœ±t™­r—¬t™­uš¯uš¯wœ±wœ±uš¯uš¯{žµyœ³xš±w™¯w™¯w™¯w™¯w™¯{žµyœ³xš±xš±xš±xš±yœ³{žµx—Ç{šË{šËx—Çx”¾x”¾šÄ‡£Äd|•Rcu&1:"+09BG1;<(10BML<OT^ux•Ÿ~š¬„¡³ž¶x•­{™¶~Ÿ¾|ž¼{Ÿ¸yž¶w¡µx£¶x£³y¥µ…¡³…¡³‡£µ‡£µ‡£µ‡£µ…¡³…¡³Š¦¸Œ¨ºª¼¬¾‘­À¬¾ª¼Š¦¸šª¶•¥±”£¯•¥±š¬¼œ­¾™ªº•¦¶•¬¼—­¾—¯Ä•­Â’ª¾’ª¾”¬À—¯Äž­ºŸ¯¼£³À¥µÂ£µÅ£µÅœ³Äœ³Äš³Ç”¬À¦º‘¨¼Š¥¼„žµ„žµŠ¥¼‰¦À‰¦ÀŠ¨Â‰¦À‰£ºŠ¥¼ªÂ’­Å—¯Ä”¬À’¨¸£³Œ¡±Œ¡±¥µ‘¦¶š¬¾œ­ÀŸ­Â£±Åª¶É­ºÍ¯¼Ç¶¼É¶¼Å¸¶Âºº¾ÂÂÅÅÂÄÅÂÄËÄÅÑÉËÉÀÍËÂÏËÂͳªµ”‘’œ™š¶µ­ÂÀ¸¾¾º¯¯¬Ÿ£žÄÅÉËÍÕ¦¦µžž¬••£Ÿ¡¨‘’™•—ž³µ¼žŸ¦‡‰„…]^di”³i”³i”³i”³g’±g’±g’±g’±nšºm™¸m™¸k—¶k—¶k—¶k—¶k—¶j•µbŒªaŠ¨i”³nšºnšºm™¸m™¸f‘¯i”³k—¶k—¶j•µi”³i”³j•µi’¶i’¶i’¶i’¶i’¶i’¶i’¶i’¶k•ºj”¸j”¸k•ºm—¼m—¼j”¸g‘µi”³j•µj•µk—¶m™¸nšºoœ¼oœ¼nšºnšºnšºnšºnšºnšºnšºnšºrœºqš¸o™¶o™¶o™¶o™¶qš¸qš¸qš¸qš¸qš¸o™¶o™¶qš¸qš¸qš¸q™¯rš±rš±tœ³wš³wš³wš³wš³u—¯u—¯w™±w™±{™³|šµ|šµ~œ¶rš±rš±rš±rš±rš±rš±rš±rš±rš±rš±q™¯q™¯q™¯o—­o—­o—­tœºq™¶n•³m”±n•³o—µn•³m”±n•³m”±m”±n•³q™¶rš¸q™¶o—µqš¸n—µm•³m•³n—µo™¶m•³k”±rœºm•³i‘­j’¯n—µo™¶n—µj’¯n—µm•³j’¯m•³o™¶qš¸o™¶m•³k”±m•³n—µo™¶o™¶o™¶n—µm•³n—µn—µn—µn—µn—µn—µn—µn—µqš¸qš¸qš¸qš¸qš¸qš¸qš¸qš¸o™¶o™¶qš¸qš¸qš¸qš¸o™¶o™¶m•³m•³n—µn—µo™¶o™¶qš¸qš¸q™¶q™¶q™¶rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸rš¸mš­mš­nœ¯nœ¯qœ±rž³tœ³tœ³u™±u™±wš³wš³xš³xš³w™±w™±q™¯q™¯o—­o—­q™¯rš±tœ³užµtœ³tœ³tœ³tœ³tœ³tœ³tœ³tœ³rš¸rš¸rš¸tœºtœºtœºuž¼už¼tœºtœºtœºtœºtœºtœºtœºtœºwŸ¶užµtœ³tœ³tœ³tœ³užµwŸ¶q™¯tœ³wŸ¶wŸ¶tœ³rš±tœ³užµwœ±uš¯t™­t™­wœ±xž³uš¯t™­t™­t™­uš¯wœ±xž³xž³wœ±wœ±|Ÿ¶{žµyœ³xš±w™¯w™¯w™¯w™¯{žµ{žµyœ³yœ³yœ³yœ³{žµ{žµŸÑ|œÍx—Çr‘Àt¸x”¾šÄ‡£Ä‰¥ÂwŒ¡j~Œr‚Œjw~LXY8BA5?>7JNk„‘‰¨³u‘¡ržœµŸ¸ž¼¡À~Ÿ¾yž¶xœµuŸ³w¡µy¥µ{¦¶…¡³…¡³‡£µ‰¥¶‰¥¶‡£µ…¡³…¡³…¡³‰¥¶ª¼ª¼Œ¨ºŠ¦¸Š¦¸Š¦¸šª¶—¦³—¦³™¨µœ­¾ž¯Àš¬¼—¨¸•¬¼—­¾—¯Ä™±Å—¯Ä•­Â”¬À’ª¾—¦³™¨µœ¬¸Ÿ¯¼Ÿ±ÂŸ±Âš±Â™¯Àš³Ç”¬À‘¨¼’ª¾¨À‡¡¸‡¡¸Œ¦¾‡¥¾‰¦ÀŠ¨ÂŠ¨ÂŠ¥¼Œ¦¾‘¬Ä•±É‘¨¼‘¨¼‘¦¶‘¦¶’¨¸”ªº—­¾™¯Àš¬¾œ­À¡¯Ä¥³Ç¬¸Ë¯¼Ï³À˸¾ËµºÄ¼ºÅ¾¾ÂÄÄÇÇÄÅÇÄÅËÄÅÍÅÇ×ÍÛÍÄÑÉÀ˨Ÿª‚š—™À¾¶±¯¨ÏÏËÅŵ¸³¶¸¼³µ¼¥¥³ŸŸ­™™¦£¥¬¬­µ¶¸À¶¸À‘’™qrxkmtdfmg’±g’±g’±g’±f‘¯f‘¯f‘¯f‘¯k—¶k—¶k—¶k—¶k—¶j•µj•µi”³u£Äm™¸g’±k—¶nšºj•µf‘¯d­i”³j•µm™¸m™¸j•µi”³j•µk—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶m™¸k—¶k—¶m™¸nšºnšºk—¶i”³j•±j•±k—³m™µnš¶oœ¸oœ¸qžºnš¶nš¶nš¶nš¶nš¶nš¶nš¶nš¶q™³q™³o—±o—±o—±o—±q™³ršµršµršµršµtœ¶tœ¶ršµršµršµtœ³tœ³wš³wš³wš³xœµyœµ{ž¶w™±w™±y—±{™³{™³|šµ|šµ~œ¶u™±u™±u™±u™±u™±u™±u™±u™±r•­r•­t—¯t—¯t—¯u™±u™±u™±t—³q”¯o’­q”¯t—³u™µu™µt—³r•±q”¯o’­q”¯t—³u™µu™µt—³ršµq™³n•¯o—±q™³q™³o—±m”­už¸o—±m”­m”­ršµtœ¶ršµo—±o—±n•¯n•¯n•¯q™³ršµq™³o—±n•¯o—±o—±q™³q™³q™³o—±o—±o—±o—±o—±o—±o—±o—±o—±o—±ršµršµršµršµršµršµršµršµtœ¶tœ¶ršµršµršµršµtœ¶tœ¶o—±o—±o—±q™³ršµršµtœ¶tœ¶wš¶wš¶wš¶u™µu™µu™µu™µu™µu™µu™µu™µu™µu™µu™µu™µu™µoš¯oš¯q™¯rš±tœ³tœ³xœµxœµwš³wš³yœµyœµyœµyœµxš³xš³u™±t—¯t—¯t—¯u™±wš³xœµyž¶wš³wš³wš³wš³wš³wš³wš³wš³u™µu™µwš¶wš¶wš¶xœ¸xœ¸xœ¸wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶yž¶yž¶xœµwš³wš³xœµyž¶yž¶t—¯wš³xœµxœµwš³u™±u™±wš³xš±u—­t•¬u—­w™¯xš±w™¯t•¬w™¯w™¯xš±yœ³yœ³yœ³yœ³yœ³‚Ÿ¸ž¶œµ~š³|™±|™±~š³~š³ž¶ž¶œµœµœµœµž¶ž¶—Ï„œÕ‰¡×Œ¦ÕŠ£É‚”³t…œi{‰—ªµ|‘Ÿž|„?JA6@8?J>(1'Md_|™™{——SjoXqyž¯ŒªÀy”¯‚¡¼Ÿº{œºyš¸yœµ{ž¶~¡º£¼š¬š¬œ­œ­œ­œ­š¬š¬š¬„Ÿ±‰¥¶Š¦¸‰¥¶‡£µ‡£µ‡£µ™¨µ™¨µ™¨µœ¬¸œ­¾œ­¾š¬¼—¨¸—­¾™¯À™±Å™±Å™±Å—¯Ä”¬À‘¨¼¥µ‘¦¶”ªº—­¾™±Å™±Å—¯Ä—¯Ä’­Å¨ÀŠ¨Â­Ç¬Å‰¦À‰¦À¬Å‰£ºŒ¦¾¨À¨À‘¨¼‘¨¼•­Â™±Å’¨¸”ªº—­¾™¯Àž¯Àž¯Àž¯Àœ­¾œ¬¼ž­¾¡±Â¥µÅª¶Å­ºÉ³¼Çµ¾É¸¾ÇºÀÉÀÂÉÀÂÉÄÄÇÄÄÇÅÂÄÄÀ¼¶Ä¾¸ÅÍÉÓÀ¼Å¦£¥¶³µ¼¼¸’’ÂÅÀ¼Àºµ¸³Ÿ¡¥•œžšŸ¨”šŸ‘•¡•šª¨­¾’—¦uy‡uxŠdgx]_o‡ŠžbŒªc¬d­f‘¯g’±i”³j•µj•µd­f‘¯i”³j•µk—¶m™¸m™¸m™¸qž¾k—¶j•µnšºoœ¼k—¶j•µk—¶g’±j•µk—¶j•µi”³g’±i”³k—¶m™¸m™¸m™¸m™¸m™¸m™¸m™¸m™¸m™¸k—¶k—¶m™¸oœ¼oœ¼m™¸k—¶k—³k—³m™µm™µnš¶oœ¸oœ¸oœ¸oœ¸oœ¸oœ¸oœ¸nš¶nš¶nš¶nš¶o—±o—±o—±n•¯o—±q™³q™³ršµršµršµtœ¶tœ¶tœ¶tœ¶ršµršµužµužµwš³wš³wš³xœµ{ž¶|Ÿ¸yœµyœµ|šµ|šµ|šµ{™³{™³{™³wš³wš³wš³wš³wš³wš³wš³wš³r•­r•­t—¯t—¯u™±u™±wš³wš³t—³q”¯o’­q”¯u™µwš¶xœ¸wš¶t—³r•±q”¯r•±u™µu™µt—³r•±tœ¶q™³o—±o—±q™³q™³o—±m”­tœ¶q™³o—±o—±ršµtœ¶tœ¶ršµo—±o—±o—±o—±q™³q™³q™³ršµq™³q™³q™³q™³o—±o—±o—±o—±q™³q™³q™³q™³q™³q™³q™³q™³tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶už¸už¸tœ¶ršµršµtœ¶už¸už¸už¸už¸už¸už¸už¸wŸºwŸºwŸºxœ¸xœ¸xœ¸wš¶wš¶wš¶u™µu™µwš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶qœ±qœ±rš±rš±tœ³tœ³wš³wš³wš³xœµ{ž¶{ž¶{ž¶{ž¶yœµxš³wš³wš³u™±u™±u™±wš³xœµyž¶xœµxœµxœµxœµxœµxœµxœµxœµwš¶wš¶wš¶wš¶xœ¸xœ¸xœ¸yžºu™µu™µu™µu™µu™µu™µu™µu™µyž¶yž¶xœµxœµxœµxœµyž¶yž¶t—¯wš³yž¶yž¶wš³u™±u™±wš³yœ³w™¯u—­w™¯xš±yœ³xš±u—­w™¯xš±yœ³{žµ{žµ{žµ{žµyœ³‚Ÿ¸ž¶ž¶œµž¶ž¶‚Ÿ¸‚Ÿ¸‚Ÿ¸‚Ÿ¸ž¶œµœµž¶‚Ÿ¸‚Ÿ¸—Ï‚šÓ…žÓ„žË|”¸w‡¥m~”fx…—ªµ„•™™ª¨jyq$,&#+$3=2#Lc^Wnn?SS+<@G^f…£µ‘¯Åw‘¬Ÿºž¸|ž¼{œº{ž¶|Ÿ¸|Ÿ¸~¡º„Ÿ±„Ÿ±…¡³…¡³…¡³…¡³„Ÿ±„Ÿ±œ­‚ž¯„Ÿ±‡£µ‰¥¶‰¥¶‡£µ…¡³•¥±—¦³šª¶ž­ºœ­¾š¬¼™ªº—¨¸™¯À—­¾•­Â—¯Ä™±Å•­Â’ª¾¥¸‘¦¶’¨¸•¬¼™¯À™±Å™±Å—¯Ä—¯ÄªÂŠ¥¼Š¨Â­Ç­ÇŠ¨ÂŠ¨Â­ÇŠ¥¼¨À‘¬Ä‘¬Ä’ª¾’ª¾”¬À—¯Ä™¯Àš±ÂžµÅŸ¶Ç¡³Äž¯Àš¬¼—¨¸ž­¾Ÿ¯À¡±Â¥µÅ¨µÄ¬¸Ç±ºÅ±ºÅ¸¾Ç¾ÄÍÂÄ˼¾Å¾¾ÂÄÄÇÅÂÄÀ¼¾¼¶Ä¼ÉÉÅϾǼ¸ºËÇÉÇÇĨ¨¥¦ª¥£¦¡¯³­šœŸ‘—™—œ¥‚‰„ko|y~ŒgkxUYdtw‰fiyCEScfwd­d­f‘¯g’±i”³j•µk—¶m™¸d­f‘¯i”³k—¶m™¸m™¸m™¸m™¸i”³g’±j•µoœ¼oœ¼m™¸qž¾w¥Åj•µm™¸m™¸k—¶j•µj•µk—¶nšºk—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶k—¶m™¸qž¾qž¾oœ¼m™¸n—µo™¶o™¶o™¶o™¶o™¶o™¶o™¶rœºrœºrœºqš¸qš¸o™¶o™¶o™¶q™³q™³q™³q™³q™³ršµtœ¶už¸ršµršµtœ¶už¸už¸tœ¶ršµršµyŸµxž³xž³wœ±yœ³{žµ|Ÿ¶~¡¸ž¶~œµ~œµ|š³~š³|™±{—¯{—¯wœ±wœ±wœ±wœ±wœ±wœ±wœ±wœ±wœ±wœ±uš¯uš¯uš¯t™­t™­t™­wš¶t—³r•±r•±u™µwš¶wš¶u™µwš¶t—³r•±r•±u™µu™µt—³q”¯tœ¶q™³o—±o—±q™³ršµo—±n•¯o—±q™³q™³q™³o—±o—±ršµuž¸n•¯o—±q™³q™³q™³q™³ršµršµtœ¶tœ¶ršµq™³o—±o—±o—±o—±q™³q™³q™³q™³q™³q™³q™³q™³tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶wŸºuž¸tœ¶ršµršµtœ¶už¸wŸºx¡¼wŸºwŸºwŸºwŸºwŸºuž¸už¸yžºyžºxœ¸xœ¸xœ¸wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶yœ³xš±xš±xš±xš±xš±w™¯w™¯yœ³yœ³{žµ|Ÿ¶ž¶~œµ|š³|š³yŸµyŸµxž³wœ±wœ±wœ±xž³xž³xž³xž³xž³xž³xž³xž³xž³xž³wš¶wš¶wš¶xœ¸xœ¸xœ¸yžºyžºxœ¸xœ¸xœ¸xœ¸xœ¸xœ¸xœ¸xœ¸{¡¶yŸµyŸµxž³xž³yŸµyŸµ{¡¶wœ±xž³{¡¶{¡¶yŸµwœ±xž³yŸµ|Ÿ¶{žµyœ³yœ³|Ÿ¶|Ÿ¶{žµyœ³xš±yœ³{žµ{žµ|Ÿ¶|Ÿ¶{žµ{žµ‡žµ‡žµ‡žµ‡žµ‰Ÿ¶Š¡¸Œ£º¥¼‰Ÿ¶‡žµ…œ³…œ³…œ³…œ³‡žµ‰Ÿ¶…¡­‡¥¨…ŸŸu‡„]rcUdSYkNftS‰šj”¨o”¨jctB1?'3$1#
+(:0%50+'&64Ofi|—£‚¡­~š¯œµœ¼œ¼‚ž¾‚ž¾œ¼œ¸š¶’¨¸’¨¸”ªº”ªº”ªº”ªº’¨¸’¨¸Œ¡±ŠŸ¯ŠŸ¯¥µ”ªº•¬¼’¨¸Œ¡±”£¯—¦³šª¶ž­ºš¬¼™ªº—¨¸—¨¸—­¾”ªº‘¨¼‘¨¼’ª¾’ª¾¥¸‰Ÿ³Š¥¼Œ¦¾ªÂ‘¬Ä‘¯É‘¯É­Ç¬Å­ÇŠ¨ÂŠ¨Â­Ç¬Å‡¥¾…£¼Š¨Â‘¨¼’ª¾•­Â•­Â•¬¼”ªº•¬¼—­¾ž¯Àž¯ÀŸ¯¼¡±¾Ÿ¯¼Ÿ¯¼ž­ºž­º¥±À¥±À¦³Â¨µÄ­µÅ­µÅ¯¸Ä¯¸ÄµºÄ¼Â˾ÀǶ¸À¸¶ÀÄÂËÅÅÉÂÂÅÅÀÍÏÉ×¾DZ­¶¸¸¼ÄÄÇÄÅÉËÍÑ•™—’‘Ÿ¦¥Š‘‚‰‡‚‰‡bgf]bfMSXNTY^dj_fkry‚kr{CIOLRYk—¶k—¶k—¶j•µj•µj•µi”³i”³j•µk—¶m™¸nšºm™¸k—¶j•µg’±qž¾oœ¼rŸÀt¡Ânšºg’±i”³oœ¼oœ¼qž¾qž¾oœ¼nšºnšºoœ¼rŸÀj•µj•µj•µj•µj•µj•µj•µj•µk—¶j•µk—¶nšºqž¾rŸÀqž¾oœ¼qš¸qš¸o™¶o™¶o™¶o™¶o™¶n—µrœºrœºrœºqš¸qš¸o™¶o™¶o™¶ršµršµršµršµtœ¶už¸wŸºwŸºq™³ršµuž¸wŸºwŸºuž¸ršµq™³{¡¶yŸµxž³wœ±yœ³{žµ~¡¸£ºŸ¸Ÿ¸ž¶~œµ|™±{—¯y•­y•­wœ±wœ±wœ±wœ±wœ±wœ±wœ±wœ±yŸµyŸµxž³wœ±t™­r—¬q•ªq•ª{Ÿ¼xœ¸t—³t—³u™µu™µt—³r•±xœ¸u™µt—³t—³u™µu™µr•±o’­tœ¶ršµo—±o—±ršµršµo—±n•¯k’¬o—±ršµo—±m”­m”­q™³wŸºn•¯o—±q™³q™³q™³q™³ršµtœ¶už¸už¸ršµq™³o—±n•¯n•¯n•¯q™³q™³q™³q™³q™³q™³q™³q™³tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶tœ¶x¡¼wŸºtœ¶ršµršµtœ¶wŸºx¡¼wŸºuž¸už¸tœ¶tœ¶ršµršµq™³{Ÿ¼yžºyžºxœ¸xœ¸wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶wš¶{žµyœ³yœ³xš±xš±w™¯w™¯u—­yœ³{žµ{žµ|Ÿ¶ž¶~œµ~œµ|š³{¡¶{¡¶yŸµxž³wœ±wœ±wœ±wœ±xž³xž³xž³xž³xž³xž³xž³xž³wš¶wš¶wš¶xœ¸xœ¸yžºyžºyžºyžºyžºyžºyžºyžºyžºyžºyžº{¡¶yŸµyŸµxž³xž³yŸµyŸµ{¡¶xž³{¡¶~¥º~¥º{¡¶yŸµyŸµ{¡¶£º~¡¸|Ÿ¶|Ÿ¶£º¥¼£º|Ÿ¶xš±yœ³{žµ|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶{žµ‡žµ‡žµ‡žµ‰Ÿ¶Š¡¸¥¼¦¾‘¨À‰Ÿ¶‡žµ‡žµ…œ³…œ³‡žµ‡žµ‰Ÿ¶‚žª‘¯³•±±{ŠMaS8D64B,<F.BN.Yi>FT++6#0! !!+'<QNd~k„k‡’‚Ÿµ~š³šº‚ž¾„ŸÀ„ŸÀ‚ž¾š¶~™µ‘¦¶’¨¸”ªº”ªº”ªº”ªº’¨¸‘¦¶”ªº¥µŒ¡±’¨¸œ³ÄžµÅ—­¾‘¦¶’¡­•¥±šª¶ž­ºš¬¼—¨¸—¨¸•¦¶•¬¼‘¦¶Œ£¶Œ£¶¥¸¦ºŠ¡µ…œ¯…Ÿ¶‡¡¸Š¥¼Œ¦¾Š¨ÂŠ¨Â‰¦À‡¥¾’±ËŒªÄŒªÄ­ÇŒªÄ„¡º‚Ÿ¸…£¼’ª¾•­Â—¯Ä—¯Ä•¬¼”ªº”ªº•¬¼š¬¼™ªº™¨µ™¨µœ¬¸Ÿ¯¼¥µÂ¨¸Å¨µÄ¨µÄ¨µÄª¶Å­µÅ¯¶Ç¯¸Ä¯¸Ä±¶À¸¾Çº¼Ä±³º¶µ¾ÄÂËÉÉÍÅÅɳ­ºÑËÙÇÄͼ¸ÂÅÅɺº¾­¯³ÄÅɼÀ¾¨¬ª¸À¾œ£¡•”Š‘_dc]bfNTYBGLiounu{cjrry‚nu~yŠf‘¯i”³j•µm™¸k—¶i”³f‘¯c¬oœ¼nšºk—¶j•µi”³i”³j•µk—¶f‘¯g’±i”³j•µj•µi”³g’±f‘¯nšºnšºnšºoœ¼oœ¼qž¾qž¾qž¾rŸ¼qžºnš¶m™µj•±j•±j•±j•±nš¶nš¶nš¶nš¶nš¶nš¶m™µm™µuž¸ršµq™³ršµuž¸už¸q™³m”­q™³ršµršµtœ¶tœ¶ršµršµq™³u™±t—¯t—¯u™±wš³xœµu™±r•­xœµxœµxœµxœµxœµxœµxœµxœµyŸµyŸµ{žµ{žµ{žµ{žµ~œµ~œµ~œµ|š³|™±|™±|™±|™±™³šµyœ³yœ³yœ³yœ³yœ³{žµ~¡¸~¡¸yœ³yœ³xš±xš±xš±w™¯w™¯w™¯w™±w™±w™±w™±w™±xš³yœµ{ž¶t•­t•­t•­t•­t•­t•­t•­t•­t—¯t—¯t—¯t—¯t—¯t—¯t—¯t—¯r•­t—¯wš³wš³wš³wš³t—¯r•­t—¯wš³xœµxœµxœµxœµyž¶|¡ºu™±wš³wš³xœµxœµwš³wš³u™±t—¯t—¯u™±u™±wš³xœµxœµxœµ{Ÿ¸{Ÿ¸xœµwš³wš³xœµ{Ÿ¸{Ÿ¸wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³wš³w™±yœµ{ž¶xš³u—¯u—¯{ž¶¥¾xš³|Ÿ¸{ž¶w™±w™±{ž¶{ž¶w™±œµ„¡º…£¼‚Ÿ¸~š³|™±Ÿ¸‡¦À~œµ~œµ~œµž¶ž¶ž¶ž¶Ÿ¸yœ³yœ³{žµ{žµyœ³yœ³xš±w™¯yœ³yœ³yœ³yœ³yœ³yœ³yœ³yœ³yœµyœµyœµyœµyœµyœµyœµyœµ‚¦À~¡º|Ÿ¸¥¾¥¾|Ÿ¸~¡º‚¦À{žµyœ³yœ³{žµ~¡¸£º~¡¸|Ÿ¶yœ³yœ³xš±yœ³yœ³|Ÿ¶~¡¸£º{™±~œµŸ¸ž¶|š³|š³Ÿ¸‡¦À~œµ~œµ~œµž¶ž¶ž¶ž¶ž¶…œ³‡žµ‡žµ‰Ÿ¶Š¡¸Œ£º¥¼¥¼š³Ë¥¼…œ³‰Ÿ¶¦¾‘¨À¦¾¦¾”­¶…ŸŸ’¬¦{~N^J4>(+3CO(9E3? + "-   
+ "2+ /+7JJSjo|”Ÿ£¼Ñ|’¥‘¦Ä¥ÂŒ¡¾Œ¡¾‘¦Äœ³Ñ¥Âš¬¼œ­¾š¬¼—¨¸š¬¼¡³ÄŸ±Â™ªº¥¶Ç¡³Äœ­¾ž¯À£µÅ¡³Ä™ªº‘¡±™¨µ¡±¾¥µÂ£³À¡³Ä¥¶Ç¡³Äš¬¼™¯À™¯À—¯Ä”¬À‘¨¼¦º‘¨¼’ª¾¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å­Ç‘¯É”¯Ç”¯Ç”¯Ç”¯Ç•­¾™ª¼™ªº—¨¸•¦¶”¥µ•¥±”£¯¦¶Äšª¶™¥¯¡­¸¥±¼Ÿ¬¶¡ª±¨±¸¨±¼¨±¼ª³¾¬µÀ¯¸Ä±ºÅ³¸ÅµºÇ¬±º¶¼Å¼Â˶¼Å¶¸Àº¼Ä¾ÀǼ¾Åµ³¾¼ºÅÄÂÍÇÅÑÀÂ˺¼ÅÀÂÉÉËÓ¶¾ÀÉÑÓ­µ³Œ’‘„‡u~xoyo‡’‡_mbFRIu‚{Xc]w„|Œš’|Š…ž™c¬f‘¯i”³k—¶m™¸m™¸m™¸k—¶oœ¼m™¸k—¶j•µi”³j•µk—¶m™¸j•µj•µm™¸m™¸m™¸m™¸j•µj•µrŸÀrŸÀrŸÀrŸÀrŸÀt¡Âu£Äu£Ät¡¾rŸ¼qžºnš¶nš¶m™µnš¶nš¶u£Àt¡¾qžºnš¶j•±g’­dªc¨tœ¶ršµq™³ršµuž¸už¸ršµn•¯ršµršµtœ¶tœ¶tœ¶tœ¶ršµršµwš³u™±t—¯u™±xœµxœµu™±t—¯xœµxœµxœµxœµxœµxœµxœµxœµyŸµyŸµ{žµ{žµ{žµ{žµ~œµ~œµŸ¸ž¶ž¶œµœµž¶‚œ¶„ž¸|Ÿ¶{žµ{žµyœ³{žµ{žµ|Ÿ¶~¡¸yœ³yœ³yœ³yœ³xš±xš±w™¯w™¯xš³xš³w™±w™±xš³yœµ{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶wš³wš³wš³wš³wš³wš³wš³wš³u™±wš³xœµyž¶yž¶xœµwš³u™±{Ÿ¸{Ÿ¸{Ÿ¸yž¶wš³wš³u™±wš³wš³wš³xœµxœµxœµxœµwš³wš³wš³wš³wš³xœµxœµxœµxœµxœµyž¶xœµwš³u™±u™±wš³xœµyž¶xœµxœµxœµxœµxœµxœµxœµxœµwš³wš³wš³wš³wš³wš³wš³wš³yœµ|Ÿ¸|Ÿ¸{ž¶xš³yœµ~¡º‚¦Àyœµ~¡º~¡ºyœµxš³|Ÿ¸|Ÿ¸xš³‚Ÿ¸ž¶~š³~š³ž¶‚Ÿ¸‚¡º„£¼Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸|Ÿ¶|Ÿ¶~¡¸~¡¸|Ÿ¶{žµyœ³yœ³yœ³{žµ{žµ|Ÿ¶|Ÿ¶{žµ{žµyœ³{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶{ž¶~¡ºyœµxš³|Ÿ¸|Ÿ¸xš³yœµ~¡º{žµyœ³xš±yœ³|Ÿ¶~¡¸|Ÿ¶yœ³£º~¡¸~¡¸|Ÿ¶|Ÿ¶|Ÿ¶~¡¸~¡¸‡¦ÀŠªÄŒ¬Å‰¨Â„£¼Ÿ¸‚¡º…¥¾|š³~œµ~œµž¶Ÿ¸‚¡º„£¼…¥¾Š¡¸Š¡¸Œ£º¥¼¥¼¦¾‘¨À‘¨À”¬Ä’ªÂ¦¾Œ£º¦¾”¬Ä•­Å•­ÅŒ¥­…ŸŸ¡¼¶œ±ŸwŠqNZ?(0#,$
+&0'
+' !#
+
+/B9E[W4FFQgmn„•¨’ª¾™¯Í¥Â‰žºŠŸ¼‘¦Ä™¯Í‘¦Ä™ªºœ­¾š¬¼—¨¸š¬¼¡³Ä¡³Äš¬¼ž¯ÀŸ±Â¡³ÄŸ±Âœ­¾™ªº•¦¶•¦¶™¨µ¡±¾¦¶Ä¦¶Ä¦¸É¬¾Ï¬¾Ï¥¶Çœ³Äœ³Ä™±Å•­Â’ª¾‘¨¼‘¨¼‘¨¼¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å‰¦À‰¦ÀŒªÄ­Ç’­Å’­Å”¯Ç”¯Ç™±Âž¯Âž¯ÀŸ±ÂŸ±ÂŸ±Â¡±¾¡±¾¨¸ÅŸ¯¼Ÿ¬¶¦³¾ª¶Â¥±¼¦¯¶ª³ºª³¾¬µÀ¬µÀ­¶Â¯¸Ä¯¸Ä³¸Å³¸Å­³¼¶¼Å¼Â˶¼Å¶¸Àº¼Ä¾ÀǼ¾Å±¯ºµ³¾º¸Äº¸Äµ¶À±³¼±³ºµ¶¾¡¨ª³º¼•œšUZYdmg…‰œ¨œ„„8B:.70S^Xcoity[ga[gcYdag’±g’±i”³j•µm™¸nšºnšºoœ¼nšºm™¸k—¶j•µj•µm™¸nšºoœ¼nšºnšºoœ¼oœ¼oœ¼oœ¼nšºnšºoœ¼nšºm™¸k—¶m™¸nšºqž¾rŸÀt¡¾t¡¾rŸ¼qžºqžºrŸ¼rŸ¼t¡¾m™µm™µm™µm™µm™µk—³k—³k—³rš±q™¯q™¯rš±užµužµrš±q™¯rš±tœ³užµužµužµužµtœ³rš±xž³wœ±uš¯wœ±xž³yŸµwœ±uš¯yŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµ|Ÿ³|Ÿ³|Ÿ³|Ÿ³Ÿ³Ÿ³Ÿ³Ÿ³…£¸…£¸…Ÿ¶…Ÿ¶…Ÿ¶…Ÿ¶‡¡¸‡¡¸‚£¶¡µŸ³Ÿ³~ž±Ÿ³Ÿ³Ÿ³~ž±~ž±~ž±|œ¯|œ¯|œ¯{š­{š­|š³|š³{™±{™±|š³|š³~œµž¶|š³|š³|š³|š³|š³|š³|š³|š³xž³xž³xž³xž³xž³xž³xž³xž³xž³yŸµyŸµ{¡¶{¡¶yŸµyŸµxž³|£¸{¡¶{¡¶yŸµxž³xž³wœ±wœ±wœ±xž³yŸµyŸµyŸµyŸµxž³wœ±{¡¶{¡¶{¡¶yŸµyŸµyŸµyŸµyŸµ{¡¶{¡¶yŸµxž³xž³yŸµ{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶xž³xž³xž³xž³xž³xž³xž³xž³ž¶Ÿ¸‚¡ºŸ¸ž¶ž¶‚¡º‡¦À~œµ‚¡º‚¡ºž¶ž¶„£¼„£¼ž¶‰Ÿ¶„š±•¬‚™¯‡¡¸Œ¦¾Š¥¼…Ÿ¶‰¦¼‰¦¼‡¥º…£¸„¥¸‚£¶¡µ¡µ‚£¶‚£¶‚£¶‚£¶‚£¶¡µŸ³Ÿ³~ž±Ÿ³¡µ‚£¶‚£¶¡µŸ³~ž±Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸‡¦ÀŸ¸ž¶„£¼„£¼ž¶Ÿ¸‡¦À‚£¶¡µŸ³Ÿ³¡µ‚£¶Ÿ³~ž±‡¨¼‡¨¼„¥¸‚£¶¡µ¡µ¡µ¡µ…£¼‰¦ÀŒªÄŠ¨Â‡¥¾„¡º‚Ÿ¸‚Ÿ¸œµœµž¶„¡º‡¥¾‰¦ÀŠ¨ÂŒªÄ¦º¦º¦º‘¨¼’ª¾”¬À”¬À”¬À’ª¾š³Ç™±Å¥¸Š¡µ’ª¾•­Â‘¨¼—¯áŠ¡Ñš±Õ—¨¾Ššžoxr;?1'+(#!$4J8.%"1,Uocž—CUTr‰šµ¾¡ºËœ±Çš¯Åš¬Â—¨¾—¨¾œ­Äš¬¾—¨ºšªºž­¾œ¬¼šªºž­¾¦¶Ç¥µÅž­¾ž­¾¥µÅªºË¦¶Çœ¬¼—¦¶šªºž­¾ž­º¥µÂ¨¸Å¦¶Ä¥¶Çª¼Í¨ºË£µÅš±Â™¯À•­Â”¬À’ª¾¦º¥¸¥¸­Ç­Ç­Ç­Ç­Ç­Ç‘¬Ä‘¬Ä¥¸¦º’ª¾•­Â™¯Àš±Âš±Âœ³Ä£³À£³À¥µÂ¦¶Ä¨¸ÅªºÇ¬¸Ä­ºÅ­ºÅ¨µÀª³º±ºÂ³¼Ä¯¸À­µº­µº±¶À±¶À±¶À±¶À±¶À±¶À±¶À±¶À­³¼¶¼ÅºÀɶ¼Å³¸Â¸¾Ç¸¾ÇµºÄ¸¶Â¸¶Â¸ºÄº¼Å¼¼ËººÉ±¶À¬±º¯¶¼ž¥ªš¥¡x~{…{|‡|žŒ{Šym~oiykdugWfYDRF6B8JWM0:2oœ¼nšºm™¸k—¶k—¶k—¶m™¸m™¸nšºm™¸k—¶k—¶k—¶nšºqž¾rŸÀoœ¼oœ¼qž¾qž¾qž¾qž¾oœ¼oœ¼m™¸k—¶j•µi”³i”³k—¶nšºoœ¼rŸ¼rŸ¼rŸ¼rŸ¼rŸ¼t¡¾u£Àw¥Âm™µm™µnš¶oœ¸rŸ¼t¡¾u£Àu£Àrš±rš±rš±tœ³užµužµtœ³tœ³užµužµwŸ¶wŸ¶wŸ¶wŸ¶užµužµ{¡¶xž³wœ±wœ±yŸµ{¡¶yŸµxž³{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶{¡¶~¡µ~¡µ~¡µ~¡µ¡µ¡µ¡µ¡µ…£¸…£¸‰£º‰£º‰£º‰£º‡¡¸‡¡¸…¦º„¥¸‚£¶¡µŸ³Ÿ³Ÿ³¡µŸ³Ÿ³Ÿ³Ÿ³~ž±~ž±|œ¯|œ¯ž¶~œµ~œµ~œµ~œµ~œµž¶ž¶|š³|š³|š³|š³|š³|š³|š³|š³yŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµ{¡¶{¡¶yŸµyŸµyŸµxž³xž³xž³yŸµ{¡¶~¥º|£¸|£¸yŸµyŸµ{¡¶{¡¶{¡¶{¡¶yŸµyŸµ~¥º~¥º~¥º|£¸{¡¶{¡¶yŸµyŸµ¦¼¦¼¦¼¦¼¦¼¦¼¦¼¦¼~¥º~¥º~¥º~¥º~¥º~¥º~¥º~¥ºyŸµyŸµyŸµyŸµyŸµyŸµyŸµyŸµŸ¸Ÿ¸‚¡º‚¡º‚¡º‚¡º„£¼…¥¾Ÿ¸…¥¾…¥¾‚¡º‚¡º‡¦À‡¦À„£¼‰Ÿ¶‡žµ…œ³‰Ÿ¶Œ¦¾ªÂªÂŒ¦¾­Ä¬ÂŒªÀŠ¨¾‡¨¼„¥¸‚£¶‚£¶‚£¶„¥¸„¥¸„¥¸„¥¸‚£¶¡µŸ³¡µ‚£¶„¥¸‡¨¼‡¨¼„¥¸‚£¶¡µ„£¼„£¼„£¼„£¼„£¼„£¼„£¼„£¼ŠªÄ„£¼„£¼‡¦À‡¦À„£¼„£¼ŠªÄŠ¬À‰ª¾…¦º…¦º‡¨¼‡¨¼…¦º‚£¶‡¨¼…¦º„¥¸‚£¶‚£¶‚£¶‚£¶„¥¸~š³ž¶…£¼‰¦À‰¦À‡¥¾…£¼„¡º„¡º„¡º…£¼‡¥¾‰¦ÀŠ¨ÂŒªÄŒªÄ‘¨¼‘¨¼’ª¾’ª¾”¬À”¬À•­Â•­Â—¯Ä¡ºÏœµÉŒ£¶‰Ÿ³’ª¾‘¨¼„š­š³åŒ£Ó¥Çy‰œo~goj=A3'+
+  !.;%(#AYEŸž”Œ­ž{™’L_^x”£¾Çž¶Ç‘¥º”¨¾ª¼Ó¥¶Í£µË¥¶Í™ª¼ž¯Âž­¾¡±ÂŸ¯Àž­¾£³ÄªºËªºË£³Ä¦¶ÇªºË¬¼ÍªºË¥µÅ¡±Â¡±Â¥µÅ¡±¾¦¶Ä¦¶Ä¡±¾œ­¾Ÿ±Âœ­¾•¦¶”ªº’¨¸¦º‘¨¼‘¨¼‘¨¼¦ºŒ£¶­Ç­Ç­Ç­Ç‘¯É‘¯É’­Å’­Å•­Â—¯Ä™±ÅœµÉŸ¶ÇŸ¶ÇŸ¶ÇŸ¶Ç£³À¥µÂ¥µÂ¦¶Ä¨¸ÅªºÇ¬¸Ä¬¸Ä¯¼Ç¬¸Ä¯¸À³¼Äµ¾Å³¼Ä±¸¾­µºµºÄµºÄ³¸Â³¸Â±¶À±¶À¯µ¾¯µ¾¯µ¾¶¼Å¸¾ÇµºÄ³¸Â¸¾Ç¸¾Ç³¸Â¾¼Ç¾¼Ç¼¾Ç¾ÀÉÅÅÕÇÇ׸¾Çª¯¸‰”‰”Ÿª¦¬¶³{…{r|rx‡ww…u¡‘”„ŒŸ”„gxjdugquTbXoœ¼nšºm™¸m™¸k—¶k—¶m™¸m™¸nšºnšºm™¸k—¶m™¸oœ¼qž¾t¡Âoœ¼oœ¼oœ¼oœ¼oœ¼oœ¼oœ¼oœ¼qž¾oœ¼nšºnšºnšºqž¾rŸÀt¡Âqž¶oœµoœµoœµqž¶rŸ¸u£¼u£¼{ªÄ{ªÄy¨Âx¦Àw¥¾u£¼t¡ºrŸ¸wš³xœµyž¶{Ÿ¸yž¶yž¶xœµyž¶yž¶yž¶{Ÿ¸{Ÿ¸{Ÿ¸{Ÿ¸yž¶yž¶£º|Ÿ¶yœ³yœ³{žµ~¡¸|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶¡µ¡µ¡µ¡µ¡µ¡µ‚Ÿµ‚Ÿµ„¡¶„¡¶‡¡¸‰£º‰£º‡¡¸‰Ÿ¶‰Ÿ¶‡¨¼…¦º„¥¸‚£¶¡µ¡µ‚£¶‚£¶‚£¶‚£¶¡µ¡µŸ³Ÿ³Ÿ³Ÿ³‚¡ºŸ¸ž¶ž¶ž¶ž¶Ÿ¸Ÿ¸‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º{žµ{žµ{žµ{žµ{žµ{žµ{žµ{žµ{žµ{žµ{žµyœ³yœ³{žµ{žµ{žµ|Ÿ¶yœ³xš±{žµ£º¥¼£º~¡¸|Ÿ¶|Ÿ¶~¡¸~¡¸~¡¸~¡¸|Ÿ¶|Ÿ¶¥¼¥¼£º£º~¡¸~¡¸|Ÿ¶|Ÿ¶¥¼‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸Ÿ¸Ÿ¸Ÿ¸‚¡º„£¼„£¼„£¼‚¡º‚¡º‡¦À‰¨Â„£¼…¥¾ŠªÄŒ¬Å‡¦Àœ¶’¡¼”¨Â•ªÄ”¨Â”¨Â—¯Çš³Ë”¯Ç’­Å­Ä¬Â‰ª¾‡¨¼…¦º„¥¸‚£¶‚£¶„¥¸„¥¸„¥¸‚£¶¡µŸ³‚£¶„¥¸…¦º‡¨¼‡¨¼…¦º„¥¸‚£¶…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾ž¶ž¶‚¡º‚¡ºž¶ž¶…¥¾¯ÄŠ¬À‡¨¼‡¨¼‰ª¾‰ª¾‡¨¼„¥¸„¥¸‚£¶‚£¶‚£¶‚£¶„¥¸…¦º‡¨¼‚Ÿ¸…£¼‰¦ÀŒªÄ­Ç¬ÅŠ¨Â‡¥¾Š¨ÂŠ¨ÂŠ¨ÂŠ¨ÂŠ¨Â‰¦À‰¦À‰¦ÀŒª¼Œª¼Œª¼¬¾¬¾¬¾­À­À•µÇ™¸Ë’±Ä‰¦¸Š¨º’±Ä¬¾ž¯…ŸÉ‡¡Ë‘¬Çq„‘ZicJSF%+ 3<#,8!*&:*8RBTrdoš•d{w;LLTiix—Ÿ¶Å’¨¶•¦¶š¬¼¸ÉÛž­¾”Ÿ­¦³Âžªµ¯¼Ç¥±À¨µÄ¦³Â¥±À¨µÄ±¾Í¯¼Ë¨µÄ±¾Í¬¸Ç¨µÄ¨µÄª¶Å¬¸Ç¨µÄ£¯¾¡±¾¦¶Ä¥µÂž­º™ªºœ­¾™ªº’£³’¨¸‘¦¶¦º’ª¾—¯Ä™±Å•­Â’ª¾‘¬Ä‘¬Ä’­Å’­Å—¯Ä—¯Ä™±Å™±ÅžµÅžµÅ£µÅ¥¶Ç¦¶Ä¦¶Ä¥µÂ¥µÂ¨¸Å¨¸Å¬¸Ä¬¸Ä¬¸Ä¬¸Ä¯¸À¯¸Àµ¾Å³¼Ä³ºÀ³ºÀµ¼Â¶¾Ä¶¸¼±³¶¶¼Å¶¼ÅµºÄµºÄ³¸Â±¶À±¶À±¶À±¶Ä¶¼Éµ¾É±ºÅ±ºÅ¶À˵¾É­¶Â¸ºÂº¼Ä¸ºÄ¶¸Â¸¾Ë¼ÂϬ±¾—œ¨krxš£ª£­­¨³¬fti¡³Ÿš­•‘{t…KYTduoj{ufwt„—”|Œž³¯i”³j•µj•µm™¸nšºoœ¼qž¾qž¾qž¾oœ¼nšºm™¸nšºoœ¼qž¾rŸÀoœ¼oœ¼nšºnšºnšºnšºoœ¼oœ¼nšºnšºnšºoœ¼oœ¼qž¾qž¾qž¾oœµoœµoœµoœµoœµqž¶rŸ¸t¡ºx¦Ày¨Ây¨Ây¨Ây¨Â{ªÄ{ªÄ{ªÄ{Ÿ¸~£¼¥¾¥¾|¡ºyž¶yž¶{Ÿ¸{Ÿ¸{Ÿ¸|¡º~£¼~£¼|¡º{Ÿ¸{Ÿ¸‚¦¾~¡¸{žµyœ³|Ÿ¶~¡¸£º~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸‚£¶‚£¶‚£¶‚£¶‚£¶‚£¶„¡¶„¡¶‚Ÿµ„¡¶‡¡¸‰£º‰£º‡¡¸‰Ÿ¶‡žµ‡¨¼‡¨¼…¦º„¥¸„¥¸„¥¸…¦º…¦º„¥¸„¥¸‚£¶‚£¶‚£¶¡µ¡µ¡µ„£¼„£¼‚¡ºŸ¸Ÿ¸Ÿ¸Ÿ¸‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶|Ÿ¶{žµ{žµyœ³yœ³{žµ{žµ|Ÿ¶„¨À£º|Ÿ¶|Ÿ¶£º¥¼|Ÿ¶xš±~¡¸~¡¸£º¥¼¥¼£º~¡¸~¡¸£º£º£º£º£º~¡¸~¡¸~¡¸~¡¸~¡¸£º£º£º£º~¡¸~¡¸¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼£º£º£º£º£º£º£º£º‚¡ºŸ¸Ÿ¸‚¡º…¥¾‡¦À„£¼‚¡º‚¡º‰¨Â‰¨Â…¥¾‡¦ÀŒ¬Å­Ç‰¨Â‘Ÿº™¨Äœ±Ëœ±Ë—¬Å•ªÄ™±ÉŸ¸Ñ”¯Ç”¯Ç‘¯Å­ÄŠ¬À‰ª¾‡¨¼…¦º„¥¸„¥¸„¥¸…¦º„¥¸‚£¶¡µ¡µ…¦º…¦º…¦º…¦º…¦º…¦º…¦º…¦º…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾‰¨Â„£¼‚¡º…¥¾…¥¾‚¡º„£¼‰¨Â‰ª¾…¦º„¥¸„¥¸‡¨¼‡¨¼…¦º‚£¶‚£¶‚£¶‚£¶‚£¶„¥¸…¦º‰ª¾Š¬ÀŠ¨Â‰¦À‰¦ÀŠ¨ÂŠ¨Â‰¦À„¡ºž¶¬Å¬ÅŒªÄŒªÄŠ¨Â‰¦À‰¦À‡¥¾Œª¼Œª¼Œª¼Œª¼Œª¼¬¾¬¾¬¾’±Ä‘¯Â‘¯Â­À‘¯Â‘¯Â­À¬¾Œ¦ÑŠ¥ÏªÅi{‡LYT>F;&,%4=#;D)(+@/3L=@ZN!1*4DA*85#11rŠŠ’¬µ¯ÇמµÄ¨ºË£µÅ³ÄÕy‡•oy…œ¨¶žªµºÇÓ¨µÄ¬¸Çª¶Å¦³Âª¶Å±¾Í¯¼Ë¨µÄ¯¼Ë¦³ÂŸ¬º¡­¼¦³Âª¶Å¦³ÂŸ¬ºŸ¯¼¥µÂ¥µÂŸ¯¼ž¯À£µÅ£µÅž¯À™¯À—­¾•­Âš³Ç¡ºÏ£¼Ñž¶Ë™±Å‘¬Ä’­Å’­Å”¯Ç™±Å™±Åš³Çš³Çš±Âœ³Ä¡³Ä£µÅ¥µÂ¥µÂ¥µÂ¥µÂ¯ÀͯÀͱ¾É±¾É±¾É±¾Éµ¾Åµ¾Å¶ÀǸÂɵ¼Â¯¶¼±¸¾¶¾Ä¸º¾±³¶¸¾Ç¶¼Å¶¼ÅµºÄµºÄ³¸Â³¸Â³¸Â³¸Å¶¼É³¼Ç¯¸Ä±ºÅ¶À˳¼Çª³¾º¼ÄÂÄ˾Àɶ¸ÂµºÇµºÇ¡¦³‰™‘™Ÿª³º•ŸŸ¦±ªw…y™ª—qmWdSN]XN]Xaqk>KFANL£ŸxŠ‡•ª¦f‘¯g’±j•µm™¸oœ¼oœ¼nšºnšºt¡ÂrŸÀoœ¼nšºnšºoœ¼qž¾rŸÀqž¾qž¾nšºnšºnšºnšºqž¾qž¾i”³k—¶nšºoœ¼qž¾oœ¼m™¸k—¶qž¶qž¶qž¶oœµoœµqž¶rŸ¸t¡ºnš³oœµrŸ¸u£¼y¨Â|¬Å¯É±Ë¥¾„ªÄ…¬Å„ªÄ~£¼{Ÿ¸{Ÿ¸|¡º|¡º|¡º~£¼~£¼~£¼~£¼|¡º|¡º„¨À£º{žµ{žµ|Ÿ¶£º¥¼¥¼£º£º£º£º£º£º£º£º„¥¸„¥¸„¥¸„¥¸„¥¸„¥¸…£¸…£¸„žµ…Ÿ¶‰£ºŠ¥¼¥¼Œ£º‰Ÿ¶‡žµ‡¨¼…¦º…¦º…¦º…¦º‡¨¼‰ª¾‰ª¾…¦º…¦º„¥¸„¥¸‚£¶‚£¶‚£¶‚£¶‡¦À…¥¾„£¼‚¡º‚¡º‚¡º‚¡º‚¡ºŸ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸~¡¸£º~¡¸|Ÿ¶{žµ{žµ|Ÿ¶~¡¸£º‡¬Ä¥¼{žµ|Ÿ¶¥¼‚¦¾~¡¸xš±£º£º¥¼¥¼¥¼¥¼£º£º~¡¸~¡¸~¡¸~¡¸~¡¸£º£º£º|Ÿ¶~¡¸£º¥¼¥¼£º~¡¸|Ÿ¶¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼…¥¾„£¼‚¡º…¥¾ŠªÄŒ¬Å‡¦À‚¡º‚¡º‰¨Â‰¨Â…¥¾‡¦À­Ç­ÇŠªÄ™¥Âœ¨Åž­ÉŸ¯Ëœ±Ëš¯É™±É™±É”¯Ç’­Å‘¯Å­Ä¬ÂŒªÀ‰ª¾‡¨¼‡¨¼‡¨¼‡¨¼‡¨¼‡¨¼…¦º„¥¸„¥¸‰ª¾‡¨¼„¥¸‚£¶‚£¶„¥¸‡¨¼‰ª¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾­Ç‰¨Â‡¦ÀŒ¬ÅŒ¬Å‡¦À‰¨Â­Ç‡¨¼„¥¸‚£¶„¥¸‡¨¼‰ª¾‡¨¼…¦º‰ª¾‡¨¼‡¨¼‡¨¼‡¨¼‡¨¼‰ª¾Š¬ÀŒªÄ‰¦À…£¼…£¼‡¥¾‡¥¾„¡ºž¶ŒªÄŒªÄŒªÄŠ¨ÂŠ¨ÂŠ¨ÂŠ¨ÂŠ¨ÂŒ­ºŒ­ºŒ­ºŒ­ºŒ­ºŒ­ºŒ­ºŒ­ºŒ­ºŠ¬¸‘³À•¸Å‰ª¶y™¥~žª‘³À’¸µyžkŠtG]C3D%/=&0)40=)5 '$72%  1+'43#0/FX[Œ£¥•¬¶¥¶Ç•¦¶¯ÀÑ¡±Â£¯¾ZcnYcgŸ­³¥­³¶ÀŪ¶Å¬¸Çª¶Å¥±À¨µÄ­ºÉª¶Å£¯¾ª¶Å¦³Â£¯¾£¯¾£¯¾¥±À¥±À¥±À¡±¾¦¶Ä¦¶Ä¡±¾¡³Ä¦¸É¨ºË¥¶ÇžµÅš±Â—¯ÄœµÉ£¼Ñ£¼Ñš³Ç’ª¾’­Å’­Å•­Â—¯Äš±Âœ³Ä¡³Ä¡³Äœ¬¸ž­º£¯º¦³¾ª¶Â¬¸Ä±ºÂ±ºÂ±¾É±¾É³À˳À˸ÂɺÄ˺Ä˼Å;ÅËÀÇͶ¾Ä­µº±³¶¼¾Â¼¾Âµ¶ºº¼Äº¼Äº¼Äº¼Ä¶¼ÅµºÄµºÄµºÄµºÇ¶¼É³¼Ç¯¸Ä±ºÅ¶À˳¼Ç¨±¼µ¶¾ÄÅÍÅÇϼ¼Ë¶¼Í¸¾Ï¦¬¼”£¨±¼•ž£|Š‰rxqrR_N:E53>/-7;ix~‰š¡{Œ’|—¥¸Äixjy‚i”³k—¶m™¸oœ¼nšºk—¶i”³g’±u£Ät¡Âqž¾oœ¼nšºoœ¼oœ¼qž¾t¡ÂrŸÀoœ¼nšºnšºoœ¼rŸÀt¡Âm™¸oœ¼t¡Âw¥Åx¦Çu£ÄrŸÀoœ¼t¡ºrŸ¸rŸ¸qž¶qž¶rŸ¸rŸ¸t¡ºt¡ºt¡ºt¡ºt¡ºt¡ºt¡ºt¡ºt¡º„ªÄ‡­Ç‰¯É…¬Å¥¾{Ÿ¸{Ÿ¸|¡º|¡º~£¼~£¼¥¾¥¾~£¼~£¼|¡º…ªÂ¥¼|Ÿ¶{žµ~¡¸¥¼¥¼¥¼£º£º£º£º£º£º£º£º„¥¸„¥¸„¥¸„¥¸„¥¸„¥¸…£¸…£¸…Ÿ¶‡¡¸Š¥¼Œ¦¾¦¾¥¼Š¡¸‰Ÿ¶…¦º…¦º…¦º…¦º‡¨¼‰ª¾Š¬ÀŒ­Â…¦º…¦º…¦º„¥¸„¥¸„¥¸‚£¶‚£¶‡¦À‡¦À…¥¾„£¼‚¡º‚¡º‚¡º‚¡º‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼‚¦¾¥¼~¡¸~¡¸~¡¸~¡¸¥¼‚¦¾¥¼|Ÿ¶xš±|Ÿ¶„¨À‡¬Ä‚¦¾~¡¸£º¥¼¥¼‚¦¾‚¦¾¥¼¥¼£º{žµ|Ÿ¶|Ÿ¶~¡¸~¡¸£º£º¥¼~¡¸£º‚¦¾„¨À„¨À‚¦¾£º~¡¸¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼¥¼‰¨Â…¥¾…¥¾‰¨Â­Ç¯ÉŠªÄ…¥¾‚¡º‡¦À‰¨Â…¥¾‡¦À­Ç¯ÉŠªÄŸ¬Éœ¨Å™¨Äœ¬ÇŸµÏŸµÏ™±É’ªÂ’­Å’­Å­Ä¬Â¬ÂŒªÀ‰ª¾‰ª¾‰ª¾Š¬ÀŠ¬ÀŠ¬ÀŠ¬À‰ª¾‡¨¼…¦ºŠ¬À‡¨¼„¥¸¡µ¡µ„¥¸‡¨¼Š¬À…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾‰¨Â„£¼‚¡º‡¦À‡¦À‚¡º„£¼‰¨Â‰ª¾…¦º…¦º‡¨¼Š¬ÀŒ­ÂŒ­ÂŠ¬À±Å¯ÄŒ­ÂŠ¬À‰ª¾‰ª¾‰ª¾‰ª¾­ÇŒªÄ‡¥¾Š¨Â­Ç’±Ë’±Ë­Ç‰¦À‰¦À‰¦ÀŠ¨ÂŠ¨ÂŒªÄŒªÄŒªÄ¯¼¯¼¯¼¯¼¯¼¯¼¯¼¯¼‰ª¶‰ª¶•¸Åš¾Ë~žªb~‰j‡’Š¬¸|ŸœYxjE^L,=),% 0=6D#3 !3+ 0# %.B;#10!.-uŒ‘¥¦•¬¶¬¾Ï­ÀÑ¡±Â’¡±’ž¬LT^T^bª¸¾¦¯µª³¸ª¶Å¬¸Ç¨µÄ£¯¾¥±Àª¶Å¦³Âžª¸¨µÄ¬¸Ç­ºÉ¨µÄ£¯¾¡­¼¨µÄ¯¼Ë¦¶ÄªºÇ¨¸Å¡±¾ž¯À£µÅ£µÅŸ±ÂŸ¶Çš±Â•­Â™±Åž¶ËœµÉ’ª¾‰Ÿ³’­Å’­Å—¯Ä™±Åœ³Äœ³Ä¡³Ä£µÅšª¶ž­º¥±¼¬¸Ä±¾ÉµÂͼÅͼÅͬ¸Ä¬¸Ä¯¼Ç±¾É¸ÂɺÄ˾ÇϾÇÏÄËÑÄËѺÂǬ³¸±³¶¾ÀÄÀŸº¾º¼Äº¼Äº¼Äº¼Ä¶¼Å¶¼Å¶¼Å¶¼ÅµºÇ¶¼É±ºÅ­¶Â±ºÅ¶À˱ºÅ¦¯º¥¦­¶¸ÀÀÂɸ¸Ç¶¼ÍºÀÑ­³Ä—œ¬£¬¶ª³¸”£¡=FAWcXIUE]kWQ^KN[ar‚‰n~„µÉÑž±¼GT[%.3R_goœ¸oœ¸oœ¸oœ¸qžºqžºrŸ¼t¡¾y¨Åw¥Âqžºm™µk—³m™µoœ¸qžºuŸ¾o™¶o™¶uŸ¾uŸ¾o™¶o™¶uŸ¾rœºtž¼tž¼uŸ¾uŸ¾tž¼tž¼rœºw£¸u¡¶rž³oš¯oš¯rž³u¡¶w£¸u¡¶u¡¶u¡¶w£¸w£¸x¥ºx¥ºx¥º¥¼u—­…ªÂ|Ÿ¶™ÀÙ…ªÂ³Ë‚¦¾‡¬Ä‡¬Ä…ªÂ„¨À‚¦¾‚¦¾¥¼£ºž¶…¥¾‡¦À‚¡º‚¡º‡¦À…¥¾Ÿ¸…¥¾„£¼Ÿ¸Ÿ¸„£¼„£¼Ÿ¸ž¶‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‰¦¼‡¥º‡¥º‡¥º‡¥º‰¦¼Š¨¾ŒªÀ~¡º£¼‚¦À„¨Â„¨Â‚¦À£¼~¡º¥¾¥¾‚¦À„¨Â…ªÄ…ªÄ…ªÄ…ªÄ„¡¶„¡¶„¡¶‡¥º‰¦¼‰¦¼„¡¶ž³‰¦¼‰¦¼…£¸„¡¶„¡¶„¡¶„¡¶„¡¶ž¶Ÿ¸Ÿ¸‚¡º‚¡º„£¼„£¼„£¼ž¶ž¶ž¶ž¶ž¶ž¶ž¶ž¶Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸Ÿ¸…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾¨¾¦¼~¥º|£¸|£¸|£¸|£¸|£¸„¬Â¨¾¦¼|£¸|£¸~¥º¦¼¦¼…¥¾„£¼„£¼‚¡º‚¡º„£¼„£¼…¥¾­Ç‚¡ºž¶‡¦ÀŠªÄ…¥¾Ÿ¸„£¼‰ª¾‰ª¾Š¨¾ŒªÀŒªÀŒªÀªÂªÂ¨ÀŒ¦¾¦¾¦¾‘¨À”¬Ä—¯Çž­Éž¬ÄŸ­ÅŸ­ÅŸ­ÅŸ­Åž¬ÄœªÂš¨À•£ºš¨Àž¬ÄœªÂ—¥¼”¡¸•£º™¦¾Š¯É…ªÄ¥¾~¡º~¡º¥¾…ªÄŠ¯É…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å…ªÄ…ªÄ…ªÄ‡¬Å‡¬Å‰­Ç‰­Ç‰­Ç‰¥ÂŒ¨ÅŒ¨Å…¡¾„Ÿ¼‡£À…¡¾œ¸Š¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦Ä‰­Ç‰­Ç‰­Ç‰­Ç‰­Ç‰­Ç‰­Ç‰­Ç|Ÿ¸‚¦À‰­Ç‰­Ç…ªÄ„¨Â…ªÄ‰­Ç„¨À…ªÂŒ¬Å­Ç¯É”¯Ë”¯Ç™­Ç¥µ¥¶É™¬¶—£±’ž¨[dmKQUt||jrdaiW~Œr~ŒrCQ;.9$-;"!,1B%!.&1D$ (;1F'7L0gxd/:1#,#gwk­Â¶ª¼º¨º¼—¨ª£µ¶r‚MYZXdfo~|—¨¦¶ËÄ„•ª¯À¥ªº£ªº¨¯Àª±Â¥¬¼¡­¼¦³Â¦¶ÄŸ¯¼š­¸ž±¼š±¼™¯ºœ³¾¥¼Ç­µÉ­µÉ­µÉ­µÉª¶Éª¶É¨¸É¨¸É—¨¸—¨¸—­¼™¯¾™³ÀšµÂ—µÂ—µÂ”¯Ç’­Å’­Å‘¬Ä”¬À”¬À—­¾—­¾¡³Äž¯À¡±¾ªºÇ¯¼Ç­ºÅ¯¼Ç¶ÄϾÀɼ¾Ç¸ºÄ¶¸Â¶¸Â¸ºÄ¼¾Ç¾Àɵ¶À¼¾ÇÄÅÏÂÄͼ¾Çµ¶Àµ¶À¶¸Â³¼Çµ¾Éµ¾É¶À˶À˸Â͸ÂͺÄϳ¼Ç³¼Ç³¼Ç³¼Ç³¼Ç³¼Ç³¼Ç³¼Ç¬³¸¬³¸­µº³ºÀ³¼Â­¶¼¡ª¯—Ÿ¥…’•Ÿ­±¦¸ºboq_mnYfgYfg8BCq‰‰Uio.<A‚™¨¡¸É~‘¨:FYu‡¡k—³m™µoœ¸rŸ¼rŸ¼qžºoœ¸nš¶u£Àt¡¾qžºoœ¸oœ¸qžºrŸ¼t¡¾uŸ¾o™¶o™¶uŸ¾uŸ¾o™¶o™¶uŸ¾rœºtž¼uŸ¾uŸ¾uŸ¾uŸ¾tž¼rœºx¥ºw£¸u¡¶tŸµtŸµu¡¶w£¸x¥ºw£¸w£¸u¡¶u¡¶w£¸x¥ºx¥ºy¦¼~¡¸{žµ‚¦¾~¡¸…ªÂ|Ÿ¶„¨À‚¦¾…ªÂ…ªÂ…ªÂ…ªÂ‡¬Ä‡¬Ä‡¬Ä‡¬Ä|š³Ÿ¸‚¡º~œµ~œµŸ¸ž¶{™±‡¦À…¥¾‚¡º‚¡º…¥¾…¥¾‚¡ºŸ¸‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‡¥º‰¦¼‰¦¼‡¥º‡¥º‰¦¼‰¦¼Š¨¾ŒªÀ~¡º£¼‚¦À„¨Â„¨Â‚¦À£¼~¡º¥¾‚¦À„¨Â…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ‡¥º…£¸…£¸‡¥º‰¦¼‰¦¼‡¥º„¡¶‰¦¼‡¥º…£¸…£¸„¡¶…£¸…£¸…£¸Ÿ¸Ÿ¸‚¡º‚¡º‚¡º„£¼„£¼„£¼‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾‚ªÀ¨¾¦¼~¥º~¥º~¥º~¥º~¥º‚ªÀ‚ªÀ¨¾¦¼¦¼¦¼¦¼¦¼…¥¾…¥¾„£¼‚¡º‚¡º„£¼…¥¾…¥¾ŠªÄŸ¸ž¶‡¦ÀŒ¬Å‰¨Â…¥¾‰¨Â‰ª¾Š¬ÀŒªÀŒªÀ¬Â¬ÂªÂ‘¬ÄªÂªÂ‘¨À‘¨À’ªÂ”¬Ä—¯Çž­Éž¬Äž¬ÄŸ­ÅŸ­Åž¬Äž¬ÄœªÂš¨À™¦¾œªÂŸ­Åž¬Äš¨À—¥¼™¦¾š¨À…ªÄ…ªÄ„¨Â‚¦À‚¦À„¨Â…ªÄ…ªÄ‡¬Å‡¬Å…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ…ªÄ‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å…ªÄ…ªÄ‡¬Å‡¬Å‡¬Å‰­Ç‰­Ç‰­ÇŠ¦Ä¬ÉªÇ‰¥Â‡£ÀŠ¦Ä‰¥Â„Ÿ¼Š¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦ÄŠ¦Ä‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‚¦À‡¬ÅŒ±ËŠ¯É‡¬Å„¨Â„¨Â‡¬Å‡¬Ä‰­Å­Ç¯É¯É’­É’­Å•ªÄ”¬¼£µÇš­¸š¦µ‘œ¦bktLRW[ccGNC,1&EO=„’x‚•wj{ZYmIEW7'6.>");6K)/(;.B$F^>Q_N<I>-8-[j_„•ŒŸ±¯ž¯±~^kmBMNALM‘¥¶µ•¦¥¦º³¬À¸¬±Â¦¬¼¥¬¼¨¯À¨¯À£ªºŸ¬º¥±À¥µÂž­ºš­¸Ÿ³¾œ³¾™¯ºœ³¾£ºÅ¬³Ç¬³Ç¬³Ç¬³Ç¨µÇ¨µÇ¦¶Ç¦¶ÇŸ±ÂŸ±ÂžµÄžµÄœ¶Äœ¶Ä—µÂ•³À’­Å’­Å’­Å’­Å—¯Ä™±Åœ³ÄžµÅ­ÀѨºËªºÇ±ÂϵÂͯ¼Ç¯¼Ç¶Äϼ¾Ç¼¾Ç¼¾Ç¾ÀɾÀɼ¾Ç¼¾Ç¼¾Çµ¶Àº¼Å¾ÀɾÀɼ¾Çº¼Åº¼Åº¼Åµ¾Éµ¾Éµ¾É¶À˶À˶À˶À˶À˳¼Ç³¼Ç³¼Ç±ºÅ¯¸Ä¯¸Ä­¶Â­¶Âµ¼Âµ¼Âµ¼Â¸ÀŸÂǵ¾Äª³¸¡ª¯£±µœŸt‚„<FG4>?+455?@/89ii~…cxM^j‡œ¬u‡žxŠ¥~‘¬i”¯k—³oœ¸rŸ¼t¡¾qžºnš¶k—³qžºqžºqžºrŸ¼rŸ¼t¡¾t¡¾t¡¾uŸ¾rœºrœºuŸ¾uŸ¾rœºrœºuŸ¾tž¼tž¼uŸ¾w¡Àw¡ÀuŸ¾tž¼tž¼x¥ºx¥ºx¥ºx¥ºx¥ºx¥ºx¥ºx¥ºx¥ºx¥ºw£¸u¡¶u¡¶x¥ºy¦¼{¨¾|Ÿ¶„¨À¥¼„¨Àu—­|Ÿ¶|Ÿ¶‡¬Ä‚¦¾„¨À…ªÂ‰­ÅŠ¯ÇŒ±ÉµÍµÍž¶„£¼„£¼ž¶ž¶‚¡ºŸ¸{™±‰¨Â‡¦À„£¼„£¼‡¦À‡¦À„£¼‚¡º‡¥º‡¥º‡¥º‡¥º‡¥º‰¦¼‰¦¼‰¦¼‰¦¼‰¦¼‡¥º‡¥º‰¦¼Š¨¾ŒªÀŒªÀ‚¡º„£¼‡¦À‰¨Â‰¨Â‡¦À„£¼‚¡º…¥¾…¥¾‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‡¦ÀŒªÀ‰¦¼‡¥º‡¥º‰¦¼Š¨¾Š¨¾‰¦¼‡¥º‡¥º…£¸…£¸…£¸‡¥º‰¦¼‰¦¼‚¡º‚¡º‚¡º„£¼„£¼„£¼…¥¾…¥¾‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾„¬Â‚ªÀ¨¾¨¾¦¼¦¼¨¾¨¾‚ªÀ‚ªÀ„¬Â„¬Â‚ªÀ‚ªÀ¨¾¦¼‡¦À…¥¾„£¼„£¼„£¼„£¼…¥¾‡¦À‡¦À‚¡ºŸ¸‰¨Â­ÇŒ¬ÅŒ¬Å­ÇŠ¬ÀŒ­Â¬Â¬Â­Ä­Ä‘¬Ä’­Å’­Å’­Å”¬Ä’ªÂ”¬Ä”¬Ä—¬Å™­Ç™­Ä™­Äš¯Åš¯Å™­Ä—¬Â•ªÀ•ªÀ•ªÀ™­Äœ±Çš¯Å—¬Â•ªÀ•ªÀ—¬Â…¥¾‡¦À‰¨ÂŠªÄŠªÄ‰¨Â‡¦À…¥¾Œ¬ÅŒ¬ÅŠªÄŠªÄ‰¨Â‰¨Â‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å¬Å’±Ë‘¯ÉŠ¨ÂŠ¨Â¬ÅŒªÄ‡¥¾ŒªÄŒªÄŒªÄŒªÄŒªÄŒªÄŒªÄŒªÄ‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŒ¬Å¯É‘±Ë¯ÉŒ¬Å‰¨Â‰¨Â‰¨Â‰­ÂŠ¯ÄŒ±ÉŒ±ÉŒ±É‘¯É­Ç”ªÇ•³Åš¯Åœ³ÄŸ­ÂŒš¦coy>GM-67ES9()>M,J]5FY0>Q&/@) );'8"2 0 + / 4L!
+ #/’¬|¼×¨”ª‰YiWESGAMFCNMTab¦¶ÀÉÛ唣¬”£¬³ÄͨµÇ£¯Â¡­À¥±Ä£³Äœ¬¼œ¬¼Ÿ¯Àž¯Àš¬¼™¯¾Ÿ¶Åž¸Å™³À™³Àž¸Å¦³Å¦³Å¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¦¸É¦¸É¦¸É¥¶Ç¡¸ÇžµÄœ³Âš±À•­Â•­Â™¯Àš±ÂžµÅ¡¸É¨ºËª¼Í¸É×±ÂϳÀ˶ÄϸÂɱºÂ±ºÂ¶Àdz¸Â¶¼ÅºÀɼÂ˼Â˺Àɶ¼Å³¸ÂµºÄµºÄ³¸Â¶¼ÅºÀɼÂ˼Â˺ÀɶÀ˶À˶À˵¾Éµ¾Éµ¾Éµ¾Éµ¾Éµ¾É³¼Ç±ºÅ¯¸Ä­¶Â¬µÀª³¾ª³¾¸ÂɶÀǶÀǶÀǸÂɵ¾Å¬ºÀ¦µº’mx|gux]jmftw]jmq„’•š•o‡‚š™WjnŒ£¨xŒ™¥¼Í™¯Àk—³nš¶oœ¸rŸ¼rŸ¼qžºoœ¸nš¶oœ¸qžºrŸ¼t¡¾t¡¾rŸ¼qžºoœ¸uŸ¾tž¼tž¼uŸ¾uŸ¾tž¼tž¼uŸ¾uŸ¾uŸ¾w¡Àw¡Àw¡Àw¡ÀuŸ¾uŸ¾w£¸x¥ºy¦¼y¦¼y¦¼y¦¼x¥ºw£¸{¨¾y¦¼w£¸u¡¶w£¸x¥º{¨¾~¬Â|Ÿ¶Š¯Ç~¡¸Œ±Éu—­‰­Å~¡¸…ªÂ‚¦¾„¨À…ªÂ‡¬ÄŠ¯ÇŒ±É³ËµÍ‰¨Â­Ç­Ç‰¨Â‡¦ÀŠªÄ‰¨Â‚¡º‰¨Â‡¦À„£¼„£¼‡¦À‡¦À„£¼‚¡º‡¥º‡¥º‡¥º‰¦¼‰¦¼‰¦¼‰¦¼Š¨¾Š¨¾‰¦¼‰¦¼‰¦¼‰¦¼Š¨¾ŒªÀ¬Â„£¼…¥¾‡¦À‰¨Â‰¨Â‡¦À…¥¾„£¼‡¦À‡¦À‰¨ÂŠªÄŠªÄ‰¨Â‰¨Â‡¦À‘¯ÅŒªÀ‰¦¼‡¥ºŠ¨¾ŒªÀ¬ÂŒªÀ‡¥º‡¥º…£¸…£¸‡¥º‰¦¼Š¨¾ŒªÀ„£¼„£¼„£¼…¥¾…¥¾…¥¾…¥¾…¥¾‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‚¡º‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À…­Ä„¬Â„¬Â‚ªÀ‚ªÀ‚ªÀ„¬Â„¬Â‚ªÀ„¬Â…­Ä‡¯Å…­Ä„¬Â¨¾¦¼‡¦À‡¦À…¥¾…¥¾…¥¾…¥¾‡¦À‡¦À‰¨Â…¥¾‡¦ÀŠªÄŒ¬ÅŒ¬Å­Ç­ÇŒ­ÂŒ­Â­Ä­Ä­Ä‘¯Å’­Å’­Å”¯Ç”¯Ç•­Å•­Å•­Å•­Å—¬Å—¬Å—¬Â™­Ä™­Ä™­Ä™­Ä—¬Â•ªÀ”¨¾—¬Â—¬Â™­Ä™­Ä—¬Â•ªÀ”¨¾”¨¾‡¦À‰¨ÂŠªÄŒ¬ÅŒ¬ÅŠªÄ‰¨Â‡¦À­ÇŒ¬ÅŒ¬ÅŠªÄ‰¨Â‰¨Â‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬Å­Ç­Ç¬Å’±Ë‘¯ÉŒªÄŠ¨Â­Ç¬Å‰¦À¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬ÅŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄ¯É‘±Ë‘±Ë‘±Ë¯É­ÇŒ¬Å­Ç‡¬À‰­ÂŠ¯ÇŒ±É³Ë’±Ë’±Ë—­Ë•³Å•ªÀŸ¶Ç¨¶Ë‘Ÿ¬kx‚<EK"#ES9/;##-&#$1.>&5%6&7'8( !1 )
+ 2#7%3)*wc•oIXA''LYRy‰‡‡—™¦¶À¾ÏÙŸ¯¸šª³£³¼¨µÇ£¯Â¡­À¥±Ä¡±Âšªº™¨¸ž­¾š¬¼™ªº™¯¾¡¸ÇŸºÇ™³À—±¾šµÂ£¯Â£¯Â¡±Â¡±Â¡±Â¡±Â¡±Â¡±Â£µÅ£µÅ¥¶Ç¥¶ÇŸ¶ÅžµÄœ³Âš±ÀœµÉœµÉžµÅŸ¶Ç¡¸É¥¼Íª¼Í¬¾Ï¶ÇÕ¯Àͱ¾ÉµÂͶÀǯ¸À­¶¾³¼Ä³¸ÂµºÄ¶¼Å¸¾Ç¸¾Ç¶¼ÅµºÄ³¸Â¼Â˵ºÄ±¶À³¸Â¸¾Ç¾ÄͼÂ˶¼Å¶À˶À˵¾Éµ¾É³¼Ç³¼Ç±ºÅ±ºÅ³¼Ç³¼Ç±ºÅ±ºÅ¯¸Ä­¶Â­¶Â­¶Âµ¾Åµ¾Å³¼Ä±ºÂ±ºÂ¯¸Àª¸¾¨¶¼{‡Œt„~‘ž¡—¨¬‡—š‡™œ‘£¦Š¥Ÿk‚~UjiWjnTfjyš•¬¼•¬¼t¡ºrŸ¸qž¶oœµoœµrŸ¸t¡ºw¥¾qž¶qž¶rŸ¸t¡ºrŸ¸oœµm™±j•­wŸºx¡¼x¡¼wŸºwŸºx¡¼x¡¼wŸºx¡¼x¡¼y£¾y£¾y£¾y£¾x¡¼x¡¼x¡¸x¡¸y£º{¥¼{¥¼y£ºx¡¸x¡¸|¦¾{¥¼y£ºy£ºy£º{¥¼~¨ÀªÂ{žµ‡¬Ä{žµŠ¯Ç|Ÿ¶•¼Õ‚¦¾£º„¨À„¨À„¨À…ªÂ‡¬Ä‡¬Ä‡¬Ä‰­Å­Ç”µÏ”µÏ¯É­Ç’³Í¯ÉŠªÄ‰¨Â…¥¾„£¼„£¼…¥¾‡¦À„£¼‚¡º‡¥º‡¥º‡¥º‰¦¼‰¦¼Š¨¾Š¨¾ŒªÀŠ¨¾Š¨¾‰¦¼‰¦¼Š¨¾Š¨¾ŒªÀ¬Â‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‡¦À‡¦À‰¨Â‰¨ÂŠªÄŠªÄŠªÄ‰¨Â‰¨Â‡¦À‘¯Å¬Â‰¦¼‰¦¼ŒªÀ¬Â­Ä¬Â‰¦¼‡¥º‡¥º‡¥º‰¦¼Š¨¾ŒªÀ¬Â‡¦À‡¦À‡¦À…¥¾…¥¾…¥¾…¥¾…¥¾‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¬Ä‡¬Ä…ªÂ…ªÂ…ªÂ…ªÂ‡¬Ä‰­Å…ªÂ‡¬Ä‰­Å‰­Å‰­Å…ªÂ„¨À‚¦¾‰¨Â‰¨Â‡¦À‡¦À‡¦À‡¦À‰¨Â‰¨ÂŠªÄŒ¬ÅŒ¬ÅŠªÄŠªÄŠªÄŒ¬ÅŠªÄŒ­ÂŒ­Â­Ä­Ä­Ä‘¯Å’­Å’­Å’­Å’­Å—¯Ç—¯Ç•­Å•­Å—¬Å•ªÄ’¯Â’¯Â”±Ä”±Ä’¯Â’¯Â‘­À¬¾‘­À‘­À‘­À‘­À‘­À‘­Àª¼Œ¨º­ÇŒ¬ÅŠªÄ‰¨Â‰¨ÂŠªÄŒ¬Å­Ç­ÇŒ¬ÅŒ¬ÅŠªÄŠªÄ‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬Å­Ç­Ç­ÇŒªÄ‘¯É‘¯ÉŒªÄŠ¨Â­Ç­ÇŠ¨Â¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç¯É¯É­Ç¯É‘±Ë’³Í’³Í’³Í„­º…¯¼Š¯ÄŒ±Å’³Í”µÏ•³Ñ•³Ñ”¯ËªÅ™±ÉŸ¸É™¯º…š¥]ot5CFF]9@W01F#-!%- +&9 ,-A 1+&*= * (+($ +fxj¥º¶£¶ºŸ³¾±ÄÕ¯ÂÙ¯ÂÙ£µË¥¶ÍŸ±Çž¯Å¡³Éœ±Ç•ªÀ”¨¾™­Ä”¬À’ª¾—¯ÄŸ¸ÍœºÍ•³Å’¯Â”±Äš±Àš±Àš±Àš±Àž¯Àž¯Àž¯Àž¯Àœ¬¼ž­¾Ÿ¯À¡±Â£³Ä¥µÅ¦³Å¦³Å¬¼É¬¼ÉªºÇ¨¸Å¨¸ÅªºÇ¬¸Ä­ºÅ¸Âɳ¼Ä³¼Ä¸ÂɺÂdzºÀ³ºÀ¸ÀŸÂͶÀ˵¾É³¼Ç³¼Çµ¾É¶À˸ÂͼÅѶÀ˯¸Ä±ºÅµ¾É¶À˵¾É¯¸Ä±¾Í±¾Í¯¼Ë¯¼Ë­ºÉ­ºÉ¬¸Ç¬¸Ç¬¸Ç¬¸Ç­ºÉ­ºÉ¯¼Ë±¾Í±¾Í±¾Í±¸Í±¸Í­ºÍ¬¸Ë¨µÇ¨µÇ¦¶Ç¦¶Çšªº™¨¸Œœ¬„”£t‚‘jx…ZkwTdo{™t‘‡Nc[EXW*87x”Ÿ¶Âš±¼w¥¾t¡ºqž¶nš³oœµrŸ¸w¥¾y¨Ât¡ºt¡ºt¡ºt¡ºrŸ¸oœµm™±j•­wŸºy£¾y£¾wŸºwŸºy£¾y£¾wŸºx¡¼y£¾{¥À{¥À{¥À{¥Ày£¾x¡¼y£ºy£ºy£ºy£ºy£ºy£ºy£ºy£º{¥¼{¥¼|¦¾|¦¾~¨À~¨À~¨À~¨Àxš±¥¼|Ÿ¶‚¦¾¥¼’¸Ñ…ªÂxš±„¨À„¨À„¨À„¨À„¨À‚¦¾‚¦¾‚¦¾ŠªÄ¯É‘±ËŒ¬ÅŒ¬Å‘±Ë¯ÉŠªÄŠªÄ‰¨Â…¥¾‡¦À‰¨Â‰¨Â…¥¾„£¼‡¥º‡¥º‰¦¼‰¦¼Š¨¾ŒªÀŒªÀŒªÀŠ¨¾Š¨¾Š¨¾Š¨¾Š¨¾ŒªÀ¬Â¬Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŠªÄŒ¬ÅŠªÄ‰¨Â‰¨Â‡¦À‘¯Å¬ÂŠ¨¾Š¨¾¬Â­Ä¬ÂŒªÀŠ¨¾Š¨¾‰¦¼‰¦¼‰¦¼Š¨¾ŒªÀ¬Â‰¨Â‰¨Â‰¨Â‡¦À‡¦À‡¦À…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‡¬Ä…ªÂ…ªÂ…ªÂ…ªÂ‡¬Ä‰­Å‰­Å…ªÂ‡¬Ä‡¬Ä‡¬Ä‡¬Ä…ªÂ„¨À‚¦¾ŠªÄŠªÄ‰¨Â‡¦À‡¦À‰¨ÂŠªÄŠªÄ‰¨Â¯É¯ÉŠªÄ‡¦À‰¨ÂŠªÄ‰¨ÂŠ¬ÀŒ­Â¬Â¬Â­Ä­Ä‘¬Ä’­ÅªÂ‘¬Ä•­Å•­Å•­Å•­Å•ªÄ•ªÄ’¯Â’¯Â’¯Â’¯Â’¯Â‘­À¬¾¬¾‘­À¬¾ª¼¬¾‘­À‘­Àª¼Š¦¸¯É­ÇŒ¬ÅŠªÄŠªÄŒ¬Å­Ç¯ÉŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å­Ç­Ç­Ç­Ç­Ç­Ç­Ç­ÇŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å­Ç­Ç­Ç¯ÉŒªÄ‘¯É‘¯ÉŒªÄŒªÄ‘¯É‘¯ÉŒªÄ­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç¯É¯É¯É¯É¯É¯É¯É¯É‘±Ë­ÇŒ¬Å­Ç‘±Ë”µÏ”µÏ”µÏ…¯¼‡±¾Š¯Ä³Ç’³Í”µÏ•³Ñ•³Ñ”¯Ë”¯Ë”¬Ä—¯À¥¼Ç£ºÅ‘¨­~”™m‰[Qj>4J%"3# $"!/C!2 "3!' * )( #/<.Œ¡‘ªÀ¼£¶º­Â͵ÇÙ¦¸Ïª¼ÓŸ±Ç£µËœ­Äœ­ÄŸ±Çœ±Ç•ªÀ”¨¾™­Ä”¬À’ª¾•­Âž¶ËœºÍ•³Å’¯Â•³Åš±Àš±Àš±Àš±Àž¯Àž¯Àž¯Àž¯À™¨¸šªºž­¾£³Ä¦¶Ç¨¸É¬¸Ë¬¸Ë³ÄѱÂϯÀͬ¼ÉªºÇ¨¸Åª¶Âª¶ÂºÄ˵¾Åµ¾Å¼Å;Å˸ÀŸÀžÅ˾ÇÓºÄ϶À˵¾Éµ¾É¶À˺ÄϾÇÓ¶À˵¾É±ºÅ±ºÅ³¼Ç±ºÅ¯¸Ä¬µÀ­ºÉ­ºÉ­ºÉ­ºÉ­ºÉ¬¸Ç¬¸Ç¬¸Çª¶Å¬¸Ç­ºÉ¯¼Ë±¾Í³ÀϵÂѵÂѯ¶Ë³ºÏ¯¼Ï­ºÍª¶É¨µÇ¨¸ÉªºËšªº¦¶Ç’£³‰™¨n|Šn|ŠScnDS]a{rQiaQf^K^]>ONUim‚—¡£­u¡ºtŸ¸rž¶qœµqœµtŸ¸w£¼x¥¾w£¼w£¼w£¼w£¼u¡ºu¡ºtŸ¸rž¶wŸº|¦Â|¦ÂwŸºwŸº|¦Â|¦ÂwŸºy£¾y£¾{¥À|¦Â|¦Â{¥Ày£¾y£¾~¨À|¦¾{¥¼y£ºy£º{¥¼|¦¾~¨Ày£º{¥¼~¨À¬Ä¬ÄªÂ~¨À|¦¾|Ÿ¶„¨ÀŒ±É{žµ„¨À‡¬ÄŠ¯Ç{žµ‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¡º‰¨ÂŠªÄ‡¦À‰¨Â­Ç­Ç‰¨Â¯ÉŒ¬ÅŠªÄŠªÄŒ¬Å­ÇŠªÄ‰¨Â‡¥º‡¥º‰¦¼‰¦¼Š¨¾ŒªÀ¬Â¬ÂŒªÀŠ¨¾Š¨¾Š¨¾Š¨¾ŒªÀ¬Â­ÄŒªÀŒªÀŒªÀŠ¨¾Š¨¾ŒªÀŒªÀŒªÀŒªÀ¬Â¬Â¬ÂŒªÀŒªÀŠ¨¾‰¦¼¬ÂŒªÀŠ¨¾ŒªÀ­Ä­ÄŒªÀ‰¦¼¬Â¬ÂŒªÀŠ¨¾Š¨¾Š¨¾ŒªÀŒªÀŠªÄŠªÄ‰¨Â‰¨Â‰¨Â‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾…¥¾‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â…ªÂ…ªÂ„¨À„¨À…ªÂ‡¬Ä‰­Å‰­Å‡¬Ä‡¬Ä…ªÂ„¨À‚¦¾„¨À„¨À„¨ÀŒ¬ÅŠªÄ‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŒ¬Å‚¡ºŒ¬Å¯É‰¨Â„£¼ŠªÄŒ¬ÅŠªÄ‰ª¾Š¬ÀŒªÀŒªÀ¬Â¬ÂªÂ‘¬ÄŠ¥¼¨À’ªÂ•­Å•­Å•­Å•ªÄ•ªÄ¯À±Â±Â±Â±Â¯ÀŒ­¾Š¬¼‘³Ä¯ÀŒ­¾¯À‘³Ä‘³ÄŒ­¾‡¨¸¬Â¬Â­Ä‘¯Å‘¯Å­Ä¬Â¬ÂŠ¨¾Š¨¾ŒªÀ¬Â¬Â­Ä­Ä‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å¬Â¬Â¬Â­Ä­Ä­Ä‘¯Å‘¯Å­Ä”³É”³É­Ä­Ä”³É”³É­Ä‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å­Ä­Ä­Ä­Ä­Ä­Ä­Ä­Ä•µË‘¯ÅŒªÀ¬Â‘¯Å”³É”³É‘¯ÅŒµ¼¶¾µÀµÉ’µÉ‘±Í¯Ë¯Ë­Çœ¼×‘¬ÄŒ¨¶ž¸Âªª~——¨£…ª„iŠb>X9#8+' /,A!,
++='  &"    "/!@OA{‡ªÀ¼ª¾Â¡µ¼³Åת¼Ï™ª¼¦¸Ë’£µš³Ë•­Å•­Åš³Ëš³Ë”¬Ä‘¬Ä•±É’­ÅªÂ’­Å™µÍ™µÍ”¯Ç’­Å•±É—µÂ—µÂšµÂšµÂœ³Âœ³ÂŸ±ÂŸ±Âž­¾¡±Â¦³Åª¶É³ºÏµ¼Ñ¶¾Ó¶¾ÓºÄ˸ÂɶÀdz¼Ä¯¸À¯¸À­¶¾­¶¾¼Äɶ¾Ä¶¾Ä¼ÄɼÄɶ¾Ä¶¾Ä¼ÄɳÀ˱¾É±¾É±¾É±¾É±¾É±¾É³À˨µÀ¬¸Ä¯¼Ç¯¼Ç­ºÅª¶Âª¶Âª¶ÂªºÇªºÇªºÇªºÇªºÇ¬¼É¬¼É¬¼ÉªºÇªºÇªºÇ¬¼É­¾Ë­¾Ë¯ÀͯÀͨ¶Ë¬ºÏ¯¾Ó¯¾Óª¸Í¦µÉ¦¸Ë¨ºÍ—¨º¥¶É’¨¸™¯ÀxŒšu‰—RcoCS^Qgg->>/@@7JNFX^8FQJZfTfroš³qœµrž¶rž¶tŸ¸tŸ¸tŸ¸tŸ¸x¥¾x¥¾x¥¾x¥¾x¥¾y¦Ày¦Ày¦ÀwŸº|¦Â|¦ÂwŸºwŸº|¦Â|¦ÂwŸºy£¾{¥À{¥À|¦Â|¦Â{¥À{¥Ày£¾‚­ÅªÂ|¦¾{¥¼{¥¼|¦¾ªÂ‚­Åx¡¸{¥¼ªÂ‚­Å„¯Ç¬Ä~¨À{¥¼…ªÂ³ËœÄÝyœ³…ªÂ~¡¸‘¶Ï‚¦¾‚¦¾‚¦¾‚¦¾„¨À„¨À…ªÂ…ªÂ…ªÂž¶„£¼‡¦À…¥¾‡¦ÀŒ¬Å­Ç‰¨Â”µÏ‘±Ë­Ç¯É‘±Ë‘±Ë¯ÉŒ¬Å‡¥º‡¥º‰¦¼Š¨¾ŒªÀŒªÀ¬Â­ÄŒªÀŠ¨¾Š¨¾Š¨¾Š¨¾ŒªÀ¬Â­Ä¬ÂŒªÀŒªÀŠ¨¾Š¨¾ŒªÀŒªÀ¬Â¬Â¬Â¬Â¬Â¬ÂŒªÀ‰¦¼‰¦¼Š¨¾Š¨¾Š¨¾¬Â­Ä­ÄŒªÀ‡¥º­Ä­Ä¬ÂŒªÀŠ¨¾Š¨¾Š¨¾Š¨¾Œ¬ÅŠªÄŠªÄ‰¨Â‰¨Â‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄ‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â„¨À„¨À„¨À„¨À„¨À…ªÂ‡¬Ä‰­Å‰­Å…ªÂ„¨À¥¼¥¼‚¦¾„¨À…ªÂŒ¬ÅŠªÄŠªÄ‰¨Â‰¨ÂŠªÄŠªÄŒ¬Å~œµ‰¨Â­Ç…¥¾„£¼ŠªÄ¯É­Ç‰ª¾‰ª¾Š¨¾ŒªÀŒªÀŒªÀªÂªÂ‰£ºŠ¥¼‘¨À”¬Ä•­Å•­Å•ªÄ•ªÄ¯À±Â±Â±Â±Â¯ÀŒ­¾Š¬¼’µÅ±Â¯À±Â’µÅ’µÅ¯À‰ªº‰¦¼¬Â’±Ç•µË•µË’±Ç¬Â‰¦¼‰¦¼‰¦¼Š¨¾ŒªÀ­Ä‘¯Å’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç¬Â¬Â¬Â­Ä­Ä‘¯Å‘¯Å‘¯Å‘¯Å•µË•µË’±Ç’±Ç—¶Í—¶Í’±Ç‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å¬Â¬Â¬Â¬Â¬Â¬Â¬Â¬Â™¸Ï”³É¬ÂŒªÀ­Ä’±Ç‘¯Å¬Â’¼Ä’¼Ä’ºÅ‘¶Ë‘³Ç­ÉŠªÅ‰¨ÄŠ¨Â¥Åᗳˊ¦µ’¬µiMaabxt³Œ•¾d…^*@#*-!2$7)
+%7( 
+  >MM——n‚‡i|œ³Â±ÉÙ™¯¾¯ÇÙ£ºË™¯¾¥³™¯º—­¸‰Ÿ¥š³¸Š¥¼ªÂ’­Å”¯Ç”¯Ç”¯Ç”¯Ç’­Å•±É™µÍŸ¸Ñž¶Ï—¯Ç•­Å™±ÉœµÍž¼ÉœºÇœ¶Ä™³Àš±ÀžµÄ¥¶Ç¦¸ÉªºË¬¼Í±¾ÑµÂÕ¼ÄÙ¼ÄÙºÂ׺Â׶¾Ä¶¾Ä¸ÀźÂǺÂǶ¾Äµ¼Â³ºÀ¸ÂɺÄ˺Ä˺Ä˸ÂɶÀdz¼Ä¯¸À±ÂϯÀÍ­¾Ë¬¼ÉªºÇªºÇªºÇ¬¼ÉªºÇ¦¶Ä£³ÀŸ¯¼¡±¾¦¶Ä¬¼É¯Àͪ¼Í¬¾Ï¬¾Ï­ÀÑ­ÀѬ¾Ï¬¾Ïª¼Í­ÀÑ¥¶Ç¦¸É¯ÂÓ±ÄÕª¼Í¬¾Ï³Å׬¾Õ¥¶ÍŸ±Ç¡³É¨ºÑ¨ºÑœ±Ç”¨¾ž¶Ë¦ºž¶Ë~”¦œ­Œ¨ºtž¬¾qŒ£4FW+;J1CSGZnRf{DSiXix¡¸užµužµx¡¸{¥¼|¦¾y£ºwŸ¶x¡¸x¡¸y£ºy£ºx¡¸x¡¸{¥¼~¨À{Ÿ¸~£¼¥¾~£¼{Ÿ¸{Ÿ¸|¡º~£¼~£¼~£¼~£¼~£¼~£¼¥¾¦À¦À|¡º|¡º~£¼~£¼~£¼¥¾¥¾¥¾¦À¦À¥¾¥¾¦À‚¨Â‚¨Â„ªÄ„¨À…ªÂ…ªÂ…ªÂ…ªÂ…ªÂ…ªÂ„¨À‚¦¾„¨À„¨À…ªÂ…ªÂ„¨À„¨À‚¦¾‰¨Â‡¦À‡¦À…¥¾…¥¾‡¦À‰¨Â‰¨ÂŠªÄŠªÄŒ¬Å­Ç¯É‘±Ë‘±Ë’³Í—¶Í•µË”³É’±Ç­Ä¬ÂŒªÀŠ¨¾Š¨¾Š¨¾ŒªÀ¬Â¬Â­Ä­Ä‘¯Å‰¦¼Š¨¾ŒªÀ­Ä‘¯Å‘¯Å‘¯Å‘¯Å¬Â¬ÂŒªÀŒªÀ¬Â­Ä‘¯Å‘¯Å‰¦¼­Ä­Ä‰¦¼‰¦¼­Ä­Ä‰¦¼ŒªÀŒªÀŒªÀŒªÀŒªÀŒªÀŒªÀŒªÀŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄ‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‡¦À‡¦ÀŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄ­ÇŒ¬Å‰¨Â‰¨Â‰¨Â‰¨ÂŒ¬Å­ÇŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŒ¬ÅŠªÄŠªÄ‰¨Â‰¨ÂŠªÄŠªÄŒ¬Å‰¨ÂŠªÄŠªÄŒ¬ÅŒ¬ÅŠªÄŠªÄ‰¨Â¯ÄŒ­Â¬ÂŒªÀŒªÀ¬ÂªÂ‘¬Ä‘¬Ä‘¬Ä”¬Ä”¬Ä”¬Ä”¬Ä•ªÄ•ªÄ¯À¯À±Â±Â¯ÀŒ­¾¯À±Â±Â±Â±Â±Â±Â¯ÀŒ­¾Š¬¼‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å”³É’±Ç’±Ç”³É”³É’±Ç¬Â‰¦¼‘¯Å­Ä­Ä­Ä‘¯Å’±Ç‘¯Å­Ä‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å­Ä­Ä­Ä‘¯Å‘¯Å­Ä­Ä­Ä­Ä”³É”³É­Ä­Ä”³É”³É­Ä”³É’±Ç’±Ç‘¯Å‘¯Å’±Ç’±Ç”³ÉŒªÀ‘¯Å•µË•µË’±Ç‘¯Å”³É—¶Í±¶’¶¼¯º—¶É‘¯Å•³ÑªÇOd{]r‰Š¦¸Š¦³­ÏÓ”µ­_{nRiYAUG/C:1E<1&(=,7M9(3K1LcB!1!- 
+4A&/=8r‡‡’ªª¦ÀÅ¡ºÀœ³ÂºÓ㜳žµÅžµÅ™¯¾”ª¸Ÿ¶ÂžµÀ‘¨­ž¶¼‘¬Ä¨ÀªÂ’­Å•±É”¯Ç”¯Ç—³Ë’­Å•±ÉœµÍœµÍ™±É™±ÉœµÍŸ¸ÑœºÇš¸Åœ¶ÄšµÂœ³ÂžµÄ£µÅ¥¶Ç¥µÅ¦¶Çª¶É¬¸Ë±¸Í±¸Í±¸Í±¸Í¶¾Ä¸ÀźÂǺÂǺÂǶ¾Äµ¼Â³ºÀ¶ÀǶÀǸÂɸÂɶÀdz¼Ä±ºÂ¯¸À¨¸Å¦¶Ä¥µÂ¥µÂ£³À£³À£³À¥µÂ¨¸Å¦¶Ä¥µÂ£³À£³À¦¶Ä¨¸Å¬¼É¨ºË¨ºËª¼Íª¼Íª¼Íª¼Í¨ºË¨ºË±ÄÕª¼Í¨ºË¯ÂÓ­ÀÑ¥¶Ç¥¶Çª¼Í£µË¡³É£µË¦¸Ïª¼Óª¼Ó£¸ÏŸµË—¯Ä¦º~”¦¥¸{•¦rŒœqŠšx’£u‘¨Qg{TkUmYn„WkL[rcux£¶w¡µw¡µx£¶{¦º|¨¼y¥¸w¡µx£¶w¡µuŸ³w¡µ{¦º~ª¾¬À~ª¾|£¸~¥º¦¼¦¼|£¸{¡¶~¥º¦¼¦¼¦¼¦¼¨¾¨¾‚ªÀ‚ªÀ‚ªÀ~£¼~£¼~£¼¥¾¥¾¥¾¦À¦À¥¾¦À‚¨Â‚¨Â„ªÄ„ªÄ‚¨Â‚¨Â‰­Å‡¬Ä‡¬Ä…ªÂ…ªÂ‡¬Ä‡¬Ä‰­Å…ªÂ…ªÂ„¨À„¨À„¨À„¨À…ªÂ…ªÂ‰¨Â‰¨Â‡¦À‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨ÂŠªÄŠªÄŒ¬Å­Ç­Ç¯É™¸Ï—¶Í—¶Í•µË”³É’±Ç’±Ç‘¯Å­Ä­Ä­Ä­Ä­Ä­Ä­Ä‘¯ÅŒ¨ºª¼¬¾‘­À’¯Â’¯Â’¯Â’¯Â‘­À¬¾¬¾¬¾¬¾‘­À’¯Â’¯ÂŒªÀ­Ä­ÄŒªÀŒªÀ­Ä­ÄŒªÀ¬Â¬Â¬Â¬Â¬Â¬Â¬Â¬Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŠªÄ‰¨Â‰¨Â‡¦À‡¦À‰¨Â‰¨ÂŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄ¬ÅŒªÄŒªÄŒªÄŒªÄŒªÄŒªÄ¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬Å¬ÅŒ¬ÅŒ¬ÅŠªÄŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŠªÄŠªÄ¯Ä¯Ä¬Â¬Â¬Â¬Â‘¬Ä‘¬Ä‘¬Ä‘¬Ä”¬Ä”¬Ä”¬Ä”¬Ä•ªÄ•ªÄ‰ªº±Â”¶Ç‘³ÄŠ¬¼‰ªº¯À’µÅ‘³Ä‘³Ä‘³Ä‘³Ä‘³Ä±Â¯À¯À‘­À‘­À‘­À‘­À‘­À‘­À‘­À‘­À™¶É—µÇ•³Å—µÇ™¶É•³Å‘­ÀŒ¨º™¶É•³Å’¯Â’¯Â”±Ä•³Å”±Ä’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â’¯ÂŒª¼­À’±Ä”³Å”³Å’±Ä­ÀŒª¼­À”³Å”³Å­À­À”³Å”³Å­À•³Å•³Å”±Ä”±Ä”±Ä”±Ä•³Å•³Å¬¾’¯Â•³Å•³Å•³Å”±Ä•³Å—µÇ¡¼Å¥ÀÉ™³Àž¶Ë—­Ë”ªÇ¥Â_q‰@O]M_i>ONgqgj>S=i…^t’iUo_BYK/C4=TCCYC !0 3F2$    QaXy¡±ÉꑦĭÅåªÂã~’¯¦¾ß™¯Ï—­”¬Ä—¯Ä—±¾ŸºÀ—±¶’­­™µµš¸Ë¬¾Œ¨º’¯Â™±Å•­Â™±Å£¼Ñ•ªÀ™­Äœ±Çœ±ÇŸ±Ç¡³É¥¶Í¨ºÑ£ºÉ£ºÉ£ºÉ£ºÉ¦¸É¦¸É¦¸É¦¸É¦¶Ç¦¶Ç¥µÅ¥µÅ¥µÅ¦¶Ç¦¶Ç­µÉ¶¾Ä¶¾Ä¸ÀŸÀŶÀǵ¾Å³¼Ä±ºÂ¯¼Ç¯¼Ç¯ÀͯÀÍ­¾Ë¬¼É¨¸Å¨¸Å£¶Â¡µÀŸ³¾Ÿ³¾ž±¼ž±¼Ÿ³¾Ÿ³¾¦ºÅ¦ºÅ¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä¡¸É£ºË£ºË¥¼Í¥¼Í£ºË£ºË¡¸ÉªÂÓ¥¼Í¥¼Í¦¾Ï¦¾ÏŸ¶ÇŸ¶Ç£ºËœ³ÄžµÅ¡¸É£ºËž¶Ç™±Â‘¨¸Œ£³‡£±~™¦Yo{’¯¾m‰”g‚u’žfŒ^u‘^u‘š¶‘­ËŒªÄw’ªUj|Ti{w¡µw¡µx£¶y¥¸{¦º{¦ºy¥¸y¥¸|¨¼x£¶tž±w¡µ|¨¼¬À¬À|¨¼|£¸¦¼¨¾¦¼~¥º|£¸~¥º¨¾¦¼¦¼¨¾‚ªÀ‚ªÀ‚ªÀ‚ªÀ‚ªÀ¥¾¥¾¥¾¥¾¦À¦À¦À‚¨Â¥¾¦À„ªÄ…¬Å‡­Ç…¬Å„ªÄ‚¨ÂŠ¯Ç‰­Å‡¬Ä‡¬Ä‡¬Ä‡¬Ä‰­ÅŠ¯Ç‰­Å‡¬Ä„¨À‚¦¾‚¦¾„¨À‡¬Ä‰­ÅŠªÄŠªÄ‰¨Â‡¦À‡¦À‡¦À‡¦À‰¨Â‡¦À‡¦À‰¨Â‰¨ÂŠªÄŠªÄŠªÄŒ¬Å­Ä­Ä‘¯Å’±Ç”³É—¶Í—¶Í™¸Ï”³É”³É”³É”³É’±Ç’±Ç’±Ç’±Ç‘­À‘­À’¯Â’¯Â’¯Â’¯Â‘­À‘­À’¯Â’¯Â‘­À‘­À‘­À‘­À’¯Â”±Ä¬Â­Ä­Ä¬Â¬Â­Ä­Ä¬Â­Ä­Ä­Ä­Ä­Ä­Ä­Ä­Ä‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŠªÄ‰¨Â‡¦À‡¦À‰¨ÂŠªÄŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒªÄŒªÄ¬Å­Ç­Ç¬ÅŒªÄŒªÄ­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­ÇŒ¬ÅŠªÄŠªÄŠªÄŠªÄŒ¬Å­ÇŠªÄŠªÄŒ¬Å­Ç­ÇŒ¬ÅŠªÄŠªÄ±Å¯Ä¬Â¬Â¬Â¬Â‘¬Ä’­Å’­Å’­Å•­Å•­Å•­Å•­Å—¬Å—¬ÅŒ­¾±Â’µÅ‘³Ä¯ÀŒ­¾¯À’µÅ’µÅ”¶Ç”¶Ç”¶Ç”¶Ç”¶Ç’µÅ’µÅ’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â’¯Â•³Å”±Ä”±Ä•³Å™¶É—µÇ”±Ä¬¾œºÍ•³Å¬¾¬¾’¯Â•³Å•³Å’¯Â”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä­À‘¯Â’±Ä”³Å”³Å’±Ä‘¯Â­À­À”³Å”³Å­À­À”³Å”³Å­À—µÇ•³Å”±Ä”±Ä”±Ä”±Ä•³Å—µÇ‘­À’¯Â”±Ä•³Å”±Ä”±Ä’¯Â’¯Â¨ÄÍ­ÉÓšµÂŸ¸Íœ³Ñ”ªÇš±Ï‚—³uŠœBS['546G=.?0);#G_?$ #!1!!0 #2"#+# 
+
+ +60t‰š­Å塸ףºÙ£ºÛŠŸ¾•¬Ë’¨Çbu‰¥¼™±Åœ¶ÄšµºŒ¥ª’­­•±±Ÿ¾Ñ”±Ä¬¾•³Åš³Ç—¯Äš³Ç¥¾Ó™­Äš¯Åœ±Çž³É¡³É£µË¥¶Í¦¸Ï¦¾Í¦¾Í¨ÀϪÂÑ­ÀѬ¾Ïª¼Íª¼Í¯ÀѬ¼ÍªºË¦¶Ç¦¶Ç¦¶Ç¨¸É¯¶Ëµ¼Âµ¼Âµ¼Â³ºÀ±ºÂ¯¸À¯¸À¯¸À¬¸Ä¬¸ÄªºÇªºÇªºÇ¨¸Å¦¶Ä¦¶Ä¥¸Ä¥¸Ä£¶Â£¶Â¡µÀ£¶Â£¶Â¥¸Ä¥¸Ä¦ºÅ¦ºÅ¨¼Ç¦ºÅ¥¸Ä¡µÀŸ³¾¡¸É¡¸É£ºË¥¼Í¥¼Í£ºË¡¸É¡¸ÉŸ¶ÇžµÅŸ¶Ç¡¸É£ºË£ºË£ºË¦¾Ï£ºË¡¸É¡¸ÉŸ¶Ç—¯À‰Ÿ¯uŠ™g{‰j‚Wmx<NXqŠ—Mdnm‰”oŒ—Woyax”d|™y”¯¬ÉšºÕ‰¦À_u‰FYjyŸµ{¡¶|£¸~¥º~¥º~¥º~¥º~¥º„¬Â~¥ºyŸµ{¡¶¦¼¨¾¦¼|£¸£º‚¦¾„¨À‚¦¾¥¼£º¥¼„¨À£º£º‚¦¾„¨À„¨À„¨À‚¦¾‚¦¾¥¾‚¦À‚¦À‚¦À„¨Â„¨Â„¨Â„¨Â‚¦À„¨Â‡¬Å‰­Ç‰­Ç‰­Ç‡¬Å…ªÄŠ¯ÇŠ¯Ç‰­Å‰­Å‰­Å‰­ÅŠ¯ÇŠ¯Ç‰­Å‡¬Ä„¨À‚¦¾‚¦¾„¨À‡¬Ä‰­ÅŒ¬ÅŒ¬ÅŠªÄ‰¨Â‡¦À‡¦À‡¦À‰¨Â‡¦À‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¦¼‰¦¼Š¨¾¬Â­Ä’±Ç”³É”³É—¶Í—¶Í•µË•µË•µË•µË•µË•µË—µÇ—µÇ—µÇ•³Å”±Ä‘­Àª¼Œ¨º•³Å”±Ä’¯Â’¯Â’¯Â’¯Â”±Ä”±Ä‘¯Å­Ä­Ä‘¯Å‘¯Å­Ä­Ä‘¯Å­Ä­Ä­Ä­Ä­Ä­Ä­Ä­ÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŠªÄŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å­ÇŒ¬ÅŠªÄ‰¨Â‰¨ÂŠªÄŒ¬Å­ÇŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒªÄ¬Å­Ç­Ç­Ç­Ç¬ÅŒªÄ­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­ÇŒ¬ÅŠªÄŠªÄŒ¬Å­Ç­ÇŠªÄŒ¬Å­Ç­Ç­Ç­ÇŒ¬ÅŠªÄ±Å±Å­Ä¬Â¬Â­Ä’­Å’­Å’­Å’­Å•­Å•­Å•­Å•­Å—¬Å—¬Å”³Å‘¯Â¬¾­À’±Ä”³Å’±Ä¬¾’±Ä’±Ä”³Å”³Å•µÇ”³Å”³Å’±Ä•³Å•³Å•³Å•³Å•³Å•³Å•³Å•³Å¬¾¬¾‘­À”±Ä—µÇ™¶É•³Å‘­Àš¸Ë’¯ÂŠ¦¸‰¥¶¬¾”±Ä”±Ä‘­À”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä”±Ä•µÇ”³Å’±Ä‘¯Â‘¯Â’±Ä”³Å•µÇ‘¯Â•µÇ•µÇ‘¯Â‘¯Â•µÇ•µÇ‘¯Â—µÇ—µÇ•³Å”±Ä”±Ä•³Å—µÇ—µÇ’¯Â’¯Â”±Ä—µÇš¸ËœºÍœºÍš¸Ë¡±¾¬¼Éœ¬¼¬ºÓ³Àߣ¯Í¬¼Ù¨¸Õ­ÀÑfwwYj^>M;) &6"3#4#5))" %8#5'9.#  
+"0?<wºÙו¯µ¡¼Â³ÏÝy‘œo„•N_nŠ¡µ™±Å¡ºÏš³ÄŠ¡±œ¶Ä™³ÀšµÂ™³ÀšµÂœ¶ÄžµÄœ³Â¡³Ä¨ºË¦¶Ç¦¶Ç¥µÅ¥µÅ¨µÇ¨µÇ¨µÇ¦³Å¬¸Ë¬¸Ë¬¼Í­¾Ï­¾Ï¬¼ÍªºËªºË¯ÂÓ­ÀѪ¼Í¦¸É¡¸Ç£ºÉ¥¼Ë¥¼Ë¯¸À¯¸À­¶¾­¶¾¨µÀ¨µÀ¦¶Ä¦¶Ä¦¸É¦¸É£ºË¡¸É¡¸É¡¸ÉŸ¸ÍŸ¸Í£ºÉ£ºÉ¡¸Ç¡¸Ç¡¸Ç¡¸Ç£ºÉ¥¼Ë¡¸Ç£ºÉ¥¼Ë¥¼Ë¥¼Ë¡¸ÇžµÄš±ÀŸ¸É¡ºË£¼Í£¼Í£¼Í£¼Í¡ºËŸ¸Éš³ÄœµÅž¶Çž¶Çž¶Ç¡ºË£¼Í¡ºË¥ÀÍŸºÇž¸Å¡¼Éš¸ÅŠ¦³n‡’Zq{Qiq4GN-?EBX_.BGj‰‘TowD]c¡µw•¨b~Œ_|„g‚‰g„‚c|WqnyŸµ|£¸¦¼¦¼~¥º|£¸~¥º¦¼‚ªÀ¨¾~¥º|£¸~¥º¦¼~¥º|£¸¥¼‚¦¾…ªÂ„¨À¥¼¥¼‚¦¾„¨À~¡¸£º‚¦¾„¨À…ªÂ„¨À‚¦¾¥¼‚¦À‚¦À„¨Â„¨Â„¨Â…ªÄ…ªÄ…ªÄ„¨Â…ªÄ‡¬Å‰­Ç‰­Ç‰­Ç‰­Ç‰­Ç‡¬Ä‰­Å‰­ÅŠ¯ÇŠ¯Ç‰­Å‰­Å‡¬Ä‡¬Ä‡¬Ä…ªÂ…ªÂ…ªÂ…ªÂ‡¬Ä‡¬Ä­Ç­ÇŠªÄ‰¨Â‡¦À‡¦À‡¦À‰¨Â‡¦À‡¦À‡¦À‡¦À‡¦À‡¦À‰¨Â‰¨ÂŒªÀŒªÀŒªÀŒªÀŠ¨¾Š¨¾Š¨¾Š¨¾”³É”³É•µË•µË•µË•µË•µË•µË™¶É™¶É™¶É—µÇ”±Ä‘­À¬¾ª¼—µÇ•³Å”±Ä”±Ä’¯Â’¯Â”±Ä”±Ä’±Ç­Ä­Ä’±Ç’±Ç­Ä­Ä’±Ç‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å­Ç­Ç­Ç­Ç­Ç­Ç­Ç­ÇŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å­ÇŒ¬ÅŒ¬ÅŠªÄŠªÄŒ¬ÅŒ¬Å­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç¬Å¬Å­Ç­Ç­Ç‘¯É‘¯É‘¯É‘¯É‘¯É‘¯É‘¯É‘¯É­Ç­ÇŒ¬ÅŒ¬ÅŒ¬ÅŒ¬Å­Ç­ÇŒ¬ÅŒ¬Å­Ç­Ç­Ç­ÇŒ¬ÅŒ¬Å±Å±Å­Ä­Ä­Ä­Ä’­Å’­Å”¯Ç”¯Ç—¯Ç—¯Ç—¯Ç—¯Ç™­Ç™­Ç—¶É‘¯ÂŒª¼­À•µÇ—¶É’±Ä¬¾¬¾¬¾­À‘¯Â‘¯Â‘¯Â‘¯Â­À—µÇ—µÇ—µÇ—µÇ—µÇ—µÇ—µÇ—µÇ¬¾¬¾‘­À”±Ä—µÇ—µÇ”±Ä‘­À™¶É¬¾„Ÿ±„Ÿ±Œ¨º”±Ä”±Ä’¯Â•³Å•³Å•³Å•³Å•³Å•³Å•³Å•³Å™¸Ë•µÇ’±Ä‘¯Â‘¯Â’±Ä•µÇ™¸Ë‘¯Â•µÇ•µÇ‘¯Â‘¯Â•µÇ•µÇ‘¯Â—µÇ—µÇ•³Å•³Å•³Å•³Å—µÇ—µÇ’¯Â’¯Â•³ÅœºÍ£ÂÕ¨ÇÛªÉݨÇÛ”£¯•¥±žž¬Ä¼Éꪶժº×¯ÀÝ¡³Ä££š±¡K[G)8) "1'% 12F$/B!6M(+>!.B&,     !EXX‚œšObfauy…žªBS[AQ^Oao”¬À—¯Ä£¼Ñ£¼Í”¬¼ªÅÓ”­º|”Ÿ’¬¸¡¼Éž¸Åš±ÀŸ¶Å¦¸É¡³Ä­¾Ï¬¼Í¨¸É¨¸É¬¸Ë­ºÍª¶É¨µÇ¨µÇ¨µÇ¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Çª¼Íª¼Í¨ºË¦¸É¡¸Ç¡¸Ç¡¸Ç¡¸Ç¯¸À­¶¾¬µ¼ª³º¦³¾¦³¾¦¶Ä¦¶Ä¦¸É¥¶Ç¡¸ÉŸ¶ÇŸ¶ÇŸ¶ÇŸ¸ÍŸ¸Í¡¸ÇŸ¶ÅŸ¶ÅŸ¶ÅŸ¶Å¡¸Ç£ºÉ£ºÉŸ¶Å¡¸Ç£ºÉ¥¼Ë£ºÉ¡¸ÇŸ¶ÅžµÄŸ¸É¡ºË¡ºË£¼Í£¼Í¡ºË¡ºËŸ¸ÉŸ¸É£¼Í£¼ÍœµÅœµÅŸ¸Éž¶Ç™±ÂŸºÇž¸Åž¸Å£¾Ë¡ÀÍ•³Àš¦o‰”Rjr2EL1DK5IO*=BYu|@X^AY_oŸt’¥^y‡TowI_dD[Z^ywk‰…xž³|£¸¨¾¨¾~¥º|£¸~¥º¨¾~¥º¦¼¦¼¦¼~¥º~¥º¨¾‚ªÀ‚¦¾„¨À…ªÂ…ªÂ‚¦¾¥¼‚¦¾…ªÂ£º‚¦¾…ªÂ‡¬Ä‰­Å‡¬Ä…ªÂ‚¦¾„¨Â„¨Â„¨Â…ªÄ…ªÄ…ªÄ‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‡¬Å‰­ÇŠ¯ÉŒ±Ë„¨À…ªÂŠ¯ÇŒ±ÉŒ±ÉŠ¯Ç…ªÂ„¨À…ªÂ‡¬Ä‡¬Ä‰­Å‰­Å‡¬Ä‡¬Ä…ªÂ¯É­ÇŒ¬ÅŠªÄ‰¨Â‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â­Ä¬Â¬ÂŒªÀŒªÀŠ¨¾Š¨¾Š¨¾¬Â­Ä­Ä‘¯Å’±Ç’±Ç”³É”³É•³Â•³Â—µÄ—µÄ•³Â•³Â”±À’¯¾™¶Å—µÄ•³Â”±À”±À”±À”±À”±À•µË­Ä­Ä•µË•µË­Ä­Ä•µË’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯É¯ÉŒ¬ÅŒ¬Å­Ç­Ç­Ç­ÇŒ¬ÅŒ¬Å­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç‘¯É‘¯É¬ÅŒªÄŒªÄ¬Å‘¯É‘¯É’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë¯É­Ç­ÇŒ¬ÅŒ¬Å­Ç­Ç¯ÉŒ¬Å­Ç­Ç¯É¯É­Ç­ÇŒ¬Å‘³Ç±Å‘¯Å­Ä­Ä‘¯Å’­Å”¯Ç”¯Ç”¯Ç—¯Ç—¯Ç—¯Ç—¯Ç™­Ç™­Ç”±Ä”±Ä’¯Â’¯Â”±Ä•³Å”±Ä’¯Â¬¾‘­À’¯Â”±Ä•³Å•³Å”±Ä”±Ä•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â—µÄ™¶Å—µÄ’¯¾¬º™¶ÅŒ¨¶œªœªŒ¨¶•³Â—µÄ”±À•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â•¶Ä•¶Ä•¶Ä”µÂ”µÂ•¶Ä•¶Ä•¶Ä‘±¾•¶Ä•¶Ä‘±¾‘±¾•¶Ä•¶Ä‘±¾™¶Å—µÄ—µÄ•³Â•³Â—µÄ—µÄ™¶Å—µÄ•³Â•³ÂœºÉ£ÂѦÅÕ¥ÄÓ¡ÀϨ¯ÀŠ‘ŸZ_nuy‘¨³Ñ¥¯Í¦±Ë±¼×³Ä;Ó˱ǭ|’o$1J^/(8( /C '#6 ?Z@["7R0 8T%(?  $+=%2E0!1!>RBUk^1A><MMg|„¨ÂÓ’ª¾žµÓªÂᚱϥ¼ÝwŠ¦[mu…š¥¥¼Çœ³¾™¬¶¨¼Ç¬¼Éœ¬¸±¾Í­ºÉ¯¶Ç±¸Éµ¼Í¶¾Ï¶¼Í³¸É¯¶Ë­µÉª±Åª±Å¦³Å¦³Å¨¸ÉªºË¦¸É¦¸É£ºÉ¥¼Ë¡¼É¡¼ÉœºÇš¸Å¯¼Ç­ºÅ¬¸Ä¨µÀ¦¶Ä¦¶Ä¦¸É¨ºË£ºË¡¸Éž¶ËœµÉš¶Ïš¶ÏžºÓžºÓž¸Åž¸Åž¸Åž¸Åž¸ÅŸºÇ¡¼É£¾Ëž¸Åž¸ÅŸºÇ¡¼É¡¼É¡¼ÉŸºÇŸºÇš¸Çš¸ÇœºÉœºÉœºÉœºÉš¸Çš¸ÇœºÉ¡ÀÏ¡ÀÏ™¶Å—µÄž¼ËœºÉ•³Âž¸ÂŸºÄž¾ÅšºÂ’±¸Š¨¯„£ªŸ¦]w|F]b<SWD]a=TX>UY;RUMgkZw{j‰]y{Xuq>UM+?3C^ITrZxž³|£¸¨¾¨¾~¥º|£¸~¥º¨¾yŸµ|£¸¨¾¦¼|£¸~¥º‚ªÀ‰±Ç‚¦¾„¨À…ªÂ…ªÂ‚¦¾‚¦¾„¨À…ªÂ‚¦¾„¨À‰­ÅŠ¯ÇŒ±ÉŠ¯Ç‡¬Ä…ªÂ„¨Â„¨Â„¨Â…ªÄ…ªÄ‡¬Å‡¬Å‡¬ÅŠ¯É‰­Ç‡¬Å…ªÄ‡¬Å‰­ÇŒ±Ë³Í¥¼„¨ÀŠ¯Ç³Ë³ËŠ¯Ç„¨À¥¼„¨À…ªÂ‰­ÅŠ¯ÇŠ¯Ç‰­Å…ªÂ„¨À¯É­ÇŒ¬ÅŠªÄ‰¨Â‡¦À‡¦À‡¦À‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨Â‰¨ÂŒªÀŒªÀ¬Â­Ä­Ä‘¯Å‘¯Å’±Ç‰¦¼‰¦¼Š¨¾ŒªÀ¬Â­Ä‘¯Å‘¯Å‘­¼’¯¾”±À—µÄ—µÄ™¶Å—µÄ—µÄ™¶Å™¶Å—µÄ•³Â”±À”±À”±À”±À•µË­Ä­Ä•µË•µË­Ä­Ä•µË’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±ËŠªÄŒ¬Å¯É‘±Ë‘±Ë¯ÉŒ¬ÅŠªÄ­Ç­Ç­Ç­Ç­Ç­Ç­Ç­Ç”³Í‘¯É¬ÅŒªÄŒªÄ¬Å‘¯É”³Í’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë’±Ë¯É­Ç­ÇŒ¬ÅŒ¬Å­Ç­Ç¯ÉŒ¬Å­Ç­Ç¯É¯É­Ç­ÇŒ¬Å‘³Ç±Å‘¯Å­Ä­Ä‘¯Å’­Å”¯Ç”¯Ç”¯Ç—¯Ç—¯Ç—¯Ç—¯Ç™­Ç™­Ç¬¾•³Å™¶É—µÇ‘­À¬¾’¯Â™¶É•³Å—µÇ™¶Éš¸Ëš¸Ëš¸Ëš¸Ëš¸Ë”±À”±À”±À”±À”±À”±À”±À”±Àž¼ËœºÉš¸Çš¸Çš¸Ç—µÄ‘­¼Œ¨¶™¶ÅŒ¨¶š¨š¨Œ¨¶—µÄš¸Ç—µÄ•³Â•³Â•³Â•³Â•³Â•³Â•³Â•³Â’³À”µÂ—¸Å™ºÇ™ºÇ—¸Å”µÂ’³À’³À—¸Å—¸Å’³À’³À—¸Å—¸Å’³À™¶Å—µÄ—µÄ•³Â•³Â—µÄ—µÄ™¶Åž¼Ëš¸Ç—µÄ™¶ÅœºÉœºÉ—µÄ‘­¼ÅÍß…Œš=AMNRdŠ”¯—¡¾£­Ç³¾Ù¦¶À±Å¾™­•ßýÍtŒY’¯jI^*"1 2G%"
+'1 '? 4  *'=.*' 0""1"Zr_axjMa]aww„œ¥ºÕ祸•¬ÉªÂᙯ͕¬ËXiFU]{™¥¼Ç™¯º•¨³¬À˱ÂÏ™¨µ¯¼Ë¬¸Ç­µÅ±¸É¸ÀѼÄÕ¼ÂÓ¸¾Ï¶¾Ó³ºÏ¯¶Ë­µÉª¶É¬¸Ë­¾Ï±ÂÓ¥¶Ç¦¸É¦¾Í¨ÀϦÂÏ¥ÀÍŸ¾Ëž¼É³À˱¾É­ºÅ¬¸Ä¨¸ÅªºÇª¼Í¬¾Ï£ºË¡¸Éž¶ËœµÉš¶Ïœ¸ÑžºÓŸ¼Õ¡¼ÉŸºÇŸºÇŸºÇ¡¼É£¾Ë¥ÀÍ¥ÀÍž¸Åž¸Åž¸ÅŸºÇŸºÇ¡¼É¡¼É£¾Ë—µÄ™¶Å™¶Åš¸Çš¸Ç™¶Å™¶Å—µÄ•³Âž¼Ëž¼Ë—µÄ™¶Å¡ÀÏ£ÂÑœºÉŸºÄ¦ÂËŸÀÇ­µ{—žr”w”šŸ¦_yWou?WZWrwQko'9<9OSWrwt”™u•šUqrJda.B;')>-5M:{žµ|Ÿ¶£º¥¼‚¦¾¥¼£º~¡¸‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¯Ä­Â¬À¬À­Â‚¯Ä…³Ç‰¶Ë­Â…³Ç…³Ç­Â¬À„±Å„±Å¬À‡­Ç…¬Å…¬Å„ªÄ„ªÄ…¬Å…¬Å‡­Ç‚¨Â„ªÄ‡­Ç‰¯ÉŠ±Ë‰¯É‰¯É‡­ÇµÏŠ±Ë„ªÄ¥¾¥¾„ªÄŠ±ËµÏ…¬Å…¬Å…¬Å…¬Å…¬Å…¬Å…¬Å…¬ÅŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŒ¨ÅªÇ¬É¬ÉŒ¨ÅŒ¨ÅªÇ¬ÉŠ¦ÄŒ¨ÅŒ¨ÅªÇªÇ¬É¬É‘­Ë”±Ä”±Ä’¯Â’¯Â’¯Â”±Ä•³Å—µÇ”±Ä™¶ÉœºÍš¸Ë•³Å”±Ä•³Å™¶ÉŸ¸Í™±Å”¬À”¬À™±ÅœµÉš³Ç—¯Ä™±Å—¯Ä—¯Ä•­Â•­Â—¯Ä—¯Ä™±Å”¶Ë™¼Ñ±Å¯ÄžÂך¾Ó±Å’µÉ‰ª¾¯Ä¯Ä‰ª¾‰ª¾¯Ä¯Ä‰ª¾±Å±Å±Å±Å±Å±Å±Å±Å‘³Ç±Å±Å¯Ä¯Ä±Å±Å‘³ÇŒ­Â¯Ä±Å‘³Ç‘³Ç‘³Ç‘³Ç±Å™¼ÑŒ­Â‘³Ç”¶ËŠ¬À¯Ä’µÉ…¦ºŒ­Â±Å’µÉ’µÉ±Å¯Ä¯Ä±Å‘³Ç‘³Ç‘³Ç‘³Ç±Å¯ÄŒ­ÂŒ­Â•±É”¯Ç”¯Ç’­Å’­Å”¯Ç”¯Ç•±ÉŠ¥¼¨À’­Å•±É—³Ë•±É”¯Ç’­Å”±¾•³À•±É—³Ñ—±Ù•¯×•±Ï”¯Ç™¶Ä—¶º•¶³•¶³šº¾ž¼É—³ËªÂ—¶¾™¸ÀšºÂ™¶Å•³Â”¯Ç•±É—³Ë”¯ÇªÂž¼Ë‡£±Ÿ¾Ë‘­ºœ¼À¬¯‘š¦¸ËxŒ™’¦¼‘¥ºŸµÓœ±ÏŒŸ¼ž¶Ï™±Éš³ÇŸ¸Í¡¼Éž¸ÅšºÂŸÀÇ”¶ËŒ­Âš¾Ó‰ª¾œÀÕŠ¬À™¼Ñ‘³Ç•¸Í”¶Ë”¶Ë’µÉ’µÉ”¶Ë”¶Ë•¸Í•³Å•³Å•³Å—µÇ—µÇ™¶É™¶É™¶É—µÇš¸ËœºÍš¸Ë—µÇ•³Å—µÇš¸Ë¦¶À‘Ÿ¨jx{DOR8BAS_^Ÿ•ºÏĶËÀª¾³³Ç¼¼ÑÅ¥¶µ³ÅÄFRQ +/0
+
+ '=.  &7$5);#CXJršw‘³—¶å­Û”µÑœºÉœ¾ºŸ¸¸£¸¸’ž¨bgw9=I_kr’¡ªž­¶¦¶ÀªºÄž­¶ªºÄ¨¸ÂªºÄªºÄªºÄ¨¸Â¨¸Â¦¶À¦¶À¦¶À¦¶Ç­¾Ï±ÂÓªºË£³Ä¡±Â¡±Â£³Ä¨¸É¨¸É¨¸É¨¸É¨¸É¨¸É¨¸É¨¸É¬ÄÓ¨ÀÏ¥¼Ë£ºÉ£ºÉ¥¼Ë¨ÀϬÄÓš±ÀŸ¶Å¡¸ÇžµÄŸ¶Å¦¾Í¨ÀÏ£ºÉ¡¸É™¯À¡¸É¦¾Ïœ³Ä¡¸ÉªÂÓ¡¸Éš±ÂŸ¶Ç¥¼Í¥¼Í¡¸É¡¸É¦¾Ï¬ÄÕ™¯¾žµÄ¡¸ÇŸ¶Åœ³Äœ³Ä¡¸É¨ÀѪÂÓ”ªº¨¾Õš¯Å™­ÄªÀס¶Í•ªÀœ¼À‰¦ª‚Ÿ¦x”šj„Šm‡…¥¯”µÀ‰¨³r™b„Kdi1EF,@A;UUGddWqr>NRd~~n‚„2@@$,-19;ENQ|Ÿ¶~¡¸£º¥¼‚¦¾¥¼£º£º‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¯Ä‚¯Ä­Â¬À¬À¬À­Â­Â¬À„±Å„±Å­Â­Â…³Ç…³Ç­Â‡­Ç‡­Ç…¬Å„ªÄ„ªÄ…¬Å‡­Ç‡­Ç„ªÄ…¬Å‡­Ç‰¯ÉŠ±Ë‰¯É‰¯É‡­ÇŠ±Ë‰¯É…¬Å„ªÄ„ªÄ…¬Å‰¯ÉŠ±Ë…¬Å…¬Å…¬Å„ªÄ…¬Å…¬Å‡­Ç‡­ÇŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¦ÄªÇ¬ÉªÇŒ¨ÅŠ¦ÄŒ¨Å¬ÉŒ¨ÅªÇªÇªÇªÇªÇ¬É¬É’¯Â’¯Â’¯Â’¯Â’¯Â”±Ä•³Å•³Å’¯Â•³Åš¸Ë™¶É•³Å”±Ä•³Å™¶ÉœµÉ™±Å•­Â•­Â—¯Äš³Çš³Çš³Ç™±Å™±Å—¯Ä•­Â•­Â—¯Ä™±Å™±ÅŠ¬À•¸Í‘³Ç¯Ä•¸Í‘³ÇŠ¬À’µÉŒ­Â‘³Ç‘³ÇŒ­ÂŒ­Â‘³Ç‘³ÇŒ­Â±Å±Å±Å±Å±Å±Å±Å±Å‘³Ç±Å±Å¯Ä¯Ä±Å±Å‘³ÇŒ­Â¯Ä±Å‘³Ç‘³Ç‘³Ç‘³Ç±Å™¼ÑŒ­Â‘³Ç”¶ËŒ­Â±Å’µÉ‡¨¼±Å’µÉ”¶Ë’µÉ±Å±Å‘³Ç”¶Ë±Å±Å‘³Ç‘³Ç‘³Ç±Å¯Ä¯Ä•±É”¯Ç”¯Ç’­Å’­Å”¯Ç”¯Ç•±ÉŒ¦¾ªÂ’­Å”¯Ç•±É•±É•±É”¯Ç”±¾•³À•±É—³Ñ—±Ù•¯×•±Ï”¯ÇœºÇ—¶º’³¯‘±­”³¶—µÂ•±É‘¬Ä—¶¾™¸ÀšºÂ™¶Å•³Â”¯Ç•±É—³Ë—³Ëš¶Ï•³Â—µÄ•³ÀœºÇ­±‚Ÿ£—ªµ£µÇ~’Ÿ”¨œ±Ç•ªÇ£¸×‘¥Âž¶Ï™±Éš³ÇŸ¸ÍŸºÇšµÂ™¸Àž¾Å”¶Ë‘³Ç•¸Í¯Ä•¸Í±Å•¸Í’µÉ•¸Í”¶Ë”¶Ë”¶Ë”¶Ë”¶Ë”¶Ë•¸Í•³Å•³Å—µÇ—µÇ—µÇ™¶É™¶É™¶É—µÇ™¶Éš¸Ëš¸Ë™¶É—µÇ™¶ÉœºÍ³ÄͳÄÍ™ª­EQS#";EDixoMZS”¦œ¬ÀµÄÙÍÀÕÉ•¦¥Ÿž6@? 10   %,#  (=7+&    '9*<"2|™…’³À±Ñû­Û­Û’³ÏŠ¦µ‡¦£Š¡¡w‰‰]fn[aojo{‰‘¥µ¾ž­¶ž­¶£³¼Ÿ¯¸±Â˯ÀɱÂ˱Â˯ÀÉ­¾Ç­¾Ç¬¼ÅªºÄªºÄ¥µÅ¥µÅ¡±Â¡±Â¥µÅ¦¶Ç£³Äž­¾¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Ç¦¶Ç¥¼Ë£ºÉŸ¶ÅžµÄžµÄŸ¶Å£ºÉ¥¼Ëš±À¡¸Ç¡¸ÇžµÄŸ¶Å¦¾Í¦¾Í£ºÉ£ºËš±Â¡¸É¦¾Ïœ³Ä¡¸É¨ÀÑŸ¶Çœ³ÄŸ¶Ç¥¼Í£ºË¡¸É¡¸É¥¼Í¨ÀÑ¥¼Ë¥¼Ë¥¼Ë£ºÉ¡¸É¡¸É£ºË¦¾Ï³ËÝžµÅ¯ÅÝ£¸ÏŸµË¶Íå¬ÂÙ£¸Ïž¾Â‡¥¨Tkq_x~Ofkn‰b|…t‘š’³¾‡¦±{œ¡Wrw+?@!12-DD>YYQjk>NRWnnm‚IYY+45<DF’Ÿ£|Ÿ¶~¡¸£º¥¼‚¦¾¥¼¥¼¥¼‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾„¨À„¨À„¨À‚¯Ä‚¯Ä‚¯Ä­Â¬À~ª¾|¨¼{¦º~ª¾‚¯Ä„±Å­Â­Â‡µÉ‡µÉ„±Å‰±Ç‡¯Å…­Ä…­Ä…­Ä…­Ä‡¯Å‰±Ç…­Ä…­Ä‡¯Å‰±Ç‰±Ç‰±Ç‰±Ç‡¯Å‡¯Å‡¯Å‰±Ç‰±Ç‰±Ç‰±Ç‡¯Å‡¯Å‡¯Å…­Ä„¬Â„¬Â„¬Â‡¯Å‰±ÇŠ³ÉŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¨ÂŒªÄ¬Å¬ÅŠ¨ÂŠ¨ÂŒªÄ¬Å­Ç­Ç­Ç­Ç¬Å¬Å¬Å¬Å’¯Â‘­À‘­À‘­À‘­À’¯Â”±Ä•³Å¬¾’¯Â•³Å—µÇ•³Å”±Ä•³Å™¶É™±Åš³Çš³Ç™±Å—¯Ä—¯Äš³ÇœµÉš³Ç™±Å—¯Ä—¯Ä—¯Ä—¯Ä™±Åš³Ç‡¥º—¶Í•µË‘¯Å”³ÉŒªÀ‰¦¼—¶Í‘¯Å•µË•µË‘¯Å‘¯Å•µË•µË‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å’±Ç’±Ç‘¯Å‘¯Å‘¯Å‘¯Å’±Ç’±Ç­Ä­Ä‘¯Å’±Ç’±Ç’±Ç’±Ç’±ÇšºÑ­Ä’±Ç•µË¬Â‘¯Å•µËŠ¨¾•µË—¶Í•µË”³É‘¯Å’±Ç•µË™¸Ï­Ä‘¯Å‘¯Å’±Ç’±Ç’±Ç’±Ç‘¯Å•±É•±É”¯Ç”¯Ç”¯Ç”¯Ç•±É•±É‘¬Ä‘¬Ä’­Å”¯Ç”¯Ç•±É•±É—³Ë•³À•³À—³Ë—³Ñ—±Ù—±Ù•±Ï•±É¥ÄÑšº¾’±±‘¯¯•µ¼™¶Å™µÑ™µÑ—µÂ™¶Äš¸Å™¶É•³Å”¯Ë•±Í—³Ï—³Ë¡¾×ª¼£ÂÕª¶¡ÀÍ~š¡r”¥¯’¨³Œ¡¬|‘Ÿœ³ÄyŒ£•­Å—¯ÇŸ¸Ñš³Ë™±Åž¶Ëž¶Ç™±Â—±ºœ¶À•µË™¸Ï‘¯Å•µË¬Â—¶Í”³É™¸Ï•µË•µË•µË•µË•µË•µË•µË•µË—µÇ—µÇ—µÇ™¶É™¶É™¶Éš¸Ëš¸Ë•³Å™¶Éš¸Ëš¸Ë™¶É™¶ÉœºÍŸ¾Ñ³ÄÍœ­¯³ÇÀ‘„,7++6'?N4%1YmF…žnœ¶‚‡žu_rQWiL#.1J$0I# !1(7KIay|.?C2DIXor0B@
+ );0,@0!0 &3TfJ³Ï„šœšºÂŠ¨¯‰¨¥‚¡—u•{YoZ4E5)3+AKEn{y~™£¶Â™¬¶™¬¶£¶Â¡µÀ¯ÄϪ¾É¯ÄϯÄÏ­ÂÍ­ÂͬÀ˪¾É¨¼Ç¨¼Ç¯ÀÑ¥µÅž­¾£³Ä¬¼Í±ÂÓ¬¼Í¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¨ÀϦ¾Í£ºÉ¡¸Ç¡¸Ç£ºÉ¦¾Í¨ÀÏœ³Â¡¸Ç¡¸ÇžµÄŸ¶Å¦¾Í¦¾Í¡¸Ç¦¾Ïœ³Ä£ºË¦¾Ïœ³ÄŸ¶Ç¦¾Ïœ³ÄŸ¶Ç¡¸É£ºË£ºËŸ¶ÇŸ¶Ç¡¸É£ºËªÅÓ¦ÂÏ£¾Ë¡¼É£¼Í£¼Í¡ºËŸ¸ÉŸ¸É’ªº£¼ÍŸ¸É”¬À¨Â×”¬À‰Ÿ³u‘—qŒ’MbkNcmRgqQfo9MUAW_t‘œx•¡…¦³{š¦Smw?U^@ZbD_gNjy/@M->IQcmr‰‘N[^-73MZU~¡¸£º£º¥¼¥¼‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾‚¦¾„¨À„¨À„¨À„¨À…ªÂ­Â­Â„±Å„±Å„±Å­Â~ª¾|¨¼~ª¾‚¯Ä„±Å­Â‚¯Ä‰¶ËŠ¸Í…³Ç‰±Ç‰±Ç‡¯Å‡¯Å‡¯Å‡¯Å‰±Ç‰±Ç‡¯Å‡¯Å‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‰±Ç‡¯Å…­Ä„¬Â‚ªÀ„¬Â‡¯ÅŠ³É¶ÍŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­Â‰¦ÀŒªÄ¬ÅŒªÄŠ¨Â‰¦ÀŠ¨Â¬Å‘¯É‘¯É‘¯É­Ç¬Å¬ÅŒªÄŒªÄ‘­À‘­À‘­À‘­À‘­À’¯Â”±Ä•³Åª¼¬¾’¯Â”±Ä•³Å•³Å—µÇ—µÇ—¯Äš³Çž¶ËœµÉ—¯Ä•­Â™±Åž¶Ëš³Çš³Ç™±Å™±Å™±Å™±Åš³Çš³ÇŒªÀ™¸Ï•µË’±Ç—¶Í’±Ç¬Â™¸Ï‘¯Å•µË•µË‘¯Å‘¯Å•µË•µË‘¯Å’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç”³É’±Ç‘¯Å‘¯Å‘¯Å‘¯Å’±Ç”³É­Ä‘¯Å’±Ç’±Ç”³É”³É’±Ç’±ÇšºÑ­Ä”³É—¶Í­Ä”³É—¶ÍŒªÀ—¶Í—¶Í•µË’±Ç­Ä‘¯Å•µËšºÑ¬Â­Ä‘¯Å’±Ç”³É”³É”³É”³É—³Ë•±É”¯Ç”¯Ç”¯Ç”¯Ç•±É—³Ë”¯Ç”¯Ç’­Å’­Å”¯Ç•±É—³Ë™µÍ•³À•³À—³Ë™µÓ™³Û—±Ù•±Ï•±ÉœºÇ’±µŒªª­­•µ¼—µÄ™µÑš¶Ó•³À™¶Äš¸Å™¶É•³Å”¯Ë•±Í™µÑ•±É™µÍª¼š¸Ë’¯¼™¶Äw’™c|‚o‚Œ~’œŠŸª•¥„™¨fwŒ~”ªŸ¸ÑŸ¸Ñš³Ë™±Åž¶ËœµÅ•­¾•¯¸šµ¾—¶Íœ¼ÓŒªÀœ¼Ó‡¥ºœ¼Ó‘¯ÅšºÑ•µË—¶Í—¶Í—¶Í—¶Í—¶Í—¶Í•µË™¶É™¶É™¶É™¶Éš¸Ëš¸Ëš¸ËœºÍ•³Å™¶Éš¸ËœºÍš¸ËœºÍŸ¾Ñ¡ÀÓ±ÂË™ª¬ºÏǵɺ[kY1=,-:$'4!-BS2Ob>L]?IY<cwXO_Ggy^_‚M?[10 2KdMnŒ{m‰…r‘k…Œ5GL!#  %,?3! &M^CM_W>MN1BF1BF#21'71!2$+'6(IWKfrkkxw_nwŸª”¦±Ÿ³¾¨¼ÇŸ³¾¨¼Ç¡µÀ¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä¥¸Ä±ÂÓ¦¶Ç¡±Â¥µÅ¨¸É¨¸É¦¶Ç¨¸É¥µÅ¥µÅ¥µÅ¥µÅ¥µÅ¦¶Ç¦¶Ç¦¶Ç¨ÀϦ¾Í¦¾Í¥¼Ë¥¼Ë¦¾Í¦¾Í¨ÀÏœ³Â¡¸Ç£ºÉžµÄŸ¶Å¥¼Ë¦¾Í¡¸Ç¨ÀÑžµÅ¥¼Í¦¾Ïœ³ÄžµÅ¥¼Íš±Â£ºË£ºË£ºË¡¸ÉŸ¶ÇžµÅžµÅŸ¶Ç¨ÄÑ£¾Ëœ¶Äœ¶Ä¡ºË¡ºËž¶Çš³Ä¥¾ÏœµÅ¬Å׳Íßš³Ç¯Éߌ£¶~”¦ayk…ŒušFZcf~‰1BJ2EM<QYXq{Ogq[wo™t’žr‘œg‰’XwB[j4FT?S_]q{uŒ”cru:EA9D@£º£º£º¥¼¥¼‚¦¾‚¦¾„¨À‚¦¾‚¦¾‚¦¾„¨À„¨À…ªÂ…ªÂ‡¬Ä‚ªÀ„¬Â‡¯Å‰±ÇŠ³É‰±Ç‡¯Å…­Ä¨¾…­Ä‡¯Å„¬Â…­ÄŒµË¶Í‰±ÇŒ±ÉŒ±ÉŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŒ±ÉŒ±ÉŒ±ÉŒ±ÉŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŠ¯Ç³ËŒ±É‰­Å‡¬Ä‡¬Ä‰­ÅŒ±É³Ë‰­Å‰­Å‡¬Ä‡¬Ä‡¬Ä‰­ÅŒ±É³ËŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŠ¬ÀŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŠ¨ÂŒªÄ¬Å¬ÅŠ¨ÂŠ¨ÂŒªÄ¬Å’±Ë’±Ë‘¯É‘¯É­Ç¬Å¬Å¬Å’¯Â’¯Â‘­À‘­À‘­À’¯Â”±Ä•³Å¬¾¬¾‘­À”±Ä•³Å—µÇ—µÇ•³Å—¯ÄœµÉŸ¸Íž¶Ë™±Å—¯Äš³Çž¶ËœµÉœµÉš³Çš³Çš³Çš³ÇœµÉœµÉ’±Ç™¸Ï‘¯Å­Äœ¼Ó™¸Ï­Ä”³É­Ä”³É”³É­Ä­Ä”³É”³É­Ä’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç’±Ç”³É”³É’±Ç‘¯Å‘¯Å’±Ç”³É”³É­Ä‘¯Å’±Ç”³É”³É”³É”³É’±ÇšºÑ­Ä”³É™¸Ï‘¯Å•µËšºÑ­Ä•µË•µË”³É‘¯Å¬Â­Ä”³É™¸Ï­Ä‘¯Å’±Ç”³É”³É”³É”³É”³É—³Ë—³Ë•±É”¯Ç”¯Ç•±É—³Ë—³Ë—³Ë•±É•±É”¯Ç•±É•±É—³Ë™µÍ•µ¼—¶¾™¶É™µÑ™³×™³×—³Ñ•±ÉŒ¨µž¡|™™…££¬¸¬¾‘¬É•±Ï•³Å—µÇ™µÍ™µÍ•±Í•±Í—³Ï™µÑ•±Í‘¬Ç™¶Éª¼Ÿ¾ËŒ¨µ|™Ÿ_x~d{{n……jtŠ’i~…q…”uŠ™¦ÀÙŸ¸Ñš³Ë™±Åž¶ËœµÅ•­¾•¯¼šµÂ•µËœ¼ÓŒªÀž¾Õ‰¦¼ž¾Õ‘¯ÅšºÑ•µË—¶Í™¸Ï™¸Ï™¸Ï™¸Ï—¶Í•µË™¶Éš¸Ëš¸Ëš¸ËœºÍœºÍœºÍœºÍ—µÇ™¶ÉœºÍž¼ÏœºÍž¼ÏŸ¾Ñ£ÂÕ­ÀÑÂÙÙºÓÅœµšq‰c?R/$4!1, (;#4 + ,
+1D'8;N&+A. -?9Ujii~‚Qai(39-7;2=A $!+*2
++7+4
+    %+=c{Nžº‰Œ¦xZnSL^g—£‘ª¶œ¶Äœ¶Ä¨µœ¶Äœ¶Ä•¯¼—±¾™³ÀšµÂœ¶Äž¸ÅŸºÇ¡¼É£µÅ¡³Ä¡³Äž¯À’£³‰™¨‘¡±¡³Ä£µÅ¥¶Ç¥¶Ç¥¶Ç¦¸É¦¸É¨ºË¨ºË¡¸ÇŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶Å¡¸ÇžµÄ£ºÉ£ºÉžµÄŸ¶Å¥¼Ë¥¼ËŸ¶Å¨ÀÑžµÅ¥¼Í¦¾Ïœ³ÄžµÅ¥¼Íš±Â¥¼Í¥¼Í£ºË¡¸É¡¸ÉŸ¶ÇŸ¶ÇžµÅ¥¾ÏŸ¸Éš³Äš³Ä¡ºË£¼Í¡ºËœµÅŸºÇ•¯¼—±¾ŸºÇ™¥ŸºÇ~•¡y‘œuœ‚ž¬Š¦µOdon‡”<NXMcqi‚’y•ª[t…Sk_ynŠ£„£¾±Ñ…¨Ç{œ¾+?T':II^nnŠ”Œ¥ªauk5D=¥¼¥¼¥¼£º¥¼‚¦¾„¨À…ªÂ‚¦¾‚¦¾„¨À„¨À…ªÂ‡¬Ä‡¬Ä‡¬Ä„¬Â…­Ä‡¯Å‰±ÇŠ³ÉŠ³ÉŠ³ÉŠ³É‚ªÀ‰±Ç‰±Ç…­Ä…­ÄŒµË¶Í‰±Ç³Ë³ËŒ±ÉŠ¯ÇŠ¯ÇŒ±É³Ë³Ë³Ë³ËŒ±ÉŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŒ±ÉµÍ³ËŠ¯Ç‡¬Ä‡¬ÄŠ¯Ç³ËµÍŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŠ¯ÇŠ¯Ç‰­Å‰­ÅŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­ÂŒ­Â¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯ÄŒªÄ¬Å‘¯É­ÇŒªÄŒªÄ¬Å­Ç‘¯É‘¯É‘¯É‘¯É­Ç­Ç­Ç­Ç”±Ä”±Ä’¯Â’¯Â”±Ä”±Ä•³Å—µÇ’¯Â‘­À’¯Â”±Ä—µÇ™¶É—µÇ”±Ä™±Åš³Çž¶Ëž¶ËœµÉš³Çš³ÇœµÉž¶Ëž¶ËœµÉš³Çš³ÇœµÉž¶Ëž¶Ë’±Ç•µËŒªÀŒªÀœ¼ÓšºÑ¬Â­Ä­Ä”³É”³É­Ä­Ä”³É”³É­Ä”³É”³É”³É”³É”³É”³É”³É”³É”³É”³É’±Ç’±Ç’±Ç’±Ç”³É”³É‘¯Å‘¯Å’±Ç”³É•µË•µË”³É”³Éœ¼Ó‘¯Å•µË™¸Ï’±Ç—¶Íœ¼Ó‘¯Å”³É”³É”³É’±Ç­Ä­Ä”³É—¶Í‘¯Å’±Ç”³É”³É•µË”³É”³É’±Ç—³Ë—³Ë•±É•±É•±É•±É—³Ë—³Ë—³Ë—³Ë—³Ë—³Ë—³Ë—³Ë—³Ë—³Ë—¶¾—¶¾™¶É™µÑ™³×™³×—³Ñ—³ËŠ¦³{—šw’’žž‰¥±Š¦¸¨Å—³Ñ”±Ä—µÇ™µÍ™µÍ•±Í•±Í—³Ïš¶Óš¶Ó‘¬Ç¡ÀÓ‰¥¶£ÂÏ…¡­œ£b{rŠŠf||NbbZnuau|‘¨¸—¦¨ÂÛŸ¸Ñš³Ë™±Åž¶Ëž¶Ç™±Â—±¾œ¶Ä•µË™¸Ï’±ÇšºÑ’±ÇšºÑ”³É—¶Í•µË—¶Í™¸ÏšºÑšºÑ™¸Ï—¶Í•µËš¸Ëš¸ËœºÍœºÍœºÍž¼Ïž¼Ïž¼Ï™¶ÉœºÍŸ¾ÑŸ¾Ñž¼Ïž¼ÏŸ¾Ñ£ÂÕœ­¾Ÿµµ£—š³™Ÿ¼Nc<) , %'#(. 8M.A:M%- #7KDOcbauySck)4:"+."+. 4?0!7AFU! %:N1G^:cQ{šfx’aYnJ=N10>+UirŠ£¯•¯¼—±¾‘ª¶…žªšµÂ¥ÀÍ—±¾—±¾™³ÀšµÂž¸ÅŸºÇ¡¼É£¾Ë¡³Ä¥¶Çª¼Í¡³Ä‰™¨x‡•‡—¦¥¶Ç£µÅ¥¶Ç¥¶Ç¦¸É¨ºË¨ºËª¼Íª¼Í¡¸Ç¡¸Ç¡¸Ç¡¸Ç¡¸Ç¡¸Ç¡¸Ç¡¸ÇžµÄ£ºÉ£ºÉžµÄŸ¶Å¥¼Ë¥¼ËŸ¶Å¦¾Ïœ³Ä£ºË¦¾Ïœ³ÄŸ¶Ç¦¾Ïœ³Ä¨ÀÑ¥¼Í£ºË£ºË¥¼Í¥¼Í¡¸ÉžµÅ£¼Í¡ºËž¶Çž¶Ç¡ºË£¼Í£¼Í¡ºË”­º‡Ÿ¬y‘œ‚š¦_t~‰¡­n„r‰”rŒ™„Ÿ­qŠ—uœrŒ™qŠ—_x‡y•¦~š¯k…™g‚™g‚™_y‘j…ž¡ÀŠ­Í‚¥Ç:QiSo„~š¯]wK]aK]TM_W‚¦¾‚¦¾¥¼£º¥¼‚¦¾„¨À…ªÂ‚¦¾‚¦¾„¨À„¨À…ªÂ‡¬Ä‰­Å‰­Å‡¯Å‡¯Å‡¯Å…­Ä‡¯Å‡¯Å‰±Ç‰±Ç…­ÄŠ³ÉŠ³É…­Ä…­ÄŒµËŒµË‡¯ÅµÉ³ÇŒ±ÅŒ±ÅŒ±ÅŒ±Å³ÇµÉµÉ³ÇŒ±ÅŠ¯Ä‰­ÂŠ¯ÄŠ¯ÄŒ±ÅŒ±ÅŒ±ÅŒ±ÅŒ±ÅŒ±ÅŒ±ÅŒ±ÅŒ±ÅŠ¯ÄŒ±Å³Ç³Ç³ÇŠ¯Ä…ª¾„¨¼¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¬Â‘¯Å’±Ç‘¯Å­Ä¬Â­Ä’±Ç­Ä­Ä‘¯Å‘¯Å‘¯Å‘¯Å‘¯Å’±Ç•³Å•³Å”±Ä”±Ä•³Å—µÇ™¶É™¶É—µÇ”±Ä”±Ä•³Åš¸Ëš¸Ë—µÇ’¯Âš³Çš³Çš³Çž¶ËŸ¸ÍŸ¸ÍœµÉ™±ÅŸ¸Íž¶ËœµÉœµÉœµÉœµÉž¶ËŸ¸Í’¯Âš¸Ë”±Ä’¯ÂœºÍ™¶É‘­À—µÇ”±Ä™¶É™¶É”±Ä”±Ä™¶É™¶É”±Ä•³Å•³Å•³Å•³Å•³Å•³Å•³Å•³Å—µÇ•³Å•³Å”±Ä”±Ä•³Å•³Å—µÇ’¯Â”±Ä•³Å•³Å—µÇ—µÇ•³Å•³Åž¼Ï’¯Â—µÇœºÍ•³Åš¸ËŸ¾Ñ”±Ä•³Å—µÇ™¶É—µÇ•³Å”±Ä•³Å™¶É•³Å•³Å—µÇ—µÇ—µÇ•³Å”±Ä’¯Â™¶É—µÇ—µÇ•³Å•³Å—µÇ—µÇ™¶É•³Å—µÇ™¶Éš¸Ëš¸Ë™¶É—µÇ•³Å—¶º™¸¼™¶Åš¶Ïš¶Õ™µÓ™µÑ—µÇ¬³x””m‰…t‘y•™{•¡„žµ”¯Ç”¯Ç•±É™µÑ™µÑ•±Í•±Í™µÓš¶Õ™µÑ™µÑ™µÍª¸¬³‚Ÿ¦t’c|g…{YukSndLdbg•µ¼‰¦­¡ÀÏž¶Ë™±Åš³ÇŸ¸ÍŸ¸Éš³ÄœµÅ¡ºË•³Å•³Åž¼Ï—µÇ¡ÀÓ—µÇš¸Ë”±Ä—µÇ™¶ÉœºÍž¼Ïž¼ÏœºÍ™¶É—µÇŸ¸ÉŸ¸ÉŸ¸É¡ºË¡ºË¡ºË£¼Í£¼ÍŸ¸É£¼Í¥¾Ï£¼Í¡ºË¡ºË£¼Í¥¾Ïš¬Ân|cru™¯ž¼Ù­rŒY5J,A1)*1,,A1 / &#$5+G_Qdo]rc1A4 
+ ! 2:
+5>+3 /7 6@,9'
+9LTk2mŠF[u=0E),':ax‡¬¾’¯Â‘­ÀŒ¨º„Ÿ±™¶É¡ÀÓ—µÇ—µÇ™¶É™¶É™¶Éš¸Ëš¸Ëš¸Ë¥¶Ç¨ºË­ÀÑ¥¶Ç‰™¨u„’‡—¦ª¼Í¡³Ä¡³Ä£µÅ¥¶Ç¦¸É¨ºË¨ºËª¼Í¥¼Ë¥¼Ë¥¼Ë¦¾Í¦¾Í¥¼Ë¥¼Ë¥¼ËŸ¶Å¥¼Ë¥¼ËŸ¶ÅžµÄ£ºÉ£ºÉžµÄ£ºËš±Â¡¸É¦¾Ïœ³Ä¡¸É¨ÀÑŸ¶ÇªÂÓ¥¼Í£ºË£ºË¦¾Ï¨ÀÑ¥¼Í¡¸Éž¼ËŸ¾ÍŸ¾ÍœºÉ™¶Å—µÄ™¶ÄœºÇŸ¾Ë—µÂ‡¥¬—¶¾j„Š”³ºm‡n‰by‰o‰™f~ª¼x’£…¡³c|Œi‚’Xo~Xo„b|”]u”DYt>RqKc…Wq•µ×Li|[{‘’µÉ‘µ¾f‚9JF/>;„¨À‚¦¾¥¼£º¥¼‚¦¾…ªÂ‡¬Ä‚¦¾‚¦¾„¨À…ªÂ‡¬Ä‡¬Ä‰­ÅŠ¯ÇŒµË‰±Ç…­Ä„¬Â‚ªÀ‚ªÀ„¬Â…­Ä‡¯ÅŒµËŒµË‡¯Å…­ÄŠ³ÉŠ³É…­ÄµÉ³Ç³ÇŒ±ÅŒ±Å³Ç³ÇµÉ‘¶ËµÉŒ±ÅŠ¯Ä‰­ÂŠ¯ÄŠ¯ÄŒ±Å‡¬ÀŠ¯Ä³Ç‘¶Ë‘¶Ë³ÇŠ¯Ä‡¬ÀŠ¯ÄŒ±ÅµÉ‘¶ËµÉŠ¯Ä„¨¼¥¸±Å±Å±Å±Å±Å±Å±Å±Å¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä¯Ä­Ä‘¯Å”³É’±Ç­Ä­Ä‘¯Å’±Ç¬Â­Ä­Ä‘¯Å‘¯Å’±Ç’±Ç”³É—µÇ—µÇ•³Å•³Å—µÇ—µÇ™¶Éš¸Ëš¸Ë—µÇ”±Ä—µÇš¸ËœºÍ—µÇ’¯Âž¶Ëš³Ç™±ÅœµÉ¡ºÏ¡ºÏœµÉ•­ÂŸ¸Íž¶Ëž¶ËœµÉœµÉž¶Ëž¶ËŸ¸Í’¯Â¡ÀÓŸ¾Ñš¸Ëž¼Ï—µÇ”±Ä¡ÀÓ—µÇœºÍœºÍ—µÇ—µÇœºÍœºÍ—µÇ•³Å•³Å•³Å•³Å•³Å•³Å•³Å•³Å—µÇ•³Å•³Å”±Ä”±Ä•³Å•³Å—µÇ’¯Â”±Ä•³Å—µÇ—µÇ—µÇ—µÇ•³Åž¼Ï’¯Â—µÇœºÍ•³Åš¸ËŸ¾Ñ”±Ä•³Å™¶ÉœºÍœºÍ™¶É—µÇ—µÇ™¶É—µÇ—µÇ—µÇ—µÇ—µÇ”±Ä’¯Â’¯Â™¶É—µÇ—µÇ•³Å•³Å—µÇ—µÇ™¶É•³Å—µÇš¸Ëž¼Ïž¼Ïš¸Ë—µÇ”±Ä—¶º™¸¼™¶Åš¶Ïš¶Õ™µÓ™µÑ—µÇ‡¥¬m‡‡]wt_ywd~f~‰rŠŸ„žµ’­Å•±É™µÑ—³Ï—³Ï•±Í™µÓœ¸×”¯Ëžº×Š¥¼’¯¾w’™œ£f‚_x{OjaQkbq‘…Qjgt…£ªŠ¨¯ž¼Ëž¶Ë™±Åš³ÇŸ¸Í¡ºËž¶Çž¶Ç£¼Í•³Å‘­À¥Ä×”±ÄªÉÝ’¯ÂœºÍ‘­À—µÇ™¶ÉœºÍž¼Ïž¼ÏœºÍ™¶É—µÇŸ¸ÉŸ¸ÉŸ¸É¡ºË¡ºË£¼Í£¼Í£¼Í¡ºË¥¾Ï¦ÀÑ¥¾Ï¡ºËŸ¸É¡ºË¥¾Ï±ÄÛ|ŒŸcruj|n‰¡|¬ËŒ‡¨^D^!&: .$8 1I'< >W5L1F?YDD^N<RDMfWy™…]rc'   )7@&CK*juDBK$! /7 -5 
+
+#7 4
+/)@+C&< %1I(QoE¥m|Ÿi•¼|7J$"1
+$1'++0C+FbAAZ@IZcw™šµÂž¸ÅŸºÇž¸Å™³Àœ¶Ä¡¼ÉªÅÓ¡¼ÉšµÂ£¾Ë£¾Ëž¸Å£¾Ë•¯¼¬ÇÕ‘ª¶y‘œ…žªjŠ…žª¥ÀÍœ¶Ä—±¾œ¶ÄšµÂ¨µ™³À¡¼É”­º¡¸Ç£ºÉ¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼Ë¥¼Ë¥¼Ë¥¼Ë£ºË¥¼Í¥¼ÍŸ¶Çš±Â™¯ÀžµÅ£ºËŸ¶Ç£ºË¦¾Ï¦¾Ï£ºË£ºË£ºË¥¼Í™¸Ë¡ÂÕŸÂÏt‘œk‡‘d‰u’™w”š‚£¥Ÿ¡j‡…[wua|yc|UomF^[m„™~—­rŒœ]t~b{;NN('1DBQjgE]ZMif1FJKdkw•¥~¡µ]{Œ{¡¡;UU;WSE][<RQL__XjkZmn…ªÂ…ªÂ„¨À„¨À„¨À…ªÂ‡¬Ä‰­Å…ªÂ‡¬Ä‰­Å‰­ÅŠ¯ÇŠ¯Ç‰­Å‰­Å¯ÉŒ¬ÅŠªÄŒ¬Å¯É’³Í’³Í‘±ËŠªÄŒ¬ÅŒ¬Å­Ç¯É‘±Ë’³Í’³ÍŒª¼¬¾‘¯Â’±Ä”³Å’±Ä‘¯Â­À”³Å”³Å”³Å•µÇ•µÇ—¶É—¶É—¶É’±Ä’±Ä’±Ä’±Ä’±Ä’±Ä’±Ä’±Ä’±Ä’±Ä‘¯Â‘¯Â‘¯Â‘¯Â’±Ä’±Ä±Å’µÉ’µÉ¯Ä¯Ä’µÉ’µÉ±Å±Å±Å±Å±Å±Å±Å±Å±Å™¸Ë”³Å‘¯Â­À’±Ä”³Å•µÇ”³Å’±Ä’±Ä’±Ä’±Ä’±Ä•µÇ—¶É—¶É’¯Â—µÇœºÍž¼Ïš¸Ë—µÇ•³Å•³Å—µÇ—µÇ™¶É™¶É™¶Éš¸Ëš¸Ëš¸Ë—¯Äš³Çž¶Ëž¶Ëž¶ËŸ¸Íž¶Ëš³Ç¥¾Ó¡ºÏœµÉš³Çš³ÇœµÉ¡ºÏ¥¾Ó—¯ÀŸ¸É¥¾ÏŸ¸É—¯À”¬¼œµÅ¥¾Ïš³Äš³Äš³Äš³Äš³Äš³Äš³Äš³ÄŸ¸Éž¶Ç¡ºËœµÅ¡ºËœµÅŸ¸ÉœµÅš³Äž¶Çž¶Ç™±Â™±Âž¶Çž¶Çš³ÄŸ¸É—¯Àž¶Ç£¼Í™±ÂœµÅ¥¾Ïš³ÄŸ¸Éž¶ÇœµÅœµÅœµÅœµÅž¶ÇŸ¸ÉœµÅš³Ä™±ÂœµÅ¡ºË¥¾Ï¥¾Ï£¼ÍœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅŸ¾Íš¸Ç—µÄ™¶Åž¼ËŸ¾Í™¶Å’¯¾•³Âž¼Ë‘­¼¥ÄÓ‘­¼¥ÄÓ—µÄŸ¾Í•µ¸™¸¼™¶ÄœºÍ”±Ä•³Å¬¸‘±­‰ªš]yb:R;5L67N8C[GXt_w”Šušš¬ª¼¨ÇÛy”¥’¯Â™¶É—µÇª¸‚Ÿ¦~šžªÍɯ¨f‚u3G>(:/3 OwW!8%*%<0-F=2IEOfiœ£š¸Ç¯Éߣ¼Ñž³É¦¼Ó¥ºÑ™­ÄŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸É¥¾Ï¥¾Ï¥¾Ï¦ÀѦÀѦÀѨÂÓ¨ÂÓžµÄ¡¸Ç£ºÉ£ºÉ¡¸Ç¡¸Ç£ºÉ¦¾Í£ºÉ¡¸Ç¦¾Í£ºÉœ³Â£ºÉªÂÑ£ºÉŸ¶Õ¨ÀߨÂÓ¬ÇÑŒ¦¥>QE(!1%';"5- * Lk+(@ '
+1/ &. 3J#5 +A>S#11B-= +; %10> FT>ZjQLY4L[.f{6/>3C;L%9J-D[<k‰d¦y{žykŒ’¬¸¨ÄѦÂϪÅÓ£¾ËšµÂŸºÇž¸ÅµÑߦÂÏ—±¾£¾Ëž¸Å”­º¥ÀÍ™³À¨ÄѨµ{’žr‰”autŠ•y‘œšµÂŒ¥±‘ª¶—±¾‘ª¶—±¾¬ÇÕ±ÍÛ¡¸Ç£ºÉ¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼Ë¨ÀϨÀϦ¾Í¦¾Í¥¼Ë£ºÉ£ºÉ£ºÉ¦¾Ï¨ÀѨÀÑ¥¼ÍŸ¶ÇŸ¶Ç£ºË¦¾Ï¥¼Í¨ÀѪÂÓ¬ÄÕ¬ÄÕ¨ÀѦ¾Ï¥¼Í”³Åœ¼Ï¥ÇÕ‚¡­^xQiqf‡w”š¡£]xyRkj]xwOifSmjf‚Mfc^t‡x‘¦qŠš[r|Tkq9LL'86:OM6KI6KIWtq@X[JcjqžµÉyœ¯~¥¥B^^Nnj]xwIa_Sggdxym‚„¨À„¨À„¨À„¨À…ªÂ…ªÂ‡¬Ä‰­Å…ªÂ‡¬Ä‰­ÅŠ¯ÇŠ¯ÇŠ¯ÇŠ¯Ç‰­Å¯É­ÇŠªÄŒ¬Å‘±Ë’³Í’³Í’³ÍŒ¬ÅŒ¬Å­Ç¯É‘±Ë’³Í’³Í”µÏŒª¼¬¾‘¯Â’±Ä”³Å’±Ä‘¯Â­À”³Å”³Å”³Å•µÇ•µÇ—¶É—¶É—¶É•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ”³Å’±Ä’±Ä‘¯Â‘¯Â’±Ä’±Ä”³Å¯Ä”¶Ë”¶Ë±Å±Å”¶Ë”¶Ë¯Ä±Å±Å±Å±Å±Å±Å±Å±Å™¸Ë•µÇ‘¯Â‘¯Â’±Ä•µÇ•µÇ•µÇ’±Ä’±Ä’±Ä’±Ä’±Ä•µÇ—¶É—¶É‘­À•³Åš¸ËœºÍ™¶É•³Å”±Ä”±Ä—µÇ—µÇ™¶É™¶É™¶Éš¸Ëš¸Ëš¸Ë™±Å™±ÅœµÉŸ¸ÍŸ¸Íž¶ËœµÉœµÉž¶ËœµÉœµÉœµÉœµÉœµÉœµÉž¶ËŸ¸ÉŸ¸ÉŸ¸Éž¶ÇœµÅœµÅŸ¸É¡ºËœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅž¶Çš³ÄŸ¸Éš³ÄŸ¸ÉœµÅŸ¸É™±ÂŸ¸ÉŸ¸Éš³Äš³ÄŸ¸ÉŸ¸É™±Â¡ºË—¯ÀŸ¸É£¼Í™±Âž¶Ç¥¾ÏœµÅŸ¸ÉŸ¸Éž¶ÇœµÅœµÅž¶ÇŸ¸ÉŸ¸É¥¾Ï¡ºËž¶Çž¶Çž¶ÇœµÅ™±Â•­¾œµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅž¼Ëš¸Ç™¶Åš¸Çž¼Ëž¼Ë™¶Å”±À•³Âž¼Ë‘­¼¥ÄÓ‘­¼¥ÄÓ—µÄŸ¾Í™¸¼™¸¼œºÉ”±À’¯¾Š¦µ¬¯­££‡UtR:T12K*8R/<U6OmIf‡bf~‰w‘œŠ¦³¡ÀÍrŒ—Œ¨µ—¶¾—¶¾{—šx•’m‰‚±¡—º¦±—;RA!+NyS;#)+"6++@:Rnk•ºÀ‘­¼¬ºœ±Ë¡¶Ñ¡¶Ñ£¸Ó¨¾ÙŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸Éž¶Çž¶ÇŸ¸ÉŸ¸É¡ºË¡ºË¡ºË¡ºËŸ¶Â¡¸Ä¥¼Ç¥¼Ç¡¸Ä¡¸Ä¥¼Ç¦¾É¨ÀËŸ¶Â¦¾É£ºÅ•¬¶¡¸ÄªÂÍ•¬¶•±¬¯ÍÇ¥ÂÀ”¯­¨¦f|{<MJ2C;
+ '#5*) $:!6 1 $!0 . @X+?'9$6'#, 0B,+<¬¾¦ÅÙ‰¥”~—o‡¦a3C#1 '(  -91Sgc•±¬ªÍů¨¨¼Ç¶Ë×±ÅѪ¾É¯ÄϦºÅœ¯º£¶Â¦ºÅž±¼~™{Œ•Ÿ³¾¨¼Çœ¯º¨¼Ç¡¼É•¯¼Š£¯‰¡­_t~cx‚|”Ÿ^r|ŸºÇkŒf{…‘ª¶­ÉתÅÓ£¾Ëœ¶Ä¡¸Ç£ºÉ¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼Ë¦¾Í¦¾Í¦¾Í¥¼Ë£ºÉ£ºÉ¡¸Ç¡¸Ç¦¾Ï¦¾Ï¦¾Ï¥¼Í£ºË£ºË¥¼Í¦¾Ï™¯Àœ³Ä¡¸É¦¾Ï¨ÀѨÀÑ¥¼Í¡¸É¡ÂÕŠ¨º‰¦¸‡¥¶_y‚QiqXqw_ySmnt’”Qjg9NL@XRSngd‚xLf]3CRTi{uœqŒ’YroWogd‚u_~k8Q?5M<YyfGcWGcWUtkb…|RrnQor=RWTnmZooCUTLZUR_UTbX„¨À„¨À„¨À…ªÂ…ªÂ‡¬Ä‡¬Ä‡¬Ä‡¬Ä‡¬Ä‰­ÅŠ¯ÇŒ±ÉŒ±ÉŠ¯ÇŠ¯Ç•¶Ñ’³Í¯É­Ç¯É‘±Ë¯ÉŒ¬Å­Ç­Ç¯É¯É‘±Ë’³Í’³Í’³Í‘¯Â’±Ä”³Å•µÇ•µÇ•µÇ•µÇ”³Å”³Å”³Å”³Å•µÇ•µÇ—¶É—¶É—¶É—¶É—¶É—¶É—¶É—¶É—¶É—¶É—¶É•µÇ”³Å”³Å’±Ä’±Ä”³Å”³Å•µÇ¯Ä”¶Ë”¶Ë‘³Ç‘³Ç”¶Ë”¶Ë¯Ä‘³Ç‘³Ç‘³Ç‘³Ç‘³Ç‘³Ç‘³Ç‘³Ç—¶É•µÇ’±Ä’±Ä•µÇ—¶É•µÇ”³Å”³Å”³Å’±Ä’±Ä’±Ä”³Å•µÇ•µÇ’¯Â•³Å™¶Éš¸Ë—µÇ•³Å”±Ä•³Å•³Å—µÇ—µÇ—µÇ™¶É™¶É™¶Éš¸ËœµÉ™±Å™±ÅŸ¸ÍŸ¸ÍœµÉš³ÇŸ¸Í™±Åš³Çž¶ËŸ¸ÍŸ¸Íž¶Ëš³Ç™±Å¥¾ÏŸ¸Éš³ÄœµÅ¡ºË£¼Í¡ºËž¶ÇŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉœµÅ¡ºË—¯À£¼Í•­¾£¼ÍœµÅ¡ºË—¯Àž¶Ç¡ºËž¶Çž¶Ç¡ºËž¶Ç—¯À£¼Í™±ÂŸ¸É¥¾Ïš³Äž¶Ç¥¾Ïš³ÄŸ¸ÉŸ¸Éž¶Çž¶Çž¶Çž¶ÇŸ¸ÉŸ¸ÉœµÅš³Äš³ÄœµÅŸ¸ÉŸ¸ÉœµÅ™±Âž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶ÇœºÉœºÉž¼Ëž¼ËœºÉš¸Ç™¶Å™¶Å™¶Åž¼Ë—µÄŸ¾Í—µÄŸ¾Íš¸Çž¼Ëšº¾—¶ºž¼Ë‰¥³Œ¨¶|—¥‡¥¨‡¦œmŒrWuSKi@6O-3L+,B'A[;UtRby„t™œ¨„Ÿ¬rŒ—‰¥±™¸Àœ¼Ä’±µ‚¡žQicMfZ]xi…¨KdR**4%,5&d‡tŸÉ¾ŸÇĦÍÓ¬º„Ÿ­—¬Å£¸ÓŸµÏŸµÏªÀÛ¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸É¡ºË¡ºË£¼Í£¼Í£¼Í¡¸Ä¥¼Ç¦¾É¦¾É¥¼Ç£ºÅ¦¾É¨À˪ÂÍžµÀ¨ÀËžµÀ•Ÿ‘¦±¥¼Ç£­wŠ¥Â¼±ÏÍœ¸¶š¶µ•±¯n…LaW #2!% % 1 )A"8 /. +?'9+>+?)< #1D2ENd7^u„”±Ä¯Ï¼¡¾‘qN"/
+
+
+  #3C@rŠ…¦ÉÂœ¾¶­ÂÍ­ÂÍ¡µÀ¡µÀ¯ÄϨ¼ÇŸ³¾¨¼Ç™¬¶ixJW^^mu™¬¶³ÇÓª¾É¨¼ÇšµÂ‚š¦tŠ•{’žL^g^r|uŒ—GYbkŒM_i]q{•¯¼¨ÄѨµ‡Ÿ¬¦³¡¸Ç£ºÉ¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë£ºÉ£ºÉ£ºÉ£ºÉ£ºË£ºË£ºË£ºË¡¸É¡¸É¡¸É¡¸ÉžµÅžµÅŸ¶ÇŸ¶ÇžµÅ•¬¼Œ¡±„™¨‰¦¸{—¨~š¬ž¯JaiE[cRjo]w|]xy‰ª¬1EC#42]yrZwoE^UD]T4DSWk~y”¡x”šTmjTmdd‚uFaQ8Q?,B2GdSIdX[{mXwnLkc@]YNmoOgmf‚^ttL_^IWR:E=8C;‚¦¾„¨À…ªÂ…ªÂ‡¬Ä‡¬Ä‡¬Ä‡¬Ä‡¬Ä‰­ÅŠ¯ÇŠ¯ÇŒ±ÉŒ±ÉŠ¯ÇŠ¯Ç—¸Ó”µÏ¯É¯É¯É‘±Ë¯É­Ç¯É‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë‘±Ë”µÂ”µÂ’³À’³À”µÂ”µÂ•¶Ä—¸Å”µÂ”µÂ”µÂ•¶Ä•¶Ä—¸Å—¸Å—¸Å™ºÇ™ºÇ™ºÇ™ºÇ™ºÇ™ºÇ™ºÇ™ºÇ—¸Å—¸Å•¶Ä•¶Ä•¶Ä•¶Ä—¸Å—¸Å¯Ä”¶Ë•¸Í’µÉ’µÉ•¸Í”¶Ë¯Ä’µÉ’µÉ’µÉ’µÉ’µÉ’µÉ’µÉ’µÉ•¶Ä”µÂ”µÂ•¶Ä—¸Å™ºÇ•¶Ä’³À•¶Ä•¶Ä”µÂ’³À’³À’³À”µÂ”µÂ•³Å™¶Éš¸Ëš¸Ë—µÇ•³Å—µÇš¸Ë”±Ä•³Å•³Å•³Å—µÇ—µÇ—µÇ™¶ÉŸ¸Í™±Å—¯Äž¶Ëž¶Ë™±Åš³Ç£¼ÑœµÉœµÉž¶ËŸ¸ÍŸ¸Íž¶ËœµÉœµÉ¦¾Í£ºÉŸ¶ÅŸ¶Å£ºÉ¥¼Ë£ºÉ¡¸Ç£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ¡¸Ç¦¾Í—­¼ªÂÑ—­¼ªÂÑŸ¶Å¨ÀÏ—­¼Ÿ¶Å¥¼Ë£ºÉ£ºÉ¥¼ËŸ¶Å—­¼¨ÀÏžµÄ¥¼Ë¦¾Íœ³ÂžµÄ¥¼Ëš±À£ºÉ¡¸Ç¡¸ÇŸ¶ÅŸ¶Å¡¸Ç¡¸Ç£ºÉ”ª¸•¬º—­¼žµÄ£ºÉ¦¾Í¦¾Í£ºÉŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶Å—µÂž¼É£ÂÏ¡ÀÍš¸Å•³À™¶Äž¼Éž¼Éš¸ÅŸ¾Ë—µÂŸ¾Ë—µÂž¼Éš¸ÅšºÂ’±¸š¸Ç|—¥‚ž¬n‡”~œ™~žŒ^|]RqINn>4N'3M%*A:U,@[8fn‰j„ŠZrxr”‚Ÿ¦•µ¸™¸¼¥ÇÄ­£E]R'9.$6)IbK4J6);&F'3W7$A+*DcS|¦—‘³¯Š­¯„Ÿ¬‚ž¬‘¥¾œ±Ë¡¶Ñ¦¶Ó¨¸Õ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ¥¼Ë¥¼Ë¥¼Ë¥¼Ë¦¾Í¦¾Í¦¾Í¨ÀϦºÅª¾É¬ÀˬÀ˪¾Éª¾É¬À˯ÄϬÀË£¶Â¯ÄÏ•¨³ixx‰’ž±¼’¥¯a{_u’t’±™£Â¯¬ÉijÑÑ‘¬¬]rr^um‘¯—+>'!3:T#>[7T#:
+!/
+
+ #
+) Wr>nWSnE 
+!0!AYCNgY$5RYtž¨ÏÕš¾¨Gb9) 
+
+
+(!)&1+FSZ¡ºÏ—¯ÄŸ¾Ñ—µÇ‡•žž¦œ¥Š™¡x…NY_4=B3<A@JO3<AZfm¨¸Â±ÂËšª³£³¼±ÂËšµÂ¡¼ÉK]f6EM+9@4CK%18%+)6=,:AEW_dy„n„y‘œ”­º¥ÀÍ¡¸Ç£ºÉ¥¼Ë¦¾Í¦¾Í¦¾Í¦¾Í¥¼ËŸ¶Å¡¸Ç¡¸Ç£ºÉ£ºÉ¥¼Ë¥¼Ë¦¾Í¦¾Ï¥¼Í¥¼Í¦¾ÏªÂÓªÂÓ¦¾Ï¥¼Í¡¸É£ºË¦¾Ï­Å×±ÉÛ¬ÄÕŸ¶Ç•¬¼—ºË’µÅy™¨dAY_„¦¯žÄÉyšŸ£Ÿxš—{ž™w™”/E=;TK‘¸ªEaWq‰ž|•¬<NW4FIMd_>TJ9R@>XA_bKiMStWNnRd‰mEbQ>]Ki~g‚r‡•qŠ•q…Š—’crj:E5O]J‚¦º‡¬ÀŠ¯Ä‡¬À‚¦º¥¸„¨¼‡¬ÀŒ±ÅŒ±Å³Ç³Ç³ÇµÉµÉµÉ±Â¯À¯À±Â’µÅ”¶Ç”¶Ç’µÅ¯À±Â±Â‘³Ä”¶Ç•¸É•¸É—ºË±Å”¶Ë”¶Ë±Å±Å”¶Ë”¶Ë±Å‘³Ç‘³Ç‘³Ç’µÉ’µÉ”¶Ë”¶Ë”¶Ë”±À™¶Åž¼Ëž¼Ëš¸Ç™¶Åš¸Çž¼Ë”±À™¶ÅœºÉœºÉ™¶Å—µÄœºÉ¡ÀÏ”±Ä•³Å•³Å—µÇ—µÇ™¶É™¶É™¶É”±Ä•³Å•³Å—µÇ—µÇ•³Å•³Å”±Ä•¸É±Â±Â•¸É•¸É¯À­À—¶Éž¾Ñ¬¾”³Å‰¦¸ª¼ž¼Ï”±ÄŸ¾Ñž¶ÇœµÅœµÅš³Äš³ÄœµÅœµÅž¶ÇœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅ£ºË£ºË£ºË£ºË£ºË£ºË£ºË£ºË¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É™¶Äž¼Éž¼É™¶Äœ¶Ä¡¼É£ºÉžµÄ£ºÉ£ºÉ¦¸É¦¸É¦¸É¦¸É¦¸É¦¸É¡ºË£¼Í¥¾Ï¥¾Ï¡ºË¡ºË£¼Í¥¾Ï¡ºË¡ºË¡ºËŸ¸ÉŸ¸Éž¶Çž¶Çž¶Çš±Àœ³ÂžµÄ¡¸Ç£ºÉ¥¼Ë¥¼Ë¥¼ËŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅŸ¶ÅžµÅ¡¸É¥¼Í¥¼Í£ºË£ºË¥¼Í¦¾Ï¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸Éž¶Çš³Ä—¯À™±Âž¶Ç¡ºËž¶Çš³ÄŸ¸ÉŸ¸ÉŸ¸É¡ºË¡ºË£¼Í£¼Í£¼Í•¯¼•¯µœ¸¸‰£žg~o_uco…gtŒfGY5CU/CT)FY)FW$@Q@QEW EiOBcT*B9.A?x•œ™ºÇ~—­¨Åß™¶Åu‘‘•ºªJfO" Aj1/R"LgXRn^8RC%:.#!6,a‰wk”‰@_W0ECMifŠ¨¯”³º¡¸É­Å×—­¾¨Ç¸£Â³£Àº¬ÉɪÅÏ¡ºË£¼Ñ­Å塸ן¶Õ¡ºÏ£¼Ñ¥ÀÍ¥ÀÍŸºÀœ¶¼œµÅ¦ÀѨÂÓ¥¾Ï¨ÂÓµÏá¸Õã±ÍÓªÇǶÕ϶×Ë”±Ÿ^wc<Q<6J6=R:]{AXw6)>&;4M;UFc%3K$3)?R/=N*'6* # #5BZ/Id5!
+
+13
+
+
+%  ' #2+;+! '5! -!3
+ 
+ 7I!.:6A-3MO(  
+ !!('#/' +*:! #1BR6UgKDRBWcU•¥Ÿž¬¯¦³Å³ºÑ¼ÂãÂÇ߳¸Õ£ª¾~Œš~”™ZrrNkc3SG3SGDi[<^RSwj{ž™y—”‰Ÿ¥¥¸¼¯ÄÏ¡³Ä£µÅ¦¸Éª¼Íª¼Íª¼Í¨ºË¨ºË­ÀѬ¾Ï¬¾Ïª¼Íª¼Í¨ºË¨ºË¦¸ÉŸºÇ¡¼É£¾Ë¥ÀÍ¥ÀÍ£¾Ë¡¼ÉŸºÇŸºÇ¥ÀÍšµÂ±ÍÛ£¾Ë³ÏÝ¡¼É¦ÂϦÉ~•¶”¯Çª¸£ÄË­µ­µ‰¦­x’£tžK_jQgm^xrdo;RA5M14J>UFc/Ic7&<! 3 )C->^C/K3IkN8S<,@1>TJn„Ÿ³¾’¥¯DWU.>4RjROiG
+-F;X'‰ª¾Š¬À¯Ä¯ÄŒ­ÂŒ­Â±Å‘³Ç¯Ä¯Ä¯Ä±Å±Å‘³Ç‘³Ç‘³Ç™¸Ë•µÇ’±Ä’±Ä”³Å”³Å‘¯Â¬¾—¶É•µÇ•µÇ•µÇ”³Å”³Å’±Ä’±Ä’±Ç—¶Í—¶Í’±Ç’±Ç—¶Í—¶Í’±Ç—¶Í—¶Í—¶Í—¶Í™¸Ï™¸ÏšºÑšºÑ—µÄš¸Çž¼Ëž¼ËœºÉš¸ÇœºÉž¼Ëš¸ÇœºÉž¼ËœºÉš¸Ç™¶Åš¸ÇœºÉ—µÇ—µÇ—µÇ™¶É™¶É™¶Éš¸Ëš¸Ë•³Å•³Å—µÇ™¶É™¶É—µÇ•³Å•³Å•¸É‘³Ä’µÅ—ºË—ºË”¶Ç—¶Éœ¼ÏšºÍ’±Ä™¸Ë‚Ÿ±œ­’±Äª¼™¶ÉœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœµÅœ³Äœ³Äœ³Äœ³Äœ³Äœ³Äœ³Äœ³Ä¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸Éš¸ÅŸ¾Ë£¾Ëž¸Åž¸Å£¾Ë¥¼ËŸ¶Å£ºÉ£ºÉ¦¸É¦¸É¦¸É¦¸É¨¸É¨¸Éž¶Ç¡ºË£¼Í¡ºËŸ¸Éž¶ÇŸ¸É¡ºË¡ºË¡ºË¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸Éž¶Ç¥¼Ë¥¼Ë£ºÉ£ºÉ¡¸Ç¡¸ÇŸ¶ÅŸ¶Å£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉš±ÂžµÅ¡¸É¡¸ÉŸ¶ÇžµÅŸ¶Ç¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡ºËž¶Çž¶ÇŸ¸É£¼Í¥¾Ï£¼Í¡ºËŸ¸ÉŸ¸É¡ºË¡ºË¡ºË¡ºË£¼Í£¼Í™³¼wf|{_wnUj[WmXf{[j[XkCK^5CT)FY)K^+EX':I1?!8'-$1*Mid[x|]tš³Ç¦ÀÕ£¼Í‰¡ªZwm"5'" .2LjNo’w6Q<)!-!<[K3OEW{q]{xr’”•³À¡ÀÍž³Éœ±Ë¥ºÕŸ¼º£À¾£ÀÀž¸Âž¸Å¡ºÏ¡ºÏžµÓ¥¼Û¡¸×ž¶Ëž¶Ë¡¼É£¾Ë£¾Ç¡¼Å¡¼É¦ÂϦÂÏ¡¼ÉŸ¸É£¼Í£¾Ëž¸Åœ¶À—±ºžºº¡¾¸„Ÿ•Si[6G=->1"4,'; 3   (*
+"  
+' 1C-( #69L0A#/ #. +4JS#1G%8 )$  1>+  &
+   =J;%).;-#/#BO@yŒ|¡¶¥ª¾³£³ªÄÕÓœª¯¶À˾ÇÓŸ¨³ºÄÏÀÇÙ¼ÄÕŒš£k6JE*?55)%>17YG2RFRuiJdak……r…±ÄÕª¼Í”¥µœ­¾¥¶Çª¼Í¨ºË¦¸É¨ºË¬¾Ïª¼Íª¼Íª¼Íª¼Íª¼Íª¼Íª¼Íª¼Í¨ºËª¼Íª¼Í¬¾Ï¬¾Ïª¼Íª¼Í¨ºË¡³Ä¯ÂÓ¦¸É¶ÉÛž¯À¬¾ÏŸ±Â¨ºËš¶ÕtŒ¦x’£m…‘qŒŒg|™™i‚‰iŒušay_x~KbZD]K0D36N1>W(.C*>2F,C^F7O>3L=;UESr]A]J6Q<MgRXrc^rk|’——œK]T.>/WnOJa< %84M-D‡¨¼‰ª¾Š¬ÀŒ­Â¯Ä¯Ä‘³Ç’µÉ¯Ä¯Ä¯Ä¯Ä±Å±Å‘³Ç‘³Ç—¶É•µÇ’±Ä’±Ä”³Å”³Å’±Ä­À•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ•µÇ’±Ç—¶Í—¶Í’±Ç’±Ç—¶Í—¶Í’±Ç•µË—¶Í—¶Í—¶Í™¸Ï™¸Ï™¸ÏšºÑ•³Â—µÄš¸Çš¸Çš¸Çš¸Çš¸Çš¸Çž¼Ëž¼Ëž¼ËœºÉš¸Ç™¶Å™¶Åš¸Ç™¶É™¶É™¶Éš¸Ëš¸Ëš¸Ëš¸Ëš¸Ë—µÇ—µÇ™¶É™¶É™¶É™¶É—µÇ—µÇ•¸É”¶Ç”¶Ç—ºË™¼Í™¼ÍšºÍœ¼Ï”³Å”³Åœ¼Ïœ­|™ª•µÇ’¯Â™¶ÉœµÅž¶Çž¶Çž¶Çž¶Çž¶Çž¶ÇœµÅž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶Ç¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É£ºË£ºË£ºË£ºË£ºË£ºË£ºË£ºËš¸ÅŸ¾Ë£¾Ëž¸Åž¸Å£¾Ë¥¼ËŸ¶Å¥¼Ë¥¼Ë¨ºË¨ºË¨ºË¨ºËªºËªºË£¼Í¥¾Ï¦ÀѦÀÑ£¼Í£¼Í¥¾Ï¦ÀÑ£¼Í£¼Í¡ºË¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸É¥¼Ë¥¼Ë£ºÉ¡¸Ç¡¸Ç¡¸Ç¡¸Ç¡¸Ç¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ëœ³ÄŸ¶Ç£ºË£ºËŸ¶ÇžµÅŸ¶Ç¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸ÉŸ¸ÉŸ¸Éž¶ÇŸ¸É¡ºË£¼Í¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¦ÂË{””cyxXnfK^QJ^KWjMYnLJ[7CU/@Q'@R$AS#@R#=L:I/J65QD2JA^|x[x|J^i„š­—ªŸ¸É¦ÂËx™0F6*15 ,$8('
+ + /#3+BbYb~t”•~™¥•³À­ÄÛ¦¼×œ±Ë¨ÅÄ­ËɪÇÇ¡¼ÅŸºÇ¥¾Ó£¼Ñ™¯Í¥¼Û¡¸×œµÉœµÉŸºÇ£¾Ë¥ÀÉ£¾Ç¦ÂϨÄѦÂÏ¥ÀÍ£¼Í¥¾Ï£¾Ë¡¼É¬ÇÑŸºÄ£ÀÀ³Ñ˨Ǽ…¡‘n‡xj„o?X1* 2,   "   !  ,"1/DB[)7O4F!0 !, '
+#+ =E%' ,.-/%8 &9 1   
+i{_2>11<27B:%.''1) #,!nk9G6L]Ikjfyd”~¦¼ª­Ä±ºÏÄÀÑÇ’¡Ÿgtr­¼ÂÉÓߦ¯ºž¦±ËÕᬳÄÅÍß­¾ÇŠ¡¡E[W5MB,G97UE"=/)E;BbW2IEb{{|‘š¥¶Çx‡•’£³œ­¾¨ºË¬¾Ï¦¸É¥¶Ç¨ºË­ÀѨºËª¼Íª¼Íª¼Íª¼Íª¼Íª¼Í¬¾Ïª¼Íª¼Íª¼Í¬¾Ï¬¾Ïª¼Íª¼Íª¼Í¨ºË³Åס³Äª¼Í’£³¦¸Éž¯À¥¶Ç¨Åg~—d|ŒSirDYY?SSk……ZrxXnxc{…TkqQgm3F@+?1 1#(=#7N#5L!6M*5J/Yx]LiTRq^a‚nUu_9SA?[Eyšx—…_tm{‘•Œ£¨@QIDXEoŠgTmE$ &96O6O‡¨¼‡¨¼‰ª¾Š¬ÀŒ­Â¯Ä±Å±Å¯Ä¯Ä¯Ä±Å±Å‘³Ç‘³Ç‘³Ç”³Å’±Ä‘¯Â’±Ä•µÇ—¶É—¶É”³Å’±Ä’±Ä”³Å•µÇ—¶É—¶É™¸Ë™¸Ë”³É™¸Ï™¸Ï”³É”³É™¸Ï™¸Ï”³É”³É•µË•µË•µË—¶Í—¶Í—¶Í™¸Ï•³Â•³Â•³Â™¶Å™¶Åš¸Ç™¶Å—µÄŸ¾Íž¼Ëž¼ËœºÉœºÉœºÉš¸Ç™¶ÅœºÍœºÍœºÍš¸Ëš¸Ëš¸Ëš¸Ëš¸Ë™¶É™¶Éš¸Ëš¸Ëš¸Ëš¸Ë™¶É™¶É—¶É™¸Ë™¸Ë™¸Ë™¸Ëœ¼Ïœ¼ÏšºÍ­À’±Ä•µÇu‘¡u‘¡™¸Ë™¸ËšºÍœµÅž¶ÇŸ¸ÉŸ¸ÉŸ¸ÉŸ¸Éž¶ÇœµÅž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶Çž¶Ç¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í£ºË£ºË£ºË£ºË£ºË£ºË£ºË£ºËŸºÇ¥ÀÍ¥ÀÍŸºÇ¡¸Ç¦¾Í¦¾Í¡¸Ç¨ºË¨ºË¨ºË¨ºËªºËªºËªºËªºË£¼Í¦ÀѨÂÓ¦ÀÑ¥¾Ï£¼Í¥¾Ï¨ÂÓ£¼Í£¼Í£¼Í¡ºË¡ºË¡ºËŸ¸ÉŸ¸É£ºÉ£ºÉ¡¸Ç¡¸Ç¡¸Ç£ºÉ¥¼Ë¦¾Í¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼ËŸ¶Ç£ºË¦¾Ï¥¼Í£ºËŸ¶Ç¡¸É£ºË¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸ÉœµÅž¶Çž¶ÇŸ¸Éž¶ÇŸ¸ÉŸ¸É¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË¡ºË—¯±xŠcxqRfYCSBDU@OcDSgDSg=AS+1A-=7F BS(DW)?Q%1L8Qrc8TGGaZNgiCT]o„•xŸ—±¾”­³•¶¯nŒy3M71L/$? " "#9!' 7$!+C6:UNJid[x|uœ™¶É¯Å孾߬¼Ý£¾Ç¥ÀÉ¡¼Éœ¶Äž¶Ç£¼ÍŸ¸Í—¯Ä¥¾ÓŸ¸ÍœµÉœµÉŸ¸É£¼Í¥ÀÍ¥ÀÍ¡¼ÂŸºÀŸºÀ¡¼É¡¼É¡ºÏ¡ºÏ£¼Ñ£¼ÍœµÅž¸Å¨ÄѨÄÉž¸¾—³³š¶¶y—u0D'(;/# ,!    
+   '!2DNf*8N*=+ !#2?-4*1!' ('(
+#$~’„xŠ„j{{Q__Yiiu‡+51j|r•¬Ÿ]kq‡™Ÿ­ÂÉœ¯¶’£¦Ššžftun|~Zfd?IGcok¨¸³Ÿª£ktnœ¨œ¦³¦…’•‘ž¡ŸžªÅ¸Š¬™kw.I5+. !9,/I=;RLXrqj‡j~Œan|š¬¼¥¶Ç­ÀѯÂÓ¨ºË¥¶Ç¨ºË­ÀѨºËª¼Íª¼Íª¼Íª¼Íª¼Íª¼Í¬¾Ï¬¼É¬¼É¬¼ÉªºÇªºÇ¬¼É¬¼É¬¼É¨¸Å±ÂÏž­º¥µÂ‘Ÿ¬£³À‘Ÿ¬œ¨[q„[q„qŠ•m‡ŠSkfCYTy—‘fr‘d~=QQ<OO5J>0D1((#1,=).?0!.':ON:ONC]ZIca6NESraa‚nZudJbTdyr„šœZmn?N>M_DEY66I#5J&8;R<SŠ¬À‰ª¾‡¨¼‰ª¾Œ­Â±Å¯ÄŒ­Â±Å±Å‘³Ç‘³Ç‘³Ç’µÉ’µÉ’µÉ”³Å‘¯Â‘¯Â’±Ä—¶É™¸Ë™¸Ë—¶É‘¯Â’±Ä”³Å•µÇ—¶É™¸ËšºÍœ¼Ï”³É™¸Ï™¸Ï”³É”³É™¸Ï™¸Ï”³É”³É”³É•µË•µË—¶Í—¶Í—¶Í—¶Í—µÄ•³Â•³Â—µÄš¸ÇœºÉ™¶Å•³ÂŸ¾Íž¼ËœºÉœºÉž¼ËŸ¾ÍœºÉš¸Çž¼Ïž¼Ïž¼ÏœºÍœºÍœºÍš¸Ëš¸Ë™¶Éš¸ËœºÍœºÍœºÍœºÍš¸Ë™¶É—¶ÉšºÍšºÍ—¶É—¶ÉšºÍšºÍ—¶É’±Ä¬¾…£µ^w…c|Œ’±ÄšºÍšºÍœµÅž¶ÇŸ¸É¡ºË¡ºËŸ¸Éž¶ÇœµÅŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸É£ºË£ºË£ºË£ºË£ºË£ºË£ºË£ºË¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼ÍŸºÇ¥ÀÍ¥ÀÍŸºÇ¡¸Ç¦¾Í¦¾Í¡¸Çª¼Íª¼Íª¼Íª¼Í¬¼Í¬¼Í¬¼Í¬¼ÍŸ¸É£¼Í¥¾Ï£¼Í¡ºËŸ¸É¡ºË¥¾Ï¥¾Ï£¼Í£¼Í£¼Í¡ºË¡ºË¡ºË¡ºË¥¼Ë£ºÉ¡¸Ç¡¸Ç¡¸Ç¥¼Ë¦¾ÍªÂÑ¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¥¼Ë¡¸É¥¼Í¦¾Ï¦¾Ï£ºË¡¸É¡¸É£ºË¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸Éš³Äž¶ÇŸ¸ÉŸ¸Éž¶Çž¶ÇŸ¸É£¼Í£¼Í£¼Í¡ºË¡ºË¡ºË¡ºËŸ¸ÉŸ¸É„šœw‰g|uOcWAQ@L^G^tR]rMTi>=N(+;/?EW+Rd4@R&*8)B0Mn_=ZMAYSLdfSfo•¨š³Ç¡¼ÉŠ£¨¦É¬Ѻ:U>/.,)? '=!StK1J-12! 5QBY{rJidYuy‰¥³Ÿ¾Ñš¯Í¡±ÑµÅ硼ř³¼•¯¼ž¸Å¥¾Ï£¼Í¡ºÏ¡ºÏ¡ºÏž¶ËœµÉž¶Ë¡ºË¥¾Ï¥ÀÍ£¾Ë¥ÀÅ¡¼Â¡¼Â¦ÂϨÄÑ¥¾Ó¦ÀÕªÄÙŸ¸É£¼Í¡¼Éž¸Åž¸¾£¾Ä£ÀÀŸ¼¼¦É¡d‚XKd>5L'%8':"4*-?+# 
+  .!&/E+  + 1D+>)<+  *
+>LEN!(/$
+3I)' ('6   7D;DRM9EE#,,-88Sb]CQLxŒTd[1;?/9=<GL]kqO[^'01;EF*117@?‰—’—¦¡fniQXSœ¨œx‚x]gjNXZGSRtŠx—…Yyc( '$"+?:2FE<LRL]i•¦¸¥¶Çª¼Í¯ÂÓ­ÀѪ¼Í¦¸Éª¼Í­ÀѪ¼Íª¼Íª¼Íª¼Íª¼Íª¼Íª¼Íª¼Í­¾Ë¬¼É¬¼ÉªºÇªºÇ¬¼É¬¼É­¾ËªºÇ¶ÇÕ£³À¡±¾„’žŠ™¥jwZfoi”~—­Š¦³œŸb|wBXSr‰_xx^wyg„?SS?SSE]O?WA%9!8Q2NdEYqTSjU@SJLdcXrqZxuOki8QGjyc…q;QC0C8WjcuŠŒGXYK[JL^C+; 1Bd@1F,@"3 ‘¯Å¬ÂŠ¨¾ŒªÀ‘¯Å’±Ç­ÄŒªÀ’±Ç’±Ç”³É”³É•µË•µË•µË•µË™¶É•³Å”±Ä•³Å™¶Éš¸Ë™¶É•³Å•³Å—µÇ—µÇ™¶É™¶Éš¸Ëš¸Ëš¸Ë•³Åš¸Ëš¸Ë•³Å•³Åš¸Ëš¸Ë•³Å™¶É™¶É™¶É™¶Éš¸Ëš¸ËœºÍœºÍš¸Ç™¶Å—µÄš¸Çž¼ËŸ¾ÍœºÉ™¶ÅŸ¾ÍœºÉ™¶ÅœºÉŸ¾Í¡ÀÏŸ¾ÍœºÉ£¼Í£¼Í¡ºË¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸Éž¶Çž¶ÇŸ¸É¡ºË¡ºËŸ¸Éž¶Çž¶Ç™¶ÅŸ¾Íž¼Ë—µÄ”µÂ™ºÇ™ºÇ’³Àœ¾ËŠª¶o™BYbIaj¡­”¶Ä•¸ÅœµÅž¶Ç¡ºË£¼Í£¼Í¡ºËž¶ÇœµÅŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¡¸Ç¦¾Í¦¾Í¡¸Ç¡¸Ç¦¾Íª¼Í¥¶Çª¼Íª¼Í¬¼Í¬¼Í¬¼Í¬¼Í­ºÍ­ºÍ£ºÉ¥¼Ë¦¾Í¦¾Í£ºÉ¡¸Ç£ºÉ¦¾Í¦¾Í¦¾Í¥¼Ë¥¼Ë¥¼Ë£ºÉ£ºÉ£ºÉªÂѦ¾Í£ºÉ¡¸Ç¡¸Ç£ºÉ¥¼Ë¦¾Í£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉŸ¶Ç£ºË¦¾Ï¥¼Í¡¸ÉžµÅŸ¶ÇŸ¶Ç¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸ÉžµÄ¡¸Ç¥¼Ë¥¼Ë¡¸ÇŸ¶Å£ºÉ¦¾Í¥¼Ë¥¼Ë¥¼Ë£ºÉ£ºÉ¡¸Ç¡¸Ç¡¸ÇŒŸ™…šŒq„uN_M@Q:WkKk‚Z_wKI^4<O*2B!5E#EX1J]45E# +1K5C_Oa‚om‰UmmUfnq„‘”¡‡œ¦uŠŒy’­™6N9 0' + )B4#'!8$7TCb‡wUond‚™¥~”£œ¶¥µÕ¥µÕªÂÑ”ª¸¥³¡¸Ç¨ÀËš±¼•¬¶Ÿ¶ÂŸ¶ÂŸ¶ÂŸ¶Å¡¸Ç¦¾Ï¨ÀѦ¾Ï£ºË­ÇɦÀ¦ÀůÇׯÇÓ¨ÀѪÀ×±Çߨ¾Õ­ÄÛžµÅ‰ž­£±ªÂѱÉÕ¡¸Äž¾¡‰¨‡]wYF^?;Q36K/:S71F5F^Q<QN-@A./$54Qkd7ME>XE
+
+
+$ +:$  / !/@1=AO%kwE@G';B#6I%AU.DX5$!+       
+#   
+ % ("  9D<GSJguj‰™Œw…yU^UoyoºÇ¸‘œKXQ0:4+#?R@GbI>W?(  #!  1+/B@ARZ^u„ÅÝö¬¾Ïª¼Íª¼Í¨ºË¨ºËª¼Í­ÀѯÂÓ­ÀѬ¾Ï¬¾Ïª¼Íª¼Í¨ºË¨ºË¦¸É³Àϱ¾Í¯¼Ë­ºÉ­ºÉ¯¼Ë±¾Í³Àϱ¾ÍÄÑ᭺ɡ­¼|‡”‚šjt_itŒ¨¶¡ÀÏž¡g‚Wog5IBXqiF]U=QQk……OgdKbZQkX?X>-D'iŒ^ZrbtŒŒœŸt™K^oNbtYqc|Œ=SRIb[5J>1E:=SFLc[c~{fyy4A.AR0CU-F[*@W'&•µË‘¯Å¬Â­Ä’±Ç”³É‘¯ÅŒªÀ”³É”³É•µË•µË•µË—¶Í—¶Í—¶ÍœºÍ™¶É—µÇ—µÇ—µÇ—µÇ•³Å’¯Âš¸Ëš¸Ë™¶É™¶É™¶É™¶É—µÇ—µÇ—µÇœºÍœºÍ—µÇ—µÇœºÍœºÍ—µÇš¸Ëš¸Ëš¸ËœºÍœºÍž¼Ïž¼Ïž¼Ïž¼Ëš¸Çš¸ÇœºÉ£ÂÑ¥ÄÓŸ¾Íš¸Çž¼Ëš¸Ç™¶Åš¸Ç¡ÀÏ£ÂÑ¡ÀÏž¼Ë¥¾Ï£¼Í£¼Í¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸Éž¶ÇŸ¸ÉŸ¸É¡ºË¡ºËŸ¸ÉŸ¸Éž¶Çš¸Ç¡ÀÏŸ¾Í•³Â’³À—¸Å—¸Å¯¼¥ÇÕ‰¨µa|‡1EM9NWt’ž¯¼’µÂœµÅž¶Ç¡ºË£¼Í£¼Í¡ºËž¶ÇœµÅŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸ÉŸ¸É£ºË£ºË£ºË£ºË£ºË£ºË£ºË£ºË¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í£ºÉ¨ÀϨÀÏ£ºÉ£ºÉ¨ÀϬ¾Ï¦¸Éª¼Íª¼Í¬¼Í¬¼Í¬¼Í¬¼Í­ºÍ­ºÍ¦¾Í¨ÀϬÄÓªÂѦ¾Í¦¾Í¨ÀϪÂѦ¾Í¦¾Í¦¾Í¥¼Ë¥¼Ë£ºÉ£ºÉ£ºÉ¯Ç׬ÄÓ¦¾Í¡¸ÇŸ¶ÅŸ¶Å¡¸Ç£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉžµÅ¡¸É¥¼Í£ºËŸ¶Çœ³Äœ³ÄžµÅ¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸É¡¸ÉŸ¶Å¥¼Ë¨ÀϦ¾Í£ºÉ¡¸Ç¥¼ËªÂÑ¥¼Ë¥¼Ë¥¼Ë£ºÉ£ºÉ¡¸Ç¡¸Ç¡¸Ç•ª£¥•q„uEUD8G2SgGf|UQf>Ka6DY17G%+9*81@ 4D#1@#01'gŠw™º¯]uuUfnj|‰j|‰nŠfy{L_[u‘~jŒn7R3 
+ /4*0.)A(ZaMo[;XKKcba|~XkuM^jŒšµ¾Ïò”£Â¬ÄÓŒ¡¯„™¦™¯¾œ³¾…š¥~’œŒ¡¬žµÀžµÀŸ¶Å£ºÉ¨ÀѪÂÓ¦¾Ï£ºËªÄÅ¡º¼¡ºÀ¨ÀϨÀËŸ¶ÇŸµË¨¾Õ¥ºÑ£¸Ï…šªgy‡t‡”£ºÉ¶ÏÛ£ºÅŸÀ£¥Ç£daXrOa|Wa|Wr•nbgZufžÀ¼g„…[wxYtrt”Œ^{q(=.  %'' ( 
+!!1 Zr5+6 *bm>DL+FN,3E#>R+XnF3B,:I7  +62+48&+ (17"'
+ 
+
+  (!' !&/(WdZJWMdtidrgiwk;E=9C;?F?„„¸Å¶³À±ow7B<!,<-2I3+@,"2!!8)1F?]xu—£‰¥¶ªÀ׬¾Ï¨ºË£µÅ£µÅ¨ºË­ÀѯÂÓ±ÄÕ¯ÂÓ­ÀѬ¾Ï¬¾Ï¨ºË¨ºË¦¸É¥¶Ç¶ÄÓµÂѱ¾Í±¾Í±¾Í±¾ÍµÂѶÄÓ¯¼ËÅÓ㯼ˣ¯¾Œ™š¦µš¦µ£¯¾x’Ÿª¸c|SkiYrj8LEQia;OIg¦ÇÇrŒdwr’{RnQ.E'n’c„¡j[tw{•¡d{u£_x‡KanG_^AYS#4+);1@WJ>SL@USIYYIXA4C%9J%<O" 0 ,  „¡¶’±Ç•µËŠ¨¾‰¦¼”³É•µËŒªÀ”³É’±Ç’±Ç’±Ç’±Ç”³É•µË—¶Í—µÇž¼ÏŸ¾ÑœºÍœºÍŸ¾Ñž¼Ï—µÇ™¶É™¶É™¶É™¶É™¶É™¶É™¶É™¶Éš¸Ë™¶É™¶É—µÇ—µÇ™¶É™¶Éš¸Ëž¼Ï•³Å’¯Âš¸ËŸ¾ÑŸ¾Ñž¼ÏŸ¾Ñ’¯¾œºÉœºÉ•³Â•³Âš¸Ç—µÄª¸¥ÄÓ¡ÀÏœºÉš¸ÇœºÉž¼Ëž¼ËœºÉ¡¼ÉŸºÇŸºÇ¡¼É¥ÀͦÂϦÂÏ¥ÀÍœ¶Äž¸ÅŸºÇ¡¼É¡¼ÉŸºÇž¸Åœ¶Äž¸Å¦ÂϦÂÏž¸ÅœºÇ¦ÅÓŸÂÍ‘±¼±º™¾ÇZw~$6;Z{_‡šÅÍŒµ¼¥¾Ïž¶Çž¶Ç£¼Í£¼ÍŸ¸Éž¶Ç£¼Í¥¾Ï£¼Í£¼Í¦ÀѨÂÓ£¼ÍŸ¸Éž¶Ç¦¾Ï¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Í¦¾Í¦¾Í¦¾Í¨ºË¦¸É¥¶Ç£µÅ­¾Ï¬¼Í¬¸Ë¬¸Ë¯¼Ï¯¼Ï­ºÍ¬¸Ë¬À˪¾É¨¼Ç¨¼Ç¬ÀˬÀ˪¾É¨¼Ç¯ÄÏ­ÂͬÀ˪¾É¨¼Ç¦ºÅ¦ºÅ¥¸Ä¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¨ÀϦ¾Í£ºÉ¡¸Ç¡¸Ç£ºÉ¦¾Í¨ÀÏ¡¸É£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¨ÀÑ£ºË£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï£¶Â¨¼Ç¬ÀˬÀ˪¾É¦ºÅ¦ºÅ¦ºÅ¦ºÅ¨¼Ç¥¸Ä¡µÀ¦ºÅ­Âͪ¾É¡µÀ³É¶¡ŠN^JFU?AQ5;K,[rEgOXoA4F#+;9K*AT2;L1,;#)!5'(>1?ZK@UNZtncwxŒ£¥•­¯’ªªWjc>RD?SAgŠd>Z9-!! ! :U6b‡c<WDWtc':3!10?OScx|Ÿ³º¾ÏÝœ¬¸¬Â”¨¨ŒŸœ’¡¸¬„™”…”…¦¾­£¸±Ÿµ±Ÿ³¶¥¸Äª¼Ï¦¸Ï¡³É¬ÀǯÄˬÀÇ£¶¾£µÅª¼Í¬¾Ï¦¸Éª¼Í±ÄÕ—ª±@LQ;GGQ__‘¥¡š¯¬—¯™­É£oŠd]uSc~Xx•kj‡cŠ¨Rk_c||x•œd…6KLœÀ¼Toi     %0'2"
+!.!-&,5Y_EW[G8</=O;0@1(7)4C<EWS'28#*JYd1>G *1GW^Sdf'$ &4%2EJa0d~GAU.CU/cxMUiE]oO%/'1#!( 8B:W_WŸª¦¡¬¬ž¨¨£ºª•­—FZG!+A)*?%,!"1K0'=)':.Oja|œžªÍÙ™³Àœ­¾¥¶Ç­ÀѱÄÕµÇÙ³Å׬¾Ï¥¶Çœ­¾¦¸Éª¼Í¦¸Éª¼Í³Å׳Å׬¾Ï¬¸Ä¾Ëׯ¼Ç³ÀËÀÍÙ¶Ä϶ÄϸÅѳÀ˸ÅѼÉÕ¦³¾™£‘œ¦’ž¨~‰’‘­¼qŠ—j„‡m‰…a|oBYNdt8LGt‘­ªq‡]xkSnZE_DJg?Gd=cwKbj_w‚d{r‰¨’¬Ïyªk”3BG(66>SLq„Nf^Nf^##TfGK^5/?4F&7 
+  ! 
+   
+ 1F:Tn_o‡x£À­¯Äµ•ª™ž³¡‡ž……œ„‚™~g|_tŒf_uSo‡bšr‡Ÿ{~•x‚™„—¬¥¦¼¼¥¶Ç¥¶Í­Àמ±¼¥¸Ä¨¼Ç¨¼Ç¨¼Ç¨¼Çž±µ‘£¦~‘‘¨¾¶ÄÝËŠ¡ŒfydGYC?O9.=&4@*#.(>M+9J'$1    
+ 
+ '0$=L4?O0  #/=E.foX‘„¯¯¬¸¸¼‘¬¦¨¨¨¨‰¡ªDU^3AMUgy8FU#   -.A*>U2E_ 6M#5 '' 8J#6E'BQ5ixaŠœ…”£šÀËǨ±¶‰’nu~tŠy’qŒtG^FMfD=T1'> :W13M08Q;1&C[UZur{šœš¬¼¦¸É­ÀѨºË¥¶Ç¬¾Ï±ÄÕ±ÄÕ¡³Ä¦¸É¦¸É£µÅ¨ºËµÇÙ¼Ïá¼Ïá±Â˺ËÕ¨¸Â”£¬£³¼µÅϵÅϼÍ×µÅϱÂ˳Äͨ¸Â•¥­‰—Ÿn{‚LW]Mbm:LUAUXx•’{™Lc[m‰a{rrn‰‰Rjgg‚yf„n#6# ,'</Gb_|žŸŸ¾Ë™³¦¼Û‘¥¾‘¥¾‡œ¦_rtZqiŒ¨ž~Ÿ—mŠ‰n’LfjAU;&7]yE3J')@W+=‰£º’­Å•±É‘¬Ä¨À’­Å’­ÅŒ¦¾—³Ë•±É•±É•±É•±É—³Ë™µÍš¶Ïš³ÇŸ¸ÍŸ¸ÍœµÉœµÉŸ¸ÍŸ¸Íš³Çž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶ËŸ¸Éž¶ÇœµÅœµÅœµÅœµÅž¶ÇŸ¸É¡ºË™±Â—¯Àž¶Ç£¼Í£¼Í¦ÀѬÅך¸ÇœºÉž¼ËœºÉœºÉœºÉœºÉš¸Çž¼ËœºÉ™¶Åš¸ÇœºÉž¼ËœºÉš¸Ç£ºÉ¡¸Ç¡¸Ç£ºÉ¦¾Í¨ÀϨÀϦ¾Í¨ÀϨÀϨÀϨÀϨÀϨÀϨÀϨÀÏ™¯¾¥¼Ë¬ÇÕªÅÓªÅÓ£¾Ë‚¡¬g‚ŒKdk—¼ÅOnt=X];W[Eci1KOm’™¡ºËž¶ÇœµÅ¡ºËž¶Ç”¬¼¦¶‘¨¸Ÿ¸É¥¾Ï¥¾ÏŸ¸Éž¶Ç¡ºË£¼Í¡ºË¦¾Ï¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¬¾Ï¬¾Ï¬¾Ï¬¾Ïª¼Í¨ºË¨¸É¦¶Ç±¾Ñ¯¼Ï¬¸Ë­ºÍµ¼Ñµ¼Ñ³ºÏ±¸Í­ÂͬÀ˨¼Çª¾É­ÂÍ­ÂͬÀ˪¾Éª¾Éª¾Éª¾É¬ÀˬÀˬÀˬÀˬÀ˪ÂѪÂѪÂѪÂѪÂѪÂѪÂѪÂÑ¡¸Ç£ºÉ¦¾Í¨ÀϨÀϦ¾Í£ºÉ¡¸Ç¨ÀѦ¾Ï¦¾Ï¥¼Í¥¼Í£ºË£ºË¡¸É£ºË£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ïª¾É¬À˪¾É¨¼Ç¥¸Ä¦ºÅª¾É¯ÄϬÀ˯ÄϯÄϬÀˬÀ˦ºÅ”¦±’œ‚”{XgN5A,5B*AR1DW1?Q*3C!AU,AU,Mb;UjFLbEK_IK_LBTGNjYOj^j‰{”±£k„{k|wgyoariN^RYkX4F1 
+ 
+   %      1G7o‘~š¾ª”¯ž™µ£ž±£‚•…q‚t„š‚…œ„—|]qUf|YXmLj]y’kf{[r‰m‚™„‘¥žœ±±¦¸É¬¾Õ¬¾Õ¨¼Çª¾É¦ºÅŸ³¾œ¯ºš­¸Ÿ£‘”Sbbr„~—­ž”¬•‰Ÿ‡wqi~aXmLAN5",$?N+;L((6   +:7 "4)&9-#'*
+ %WiLq‡[!    )0]fO‡‰|­­ª­­±¨£|••d{{‰¡ªg|‡FWdat‡7ET0=F$( 
+##3#//C%B[)='/ +
+*9^uAOb<dwTš­‘­Â¨‡­¸µœ¥ª~…]ck4C<ASF_xbI_G5J. 1'.>[5?[;*!0D?{š—¨ÍÏjx…‡—¦¥¶Ç­ÀÑ­ÀѯÂÓ­ÀѦ¸É¶ÉÛ¶ÉÛ±ÄÕ¬¾Ï¨ºË¦¸É¦¸É£µÅ¨¸Âšª³”£¬Œš£œ¬µ£³¼™¨±³ÄͳÄͪºÄ¬¼Å¥µ¾ž¦—jw~KU[MbmRgrZruŸœc~u9MF]wni„{­­‰¦¦_ywm‰g…o!2 
+(,C5a|‰¬­”±¾m„œŸµÓ…™±fwŒ—­¸Tfgn‡~™¶¬‰¬£i…„£¨q‘•>R8+9O' '(E]!1
+’­Å™µÍš¶Ï•±É’­Å•±É—³Ë•±É—³Ë—³Ë•±É•±É—³Ë—³Ë™µÍš¶ÏœµÉ¡ºÏ¡ºÏš³Çš³Ç¡ºÏ¡ºÏœµÉž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶Ëž¶ËŸ¸ÉŸ¸Éž¶ÇœµÅœµÅž¶ÇŸ¸ÉŸ¸É¥¾Ï¦¶—¦‡ž­—¯Àž¶Çž¶ÇœµÅž¼ËœºÉš¸ÇœºÉœºÉœºÉœºÉž¼Ëž¼Ëš¸Çš¸ÇœºÉž¼ËŸ¾ÍœºÉš¸Ç£ºÅ¡¸Ä¡¸Ä£ºÅ¦¾É¨À˨À˦¾É¦¾É¦¾É¥¼Ç¥¼Ç¥¼Ç¥¼Ç¦¾É¦¾É­ÂͯÄÏ¥¼Çœ³¾£¾Ç­ÉÓ£ÄË­µD]aAY]?Z]5NQ12#9:Dfg„³µ™±Âš³Äž¶Ç¡ºËš³Ä‘¨¸’ªºš³Äš³Ä¥¾Ï¨ÂÓŸ¸ÉœµÅ¡ºË¥¾Ï¡ºË¦¾Ï¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¬¾Ï¬¾Ï­ÀѬ¾Ï­¾ÏªºË¨¸É¦¶Ç±¾Ñ¯¼Ï±¸Í±¸Íµ¼Ñ¶¾Ó³ºÏ±¸Í¯ÀÉ­¾Ç¬¼Å¬¼Å¯ÀɱÂË­¾Ç¬¼Å­¾Ç­¾Ç­¾Ç­¾Ç­¾Ç¯ÀɯÀɯÀÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ£ºÉ¡¸Ç£ºÉ¦¾Í¨ÀϨÀϦ¾Í£ºÉ¡¸Ç¨ÀѦ¾Ï¦¾Ï¥¼Í¥¼Í£ºË£ºË¡¸É£ºË£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï­¾Ç­¾Ç­¾ÇªºÄ¨¸Â¨¸Â­¾Ç±Âˬ¼Å­¾Ç¬¼Å¦¶À¦¶À¨¸ÂŸ¯¸•¥­frYWcFL[>GW6FW1BS+4E0@DY-9L'CY6YqROgNBWICWMI]SWrfE^SmŠ|”­¡Œ¥™^rik~owŒu+9(>N61D'," ! 
+!.@;M#Rf9¨twcj{]dt]_m^Zg]¬¶¯­¸¸‡”W]a -($'7,"1!) !
+ (4&9SCMkZ9QMMYdrž¯À¬¾Ïª¼Í¬¾Ïª¼Í¡³Ä¦¸É¨ºË¬¾Ï±ÄÕ³ÅׯÂÓ¬¾Ï¬¾Ï£¶º‘”„•™Ÿ£š­±ŠœŸo‚•¨¬¬ÀÄ£¶º¦º¾¡µ¸Œž¡’•u…‰aor[r~™ªx”š…££]wq?TOUniRjdœŸi‚…6II9MIG_Q';(# 3N4KiTYygrŒk…‰—­¼—­¼~’Ÿž¶¼1??]rn‚œ—±¯nŠ‘b~‰cŠ8R:4J*(  , "3 ’­Å”¯Ç’­ÅªÂŒ¦¾Œ¦¾‘¬Ä”¯Ç—³Ë—³Ë—³Ë—³Ë—³Ë™µÍš¶Ïš¶Ïš³ÇŸ¸Íž¶Ë™±Å™±Åž¶ËŸ¸Íš³ÇŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÍŸ¸ÉŸ¸Éž¶Çž¶Çž¶Çž¶ÇŸ¸ÉŸ¸É¦¶wŒšj~ŒuŠ™¦¶Ÿ¸ÉŸ¸Éš³Ä£ÂÑž¼ËœºÉŸ¾Í¡ÀÏž¼ËŸ¾Í¥ÄÓž¼ËœºÉœºÉž¼Ë¡ÀÏ¡ÀÏŸ¾ÍœºÉªÂͦ¾É¥¼Ç¥¼Ç¥¼Ç¥¼Ç£ºÅŸ¶Â¥¼Ç¥¼Ç£ºÅ¡¸Ä¡¸Ä£ºÅ¥¼Ç¥¼Ç¬ÀË­Âͦ¾É¡¸Ä¦Â˯ËÕœ¼Ä„¡¨Rmq2GK0GJ!46#:;'?@Kno‰¸º•¥Œ£³ž¶Ç¥¾Ïš³Ä¥µ”¬¼¡ºËŠ¡±š³Ä£¼ÍœµÅš³Ä£¼Í¦ÀÑ¡ºË¦¾Ï¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ïª¼Í¬¾Ï­ÀѯÂÓ³ÄÕ³ÄÕ³ÄÕ³ÄÕ³ÀÓ¯¼Ï±¸Í³ºÏµ¼Ñ¶¾Óµ¼Ñ±¸Í±ÂË­¾Ç¬¼Å­¾Ç¯ÀɱÂ˯Àɬ¼Å¯ÀɯÀɯÀɯÀɯÀÉ­¾Ç­¾Ç­¾Ç¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í£ºÉ¥¼Ë¥¼Ë¦¾Í¦¾Í¥¼Ë¥¼Ë£ºÉ¦¾Ï¦¾Ï¥¼Í¥¼Í¥¼Í¥¼Í£ºË£ºË£ºË£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¬¼Å­¾Ç¯ÀÉ­¾ÇªºÄªºÄ­¾Ç¯ÀÉ£³¼¨¸Â¥µ¾šª³—¦¯œ¬µ¡±º£³¼kx^boQfxUWgCK[5GY0:L#=O%EZ.1B!7K+SjLOgN?SE>QGEYOQk_5KACZO[of‚šYmci{m—:J6EW=8L,2F$#72*4     )-D/7O<NiSOjT~ŸœºšoŠjk]‚—o{iy‘c~•guŒ]Oc9[r?Si8Xn:Rg5Ma7f{Tym{xŠœ•ªºÄµÄݦµÍœª¾¦µÉ¯ÀѱÂÓªºÇ•¦ªq~Wd]BOB0<, +(5*84D!3D=O$LU-OY0BL"EO$1=9E8G!K[5'3#. UjY]ra''6(­‰Šª…š­±O]_2?69G6w”jUoB %   %/-2]aLtof¶­¨ÂµÂœµÅ„š±JZky¥£ºÙAOc'3@CScEW_1A@    *$5- '9Lc1d|Dy’Z•¯y™mUdJ>J8JUIu„x¯º³¥¯¯—œx„+&
+  +     )?1'<0&96S_k|Œš¨ºË­ÀѦ¸É­ÀѳÅׯÂÓ’£³’£³š¬¼¦¸É¬¾Ï¦¸É£µÅ¥¶Ç­ÂÅ‚”—’¥¨š­±£¶ºŠœŸ[jm|‘‰šž‚”—ŠœŸŸ£‘”{Œw‡Šgwyx’£¬Ëß‘¯¶œ¼¼‚¡št‘ŠnŠ„Ja[ZruUmo2DD'84&7, 1!!3*3!4'7QBu’­±”¡¥³ŠŸ­œµº5CCk‚~ª¥žÂÀž¥cŠ~žª2K4:Q// '  
+& "* )'97=?E+2 ,4)2 1;1=Sa17E%'2BS<?O9"1,='UnIg‚Yr‰=MG&5'#4 5L'2J ! 
+
+"9 !‘¬ÄŒ¦¾…Ÿ¶š±~—­~—­‡¡¸‘¬Ä™µÍ—³Ë—³Ë—³Ë—³Ë™µÍš¶Ïœ¸Ñ¥ºÑ¨¾Õ¦¼ÓŸµËŸµË¦¼Ó¨¾Õ¥ºÑ¡¶Í¡¶Í¡¶Í¡¶Í¡¶Í¡¶Í¡¶Í¡¶Í£ºÉ¡¸Ç¡¸ÇŸ¶ÅŸ¶Å¡¸Ç¡¸Ç£ºÉ¬ÄÓœ³Â•¬ºžµÄªÂѦ¾ÍžµÄ—­¼ž¼Ë•³Â”±Àš¸ÇœºÉ—µÄ™¶Å£ÂÑž¼Ëž¼ËŸ¾Í£ÂѦÅÕ¦ÅÕ£ÂÑŸ¾Í¦ºÅ¥¸Ä¥¸Ä¦ºÅª¾É¬ÀˬÀ˪¾Éª¾Éª¾É¦ºÅ¥¸Ä¥¸Ä¦ºÅª¾Éª¾É¦ºÅ¨¼ÇŸ¶Âš±¼£¾Ç¨ÄÍ’±¸y•œQko,/45-.++Nrt~¬­n™šSdqo„’•­¾Ÿ¸É…œ¬j~Œfy‡q…”Š¡±¡ºË¯ÉÛ¥¾Ïž¶Ç¥¾Ï£¼Í™±Â¦¾Ï¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï¦¾Ï­ÀÑ­ÀѯÀѯÀÑ­¾Ï¬¼Í¬¸Ëª¶É³ÀÓ±¾Ñ³ºÏ³ºÏ¶¾Ó¶¾Óµ¼Ñ³ºÏ±Â˯ÀÉ­¾Ç­¾Ç±Â˱Â˯ÀÉ­¾ÇµÅϳÄͳÄͱÂ˯ÀÉ­¾Ç¬¼ÅªºÄ¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¦¾Í¨ÀϦ¾Í£ºÉ¡¸Ç¡¸Ç£ºÉ¦¾Í¨ÀÏ¡¸É£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¨ÀÑ£ºË£ºË£ºË¥¼Í¥¼Í¦¾Ï¦¾Ï¦¾Ï¨¸Â­¾Ç±Â˳ÄͯÀɬ¼Å¬¼Å­¾Ç­¾ÇµÅÏ­¾Çž¦u‚Šn{‚t‰y‡n{^[iJ^kJCO/:I'EW,<N$J^/Xo=CX0@U3QgJ^waf~r^trJ][1D;Rk_?RIDXNQfY^ocRaO‡œŒ£~wa9O))='.
+0 .KD]1-?#0 
+,A-;T>)>+NfNSkOQdEk‚Zy_j~Om‚N^tCuR{•USj1[u4Rj-Sk.G^&j„CFY1=M0ZkU’…Œš£’¡±¡¯Ç™¦¾œªÂŸ­Â¦¶Ä³Ä͸Ëͨ¼µ”¨”r…kL]?(62C&5(9$5 7LAG<B%(0 8C?K0<MZ-BR.;I/+8&+9'$/@*#&6,:5    -C'>
+
+&) -#
+ FC:tq]oiQEA(SN2NX[<DG$-*""'D9?j#D$,Q=R= +? $0+:;L*<BZ#1G+A(= #6 #4 '#:G@BQImqIZD_yTg‚Wqšf‘Â~Jk;!8( !. -
+ &'
+)  8@gFg‰¶ÙÙž¾¾_rtm…ž­¶­¾Ë¶ÇÕ­ºÉžª¸—¦³¡±¾¥¸Àž±¸™±¶ž¶¼ž¸¯jr‡¡‘m„qf~ggdn‰iOfKMbKk„mŒ¦”‘ªž¥¥¦¬‚—¥m~‘¨¶Ûž¬Ïbw—œ]yo{œ‘Gc[=USTow0DJ?SUTga1@+ +($1 ?M"]nIL]Kmy—”u™ŒIfU3R126YKfŠja{uŒ¦Ä„•µFY)1A<M!(6:K 9J( ”±À¬ºŠ¦µ¬º—µÄœºÉ™¶Å•³Â™¶ÅœºÉž¼Ë¡ÀÏ¡ÀÏŸ¾ÍœºÉš¸ÇœµÅ¡ºË¡ºËž¶Çž¶Ç£¼Í£¼Íž¶Ç¡ºË¡ºË¡ºË¡ºË¡ºËŸ¸ÉŸ¸ÉŸ¸É¥¼Í¡¸ÉžµÅžµÅ£ºË¦¾Ï£¼Í¡ºË¡ºË£¼Í£¼Í£¼Íž¼ËŸ¾Í£ÂÑ¥ÄÓ™³À¡¼É¨ÄѪÅÓ¦ÂÏ£¾Ë¥ÀͨÄÑŸºÇ£¾Ë¥ÀÍ¥ÀÍ£¾Ë¥ÀͪÅÓ±ÍÛªÂѦ¾Í¦¾ÍªÂѨÀÏ¡¸Ç¥¼Ë­ÅÕ£ºÉ¥¼Ë¥¼Ë¦¾Í¦¾Í¥¼Ë¥¼Ë£ºÉ¦¶À¡±ºœ­¾Š£¯{—ž™¾Äa…xRtb=bE1##+!;1QtmRrxx¥¬y¦­ŸÉÕœ¾Ë¯ÏÝ‚—¥x‰Œ—¡£±¶ª¸¾­¼Àª¸¼¨¾º­ÄÀªÅÀ¥Àºª¾Éª¾É¬ÀˬÀˬÀˬÀˬÀˬÀ˵ÉÕµÉÕ³ÇÓ³ÇÓ±ÅѯÄÏ­ÂÍ­ÂͶÄÓ­ºÉª¶Å¯¼Ë¯¼Ë¬¸Ç¯¼Ë¸ÅÕ³ÀϳÀϵÂѵÂѵÂѳÀϱ¾Í±¾Í¶ÄÓ³Àϱ¾Í±¾ÍµÂѵÂѳÀϯ¼Ë±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í­ºÉ³ÀϳÀϬ¸Ç¬¸Ç³ÀϳÀÏ­ºÉ³ÀϳÀϱ¾Í¯¼Ë¯¼Ë­ºÉ¬¸Ç¬¸Ç¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë­ÀÓ­ÀÓ¯ÂÕ¯ÂÕ¯ÂÓ­ÀѬÀǬÀÇ­ÂŨ¼ÀªÀÀ¬ÂÂœ±­’o{m~xL]IK]DIZ@=M5UjIBT7AS4I[;_uOTiItŠin„icwdyr…{i{qXncRg]o‰bxw_ut^trBSOZnd™±—bwX?R/4G;O': !!2+F1 
+!* !2 1"1AW6c{Qo‰[dECZ%<TWt+I[)Zo6ax7?RKc&Ld'Ng(;OQj/Sk7XrDE[<EYCo‡w¨•¥¦œÂ—¥ËœªÑž¬Ó¥³×¯ÀݱÄÛ­ÀѳÇ˪À¼ŠŸ‘Ÿ¸¡œ¶•’¬…RfF;L/FF#??::88469;/5*1/71<1=)5!+ *
+&  !! 
+
+    *3;R4@YLZx2F+1E'.2>47C9(3CR4'2;J0/>)!/ +8$1?2YiiŒž¥^mr^qq@RF,<-  #5R.Cb8!740K/
+'! /2*F%7]4[Ša]{w0AC);<f{ªÅϪ¾É¡³Ä¼ÉÝŠš™ª„’žmy„ix~|”‚™šxTi[EXI@RCBUAFZDRiKCX;UmLk…atn…¡„rŠwWjam‚~—¯¯•­³š±Â—­¾‰£¡n‡~~¡Œ„¨’k{?YOr”Yro>SL5E88L0DW.AU3E2C<M#".'1#+92BYN4K=@ZE4 ' 5GfBG]Jc|:IL-?!&'):+
+$(¬º”±Àš¸ÇœºÉš¸Ç™¶Åš¸ÇœºÉ™¶Å’¯¾Œ¨¶‡£±‰¥³‘­¼š¸Ç¡ÀÏš³ÄŸ¸ÉŸ¸Éš³Äš³ÄŸ¸ÉŸ¸Éš³Ä¦ÀѦÀѦÀÑ¥¾Ï¥¾Ï£¼Í£¼Í£¼Í¡¸É£ºË¥¼Í¦¾Ï¦¾Ï¥¼Í¥¾Ï¥¾ÏŸ¸É£¼Í¦ÀÑ¥¾Ï£¼Í£¼Í¥ÄÓªÉÙ£¾Ë£¾Ë£¾Ë¥ÀͨÄѨÄÑ¥ÀÍ£¾Ë¬ÇÕ­É׬ÇÕªÅÓ¨ÄѦÂϨÄѨÄÑ­ÅÕªÂѪÂÑ­ÅÕ¬ÄÓ¦¾Í¨ÀϱÉÙ¥¼Ë¥¼Ë¦¾Í¨ÀϨÀϦ¾Í¥¼Ë¥¼Ë£³Ä¨¸É¬¾ÑxœYoyx™š:UN+D5GoQ(G+ 
+!"=.-I<Eda+BMFcq‡¬À|™­…¡³”¨¾q‚•‚¥Œ™¬œª¾ªºËªºË¥¶Ç¨ºËªÂͪÂͪ¾É¬ÀË­ÂͯÄÏ­ÂÍ­Âͪ¾Éª¾É­ÂÍ­ÂÍ­ÂͬÀˬÀ˪¾Éª¾Éª¾É¸ÅÕµÂѳÀϱ¾Í¯¼Ë­ºÉ¯¼Ë±¾Í­ºÉ¬¸Çª¶Åª¶Å¬¸Ç­ºÉ±¾Í³ÀϬ¸Ç±¾Í¶ÄÓµÂѱ¾Í¯¼ËµÂѺÇ׳ÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀϱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í³ÀϳÀϱ¾Í­ºÉ­ºÉ±¾Í³ÀϳÀÏ­ºÉ­ºÉ­ºÉ¯¼Ë¯¼Ë±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Íª¼Ï¬¾Ñ­ÀѯÂÓ¯ÄϯÄÏ­ÂÉ­ÂÉš¯¯™­­¥º¶³ÉÅ¡¸¬”‰q„yu‰~šqk‚]]rMEX8Rg?FZ5Mb9K_7DX3EX8RfFTgMSdR]nak~q{‡rŒ‚œ’~—’„ž™n…„d{yf{t4D:9G8TgKXnB-?,
+'!"41 2 (' 
+%,   DC0ffIUU1 &%     )"  JXLiykYjGRbA+7!+8"6F%/>,<(#_tU”¬•¥ººÀÕÝŒž¥k4D:#1# 2,( *
+ ( & 9-K(#A!'F+0-,=?Xrt—±¶¬ÇѯÄϱÄÕ³ÀÓ‡’£Œœ‚‘œžªŒž¥{Œ’m‚m‚RfYOcS<M?AT@CWAJ_C->'J_A]uSfaœy’~]qgk|„ššr‡Œ„™¨’¨¸tŒŠn‡~E_ORn]<WG7OFo‘Œg‚F]U5E84G,0?*:0A+:%2 *5&NaXZui6M?3K83& ) 7W(/G+*:+ .0#/1#2 "1 &6##2 ):+=,
+¬º—µÄž¼ËŸ¾Íš¸Ç—µÄš¸Çž¼ËŸ¾Í™¶Å’¯¾ª¸¬º—µÄ¡ÀϨÇ×—¯Àž¶Çž¶Çš³ÄœµÅ£¼Í¥¾ÏŸ¸É£¼Í£¼Í¥¾Ï¥¾Ï¦ÀѦÀѦÀѨÂÓ£¼Í¡ºË¡ºË¡ºË£¼Í¥¾Ï¥¾Ï¥¾Ï¨ÂÓ¥¾ÏŸ¸É¡ºË¥¾Ï¦ÀÑ¥¾Ï¡ºË¬ÇÕªÅÓ¨ÄѨÄѪÅÓ¨ÄÑ¥ÀÍ¡¼É¯ËÙ­É׬ÇÕ¬ÇÕ¬ÇÕªÅÓ¦ÂÏ¥ÀÍ­ÅÕªÂѬÄÓ¯Ç׬ÄÓ¦¾ÍªÂѳËÛ¥¼Ë¦¾Í¨ÀϨÀϨÀϨÀϦ¾Í¥¼Ë—¨¾¸Ë㗯ėªc{‡t”™Txk7WB3W78^9'
+ 115S;7SIB^kc…•”ºÏ‡¥ºm‡šg{N_qiuŒž¸Ÿ¯Ë­¾Û¬¼Ù¦¶Ó¨¸Õ¨¾Ù¨¾Ù­ÂÍ­ÂͬÀˬÀË­ÂͱÅѳÇÓ¶Ë×µÉÕµÉÕ³ÇÓ³ÇÓ³ÇÓ³ÇÓ±ÅѱÅѵÂѶÄÓ³Àϯ¼Ë­ºÉ­ºÉ­ºÉ¬¸ÇµÂѳÀϱ¾Í±¾Í³ÀϵÂѸÅÕºÇ׬¸Ç±¾Í¶ÄÓµÂѱ¾Í¯¼ËµÂѺÇ׳ÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀϱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í¯¼Ë¯¼Ë±¾ÍµÂѵÂѱ¾Í¯¼Ë¯¼Ë¬¸Ç¬¸Ç­ºÉ¯¼Ë¯¼Ë±¾Í³ÀϳÀϱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í¬¾Ï¬¾Ï­ÀѯÂÓ¯ÄË­ÂÉ­ÄĬ”¨¥‘¥¡žµ¨³Ë¾¥¼¬”…nrr…wd~LNd9DY/->0A+<:M%8K#8K'AT1EX:L^CJZFDTEScXiyt…¡—š¸­„ž™™”i{g~y™‘J]QIYGM_D;M+)* #3 *#5   % -@!|•mrŠc[qLEY4DX+Tk1Wr*F_o‰BAT!EY#La'Qj(>TKc$F^!b:>S&:Q(!0#2OdQYnajr”„•ª™ªÀ­¬Àµ¨¼µ¬¾À¯ÂıÂ˳ÄѬ¼É¯ÀÍšª¶’¡ª¨¸ÂÀÓרº¾¾ÄÍÀÅÏ¡¦¯jnudjnUZ^>CFiot¥¯¯Ÿªªx…„o|{+31KURWb^2E'/+ . #(3+2 
+ ??)[]9]a1/1)1*   +'8KZC|Š™šªº—¦žx…~JSU$+,;DAYf[[i]Zg[_ni¡³µ­ÂͨºÍ¼ÏãµÇÛ£¼¾]qm2B7'  
+11#  !4
+*
+4Q%9"3!!. ,D1 1 4
++?(/!1 ”±À™¶Åž¼Ëž¼Ë™¶Å—µÄš¸Çž¼Ë—µÄ™¶Åš¸ÇœºÉž¼Ëž¼Ëž¼Ëž¼Ëš³ÄŸ¸É¡ºËŸ¸É¡ºË¨ÂÓªÄÕ¥¾Ï¡ºË¡ºË£¼Í¥¾Ï¥¾Ï¦ÀѨÂÓ¨ÂÓ¨ÂÓ¡ºËš³ÄœµÅ£¼Í¦ÀѦÀÑ£¼Í¬Å×¥¾Ïž¶ÇŸ¸É¥¾Ï¨ÂÓ£¼Íž¶Ç¬ÇÕ¬ÇÕ¬ÇÕªÅÓ¨ÄѦÂϦÂϦÂϨÄѦÂϦÂϪÅÓ­É×­É׬ÇÕ¨ÄÑ­ÅÕªÂѬÄÓ¯Ç׬ÄÓ¦¾ÍªÂѳËÛ¦¾Í¦¾Í¨ÀϨÀϨÀϨÀϦ¾Í¦¾Í¬¾ÕÏãý™±ÅŠ¡µgŒmŒ‘]‚uAcM!=#4Y51, :(0L5-F=r—¨yŸ±|Ÿ³—¶Íg”>M]:IXq~•Ÿ¯Ë¬¼Ù³Äá¯Àݪº×ªº×¦¼×¥ºÕ¯ÄÏ­ÂͬÀˬÀË­ÂͳÇÓ¸ÍÙºÏÛ±ÅѱÅѱÅѱÅѱÅѱÅѱÅѱÅѳÀ϶ÄÓµÂѯ¼Ë­ºÉ¯¼Ë­ºÉª¶Å³ÀϳÀϱ¾Í±¾Í±¾Í³ÀϵÂѵÂѯ¼Ë³ÀϵÂѵÂѱ¾Í±¾Í³À϶ÄÓµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í¯¼Ë­ºÉ±¾Í¸ÅÕ¸ÅÕ±¾Í­ºÉ¯¼Ë­ºÉ­ºÉ­ºÉ¯¼Ë¯¼Ë±¾Í±¾Í±¾Í³ÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀÏ­ÀѯÂÓ¯ÂÓ¯ÂÓ¯ÄË­ÂɬªÀÀ‘¥¡…™•¥™¦¾±Ÿ¶¦{j|nnrTk>BW/BW-0A1C1CEZ.>R((86G'8I.L^CTfQBRCKZO[kf|—•³¨~—’u‰k‚~tŒ‡‘ª¡iqi|gM_D3D%!/+ "$6 (
+  ) 1<R.o‡aNbBJ]<Qf>BU)5G>UJc!^u5-=;MNc)Kc$2F>T4IGa'2ELf76J+8K2ij]rdq‰y{~”¨—ªÀ­¬Àµ¥¸±¦¸º±ÄŸÉÓ¨¸Å™¨µ¶ÇÕž­ºy‡n{‚ž¯³ª¼ÀºÀÉËÑÛ¯µ¾qu|rx|QUY+02jqu”žž¬¶¶¦¶µ™¨¦OZW1:7amiu‚~Kb=8M)$3! !/ 
+
+   AB%SW++-gui]j^   +' ,?!¥„¦¶ÇšªºŸ¯¦³Äºq|+248A>w…yš¬œ±Ä³¸ÍŶÉ˨¼Ç¥¶ÉŸ±Äž¯Â³ÍÏ¡¼¶]rc%3&+ 
+  
+  %'<Sm4‘±jb{GBW-La2d|CKb'1F8NGaG[$3D:M:M?U+>2F3G#4 ,?Sn;Oi?G]?^u]im|•…’¥š¦¸¶¶ÉdzÅĪ¼¾ª¼¾­ÀįÂÅš¬¯…•™¼ÏѱÄÅn~x;FBYg_m|tž¯­¦¸¶±Ä„”’žœ„’‘R][’¡Ÿœ¬ªŸ¯ªœ¬¦œ—…”‘Ÿš•¥Ÿ„œxx‘i+6C).:"#*
+GL(fo4CK]kU|t!/'
+! 7L2#7-„—‡—¡Ér{ž_kxª±Åru‰CET:>Jw|¬³Ç³ºÏºÅݨ³É¸ÉÛµÅב£ªu‡‡„ž¥Âªž{I^DRqO1  "+( (
+ 
+
+( %+;& ->Qf>NbB9J/-?#/ 1')"!2 .A-,!7 4
+,+ 4
++!ž¶ÇœµÅš³Ä™±Âš³ÄœµÅž¶ÇŸ¸É¦ÀÑ£¼Íž¶Çš³Äš³Äž¶Ç¡ºË¥¾Ïž¸Å£¾Ë£¾Ëž¸Åœ¶Ä¡¼É¡¼Éœ¶Ä¦ÂÏ¥ÀÍ¥ÀÍ£¾Ë£¾Ë¡¼ÉŸºÇŸºÇ­ÍÛš¸ÅŠ¦³Œ¨µŸºÇªÅÓ¦ÂÏž¸ÅŸºÇ¦ÂϬÄÓªÂѦ¾Í¦¾Í­ÅÕµÍÝšµÂ¡¼É¨ÄѨÄÑ£¾Ë£¾Ë¬ÇÕ¶Óá¯ËÙ¬ÇÕ¨ÄѪÅÓ¬ÇÕªÅÓ£¾Ëœ¶Ä¬ÄÓ¨ÀϨÀϬÄÓªÂÑ¥¼Ë¦¾Í¯Çצ¾Í¨ÀϨÀϪÂѪÂѨÀϨÀϦ¾Í¥ºÕœ±Ë¯Í燡¸Wq{Yuy3)3##@$. 0   CaJMmgm’ŒJic‘¼µ{žšOffi…‡‰¡¦’¨³•¬¶™¯¾™¯¾¥¶É¯ÂÕ±ÄÛ¬¾Õ¬ÀË­ÂͯÄϱÅѱÅÑ­Âͪ¾É¨¼Ç³ÇÓ³ÇÓ³ÇÓ³ÇÓ³ÇÓ³ÇÓµÉÕµÉÕ±¾ÍºÇ׺Ç׳Àϱ¾Í¸ÅÕ¶ÄÓ­ºÉµÂѶÄÓ¸ÅÕ¸ÅÕ¸ÅÕµÂѱ¾Í¯¼ËºÇ×µÂѯ¼Ë±¾ÍµÂѶÄÓ±¾Í¬¸ÇµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾ÍºÇ×±¾Í­ºÉ³ÀϳÀÏ­ºÉ±¾ÍºÇׯ¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë³ÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀϳÅ׳Å׳ÇÓ±ÅÑ­ÂŪ¾Â¦¼¸¥º¶™¯£y‚o‚t•…„š‚mkat]i|d>S&1C@W&<R#BY'<R#;Q"+'67I'7I*ka™³’i{mN^SBOK]rny’|•‘{”œ¸³¡¾¸™tŒ{—|j]Mb;1B+<*
+ ),BJ7>LYEog3E#1 );%UoO'<"(brdu~¡OWt)19fk{x{|”_dt•¨ÀÇݨ¯Ä¸ÄÛÅÑꪺˬ¼ÍŠœ£k||bxj~—‚„¡~x”ryŸw?Z=!3/F'0  # ,'A/!0IBTnm[yuk…‰¥ÅͶÏᗬœªÂ¯¾Ó¡¯Ä‘¡±~•g{|cxtx‘Œš¸ª¬‡~šrm‰a1C)6J+8L,9N*;Q+7L(WqCE]49M-ZtK]wRE[<McF1G12I18Q3@Z;A]96O/'= 1;S.Mi>b~MNi9!1
+ !1 '7# .DX30?';L1): 1*!&;/ 1E
+*:.)")!5  0 +—¯ÀŸ¸É¡ºËš³ÄœµÅ£¼Í£¼Íš³Ä¡ºËŸ¸ÉŸ¸ÉŸ¸ÉŸ¸É¡ºË£¼Í¥¾Ï¨ÄÍŸºÄž¸Â£¾Ç¥ÀÉ¡¼Å¡¼Å¥ÀɦÂË¡¼Åšµ¾šµ¾¥ÀɱÍׯËÕ¥ÀÉ¡ÄË’³ºb|‚Xqwx”š’±¸•¯¸­ÉÓªÂÍ£ºÅŸ¶Â¥¼Ç¯ÄϯÄϬÀ˨¼ÇŸºÇ¡¼É¦ÂϬÇÕªÅÓ¥ÀÍ£¾Ë¦ÂÏœ¶Ä£¾Ë¬ÇÕ¬ÇÕ¦ÂÏ£¾Ë¦ÂϬÇÕ¡¸Ç­ÅÕ³ËÛ¯ÇׯÇ׶Ïß³ËÛ¨ÀϸÑᜳ¸Ñᦾ͚±À³ËÛ¡¸Ç¦¾Í£¼Ñ¦ÀÕž¾Ñ­Ào—Kfb$=0%0:& + 
+#(?%BdAY]JnKx¥9T<+B0d‰mjxLgXXnf{™¦ÀÀªÀÀ£¶¾ª¾Å¬ÀǯÄÏ£¶Â¡µÀ­ÂͯÄϨ¼Ç¬À˺ÏÛ­ÂÍ­ÂÍ­ÂÍ­ÂͯÄϳÇÓ¶Ë׺ÏÛµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾Í±¾ÍºÇ׸ÅÕ¸ÅÕ¶ÄÓ¶ÄÓ¸ÅÕ¸ÅÕºÇ×±¾Í±¾Í³ÀϵÂѵÂѶÄÓ¸ÅÕ¸ÅÕ³ÀϵÂѶÄÓ¶ÄÓµÂѳÀϯ¼Ë­ºÉ³Àϱ¾Í¯¼Ë­ºÉ­ºÉ­ºÉ­ºÉ¯¼Ë¬¸Ç­ºÉ¯¼Ë±¾Í±¾Í±¾Í±¾Í¯¼Ë±¾Í­ºÉ³ÀϾËÛ¾ËÛ±¾Í¯¼Ë¶ÄÓ£¶ÂÉß쨼ĬÀÇœ¯³”¨¥ny£”mrfygo„nZnUdy]wnXkN_tUAW)<Q%9M"5I&76K#3,=<O'FZ59J-m‚dn‚j„™ŠO_TSb]‘¬¦g~yx‘ŒŸ¼¶š¸­¨Ç¼^tfNbRWiSI[>J^:,=!/ .
+*!
+1
++B1G-BXu,^{4Rj-Md*d|9Tk*1E5K4L
+6N ;N#1 '!0 (,@+>;R+?#4( "2<Q3?R=@S>[of•Ÿ¸š¥¾¦±Ë±¼×µÀׯºÑ¯¼ÏµÂ;ÍÑ„’”¥•¶Ë±ž±”£t…c?L3,=& 
+    '"-IW>GU==F1WbI+2!#*1 -4#5B//;)3?+JX?_oS!   
+4;DN.6>L02?&,@,@?W-@:S'1G !) DRD„¯bk‡^jqy…ž¡Ÿ­±¯¸ºÂººÉº¾ÕÄÇßÂÉÛ¼Å;ÑÏž³¡™±”f|Y>S3#4:R+Ok>=W77O1#5 1! &
+ 1 "5. -&  &1N7BaQb„q…¥šy—”^quq„¾×ꬾѥ¶É¨ºËž±¸~—•u…t‘‡k‰xti‰¦|~œqOgE]wMSkDXrFZuI:O+@W08N(3I$?U/Ia7G_6G_6Cb:/I'C_9r—db„S5N++A7O#.C)>. ) '  "5"'7$ /@0@n‡N0@1B&, *; !"2
+$5 *
+  "+ "1 )8#—¯ÀŸ¸É¡ºËœµÅœµÅ£¼Í£¼Íš³Ä¡ºË¡ºËŸ¸ÉŸ¸É¡ºË¡ºË£¼Í¥¾Ï¬ÇÑ£¾ÇŸºÄ¥ÀɨÄÍ¥ÀÉ£¾Ç¨ÄͬÇѯËÕ¬ÇÑ£¾Ç¡¼Å¥ÀÉ¡¼Åšµ¾¨ËÓ¡ÄËSkq*;?McišºÂ³ÏÙ¥ÀɪÂÍ£ºÅŸ¶Â¥¼Ç­ÂÍ­Âͨ¼Ç¥¸Ä¨ÄÑ¥ÀÍ£¾Ë¦ÂϬÇÕ¬ÇÕ¨ÄÑ¥ÀͦÂϦÂϨÄѪÅÓªÅÓªÅÓ¦ÂÏ£¾Ë¥¼Ë¬ÄÓ¬ÄÓ£ºÉ£ºÉ¨ÀϦ¾ÍŸ¶Å­ÅÕœ³Â¸ÑáªÂÑŸ¶ÅµÍݬÄÓ¯ÇתÄÙ¬ÅÛœ¼Ï™¸Ëj‰‘D^Z!8+,#>!!=+ 
+#&<#)D(DfG@bA8W=/+B06Q<$9,7NAœ’ÀåÙ¶ÑѨ¾¾µÉѺÏת¾Å­Âͨ¼Ç¨¼Ç­ÂÍ­Âͪ¾É¬À˱ÅѵÉÕ±ÅѯÄϯÄϱÅѵÉÕµÉÕµÉÕµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѳÀϳÀϱ¾Í±¾Í±¾Í±¾Í³ÀϳÀϵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂÑ­ºÉ¯¼Ë±¾Í³ÀϵÂѶÄÓ¶ÄÓ¶ÄÓµÂѵÂѳÀϱ¾Í¯¼Ë¯¼Ë±¾Í±¾Í­ºÉ­ºÉ¯¼Ë¯¼Ë±¾Í±¾Í±¾Í±¾Í¶ÄÓ¯¼Ë¯¼Ë¶ÄÓµÂѯ¼Ë³ÀϾËÛœ¯º­ÂÍ­ÂÉÇÝå¯ÄǺÑÍ‚•Yj^Yj^]o^kj^rYYmR^rWL^CAR9AW)'88L!$4+=>T$&61BAU+J^8:K.YmRcw_q„wXi]t…š¶±y’f|xŒ¦¡~™Œ¨žx‘WkZK[G9J0:L,->1B0B 0  )?*@1F2IFa!7MTm/Yr2c{8BW1EC[>X4L
+!$'6 %4 #++"3
+!3 0 #5:O+LcB=O;AT?q‡|œ¦À¨³Í¶ÂݸÄß±¼ÓªµË¥±Ä¡­¸¡¯³iuqMYNao]„•{—¬‡•ª‚ŒŸy^wT 
+ 
+0=(-:&@M6WfKFQ:EO9'.+2!=E1=E1)4#*5$7C.YiMm~_!   !& 4=9B7D*>L0': 8N5KBY&.D+ <I<’žÀžªÍ”£¬š£¨ª­¬±µ³¼¾ÅÅÅÕÀÄÛº¾Õ¶¾Ï¼ÅÍÉÝÛ¾Õ‘¨Œ9J0):!7L*Mi<1G$.%9!7N+/D!%  *
+!+ /I.+  1 Oq_EbR,>8-?=¥ªªÂÍžµÅ¬¾Ñž¯Âš¬¼Œž¥f|{]tkg‚yq~‘¯„…£yt‘gSkI]wMF]9Mf=YtGG_6F^50D! 1*<;Q+<R,8M)7S/6R.@[6n’aUuGLj?2J#.D0E0F&:- 
+ 
+%%>-I#2S*$? +";!01CdJ¥Š‰­™rŒ‚‘­£ÅÝݼÏÑŸ¯¸¬À˱ÅѱÅѬÀ˪¾É­ÂͬÀ˦ºÅ¶Ë×±ÅѬÀË­ÂͱÅѳÇÓ­Âͪ¾ÉµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѸÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ±¾Í±¾Í¯¼Ë¯¼Ë¯¼Ë¯¼Ë±¾Í±¾Í¸ÅÕ¸ÅÕ¶ÄÓµÂѵÂѳÀϱ¾Í±¾Í±¾Í±¾Í±¾Í±¾Í³ÀϵÂѶÄÓ¸ÅÕ¶ÄÓ¶ÄÓµÂѳÀϳÀϳÀϳÀϳÀÏ­ºÉ­ºÉ¯¼Ë¯¼Ë±¾Í±¾Í±¾Í±¾ÍµÂѯ¼Ë¯¼Ë³ÀϳÀÏ­ºÉ­ºÉ±¾ÍÄÙá³ÇÏ­ÂůÄÇ¡¡³ÉÂœ³¦Xi[GXIXjTi~cm‚b[qO[qO]rM7G+Qf>$2?S,,2D!@T+#2)8/?!9J-1?*DU@dxfj|oiyt¡¶¶™µ³„žœWkjo‡…Rfbc{o‡¡‘]raau[;K3'6%*2D) !+ )/ ,-C8QD]:Q=QNd&Mc#%4 -= J_?U.A#+=R9M9O@X8N+?+@1F+?,@Kb?j„dm‡gjr—º¦¯Õ¸Â糼ᬶխ¸Ï¯¼Ï¬¸ÄµÅÄ„’ŠJWF<G6O^BL[<CR2Sd<Mj7( !18N%( &&&0U_6Zc<gmDMR0IM,@D&=@&=J59E11=)9E07@.  +4=I1> AQ-(= +A
+&:
+8O'=! 
+07S'&9#
+'! 5/7O<C]MŒ¦¡ªª¸ÍÙ¶ÉÛ—¨¸£­¦¨x‘j‚yoŒ‚x—…k…f->*EZAUmQ<O49L1j…[WoJLd<E]6;Q+?U/Ib6AY0:Q(@X-+E!=[5@_:f‰[If>a|L4K!0 %0!4/
+<N1E#  "+ * #/ $œ³ÄŸ¶Ç¡¸É¡¸É¡¸É£ºË£ºË¡¸É¥¼Í£ºË£ºË£ºË£ºË¥¼Í¦¾Ï¨ÀÑ­ÉÓ¥ÀÉ¡¼Å¦Â˪ÅϦÂ˦Â˪ÅÏŸºÄ¨ÄͯËÕ¬ÇѬÇÑ­ÉÓªÅÏ£¾Ç—¼Â”¸¾y—žZty{™Ÿ~œ£­µªÂͯÇÓ±ÉÕ³ÇÓ±ÅѶÇÕ¶ÇÕ­¾Ë¡±¾Œ¥±•¯¼ž¸Å£¾ËªÅÓ­É׬ÇÕ¦ÂϯËÙ¬ÇÕ¨ÄѪÅÓ¬ÇÕ­ÉרÄÑ¥ÀͨÀϪÂѪÂѪÂѪÂÑ­ÅÕ¯ÇׯÇרÀÏ¥¼Ë³ËÛ­ÅÕ¡¸Ç£ºÉ’¨¶u‰•—¶¾¥ÅÍ’³¾œ¾Éb„„Oqd(C1!:#11&
+
+ 652+6*E(53!7U=C^K5L?EYRªŸ¸ÏÏ¥¶¸ªºÄ¦ºÅ³ÇÓµÉÕª¾Éª¾É³ÇÓ±ÅÑ£¶Â±ÅѬÀ˦ºÅ¨¼Ç¯ÄϯÄϪ¾É¥¸ÄµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѸÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¸ÅÕ¶ÄÓ¶ÄÓµÂѵÂѵÂѵÂѶÄÓ¶ÄÓ¶ÄÓ¶ÄÓ¶ÄÓµÂѵÂѳÀϳÀϳÀϼÉÙºÇ׶ÄÓ³Àϱ¾Í±¾Í±¾Í³À϶ÄÓ¶ÄÓµÂѳÀϱ¾Í³ÀϳÀϳÀϯ¼Ë¯¼Ë¯¼Ë¯¼Ë¯¼Ë±¾Í³ÀϳÀϪ¶Å¬¸Ç³ÀϸÅÕ¸ÅÕ±¾Í¦³ÂŸ¬º¬ÀDZÅ;Ó׸ÍÑœ±±Ÿµ­‚—ŒQaT@OAQbM[oWr‰gcyWj]™mAS4TjA3D%;N)->=Q)@T+*:&4#1+9!)6#<L8r‡tntgxr’¦¦ª¨‚œšf|{d{y8IERg]{”„bxfjdJ[A7I*)8*'6$+>&'1I7O:QC[AUXo,Yq+,=CWYq!Jb9N  ): %5 4J7M3I$6 1 ?W!Mi3<S+8L.QgLqŒk„ž…¯Ÿ¨Í­¶ÛŸ¨Ë™£À¦±Ç¶Ä׸ÅѬ¼ºœ¬£n~jDQ>1='*5(3,9$ "5%7' 
+  #-AJ'@G'SX4JN-EJ*AE'bfCTcKgx]aqT^nR>G4 
+)2 0:**6+@
+/(= "4 *@%
+ '+)" 
+   ##-4K=‡¡œ¡¾¾¯ÄÏœ­¾t‚‘nŠ‡žŸ‚œšk„{XqiNgY;N76I28K4:M6YqOJ_A[uN„£ti…UBY38M)Sm@Sn?)<#4D]17U,Cc;@_:A]9.E&>T.*>%%"5)> !6 (,
+)? 1 1->1B%1)4.:$!.;)5 !/1B*<  !(
+(
+(
+# Ÿ¶ÇŸ¶Ç¡¸É£ºË¥¼Í£ºË¡¸É£ºË¥¼Í¥¼Í£ºË£ºË¥¼Í¥¼Í¦¾Ï¨ÀѬÇÍ£¾ÄŸºÀ¥ÀŨÄÉ¥ÀÅ¥ÀŨÄɪÅ˪Å˦ÂÇ£¾Ä¥ÀÅ¥ÀÅ—±¶‡Ÿ¥c……ušša~-ABQjkx—™£ÇɨÄÉŸºÀª¾Åª¾Å¦ºÂªºÄ­¾Ç£¯º”Ÿªm‚…žªŸºÇ¦ÂÏ¥ÀͨÄѨÄѦÂϦÂϪÅÓ¬ÇÕ¬ÇÕ¨ÄѨÄѬÇÕ¯ËÙ¡¸Ç£ºÉ¦¾Í¬ÄÓ­ÅÕªÂѨÀϨÀÏ­ÅÕ¬ÄÓ¬ÄÓ¯ÇרÀÏ£ºÉŒ¡¯]nyŸœ¯¬~¡ž|Ÿœ^xSuf*E0+; <"   
+ )  0,K,$?'  ')?2<ULf~¦ÂÇ¥¶Ç™¨¸ÄÕ磶±ÅѵÉÕª¾É¬À˶Ë×µÉÕ¦ºÅ­Âͪ¾É¦ºÅ¨¼Ç­ÂͱÅÑ­Âͪ¾ÉµÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѺÇ׸ÅÕ¶ÄÓ¶ÄÓ¶ÄÓ¶ÄÓ¸ÅÕºÇ׳ÀϳÀϳÀϵÂѵÂѶÄÓ¶ÄÓ¶ÄÓ¾ËÛ¼ÉÙ¶ÄÓ³Àϱ¾Í±¾Í±¾Í³ÀϵÂѵÂѳÀϱ¾Í¯¼Ë±¾Í±¾Í±¾Í±¾Í±¾Í¯¼Ë¯¼Ë¯¼Ë±¾ÍµÂѵÂѪ¶Å­ºÉ±¾ÍµÂѸÅÕ¸ÅÕ±¾Í¨µÄ¨¼À­ÂÅœ±±‘¥¥¦¼¸¥™mrbucEUBJ[CK]BbxT^tNm„[„ŸkCW2=M7AR;+9#I[>K^=CU6@R3/>$4D+1@++9(>M=r…xm~xSb_Ygjšš™™ª¨o‡…7GDUka_ufgio…gNbC2C&(7! * ' #&)=9N5J,?7LCW#Qf-^q51??O5E'7#1#2 '2E.@1G*> /D2G6M$6*>Mg8^xNQgJQgJbxiž¦±­¶Â¯¸Äš£­‘™£œ¥¯±ºÂºÄ˺Äɯº¶£¯£juf;C6DN<OZF2;(!25K#+?# -"  
+ 36FJ-ba@_^>_X;E?'ZS;q~aŒšymy]]iN8A/  
+*2'/ )*!5"61K 2#9'0#%8  %%1 ;?FI&FJ-EF6bc]šœ”¯¸¬Ÿ¨œ¡¸Œ•bXr8'8%;*A!7 '  
+  + 5+MkM•µœ¶×ÇŒ¦¦…š¥j|…q‡Œ¨­‚¡ždwOjaE_QZq[J^KWmXG[ICWBAT@d|bd~]I^@*;!(9TmEk‰U?U/-AE^1QxGDi@Cc?'<#2' 1%$&0'>'A &> $=%=)B$ 1 4G&5 (4 *6 BM-5"+BN3B)6 ,+!+ '1 #- ",
+#!$¡¸ÉžµÅŸ¶Ç¥¼Í¦¾Ï¡¸É¡¸É¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¥¼Í¦¾Ï¨ÀѨÀѬÇÍ£¾ÄŸºÀ¥ÀŨÄÉ¥ÀÅ£¾Ä¨ÄɬÇͪÅ˦ÂÇ¥ÀŬÇͯËÑ¡¼Â¨­FccB^^?WX0DEt’”…¦¨ŸÄÅ¡¼Âœ¶¼ª¾Å¬ÀǦºÂ¬¼Å¯ÀÉ¥±¼‘œ¦]q{—££¾ËªÅÓ¥ÀÍ¥ÀͨÄѦÂÏ¡¼É¨ÄѬÇÕªÅÓ¥ÀÍ¥ÀͬÇÕµÑ߬ÄÓªÂÑ­ÅÕµÍݳËÛªÂÑ¥¼Ë¥¼ËªÂѱÉÙ¨ÀϱÉÙ¯Ç׬ÄÓžµÄdw‚mŠ‡j‡„d„]{xZ|tFfX$>* *3 $   +.0"* ";+Rq_¥—œ¾º³ÏÕ¬¾Ï£³ÄºËݨ¼Ç¯ÄϯÄÏ­ÂÍ­ÂͳÇÓ³ÇÓ­ÂͯÄϯÄÏ­ÂͬÀˬÀ˯ÄϳÇÓ¶Ë×µÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѳÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀ϶ÄÓµÂѵÂѳÀϳÀϵÂѵÂѶÄÓ±¾Í±¾Í³ÀϵÂѵÂѶÄÓ¸ÅÕ¸ÅÕ¶ÄÓ¶ÄÓµÂѵÂѵÂѵÂѶÄÓ¶ÄÓµÂѵÂѳÀϱ¾Í¯¼Ë¯¼Ë±¾Í±¾Í³Àϱ¾Í¯¼Ë¯¼Ë¯¼Ë±¾ÍµÂѶÄÓ³Àϱ¾Í­ºÉ¬¸Ç³ÀϼÉÙ¼ÉÙµÂѶËÏŸ³¶q‚‚aqqœ±­Œ¡•o‚uq…rXjTNaGJ[AWkJ[qLg~WiS@S04C/L^E&3[qOUjFBT5Ma?3C(GZ<=M5/=+BRA_qdo{Q_]@LNbxxuœ¸¶y’‘CURUkaDWJZq[uŒmTiI&4+&#2$*=7N-@7L<RE]"i?g>‚™QJZ'GY (6 .+)9 %&6 +< 0E-B *> -A+?&89Q"Uq?DZ76I1TkM‡¡¸ÂͼÅѸÂͬµÀŸ¨³¡ªµ±ºÂÂËÓÂËѳ¾ºÂÏ¡¯œkwd{‰oq~f.6$6L#+>+?.-(%-NW3koI_cABA'54d]?c[>ogLy‡iu‚d.6$ 
+=ABryq]dS3<$09+3CT,1?%&;!51'%&=)"4!-!*<3B>BCE#:=#23&JKEŒ…¾ÇºÅχœt^qEE]*'8#9#8/J'?.  !2
++!1 
+,= 8E'2 !+
+1='2 '!+ ¦¸Ë¡³Å£µÇª¼Ï¬¾Ñ¥¶É¥¶Éª¼Ïª¼Ï¨ºÍ¨ºÍ¨ºÍ¨ºÍª¼Ï¬¾Ñ­ÀÓ­ÉÏ¥ÀÅ¡¼Â¨ÄɪÅ˦ÂǦÂǪÅË¥ÀŪÅ˪Å˪Å˯ËѵÑׯËÑ¥ÀÅd‡‡7QQ+?@(;<mŠŒ[wx~žŸ­ÉÏž¸¾¯Ä˳Çϱ¾ÉµÂͼÉÕ­ºÅ•¡¬au‚š¦¥ÀͪÅÓ¦ÂϬÇÕ¬ÇÕ¦ÂϨÄѨÄѦÂϦÂÏ¥ÀÍ¥ÀͨÄѬÇÕ³ËÛ¬ÄÓ­ÅÕµÍݳËÛªÂѦ¾Í¬ÄÓ£ºÉ¶ÏߨÀϯÇתÂѬÄÓ¶Ïß”¡a~tE^ULiaId]^…t4RA"<'%"
+)    2R-<]::  !%A1Z„u…¯¨¨ÏÕ¨Ç×¥¾Ó¬¼Ý¯¸ß¨±×µÉÕ­ÂÍ­ÂͱÅѯÄϬÀˬÀ˱ÅѯÄϱÅѱÅѪ¾É£¶Â£¶Â­ÂͶË×µÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѳÀϳÀϳÀϳÀϳÀϳÀϳÀϳÀϵÂѳÀϳÀϱ¾Í±¾Í³ÀϳÀϵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѶÄÓ¶ÄÓ¶ÄÓ¸ÅÕ¸ÅÕ¶ÄÓµÂѵÂѶÄÓ¶ÄÓµÂѳÀϳÀϳÀϳÀϳÀϵÂѳÀϯ¼Ë¯¼Ë¯¼Ë³À϶ÄÓ¸ÅÕ±¾Í³Àϱ¾Í­ºÉ±¾ÍµÂѨµÄ—£±ŠœŸ~’~‘‘w‰‰¥º³‘¦—q„uJZIdy_SfJUjJYnJf~Sk„XRg=EY2BRCM^N1?/ZmWbwZCT=M_D2A+BS:<L81?1JYMGWNr„Zik=IKFYYtŒŒ‚œš{”’XnfNcW8I=I]JK]DZoN7G+7I(DW.) !  ,/@+
+2EJ^(Xm6Xk9K]2nM9E#1>' !, &+<+!1,>0EAZ2I,@3J%7';1E6K)QgGy•t‡£…¼Ë³µÂ³¶Å±ºÇº­º­—¡ž•Ÿœ¡ª¯œ¥ªž¦¬³¼Â¸ÂÇ­¸µ­¸µ—”U]Z_yOJa<7K+*3B'Q]>CN4…k_cJrqWqmWME52+!_QCQC7E9.>I1O[@'#* 
+ /25…ŠŸ¨¡{„r2:% /;&1 @Q(0>#!4'# &)$ 4D!5E$+90F +<RUFG 01#'"'1'"2+ &!8T&iN/G( ''< ,B#6!2  # 10&>#7 # !)>]:AZBZudtŠ…r‡Œn‚‡w’|”™j…‚dwnr’„o‡xd{mn…uSgYRfUNbRZq[AT?I^D<O4. $5AX2Jc7D]24T//L-IiGB]?:S5.%3 0 +? .+,+5 !9*
+Bb+AZ(%:#3 "1 Qc!5A3;,3 5=5>-5#-@N.?
+(8@L&/ )=J;G"+&2 ,: ¦¸Ë¡³Å£µÇ¬¾Ñ¬¾Ñ¥¶É£µÇ¬¾Ñª¼Ï¨ºÍ¨ºÍ¨ºÍ¨ºÍª¼Ï¬¾Ñ­ÀÓ±ÍÓ¨ÄÉ¥ÀŪÅË­ÉϪÅ˨ÄɬÇÍ¥ÀÅ­ÉϯËѨÄÉ¡¼Â¡¼ÂŸºÀšµºyŸŸa‚‚Sno0DEb~Wqr{šœ”­³šµº­ÂɳÇϯ¼ÇµÂͼÉÕ­ºÅ”ŸªkŒŠ£¯¦ÂϪÅÓªÅÓ³ÏݱÍÛ¥ÀͱÍÛ¨ÄÑ¡¼É¡¼É¦ÂϨÄѦÂÏ¡¼É¨ÀÏŸ¶ÅŸ¶Å¦¾Í¨ÀÏ£ºÉ¦¾Í¯ÇמµÄºÓãªÂѬÄÓŸ¶Å£ºÉÂÛ앬ºYuk0D==WOB]Uf|+E6$?)3:1# " ++5
+Di>3R1: 11 *G7c|¥ž¦ÍÓ³Ó㚳Ǘ¦Åª³Ù±ºá¾Ó߯ÄϬÀ˳ÇÓ±ÅÑ¥¸Ä¦ºÅ³ÇÓ­ÂͱÅѯÄÏ£¶Â—ªµ—ªµ£¶Â±ÅѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѵÂѶÄÓµÂѵÂѳÀϳÀϵÂѵÂѶÄÓ¸ÅÕ¸ÅÕ¶ÄÓµÂѵÂѳÀϱ¾Í±¾Í¼ÉÙ¼ÉÙ¼ÉÙ¼ÉÙ¸ÅÕ³Àϯ¼Ë¬¸ÇºÇ׸ÅÕ¶ÄÓµÂѵÂѵÂѶÄÓ¶ÄÓµÂѳÀϯ¼Ë­ºÉ¯¼Ë³À϶ÄÓ¸ÅÕ¦³Â±¾Í¸ÅÕ¸ÅÕµÂѨµÄ‰”¡nx„Œž¡|‘•ªªxŠŠu‡wŠ|•…GXF^rYM_D]rQ]rMn‡Zo‰[G[4Od;N_OCSD?N<OaLo…gL^EQcG9I17F0:J68F7UfY8E>k|yYgj7BD<MM~——k‚š™o‰K_S;L@ATB+8&RfF.=##11@  
+ '7''74E>O#DU*8G#_oA0;-9%19I.<!/ %4 ,>+= +/D(< +?#6 "0 9O&8M+?S7m‡gž¼œ¶Å­¨µ¦ª¸¥µÂµŸ¬Ÿt|yaifdko±ºÀÀÉ϶Àŵ¾ÄÂÍɯº¶š¥¡¨³¯ra¯{I_;'n„[”¥y,5!FL4NR;=<*>;+2, 9.$4*!7,#8B+%#:B5150"!8<?kquINJ9?3 '2#/2!6 ') 
+.GA_-(?#9&;+"5 /';
+#6  1
+,   .'&  + 'A5R12I3AXJo…’ª¯x’k…g|^xu^xoTocBZO_ugNbUawgXm^TiX@RC6G7%"$3,>%-?#4I'8M+7M';R+-K(%?#(@'';$/-,<4I(< 01/%'( 3%8+ %1 '1 KT"(5=8A19&.: +; LbGT/9 "+5A:F1= :J6EŸµÓœ±Ïœ±Ë¡¶Ñ£¸Ó¡¶Ñž¶Ëž¶ËªÄÕ¨ÂÓ£¾Ë¡¼Éœ¼ÄŸÀÇ¡ÂÉ¥ÅͱÍתÅϦ¾É¦¾É¯Ä˱ÅÍ­ÀĨº¾±ÄǪ¼À­ÂŸÍѳÏÕ£¾Ä’±µ­±IgO7R=6T<0L5KoSU|c‡¶¡ŸÏÉ’¼Ä­Ï㒱ǦÀÙÂß꨼Àš­Ÿž±£{žwŠ™œ³Â¼Õ奼ǞµÀ±ÅͬÀDZÂ˳ÄͳÄ͵Å϶ÄϵÂ͵ÂѳÀÏ¥ÅɦÇ˪Å˯ÄË­Âɯ¼Ç­ºÅ­ºÅ¶¾Ï¶¾Ï£¯¾¸ÄÛ™ª¼ºËꥵёŸºiŒŒ'>5#BcE0L'+G1%@(B(A-*!  '
+!81B_=/G+'=#/&9'8N<¬š—µª¯É˵ÍÙŸ±Ç™¨Ç¦µÝ­¼åµÇÙ¨ºË¦ºÅ³ÇÓ¼ÏÓºÄ˳¼Â³¼Â­¼Àª¸¼¦¶À¨¸É¦¾ÏªÀÛ¥ÂߥÂßµÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɺÉϸÇ͵ÄɱÀűÀųÂǵÄɶÅ˨¶¼¶Å˾ÍÓ¶ÅË­¼Â¯¾Ä³ÂǵÄɬºÀ­¼Â±ÀųÂǵÄɳÂDZÀűÀŸÂɸÂɸÂɸÂɸÂɸÂɸÂɸÂɺÄ˺Ä˺Ä˸ÂɸÂɶÀǶÀǶÀǬ¸Ç¬¸Ç¯¼Ë±¾Í³ÀϵÂѵÂ͵ÂÍ­ºÅ±¾ÉµÄɸÇͶÅɱÀĬº¾¨¶º­¸µŒŒ{gr^n|[drOiwJ?K%N],CQ$OZ+q~D{‰Ncn?U^1Zb9If>?Y92K+QgGbxU;G34@-O]J7B21:0SbSFTFUm]ZrbOiYTn^7EIatxYkkx‘uwJ_COgA>U+5L!(=%:!&< &< %
+2A&5 #1 )(;N 5E"3B&j_‘¨£—•ª¦­ÄÀ£¸µµËÇ’¦£GUJLZJUgIi|Z”o”¨ª¾¡¶Éº¯¾Â¡¨­¦¯¼Å¡gob?CB’—£58?)+18;BIOM3;108'
+ $ # #)<C'*.,1'GMIiqn9?=qytcg^15)""./#LG< ); +>
+.0D +( '   !9M?Z1J I]8J%32C*9
+/? +; <N#1!.#
+    * %"+B'10"6":R;SnXk„u^umo„…š±¼ž¯Å{‰¥„‘µºÉôµÇÙª¼Í¨¼Ç³ÇÓºÍѺÄ˵¾Ä¶ÀųÂů¾Â¬¼Å­¾Ï¬ÄÕ¯ÅáªÇå¨ÅãµÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɸÇͶÅ˵ÄɳÂdzÂdzÂdzÂǵÄɯ¾ÄºÉϾÍÓ¸ÇͳÂǵÄɸÇͶÅ˯¾Ä±ÀųÂǵÄɶÅ˶Å˵ÄɳÂǸÂɸÂɸÂɸÂɸÂɸÂɸÂɸÂɺÄ˺Ä˺Ä˸ÂɸÂɸÂɶÀǶÀÇ­ºÉ¯¼Ë±¾ÍµÂѶÄÓ¶ÄÓ¶Ä϶Äϯ¼Ç±¾É³ÂǵÄɵÄdzÂů¾Â­¼À’œ™Œ—Œ—¥’r~iguUO[=S_8>J$ES&GU'Xc1iu>^j8EN(BJ#OW11J)+@&-D'G]?]rQAN9+6%=I88C3;E:[k[SbS_xgi‚qk‰wXrbM^bZmq<KKOcW[r]CX=Md?AY.,A, + !5 +   
+
+4A#/ ( GY!BT*8 %3 +: 7I8J2C<NSi!?S/@ .> 1@0>+8,=,=7J4F!1 * &(DU<r‡qi{qdurŠžšž³¯Ÿµ±œ±­fwi7C5)5!*6!5A+LZ?aoZruœŸ¶¾ÄËÕ¯ºÄŸ—‡jon„>AIGKSot~QXUcn_FQ< "(3 )/#)5<!QW>qyiy{cki6<:<B>>A:(+!'' 1.%"1
+"2#5!2(;+!1!-'$ '0B2K EbCW7I6G9K6G#1&"+'! 
+*'"-%; **'!1 )#%+;##1 + #0 #0 #1 =NBT&+ +18?=E4:28 7> 5< ™­Çœ±ËŸµÏ¡¶Ñ¥ºÑ¥ºÑ£¼Í¡ºË£¼Í¡ºËŸºÇ¡¼É£¾Ç¦Â˦ÇϪËÓ¡¼Å¦ÂˬÇѯÄϬ¼ÅªºÄ±ÄǺÍÑ¥¶º±ÄdzÇ˨¼À”¯¯„žžmŠ‰_{yo—q#:$##31O8bŠug‡yŸ¦¡ÂÕ”³É£¼ÕµÑÛœ¯³m|t>JCKZdWgrgy‚‡œ¦¨À˪ÂÍ£¶¾ª¾Å±Â˳ÄͳÄ͵Å϶ÄϵÂ͵ÂѳÀϬÇͬÇÍ­ÉϳÇϳÇϵÂͳÀ˱¾É¶ÄÓµÂѳÀÏÄÑ᪼ͺÍߨÀÑ•¬¼Ig_^„nCdI&@$ * 'B( /    %   /'=#.D++@,<O@o‰yŒ¥œ^qqWii’ª¯¯ÇÙ¨ÀѦ¾É³ÄѸÇͶÅ˵ÄǶÅɶÅɳÂůÂűÂϯÇÓ³ËݱËá±ËáµÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɶÅ˶Å˶Å˶Å˵ÄɳÂDZÀųÂǸÇͺÉ϶Å˵ÄɺÉϸÇͳÂdzÂǵÄɶÅ˶Å˸ÇͶÅ˶Å˶Å˸ÂɸÂɸÂɸÂɸÂɸÂɸÂɸÂɺÄ˺Ä˺Ä˺Ä˸ÂɸÂɸÂɶÀDZ¾Í³ÀϵÂѶÄÓ¸ÅѸÅѸÅѸÅѱÀűÀųÂdzÂdzÂųÂųÂųÂÅž¬¯£±µ‘¡”^k]TcKES9MZ7N]5GT*IU+R_1Yg6R[0?G";CAJ'.E&'<#AX9UjIiZ]mQ2>*=I76A14?1KYKYiY^tbTiXoxXrcQbbBRR!,(3C9RgQLbGYrLQj@1F!,, + %9' "
+5F'5 &42C1A #1%3 6GAU9L:O7K;N1B3G3G+8M&8+ '6,<!AU9c{bbtjWfc|ªÀÀš¯¬¯ÅªÀ­DS?7D+'1&17E%?J/3='4<.DM=WbKR]F|‰x¥¯¬¸ÀѶ¾Ï­µÅ±¸É~„‚™£’‡’woyaYcJKT=#* 4:BI(BG1AE65:3=B>RWU{numMTI,0#/0! '&%#7M%7 '9 );!/ #+ #0 #1
+L_9KOd@Y.C .C !2)=&#
+$: &,
+*AOq9m’Z‚¨yf‡bEbCEbCB_=,D("?'BgQLo_Tqnw•——±¶|•„m]9L 0C': 1E/C2DQgJZrSLfASoCC]28L!&7+;#2 -' 1"4&9 (? 3
+#'* ##+ , )
+* . %&* . ,=+8 #$'-
+-2 4:7=.3
+’¦Àš¯É¡¶Ñ¡¶Ñ£¸Ï¦¼Ó¥¾Ï¡ºË£¼Í£¼Í¡¼É¡¼É£¾Ç¦ÂË¥ÅͦÇÏ¥ÀɨÄͪÅÏ­Âͬ¼Å¬¼Å±ÄǶÉͱÄDZÄǯÄÇ£¶º|••[qqKcbLdcGgI,  
+ 5T<dxEf_Gdj‡¥¶ŸÀ×­Çá±ÍׯÄÇŸ³¨n~uKZd”¡žµÀ£ºÅºÓ߸ÑݬÀDZÅͱÂ˳ÄͳÄ͵Å϶ÄϵÂ͵ÂѳÀϬÇÍ­ÉÏ­ÉϵÉѵÉѶÄϵÂ͵ÂͳÀÏ­ºÉ³ÀϼÉÙª¼Í³ÅׯÇÙ¡¸ÉA^W1M=7U<'B&*( + #+  
+ 1-  #   !.*?'2I38K<Tj]{’Šcww]oo”¬±¨ÀѨÀѪÂͱÂϵÄɵÄɶÅɺÉ͵ÄDZÀÄ­ÀįÀͯÇÓ±ÉÛ±Ëá¯É߶Å˶Å˶Å˶Å˶Å˶Å˶Å˶Å˳ÂǵÄɶÅ˸Ç͸Ç͵ÄɱÀů¾Ä±ÀŵÄɳÂǯ¾Ä³ÂǸÇ͵ÄɬºÀµÄɵÄɵÄɶÅ˶Å˶Å˶Å˵ÄɺÄ˺Ä˺Ä˺Ä˺Ä˺Ä˺Ä˺Ä˼ÅͼÅͺÄ˺Ä˺Ä˸ÂɸÂɸÂɱ¾Í³ÀϵÂѶÄÓ¸ÅѸÅѶÄ϶ÄϳÂdzÂDZÀűÀųÂŵÄǸÇ˺É͸Ç˶ÅÉ‚’…TaS[kR[kMWd?Wf<R_1ER(BN%N[.]g8U_2EN';C",C$';"OiFUjI[qNaqT3?+>J8DQ>7B4CQCbrb[q_>OAnwk‰xmN__'3/6F<QfOAU=8L.,?!(% "& -:Na'7F7G!8J6G;MFZI]=O0@*9 5G Nd=S:N)9=Q,?'90CCZ,@!1(81B%I^@ZqYo‚xq‚‡šš¶ÍÍž³¯¥º¶ÍåÑ|‘uYjJ9F*+86D$>I..7#!'$.6&$+%+##'&+.6qw„…”œ£³¨¯­Š”„jt[žªŒ”¡S]D 9?!U]79>)48+=B;fmginm‰X^W+1(   #4 $6
+#4
+,
+ 
+': !213 .#  !!!#3)9& & %!''!! &#!&<BOW‰Ÿ³—¯ÄŸ¸Íž¶ËŸ¸É¥¾Ï¦ÀÑ£¼Í¦ÂÏ¥ÀÍ¥ÀÍ¥ÀÍ£¾Ç¥ÀÉ¥ÀÉ¥ÀɱËѬÅ˪¾Åª¾Å¯ÀɱÂ˱¾É­ºÅ¸ËϬ¾ÂªÄĨÂÂt‘<QN)<7/C>(A% &A+EiR.I?<WW{—¨¡ÂÙ¯ÉãªÅÓ¯ÄË¥¸±ixrfy~¡ºÀªÄɦ¬¡ºÀ¼×ݺÏÛµÉÕ±ÂϳÄѳÄ͵Å϶ÄϵÂ͵ÂͳÀˬÇÍ­ÉϱËѶÇѶÇѶÇѶÄ϶ÄϳÀ˨µÀ±Â˳Äͪ¾Åª¾ÅµÏÕ¨ÉÍ~¥Š$;%$<!56#=#) 
+ 
+
+ 2,  +' "
+55S+:Y/5R.*B#5O1NnJC_CNjM•º™š¸Ç¦¾Ï­ÅÕ±ÂÓ¯ÀɱÂ˸ÇͼËѱÀÄ­¼Àª¼À¬¾Â­ÂɱÅͬÇѬÇѶÅ˶Å˶Å˶Å˶Å˶Å˶Å˶Å˳ÂǵÄɶÅ˸Ç͸Ç͵ÄɱÀů¾Ä±ÀŵÄɳÂǯ¾Ä³ÂǸÇ͵ÄɬºÀµÄɵÄɵÄɳÂdzÂdzÂdzÂǵÄɺÄ˺Ä˺Ä˺Ä˺Ä˺Ä˺Ä˺Ä˼ÅͼÅͼÅͺÄ˺Ä˺Ä˸ÂɸÂɵ¼Í¶¾Ï¶À˸Â͸Â͸Â͸ÂɶÀǺÄ˸ÂɶÀŵ¾Ä¶ÀŸÂǾÇÍÀÉϪ¾Å¶ËÓŒœšm|tt…qu‰nXiIKZ9N_7<K(8D"IW/]m?Yi<JU/>I&8M+3F*_yRXkGOaB^kLAL2S^E^jO[gR[jTcr_ZmYEUDœ‚…ŸuŒZnd:K@CUFTjU?R=+;& /   
+   + (5 :K:K?Q*8 :L7IBU?REYSi!Tj#@S)7 ($8;T3I4J4GI_&<S@X!Fc%;U1J5L,B1F%JbABXAfxn‰œ™¡ž­ÄÀŸ³¬x‰‚”¨‘š³Œ„šif{FGW(8E7D:G!9F 4?!(5+7#! '.-$++cijIODZ]MSWAuy_nrYFJ6
+*+]^ISUEMOCNRJfid]c^…‡ILD)+##&
++@-  
+
+'; )=
+#6+-+$9!64%
+1  (,+% 2 #; .K-Ja4g‡9;T6O2!82M-E1J'< 1$7-D#1J'4N':U,CdFTwdj‘‚=TLQkb7IBF]CJ^80A$5 (/0 %6=Q+>R+Ni74K !1%+'7 >QNd4F +!),$   ) !2"  
+"''0 ! %*1 28,1 —ª”¬ÀŸ¸ÍœµÉœµÅ¥¾Ï¨ÂÓ¡ºË¦ÂϦÂϦÂÏ¥ÀÍ¥ÀÉ£¾Ç£¾Ç£¾ÇµÏÕ¬Å˨¼Äª¾Å±Â˳Äͯ¼Çª¶Â±ÄǦ¸¼ªÄijÍÍžš=RO.*($*)#-3$/'DaaqŒœ¬Â£¼ÕŸºÇ¡µ¼‚”9D@n‚‡x’dx|Wimt‰¥¾ÄµÉÕ¦ºÅ±ÂϳÄѳÄ͵Å϶ÄϵÂ͵ÂͳÀ˪ÅˬÇͯÉ϶ÇѶÇѶÇѶÄ϶ÄϺÇÓª¶ÂºËÕ±Â˪¾Åš­µªÄÉŸÀÄŠ³—6R70K,#;+ 7!+  
+ (0 !
+ 
+&B!;-6+F"-I#1,1J,=Y9#8#+?*i‡k‘­¼¥¼Í¯Ç×±ÂÓ¬¼Å¯ÀɶÅ˸Çͯ¾Â¬º¾¨º¾ª¼À­ÂɯÄˬÇѪÅϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͵ÄɶÅ˶Å˶Å˶Å˵ÄɳÂDZÀųÂǸÇͺÉ϶Å˵ÄɺÉϸÇͳÂǶÅ˵ÄɳÂdzÂDZÀųÂdzÂdzÂǼÅͼÅͼÅͼÅͼÅͼÅͼÅͼÅ;ÇϼÅͼÅͼÅͺÄ˺Ä˺Ä˺Ä˵¼Í¶¾Ï¸Â͸Â͸Â͸ÂͶÀǶÀǼÅͺÄ˸ÂǶÀŸÂǺÄɼÅ˾ÇͬÀÇÄÙᡳ±’‰iyfr…karQZkFFW18F%9E#IW/M[2BO*BM)MY1Jb:CY8fX[oKFW:R^AQ]@dqUYdKn{cfu^DQAGXFJZIn‡om„tf{q[ofL_SMaQZq[OdM<O67K/%5&6." 
+2AK^!>O:K3CJ^j‚/Si >Q=OLaDX(7
+'+5M-C 6L1EZt25I>USn.@[!0G4MMi1>X+;S.QjG>S=QaX…™•‘¥¡¥º¶¥¸±bqkQ_Nxk•­x™³q•TRb0=K!AO&FU*BN,AR1<K3%$")(SXYJQEQSDAD19<+*,!./!=>-46*EG<kofwyu^d_t{unri:=2%('',* /E$
+
+
+
+  $
+ $#,
+ '- 19-2  x’žª¶š¸Å•³À™³À£¾Ë¦ÂÏŸºÇ£¾Ë£¾Ë¦¾Í¦¾Í¨À˨À˦¾É¦¾É±ÅͯÄË­¾Ç­¾Ç±¾Í±¾Í±¾É±¾É¬¾Â¨º¾¨¾¾¨ÅÄ‘µ¨a~t0F<*"! 1((#,!+C@g‚¥ÅÙ³Íã‚š¦yŠ‘„•Ygb]qmJ[XL^Zi|~Œ£¥¬ÄÏÀÕá¶Ë×±ÂϳÄѳÄѵÅÓ¶ÄϵÂ͵ÄɳÂǪÄɬÅË­Ç͵ÅϵÅÓºÂÓºÂÓºÂÓÀÍÙ¬¸ÄÄ×Ù¯ÂÄ¡¼¶—’‡¦œŸršqRuI/K$-J !&%"  #$6%8
+  # *=b43T(%A6,4$ -1O*2R+5$? KoI…¥¯ŸºÇ¯ËÙ±ÄÕª¾É¯¼ËµÄɵÄɶÀǵ¾Å­¼À¯¾Â±ÇǵË˱Ë˯ÉɸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸ÇͶÅ˵ÄɳÂdzÂdzÂdzÂǵÄɯ¾ÄºÉϾÍÓ¸ÇͳÂǵÄɸÇͶÅ˺ÉϸÇͶÅ˵ÄɳÂdzÂǵÄɶÅ˼ÅͼÅͼÅͼÅͼÅͼÅͼÅͼÅ;ÇϾÇϼÅͼÅͼÅͺÄ˺Ä˺Ä˸Â͸ÂͺÄϺÄϺÄ˺Ä˸ÂɸÂɾÇ;ÇͼÅ˺ÄɺÅźÅźÅżÇǸÍÙÇÝꦺ¾‰œ™]kaw‰wxŒqo„cJY<8E)6D$CS/AM+2= >J)_nDWjBL^9XjBRc=7E'3A#CO/LX:[iGanOYiM8C2R_KMZJKYK_o_^tbbxfZq[MbNQfONcM=O;:L8McIF[B1B+"1!#   &9K?R:LATQfLbf*BW;N<NAT7I+: 2BI[Kf3J1F'8 Jc'*
+, 0CKg+D_&4N7Q!1G .C#C[9F]CQ^Tx‰‚—¨¦£µ³¯Ä¼w‡>I=IW<Yg?q„GwDbw1Ug'Wi'Oa#@N]x<i‚M;L)IZ8t‰g_kQ09$38%4=#*.9?!JK+;;#  983qrg‰Š~ž£”~‚unrix|r/1*! KJ!FG##(+     &-(2 ES4@ Xc#nx:YY:''+ !1 BY$6L#5 !2
+#7
+0!6+D+D+G+4  ,# (!.2  Io /C-A3JQnNmDa,"2 + .=U']~A>Y(!5$91K-.#5%7M9"1"")!19N!,?&8,@+ # J]?ªd„F4L0F:N?U*!-1ABU,'(8#4 #  !     #1 #+3 *2 "",29@t™Œ¨µš¸Å”±¾—±¾£¾Ë¦ÂÏŸºÇž¸ÅŸºÇ¥¼Ë¦¾Í¨À˪ÂͪÂͪÂͦºÂ¬ÀdzÄͱÂË­ºÉ­ºÉ³À˺ÇÓ­ÀÄ­ÀÄ¡¶¶•±¯šÀ³‘µ¨Utf'<2&  &-'@2a„Šª¶¨ÉÝ­ÇÝ„œ¨{Œ’{Œ…GTO9IE+85Na]Ÿ¸º¸ÓÕ¬ÄϵÉÕ¸ÍÙ±ÂϳÄѳÄѵÅÓ¶ÄϵÂ͵ÄɳÂǪÄɪÄɬÅ˳Ä͵ÅÓºÂÓºÂÓºÂÓ¾Ë׬¸ÄÅÙÛ­Àšµ¯k|nŠcoŠ¶‰a‡W# %?#' 3 
+   ! #   
+,L%(E)F#?) '  ' /+/,J'CfAž¨œ¶Ä¯ËÙ±ÄÕ¨¼Ç­ºÉ³ÂdzÂǼÅ͸ÂɳÂŵÄǵË˸ÏϵÏϵÏϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸ÇͺÉϸÇ͵ÄɱÀűÀųÂǵÄɶÅ˨¶¼¶Å˾ÍÓ¶ÅË­¼Â¯¾Ä³ÂǵÄɾÍÓ¼ËѸÇͶÅ˵ÄɶÅ˸Ç͸ÇͼÅͼÅͼÅͼÅͼÅͼÅͼÅͼÅ;ÇϾÇϾÇϼÅͼÅͺÄ˺Ä˺Ä˼ÅѼÅѾÇÓ¾ÇÓ¾ÇϼÅͺÄ˺ÄËÀÉϾÇ;Ç;ÇͼÇǺÅźÅŸÄıÅѶËצº¾Ÿµ±ot”¨”ŠŸ‚j~^XiI9F*1> @O,AM+4?!CO-m|Or‰ZauK]oF]oF;J*.;BN.@K0‘i]jLWfKO]I‚”yZiW<I<t…t2B5?QBEYF=O>FZEQfODXBCWA^wYNdJ4F/,='+-   5FUk#BU3D5FNc<OSj1C CXDX+; '+/><M*+#)<#4. 4I,
+8Q1K4M?Y+2I'2G*;O8]kajyt—¨¦ž¯­±Å¾—ª£BMA/:%<G'DS&IZ#L^#Wi'Zm*DT-9f‚C|™^4D#%)5"DN8ZgJMS;6?%#+056;;#&&)'ED?wun¡£•…‡{¦¬œ…Š|KNF
+ 88#=?dc2KL,-
++?"6C06@??EE7>6'+2;3?SbO^DNLT#99!!!! %%' '8Tn1Wr1*=*!4 #7,D
+)A.''A(
+ '
+,D('BZDC[E2E2-?&0C"&7*<':+?&61B!d{X™q?X(+A'<,
+);$1
+4D:K@S!.(#1 - ) (
+!"  
+   )
+#$#$!' %q”Œ¬³•¶¾…¥¬Œª±¨ÉѳÏÙž¸Â¬ÄϦ¾É£ºÉ¥¼Ë­ÀÑ­ÀѨºË¡³Ä³ÅɱÄDZ¾É±¾É³ÀϳÀϯ¼Ë¬¸Ç±ÅÍ­ÂÉ­ÇÇXqiC^RyŸ‰¬ßÂW{a)D) 
+! 6!*E3DbZ¡ÄË­¸Çåôœ¶¼YiiyŠ~GTKDWKGZNGYQ™”œµµ¼×ݨ¼ÄºÍ߶ÇÙµÅ×±ÂϯÀͱ¾É³À˶Å˸ÇͳÅɳÅɳÄ͵Å϶ÄÓ¸ÅÕ¼ÄÕ¼ÄÕÄÑݬº¾¾ÕÑ¥¼¯Œ¨—~š„NkWJfMb‡WOr>#;&?2 2 #
+  
+ 
+ 
+ 1O+&%4' " 05'E"2S0w™”‚Ÿ£¾áå¨ÂÇš³¸¼Í׶ÇÑÅÏÛºÄ˺Ä˵ÄɵÄɳÅǵÇɶÉ˶É˸Ç͸Ç͵ÄɳÂdzÂǵÄɸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͵ÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɸÇ͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄÉÄÍÕ¾ÇϺÄ˸ÂɺÄ˺Ä˶Àǵ¾Åµ¾ÅºÄ˸Âɵ¾Å¸ÂɾÇϼÅͳ¼Ä¸¾ËºÀͼÂ˾Ä;Ä;ÄͼÄɼÄÉÄËÑÀÇͶ¾À±¸º¸ÀÂÅÍÏÅÍ˺ÂÀ­ÀĵÇ˼ÏÑ¡š|„¡‘‰š„Ÿ„m~b=J1XdD]jIDQ19D(6?%Q[;^jDUa=R_9O]7?L)/:0;=J'5@"N[:kyUq^LWAx„n~‡uRYK0@._w]XnWRgQFZEd|c^u]9K8ZqX3D1:M61B-#1!0   !/FZ_w'G[G]J_5G 7J+< =O/? ,*/>$1
+)=
+$7 1#3 '6(8#3.0C+=Li-6M /C'9Q,F^?EUBjxmŒš’¯À¾¸ÉǯÀ¾š¦™]iNBN.wŠN3@.;GYBS.< =M3I:Q=S*;1@DR#fy=9B(1 ?F3::<=>== miCŒ„i¥žœ¨¡Ÿwwk^^O;>.*,@D5AD9 WT=aa8{x=Z[;< "/ #AEI48; /54>IS19 <A,.%#97+/=((+8$%/>';L/TjA@T+?T');)
++?0K'0& .AX0C !1'!7  
+.? 7J:R1F /EC^Fc1G ;S5J/ !$%. 1J8N'Sm@D[3 08M)+>U-Ga5>U+)< FY9wŒj|y’‰jyq+<) +>'5& $. .:AO2?!$% " !
+"' 
+ !    + '#'$+ "!d…g‚‰nŠ‘{™Ÿ‘¯¶ž¾Å¡¼Åœ¶À¦¾É¦¾É¦¾ÍªÂѱÄÕ±ÄÕ¯ÂÓ­ÀѳÅɱÄDZ¾É±¾É³ÀϳÀϯ¼Ë¬¸Ç¸ÍÕ¨¼Ä³ÍÍg‚y3K@+B4TxcUy_+F,$ "
+ 27X;CfOd‰m‰š¼ÇšµÂ¨ÄÉ™­­^mbFSJUj]Xm_M_W¦¡¼×׬ÅËŠœ£ÏãöµÅ×µÅ×±ÂϱÂϳÀ˳À˶Å˶Å˳ÅɳÅɳÄ͵Å϶ÄÓ¸ÅÕ¼ÄÕ¼ÄÕ¯¼Ç¡¯³¶ÍÉ—­¡k„uYq^1I8%9'1L*:X+!9. +
+!9!8"   
+
+ 
+  
+  )'3039b|w’••µ¸¨ÂÇ£¼Â¾ÏÙ­¾ÇºÄϺÄ˺Ä˶Å˵ÄɵÇɵÇɵÇɶÉ˺ÉϸÇͶÅ˵ÄɵÄɶÅ˸ÇͺÉϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸ÇͶÅ˶Å˶Å˶Å˶Å˶Å˶Å˶Å˸Ç͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄɼÅ͸ÂɶÀǶÀǺÄ˾ÇϼÅͺÄ˸ÂɾÇÏÀÉѸÂɶÀǸÂɶÀǯ¸À³¸ÅµºÇ¶¼Å¸¾ÇºÀɺÀɺÂǺÂǼÄÉÂÉÏÅÍÏÅÍϼÄųº¼¬³±ª±¯µÇ˺ÍÑÄ×Ù”¦Ÿw‡~~‘~y‘£‡SbJBO6ftQ[iG[jEBN0R]<bnJGR1LW5Tb;]kBYi>FT/4@!+58C$MZ9qZkFQ<[fSu~mqyi>Q<I]F<N;XnWQfOOdNCWB7I61B02C1/@+  '#$(7 >Q5FCXLb1C >R/@ 9K)8 #1,< &+*8 >W/D +?' %
+3G=S#+>);7O2I7M$! ,9N2q…mkynOZTx…„¬¼º³ÄºǸ‘Ÿ~Œžm£a*5&(5
+-; '38G+!2 *<,>'5&02@!' *2FNDLLN LM%JJ)okEy_QLKTONRRIXXJNR?koY‚‰r<?411+9:-KI3?? KI=>@A2B)
+ +1%#')
+
+ #GO':DDNEOTZ$?A!SQBtq_]qSGY?DU<TgKi~^* *8"4D)w‘_—¶už[);  )<!8  % #1DAXE]6K;Q9QAZBb+D 7.K <O7J7N 3J )>'<'<1/+%   . Gd&cKWqC?U/&70C"! '+#4"3,TiExkgxdXf^?KD5G! ' !-(
+% $'2+7) +  * 4!6$!#
+"&
+) 1="+"$+ %#jŠ‡UroYtr|œšš¾À—º¼‘¯³š³¸™¯ºœ³¾¥¶Ç¨ºË¬¼Í¬¼Í¯ÀѱÂÓµÄDZÀį¾Ä¯¼Ë¶¾Ï¶¾Ï±¾Ñ­ºÍªºÇ’ª¬¦Ä¾„¦—Wwc'>,$>*!;$!9& & $ +(D*";)+"8ML‘³µYmq‡¡œºÓÅwŠqFUBXnY9J>Uj[£¾±‰¡œ‰Ÿ¡—ªµ‘¡³µÄÙ³Â׳ÄÕ±ÂÓ³À˵Â͵ÄǶÅɳÅɳÅɵÂͶÄϺÂÓ¼ÄÕ¼ÄÕ¼ÄÕµÂͦµ¸ÂÙѣ¯i‡nQmR3N4!7$;1M!)A/ . , !4!   !        
+' ! $ % , 9Lm[i‡|_|ožºµ¥Â¼¼ÑÕ¦¸¼³ºËºÂÓºÂÓºÄϺÄ϶Å˶Å˵Ç˵Ç˺ÉϺÉϸÇ͸Ç͸Ç͸ÇͺÉϺÉϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄɺÄ˸ÂɶÀǸÂɺÄ˼ÅͺÄ˸Âɳ¼Ä¾ÇÏÂËÓºÄ˵¾Å¶ÀǸÂɶÀǸºÄº¼Å¾ÀÉÀÂËÂÄËÂÄËÄÅÍÂÄËÀÂÅÄÅÉÏÓÑÓ×Õ¼À¾Ÿ£¡šžœ¦ª¨—¨š‘¡”¡³£’£”Š—…‡”‚qyfu~jŠ•y„t™¡‚ŠmŒ”rBG1W]BdkNU[8W]9S[6NW2ER*?K%9E!6B:F"AN+dqJ„’jKQ;MRAdgWtwdUkSby_FZDRgOI]FMbK7I5++<'9L3+;$ );=S/CZ2&#%3 I]3D.? -> ':M%42D *9
+%3 G[)'+9 Tj!5F/>,:+:' 1?Sf5F[*J_,;N /@3F% " 4D+aqTn~j>I?_kdªµµ³¾¾ÂÍÅ”¡Œ¨¶žf;G5B8D4@*4 4@#3#2#14E$0 $#,&0 *3 ?KFQNX!KN"FI$_^;gcLic_fa]uwcorUFK0^cCrxY(*<=7cd]ffY|wf‰‰Yuq;DCIG-4 '+(+DF1##IK5mrFFL&@G _i6bjA:>'mqZ~xGR]_kxkxy‰Š£¶¨>K>#1>)%" +- 0+; 4EJ^BT/> />
+@RMdMdF_AY<X;W1A &3+=6K +>.. 15K# $!1
+$5 .B9OCU'9J>R";N 8Q0F%;*@5M"(=$7.=%?O7CO@WcUboa@T*+ ' &1-:/<#- ( ! 
+#
+# " #!+'  
+
+u—”]{x[wu~žœœÀ—º¼Œª­‘¨­•¬¶œ³¾¦¸É¨ºË¨¸É¨¸É­¾Ï³ÄÕµÄDZÀį¾Ä¯¼Ëµ¼Í¶¾Ï±¾Ñ¯¼Ï¾ÏÝ¥¾À•±¬ctXxd:U@)D/- 8#
+! (!:"'3*Zuta|~.<?K^ZO_Wt‡n;I7+'4+bxiŒ¥™_tox³ÇÓ¡³Å³Â׳Â׳ÄÕ³ÄÕµÂ͵Â͵ÄǵÄdzÅɳÅɵÂͶÄϺÂÓ¼ÄÕ¼ÄÕ¼ÄÕª¶Âšž¥º³¥Ä±g…m@YA+C+1 !( - $<( #8 2  %  
+$'  
+ 2661& %8TEUqg>UK•±¬£Àº¼ÑÕª¼ÀºÂÓºÂÓºÂÓ¼ÅѼÅѶÅ˶Å˳ÅɳÅɺÉϺÉϺÉϺÉϺÉϺÉϺÉϺÉϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄÉÂËÓ¾ÇϺÄ˺Ä˺Ä˸Âɳ¼Ä¯¸À¨±¸¶ÀÇÀÉѺÄ˵¾Å¸ÂɾÇÏÂËÓ¸ºÄº¼Å¼¾ÇÀÂËÂÄËÄÅÍÄÅÍÄÅÍÍÏÓÂÄÇÄÇÅÉÍ˳¶µ•™—”—•ª­¬”¥—qtrtx‡yœŠ‘žŒfn[X_N™|™|‡j‘™yŸ¨„RX?krT‘™uX^:agAkuJfoEIU,2=0;9E!@M'9E$R]:fZaI^cQacSY[LNcL]tZDXBSiQSiQc{aQfN2C1RiKRiK3E,*@W1'9*< 
+#1)9 $8K$(85F)8 FZ!-(6 $1
+1B +; ':J#1.< +3B0A8K+;, +!0#1+9"8D/‰š„cqdkxq¡¬¬ªµµºÅ¾‚{JS9=G%,7CR@M7C*4 3?8L4G '6 FZ4B+7 ,7 6B+5 .8 9BFOAD:<JI+UR=d_[_ZWmn[knRMR5bgF‘—t„o|~uxyq~~oº³žËË|C=< 65
++1 :@FK)cfKEE900&UWDTW?MR.3806dn:ckB;?(‘•{‚„|T_k‰—¦¨¸Â•¦¨¯Äµfwf4A0&1#.
+   !':
+OdK_@SBTDW<MGZWoOg=T;R8S-E
+#1**<>T 6L(;'<.C ?W$5 #3 /B,?.A3I0DAS%FY)ay<Ri1%9"5,B+"4#05D.2=0CNB[iZ'6,# !+ 3A)4    ",;):-0 % !) :L9L"1 *.=2B0?(2 .9 !+'!* %- ,3 & gŒ…Z|wYwrjŠ…‰ª¨™¼º”¶¸¦¬ŸºÄ¬À˱ÄÕ±ÄÕ¯ÀÑ­¾ÏµÀ׸ÄÛ¸Âǵ¾Ä±ºÂ±¸Éµ¼Ñ¶¾Ó³ÀÓ±¾Ñ¬¼ÉµÏѸ×Ñq‘‚Uu_4S;)I.10 '9'7SD]yoD]WQda~š‡.;-DT;&1*9+'5*+:1o…Š¡£‚”ž£µÇ³Â׳Â׳ÄÕ³ÄÕµÂ͵ÄǵÅĵÅĵÄǵÂ͸ÂɺÂÓºÂ×¼ÄÙ¼ÄÙ¼ÄÙ¦³¾~Š„™Š¦Ç­wœw6Q22''" !!+
+ !   "   
++ ) #/  "( :!:6 9&!!5#8R@4M<—º¦¦Å¶À×ÓµÇËÄËݺÂ×¼ÄÙ¼ÄÙ¼ÄÙ¼ÄÕºÂÓ³ÀϳÀϺÉϺÉϺÉϺÉϺÉϺÉϺÉϺÉϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͵ÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɸÇ͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄÉÀÉѾÇϺÄ˺Ä˺Ä˶ÀDZºÂ¬µ¼¨±¸¶ÀÇÀÉѺÄ˵¾Å¸ÂɾÇÏÂËÓ¶¸À¸ºÂº¼Ä¼¾Å¾ÀÇÀÂÉÀÂÅÀÂÅ×ÙÝÂÄǾÂÀÅÉǸ¼º™œš‘Œ•™”Ÿ¬‘q{dinZinZ…oŠ‘ykn[_bQfiW‚nUWFrtatu_qr]‚„m¥¦Œ‰‰a{|RqyMjrCIU*/94AN^-ET(=J$MZ5y‚[dkO„…n|k_]Nax^QfN<N:j‚gd|bRgOEZAI^@F]=Nf@9N*+$7   ,:BTYn'0?0@:L##&)<N6G5F#1@ ,!+2? "++3! CL'@K'LX1@N$0<1>,8# #/0= +:G+œ±Œœ„‰”‰¥­³¦¯µÀÇÉ¡ª£bkW;C,'-5>,5(1#%, 2> 4@ '1JWEQ;E+4
+(1 -7
+!*1: DM>E 7<"=@,KI<‰‚u’Œ~_bc>Y_3bi:qxN—œ~Ÿ¡™‚|x—‘Œµ¦£‰db[1][^]]Y,tn@|J‘WrtB^^6_a:56OS6EG1@C1nq^[aN;>3¡¬”y‚tgnŠyŸ¯¼Ï­¾¸¨¼Ÿt‡_GY0%
+   
+)8
++=*; !0 '8 0D%7
+2>1=FZ#Um+)> '; # 6 4 + #48M'5'52B"1 !1  #, '1 %(!,!+&!#",
+    1E>Toin…¥Å¯SdR1>)(.>,:L;1@3(6-Ob^Oabaox™ª¼±ÀÕ³Â׳ÄÕµÅ׶ÄϵÄǵÅijĵÄǵÂ͸ÂɺÂÓºÂ×¼ÄÙ¼ÄÙ¼ÄÙŸ¬¶y…‰fxk”³šŒµŒ@]<4)   "+
+#7'   
+ '+# !(<) 1'+F!:.
+" , "# !4'>YFœÀ¬š¸ªµËǸËÏÄËݺÂ×¼ÄÙ¾ÅÛ¾ÅÛ¼ÄÕºÂÓ³Àϯ¼Ë¸Ç͸ÇͺÉϺÉϺÉϺÉϸÇ͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͸Ç͵ÄɵÄɵÄɵÄɵÄɵÄɵÄɵÄɸÇ͸Ç͸ÇͶÅ˶Å˵ÄɵÄɵÄɸÂɶÀǶÀǺÄ˼ÅͺÄ˵¾Å±ºÂ³¼Ä¾ÇÏÂËÓºÄ˵¾Å¶ÀǸÂɶÀÇÂÄËÂÄËÄÅÍÅÇÏÇÉÑÅÇÏÅÇËÅÇËÕ×ÛÇÉÍÅÉÇÏÓÑÅÉÇ£¦¥…‰„y|xcmX[dQkq]kq]u{f‡qqtaqtaikY•™‚dfTcdSOQ?ŒuwŒu³³„‚WW^8IO*:E4?AO#[m7BQ&>K%IU1iqMW]C‡‰q’|ro_by_ax^I]Fd|bSiQBU@0A,(8"+-?#0C"$ * # 1@BT/>;MRg!=O4E)8 &6GCW)8
+)7 #0 '2)46A1:1:18anAŸ±u‚—X9F=K!AO##/!-CS.>M,DS3u‡gš‚¨µ¨ÄÍÓµ¾Äµ¼¾¸ÂºÂϱitT:B!=F7A8B!' (0 +5+5#+4
+2<)1
+!* (-7
+%/8 >F<CEK-DG2DB6ID;‡t••qbc>Y_3cj;jqIª¯µ¶­¡š•³¬¦‚a[?^X.2kj&‚~F|wFŒU™•]wxESS.;<12‚‡a„‡gx|b„‡rX]K<?4¦±™‡‘cj…GMd|‡—±Â¼ª¾¡dwRBS+%
+=O, 
+    2D :MEZTf@O?JR^AL8C 6A 5A 9E 6G 3D 5I >S,91>
+>RDZ:N 3F.B$5.!.+##(9 5K/CRa/4@,<Nd&:S'; $'@ +E.*'83G'4'4*8<Q1C##!*3 ;F+5 +6 !,$0 + #!"2-'): 4D+9 +:&3 "- !,$.'$/ '<KCS7D(1 #+ )1$
+Mmd;WO.C@5LI]xwŒ­¬•¸º‰¡¦ŸºÄ¥¸Ä¥¶Çª¶É­ºÍ­ºÍ¬¶Í¨³É¸Âǵ¾Ä¯¸À¯¶Ç³ºË¶¾ÕµÀ×µÀ׶ÇÕ—™—µªµŸtš|DiK3W7/&#
+
+$ !  0#Oj^Toc+:2@TBNaJ/=#+*:'8J7qŠrTiZ+83+88Šœ¦Íáö±ÀÙ±ÀÙµÄÙµÅÓ¶Ä϶ÅɳijĸÂǸÂ͸ÂɺÂÓ¼À×¾ÂÙ¼ÄÙ¼ÄÙ—¨¬w…„=K@McOmi=[96+ & !%. -$   #1!/( !&0 !
+%-!)9C3;5<! KT.œditA-45A7C3>*3[k@oT>J+NZ<…”y¦³¥¾ÇÍÄÍÓ¬³¸ºÂÇ£¬Ÿr|f[cBitEnxCoyD?FOX+DK>D+0 -1 6>!''.
+7?4>&. 4=-3.4]cKcf_GJDB>5qmW£¥truDGN#@FIO+„ŠiÇÉÀº¼µ­¯xkoibKXQ.SS84 wi?cW1‚x?|t8dc(GF(* GG&{~_‰‰yŒ‘‡‰ŒT[Y>E>¬À£¸Í¯šŸºmq‡•š¼Ë¯¾Ó™bu:8I-#3!0,
+$>>Z>Z4K 2F "23I0D%'#1%)4;I+8'3$'59OBZQnC^1E 0> ".$1".(+5
+.9 FT@MBN1< 3? ###+(#/ '1 !& Lkc,D>+)#52G_^mŠ‰r‘’k…£¾Ç¥¸Ä£µÅ¬¸Ë³ÀÓ¶Ä×±¼Ó¬¶Í¸Âdz¼Â¯¸À¯¶Ç³ºË¶¾ÕµÀ׶ÂÙbnxQbc‰¥š”º¥|¥…U~]<b@"  
+" "!:%_…o£”-A8(8*AR=0>$# 
+&!>NIwŒŒºÏÛŸ±Ä¯¾×±ÀÙµÄÙ¶ÇÕ¸ÅѶÅɳıÂÀ¸ÂǸÂ͸ÂɺÂÓ¼À×¾ÂÙ¼ÄÙ¼ÄÙÂÕÙœ­¬3@6*:+OmL:X6!:,    6"61&
+! ) $3& '
+&' 
+*--<Lm‚;Sg&Uj']r*FYMb=O+: >Q0@ $2&$$1 '5 #+DOIT&,  /4JS-NX1MW,>F!Tc1AN#R_12=IW1KX5:E'IT7œ‰”‡•šÉÓÙ¾ÅËËÓٺĶµÂ¥ºÅ”ÀϦ³oŒ—ZJR'fo;ck'ai%Ya"Za%cn.,3 8@Xb%DO6@<E % $*xc‘‰Z]Wni]RN<uwNruDDK!4:8>ciLžŸ—¯¨ª£œž~qu—ria:UU]XgZ4YM+|r;_X&RQED !II'twY„„u”•™„…‰LSQ.4.’y¬À£¡¦Â’—±•ž£š¨¶Ë’i|?:K*: /A +="1!&3 ) <N9E >Kct"O^6>
+JQBI.3EL1; "&(#/;J0=
+$0*76F1D,>-?.?#3('7 4G1E9N2:Zd6;I:MOk=['C)&2Q !95O+B2I @W'9++>*!.1A.9 1> .: 7E @O,; 1A 7M<SOm@Z5KCT<L9I*7 '%/%/.9 3?>J'1#-&/DQ:J +#. 09& # # 1Y 'L"= !6QY>Rnc{¨t‰º”­Ñž³É¨ÂĵÇųÇÀ­Âº¯¾Ä³ÂǶɸ³Åµ­À¾¬¼É¥¶Í¡³ÉŸ¶Å¦ÀÅ’¯ž<Q<Da<d‰RLo73Q#!:.  '   6!9X<?_E":'!"!#'?-% 1!(?USn„…¡¯­ÅרÀ˯ÀͳÅɼÅ͸ÂͶ¾Ó¼ÀÝÄÇåÀË˾ÉɼÂÓ¸¼Õ¾çÇÄîÀ¾Ý³³Â±º¯‚•wK_;$8, 1 >$D$. % 4  !    #((!##)+  , $* 2#5"xšy>UB$5+n„|¼×Ù±ÂÏÇÙ篶ǶÀËÄÍÓ¸À¾¾Ç¼Å˺ª¯Ÿ¶ÀÅÂËѼÅ˸ÂǾÉɸÄĶÂÂÉÕÕºÅźÅźÄɺÄɺÄ˺Ä˼ÂϼÂϾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾Å˺ÂǺÂǾÅËÀÇÍÀÇÍÀÇÍÀÇÍÀÇÍÇÉͪ¬¯ÀÇɸÀ­¼À­¼Àž¡¥¶º¨º¾±ÄǵÇɵ¾Ä¸ÄÄÇÉÍÅÇ˼¾Â¸ºÂ¸ºÂº¼Å¾ÀÉÅÄÏÍË×ÕÓãÙ×缶ÄľËÅÂÇÂÀ¼Âºµ¶¯ªš•{tbf]Œ‘…urucwyf~‚gŒ’o…d¸¼’’•q|^knSwy]Z[I‰…oŸœ„toYurWx|UmrIQ[.LW'Rb'Rb'Qc'9IO^*Tb3IQ.ŠdY]DY]I07+YcSdo[T^LJTA-5' $  !*&13A0>CT !, NbNb?QMaCUK^/> #0DW)#$CT'''4 8J'6'51B*
+2C|—Lby87IQf+@S w‘G>Q, :L+:!]qU’¬Œ‰š„rt|„yŸ¥•¶¶¨ËͳÄŬÀĪÂűÍÍɼºÅ‘¦ji|~o_obSqfX„~qii[im^FM>=J5EU:=L2:G32>2?IG’¡­±Ùur”ya‚…fqtW]^IGI641'ID8œ~³œ¼¦’~dx[xdDjY6„oDmZ4OM&IF!wr>63&# +()' 95%#c^=qnNQR>.1%9<5—Œ¼Å¾ª±¶•œ¡”ž—ª¸¡|ŒiO]9BS(+:$5 #4
+--, '@ ObK]2@ ;J ;J1?
+G[Mb<Q+=3F ;O-B 1F 3J #5$ #4+ - # 1 !3 -B0 3$9*A -E '?4O 1D
+!0=Q6I=Q9L1B 3E /@ ,=
++; ;N*;=R>S<Q/F5N%8 !3(+? &7 #3#4-@ &4'#17I<N9K/L 9YA^7R1-.A'3 +6 )0
+$++/
+5926 57 EG13EI!35)N)N2 ,2,=UJ^…i|¬šµÙ£¸Ï¦À¯ÂÀ¬À¸¦º³¦µº¨¶¼­À¯­À¯¯ÂÀ¶ÇÕ¸Ëã¶Éá¯Ç׬Å˨ǵ…¥…Z{Q$:* #;$?$?1" -8   !8#'#,G1FgO!7' "9(,( 4#6OARkitŠ•qŠ—‰ž­­ÅѳÄѶÉÍÀÉÑÂË×¼ÄÙµ¸Õ¯³Ï¶Â¼ÇǾÄÕº¾×À¼åÄÀêÀ¾Ý¶¶ÅÇÑŇš{EY6"5+ , -
+*( !6&  4 (
+$    ++ '#
+*2 , *+
+(  1 - '"6C]B:R;!*<1]qjš³µ±ÂÏ¡±¾¾Å×ÝçôÏÙßš¡Ÿ…„šŸ‘­³£Ÿ¨­±ºÀµ¾Ä¸ÂÇÂÍͺÅű¼¼¾ÉɺÅźÅźÄɺÄɺÄ˺Ä˼ÂϼÂϾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾Å˺ÂǼÄɾÅËÀÇÍÀÇÍÀÇÍÀÇ;ÅËÅÇ˯±µ¼Äů¶¸¡¯³œª­y‰Œ~‘ª¼À¸ËϺÍϪ³¸™£££¥¨¶¸¼ÇÉÍÀÂÉÀÂɾÀɾÀÉÀ¾ÉÄÂÍÅÄÓÇÅÕľËÅÀÍ¾ĺ¸µ¼µ¯¸±¬¦¡™‘Œ„’‡‰‚u{~k‡Šu‰q|‚b{a¥¨~_ruUfiN‚…gmnY…‚mµ±—„g…‚d„‰_qwLT_1R]+Uf*O_&M_%FX!ES#5@/5iqOfjOnr[@I;^iX…’{‚xYdO7@0$+ &10=%1 GY J]GZQdd{*AS#1!.;L?Q(6 ".@Q=M?O'4 ( @S '5, 3D.>6GTj.j‚>AT!CW"1ArŒDd|:+:#1 @R3[oT—y”¦[i]AF?TXM••‰ÂĪËͳÄÇ­Ç˶¸¸µ¼ºÅ¬ªÄ¨¦À¥”¯š‚r¡šŒÉɶ—œŠAG9YiOXjKYkLIXAiyi|Š‰¬±Â’•º—”ºu|]„‡gtwYkmUqrZfaRb]N…yj™Œxn^k]GŠtXkY;A4WF&gU1JG"SQ(LI!3131+('$ >:NK+RM0EC+ EKCagbfko[adx{¼Ë³”¥~N[8?O&1B%
+>^J[BS!+%#/0= <N*9,> ;O@U9M/D
+&9 11  * "4 ': '< ,C =X0I =Y-F @^<Q8KAU%4 .#+*: 3E 3E .+< 8LDZ+=*;15N4K#-(:
+-',? 0@ !/!.*9
+1A 5F7W -J 6Q 2L "6$5,? 1>"+! *- $',/7: 'J-R##=$+F:Nnuq¦b{šf{œ—³ËŸ¶Ç£¼¼ª¼¾¬¾À­¾Ç¯¼Ï¯¼Ïª¾³¨¼±ª¼À¯¾Ó³Äå¯Àᜱǥ³u‚¡Â¥yžq"7& "96!9& % 11   +%=!3O.JkC^„YFgB1M.=[9-F++D,0G7m‚]w|[n{Zqu‡š¨ÀϬ¼Åª¼À¶ÀǾÇÏÀÇÙ¶ºÓ­±É±¼¼¸ÄľÄÕ¼ÀÙ¼¾á¾À㸼ӭµº³Â­•oK_7)>0 +
++ *$*  %;!4%  ) - . +)) /  !   % #;=Y/If@"E^Jdyo¬ÅůÀɶË×¼ÉÙ¯¼Ç¯µÂ¸ÀŪ±¯‘™‡…žªµ±¾É³ÂǵÄÉÀÏÕ¼ËѶÀÅÀÉϺÄɺÄɺÄ˺Ä˼Â˼Â˼Â˼Â˾Å˾Å˾Å˾Å˾Å˾Å˾Å˾Å˺ÂǼÄɾÅËÀÇÍÀÇÍÀÇ;Å˾ÅËÄÅɺ¼ÀÂÉϵ¼Â¬º¾¬º¾‡—š{Š¡³¶Ÿ±µš¬­Ÿ¨­ª³¸¾ÀÇÄÅɾÀÄÀžÀľÀǼ¾Å¼¾Çº¼Å¼ºÉ¼ºÉÉÄÑÅÀ;ºÄ¶³µ¼µ¯¾¶±¸³ª­¨Ÿ±³¨‘‡‰Š~‘”‘”~~‚gouW~„couTTY=Y[@TW<„‡gx{]fiN¦ª‡~a‰…g‡ŒbntJQ[.Q[+Qb*DT!6DYk0Yk3GU,FN,goN[bJQW@9B.MX@”£³Äžx‡dR^B9C*" +5.: 1A+: 4D L_i,Sg0? #!.2B *".+8
+ !,DU:J"1 -=, 0@Nc)/?$2?R]t67I'5$=N!Qd/+:'50B>R(Ri:‡žiWiADN/=G'oxGmw@‡’T‘žYÄÓ¬ºwÂÏ”¡¯‡¦µŒš™jœšk‡‡b¶µ‘¸¾œšy]jLx‡a™±{¡º‚ixNŸu™¦„¬¶¡{~|ª­¬—ŸnŸ¨u„[bdGbdJUS<><)@9(ZS;~oOukG[N.=1>2SFD9IE']Y563/,?;)&1-[U5IE(41++
+ -4'WcFCO/$."/' */"5>[Kk=M 3B %!!,/< 4D #1$1C ,> -#6"4-'; 
+11J
+.%:0A I^AU .' 
+&'.-1 ,149 KT>F"( +O"7  #6QWQi~^w•{’¶š¶Ï¥¼Í¨Â¬¾À¬¾À±Â˳ÀÓ±¾ÑÂ×˶ËÀ¬¾Âª¸Í±Âã¶Çꥺєª¸K_Ud~gt—kKj<.I 6!  * 7-   -#:+")B&FgB.I+!!71, A[R,>B#.6Ncq¡¶¨ÀϯÀÉ­Àį¸À³¼ÄºÂÓ¾ÂÛ¸¼Õ¶Â¸ÄĺÀѸ¼Õ¾ÀãÀÂ島͡¨­Š—…o„aOd;.D'  2 ) ,
+0I0   
+     *
+&!# 
+"4#;R?NaX³ÍÍž­¶¬ÀËÄÑá³ÀË­³ÀÂÉ϶¾¼ž¦œ£¬¡¬¸ÄºÇÓµÄÉ­¼Â¸ÇͺÉϺÄÉÂËѼÅ˼Å˼ÅͼÅ;Ä;Ä;Ä;Ä;Å˾Å˾Å˾Å˾Å˾Å˾Å˾Å˼ÄɼÄɾÅËÀÇÍÀÇÍÀÇ;Å˼ÄÉÀÂÅÄÅÉÂÉ϶¾ÄµÄǺÉÍœ­±‘”Ÿ£‘¡¥™ª¬³¼ÂÉÓÙ×ÙáÇÉ͵¶º³µ¸µ¶º¸ºÂ¼¾Å¾ÀɾÀÉÀ¾ÍÀ¾ÍÉÄÑľ˼¸Â¸µ¶À¸³Å¾¸ÅÀ¶Ä¾µ¦¨ž¥¦œ’”‡£¦‘…‰t_cLtyZtyZMR7:>'FI1IK2„d„dNQ:”—wqnS„cŒ‘fouKKU*IS%GX#<K+8Rc+FW&9E!CK*MT8KQ;BG3AK5UaGž|³ÄžŸy_mN6@'  (2.:"+
+$1 9J5E%23C J]1@ )7 #)&)6 "'&!-:J/= %+
+'+;CW!)8+ <NJ^(0@#1)
+$1+9"/:K/A@T*>R*n‚S]oFw„YBM+6<@G <C(/FO#>F!dnET^BdoQgfArqJggG‚cdiQYcJboQ‚’jx^i|Q9D'/8!)0/4**++>@?8=!EK+?B'8:%EG1NL6WT=wmT{rUugImcAcU3E8:/OCbT'kg@C@##! ;72/73<7gc?SN2""
+      )'!5&; 1#:5Q6R1?(5$0.;.;$0#1*8$3*:%
+
++A>Y'<"6!0@T+< %$3#!/+)9<O2D +< 1D -? '8=RC^%9 .-$7 &')#43G9K7I>Q:L#1 1',F 3! 
+49 #!')J*&   ,+#'=S[Š¦µ•µ¸¨ÂÇ­Çɬ¾Â¦¶À¨¸ÉªµÓ¥¯Í³ÅÄ£µ³žª‡’­”¡Ç¬ºã¬ÂᡸÇ]wn8N>IgDJj>&?(  + 3(   * 5#= 8..113$!12'7A *8j™À×ø”ªº¬¼É¸Ë͸Âǵ¾Ä¸ÂͼÂÓºÀÑÂÍͺÅų¼Ç³ºÏ¾ÅÝÂÉ᭶”Ÿ”og]tKMg8=['(E2 2 !><W#0G1 *A+B(   
+FY4E4EI]8I(66FASNb*8 '5+:
+& &'#!0
++"1 8J3D4EJ^':K5E8I =N#<M#/=8G!0E;S+>J^&Qf+‘¦WXj(7BIW=K #0>N /? DW1B =NJWŠšSJX)?J'JW6DQ1?K-k{SO^6+5'0"    &+05168=#JM1IF.NN3xrRxrM_X5RL'C:3,;4RGbW!FD00.mfK($  83OJ-LK-_^< 
+      
+*1(0!42+B 9T1K $1!,+73A +8$(-= +
+0E
+.)=*>#6, 0,?   
+5K'96L(;!1('0-A
+1F *? 1I(= !4#' '9 /B+= (: 7I7I#1 0)#<
+$!*
+"1 3A@RJXGT1< !*!)#*&-5
+19 -5
+"'/!?"$'*!=ZY046KSgŒoŠ¥ª£¼¾¦¸¼£³¼ªºË¯ºÙ­¸×¯ÂÀž¯­šq{”|‰¬™¦Í£¸×œ³Â{™1F7.F+*B!(* &
+ %  10N .K*  +60$ 1)?2<ULE^_fKZof|”„—³cu‚‡•¡¨º¼¶ÀŶÀżÅÑÀÅ׺ÀÑÄÏϼÇdz¼Ç³ºÏ¾ÅÝÀÇß­¶Â•¡•@L:'6+3 :3 0 4 5N6O 4 4 '#     3#9*    
+ 
+ % .(#  <T,%7JaF¡Â¨¨Ä¶¸ËϺËÙºËÙ£¯¾™¦”œ£”œ£‰u|‡•¡ž­º¡±¾£³À¸ÉÓÂÓݸÅѳÀ˾ÇÓ¾ÇÓ¾ÇϾÇÏÀÅÏÀÅÏÀÇÍÀÇ;Å˾Å˾Å˾Å˾Å˾Å˾Å˾Å˾Å˾ÅËÀÇÍÀÇÍÀÇ;Å˼ÄɺÂdz¸ÂÀÅϱºÀºÄɶÅÉ¡¯³’¦¦t……ŒŸŸŠžžžŸ™¡¦š£¨Ÿ¨­¯µ¾ÀÅϦ­¯¬³µ³ºÀ¸ÀÅÀÂËÀÂ˼¾Çº¼ÅÀ¾É¾¼Ç¾ÄÉÅËÉÇÄÅÄÀÅļÉÇÀ¨ªœ¾À±‚r’|x|d_cJ~„c15DJ,7<"+0/3NT4ryRX^<•innM[”fu{MBK$19/<.;<M @R&M]/IW/_kEXcCOU?FL7ER1IU35@#7B%Yg?R_97C!=K# "GZFZ1B 2C<M7GDWQdXm!BT;L;L$1,: 8G,: )"'#+ . $0ALa'8J.>Si-<M 0?.=Qd2f|CWj84C.C-B 1 1A3DZk/Qb#Tb-8.:+9K]8J 3C ,%2
+&/8 !!!  $*!& "-2SY8…Šc‚]nnM…]a[;[T2MG$(! '!WNfZ#OE97%>9&0+;5!FA'/+0/ "    
+% )
++;!1 ,"4%9!3'==Y>Z'=#%&1#/#/$/ /? ,* 
+' %
+
+
+!7#;)#8%Qnfg‡‚LfmTk|ETj+9J:EZfx…‡•¡£µ¶±ºÀµ¾ÄÀÉÏÂÇÕ¸¾Ë¼ÄɾÅ˺Äϵ¾É³À˶ÄϬÀµŸµœMdC(:' +
+2 +%'12". "%    . +
+%3%3&6 /'
+( , ' )
+0 0 $  ' 3,B UoL¯Ó­u|™”ž±¸¼ÏáÏáô¦¶Ço|„cowr~‚w‚‡‚™š•­¯•¨¯‘£ª¨¼Ç¼ÑݼÍÛºËÙºÇ׺Ç×¾ÇÓ¾ÇÓÀÇÍÀÇÍÀÇÉÀÇɾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾Å˾ÅËÀÇÍÀÇÍÀÇÍÀÇ;Å˼ÄɺÂǸ¾ÇÅËÕ³¼ÂÄÍÓª¼º{Š‰j{uQ_ZduoXgbZjg~ŒŠª¸¼ÄËѸ¾Ç¨­¶¡¨¦¦­¬¯¶¸¶¾ÀºÂǸÀŸºÄµ¶ÀÂÄͼ¾ÇÂÀÉÉÇÑÉÅÇÀ¼¾À¾ºÇů³Ÿ™œŠ‘|Šyw{c|cqxZ39#FM1CK+,23:=I#^m=Wd7gwDuwNtuMwRiqF?K%,6+8.<Ob27F#@O+*+3EN5T^CT^C_q=KZ-5B2?9F4A+6(4!  
+ *1>#  %
+7:;>++ /3!IM5rxY¬±¦¥„xwZrkRytSG@'@<@8I@[R#TLXO1,B=)<8#+' !  
+!, *8 (6 1E': "!3':';6M ?X/D 0'&+7*6+7 ,8
+!7I-= #1(%/%8#6.@ '7<QF]DZ0B 
+
+:E2= 4? 9D.8
+  &1#/K<?_Q2JC"50-?;Tmg•—¨ÂįÀÍ¥µÅ¥³Ë­¸×¬¶ÕŸµ±š¯¬‰š¥x…ž‘¯ž±Ó­Çá¨ÂÓ~œ’QkX+C(,2+ 2#< 7&?!  6+D0 4"^~uWto 15($/?!-COf¦¾Ï¾ÏÝÀÓÕ¸Âǵ¾Ä¾ÇͼÂÏ­³À±¸¾¾ÅËÂË׸ÂÍ­ºÅ¯¼Ç±Åº¯Å¬:N1.!'- +1 #@/ # *A!6+      3%<($
+# ) . $#  '?$<-C)OiFt‘rXm^w‰ÄÙá±ÄÕ±ÂÓ¡±Â‰—Ÿœ¥‰•šako¥¦•­¯…—žu…ŒŠœ¦¦ºÅ¶ÇÕ¾ÏݺÇ׺Ç×¾ÇÓ¾ÇÓÀÇÍÀÇÍÀÇÉÀÇɾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾ÅËÀÇÍÀÇÍÀÇÍÀÇÍÀÇ;Å˺ÂǺÂÇÂÇÑËÑÛ­¶¼µ¾Ä‡—•EQO1=9'$5A=>KF]mj•¥£ÂÑÕÅÍÓ¨­¶’—Ÿ™ŸžŸ¦¥ª±³³º¼¸ÀŸÀŸºÄµ¶ÀÅÇѾÀÉÂÀÉÇÅÏÅÂļ¸º¼º¶ÇÅÂ¥¨•wyjª­—‘”rw_’rfmQKR6U]=^g@AI(OX3KX.fuCao?Tb5‚XoqJktIfnDDQ)3>3B:J"3B%1EU0*+2XbEdoRYcGJY,1=6CCR';I!?M#ET'5C1>'4 + 2CSjDZG^QdCU5E EX.= !-%*7
+4C5D*7 
+'#
+&9+@,>!11D
+6J 6J ,>!1*(8(7 , 
+/'0"7
+#8 (? + 2'$
+
+$" 
+'5@4? >J8C/9  8&'+G1-#7)+B4IaU‘±ª¡º¼Ÿ¸¾¶ÇÙ¬¼Í¡±Â¶ÄÓœ¨¶¶Ï¼£’6EB#.3JZi¥¸­ÍÛŒª­¨Ñº?YB#;!460 
+#"84  
+ #:$
+&"  '2Bo‡Ÿ¥ºÙ¬ÄÓ¸ÉÓ¯ÂÀ³¾¾ÀË˼Å͵ºÇ¾Äѵ¼Â¶¾Ä¦¯¶¬µ¼×ì­œ¸¡u‘jk‘Y1#"< ), $ #%'>!7 + 
+ "  
+'8
+6O!3/F-C* )72<$BM19?'foEw|L=CGI">?WW/&& +1(y‚t„‰{^bW_cZDC>&& 30'0-!.(0+&2+2,<42+ A@-WU? +)CA+fdC98??! !#0 ",=' 
+<L 3A
+8F Sc)4 #,)!!-'!.+? )<,A5L 1-A !2&8
+=W,B 
++&1& $%1G>U': )< $6
+%+.!')@/ 
+""36>Rcdwu¦”¯Ÿ¶Å¸ÉÓ¶ÉǵÀÀÀËËÀÉѺÀÍÀÅÓ¾ÅËÂÉÏÓÝ媳ºm{|‘£œjnŠ¨~Ig:5'.
+ & "#"'?'?3    
+ ## 
+ 
+
+   bxf­ÉÀt‰‰…œ¡‰š¡’¥¬¶ÍÍ~‘‘bro‚•’„Ÿ’rŒc{o_uqn‚‚„šŸœ³¾±ÂϾÏݺÂÓ¸Â;ÇÓÀÇ͸ÀŸº¾¾ÀÄÀÇÍÂÉÏÂÉϾÅ˼ÄɼÄÉÀÇÍÄËѾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾ÅËÀÉÏÅÏÕÄÕÓž­¬ÀÙËœ³¦n…u>OC‘¬™•±žŠ¥”¬À¸”¦Ÿ¦¯µŸ¨­¸ÂÇiqkckf{„~¬¶¶¼ÄŨ­¶¯µ¾ÓÙãÂÄͼ¾Çº¼Ä¾ÀÇÅÅÉÄÄǺºº±±±¬¬ž¶¶¨­±ž™œŠgjYŒ‘w{‚fGM5gtQamFTc:Xg9^o<L[+7G7GTY3Z_8U]5GN+6@!Xd<AQ,7E$ 4C'",7D+BM3EQ6‡”qNX>1?8F0=8F%1'30=IZ#3B ,(5F.?
+/A 6J 9K5F <N>Q3D 0? 1A .< ) +,: BSGY)6 /@/@->K_'<N3C9JDW)9J!Tg8:J#0=.<8F&8I':J+IX9UfD‰šm•¨rXf5IX#dy.$1!
+ 0&7 -@ '7-'!
+"3(; '  
+
+,
+$(  
+  !%   & 
+6O--C((>">X9&=%!5%;UFD^ZG^fSdtUky£¸„™£­ÀĶÉÇ­¸¸µÀÀ¼ÇǶ¼ÉµºÇÅÇѾÀÉÏÕ߬ºÀm{yŠ¥’^xZRnB4R#(C8 ,( #(>& #+D!6      
+
+!" #7 
+  (9(œ…d|tDWSª¥„Ÿ•o‰t~Xo]:M>^x^JgJDaD7M9,@17L@dyrœµµÂÓݵÅÓ¸ÀѶÄÏÂÇÕÅÇѾÀɺ¼À¾ÀľÅËÀÇÍÀÇ;Å˼ÄɼÄÉÀÇÍÄËѾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾Å˵ÀÀ——‡™’”¦™ÏêÕ¦WmT6G4j‚g_w]YkX•¬š±É¸ÏáÛž¨¨Š””R^TWcYq{q™£Ÿ±¼¸¯¸¾³¸ÂÀÅϾÄͺÀɺ¼Å¾ÀÉÂÄËÂÄ˼¼Àµµ¸¬ª£Ù×Ïĺžœ•y{rœŸw|iJN<_mNanLQb:CT,>Q%1C'6'7GO'GN)ak=_i@8D#gwMWjD-:# +9G.$1>'UdGXgJ|ŒiEQ7) % '2FW&:I1?.;;J'(!&5F+<
+0A 6I6G /? 2C
+:L <N?Q9J*8 $1(5
+<L1?1>1?*+7*:##1 >Q]t6:L*8DW&>O$1AauBNa3;K$5D FW1DT;RbLZiSTbM{‰m¡±‘|ŠadrD|’L%1 #(< 0 +B7R#9,?¯ikM9G'Q]73:KO++18>EI '* ;="#!#(*)LJKgfc‡ymi]tkW‚{]_W7B< (# 4/*.,1ac7‘”[xxGgg;wxE9:14
+
+!.+= SnE_6M 5M5M1 
+*
+   "'!&.0" 
++ +<%!)+:3B/=9I4?#$"'!( $'E* !  2.M-'>&?[EZuiŒªªœ³¾³ËÛ¥µÅ¡³¶ž¯­w…yn~g~œnQiD#1!1@5f|x™”w”Š[umxŸ~NoK(E!' $ 2)  1' .    ) 1,B(  $:)Ttb0EB:NU‚™¬Yo~@M[u‰’ª¼À¸Ëɬ¶¶¯ºººÅŸ¾Ë³¸ÅÀÂ˶¸Â­³¼³ÂÇ£µ³f|my—u0E$*D$>&C1 5 #* * /  5 9U"8 %. ' 0
+  *
+  
+#   
+,< %3DYEZLb4E 1A 2C
+2C
+1A
+8I9J,; ,&2 :J$!-:'3 DT/@'!/ #1 #1 +:0@GZ*8I4DOc1wT|”Y:J#Wj:—b[nQgyajyb_nXtf‘Ÿ„’gn|LXj11@-)+@4KOo.Ec)!5™ºq¨kWi?.7 :>161747-/ 
+')(QSR‚£Ÿ¡¨¦£¡™’yuif^Kd^DRJ-IB",) ;5MFOU,?D!EG#ruDAA aa6LYZ,36 
++?'81D6K
+*<->5G 1C<O Ob6E +8GYNa3A
+(",.9 !'$
+5J?W3J Tq=W@Z+A !(>
+0
+.#5 "4.+&:#
+
+$## ' $, 6 0 <3U+,F)9T=7KDd|Œ•ªÀµËã­¼Õ¦º³£‡dwT[o@Tq7]{>Gb7OiFi‡kt”w|¡r•w8T52O*$A1- 4,    ++ 1$ .% )'<%:'+$<!StX8RC+>99IN#17/;Cy”±ÄÅÄÙѵÀ¼¶Â¾ÂËÑÂÇÕ¾ÄѼ¾Çº¼Å³ºÀ¾Íч™:L;jŒbEi6"?0 ? 5 5 2 'B+ !4 3&<7S.G+*$ 3) & #72%+ *')#+&4) ( !    
+" ) (3-:?N!?Ng|91?DW=NYo&G[AT5G 0A +;$2#11A ;L1@ (+-; ,9'(3 +:  !- 3C4D/> ,+:Wk7rŠMXm8' BT'Œ¥fUfBZkKctTq‚at‚_jxWboEO]01>6E'9 !'$9Ln14Q) 5GqŒI|’NYk1!) :CNTKRQX;C!'   6<8;A=bic™¡š¬µªµ¶­¯±£¡žŠ~{f]W>QM.@;?;.+ JDjc(ju0LU27EK7<OU cj,OU 6>#*!#' !&;*@5N:T
+3I2F3F+=1B6I
+1@>N Td:G +7DS/=8F *!1=+41>
+"!&:
+.0(?+!61, 31I, 6+E &? !82./!#9 %9 1%(!6K! ,!. !-#0$&1 *
+# "+'#!%!& 68">!8'=* /*K_m”¨¾ž³É¥³Ë¡µ­xŒrcuSUi;<T$Mi1>W/:O2;R=:Q<GcKLiODcA$=& 3;1 *
+
+  # ' *.2 & )? 
+!,  4#1&  -3‡œª„šŸ³ÅÇÀÕ͵À¼¸ÄÀ¾ÇÍÀÅÓÄÉ×¼¾Ç³µ¾ºÂÇÍÝádtk>Q?2J-Dg5+L6 = 8
+/3 !: #4 3
++D!7 !,C%: $
+( #'  
+ $ !'
+         $3"1!! .$G[RŠ¦™Qf[]ud¡Â¥‰­ŠiŠdKgE1J+Cd6>^1Dc9OoKNmQSjZrŒªÀ¼±ÅÉÀÍÝÂÏßÀÅ׸¾ÇÀ¾ÉÂÀÉÂÀɵ¼ÂºÂǾÅËÀÇ;Å˼ÄɾÅËÂÉϾÅ˾Å˾Å˾Å˾Å˾Å˾Å˾Å˳ľµÇ¸£’9E7'6& .:O3NgF/+ !-IYGª¼¬‘Ÿ—amft‚u…•‡—¨™ž•y‚u|—Ÿ¥ÇÑݼÂϼÂϼÂ˼Â˾ÀǾÀǾÀľÀľº¼ÓÏѳ¯±º¶¸££Ÿ……‚KQIKRD_kSdrSUiAEX18L!'9+ + $*18&,19Tf=fxQ7E,SdI,:'0>+%1>+TcISbG]jLCN54A * !+ #/$0+8)65E[q+CW;M6G?S5G *9++/>
+5E '4+9
+!-'$1? +(#   # 1@-<+91@0?Yn96F+(6Sf7=K-BQ5WfI”ow…bO[?CN,/9$0,:, #;2$)
+$3*6:I+3;D5:GNIO*1 $* " !25+qytwy•ž—³¼µ³¼±¸º±¾À±¾º¥‡„nMG11.)%>:<9RL[U BK.5 3838X^%BGX^%9>3;3;)1
+0> 06L0F +A 4M-D1I4M/C,?1C0B)96I
+8G ;K M]FU2?/;!,#/5C )4 +6 (1 
+!+@ 2 4=Y/'>,D
+4N*@ 5N!3 !; /K 7(1'? +C /I+(,B #6';
+BY
+
+  
+  4!83+D1  '># ' **/@B5CF¨£¯ÂÀµÉ±¼¸µÀ¼µ¾Ä¶¼ÉÄÉ׶¸Â¼¾Ç¯¶¼ÉÙÝy‚DZC 33+M'G8 4-. ! *
+$ "8 +
+!.EX(%2@R$9J+9Wk5Qd1EX(;L!AS%1A7F J[1uŒUduE>K'6A *
+!0 #3 % 
+9L /=2A5B :G AO@N5@ +5_t+7()4 #-!)
++-D (> )? *  +#/(5 ".#,*3 !.= 3C ++9 (
+8<   Mau¥ºÙ^n‚gq‰n~rEU:]qADX$2K'<+ 0F!?Z7'<#1/2O*3 + 4/ =.    +C. , 
+'# (%7/.==Wnq¦¬Ÿºµ¶Éǵɶ¾¼ÇĶÀŸ¾ËÍÓ᪬µåçòª±¶¯¾Â™¯£):(,C& 2 &F))-- )   5 %1 / "7 !$ 
+         !*:/2C;;MD(:0OiZWr[':'5M0<W23M')% !=#@*1I_Ix”„—”…™™¡­¸¸ÅÕÂÇÙÂÇÕÉÇ×ÇÅϾ¼Å³ºÀ¶¾Ä¾ÅËÀÇ;Å˾Å˾ÅËÀÇ;Å˾Å˾Å˾Å˾Å˾Å˾Å˾ÅËž¯¡¯Â­‰œ…”x]uU[uQ>U2>U20!1@W8_tUŒ¥…k{g[i]EQF/80:D;@KAISMmyr¥µ³µ¾Äš£­¼ÂϼÂϾÄͼÂ˾ÀɾÀÉÀÂÉÄÅÍÓÉÕËÂͳ¯¸Â¾Ç’’•qqnBGA:@6_nXRaFBS2CU0BX*-@1 !4#* 17$-!)0=!UfD;J1CR<;J8"UiQ¦ÂŸ¥„XcL;D0u„a]n:-9% 
+
+I^5G ,&34D 1A 0> .< $'.:  #0(6 &3m„FGZ* ,$17GL_-d{@@R$L_-EX(1@6E>N([o@JX00;1<# . $4
+++(
+!9/  & (,35= ,4BLFR?G5>+1@J8‡”œª”­¼¥¯º¥¯º¥¼Ç­µ¸¡”y|{_„„bWS2=>31KGEDFE:: (1$(16@ ! $LSCJ5>")!)!-,> !31J +B -E,D0I/F0E9O =R 0A8G
+$1'18E
+;I 4A 8C ?K .<7E &1>  $
+!9'A1 
+'!(>"Fc>2L'+B@[*A]'<X"7R1K9T8U/I=_ >a#8 1 6 ##'
+1
+% * 
+ !-$1 1$-D7r’Šš¶¶r‘ªÂÑ¡¸ÉÇ×¾³ÀÓÇÑݬµÀ³¼Â¼Åˬ¯×ÅÉô¥³ÇÀÓÑœºž;O2!5 6$?8 5
+-+F- )0 %9#%2 -*@##2 -D#    
+
+ 
+  #< 0
+)B-F+™Ä¦‰µ¡<YL&)E#'G  !
+$
+#<<]+Ux>q’[j[YkU™ªœ­¼ÀÀÅÓÍÍÝÄÄÓÉËÓ¼¾Å¸ÄľÉÉÄËÍÀÅϼÂËÅÂ×ËÄßÍÅáËÄßÍÅáÍÍáÀÀÓ¯µÂ¾ÄѼÅÍŸ¨¯—¬¥‰ž¦Ä¬ªŒG]?g‚Y<T-*%9@Z,;W+>Z1¨Õ”Š³~TrMSqO8M3DU@TfQq…r‰ž’„’‘‡”™ª¯À±¸Í¾¾ÕÄÄÛÇÀÛľÏÀºËǾËËÂϸ¸¼µµ¸¯³±¨¬£”™Šu{g]gMT^B‚”dUd;cxBNb/DY'*;&8)<6D#.#.+61<t„XXcC?G1<C1#(^bT’—Œ‚{•••QQQYYY;T!C^'#7"4!1#1&4D!@Q(+90=BR GXo„7EW:J,< 5FI^)@U>T 3F5I >R 
+/D+ + #7-E**1L *D' !  %+$41D
+%1 RaIIW@@O4=L1?ISmy‡”’Ÿ³±º¶¶³¡¥’¼ÂœowOLW+:DCSWj"D]:QC_3L3!8+; .?
+-> ! 
+,?%6:N 5I $3"2D 1B !/=O2C#+8   
+& '3+#6.G3N
+*A1/ #68X ( #/-  ! 
+
+#(#/ +5%9X'A+F 7U3Q 0L ":!7'> "- + 1 & 
+-   %*:K,;,9F +7 )#!+ ) 2Q&=]1"8 $!%:6O/!5)#8/F:U!8SB_;W3O)A,J+G8 +L5#( ' * 3$ !+ 
+4 0&- () '+ +1 )) !"   
+/"7 
+*'D 8( .2M!Nj==N2j~f¬¾¯¼ËÏÂÇÕ¾¾Í¯¯¾º¼Äµ¶¾³¾¾¼ÇÇÄËÍÄÉÓ¾Ä;ӺպÕÍÅáºÕÇÇÛÇÇÛ­³Àª¯¼±ºÂ­¶¾”¨¡k~qd{i”±’n‰c‚¡rLg;3K#-C=W*)@7R+|£k¨u:S4';$5J17F3M^Jy{y‚T_^[fjž£³ºÂ×ÀÀ×¾¾ÕÀ¸Ó¾¸É¼ÍËÂÏÑÇÕ¥¥¨µµ¸³¶µ•™‘x|ooubtb{‡dqUu‡U~•XDW'.?8L:Q0D?N!4A1>5A;G&t„X[gFNX>3:*!&BE:txnYZTooo___JJJ9R@Z$+A0E2E=Q)5E"J]2Xk;?O'CS#Tf,K[!_r,L^^r(DX<N4F*9M 1D/A:N .?%"-'1,4 *1'-#(' ;F +4OZ+DN#=J#-#/ +71E)<,C<WB^""50 #7"4.#+ * 2 $*,F +E!9 '-,(43?)UdLLZC:I/9G.EOZ=FQ£¡¯ÅÄͬ¬¨É͸”™x15KU*%- '3 1@ *=
+&8+A
+'= !8*C ->
++; +#.? Um I^Ma9K *::N BU 7I4F$3 1!13I<S =T :O +=.@,>&5'2D 0A &'6 #10>2A 
+ 
+*+C0J3 ( '6 8
+
+
+
+1N 7("&4!
+  
+ *'+'%$#-&0' 
+"'E.N7 !< 7! " ,"0  
+#8&[|ff…t?WNToi•±±¼Ùߟ³º’¦¦£¸¸¥¸±ž±ªºÍ¾Ÿ±£žª¼µÂÕ­À±Ŷ­‰MdA'?1"/ &&.3 * 4$8 
+  ! 
+#9 -(F5  4A^1AW8tŠnªº±­À¶ÀËÀÉÕÀÀÏÄÅϳµ¸¥¶¨¯Â³¼ÏÀÅÍËÂÉÇÀ¾Ç¼ºÅ¾¼ÇËÉÕ¸¶ÂÄÅÍÏÑÙ­¸¸ž¨¨¬¼¶ÀÑË¥™i{m7I8XnURjGYrJ?Y-4L!+ 1I+D;X*A^1TuD/F'"6?X1@S0WmEuŒj_qY<I>TbZªµµ¸Äļ¾Çº¼Åº¼ÅÀ¾ÇÂÀÉÄÀžĬ¯­¼À¾º¾¸™ž’‰y‰t‡•u‰™r~”catFZn=Nb11C2D/A=R:N<Q5D/<8E]m?Ub;akMU_DCK8FK9w|dUZFinX„iRU@/E'<%!!%50@=O%DW)-</<FX!I[EY+: 1A 1E(:
+&,7J'6%3,<0? 2B '21=/:#, '&6 "+8 )?L_n+_r-",
+1?#. #3,)<D]/D_&%9';!2%8&9 *#,F )B 1  
+
+#.+8;J 6D0>#/ #!,$).;+8 +8 8G1@"(# 
+  # $'-1,#    ".    "$7 %6 
+ *   %(9- ,!1;09#+ !& '.
+56#   $ 6">*I,& :"
+  '   !(>/.C7:QI¡™œ¸¸¯ËÑcrxj{{•ªª¯Ä¼­ÂºÏãÓ¥¶¨w‘ÀÍá³ÅǬÀ±c|^&6"8)
+*3  !0  )  !3#) ##61 $    /#
+  
+  
+   
+/  * /L4 ":(B!&='*A--E15U14; .'E'D671-7R(WoL~•x¦¶­œ­¯¬µÀÄÍÙÀÀϪ¬µ‚„‡ž¯¡¦¸ªµÇ¸ÄËÉÀÇž¼Å¾¼ÇÅÄÏÉÇÓ¼ºÅÄÅÍÅÇϨ³³Ÿªª±Â¼¾ÏÉÄÝÏŒ¡‘&4'!/A':N.1I"!
+, )A,E1-E".E&#75L)>Q.I]9BS:,8(/:1^md¥¯¯³¾¾¸ºÄº¼ÅÂÄÍÇÅÏÄÂ˸µº¬¨­¦ª¨ž¡Ÿšž™¡¦š¥¯žš¥~ŒmiwU{‘a<K(0>Oc1>R!8K):CY#0B9M/=%1/;BO*LX3juUdoRS[F>B1Y^JRWC]bM^bKNR=Jf*5M!1 ) /?6G 8I 1A6DIZ"Oc#?R&3#1&7 !1
+!0!/,$19J#!+ )$$(0 *; 3F/>+'3
+)>Kdt/>M) 9I%  "3(;&:- 1  ,"
+1IKi('(A .
+&;1-&&(9E1< BO-8 (4!+#05C6D3B+9 
+
+ ) %#+<'& "*
+&. !%
+#* & 5 !; 4 1  00G9S#;W!Db&<W2L4N#8 1K%:!6 (+%@=6 )- #$ 3/    # 53 $@,&  
+ 
+
+ # 
+ * "4*>*0    *  "  %"0*+  
+! '&A %1
+1M 3O'.J$#<1Q!'C(K+1 ) ''D(E/ +DKb?EYCu…|…•—£¬¶ÀÉÕ¸Âͬ±ºŒ’”Ÿµ£¥º¨±Å¶ÀÍÀ¸Ä¼³¶±¸¼ºÇËÉÄÇÅÀĺļ¨±ªŒœ”¥—ž³ž’¦’’¨—ÉãÏ‘­’+;&. #8'=!61 *D&>,FA_-Oq;'?1J1D2E)8+2A+t‡m¯¼­ºÇº¸ÄÀºÂľÅÇÄÇžÂÀ³¶±¨¬¦‰‘‡xw{‚xœ¦’­¼¡‘ŸftTNZ<Oa;@O+6E!5E+;Lb+@T"=R+@8O0D (8 6D7C DQ.[iJ]gKQZ@3;&9A+MU4S[6/6GQ(8N+?!1    !1BNd'Um)G^BU2D 3F =R2G .A #)%!. &*:I#'%!!+>L1E $7=R9M ;N 6I
+DU>N.> !-,;'  #2'%9& !'; % bBu™K- '> 4  
+
+
+
+ $ +3+2" 
+ !/-#! 
+  
+!/ %
+ 0   
+ 
+')   (    ''0%7 ,J/M";  , ;Y&2K6O!1J<X 7Q"7 !5 17R2K2M2
+/ )E2
++1
+ + ( )4 2
+2
+   
+
+
+
+!/  !3!3  
+
+  #+" !,J/M7 &A1N!/J#3Q)Ik<Jo5%A!@ <
+) - 2 1R9[#-G5Q%=R2+:)jyq”¥¦³¼ÇºÄÏ­¶ÂºÀɵ¼¾¡¶¥£¸¦¯Äµ¼É¼³¾¶ª­¨¯³±ÄÇżÀ¾¼À¾³¼µ•ž—x‡{‚‚•‚oo£º¨¬Ä±¡À£TkMRjE$ + * >Z"(?2O,F@_*Wy?q™X<Y+2K"2"1'6&4@Q8„™|¶Äµ¾Ë¾ºÅ¸À¶¾Àº¾¼º¾¼¶ºµ³¶±•ž”‘™™¡•¦±œ™¦u‚gXdGMY;JZ6Qb9Rd61A+ 5G8K5I+@4K 3I3E@O1<=I(?J1r~^r~^KT:<D-FN/GO-"(=E!4J(;0  #"0 AUAU1D<N,= 1C
+1C
+#4#3(#!+7 "-'2 %0/; )< +JaBX:M @TK]EW?R'3(#. $4*;!!1!4*
++ 0E( $7) .@Y'>X!! 1"8 /I/  1B.(*< 3GJU:t‚_~ŒbDO-1<IU7?8@+2T_(-76AM]O_K_I^:O 2F.A0C.A%6. 018# 
+
+
+  
+   )&((# !! 
+  0 1 !
+&
+
++ !   
+   + ' + -C' 
+    .L2R/M/  
+'
++A%:#8) #7(>###8<W3L.G% !; "A*#1 ( #
+  
+  %. &+ +    '
+- "**
+ '"8#Y{T!6 39T,WxE,D!3B$>N-.A!Ib4>X))?1O#+#=!9"   #
+#4    ( 0 !  
+ $*8  
+  #8 1S(F"> 27 5 #<Ou3Iq+'D;#A *1 1 !<8'$
+ UnR¡¸¨À××ÀÏÓ¨¶ºŠ—šœ—‰—’£—’¨œ£¸±¶Ç¯À¾£ª¬¨¯µ¾Å˵¼¾±¸º¯º¶œ¦£x‰|r‚wxŒ|u‰ymnr‡n™¸’‰¨xdO$7$!6+D$;,I)C!9.IBb+3O &9% $
+&)DU<„™|ŒŸœ¯¡£¶¯­¾¼±ÂÀ³¾¾­¸¸ªµ±¨³¯—ª¬À£­Â£’¥‰w‰kgxXWgEGX4]oDL^3_t?J]+0A#1&52D2K ,C -A 1C:L'4=I+19'rgœ^iNCL3'0+5-8*4);+ # $!0
+1C%5
+#3C[/C /D
+';%"$5    &1 1>;K"0'2D +&CX,>,=6J =O
+Zq>S (8*+&8#3+?-A* %60C 0 
+'
+$5(:%7+ "4 ,#5 &> & :Q'!5 #4 2G.=BM3yaš¦rWc-GWBQ08 +3 #-:G*2@
+AU<O-@/B
+
+   
+@J-4A(  
+$6+     
+   
+   !
+  
+  
+ /M+I,J";2N$<'=&;#8 3, #8 '=9S7Q>[!7 "2
+4
+"&!># !/" 
+  1$0 "=! + &
+$
+( ' %4'7 
+ $  !9U:'?(A^=#'!57R*)@%1 &71E!4L!>Y'7!#4 'A2 %=!  !  
+
+#+G4* ;
+-'0 (.K.N0Q"@
+1#>#?!<,L)F0 0*j…f¥¼¬ªÀÀª¸¼¥³¶‘ž¡œ—|Š…y‚‚—Œ™­¦µÅÀ±ÂÀ¦­¯¬³¸ÄËѵ¼¾ª±³³¾º±¼¸‡™Œt„x•…’¨—K[LN_KrmŒ¬{a|LIc1"66Q0J-F)D+F$0 54$7 1, !XkN¡¸™~‘x‰|Šœ•¦¶µ¸ÉǺÅŬ¶¶œ¦£”žšoi’¥Š‘£‡ixa[kRiyY[mJ=L+YkACT,g|E]r:Sj13E0A3E>Y*@%7*:1B%1GT44=*coY—¦ŠgrWOY> #,Yi4-8(&6
+$3 ,>)%1F .1F @Y)> +5J!+ #<JAQQc+;*3E *:%2D<Q %3>Q
+9M
+:M ;N#1 ':G_+;R)C[0'#5, ' 
+ ab1&' $( ;@CIKQQW-1  
+
+
++#!2 *)/# 2(= *@ :T': !'<2J .E 7Q #8'=+?7N ';-A -> + +",
+
+ 
+ 
+ 
+
+
+
+
+   #"
+
+  + )B3N!* ';2J **#  &62K+B 5 !7 'C*< < -
+' 6% *( ) %  "
+!/# #   59W1*C#/J#.6T$+F0M0 - <S/G#9":1 1 - #<1 1 ( !/       
+  
++K)G,L$@!; 0O"= (E(F/O*I7 ,-,) -#7b|^n‡xr‰o…~¬Ä¶o‚xM^NSdT=MGj~~™±±™ª¬’~…Œ‰‘š”œ¦¾ÇÏ¡ª±¬¼º~’‡j|rawirŠw~•x-;'7J0%6t”YXu:%;9U*B'?5
+*- !8#:1   $!/ 2@37D;dwmœ±­³ÉÅŸµ±ž±ª™¬¥yŠ_obk[<K1CT5o…]WjB]qGNb9Zo@EY-;M#DY(Tk4La*<N3D-=<T,A ,@@U!0@#/8E,>J8mxc¯¾£bnULX=!/8[i=Tc1)#1 9L%4
+##',1F(<
+%8 1#4 1E$+
+   & $0 #0 #++<1C # #'5 !-!-+4C>S 1C7L 7K 6O!4,E)@""%) !):?Ub~6b~29N'
+*=1I'9 /C 
+!*<L:JCQ 1=2A %13E
+!/2E
+=R3J /C 1E NbO_[g%@I "   +';7?;"! ! 
+ <?BI!# 
+
+    #("+ 
+
+  
+      
+'  
+ 
+ - *C'?""5/E! #  &    ( !5 '<0 !1 6 '1$D   (     + !!<1 &  + #   /2' ! 30L1N/L/L#5BZ#4N&< 7, )!#$. #9*
+
++ )<:Q4M 3 )'%(
+.M,L#? '5*I'E*G4U>b0-9 ,L)G'E8 -4 )D'>+,>*DXL0>9ARL¡¸¬¥¼¯XjYTfUEWQcwwŠ¡¡™ª¬‘”u|‚‚Š”œ¥¯­¶¾±ºÂconiutj|rFUM+:1_ucuŒo+8$'!2Fa,.F+C$; !7 0)- 31 *  &!$'!”‰¬Â¾¥º¶w‰…m|woy[jbESG)5 CS7r‰_Š£uo…XM_:;L)k‚NMb36G3E;N!2C'6(7,<*> &9 ,@@U!1A*7QaBjybit_~Št…”wWcF !(#+nD<O!0 $")+ '+0!2. 1'&#5
+$"1   4C7I DY,='4'*;K 6J %5+>.@ 1I &; 8T8S 
++ #5IMf'Wq.=S/ "   %7. 
+Zo#]n$Yd#@I25#% &#$! *($#  !%  
+     
+
+    #  
+3( 0%9 ' #    
+#7'=
+
+)  !;$   % -
+ " # 0M+G5U3 /.GFf4Q!7 +! 1  + !5 "1   
+&9#50$ 
+   $ 5G1F0E 4
+,1%!=-
+4 : *I7
+&C ,L">
+4$? :Z4
+2 + !/+9 8ZAd#)D% &5'FZN…¡‘ª”Éìǣĕm‡bc{mt„’¯¥¦¼µ¡žtŒ¡±¯¶Ç¾ÇÙÏr„uKYMCWD6G7'8'WoSQdE>O1, 1-
+1K,E1  
+ &'    
+ 2B7…Ÿ•±ž‡¡Œm…k^u[I^B1B+'8!"3BZ/To<Jc3m‰LNf35JcA]u7=Q 1D1C'6-
+#2 *:'+!2 /B$2!.L^9q‡^wŠddwTw…b]jK&  oQ2A&2 6E1?'5#1    ,
+$6)- %7""0 %#2     !+ 1A!'6)&1   #,-< #+!0 4 41M 3Q &9 .$!$,(; 5K+> D]IbD]2G"3 .
+ !#(
+!6/G$8#6 
+ "8& 0'<-$ 
+ % )!-)#7 #&4 -*#+ 57$  
+" * * ,  + +    "
+%
+),  *4 $!6W/N'D;XKk!3O3 $ ' 1 #8 3 (9, # 
+$-N#A0 '!< 7
+$A 5&C &#&@5
+)C2
+#=+J5
+3
+'B0 ']tf‘­œf|j{•y‚Ÿwb{X<NCMbZk„{‡š”‡š—‡•”œ¬ª¼Í˵żÂÓɬ¯]m_,<-;M<NfN^xZ)7!1A'%/ 1L)A!6 /0 2 - ! 
+  
+  0@1jqx‘jq_ucc{bYoW4F/!/&68N'<S*4J" 1Rj6Qi5=S#Kc.<O0A+=*;(80A<O<O(/ 1 +='6'4J[7g|UdwTcuSO[?_mM)2 ^nB>N#/ :J5D&4!/ ' 
+
+  
+
+6E!/(8/>0?,;>O *<9M 5L =TGb:R/A5C>9   ;5 C>#XR299 
+     
+    :L(8!!
+( 
+' !/AT*       !/$  '#8$ &#6';/ ! " (7'6.>' 2 "+!< !< &G5 +(&31$   # &
+/
+   ' ' .# +  
++' 
+) 3
++) '#7.   
+ 
+, 6L1 (
+
+4J6NiSIbMy™rTnK:R+Qm?QnKg‡fyœxx”rm‡gndndk~bwŒg¥|±ÏžiU3J'5L'Gf6jT:L+! ,$80 -.G'?"8 3 6#;4!
+    #33G/KcEWqQQjGJc=:U-5O'5Q#+E%>+E'<0GOo14N8Q7O?W >U2F2F,?/ +/@:N-?*-
+'#4 +?-AAW!J_+1AK^.J[.Wj<%/ O]7Rb)!%1 %1 #. ' - 
+
+ ! 
+"3 +>    
+ )'6 )-!0 +
+?R&9';!0(5F?R
+0D+>/F $85M#6#' %
+ * 
+ (#*'A=%34"#!
+  
+
++@)=&9"4 1&91G ':'%3 
+  * * #, #6. ( * % )  -'5# #1' #*9 "= #C9
+&F4  !!!  1#  " * %   
+"$ $  (+( ( +
+#7 'B)E0#<1N/N+G9 7
+"= $!:#++?': #!+
+-1 0 / '
+   
+
+
+#,/*.  +G# $?&A    $6&=TA6L:]xW8M1$7#5%9!6M5D^CF[BI^DUfMXiOQaICS8buT|•mOd?Ic:';1iSk„U  &:=Z)A*B4 # !) #     0'9#/B+.A*#38N-3M'"7$;.I'A2 %"6];Ig+"5$8:Q8N;Q9N,?%"1
+-?!0 +. !)(;'9):&5 , +9FX+?O)"+1<@L+GW" $$0 "$ 
+!$60
+
+  
+ ,3%/
+   
+ 
+    1 1 /I-F2L5O.+*>0 *
+'7$4 )
+ ()A+I!< ( "*M!@  !   
+   ": ".(  #2!0#  ! +$
+!3 . '@-G+F .6'D *G (E 56
+#> # 9 4 *,1 '#%
+
+ , &)0-!'    
+      +
+ /
+2W  !!/'( 
+ "<81
+(  
+ #/E_FOkQ;T6Eb9Lm6$;Bb4Ij:Nn>Rm>Oi=Ng<Nd9Ka6BW+I^1Ok6#6/F1 &Ej)d~L+<&8#+"8 #9 4 ($
+.!    #  #"7-1L7U*E(F'E 6'")2M0J'%<4M4M+@#6 -#!#3 5E2B+#4 %*&: "5 1,.%7 +<)8& DU*,7@M*^o1  !'    
+!1 - 
+
+2L .E(?(> 
+#    !     
+    )(6 '
+
+
+      6R"8 3N+C.F5O+3
+*>+ !
+   
+% 26  4 
+
+ $,     26( +(I !+0)%B /%   "81Q-K+# 1!/.+Ki>Mn70J1M&+E!-E!7M'8M)1E#3E#:M(Zr?<O'@Y*  ,
+7 #>ZrCgNBZ- ( + 
+    '&8 ! 43M%5R!3Q3R+K2)2 "0
+!6 '/I0G7Q3J#5 -+%'#0'4
+ #+()*!2G%!. $1Sb9Ra8m<" )
+# !/ # % %  
++=$
+
+
+ 3<#   
+
+   
+>U6L0E$7)+B,!4 
+)*
+     
+ "+  
+ % !* />7G7G/>!.  
+
+  !! $  %(5+8'6$1()8K"#3 "%8   '  + #1
+): -,=
+CY8K *:<O AU5G
+;N ,A #6+@1*-$0, 0%5
+! "
+)"<    $: #):%"            F^');' 1 ;W#9 &;!40 15O'0J0$<0W75
+/Q3786 2  5    
+!% ( #   
+ 
+  /%   *-"9
+$> 7X1"64R*D '),  ' 1 +*> &.'4% "
+!+    
+  !+!+  !-!1-':
+!3*+BZ-'
+    & -I.R;
+$I 0Y0R$2"?Cm+2 *I%@Ei*Dd-;W+¥jQm?1+/D;Y&<Z'(A 
+'%;   ! ) && !1E^97N+Ic72J $ &$;!7 # %!%3 (>9S-D"6 + + "2, +   +  &!/
+'7 1CBW%GY#fy;Uf4 
+.>   )8        +1 
+,C )?
+,A )=
+!4 32J-C..A
+
+
+  $    
+  
+ # & 
+ /-"1 '6 *
+ !$   
+         CZ%);!+;WDb >Y0 )   -+C* !A :4
+"?+ 9#>&B- &#=      1' ' ' ' $ !
+*,  
+ 
+  
+#8, #* /,I!:
+"= ";(C 3Q)C -1
+0 %( +  1+ % $        *5'3!. ,#4 ,(#4  1(; %@'+F '@ 
+";)F%A)    
+   # 59 3#G 'M (G# 1 .Q'E3U-K2Q 6.+@':+! =T)]{@'@#:2#-
+&%;3      . 
+ 1BZ6%8+@ 2 -5
+'/ ( ! , "6 !4 / "2" )  &"&#&5 '7%4 +
+"9Icw9i{C
+'#')&%3' * 
+     
+ 18    + 1.E 4M1I0E +@ ';*@4L !4'9+=!$&1 !!   
+
+   
+ 
+1B ,; 2B ,95C DS9F L]7E -:2;ajLS;BINAI!' 
+.B /1B%3&"
+
+ 
+*'9# 
+             5J. . 8RMk(7Q
+ 
+ (
+4#D 6, #!+   8 ,G   
+
+ 
+  !  
+%
+     '1!A 4#? / "=+K+K'B3 -G+ # ':' !3$+/ 4 '0#,#: 4
+ 
++      +
+  1 '&   #(>-D#5 1  
+)< *= , 
+   
+ 
+ -#2 +%!''66J ($32D
+/> & &6#3-!-!-    
+  -= -(* + 
+
+
+   '5
+#8"73,@ 
+
+;U GdRqLj8S *?*,A ('#+B '-.!*%5
+&6 #
+
++ *:-> . 
+ 
+
+- +?:T=X#7 -'K :
+1 &+ ('C.M!; #= 0
+
+  
+  
+  
+ 
+:W'4 /": 1$501 3+     
+ 
+"08 "( - 3 7 2 1 (*C)    # 1 &@!!$3
+/2 &  /)  ! 
+ 
+
+!- )A3
+   
+ +1I+B;U(;+ !
+' *    #(:!1 +3E .
+* 0=ŒšY+3#0 2G1F1J$:,+.1I >W>WDZ1C 2C 4D 3E !
+ 
+  1 $JQ$#'   
+
+)5 
+ 
++&(
+  49
+ 
+  ( 
+9F FW,9 *3@,6;E?J:DM^!<K+; $3!2+?2)'>*A -A !2&
+
+
+%       
+#
+! ' + 1
+2Q7X++I >b.I(?-E'=# 
+  
+ 
+
+,J "=28!:# .(?. #        #+    +
+(-1 0 /    +
+.'B # "#; "9
+.!7 ' 
+8J .>Qi:N .@
+
+
+%0  *
+ *1)1  * :EXg&Xc!AL/3 !&+2 /7##    #+(6#4 
+););6OB^ 6O'<) 2+ "# $( , $2% !
+
+  
+
+ 0A$3      
+   !5MId)+C 
+
+"%E +M ,&! 
+6 'C4 /4 !      * ) . '  &
+
+   $   # )
+,%?=_1#? :'?/ 1 1 #  
+
+  ! !-$1   
+
+ # (
+ %#  
+ #8#.'1!;!;4!;+#2
+ 4#8*  
+    
+$'  &-3
+7 5 !4 ) ,A  (*$? 1& 5*C5 6
+$
+
+
+
+00 . )$"1 5 !6 !%. ': 3J&9 1 "2
+.++
+ %/A'+ !"0 !*
+—XYa1#+ /<+9 1F $6,"6$71F 1D
+%5,<.>F]1C 6J #3"1#1"2-"     
+  ,.D-#+)1 RX!  
+
+   (1 (68I%6 
+!3':,B1I3L5O8S5O1J2D #1
+  ' $ Qg7  
+.#85Q%3-
+*
+  ( +  !3!6.G-G=]1O++)A!5 $:!6"&#& ' * 
+
+  
++ !0 ):$4'9'9 -$7 -B 
++ !
+  
+  !
+  / #/ -& ! , &;2L 9
+.'B#= 1!2 !7 #; # #  
++ * ! 
+
+ -1 "6 "(-+@%8 0+> ,@ '9 +> 0    #3( '$ ~KxyF+. <F1@6I(92I 6M #6&9,>)#''8%6BY6K >S<Q5K'8 '8    #"!#0"3!2  
+
+ 
+     &+.44949!#
+ 
+ 
+"! 
+)@-#5-): 9M'+!,".&1.:-9
+$7!2 &  
+ 
+   (&5  
+  ,# <Q$  
+  
+  7Q 2) !3 ) !A/T "A < 6"=   
+    $
+& $
+  # !. #9 :X;Z4S 
+'';* "(:) )
+'  7J!%    
+ 
+' 2DUm1Tm/!1 /
+=S0E0
+
+#:
+#(D3!        # '
+'%"1
+) ,*   '   / ()/"+AYBZ-A-@ !1     %## $ []1‚„N!# 48EQ7F>R7K 1F
+.C !'/A '7#1+:+!1AX,?3F ;OAY2F/ /% 
+
+*= +/ ‚‡B35
+
+<Q?S4F 1?3B +;
+7C1F 9O!2#4#2%#3#3+<
+*;#2$81+$70E*#'    
+
+
+    
+    
+. 9T 3$#  0&7.&D
+6(F 
+!* $
+11  # &<1*
+(1
+2 (@1G 2(  #
+
+!   '>'>(18W(C +&@.+' $
+32 8'*E Fi5W1Q!:
+
+  
+ +    )2 
+ /B 0!   ' % '     % 1
+  .
+0  #/B!1 @W:O"3C[#5 
+"- <:ÇÄ‚#& +.=DAMG[8K>U-)+.B *= 9L5G'<&:C^4K 9N 9M ;O!/>Q%#
+!%) 2?.
+/B&+  om<UR.       
+# 
+ 
+
+  
+      %#. %9/ .  )  
+
+1G#6 +@(<!1 .
+', 5O
+<X 3L ,A 3I3E'5+ 
+
+   !<[1Q 2S
+6  
+      
+  
+&
+'!) * ,
+(!5
+$#9 # 
+ # .*#    !*'%, #   0
+'7L?U1E ?W,  
+86ÉÅ„69') <C#+!/
+
+    
+  */%4;, 
+
+-D '<2
+
+#
+ 
+
+
+
+    0"9 !3 4T+ #
+) 4&0144!; 2R4     
+) $8#
+ ' 0+ % " ! +    +
+4M=Y*A%<
+9W.I +,$-'!7
+#; 3%= 2N%,%9 + &#9+C*@(= 1F.A0 %#7 #7 *%%6X 1S61N &
+5 
+'@ ,
+*    &
++,G,J /O,L%@1 "        # 
+ &+#!#)
+#   .2D 8L5I %  
+'+%+%
+
+
+  
+ B=#‘ŠY*'!#
+ 
+
+2121 8= @FEQ MY'8+AW*+8L/
+
+0C-)      %/3?&!#(0(<#6':':  ,   !-
+ ! ) #1#0 &#1
+'6 ('!1 #/D(-!,0 '
++*   
+*5R!2 / !91O
+
+
+%+ 
+ 
+%?8Z =b 4W 6+ 
+ 
+  '   
+   (/ + !# 01B E[;O'8!"3 0 (<+"2
+$5 +)+;!'1$
+'  œ—i99   (<
+1F3LA](= +@ 0(#!2!2':0B (!$""*7 & 
+(2'2(3 r‰=r‰=3F) ,"3 )'/+7'
+ "+6 !*$+!3"4!
+ " !
+  %
+(!0 -" +  !-B $-*-
++
+2. 6T1N#= 8 %A# / 0 ! !%E16',,#= 2Q$=        
+!    &.#8*   
+  *
+)?;W1K323..#! 4 "!6!6
+
+/ "2 /
+!1 *=#5! -
++ ": 5/0#@!94R0L%> *(
+
+ 
+
+
+9N/!(> 1I !7(+++#
+ "- +#
+ !-!.#11C ,>%5 2+@ )> :S*> 0E/C/!&5 ' '  7C!! •’m34 
+,F
+
+
+  
+
+ 54f_=‡IYU#?D3>
+
+!
+,85F /? +<#.B
+?W-)-E '=1"91#:    
+
+#- 1 #7
++ 
+
+# !,     
+    
+$8 
+
+/+#;&> 13O - #<.K6
+!: %A(D1 +
+7!;#A&F #*,'-3 %?2 !    (7 2Q!9   0"52K7R<W"6  $
+' !!*A8S,E#:411 
+
+#91 + 
+
+ , '#
+   
+
+
+' -@<R2G 1 &; 1I *B'?. !6
+7 
+1 !5#   
+
+     
+
+ 
+' #   
+!6F:K2C<O@U=R4L+A #6:S-B 1G)< !"!   4@+)Œg>?#
+
+
+ .!!,(5 )6 
+ 
+$    94¯¦fNK/3 !)$%9!3(: >REY#,<' #$%2 (6 #0,: -:&1 +6&1 +:&4)8)8$<QBX#4#"'!  
+
+
+ 41FA94 73 EA?<EB67'(#(#)#-(3%1B
+8L ):2E 2E ?W#5)>,B
+7R*A !7*C %=0
+
+ 3)0'< 9S/1!*46.$,(B .I &> $='.+F1'E 9+I7 '$@ :'I%F'+/ !
+   
+
+ (E +I!:     ,', 6.F
+.  
+ 
+ 
+   $   '0 3 #? "65R# 1 ,I0O*G.
+-/7 #B 8$!7 "-1(B 2#
+    
+.?
+=R8L :U)@ 48S$8#5 1!   
+"+-,utXKN2   
+! &
+ 
+/E )>)>'<C]A[3I;R D[?T:N'71A '4=N>Q*:&50/0/+@%8
+ !  '-=!1!1 01D 7N $7&9#6(<5L ,A ':'*>;S$7  /0'7CXCYAX0F1%8$7*? .C )  %'"8'
+
+  
+   (!(#'=5O#9,!5!6#8#7+.#7)? (I :+'0 <&D'F#&3
+2Q1+J#&6 %!;!"A9b!B ,#;
+!
+'   0 
+   ) "2- !3
+#6 %9
+(> *@ !4'   .
+&=/
+
+,'!1  
+ 
+   !   #  1-I 
+ #) '
+ !
+    
+ 
+
+ 
+.<3C&4%48L .@+C
+"7!6;W.'!3/ 
+'.-^]DSW9
+( "& 8 &! / / -1E %7<R''!%  +' '7 
+4D $15E '5#27J
+'9'9!3.,B';
+  #9 5.*
+8<,2 
+ 
++>1E 2F E]9Q,A1G &9&9C]@Y*>
+ 
+
+ %+  
+      %='+I7Y/'A-)@' 
+!.#
+  0A(  11+ 
+!8 . +#'.;]&7 &7 )%#8$1#;8Y 4#@#>$B86
+ 
+
+ 
+        
+    
+:T A]'>#"8-E(<(<'%8 $!*$
+#1/
+.
+
+
+!4 #8+/(@%:%9+8N?X*>"
+ %/!+)'#!1,>'8 /(%1,.*=8 ^YKE86 ]Y#LKdb+::46
+,D*A%:,C 3K 7O': -B .# 
+
+ 
+
+   
+ #
+
+- .
+2
+$/2'D &B
+4"8.!5 0  '
+   1*    # /.#3- !)!1 &      )B#;(D2 
+#0 !-
+  '7.
+0+@ '> ) 
+8
+    
+     # "')0?[
+A_ 2M9S 5N '<+?*"//  (
+%6
+      
+"$*
+KY­ÅL9J J^ =Q)98L ,>2EF]#2 
+3. 50!3
+@T2B'#
+)=&2 0>! !!   
+'
+ 
+
+
+  % 
+
+ 8+#>2.#
+?b<_@c6Z-M 71) !
+
+  
+  ##5;S'=<W =X -D$7/,#3','!
+
+
+
+!.7K =UAZ6Q .F 1K)A #6 %  2'  ++',/C 9M%5"19M&T_'{Œ>5@
+
+3E 
+!303.!4 
+#!+ /;E@=8 :5
+ZT[XYUmk$KJy~-{~1io)TY 16 
+
+3K,'&#5 . 
+!&71D  +
+ 
+
+ ! #
+  %
+#7 12 45Q /I +.!#6 * 
+1#7'(?!5   
+(F
+ ;4(B (%#; '>!6 + 3+    !#8    &
+ 
+$ (  
+%"1
+#1 "  
+11N1N $>"</M Ej@c5W .1*G-B &#7.
+5Y6Y5!<2G+<        
+    #5<T8R
+B^@[ -D)  
+
+#1 " 
+
+   
+ !' # ##+;Ebr$2>
+
+(8"')9Tj;M!- 
+
+
+ 
+#*3F Lb5G 1@AS 2C#11
+
+.> (7 ' 
+    
+     # '  & ,
+! $8
+&;!6)@.G,E
+'.-#>
+7&C &C 7&E -$)% 4 #='
+"
+(
+
+3 &=  #'
+ 1  
+ "     )+D%<-F!5 !5 ,
+ #* )  . & "0 #%( !'7 !/ &&   
+&?,)B
+, 
+
+R{R|Kt0Q&C16'ELu$8"54L -D.-3O &
+(C 2
+    ,':';7O A[C]3I .
+
+ '8   ' ",
+)3C LdIa<W6N'= 0!4#8*++#6.+A 7N :R9Q1F ,>-?):-+2 am/„•D'0
+(#&$': %8 +' 0'
+!/=O5F +:'6'DXSg0? (5 ((%1$1 +$1 #'/&:00);
+"2 
+
+
+    
+.4$1! 
+   &8 !& 
+
+ 
+  
+'"( /* / #;!7' 0 #<!: *E$? -L!< ;0#B"@58* (/6 1O 7 & .-#9#' )1 ( 0#
+     
+, #  
+ +!1&' -)
+&2)6-=*:%6 .B#8(> (!6(B+3 +%<
+//7Y DjNw;^7Y Jq/O@f/O3U
+7Z Z‡Cj9] B]-C
+FbYy:W 1/J 6'+F(D#<5*#%= "4 ':- '
+#1 
+ ( '6 !,%8"4"51G .C!2-(#&2(@ -')   
+ )"
+
+# 
++A 3!40G +A
+..-1#.D %8 1%8+@(9$4 /%'. 8ASa#$- 4D")/1F)=  
+
+   ",    .3>C#*.*1B
+)8#1$2>Q3C /> /= '3!-+ 
+
+
+ 
+
+  !%'9 "1&(++=AX<Q <Q /G$    !
+  
+)@,D'#7!4.': 4J=T!3&
+/"4
+&9 .)+  
+% &>'?%>(B'B&@+I#=
+/N)F &B
+/2/ >6])K !?
+1U*J1'D+
++ !&'## $  
+
+    ! (
+
+0K,+?'7 %4 ,+"
+
+EkGnGnJq+I5W *G"=1R
+OxJq;^$:&<?]Ed:W .GKo4S 7W <[,F '!  & 0
++=&+ !/  
+     
+$3!/-###,CR0< 6F2B 1C +; -?9M 0E
++&/)#
+   
+
+
+   #
+ ,>"1$ 
+
++ ,)+#'<M4D*8 ,'4 *7
+! 
+Ri+:
+"# 
+  
+
+
+ 
+
+!/$2#1'6*"26K
+1F /D /F0'$   !.  !1
+. 
+     !
+#72K 9S 6Q
+3N.G'
+ 
+ "
+  3
+
+/L 0L 1,F 1L4Q+K#@5W /N >b&B7&B.M"=2%
+"9"+ 
+
+%9
+7M7L/B ?U.E 0+11G.
+ "# #,
+   &0?I5B5C MbBU.C #6#+..E 1
+
++': 7M*=
+%7,!*!/
+
+%
+  
+
+    mo5dd. 
+  
+
+     ' bo5a^#/.KKIJ RWt{FRGSN] Xg=KZjQa>J$,    
+
+ )8, #*.
+'7 ".?-'=1J ,D2M,E(.2J D^,A .': "5Lj1I ))'< #7
+#7 +$7!1M1 , +E/.L3S0N#?
+,++J $B/+0; 6Z9^:
+&D.N'
+
+
+     %##/'
+!5"+; '6.$6  +
+%1 #
+ #4 ?X>X FbGc1F C]6M 7N C^+A7Q #  
+
+$#(2'1'1AQ2@ #!.#5+': #5 
+/A &
+
+
+
+'#!
+   &-*3 :F5C WiRc[]@A IM]cQ[Q] Sb @M>N4BBS RcAR0< %
+
+/A' 
+  $  . ! 
+
+
+!/)8
+!.';B[/E 36O8R $9&9.C *< 1E"2$6<T!3!!40F!/ 
+ "&>. 60L. 9
+22$@ :-3&D),!> 3)2!= 5Y3U:  
+         &   4
+4'< 7Q,C )&5+(
+
+(D";1O ;] AdGm;[/L 1N 8W2N4QEf"<1Q (C 8X4$>'A )D
+";0 
+9X?a/L ,
+  
+   
+
+1IFc%8&8-! 
+:F 6B JZ<K )85F :R;S-B-B"#4
+('"" '
+6C +6+6,8 $/CRScGW0< #.'2')+ (!2/ + & $ 
+
+1@ /> 1@ '9+%(1*?+=+%5!$&2 $!,%/= "*
+ #(0+5 9E7E DT<K DE@A @D OU]iTaESDRK] 3A)61>;K 9F * 
+#)) 
+
+ 
+' $6#;2
+#= 7 1*F 9 
+ ,%1 +       
+   ,'*%<
++'@3K +A -$4++   %'!2':&:*
+'#: !:./$?*F'A,G
+;Y&:
+*+ $5       
+ 
+
+:F 6B LZERLZ=J2@
+4B /@7J &9 &9  #4 ##    %". !, 5D 3B 7F 2A (33@ )2'+5'#1-= :N 3F 9S 8R 9N '82F "2.@I_1D
+Kb6K 2F 0C.AY Ib5K.B'<,$7&8'9 '"#+ $+4 ,4
+jw,'4 #/ ++$1/= !. 
+'90*&7.@'7  *6 -9 ;I.</=   
++79FK[9G
+#/"-7GBT+: #"*6I
+7J
+$4."1,>'8$3)9)8!-* +( 
+ !'6;(-!%&=F
+5B
++6!!
+
+
+ ,/>
+5F #1'0E
+4K 0F(=-D6O4M-B+?/"2(:
+%
+
+#5&
+
+1)0'    
+ &
+   & ) & *B 6!8#6"5#2(9'71% $2($1
+",=
+#6C]IdB[5M%9 1<.Q*K3U Bi1R'E0N:Z =^Gj(?'/F 1I1,,6S#; 5 '@ .I*
+
+( 
+" '
+"*0; 3?/:BOAMIWFTK[IY7J EZ&'  !1 '&#!'#/ ". ) $1 4C >N AR*7 
+;R )< 13L
+)?/D
+ 1!1
+ 
+
+
+##''+4:1:@J 9F 4@ !! 
+-=!
+
+0F-C*@6O?Z 3J /D
+,#*
+)"; 7  +2 !1      (  
+!    
+ & .,' 
+
++A !5 1#3*7 #. !,'; !3
+1D'#(7)8
+2E +<T=X<U7Q9S1X
+BnBn6^ Dn1U
+1)J%A)E9X8W$:#80G .E '04 #.I,*C&> '? +E' 
+'+E0K2# 
+    " !0 ' 31J,D!2!1(: #3,- 3/F+<8K <O F[.?6I /=)50; 6B "+!( &  
+
+ 
+"/!*!
+
+FK=A,,++DD7:/3+0=F+4
+'
+
+  
+
+,> #3/B:O 4J9O
+8M #30A )8  '6 *: ($%7#5"3 12G 4J /E $8 
+ 
++ 7T &?'4 6
+*$3 7   $ !.  
+   
++ 
+   ! )&   
+5] ,Q!A&E+
+
+/" /5R'@ 867 <$>!9+
+    
+
+*2F3G!+$#6%81'%6.@ +<%4,< *8 *8 
+
+Oa# 
+ (.") %!+#!*+5:D1:KX ^m=J
+1=5B
++5  
+
++1=F-7 $  
+!1D
+'8#!.( (&&1C 1C 7J#1 
+*#*9
+3E / *&8-"3'9.D ';   !*C$='!91N/)D%!     
+ #   
+
+#
+
+  
+  !" ' !, ,@.E "6$9 #%"+  !
+"0@,< &)8
+-(<7N )?+A0'@n+R+R"D,
+
+#8 
+    1G ;X+D+D/G8O .A!/ * *-(;0E
+AU8K .?)96E &2%18G 7D @M%-!( 
+#1$'DNDM "
+./
+ 
+"4( (3'1''$# 
++<%5.@ /? 
+7D
+   $(W_2]g1co/1< #,(1".6>GIXBQKY WdKY;F 0: *2 
+
+ !+<Q8M -+?%5'7.> 1A!
+ 0 0 
+        & "  
+;a+G0N 
+3% 
+ 
+     +3.6
+@N 6@CNDOEO
+@I ak Zd?LKY@Q'3"7&< 4++*+!2.A "+  
+  
+ 
+  $/0$.:
+'
+ , '2A,: #1+:,<.?'71C'''7)0B&6!0$4$2!!+3&- !<J +7AF(y„Mak3w„<0: +4 1; $
+
+&- 1>2?%/'18D ,6##+
+7G+9 #0
+  "#*+@;YT TO
+731/:; 
+
+' $1 /? F]G_AY 3I#!*"(7 %4 /(<Q8L (9'(  #0&'1A
+5F , 
+/@):+=-?Og7J(8$42F AY <S +> /%
+
+
+      ' 5N!.F*+(A +:)8,? 1 !1
+
+
+
+
+
+      -
+%4 .?'7 "2C,<    
+!72/:Z)D #$@
+!< 8+'!4% 
+ -!.*$! 
+
+EK%QY+
+  ! &#
+
+   # 
+!/
+, &2 
+ON/|D
+'3+:/>-?4G#5:R4L!3.> $!& 
+‰Œ9qr.69
+ 
+
+
+ 
+&$4#3-&,C*@0<M]9F BO0=
+@N?O*'4  +
+"1.?"
+ 
+     
+
+
+
+' %4,+ !/ ,@E^,@ , 
+ 
+  
+   &+< .  - ' 
+
+
+   
+  #9:EI SQ FD QN XS UQ tkum‰nfmkyxtt{{~…!ow•„ ‡w‚r„rwg^QNB
+M@ dXaTaTi[ncwk ‚w$‚+ž‚%¦Š)¬’.¨,žŒ*‘…(~w kiWZDLEO>KAQDT,= '6):'8%5+<-'&#1 )6 ! (    /5
+   
+ 
+ 
+  %%+# 
+  + ./I!9+/ 
+#&
+%1
+#
+    
+
++
+' 
+
+
+5L 7N 1#7 2!4%9!2,&99Q)= 1 2&:%<
+&< !9 . -  "'&'17D.A ,? /? #1') *'    '!5 #65T4 %*=-A6M!2+'   
+" 
+ )(      Md!>S-?) 
+
+2Q 7U1#*E
+1M1-% !- "0 #1 
+  
+;C5?*5+:(5 
+
+ :C
+  
+?>55!%!'$+&1!+"1!/&/ 7B
+
+ 
+
+ &3 1A1B'7)> 0"
+<J 1=8F (4 +!+&3)6 !.'(
+
+1I 4K 8O /D #6)=:R4I
+7L /D
+(;$9 /%$+ *%&6B '7'6'4!,
+ #'/+/!  ! '.E+@. 
+
+  # 
+ ';NMd!>S;O'7  )*#  $ (:!1 !! %.$*A/OFnIq<a 8[
+=b 7Z
+#? 
+   
+ #% ,. :?GMNM~|#~„$_j;E !+$ #. #+ *0 ;AUX”š9¨¨C¶¨CªF¸£@¸š=µ™7µ™7ÀŸ:¼œ8Å£<Ÿ:Ũ>ɬ@¸Ÿ;­•5¯š9³ž;­•)¡Š#—…!™…%—„${#Šy"{&žŠ.œ‰-™Š+”…)…y!ujogtk‘y…orbjZnaqgkd[ZOS3:'.!!',)9 "!!-"
+
+
+ $+
+    
+     !+ #$,7 $
+
+
+'1
+/@#1&/ <G");A ?E  
+  
+$6C ("*6.:
+'4%1+; +9 -?* 
+!5K*= -)<+@"4/E:S $8"5#6&9!2)+#5'9.A';#5#7' -* 
+(8:M /=$
+
+.+  %&>2O =]1 
+'5D'6F#8N+? *#   
+  ,G[Wr"=T>X<U&> (@ %@ "" 
+Cj ?c .M.M8Y
+*F-#
+#
+
+
+ !!' 91MD mb~r{twq{u„~œ‘'Ķ;­¦0wx;@ ' * &,5 &(,7; >? adnm±‘CšKÉ¥M¾”C¯‡7¶‡8µ‡4º…5¼‡4¾‰5¸‡5µ„3­1£w,Ÿx.­„5Ÿ‰#”~…qjydt_n^o_™…'{!„ur|oymyqw’~tugndmfdbYZFJ 8?
+4< !+! ))!, "!+$*% 
+   $
+   
+          "  
+  &#*4@%.#6@ Sa1<7C % 
+
+
+*9
+&) 
+#1"0 !/ !,
+
+(=.D,B!4"5#7%8':*=,@
+/C )9)9!1!0+ 
+"
+=<NING]R’…/—Š/Ÿ’.£•,ž•'• Œ…‡‘…"—Œ%|wYZ *.
+<D (2%$" +0>'#!)&2 !,  +8$1   !* 
+ 
+
+
+# 
+ 
+
+   &CQ.9 :E+5 8C*3 -6 ERJXN]*3 
+     OK'NK#SQ!WT[Z9>"&*24B:F #0'8>,5 +0 RULN moIK UXNOWW[]__ rt/jk*^W_XLI bdDG ',
+
+! -3-4/7*0-5,< 1BCU-;( !!   $ %
+ )1$:+@+@':#6#1!.
+
+  + )8
+'3(0?ILR Y^FK
+ -
+$&%+C1K.I.I1N%?5"=#7
++@C_EbNn5O -G #: '=%9%
+   !:*E31*2    $6 %8 $!)!, 
+ 
+^S
+g[mcmckcdb][QT?D 19-7'!&&%1 !+ $!! %+"  
+    #((#
+   63?=^Y.+WTJJ
+[b1528*1 
+'.'0608OUMT oujoYY UU ccTW
+TU WZ^binUZc__[USXY DI&+
+;O-,=
+BU+9 +  (
+ #0 #/
+"",; 5J); *"% ) 
+
+ 
+   # '0  
+    #0; 0; !* 
++A#6!3)>5M
+'<'+?0E /)': +? 12D->+<%3++#0!. 
+ & 
+,A2I)="5.3R
+'B(
+3
+1*1%;1%;1J ,$
+
+f]|m|k•| „m—xŸtu]
+nX|i ”~tgXYM
+kdZY CF@F ),-2+06< /0<= WSQO
+tmSEE5 B2 -5#gJyYŸt$”j”jXŠ_³‚/µ„3Ÿt+­1¥‡'œ#Œrg{c|d{fyduayf|m{mna fY ka xmnbocjaf]f^fcbaX[FL -4!)&'$1
+$##0 
+ ,'+ & =K# 
+(< 5L*      
+
+ 
+'!+#0# *0: >J+5
+7C1<
+)GUaq_k,2BFWY'1/
+   .+ kg-fb*CAfa#52@> MM 6;!
+1B 4F+; 
+  
+
+  
+:;RN ]Y !
+% #
+*F *'> .G-G 9XFi1L##) 
+% "1):& 5=].K #=" &+8/>=T!2 #&  
+ !';Lc{#JbZuDb&<4#<!=9!3.+A
+;U' 3!4#3#56L4K+A ;T.#1F#4 $3$  !
+  #2
+Sk'#3
+# $5   % 
+ +  
+
+ ( '-9 5B&3!  
+, 
+  ( 
+XY @D
+/907:C NUJQ 9=<@SS mmXX ORQS RW
+Z_X_ FL UJ
+cU@7<5 d_!+* 8G1C );
+  9B*4
+*4 '$/9 1; (#3J 5L +?)=8Q >X.D"5--&9! 
+ . , !,
+"( +C1K5#< -K !:$$; (A
+!92+1)"5   ' + -G 3Q 71! 
++> +?+     
+>T <X <X 7U(B59$!4,C 1J "6-
+B?^Utš…Ÿ‡œ|•w•o¡w šq”k’j”m™qšuœw£„+¬‘1£-uj>9
+
+;I<J+9
+(
+3N 6Q '>#5++'$ %, 
+ /
+ AT.> (6 #
+
+GLSX iiuu>>24NQSX 6:$)!%
+
+* 
+ # "   
+
+?M#.*5Uf#-,73;Q]8=FK .-E@A< 
+(-C.   * *@'>,3!9&#!&> ": '%#!6 +>(   
+ - -'#
+$
+&$4
+=R,
+ !     
+
+
+
+
+9E 9E 4B 1= #1
+   
+%3 )),< $2#&/!6('owD[^3
+
++; 6E*7 "
+AGRTSSJJTU'("#IJ^a:< #  
+  
+   &#(; !) 
+   
+   
++> -B ';.($7'#5'9-* 
+,#1>S /"-1;MZ*04;*+GGAA    ' '  2%;2 !8$>3'$#: # 
+      "#
+ /+ 
+  'DR+9E+7 4A $10B9M
+3I-@1I .D 1##-/!*? ';
+$7 / !  
+
+
+
+  
+ 
+I?dZXOd]kaxi ‚mkf‘r³‰(¼Œ1­~,¨y+­|1µ‚4¼‰8¶Œ7³‰5ª„0¦.ªŒ2‘{(qaUMKJ FJ:@ +3 %"#) 47;@45 )+'( 
+ob |i‰t‰r„k‡m…kx^|[xX‚aœw(¯‰4¬…2Ÿ{+—t'‘r#’t$”w#Œqxbq[r^q]onmjmjnkadMO >B8;1817/91<0; .9,9/;
+ '$ 
+
+)".)3
+
+
+* 
+ (1= -:)4&16C
+IX:E 6A
+-8O_:ISd@N ;I+7:C>G7<DJBGDI 47   
+   
+
+ 
+
+    ' *&-+   &     #( %+ 
+
+'!+')< 1F 
+*6N_,9(*:!0+"1$COLY/5&+IKMM33    
+%1
+  %= !5
+ #   "
+ #,&+ 0 )#'"     # !+AQ+9<M
+J]DZ5G
+.@ *: (9 0B/E$8 1G)> 2J8QB[!2 &5*" + 
+      
+
+
+?C QRXU‚xŒ{aN oW Šm™r•o¬*¶Š0šq&”k$Œc#‘g%¦y0µ‰;¶Š<¬6¦|3³Š9Ÿy/„g!~b‡j„grYfN~#qodcdc[_JM 49)-#*&--88D
+7D ,8".*%(!/, 
+8: 7> #,+8!0,".&2!-/=)64C
+&5%3#1#0 
+   #'1 '2&4$2-=)83F '8+1E=U @Y
+&:#7 0(5+9+48A @E ?C @D   
+   (%! 
+
+'6
+(6 +#3D"1'*' 01E /#2+*7 '1    
+  
+  ( !. &
+  &% $ & !
+ 1
+%= 67'B,  '!6 !"    +% -2-,#3!$4!1
+!
+
+ #+ 
+
+       B9 aRj™ ž~¦„œ{”t‘om•r!¥y)±„2¸…8º…=º‰>ÏšJתMÇœDŸ0‰n"‚k‰qœŠ)š‘+…%^^+0
+
+8J@S?R1B(/? 1A#1)1'<2C#$ ‘Ttq?5635 -3%1-?*>
+1G9I 8G 4C
+6E #0'+.> *#1 
+ 
+
+
+
+    
+
+0@,('5 ,; 
+
+   
+ , #1 
+ 
+   
++,? #4 ''0#4!2.B *< " 
+
+ (''!+ &!24N
++C%   
+  #12ATf'3
+  '"'!%!    
+    
+##2/<4{k‡n„g”rœtª|¡uµ‡2£w,—m'šn+œm-Ÿo1³=ÑšN¼C”B¾™?±”7—…(qjaaX b[YX XY NU
+1;!
+AN ?N 3A+9,:/B*<<QI_/A -!1%4/@ /? #1+: #0 "/'</E%2%RL&’ŒN?=&&#
+
+ 
+ 
+
+
+
+'4
+""0
+ 
+   #!''##
+
+  %/ 1 '! 
+  #   
+   $4$1 *:1?7E/<'2/;CSCQ1>+8 &%:)?
+ 
+  
+       
+'+69A@JE j_‘{ctY |^ uS Šb £w¼6¯2³„4Ä‘A¼‡>¨w6¯~;Ï™M¼Cº>¸”<Ä¥A˶C¯:Ÿ”'…{d^BA9:LS XfJZ9K 5J*>+?+;#2+
+* *8 <ICG11-, # 5/LB ~g~d¥#¡w Ÿr qFG'rFŇ9ÉŠ?œo,À?ÓžLÂB³‚<µ„=¨|9™o1¦~8¯…=™t/—r.³;ª‡6Œn$o%‚)qn []QRFJ @C AF FL @J =F
+AN KYBR -:*'5J +>0B 0B (93F >S1C #1*$+ ,+"5-<  #! d^2¸±jWT##
+ 
+
+
+!&" 
+ ?6<3
+0>%$
+
+   
+ #+((!  
+*? /%=*);3G -@+'!+*6 
+  !,'
++ (0$!2
+$5 &2 3C@M8E1= =K.: &/$/'9 #4 
+); . 
+     & /@&5 2FOgD[G_D[ 4E_w^q5C;G
+"+
+    **7#/# 
+7C =JDQ.7 %- 
+0A+<&
+KJJCYO u]„b¨{(À3¶‡/¬|+³5ÂBÉ”N¼ŠS¾ŒTÇš^Äž^¯’I­šC±¡<ž”3JT6? 
+"-9*2 )22: 7?:=GF [Um_‰r*—w3Y=T7jD¶„9ןKÉœMµŠAª;•IËžMŸx4…a$’k+µ‰;º>£w.ߪNÀ;¦y.’g#”i#nj_a@A
+>C
+17?K 1@ -? !2#48O8O4K%8 %:%) 4.0%9#4
+,
+(    $2 2.#!%1 ¡NBR%#!%#&+)-+/"'',*1 +2 +5 1< 3C4D 0!1%7 /B-A+
+  
+'     
+  
+
+( 
+
+.+;(8%3&2+8,8
+!+
+   
+
+#,&9 ' 1 / +*8 7C;I?M.: +7
+1<!)$/.A8M,  0E 2 
+#7(>%! 
+
+   & '7K :O CZ <R :LDX EU @O 8D !*!*   
+   !%03*#-1= ?K1:1;"*>I:E!+$.?LIU?K+3 ((' -)   
+6J SjMcMc>R96YMfU q[ t’w‚m…uwrnoag OT >=4/4-@/|[—m!­+µ….¶…1¼‰:ÀAÄKÍ™^Ïš_Éœ_¸”W¯’I³ŸF™Š/c[EO.6
+
+!3%-2K 3!5*A$91+
+
+ 
+
+5@K[ )1 %- &+).:@:?49 #'<EEO=I6A4D7G3G!1!1
+
+
+ 
+
++. 
+
+   ,
+! #     
+
+3E,=-=6E 5C #. 
+ 
+
+      &$!!   "% . (! /
+
+  , - 1F@Y 1
+"
+ !/ 1>)6 ".=M#0$ !*+= 6K(  2C&4D).=#/E
+ #+37A#7A## $) !    
+ 7? DN ;D;DMT AGGL fjRS78'  
+ & 
+%..8! 
+ 
++4 +5
+KXIX3@ IXRb)2'#+ #). $6>TaW_ cm U^ R[QTd]t!nu^c…i|gxjgb giag QW CC?:A7E6m$•m%Ÿu(³…1¼8¶‡8ª~:¦y?¡yF¼‘XÏ¥d¾œ]¯•J¥•?of/,Q])1
+
+
+/@ :M%4!1+=,>%5#  (
+     # !
+ %
+-6 " 
+ 
+ 
+           ;;$26   ! +; %$  ,*
+    "    
+ 
+&' 
+  % " %'0 
+
+cm ^g Yc di mdr!|jjTnTy^r^ dX a[ ^_ U[ MSRR aZnar^¦0šq'™o%³…1Ç—>Ä’?¶‰A¶‡I¦~JÇš_ê¼wÛ¶q¸žOœ:ri?<(1&!##+5F&&$0 ' ) $0
+
+MNTX]Zon„!¥•1¶œ?œ2ž|1‰j'³‡:ª1ª1Ÿ1¨‰6™{.‡k%Šk$‰j#„f!Šk$•r'¬…2œu*£{-Ÿx+¥|.±‰2žx)‚{![ZON ;?GN 6?=L :M %6 /1G 7M'7.?
+9L/@ %4#(%5$4# 
+ $/!+ $6 "3 
+$3+(5 # 
+ 
+
+     
+'-1:""- &  +* D?1(     
+
+
+
+" 
+    
+ 
+ &$75#EE,AE+','1';J'8J!*  )( &(
+
+ 
+  "   ;6)$ $# GGii!jkQT nka[b]MG
+A<YQ=5' "     !)'
+ 
+ 
+ca Y[
+MSKQZZ mfuitawWgJgJ_ Ÿy1­„<¶ŠFÀ‘OÉœa¼•ZÀž^¸Ÿ]šŠ>x+kgQSS_!6@%/*4
+;KK[ AR/<"+'1
+  
+ *  
+! % 2G6E%1    ! ! 
+9<,1%
+  
+$1'8$4"
+      
+  -+FF/BB("'5@1=+8'74G-<+*8 (
+
+
+   
+8Q"2$# 
+ !!"6/F!   #"#$
+ "/'4
+ 
+ 
+%0 $'
+!*  
+$+   
+
+
+ri xi YLj[kbi_wf~gx^{bwa^R gd XZ
+QWZa iikdcX _N Z?X=]AnO„b#•o/¦|=³…G¼‘X•tAr>œ…J”„:wo&WS8:"$.%/%1 2@4C#/ 
+ 3;
+gu[b[RdZqiwnxo{r…|‘‡na{kmŠu'‚j!Šq%‰o#’y$‘~#‘~#|krbjju_r]|ct"”w#‘t"Ÿ+q#Ÿ+‚f^WWTKI 359=<D 7@",2A *6& 
+'4  
+     #         
+      
+  
+  
+     
+  
+ $"UU;339DGW(1>4F2E:K*8 #0)7 
+,= ' 
+      #%:9RB]-@ !1'
+' !4* !, #): "/+=0C   &3+ 
+       
+  +-
+GMbfLQ ZYNN MM @>?<YUKF $ %+ 
+ F;<4D9OEZJ @3WGUUMM bXn_[JUDZLQG[Y MQNTafgfYR NCRA T?gLwY{]!|^#‚b)Ši1j5‡f7tZ.xa1…t8‡{1wr%WU15>J&/   ) *    
+YbW[ kWyc‚r|nma
+fZk_
+tgwjug~nuftgj^wkt„{wocfZi]bW [N
+bS wf~m‚myd‰qoZŠq{cXOYTNKGG?A EL>F8? 2= =I*3 '! #
+!!:A:A#
+!+
+#,#) 
+ 
+
+##!,&/'1'-'*QSru#{$bfWn2D
+1> (0  
+    
+ 
+
+ 
+
+
+ 
+ 
+  
+ 
+ $("*
+,:+:1B#2 >OFY+9 !-';L&3,=
+" #$" 
+  
+($95N ?Y'9 %
++ 
+(#3 & +#0,;".A !24#13  !&'  
+
+ 
+ 
+51!( 
+   
+ 17!5<"
+ 
+    # ,& _RNEQD
+SIXG8,QBDD::OF [N B37*D8F>NL?BAFQU
+NM :45,B31!K4 bG_EU=T;T;R8R9O;R?J=F>QMRQ:> 
+QW>E>BI8^Kqbob bW]Ri] wjdY cW{ktdrdYodmbumqifZaU cX [Q ^Q rb„rwfnZfSiiT‚jqZg^d_RNTT:< =C 8@ EM&/JWDQAL;C*1 #)*-,1#' !'#%+ @I17+1!
+#+ ' '0 
+* +)4/<'1.8Ybbmfk^aQS]abfKa+<
+
+
+  
+4M+A$9") 
+
+
+   9C%* ?QDY$4
+K^5E#09J1@
+
+;L0A '#1
+
+ 2'<7Q D_&7  
+  
+ !#
+ +':(="4 +#4 &8)
+ +#5 ';!    ' #2 
+      -= 3A
+'4<I
+,72>EO CM=F !'    
+ +5 
+ 
+ $- -7:D9C & 
+
+  
+ 8: AC BBQQ QR
+EDIIIO[c
+mk d_ _R^QZQQL][BEINNS
+gdJB K=J6 J5 Q;^DgLfKcIkN xX)mO'fN&^J!UGYOWTCC,0
+
+XQ IBD>IB^S rufaR OBfWbO D5Q@dQULUQML:8 13 CDDJ/3 4:<B6912;=   )/ 4;2:>F18Yb+.4 .5 %,'1: #+ $+  % "   
+
+ -/-/!"194=6?*1 %, *1#+ & 08<I0;  
+& 6># ;3)#60 .)&!1+,'
+
+-(
+B>:6 
+
+ !
+-1FL IRS^ CSK[DY<NAT
+I[2D '#
+
+
+$ "5/E/E>W';( 
+   #
+# $
+   #7&9 )%7!1   !3 1
+
+   +"+:
+3A
++9;G /:;G R]GR6? "    
+ &$")# 
+
+   
+    #+"', 
+
+ 24 EGDDFFEFIGZZ W^X_ WUQLZMgYcYTOGF?BCIIMZXUM UF O; J5 F2 L5 ^DwYŠj+šw:¦D™uB”wB‘w@|>•‰9‚*WW/2%
+D8M@D5+."3&;3
+:6 98 -+"#,1 .2$) .3BE13/1%' 
+%+ 5<19/6 #@G:A*0 %+ &--6 '/5?'.*1"
+      
+'/ 191:+3&)0"* & !#
+(2!* 
+
+9381   
+
+   
+
+
+   
+)*11 KOQU;A@FSaXf"KY0; M]=K -9(35C 7E 7G*8&3'51B 1B 1')( 
+ 
+'&=%= /1"
+0 #      
+$   
+   
+!
+. &;/I1G (>4I
+.A8M BU2B '4''   
+
+   '
+!
+''6=O
+@TBU?R=OIXXdZb WW QLXM_TZRMJILLN>B<@B>[RcSdNtUdIbFwX•r(¨5ª;¥y?‘m9œ{B¥‡G¡ŠI—‡9wq#IF ')$$
+NCMBJ?OB_Q dUcTZI iUjWZI bO _M @<22 +, 
+
+ 
+!!' % $+6?
+  
+       
+  84=9!%"  /,41 '$*$UNZWmjji]] jo GLKR_g
+dnW^ NW SYIR9@
+*@1    
+    
+,@ #5! (5 .=#0%,+; +)'
+  
+     * !6+%)$    - !    
+   
+ !% !    )1 2$9,
+
+OA
+ZE…d!_…d!™u*ª„2¦4•o0‰b/j7¨…J¸™T¦L‰y1gbKI
+36'(+!$3 '5(8!
+
+  .:6? C> FA^Z]Z[X _[ ]X qk]W [TdYi]rck]n_qcndmc_S UJ UJ MBI<RDaR jZaN iUiU_M dRUD B>00
+'(!!#! ),   
+.4)0 #* #(
+ &, 5>
+ 
+
+!    
+   
+ 
+
+*'
+ 
+%#*$NG RNTR WU WW af
+RWDKU]Zc QX
+NW ZaZdRZDa4K(')   %@KJR]idk^dQW LR [Zqn|x"…„'yw$oq!{{)ik ^aad>A BM O[4@:E )$"-+7 )(!0%4$6(; #4$&%2
+%2 + -'5 #1,!/ 
+
+
+ %  + ! #"    
+
+
++ #1,(61?#- " "- !+
+   
+
+   &"!')- BLNUNXY^^b~gcqfobt_q^~d|cya…r ~km[gWkZ_OXE ^K{fŒu‚j„kiybfjS5; 05 +1%+!),5 1=(1 &-+3/5,116 
+  ' $#.8 ,5'.& # #(*       
+
+  
+
+  "# 
+  
+
+
+
+)0"*$"037> GK ntuu… ‰‡!„‚|twnr~!—‡%”‚%’$’…'Ÿ’.yoaXf_MG QZ<D+4)1'.8%#+&+'6 %3!*': !!'&&))'!.!, +#84M/E@]1I 1J
+.E
+
+   
+  26 018 ;' ,
+0#&    
+" 
+(!    
+ 
+  #';
++A
+5L ':"1!/+9
+(5
+!  !1&
+  
+
+
+
+* 
+!!
+ ($,'1
+'!+
+&9B1:$*#(.2%)!&&'1 0:$1;!!
+ 
+   (0 )1 &'- ,2#) #'!&
+
+!
+ 
+ &
+3&/# >1%+#(!,%&& # 
+ %&
++'"!'!/#'!. 
+    
+
+ + 'B$?8 4* 
+        %2
+1A *&1*65A %.!  %+# 
+ 
+ ! 
+ 
+   
+ 
+ #+! 0'1)LJNN MQ <@?<B<aQ r] ‘n™ožt ™oŒd‡_—m'±;¬~B­C¥~A£‚B¨?Ÿ5|qUODS 
+icŠ|,…q)„j&nU—t(šx'Ÿ|)Œw'm"t]xa‚j t]kTw^|c‘u#‰mŠndu[Šk„fR[CQ>L 7D +8,9,=
+'6 +: #1
+*7#    ' % 
+# 
+    
+!& '+ "%   
+ 
+   
+   
+  
+
+$&!  
+  
+  
+J@?6 RFYNKB UM J@QGTKWNdZxm ‚wttdžŒ$~„uŒ„‡!‚cbZY CBA>nj‚|yt”Œ™‘’…,’…,”‡-—„,•„(š(£‡+¬/š#£‡'u’y|mSFMCOE>DEK IR .4&-&,&0#,)6 *$"#.$7!2.? 1B *;+ " /*;+< .> ,< 
+ ! +5"4D^ Gd?Z Gf^=[ 5
+
+
+  !1 : 70+
+
+# "  1   
+ 
+
+%  
+ 
+     
+
+  +!(6 AS+: +8'2-8!*'.+2 !$(3 "!'#9 0I! !1   
+
+
+  
+    
+   #!77UY FK[X _X ~kt^ a„^„^‡a‰bŒc™n'ª{7’i3£w=¦Bš{=‘x1~+‰|#|u;I 
+
+
+
+     
+ 
+
+ 
+##
+!& &#!(#,#,!+(!( "'  !&
+!
+
++'  
+)!^SMCQFm_dYg]_Wk_wk~r~t‚wŒ‘„ŒŒ{­5ª™+”Œ#¦ž+¨¦/„‚œš(nmb^ ’ž—"„~œ” ¨Ÿ%•‰.”‡-’…,•‚+”‚'™'¡…*ª.•{!œ$yc|fyjREF=OET[OUFO RZZf+20;
+!*-; ,: '5 ' +. "&#
+
+ 
+  2 )1*- ,315 1&!,   !
+ 7(    
+      
+
+ 
+     
+  "A5]KkZ{dyiyc~^wSnMySažm!£o#£o#¦r'ªu(¥w*£u)œu*—q'„c tU<?
+-2&( ;3
+B8
+ZJjU‡jtYU? 4"cGŒj#žx.Œi%’n+£y3ª7Ÿr1…]${S |T!…]$—k-k(¨5…j#tZaLg ^iBJ'0$#"##)
+
+    
+
+  
+
+.5 
+;U
+
+  
+ 
+   .
+&-)+.58
+&A "; * $
+" $ % (/,      $!    
+/3J 8Q 3M )@(>1., 
+ (&# 2&5 ' !
+    #
+
+
+ 
+   %D5 YJbNaR jUxYuRqOyS‡Z__^™g!ªu(¬|-œo&~[kL^CW= :=-3155= ,7!,(&)##  
+ !& 4714"!
+6#jM•r'¦2šu,šu0£y3¨~6Ÿr1d)‡]&Œa(Ša'—k-‡d$œw/‡k#f!iS|dT^CK2< .6
++4
+'/ "+ () ''$0" 
+ ! 
+ 
+ 
+  
+# ! ("1(42@ /7 $!$/'1!+#)%1
+*
+ ! +". #( $ 
+
+
+
+   
+      #,G4@. WC3%q[!_LSAUDZJUERD A51'D8K> <1D8 I< =3[Oud”+‚r•„(‘~#œ‰(œ„%£Š(‡n’x ¨‰+‘t ž&š|$Š0Œ‰/Œ.’0‘Œ,‰„(‰„'‰)¬£7Ÿ—1ž•0”Š.Ÿ’3—Š1Ÿ’6ž‘5º•1±-™|"­+š~#¥‡'™|!¨Š'—~’y‘x‚ku_xbjXM>/819+51;:I )9),&/.&+#4( 
+!/#'16A
+#,1< -8 #00>+:'5 !;,J8U =[ OoKjC_ A]     
+
+ -#  , $+((#1!8 %</I*A+ %    !10       
+  '1E<T7R ,D+C!510  ')',#   
+ 
+%0
+
+
+
+   
+%8. 90 ;2 G;
+ZG cK iR uX~_ŠdŒfŒf‡b•nœw’n~_oS cK
+[DSWZaUZ=D!'      
+%$.+E?
+<3[N mYgT]K N<yb‘w"‰n!—x*—q*—q*št+œo,”i(’g)•j+”i(Ÿr.…d!”q'Šo#’w't^xbS^GQ;F 7A 1= *3 #,!+##%2 '4
+%(#4-+#'%
+
+  
+   $#   
+' !-##-")#" *%/'1+8 .;!.    
+!0   
+ 
+  
+  
+     
+aK XCkTrZZLwf‰x"š‰+Šx ™…'š‚#¥Œ'Ÿ…#£‰$Ÿ‚"t­*‚i™x!’r•…$’‚#”„"•…#‚…{…{Œ­¡.¦™.”‡%—Š*’…'Ÿ‘1™Š-—‰,”‚ ‘{k‰x|m~„tŒ{rr„x|qka i^ bX
+MD,1,5$/"+&2#0(*'':3I -A
+&6#2 .'!1+"*-;"+#+39C+3;G
+:E $.('*0A2DBW@TgZnaqZj
+  
+ 
+  /%
+#, ')'"&3 !8 "8 )A$:'+   &,$      
+  *< 9Q +B&<)@2.- #((#     
+ #   
+#  
+
+      
+# %"'5 $
+
+;L&5 -!& &#",+5
+,7 *7 %1
+&   
+" &9 '     
+     
+ 
+   $5'U@ …mb]A Q7 wY_E ‰j|_|aduZ~bjT kU kTkT‚ifwf‡u#’'—…)’#—„&•~!’{’y™ ™|‰n™|!‚io”t‘"Œ| Š{Œ|‚x|r|r„y„ •‰&‚w‚&|q’„*„w#‰{%o…uxi„tufŠyq‡wock_qfqfg] f[ bX
+SJ7=5?+6 ))!,,*'-,@ 9O.@ *++<#4" 
+
+
+
+ !
+!( )$" (+ ( + ) % 
+    &'#   
+ # %
+ 
+    !01E %:$9+A2*'
+ "$    
+
+
+
+  /+B:WM cTfWoZt]wY{^uY kR iO oX x_ q]
+fSbg [gAJ/8.7!+" )(! /'6 &5, 
+  
+   
+    # .+&#  
+ 
+
+    #).!
+~] cC{W „_nM „b šu‰f^ ‚c n{] y[
+x] y^ ‰kx] …tŠx ‘~!{ ™‚!’|‡tucŠt™Št‡q~fŠq~d•yy‡t„q‚oykrdtiymf^york|tc]unkcqibcmngjuxbdknbd jmjnZ^
+[_
+bf _c
+ad _c
+TX?F<G4B'2!.'5+='8#3*-0B:K 1A-=4A1;"
+
+  '+> '='=0G $9/-!"  !! 
+0K215'&1 " )'  
+  : 4 *
+ZL iTnXoS fL nS mS
+_GT@XCaNjW]bT_FO=G<F,8$  
+]Q ]Q XG aO TDXG[J mY_M R? ^D iMmQtTwWwSqNmNyYbKfNTC TC ?3G;;E 1:+2+2)2'0&0'0'5(6 (7 )8 "2%
+
+    1AӬ]1?!+$/%,8
++4
+'#'#/'4 $1 )#!
+)    
+
++'<8 >:#'$
+    
+
+    ' 8(>.L;1$*+O> >-L:ŠktY jkJ ”kixU |[ ŸykwW ~_ ‰ixZ
+~_ „g‡j’t|aŠx ‡u‘~!‡uš„!x„qm[Œu—…o‚moYtrZty„q~kxfna fY f[ maNGcZjcjbYSaZ^W_XST WX RT fiSU
+RT EGORgkRUQTZ^ Y]X[Y]SWEM>J;J0<#1'5.@(9!1'9*;'81@@R CW <J ?K /5"(#),17>@EEKRZ AI@JT_=K
+*40<'2;D_k OZGR?Firck dm     
+       "     
+    
+       
+   
+
+   ");
+,B
+)>.D $71 1 #!  
+  $ 
+ +.I:6!E ?1/.1
+#>. 
+A;#I
+ !
+&     /- 93 @:ODWJXFSCcMgQZF M=RAbQ q^^aZZTWAA$' 
+ 
+ 
+ 
+
+[F ^I
+dK cJ iR nW[I kW[O XLC;MI7@18-61:3?/9'2#,&1'1$1'5'7+ ($),%#((".    % '$
+
+
+   
+'%&#   
+ 
+ 
+ 
+
+
+/!'9+J7 M;
+gRG6D3F5dQ aIoU
+œwŒi”omQ„dŠnoWxa i ŒrkUjZtc
+gXtb |m~mŠ||nyk{mŒ|{m~|mrobqr„tn_n_oiZ{k~wtmgb_ZRQ
+IGGILL
+8<CG
+KT?F ?G =E@K9CES :F 1>L[CR @N
+2?<JJW ;F?LKY IUDQGTGTKY
+BNCU =M*9)8-A':.-A1F&4"02@=N>JUU RR II>>ABZ[ dkW] NU NU T^ irJW 9DTbQ^OY [f QZ
+JSSZ
+dmjtu   
+     
+ 
+"  !
+$ +# 
+
+  
+    
+
+
+   !*< 1I (='</,+
+  
+   !7 ;3!D<$ ##
+,  :3'M   !&D!
+' 
+
+#'%!!52 -+2,,'F;M@jU nZW@aI bJ ‰kn¡#„fn]q_iT UCL9O<ZB ^E
+fO cM SAkWcW ^R G?SN?I 5=/82;3?,6",$$&' ,$3*!$##+ $0 &
+  #%q‚B4@ # 
+  
+ 
+      
+      # +G58( E5 N; N< oYQ>N<[GiT
+{_‰k”ok^ y[ xZ ‘tmTi dO‡ncNn^ud
+iYq_
+qb k[ xktfcWi[qj]yjiZ xjobtfm_…u^Q
+wgwgj[qbngc]UQ KF=<431255+//25=%+-4(/-6 #+1<(
+6L:Q
+5K0D0@2C;J=N@LXXffiiUU WX ‘™"rygobjWa bkDQ :E^mUc„‘kwbmR[
+muU] ajnx      
+
+    
+    
+  
+
+
+    
+ ) "% (!
+ .+B
+  
+!* 3(6+3) 2( 7. =3;ALS7??F%. !'1 $. '
+"(4-=-@6F<4
+_Rj]SCK: aJkTdI ^A aC [?bC wT|YyU[ogc[ ]R ZO
+UI NBQ@WE WJ [N ]R
+YN NJLGNLOS?G @I GQBK 19+2%/##'!+!-'!  
+%#!- 
+
+
+
+ 
+   
+  
+   
+   
+ 
+a^^]RO O]GT8D +6%1$0.(&7 )*/(!""!' "%.#$61D ,> ,=2D
+6I
+5G 9J ?Q :LMb<R DZ 9O ;Q ,BC^8Q 3K /F6J9N/=.?DT WR d_mkSR Z_‡!w_gbmdow…ZgUb?J[iq~q‰#Nbbubu]qcxUibw       !# # !   
+  
+    
+    
+   #3
+1F 1      
+ 
+
+  3C+W'O3+1)
+    
+
+
+08,4'1'$%) ,*!'   
+;<%'  
+ 
+      
+91C<JA F>MEaT
+k^ n[ n]
+iX jU u~fŒr{brZdZ j_ f_ [U RNOLNLLJRU^a Za NS X_ RX owMS XS LG[W mgJFQM a] ]Y WW MMBB@?GFNL IG><4?
+/9&0'''& + !$    
+
+1E3G*?7O /E1G0G7K=S 9I8KJZ ZU gbwubabg…oxai]g^io~boguQ] ^kbnf|Sgm kcxg|XkZn 
+   $  + '
+$ 
+              
+  
+        , !1    
+    
+
+  #B$O"K96@ 2 
+      !"
+ #'*       !+CN?< ?7 D@ UKWKQA YIqYqWfMU> U>YBR;XArX#gdYWQLOKTLSKSISI^UZRSNLGDE BC
+@E @E GLBF CG ?C 3:3:18'-#,#% +",
+#'        
+  ')'"""&+! 
+   
+ '  #            
+CJAG=G<FK[ M]CT :I BXAURi?SKR 9?JT S^FQ ;DKX IU CO
+6A-91>:G :F
+2>+5)&" #'# &  
+ 
+ #&%"4
+(; !2!1'9 '9/&9%8&;1I %;(?%>'A'@1G 1J
+5J >T AS >S JZOS WZktdmbnmyZkZk]nTd]n]nobqco]iZtXqm‰(d#Xq_y!WqSm 
+   $  +       
+ 
+       
+
+  
+
+
+    
+  
+                " I<37<8/) !<&% 
+A
+ "'-9 '),!, 1 
+        
+     +3(&& &#/',$(1%G5K6B/7%7%8'1 7&S=@>
+<: =9 B> KCIA @7 80=6 ?8
+A= FB EF DE =B9>?C ;?
+>B >B 8? ;B 9A ,3*4#)         #!
+
+  .+(!!% 
+&
+      
+
+ 
+  #)1 % # $ # ! !  
+DKAG>I=GUgCR 6E<K
+?T 1B6I EZGN 28CM
+JT OZ8AFS
+GT <G,6#.,86C4@.9+4 !%# "     
+   "' 1 "3+'-!20$7.#7-D !6#8$=5'@3K 1J
+/B7L
+@R =R BR IL
+DGW^]d^j^jM]WggyWgN^RbdtfuiudqXq_y!j…'YrJaUn]xTn    "
+$
+        
+ 
+
+ 
+    
+          
+
+ 
+
+        
+  
+
+    !+;, &.85//'!B(,$ 
+
+
+# #)+)+137:
+4:
+8> 5= )/(0         
+ !#"(  OR*+( 
+$1-!$!# %  
+  
+ 
+      &0 &&1",+>1E5I4B1<6>>F GL RUFJ
+?DX_ OY ^iMZ COabdf_dUZ MT
+MT
+MY MX YkN^<M :J 3F ):#19L6I %41C8K D[0C7O :S .F 3+1%;$9!42
+     
+  
+  
+ $$)*++'%)/!7+ 7$=
+306,#=
+-F(A #5)>4G 2I 6G ES6B@O K[NdLb=SG_[wMfAUKZTcbmcngrXkf{"k%^rM_Uib{ Tk
+    !     
+    
+ 
+       
+    
+    
+           
+     "& %*,+(/95+'8'5/ #
+
+" 5
+(.&!  ##
+ 
+
+
+   
+
+ 
+
+
+  "!%
+   &#)*7  &"0 !%(+!+$ 
+   
+    &0 %%0!+"3':/A3A2>3;4<9=DG ;>6;NU
+FOU_ IUBNZ[ abaf[aX_ [c^k_kSdi{Rf3B '8/A
++$3)9 .#1*:4I +>+@.D+C!5,-11,*      
+      + '#"',+#!&2+521',(4#: 3+!4+<*>/? LZ7C <K DTF[BW3G
+=SF^AX:M KZM[^iYc_jQcf{"k%j$YmYmd~!Qg   
+
+#  " !#
+
+               
+ 
+     
+
+ 
+ 
+  
+   !#*--)#   
+
+
+  
+ 
+   
+ 
+    %%!" #
+
+    
+  
+
+ #!(      !&&+)!2+? +4
+ (#&)&'-!.     
+   (
+) (13"6'9(7 )4*4-35= /8*5>N6IF]B[AZ^Y fa idfb_bcfdmdkS^tYj5A+9=L'+.+$-5":14840+++(! 
+     
+     
+$ !#''('$!,,3 )1 !%*.0*&.!1!1$6:N,>1G 5L 4N0I %:-D 2K3I -? CSDSZdS[ZcWbiuguq!cq[imWg    # %'!##
+                      
+ 
+   #
+  '*'4+3'N 7*( "
+
+ " #  
+  (0&"'+%      #%*+&*)-+1#(%!$          
+      
+ 
+  
+
+ 
+
+          !!)((+!.'2-8 5< 6> 09+6=M5GI_IcMib] jdmigc^a _b]d[bUacoM]<I 7F BR$%2)+
+   
+  $   ' $*(!++#).3 $1 "-,+'%,+'-):"1+?-B )@ &<0&;/F ,@
+#3:I <J XbT]]f]ifr[igu]jTan ]n  
+
+! ' $'!       
+ "% *  
+ 
+     
+
+           "#0 !1 &8
+$8 '#G4/ &-(
+ 
+ '  +$"
+
+
+#
+!           
+  # '1 '-9 #.&1'              
+  
+ 
+  
+  
+  
+  
+   
+     %!!      '"OQ;<$$/.! $#""
+
+     
+     !! '1+4)E*C#;#70C@Q 9DSZ>C Z]OK
+c^kica__ccW[ FLcn[f Zj?K5@ DN29"($ "%'    
+                   $.'#)/1&   '(##'(''E9+M !=2$0 ; 2 4
+12I*=RiAQ WiK[ZmUim‚&IZYmd{Qd
+
+  ! ' !#. # !  
+ !&!+ 
+      
+
+ 
+     
+
+
+ 
+!  
+      !- 0"3 2%/1< 22+ !
+    %'1"-'2#           
+   
+    
+     
+
+ 
+  
+  
+    !#(!!'' (+ !   "
+  
+  BCST''##)(*)%$!!
+
+
+    !*,5'C.I-I(>/B<L:ESZAF
+WYb]b]caifccWWMR LROY CLIW >J3> 8A(. "&"   !#               
+      
+
+.
+'&!4,&+14*  %#  ""!"?5&E 61'3
+7 7 5
+"8 (<
+.B
+RiN_WiRcYkOb^r>N NacyYn    !, % %  ' * '     
+         
+
+  
+    & 
+        ##!  )6011+<2<94# *   "& ###  
+
+
+ +#$!    
+         
+
+   !+)"-! 
+   
+
+  
+   $#
+    
+ 
+
+ 
+
+ 
+ !'")!#35'+ 
+      =;&%#",+ "!((++"#    
+     
+
+   #/!5%<1I<S
+3D1@:E?FWZML YXqq]]Z]jmbgKO BLNZ @M3?@OAO 5B
+0: (#"    
+   
+     
+         
+   !!2 !3
+1$8 -%*1 5
++
+ ! 
+
+   ,)3)+'9 4&A !7'= !23F ObRcQbJ_McI^Sj6I
+?S XqQi
+
+  
+      !    $ +  !      
+           )
+  
+
+     
+
+  #
+ + 
+
+          
+
+
+     1/    
+  
+   
+ !/1 
+
+      
+
+       
+  
+       !210+@6L1A.<3>=DNR RQXWnn]]XZfibgNS EO Q] 9E2>DT CR 4A -7
+%          
+    
+
+        
+     + #6 !3 !3,"$*/)    
+       #+#''$A 6.L#9 #7'94G L^DTIY:M ?SF[Um<O 7J
+KbAW     
+   "  
+  
+    
+           
+
+      '    
+
+  
+    
+      "/ ;24'E <61*+!#*### !% $ 
+
+          
+
+       
+ 
+
+  99#    
+ 
+
+   
+   
+   
+              $$6/*'9)<+;+8/9:CCIRURUQ]O[OZS^RaO^J[FX +</@AX 7K ):)8
+'    
+ 
+          
+
+
+      
+
+  ##5 "3
+-,#! 
+     !&"$#+D !84R&:09M 6J Qc7D IX2J 3K A[RoA[1IC^8Q  
+       
+    
+      
+              
+
+    #     
+      
+ 
+
+  !#/"# '.+'!    
+
+  
+     %   
+
+
+     
+  
+
+ 
+   
+    
+ 
+      
+
+ 
+
+
+
+  
+    
+ !1*=
+#4"2,?(;/?.<1;@JBG[_SW<FDO EO ?I BO M[GY ;K*:->>T 2E'7+: )  
+      
+  
+  
+  
+       
+#5 "3
+(.& 
+
+      #)B 32O '<1AW7K Ui4A
+GW6N
+/E;T JfB]0FFb<U
+    
+ 
+
+   
+      
+    
+  
+
+  
+     
+ 
+   
+   
+ 
+   
+     
+#2$(#.+,+!  
+   
+##    
+                 !% *' +#/(4)5&1)!       
+ 
+ *-! 
+  
+
+!  
+     
+       !! RY*#
+  +. %)     
+%# #" 
+   
+       
+  
+ $&: #9 1 7'@*E.F'>'99O
+6FRc@O .?2D
+0@
+*9-? 7K 4K +@,D%;1K ,C"6!3 % 
+          
+           
+!0 - '!          (!1G "62J -C+=4G 2C
+K^3@ 5B 2N &>1K ?]@^+CA_6R   "   
+    
+  
+ 
+ 
+    
+  
+  
+   
+   
+   !
+     
+  
+
+  
+
+     ( 
+%+<9+35)'! +!=
+5! %8 )0,3(++   
+
+
+!'%       
+ 
+  
+  
+
+   "*
+((!(!,&1'3$/(! 
+  
+ 
+ 
+ 
+ 
+&) 
+  
+     
+    
+    $% Zb0
+
+ 
+  
+     
+
+    
+    
+     
+         
+
+ * & !      
+   
+
+.@Z-D 1I 1I 7L %5,<>O2? $/+D3+C;X A_(@;X -F       
+             
+          
+    !
+       
+      
+ 
+
+       )!+2/#> 50.#1372""+5##3 #!"#
+    
+ *8  !&(     
+
+   
+ 
+    # '1 '1
+"+.; #/!+%1!,!&              
+ 
+          
+     
+
+ #'   '. 8A$ 
+      
+
+ 
+    
+ 
+ 
+   
+        !            "  
+ ! *; +; 2D 6J 1D
+ /'7#14E)8
+&4+F ,G #<>^0L 1M -I
+&?   
+            
+ 
+   
+         
+       
+ 
+           
+
+       '.-+1+!18 !% +"? $+  
+    )7 !!#&# 
+  
+    
+
+   ## (4#/"-#/*!"( 
+           
+         
+       
+ 
+   
+     !#   
+            
+
+
+
+      
+      !             
+-+:
+/@ -?+=+ /((7 "0"0#;)C*D=]1M )C(B4                 
+            
+        
+     
+    
+ 
+   
+   
+    
+
+$%"'##'# !.  # 1#!)/+# 
+   
+  
+    
+ 
+
+     
+
+
+  (",#-(" #&      
+     "      
+
+ 
+             
+
+    
+ 
+    
+       &)57083.+18/ "%3)&   ,11& 
+    
+  
+   
+    
+    
+ 
+  
+  
+!
+#  %1 "/ !-"/'%'*.1%:,C /F )?
+0$9)        
+            
+   
+   
+      
+  
+      
+   
+
+      
+ '$!!
+  #!$6+!)-'#     
+    
+
+
+  
+ 
+   
+
+  
+ 
+     
+  )",#         
+     (      
+ 
+           
+ #      
+        
+      
+
+      
+      & # ( $# '/ 3 3!5+,""6'     
+     
+ 
+       
+
+  
+         
+    
+  
+      
+
+
+
+    )5    
+         
+ 
+ 
+ 
+      
+    '#,! 
+
+ 
+   
+  
+  #/ ! 
+''!+
+  
+ 
+
+   31 % 
+     
+    
+
+
+!4%&  #    
+ 
+ 
+             
+     
+    
+      $ '    ! ,4 0 (&$!2 $                 
+  
+     
+     
+  
+      
+   
+ 
+ 
+
+   
+    
+      
+   
+  
+ 
+   !(4 !       
+     
+
+      
+    
+  
+ '#-$   
+    
+  
+$".  !
+
+
+  
+
+
+   FD!    
+ %!/ #    
+ 
+ 
+ &4+; ';
+/C%9
+#" &'         
+  
+ 
+ 
+     
+          
+    
+ & 
+#     !!04 ' #'!/%  
+ 
+ 
+    
+ 
+          
+   
+
+ 
+  
+      
+            
+
+
+
+       
+ 
+
+  
+     
+      
+          !+       
+  
+         
+            $!*' 
+    !
+  
+   )&      !+ #. 
+           "'*0)13< '1  
+         
+    
+ 
+
+       
+          
+    
+ '%21 '# )* 
+
+     
+ 
+   
+  !              
+   
+    (*                  
+    '        
+ 
+  
+
+       
+  
+
+
+ 
+   
+     
+       &'   
+     #0 @Q      "$ 
+
+   
+ 
+
+ 
+ 
+  $! "        
+&  
+        
+  
+
+     
+         
+ 
+     
+        *'1+  '%#1
+       
+        
+  
+    
+  
+     
+   *% +
+    
+          
+    
+      
+    "  
+
+
+
+  
+        
+  
+ 
+  
+  
+
+               +!-'   
+
+27W_*
+   
+  
+
+    
+   
+  
+ 
+
+ 
+  25      
+    
+            
+
+  
+  
+       
+
+            
+ 
+                    
+%'" "*%      
+
+        
+  
+ 
+     
+  
+       
+  
+ )% +
+   
+    
+    
+  
+   
+       
+   
+  
+  
+ 
+    
+         
+         
+  
+
+           ( +&     49U^)  
+   
+    
+
+    
+
+  
+   
+
+ 
+  !
+  
+                  
+  
+  
+              
+    
+
+       
+
+ 
+     
+  %% 
+ !+-            
+            
+      
+ 
+
+  
+   $7%*%
+          
+  
+ 
+     
+  
+
+
+          
+
+     % #         
+          
+ 
+ 
+ 
+ 
+ 
+
+  
+      &$   
+     8;OW*
+   
+ 
+  
+
+  
+    
+!$       
+ 
+ 
+ 
+  
+  
+  
+   
+
+   
+          
+      
+
+  
+            
+     
+ $+
+
+
+           
+          
+       
+ 
+  4K51J),!             
+    
+   
+
+         
+     
+           
+   
+  
+      
+    
+        
+#%      
+        >AAG 
+
+         
+              
+ 
+      
+    
+   
+             
+       
+
+ 
+   
+   
+   
+  ,?=B]J#8#0- 
+            
+   
+   
+ 
+         
+  
+     
+           
+    
+   
+        
+            
+   
+ 
+    $'      
+
+ 
+  
+    CE"/2       
+    
+ EK$
+   
+        
+       
+ 
+
+
+                   
+      
+
+
+ 
+    !!             
+ 
+       
+ #!"21%9++*@!'9
+ 
+        
+  
+     
+ 
+     
+
+    
+   #      
+     
+  
+  
+                   "+!            EG#!
+ 
+       
+  [b4 
+       
+          
+ 
+ 
+              
+   
+
+  
+   
+ 
+          
+      " #    
+ 
+      
+
+     
+     
+ 
+  
+(0%4>(8B "#7'!1       
+   
+  
+        
+    
+    
+       
+    
+ 
+      
+   
+
+
+ 
+  
+     
+
+        %!-#         BB(
+     
+
+ 
+  !% [c1   
+        
+              
+    
+  
+
+
+          
+
+ 
+   !  
+ 
+ 
+ 
+ 
+             
+ 
+  
+ +7@7JU6IT,/1"(      
+  
+ 
+       
+    
+  
+
+  
+
+  
+   
+  !
+       
+    
+ 
+    
+
+
+
+      
+
+  
+  
+  
+     !,
+"/   
+
+  
+   ??& 
+ 
+ 
+            
+  
+      
+    
+         
+
+
+
+   
+    
+
+
+ 
+  
+  
+         
+
+
+ 
+   $297K]>Sf1CS,>M$% !"    
+    
+   
+ 
+  
+ 
+    
+    
+     
+   + '
+
+       &%1   "'2"       
+      +  
+  
+ 
+  
+  % -            
+ [[@ 
+
+ 
+  
+  
+
+ 
+
+    
+
+ 
+       
+                          
+ 
+      
+  
+               
+
+
+       
+
+
+   
+     
+
+  
+
+   !*;KCYmd•I_r+,  !!  
+   
+ 
+ 
+  
+  
+  
+          
+  
+   +)' 
+# ! $#$($  
+##.  
+        
+
+  '('   
+   ",
+    ,:"0   
+       
+   
+
+   qqR 
+     
+   
+  
+     
+ ^f2_g3   
+
+   
+  
+    
+         
+                 
+     
+      
+  
+      
+                    
+ 
+
+ 
+          
+
+!(+=OToMg…/DS!10#6'*  
+          
+  
+
+  
+       
+   
+   !&"'  #,.?0)9+1B4(8+/>1*8,5E83C6#/!    +)5!     
+      
+  
+ *:%+<',
+     !$.
+ 
+   '       
+     
+  77#„„b
+
+  
+          
+
+ 
+kr@>C  
+    
+
+      
+ 
+  
+  
+   
+
+      
+
+
+ 
+ 
+   "
+          
+
+    
+   
+
+  
+
+           
+        
+
+        
+      
+   %,@XE^{QmSmjD_J#4 
+  
+       
+   
+  
+    
+    
+
+       
+( <MA7G<+</'6*# 1#;N=:M<BWF2D63C6+9-+9-9J<+8)     .<'!+   
+  
+   
+      !0*:%'7 )   &  
+  
+
+   
+   FF/ŠŠg    
+
+
+   
+    
+   
+ 
+
+[b4 #       
+      
+ 
+    
+  
+
+   
+   
+ 
+      ##$           
+
+     
+
+               
+ 
+     
+        
+  
+ 
+ 
+     &9OB[xXwb|’Mjb 1# 
+ 
+     
+ 
+        
+         
+
+  
+   
+
+        
+
+ 
+ )'DWUCUTDWU<ML%51!1-##"21=SR9NM?SU/@B1CE+<>&33>OL/?9   5F4   
+  
+ 
+  
+  $ !!.))7..9.-7+"'  ",#-"+4-#  %'2&2
+    
+         II-||W               
+ 
+    
+ EJ(  
+  
+  
+    
+
+ 
+  
+   
+
+  
+  
+      
+           
+  
+      
+  
+     
+ 
+ 
+  
+   "(.B+@X;TiRj~Nkc!1#
+
+    
+ 
+  
+    
+   
+ 
+  
+  
+           
+ 
+  
+ 2BA<MLQdcJ][-?;+' 0/.A@G_^<RQ=QS1BD>RTAUXSgg[qm>QJ #&*9)   
+   
+      +&,<6!.)(71/>4;G;BN?3:+ #  ,8(6B40:2!/;+:I0<L+#0
+     29)=E1   
+ GG,XX9        
+     
+
+
+
+   
+  26
+
+    
+ 
+
+        
+    
+ 
+ 
+
+  $
+
+  
+        
+       
+ 
+    
+    
+    
+
+   (#,0!1.B,AYJ_~Rmq'80     
+
+  
+   
+   
+
+ 
+  
+                     
+   
+ '''7;8KOQgmI^c3EJ(++1,?KJbq<R_9LZ,=J@RbJ]nm…’Umr8GK###( 
+ 
+         
+
+&-:EATa:LX4BL?KRQZ^EJK--/##"$4@2;G=,62%""4@6DS?;J0 ,    7<6JOG    
+  
+UW567
+         
+    
+
+          ,0%'          
+       
+         "#   
+ 
+  &   
+ 
+     
+ 
+    
+     
+  
+
+        !1#/)%(*=&9O3JcLbNim*<3'%7) )    
+            
+      
+         
+  
+
+Xmk,:=AUZ?SX>RW.?C'7;"%(.0COWqLdtF[k5GUGZkRfxc{‡AUZ2AD+*'!')9+%  
+     
+ 
+ )2[rFZg6DNBNUbmqcijMMOAA?0=(+7#>K<<I>+51$-*'#'1(i{b@O4!  
+  ,1+ 
+   
+ 
+mnG()
+ 
+        
+    
+
+   EJ2"$
+ 
+ #     
+ 
+ 
+   
+ 
+ !      !! #   
+   '
+     
+  
+    
+    
+     
+  
+           
+  !&1EO:N_?Wm>Uq:RmSo=Tm/A)<N+>Q":$)    
+  
+ 
+    
+    
+    
+  
+       
+     
+   F]fOdI]OdŠCWq+;G!10#!!/86GSRguYo~LanDXdMbo[rUky=O[K_mEYf%3=&&)8B.8
+!    
+  
+
+ &FYj[kO^nGQaZcq_brMMWIIR9>DAFMbinSY^SX[>BE #"OUNTXO$'   
+ !+     
+Y_D
+ 
+         
+ 
+      
+      35#      
+  
+       
+     
+  
+    
+     
+  
+ 
+               
+  
+       
+  
+
+    (:CF]o2G[7Mg9QkKf„8Nf#5I3I]7Mb+E--     
+   
+          
+   
+               
+   9MUSi…Uk’Wm”Mb~>Ra9NL'86*9C<NZRguXn|MboI]jSiwax‡Qft=O[LanDXd)8B*2,55FR&/!!$ /-)81#    
+      !,/'6=#+3CRYi|]m~R[m_iwmo]]gQQZDJQRX_u|‚binafjNSW,0/U[TUYQ+-$
+
+  
+ "     
+"^dI  
+ 
+ 
+ 
+ 
+           
+ 
+      
+')  
+
+
+   
+       
+
+
+
+
+ 
+       
+ 
+       
+  
+ 
+  
+  
+    
+              
+
+       
+ 
+  
+   (7K]/EZ=WnLi‚Xw’E_r:RcRnWt‡CdR":,      
+ 
+  
+
+     
+  
+ 
+
+  
+          
+
+  $4;EYtOf‰Lb„EYtBWfCZY-@?<M]GZkUj|Wk~OcuMarUj|awŠTi{EXiOcu>O_%2?+7!.:0?M#6A#5@+?D'86.'   
+ 
+  
+  -::BSY'/*6AYfwn|Œ_gxcmxtx…ijqUW]INU[bj{‚‰fmrdkoYa^6;7LRJQWN39.
+ 
+  
+
+      
+.2!AF1 
+
+ 
+      
+   
+ 
+        
+   
+  
+ 
+    
+ 
+    
+         
+        
+    
+                
+ 
+    
+    #! 
+       
+           !-1B2J_Nk…UtFatE_rXu‰Xu‰;ZI+ 
+
+  
+
+   
+    
+  
+
+
+  
+             
+     *;BG[wQgŠSjNcG]mG_^2FEL_qRfxXmXmSgyOcuSgyXmZo‚NbtUj|;L[%2?&3@'5B.=KB[j=Uc5KQ'%  
+   
+       ""?OU4BL3AMWctm{Šgodnymq~gioYZaMSZ_fnt{agmfmqcki=B>:?8@E>7=1              !/3!#'
+   
+  
+       
+
+  
+ 
+ 
+  
+   
+  
+       
+   
+
+ 
+   
+    
+ 
+ 
+   
+      
+   
+
+ 
+   
+ 
+ !#-2&160;7+8,$              $+##1';NMjTrŠJdwQmYt„Smw8TU,* #*91)4+
+
+ 
+          
+      +* 
+       4ISCYoG]{UmTj„CXjAT]2CKMarRfxWk~XmWk~Ti{SgySgyXmOcuXm@Rb1@N<M]@RbDWgRo{Fbm0GL 
+   ! 
+  IUZ^kxR^kUbobn{nt„jo|iiwijqdfmYbjfoxo{cnrkwyo|xIOK170(-%*/#    
+      #-1##'!     
+
+  
+ 
+        
+
+ 
+   
+  
+
+       
+     
+ 
+ 
+ 
+   
+           
+ 
+     
+     
+    $,4)1:=KR?MTIWR=L>#/!      
+ 
+ 
+
+ 
+
+ 
+  
+
+#*6?(8D'3+&5$8KLiTrŠQm]{Xr‚Oir"89(&(&,@;>QG+6-           
+  
+   
+   (1@(%1    
+
+ !!6KU?Tj?SoQg‡Si‚@Tf?RZ4EMGZkL_qRfxWk~XmXmUj|Ti{Zo‚OcuXmEXi:KZJ]nMarQdwOmx9R[ 37 
+ 
+    
+ 
+ 
+
+
+
+ IUZ^kxiw…Ubo]iurx‰mrjjxqryrt{ajrir{kw{grwkwymyuMTO,2+  
+       $
+"'+.! !$
+   
+
+ 
+
+
+
+ 
+ 
+     
+ 
+  
+ 
+ 
+      "'  
+  
+       
+            
+      
+  
+ &/@4@^8DcEWuFXwN_k?QM#1#     
+  
+
+     
+ 
+   $--:,>Q4J^.BZ!3I$7MC^wFbuE_nTr{GagAY_*BQ,ET>WdSkuDYY+(
+  
+    
+
+  
+      '3D2(4& 
+         '!'%*/;Q^Og|QiYrŒXn…Od{SiwDXdI]rLawOd{SiTjTjSiSi^uMbxSiDXm;MaFZoFZoI]r@Yj(=E&+        
+ 
+    8AFUamoy‰^gugqq{Šgmyin{rwjnxWbk_kucowdqx]jkUc^DNI'0("*!   
+  %.+#+('#
+    #!#                       
+
+
+ 
+
+    
+  
+
+ 
+           
+   
+
+     
+   
+      '+2=Q<Ii8DcK]|L^~SdqDWS'5'#       
+   
+ 
+ 
+ 
+
+
+ '-%.&!1AC[rLf„AZw8OjQn‰Mj~LgwZy‚JcjE^d1KZ=ZkUr‚Woy,==  
+ 
+   
+
+
+        0@/+7(    
+   (70(:8#391DQOg|Tm…Nf~J^tK_uTjx@S_Qf|Rg~SiRg~Od{NcyNcyOd{]tŒI]rOd{EYn>QdI]rG[qLaw,AO18).&% 1+)        %.'8C?.6;gtircm{r|Œq{Š_dqfkxot~Z^gOZcZfobnudqxS_aFSN?IC'0(5?4 
+
+  
+   '0)ERM.84,62     '+ "%    
+ 
+   
+      
+    
+
+        
+ 
+    
+
+   
+
+    
+  
+     '4C,9W8It?Q~TišL_CXr9NW+?:,    
+  
+        
+ 
++4+;J.>,@5LiWt—Ji‰Ig‡Gc|GcwOk~Sq|MgnBZa7QoDa‚KgF^m$) 
+   
+     
+ 
+ 
+ 
+  
+"&!*%     
+  
+%#%5;6KUF]oCYkKbuQi|Og{Od{Td|N^uETjI]uLayQfRgQfOd~Nc|Nc|Od~Od~Od~Nc|LayJ^wG[tFZr$8F';J1FS'7;+*# 
+    #9R@1F:  %#1>?3<C[gqiu‚jw„kt…kt…ircm{_iw]ftUfrWgtan{]jwQ^cKYY<FE#,'! 
+   
+    "+'=GI:DE&./#  +."   
+    
+ +# 
+     
+
+
+
+      
+        
+      
+ 
+  
+  !
+     1AR?NqL_‘L_‘Ma‘EX…=Qj2FN#51$     "  
+      
+    "-+$6+@ZGb‚Gf…Ig‡JfIdxMi{QnyMgnD]cEb„JgŠEay=Sa    
+  
+  
+
+   
+  
+    "1#!%!*930@:#1&#
+
+  
+  "!%5;:OZI_rE[nLcwOg{NfyOd{Sc{N^uGWmI]uLayOd~QfOd~Nc|Nc|Nc|Mb{Mb{Mb{LayK_xJ^wG[tFZr;Tf+AQ!3>""   
+
+  "6N=1G;!  +78?KM3>DBLTLW_jw„jw„kt…iq‚dn|ajx[drYboQamO_kZgt]jwXfkUddJUT4?9##      
+   +34>IJ+45  /2&
+
+ 
+ 
+   
+  ! 
+    
+
+             
+      
+  
+ 
+  
+
+  -?O>RqGa?WFbB]‰>Wu2JZ#7='%!!" *(#24'+     
+
+        %':/FcKiŒDa‚If‰Ji‰Jc~Jc{OfyMcqI^kLm’JjB_{:Rb  
+   
+    
+
+  '$"# /4#28*/!       ('7I=TmJc~FatJdxLgwNduMcwRb|N]~JXxG]xKa|McNdMcLb~Ka|Lb~J_{J_{J_{J_{J_{I^yG]xF[w?Xt3Jc+@O(1')))  
+  $:4 41   $K_jDS^NZgO[iiw‰gu‡dq‡am‚Zj~WfySdwQbtQaxKZqRbxXjyWgtUfnN_a=MJ&!1=0<J7           #+,#$''!!        
+
+         '   
+ 
+ 
+ 
+  
+  
+     
+   
+     
+    
+       !0>1B^>U8NwEaEaD^~;Tf+AG 41 2*#7.(;2$6.+<:/@B$15$(   
+       
++.E1IfA]~Gd‡KjŠJc~GaxLbuMcqKanGgŒFfŠCa|AZk#    
+  &!1' ,?@DZb,>D $      $&6G=TmE^xIcwJdxKfuMctLbuO_yM[|KYyG]xJ_{Lb~Lb~Ka|J_{J_{Ka|I^yI^yJ_{Ka|Ka|J_{J_{I^y@Yu2Ib#6D  
+    -( 41&%! !&"#-=E4AKO[iYftcq‚an^jZf{UdxSbuQbtQbtZk„O_wQawSdtN^jM]dIYZ:JF!:F8N^I         !()!! '(    %(   
+ 
+     
+ 
+    
+        
+ 
+ 
+   
+    
+ $' '1%9J=[xBa„?]@^@^~9Wo+DX"8E&;G,DL/NR&BE'BK+CR#:J 1A)2!  
+
+
+
+ "%7+Ca@[Fc‰JgŠIa„E^{J^wLawMbxFf‡Ff‡CbwA[f!!         
+ :MM(7?%5D6J[#3B*7!(
+ 
+  ,&7R:Or?UyJc{IcuIdmLcmKatL[uKX~KX~G]{J_~KaKaI^|G]{I^|J_~I^|I^|J_~KaKaKaKaJ_~8Nq)<Z/C# ! 
+
+  #$!5: 6=1;'.85@1FU"1?1@QK^rM[qWf|Wf|Sc{RbyMbxLawLcxLb~WkQ_M[yIXnAOcEUcCR[3AD ,8/@O?     
+  !"!()'/0!'' #     
+ 
+     
+
+
+
+ 
+       
+
+  
+ 
+                  (+ ')71Lf@^>[~?]?]|9Wo/I]'>L+AN1KS5WZ*GK*FO0JY/IZ/CW':E*-  
+
+    +0D=Z|?Z~Eb‡Gd‡F^D]yJ^wMbxLawKkJjŒ?]q6NX          1CCCWa0BS0BS%5D@Ui5JT,""+>1EcBY~D[IbyFarEaiKbkJ_rIXqGTyIU{G]{I^|J_~I^|F[yEZxF[yI^|G]{I^|J_~J_~J_~J_~J_~I^|4Jk"3O1E /?)9C*;A   !!!5:%=D 6A'11<#:EAZk&6D9J[OcxIWkO^tO^tN^uN^uK_uK_uI_tI^yL_M[|IWt:G[3@R?N[>LU*69 !+#0=/' 
+       !()#++#+*      
+    
+
+   
+
+  
+
+
+ 
+             
+ 
+  
+    $&
+%!:E0Ma=^w>^|?_~<[y5Qn.Gc1Kf9Tq6ar-Td.Ti5Xt4Uq3Nk)AR,3
+     
++$5+?-Fd?]‚Cb‰Eb‡D[D[|K^Mb~K_{Fg…Ij‰=Zk2JQ  
+ 
+    !+),2BXj+>S&7Q+A5Jg*;J*(.)!3&+#$(4(9Z;OwE^‡GaŠF_yC]kD_gKbkJ_oFTqCOyFS~E^{F_|F_|E^{C[xBZwC[xE^{D]yD]yE^{E^{E^{D]yC[xC[xAY„#5W,D 1E+<K'8A!   "%5<1MZ3Q_(AT#0,;1?1GZ2G[9KaL_uK^tI[qJ]rI]uJ^wE^xD]wA[t@YxFW{K[BRt*7M".@/>N-:C!$ " ,""-!       (11 !   
+    
+       
+      
+
+
+        
+     
+    #7B/L_9Yq9Xu<[y=]{9Ut5Qn9TqA^|9dw2[m5^t:^{3To.Gc!6E"(        
+
+  ,: 4I0D'?[@^„Ba‡C_„CZD[|L_‚Mb~J^y<ZwEf„>[m5MT&$"   
+   
+       .97'''-?Tf,@U7Lj+=X3Gd$4B)--B@'"/E5!3&&'+8+<^9Mt?W~BZ‚E^xAZiC^fKbkJ_oESoAMwDQ{E^{F_|F_|D]yBZwAYuC[xD]yBZwBZwC[xC[xBZwAYu@Xt@Xt<S|+>b7LkD]yE[n*<E  !!221JN9W_>]k/KY0@'44B+@RQk„8J_@RfK^tGZoI[qI]uJ^wE^xBZt>Xo<TrGX|Oa‡BRt!-A!0!.<'/  *           
+  
+       
+   
+
+      *5'$0#5C4;L>1A4+;.#2' 
+ 
+ 
+        
+  
+ 
+  
+                        &/N0Ko6Ww8Zu9^u9^u7[u6Yx7Y8Z7Yu;^{?b‡1QrEj/Ig,GX4NW
+  
+
+
+
+ 
+ "# #*(@N$<N0KdA_Ed…Fc…?Z{>WrAZwGaxJc{BbCc7Tj'<K/4%(  
+     
+ 
+   6EM=Qb4C1Jg4Oo=Z|<Yx(<W/A'4'#-,Ga'@X#<S)C[5Qn?]|@^~>[{6OnB^?W{7MoE^„<Sw)<Z=Tx9SrA]~;UuEb„9SrIf‰>ZxB_~:Ur=YwEcCa|:Uo=Yt@]x6Qj3Ij6Gj2Cb6Ic:Nc#1? !+'17JZCWn@TqDX{4Ij.Aa+2C)AT1E[?TjIZtFYnGZoJ]rJ]rATkI]u@Zr=WnDc{4OdOiž)7_':QAUb#43!&      .#    
+  
+
+           
+ 
+       
+ 
+  
+
+      '-):I1CW:Qi'9M:Qf/;+2':? +#1+ 4/,)  
+          
+  
+          
+
+ 
+
+
+        
+    
+'+I'@b1Qo4Uo5Yo6Zq6Zt6Yx7Y9[‚8Zw7Yu=_„4TwFk8Tu1M^*AI      
+(3 6G1Lf?]|Dc„Eb„?Z{>Wr@YuD]tE^uDd‚Bb6Si)>M16&)
+      
+  
++9@BWi+CTEb„1Kj$;W%<U/Da'9M& !.:.Jc0Lf1Mg3Qk9Ut?]|?]|;Xw'=X9Sr:Qt4JkAY~6Ln':X:Qt<WwA]~8RqB^=Xx=Xx>Zx=Yw:Ur9Tq<Xr9Tn2Ld9TnA^y;Wq5Km=Ot<No->W+<N".
+  &5C@SjAUr:Lm'8U%6S(7#:L+DX1F]>SiDUnASgDWkDWkEXm@SjG[t=Wn:SjCby6Rg8M{/>i%7M.?J 0/       
+   
+                  
+      
+
+
+ 
+    +1&6D$4E3I_+?T5K_' &* &%*#&&!(# 
+"410+#.$0#     
+
+ 
+ 
+
+
+  
+
+  
+
+
+  *(E!7W.Lj1On2Un4Xq5Yr6Yx8Z:]„;^{4Uq;]7X{Cd‡<[|0Ma-5      
+   (!8L1Kg:Wx@^Ba>[{;Wq?WrAYr@XqBa„=Z|3Og+AS#7A,2$%  
+   !'1CS1I^Cb…-Gi 6S!8R4Nj)=T 
+$3A+D_5Qn;Xw:Wu:Wu=Zy<Wy7Qr1K7Qr:Qt5Km?W{2Gi);Y:Or<Ww@[|6On>Yy?Z{+A];Uu5Nm4Nj1Jd3Mi3Mi1Jd8So@]{;Wt*@a6Ot@X|%4M!/B#    -;>RkAXx4Ij"6T%:Y#:N.I_2Nf7Ni@ZrCXrATnEYt?RkBUo<SkD]w8Sm2Ld@_y7Tm$8[/Ai!3E/5+&  
+    
+     # 
+ 
+
+     
+     
+  
+
+
+
+
+
+
+ 
+  
+    $+%3= ,:(7G6GZ;N] 
+!.+)' (( ,=A'79!01&64(97 
+     
+
+ 
+        
+       #20O'?a.Lj0Nm2Un4Xq4Xq5Xw7Y8Z=a~4Uq:[8Y|8Ww:Yy-J]")    
+     1D1I2Mm9Uw>[{=Zy;Wq?Wr@Xq>Un<Y{6Rr1Lc/EX+AL'9@#34#0/
+ 
+
+  
+
+ 
+ 
+
+
+ +76Nd,Ec/J%=[)C_.Fa1E  #"1>(@Z0Jf5Qn4Om6Ro:Wu8Rt1Jj(@7Qr6Ln1Ef8Nq+?^);Y5Jk7Qo=Xx7Qo9Sr<Ww/F4Mk0Gd,D^)@Y.Fa4Nj4Nj:Ur>Zx7Rn"6T2KnD]‚)9S*:O!-%
+"-$#2A9Ld;Qo7Ln(>^+Ab'@U0Kb4Qi<ToC^wBWq?RkEYt>QjATn<SkC[u4Ng,D[;Yr7Tm!4W#3W/@!18#
+ 
+
+
+      )1*     
+    
+            !'!/8$1$+:K1BO   
+     )+%'$#)'  
+     
+    
+  
+  
+ 
+   
+      )#?'>b3Ry0Ot1Sq4Xq4Xq4Wr3Uw4U{6X~:]y6Xt9Z:[‚0Nr6W|+G]&/        
+ '"9O*A+Dd2Nq:Wx;Xy;Wt<Xu?Xt=Uq;W7Ry2Mm1Lf1K_0EU(=E$4:   ! 
+     $0Cc~4L +":T'@Y#8R"2).<.Gf+Db+Ba/Ff6Oq9Su5Km-Aa31Fg*<Z&7T.Aa$5R(7U/?_3Jg;Sr>Ww:Rq6Mk+A.C_.C_,A]&9S*>Y2If5Lj;Sr?Xx8On&<^3Mt=Z.C_6Mj)9N*7$.<'3':N.A]-Da2Kn&<^!5U4J&?W-Fb6Ro=Xx4Mk2If=Uu;Sr<Tt8Rq?Z{0Jf&=W3Qk1Ni&>]#;+7-CJ 
+      
+  
+    $-(  
+
+
+
+ 
+
+       
+
+#'&+ &')    
+ 
+ 
+ ! %   "!,+         
+
+       )#?(?c5T|1Rw3Ut4Xq4Xq2To1St2Sx3Ty6Xt7Yu5U{;]„1Ot7X~*EZ1;     
+
+
+ 
+   
++'?W2L(Aa1Ln8Tu9Uw9Tq;Wt>Wr<To;W<X8Tu3Oj5Qf6M^';C(- 
+ +0*    
+
+  %"
+ (4Dd+@1$=X":R"6O.
+"+85Qq(@]#7S+Ba6Oq4Mn-Aa':X..Bb!1L/J+=[#4Q*9X(7U/Da4Ki@Yy5Lj-B^"4M$7Q(<W+?Z!3L#5N+@[0Eb6Mk:Rq3Jg,Di3Mt-Fg,A]0Ea/@W+8 +!0>+8*=R,?Z+A]1Ik 4T'B/C!9O+D_6Ro:Tt-Da.C_?Xx:Rq8On2Ki:Tt+D_!6N-Ib,Ga'@_ /'15MT#    
+ 
+     %!
+       
+
+  
+ 
+
+   
+   
+!'  '&   
+      
+
+    #1$C#=d1N{0Ou1St2To2To1Sn0Qq1Ow2Qx3Uq9]y-Mm8Z‚5T|6U~6O0@" 
+
+ 
+
+          '2I!8U(Df0Nr6Wy5Ux6Tq7Ur8Uq7To7R{=Y„:U~2Mm6Ro7Tm!7D"  !      
+ ,7(AT0'<,Ea 6L5K - %(41Ef.I)B(;Y3Ij+?^#4Q#3O.1Ec,E+D-=Z%3N(6Q(?*=T*=T9Oj+?W#3L1Da)?-D!1J(>/G,?[1Ec3Gf/B_&7R'@c0Kq"8U)A[1F 2D''!1B%3!7I*AZ+D_+Dd1O(D1G#<T-If6Tt5Qt&=[(?b?[…2Lr/Gm*Bb2Mo'@[3L(B[(B[2G-#+,CE+#         !
+ 
+              
+    
+ (-&'      
+
+      1$@+M'Aj2Q~-Lq/Oo1Rm1Rm0Qk/Oo1Nu1Ow5Xt:^{'Ec5W~7W1Ow)?'6&*            
+ #!1 7N1Mo+Gj1Qu7X{5Ux4Rn5So6Sn4Qk1Jq;W9T|1Kj6Ro;Yr!6C
+  !
+  
+.9#1 #1*B]/C)<+ *6+7#4Q53"3O-Aa!2N*C 0K02Fd)A)A+:W!.G+C+%7M 1E/C["3I*@:On 3"6#8 3.F2Fd9Nn2Fd%6Q&<#:[1Lr!7T1Kg(;'7 !"3D**9&<T)A[%<Z-K0N2I#<T+Fc2On.Gi3O#8Y=Y‚/Gm)@c$;Y.Gi$=X1I&?X&?X$6"4!'!461)    
+
+          
+   
+   
+   &+'( 
+      '0K.Q&I2Y+Gu+Kr,Nq1Rm1Rm0Oj0No2Qx5T|+Ng1Uo2Sx1Qy3S5U„)Eg1F(0  
+   
+
+ 
+     # "1F+Eb0Ko/Nt1Qw1Rx2Sy2Rt1Qr1Rm1Rm8T9U‚8U~6S{7Tx6Tq-Ib$>O3>/6$)    "21 +5'2 -,=#7J
+ " #'33FW*<Z0 $+>Z0Ca)@&5N/ "/E/(:'9%"1 !1?'4#1+ !9Mb $ !%8*/@[&5N/@[(>'6O'=1O"9Y/J!7O"9O!/ 0=+8/<.>/D&=W'?1O 8,@$<S'>X1Km2N+Ej.Gq/Ir'>d2Mx 6U'@b"7+B)A[1C '.; #64(     
+   
+     
+ 
+    
+
+   !' 
+   
+
+
+ 
+             ( 1L1U-S7_'Co*Jq+Mo0Qk0Qk/Ni/Mn1Nu3Ry1Uo1Wq1Rw/Nw3S1Q~"<[&8#*!#        
+    $+"9O+Eb1Lq/Nt0Ou1Qw1Qw1Oq1Oq1Rm2Sn4O{5Q|4Qx2Nu4Qt4Rn.Jc&@R!8C*1" 
+ 
+  -, ( #
+ *'6+;  !*6%= *!6%6Q!1K2,C-,"/E-,+ (  " !%()2EY+ $9$3L#2K#1J,C1+F1O!6S-C$<S # ,9.;#. (+?3K3&@'A/C1F,Ea,Ef1L1Lr%<b.Gq.Gq%<b/L0Ko.F ,'<%5 -*6      
+  
+  
+    
+     
+
+
+
+
+
+    
+
+$5$9X$=i%>n(Cu)Dw*Jt+Lo.Nk.Nk.Lj.Lo1Mt3Ow3Yt1Wq.Qu.O{4T‰2R…!;^$9,9060-'"
+     
+    ##5)A[(Dc1Nu/Nw.Mu,Mu,Mu,Nq-Or.Rn1Qo2Mx3Ny1Nu/Lr0Ot1Sq.Ni(G['AQ$-     &$    $*%    +
+!+?!/D$5"2$3')+ 
+   #
+
+ (+7(   !-?$6-;R':-$:+C&=W!1%9L %#2@+8 *;,? +2 5O-A"3&<T1L'?+Ci1S+Dm5Q|"8]-L+Cc1L ##5*#1&.   
+    
+ 
+
+
+ 
+ 
+
+   
+         &0C*@a(Bo+Ex.K+Fy+Ku+Lo-Mj-Mj.Lj/Mq1Lr1Mt0Tn/Sm.Qu/Q|5UŠ5UŠ(Ek5N+FW+BJ$74&!
+
+        #4)A[&A_2Qx.Mu,Kr*Jq*Jq+Mo,Nq-Qm0Nm1Lw3Ny1Nu/Lr0Ot3Ut1Sn-Nc#=L       
+ '#
+   * -*>("0C'#"  
+   !    &     /+(5K&8* +&<!7O)->((9G +  ,>'8.1)A^(;-(<$;"9 4U 5Y+Dm.Gq%<b+J#;#9 +3J " 
+
+               
+
+         )6M*Cg%>m'?t)G|'Ey+Lw+Lo,Li-Mj.Lj/Mq1Lr0Kq*Nf+Qi,Ot,Oy.Q„2Q‡0N~/Jn8Uk-DO-.
+    
+
+    
+  /%<X&>_1R{+Lw*Jt'Iq'Iq)Kn+Mq*Mk+Ji/Jn1Mr/Mq-Kn+Mm0St/Tq+Qg4@ 
+     
+    
+ $   
+   )9"/> "!    
+     !
+  &!. ,
+ !2/C(#0 +1
+ 
+(5*+ *3J*(''=.G+I.Eo(>f#7]!5Z#> $ '+'7L 
+   
+  
+
+ 
+     
+
+      #$/#<T/Jo'@o%=q(F{)G|+Ku*Kn+Jf+Kg-Ki.Lo/Jo-Gm(Lc*Nf+Mq*Lu(Iy+G{/M|3Ou1Mb$9C"# 
+  
+     
+ 
+ #,!7R'?a.Mu+Ku)Ir'Go'Iq)Kn)Kn&Gd&Ca+Ei.Im,Jm*Fi(Ig+Lk*Mi'Ka:F         $#  
+   
+ 
+
+ 
+   -> "/'   
+
+  
+       ) $ 
+"4"4J -(5   !&  $!0 +B(>['D0Gr1T/R/R!:/ ))-@      
+     
+ 
+&1*6%>Y3Ny+G~'Bw)G|+J)Iu'Fm'Ec(Fd+Gg+Ii+Ej*Cg(Lc(Lc(Jm(Jr(Iy+Fy+Iw1Ku/Ja!5A "
+
+  " $# 
+ 
+  *'82#9W*Cg)Eo+Kx(Gt'Go'Iq*Lo(Jm#Dc>[*Cf-Gk+Jm)Fi&Gd'Jg&Jc#G[=J#'!14
+     '$       
+   
+ &(5 "     
+    
+  "    0'6K *3  
+      # 
+%9*>Y)D(=b,L'D1S$=&< ##'5  
+ 
+   
+ +8)5!9S2Mx-J'Au'Dx'Ey'Fr&Dj%B_&Ca)Ed*Ff*Cg'@c)Md'Ja&Fi)Kt+M.K,Jx.Gq5Rj'<I#%
+ 
+
+
+  (+%&!1/   
+ !*8)9N&;&=[,Fk%@i*Jw(Gt'Go(Jr*Lo'Ik!A_:W+Dg/Jn-Lo+Ik'If'Jg%Ib#FZ/:*-&8;    
+
+     
+     *'   
+        
+     ' .A "+
+
+ 
+  
+ ! # '  1%8R/L$8["5X5"5X'A#8   '5   
+     
+  +N4Z<d!>g!?i#Bm%Do$Cn#Ak%Do'Fr'Fr%Do%Do'Gt+Ly*D^)C]'Ec)Fj'In'Gm#Ei!Bd+On!=O !  
+   &3+K_"?R/=.=,8    7Q+Eb%@^*Ej#?_+Jq$Bg$Bm&Fn#Bo!?m'Gx%Eu2[*Jt*Jt)Ir(Gq)Iu*Jw*Fq)Bf#=1G$4E 
+
+
+        !%
+ 
+      
+      
+ 
+  !#6F0+G)Ai7)I
+)!1      6]<d"@j!?i!?i#Ak"@j =f!>g!?i"@j!?i!?i!?i#Ak$Cn*D^(B[$A^%Ac$Di%Ej#Ei#Dg%Fc!=O!(       !.%CW'FZ7F+9#. 
+ "%>Y0Lj#=Z)Di'Cd(Ek&Dj%Cn'Go$Cq!@n'Gx%Eu3]"?f%Ck'En%Ck%Cn%Cn%@i%=_"7X!2J%3     
+ 
+  
+   
+     
+         !+!3*E.Gq!=%C - ( ! 
+  
+
+  =f!?i!?i<d =f"@j!>g9a#Ak!?i!>g!>g!?i"@j"@j"@j(B^'@[">Z"=^!@c#Cg#Ei#Ei ?]!>S)3     #37M(F_;O%7 '  $#=Z0No :Y&Bc*Gj#?c%Ci$Bm&Eq$Cn!@k$Er#Bq1Z9[#Af'Fo&Dm$Bm$Bm$Bj$>f2Rw$;W- !  
+  
+   
+
+   
+
+     
+    
+   
+
+   $9";#;[(C"; * 
+
+:b:b8_6]:b!?i!>g9a$Cn"@j =f =f"@j#Bm"@j!>g'@[%>Y">Z"=^"Ad#Cg#Ei#Ei!@^#AW0;   '8!<S+Jc#AW/C$2
+( +$,E+Gg!;Z#?_*Gj!<_#Af"?i#Bm#Ak<f!@k >k1Y6X#Af(Gq$Bj!>g#Ak%Ck'Aj/Mq(@]/%              
+    
+      )?5+F-J!: $   8_8_6]5[9a!?i!?i:b"@j<d9a:b =f!>g =f:b$?]#>["@_$Bg%Em&Fn#Dk#Cj#Dc$A[2D "  
+  09T<X6M2K+? "+.J( 0!<[#Bc =]%Ci <_#Cj!?d"@j"@j:c=g=j4^2Q"=^#Af9a6] <d#Ak"?i;^)Eg'< '   
+
+    
+
+ 
+%$86)C(@1 
+;c =f;c8_9a =f =f9a!?i =f<d<d =f!?i!>g!>g%@^%@^#Bb&Dj'Go'Go#Dk"Bi%Ff#?Y2D #  
+  %:U8S4K7Q2G
+$ +4R 3+5S(Ik;Z!>b!=a%Em >c!?i!>g8a;d!?m:f2Q"=^#@d7^6]!>g#Ak;c6X.Lo2K " !!        & &1)C2 '   9a =f!>g:b8_:b;c8_ =f!>g!?i!?i!>g!?i#Ak$Cn'Cf&Bd#Bc$Bj%Do&Eq#Dn"Bk%Ej!<[4I,  
+  2$Cd*Kn&Eg#Ab 9U2"!4'@,G !96T+Mt;];_<a#Ak9a9a9a2Z5^ =i<g/M";]$@b8^:^#An!?k3[2X'Fm8U#!!,(2% 
+   ! * #    2X9a<d9a6]7^9a9a7^9a<d;c9a9a =f#Ak)Fj'Cf#Ab"?f#Ak#Bm#Dn#Dn$Di!;Z6K#1
+  
+  & +1K1M#Bc =].J#:$ !-:Y1M:Y+Mt<^:^;_ =f3Y3Y2X,R0W:d;f)E4T!;[5Z9]!?k8b)M)K6X2N! (!,(2 ! 
+
+     ! 
+
+  9a9a9a9a9a9a9a9a7^6]7^;c!>g!?i<d8_;]!?b!@c<d7_6^<f"Bn"@j"=a8U1J,=#/ % 
+
+
+ %.5G"<W3T!@f9]$Bj8]-I!;%& 46Y8[>c2T!@f3X9_:b8_!>g.R2Z+Q#An1X'B/M(Ei7];_#An+Q3[0T1R*C /@.<
+ 
+
+    ! '      9a9a9a9a9a9a9a9a8_7^8_:b!>g!>g<d9a;] >a!?b9a4[2Y5]:c2X4U;Y%@[$@T2@!+  
+   '71J-L<a3U <b <b;Z3S52 :7Z7Z<a3U ?d4Y9_7^1U5[+M1X-S<g,R(D1Q#?a8^9]9c1X9c$D*G$<!'6*7      !  
+   
+8_8_8_8_8_8_8_8_7^6]6]7^:b;c:b9a7]9_:a7]3Z1W1X3[8_5[5Y<[$@a:S)> ,   ,/I;^8_#Bo3[7^6]5W-G%'E:^8]9^5Y<b4Y:a6[+M/S*L1U1U6])K+G4S3T9a4Z,O4Z7^
+3#< 0 #''0      
+  7^7^7^7^7^7^7^7^5[4Z3Y4Z5[6]7^7^2W3X5Z5Z4[4[3[3[#Ak8_2U5S9X7O)> .
+ !0/I7Y2X<g/U6]8_ <_6S .&/O;_7[5Y5Y5Y2W:a7]*K1U0T0T2X0T+N/L3R)F7^1W$D1W*L 1 7 * & "'1 
+
+   
+    5[5[5[5[5[5[5[5[4Z5[4Z4Z4Z4Z6]7^3Z3Z3Z4[5_5_4^3]9c6_6];c!?b6W'@ 0
+  &#8+L1W1Y8c/W8a7Z5S/F(#3Y9a8_1W3Y,O.S9b5]'J3Y4Z+N1U(J/S3T1Q'E5Y.R#B,M 5 0 , !  $*
+
+ 
+     4Z4Z4Z4Z4Z4Z4Z4Z4Z6]7^7^5[5[6]7^7_4[1X2Y3]3]1Z/W7a5^4Z5[6W3S.J*D#,1(?+M4Z8c:f1Y8a1S*D "65[7^8_.R1W #C)L7_2Y "B/S3Y&F/S!@1U4U-L,M1T'G$D'E+ +#  
+       3Y3Y3Y3Y3Y3Y3Y3Y1W4Z7^7^4Z2X3Y4Z7^1W,R-S0X1Z/W,S2[3]2Z/U-O/R7Y>b$1##9'D&F+O/Z2^+S4[3U5Q6L)9+<3Y4Z;c-Q/T9 $E5]1W
+:'I1U#C2X =2X-N%C3W*J 5"A =#"  !       
+3Y3Y3Y3Y3Y3Y3Y3Y-Q0T3Y4Z1W/S/S0T1W,O'K(L,S1Y0X,S"D+R6_9c3X0S3T8Z!-
+).G2S+M+O-X7d+S0U.N1L3I&5'72X2X;c,O-R2 !A4[1X5"A.R$D9a !?4Z%C ;6Z"?' ; 5#  '   
+
+
+      7]4Y1Y0W1X0W.U,S0Y0Y/Y0Z0Z/Y,U+X7k'S'N+U2[4_0T5[)K/'I-Q3Z'M/X?n.G *'!;Z(B'A+E&D#A3W*L !@5^2Z#E%G1X3Z>d0R0Q1#=6W)G+$B(M,S D$N1b'K!@+M!#< ) * #
+ 
+ 
+     4Y2W0W0W0W0W.U,S.W.W.X/Y/Y.X,U+Y1b'S&M&N+R/X.R1U'I,)K-Q-R #F,T6b%<!&/K!9'@'A+L#A1S$D&F5^7a$F(L1X4[2U2U&C
+7 !;9Z#@'&D(M&J ?#L)U@=!@ + 1 $ 
+   
+
+  
+ 
+ 
+1T0S/R/R0U0U-S+Q+Q-S-T.U/X.W,U+T(R(R%J!F$F)N-O+M&B',M/Q(I "@.S0U$:
+/&? 1$> 9-L"?,M <.R2Z:d$E/T1W1X'G1U 6 9 !87U !9#)F)F#A<(L#E . 3 ,4
+(  !    /R.Q.Q.Q.S-R)M'J(L*N+R,S+S+S*R+S #K+U $I D !B%I/R*K 7#+K+K#B !?0U,Q'>%'A#< .!:/)F 8'F
+84Z+O5^ "B4[.S'J"A+N 7 7 !9/K 5"=!< =%D-S?
+,
+," 2 +$  /Q.O.O.O,N*K&E "@$D'I*L+M)K(J)K*L !C,S#B!A!<!>0M(C' #<!8 8 !;-K(D!7(.J!8 0 7+'E 1#A :4Z !B+Q !@4[(K 6!?#B#<
+,"6!5 ( ##1'>*C - ' # '   
+  +L+L,M-N+M(I #A ="A$D'I'I%E#C%E'G"D,S <!A!; 3(C 8$#":
+. :#?)E'B&%'A
+. 0 2
+1'E 1!> >-Q
+:#E !A.S$E+ :<#=) 3 ( &  !5'> 6 ' # #   ! 
+    'E'F)I+L+L(I#@ ; !<#@'B&A"= :!<#>#>(G -93#.
+# ! '1 3#7 3 5 ' 3"
++' 1!: 4 ="?#A
+6 !?#C#C!>$
++!7 . ' '    '4#0        #@ $B'E*J+L)J$A !< :#?&A%@ !; 7 9 !;#?%C'6 0  #  ( +
+ - /$("1 1( 0 1"; =#@ 8
+7!@'G :<%##; % * #   '4& 
+ !
+     &E#B#B'G+J(F "< 6 !8#; 7-J$= +#; 3'>!7 #$: 
+  &   ' " ( "  ' +$5 1'B&#>!:, 3.  &#4 !
+
+   "     
+  
+
+'F "@ !>#B'E'D !:
+3 3 !8!:(C 2 ,#;( - $ )     #    " 
+# ! ) !$
+'&>
++ 1(!; 1 19
+&
+
+#.  
+  
+
+     
+ 
+
+&F !? 8<&B'C7 , 2 3"9%= ' *"6  " 
+    
+        
+
+   '#8 '-!11  !  
+  
+   #B = 7 ;&B'D 4'!8
+.!8&> '
+( .  
+'    
+       
+     ) '   *!  6 '    
+    
+   8 6 3 8!?#A /$= & .#9 ( !   !   
+
+ 
+
+
+  
+    !
+  ' !3  
+      
+  . 1
+0 28; * #<#
+'/ )
+   
+ 
+           
+
+     
+%  "/       * -
+.
+. 27 + 5 ( & " (
+"   
+ 
+   
+       
+ 
+  '!  
+
+ 
+  + 0 0 - 07 /#21 ) ( (     
+ 
+     
+   
+
+  (  
+
+
+
+  
+   # 
+#3 * # 
+'  
+ 
+   
+  
+   
+
+ %  !- $    
+  
+  
+
+
+       
+       !   $  
+   
+
+    
+    !   
+ !  
+       
+
+    
+ 
+    
+endstream
+endobj
+26 0 obj
+<<
+/Type /XObject
+/Subtype /Form
+/FormType 1
+/PTEX.FileName (./pic.pdf)
+/PTEX.PageNumber 1
+/PTEX.InfoDict 30 0 R
+/BBox [0 3.18719 440 311]
+/Resources <<
+/ProcSet [ /PDF /ImageC ]
+/XObject <<
+/Im1 31 0 R
+>>/ExtGState <<
+/GS1 32 0 R
+>>>>
+/Length 61
+/Filter /FlateDecode
+>>
+stream
+H‰Òw6TH/æ*ä21¶Ô³´4R0
+
+endstream
+endobj
+27 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/XObject << /Im1 21 0 R /Im2 22 0 R /Im3 23 0 R /Im6 26 0 R >>
+/ProcSet [ /PDF /Text /ImageC ]
+>>
+endobj
+34 0 obj
+<<
+/N 3 /Alternate /DeviceRGB
+/Length 744
+>>
+stream
+
+
+
+endstream
+endobj
+35 0 obj
+[/ICCBased 34 0 R]
+endobj
+37 0 obj
+<<
+/FunctionType 4 /Domain [0 1 0 1 0 1] /Range [0 1 0 1 0 1]
+/Length 33
+>>
+stream
+{exch pop exch pop 0 exch 0 exch}
+endstream
+endobj
+38 0 obj
+[/DeviceN [/Red /Green /Blue] /DeviceRGB 37 0 R]
+endobj
+42 0 obj
+<<
+/Length 774
+>>
+stream
+0 g
+q
+226.7716 0 0 150.8031 72 569.197 cm
+/Im7 Do
+Q
+BT
+/F1 9.9626 Tf 72 559.234 Td [(The)-333(image)-334(had)-333(originally)-333(16)-334(b)1(its)-1(-per-chann)1(e)-1(l.)]TJ 0 -11.955 Td [(Embedded)-333(one)-334(has)-333(16)-333(bits-per-channel;)]TJ 0 -11.955 Td [(the)-333(image)-334(has)-333(been)-333(read)-334(in)-333(16-bit)-333(color)-334(resolution.)]TJ 0 -11.955 Td [(Try)-333(out)-334(dif)1(fe)-1(r)1(e)-1(n)1(t)-334(gamma)-333(parameters.)]TJ
+ET
+q
+226.7716 0 0 158.7402 72 350.736 cm
+/Im8 Do
+Q
+BT
+/F1 9.9626 Tf 72 340.718 Td [(The)-333(image)-334(is)-333(calibrated)-333(with)-334(ICC)-333(profile.)]TJ
+ET
+q
+226.7716 0 0 158.7402 72 180.041 cm
+/Im9 Do
+Q
+BT
+/F1 9.9626 Tf 72 170.023 Td [(Hacked)-333(image)-334(color)-333(space.)]TJ 231.509 -114.733 Td [(4)]TJ
+ET
+
+endstream
+endobj
+41 0 obj
+<<
+/Type /Page
+/Contents 42 0 R
+/Resources 40 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+33 0 obj
+<<
+/Type /XObject
+/Subtype /Image
+/Width 200
+/Height 133
+/BitsPerComponent 16
+/ColorSpace /DeviceRGB
+/Length 159600
+>>
+stream
+çdîõìsè1ï=ìÇå#ïŸìˆçšïgí[çêñYî~æ$ðbíAè|ð€î;ë ñ¡ïtêLòï–é+òîïëç£óÀïãëòYð@ë&óoðÌêëósñëUôñÔënôñòYëDôõò?ëßô–òUêÂôRñwéøôèñŒìºõóí=õîó¼ìõõîó‘ìŒöÆóÍîÜ÷õí‰÷6ôpî~÷6ô°î6÷™õî¾÷ŒõKï÷„õXð‘ø`õæñòø¦ötïøXõêðÀøzöð·ùöÁïpø>öðøöxð„ù öäðDøÚöŸñ·úF÷ðñÔù»÷žòPúSøóâûøÀòâûø»òûú\ø,óšú»ømöûþùÌóïü‰ù¿óHû{ù ôxûøÕójûŒù`óÖûäù²ôÎûOùóû(øøó¼û¯ùƒôlüùïôZû¼ù(òaûÒù(òóúðøÞòúÚøƒñÙûø¦ò™û$ùòÙûrùOó3û>øëò¡ú¦øiò!úWø1ñ»úŒ÷ëñHûaømñUû:øvñ®ú5øñYú,÷ÚñúÍøówùó÷Éò»úzøð
+í ùöî!ømöÆìþøõGíR÷¢õêë7øø÷ôì@÷ãö’ìUö…ôäì+öÎöQêç÷ôê÷³ô¹é<÷øõêÎökôEç†öZôÓçöúô¨ê öõóÑäÈöQóžç
+õÐì÷ýôAì3÷rôÓíRöÛô°ë×ø
+ôßê ÷¢ôì²÷ ôRìIöÆõrêÛöþóë*÷Gówêõûóé]öŽòóé+÷?óê;õòèö/ò÷è õîñÔè®ôÎñÐæ¡õKòŒæŒõ-ò{å¸ôŸñfãàôÁñ.ä?óïð•ãíôVðÄâáô_ðUâÐòPïÅáwósð·áfófðHâróïÁâŽòwðsâ›ñ]î­ß
+ñïÞ–ðHížà}ðïNÞ~ïší¢Þ«ï[íêÝqïAíÛrï
+ìéÞÇícëÜ¿ížëÊÛ×íêaÚíëÙ^ì¡é]×dëµèAÙßêÂé]×lê“ë"ÔáêüéÎØ éQç’Ö,èýæçÔfè5ç;Ò¢çÌåêÐåÙå~Ñèå]åÐôäíã’ÎÖåeãaÏ(ããTÎÝãâ~Ïoâ<á‡Ì˜â@á ÊMáfâÈÛá àÂÇà'ßÀÆ+ßVÞ¿ÇyÞü݆ÇbÝŽÝ®ÇÝmÜeÆÜ9ÝÃbÛ‹Ý8ÂÃÛzÛäÀßÙ5ÚˆÀØLÚÑ¿6Ø4ØɽáÖÄØmºNÖ$Ùº@ոׄºGÓ»Ö$¼lÓdÓÓºßÓÏÔ"¸FÑ©Ó··Ð…Óÿ´žÐGÑ¥´8ÎùÐð´ÎºÑ/³ÍCÏ‚¯8ËìÎݬËhÎt«ÂÊtÍÈ©uÉá̈«{É˪¨åÇRɈªÅ­Ê§OÄßÈÇ¥œÃØǺ¤;à ǀ£âÂƽ¡=ÂNÄtž|Á=žúÃWœ¾ïÂË›ÿ½ôÁœšé¼-Àú˜î»sÀ6—g¹¿/“©·¬½•··½¥R·¼-‹â´ü¹qŽÝ³(¹¤ç¯í0ëæ­í…ë"çÌípë çhîGìèï[ìúéïRí5ê&ðî.ërðfîGí=ñHïŽëYñ®ïšêÎò ï£ê±ñáïcëôò*ïçêÊñ®ïšêÎòïÞëÎó&ðûê7óð|ëHó^ð³ê~òÄðfëYó/ðóìô<ñêì²óÚñ·êüô ñ]í¯õ5òÝì¡õòÄíêõOóï’öZôð·ö
+î”öpô<í§ø
+ô¹ì÷aóüìñöíôRí
+÷ ôxì3ö…ósëÎ÷2ó‘ìõ»óê×õ÷òîêÛ÷-ó*ê õò&çÄõÃñYèVõKñ{ç&õ¡ðûèJõ”ñ¡æ5õ¶ðÑè=ôÆñ{èõôñ¡ç¯ôxð·æAóÀðã\õBðûåró|ï§åÉòí|äò*ï´ãò³ðkä’ò;ï°á¤ò?ï5â(ñÃíêãð³ì¶àdðûíóà\ðÕìéáÉð•ìàhðsìßåðžìÞrð3îà#îµê¤Þ,î%êøÝ–îºì/ÝŽîõëDÝIíÈêvßìàé­Ü1ícè¥ÜIìé ÜEëLç’ÙNëýéÛØ8ë"ès×\êµè5Ö,éæEÖ
+Ÿü¿ÁÂ]Ÿá¿z K¾YÃ
+æ^ó^îñæNòªî‡åeòíâäòÝî±ãŽò7îäyñfíAâñòíêâ8ñ!ì^ãPð¯ì3âÝð»ì@á˜ð|ì'à#ðkìÇßáðêðßwðZê­áoïÁìàî¾ê¹àPí¸éãßÝì®è¾ÝÏîGéUÜ‚îiênÜßìè(Ýì/çGÜ9ìæüÜmëèZÙêvèsØùêƒæ”ØPèýåÍ×éßä\Ödé@äPÖ ç’äöÔ"æüäÌÒæ­äÓóäñã}ÓçäŠâ›Ó0ãÜá-Ó|ãÈáNѱãißöÑ;âŽáÎ9áÍàÍ÷âàuÌàCÞ,Í™ÞÔ߃ˇßoÞ,ÊÞÇÞËMÝ»ÝóÊeÝŠÜmÄæÝeÚ\ÄpÜYÚ´Ä7ÜÙNÅtÛ.Ù‚Å Ù×ÙãÄÙŠØ Ãj×äÖ(¾Õ×dÖðÀÖhÖ4¾NÕìÔ‚½¸ÕÕi½2ÔŠÓߺpÓÔ‚¼Ñ¥Òº»8ÑzÑŸCÐÑ;¸
+ô¹ò{ìjõeòÙë¹ôAñÈébô_ñæßõêðÙéô’ðîêósð‘é]ó"ðHèAòÌïŸæ=òî˜èAò„ï_æŒó•ïNæñÔîiæ ñ&í¼åîònîiäXò!í‰äÝðÕìàåðUìÇâYñaìDäÄñ?íã‚ïtë‡âñðë©âðëásï°ëà¦ïÞêµß°ïéÞ›ïtêPásîêà+ìÔérßsìbè5Þ(íÍèÜií¸é­ÝMë×çúÞQëLçyÞèêƒç"Ù×ë¤æ=Ú|êüå¨ØéëaåUØêeä†Ùëè(åÙºçÑä§×pç*ãÖ|ç âDÔ‚æ±âÕØä«àlÔ–ä«àËÓ¿ä?à`ÒÂãžàçÐzã/à¢ÐáòßÀÏÉâßÉÏäá˜ÞËÐ¥àTܦÏüßåÞËÑà#ÜÛÈ©ßgÛ«ÊÂÞvۿʦÝÚ\ÉÜE×üÈâÜ-Ø@ÅQÜ ØÙÄÓÛ Ú;™Ù×ØÑƃÙbحúØHÖüÁP׈ÔÑÁ_ÖˆÕ5ÁÍÕ´Ô ½mÕeÔ¹¾ëÓßÔ"½*Ò¾Ó,»{Ò;ÒºÑRÏS» ÏàÏ_¹ùЩβµ³ÎhÌ´ÑÍ¡Í^±=Ë—Ì„³ËÍ˪³‘ʾÊU¯ Ê#ʯMÉ/Ç °ÇKȳÀƇÇ­EŎƽ¬ýÄÅĬ¸Š¦üÂ;Ä;¥ŽÁëÃ[¤¦ÀŠ¤y¾!À®¤P½2¿rža»îÀT±ºV¾™›«º•¼‘¼¹^½—³¸!ºæ˜›¶/ºK–µß¹•®³·¡‘ű­¶xçŠë¹éÊçÕê˜évèNë êé¹ìëê]ì8ëeéHí§ëýëãî­í5ì3îGìbíVîõíÑìïïîvìïÉîeìUðDî­íÕñ ïRìIñîºìsñˆï‰í
+ñï¼íxñ•ïlîCñîïïì{ñ²ïôì/òïüíòóð³îœóñ&ítò„ð|î×òêñîó3ñDìQójñHï_ôòîTó¸ñ²îPô4òîñôµòˆïFô°òˆñ?õBóLïÖôõòæðoô›ó ò?õ”ôòˆö&ôZñöíôÆïçöcô<ïøöZô0òj÷¦õrò¦÷ õ5ó¢÷Òõîô0ø‡ötôcøö¨ôø¦ö¬óÄøŒögóÞøïö½ô¨ù(÷)ôŠøüöõõOù®÷žôlù‡÷añøÞö¨óüøÑö×ô–øçöèô°ùd÷„ö"ùzøòÄùBöúòùÕ÷³ô£ù÷¸ôpù÷¸ôùÄ÷žñîùz÷)ó¯ù÷nô8ùÄ÷¢õùz÷Éóëù‡÷]òâøÍö›ô
+ÈcÈ¥¯ÆëÅù°—ÆhÆtªkÅ’ÅÌ­¯Ã«ÅJ«?Ã<Ã¥âŽþ¤ìÁ…ÃÁ¥âÀ” £C¾ÜÀ礴½#¾Ü¤?»²¿½¢V»²»Ðœû»%»˜š¦º »a™U¸±¹Øš$·ò·Ø™¶µ’¸v–´C¸Q”5±µ(æ é¾è æéãçöç}éÂèÜéDêéãéøë˜ê“é¾í ëUêÛíVëùëíVêëìIîCìÏí5îXëðìjî¤íë"ï=í§ì™ïìÏì¡ïãí¢êiðí…ëÂðbíóîèðîœîñ²ð í¸ñ•ïÚëLðÄïí|ðÕïïñƒïÞí¢ñ»ðìjòïtîòÙð·îèòóñUí«òªðÝïó3ñˆïÞôZò!ð³óïòPð³ôÆò·ðsôŽò]ïëô½òPñ!õKóoòCôÛóÀò¿ö@ô–ñöMôVñLö/ô'ñ]õÝô#ñ™öôgò¡ö£ô–ñ3ö¨ô’òj÷aõóø÷Öõ¶óëøöDòî÷¸õ®ò?÷¢õ`óç÷Œõóõê÷eö¹õª÷Éö¨ó/øâöŽóâø¦ö£óømöpôlù,÷-õ)ù5÷nõ ø·÷ ôcù÷6ò¦ø»ö›ô£øï÷ õù÷{ôEù5÷:ôÎøë÷ˆóUùöþô'ø¦÷%ôIù=÷TôEù=÷wôpøç÷:óøùF÷?õ`ù²÷¸ô
+ìËë©êìõé#ëLìþéðëôîCêzëùîêÒêÆî ëëÎîê ëî×éðëµïÚë@ëýð@í’êçïçî.íð·îí,ð‘í³í¸ñŒîaíâñDîíïñ²ìIî”ñ»îÂîrñjïøìÃñûïÉî±ñ¡ðïÒòðwï§ó"î©ïVò·ñnîeôñîïçóçñ ñó¼ï¸ñYóQññ·ô–ñ²ñˆõBòCñô×òÌïÁôìòÝò÷õXôòrö
+éQê~ë×æÓêíé8ê±îêzé©ípëê7ì¡é‡ì”îTêçìUîTënë3îºê¤íî˜êaì<ïçëë;ð
+ñLìIîËð·íAížñ íÙí|ñ3î”íûò.ïÚïRó*ï=ïVóYï…ðDòÙðwðMôZòïô
+àßÙ×ãeà¦ÖÐãÈß“×PãÐß ÕâéÞrÕÀâ,Þ5ÖáÝŽÓPâ@Ý,ÒáâMÝÓ ßÝÛ“ÑßþÛÒÕßgÛNÐèÞ’ÚÐ^Ý’ÙÎAÜû×ôË*Þ×pÌ·ÛŸÖ˜ËôÚ¨Õ¤ÉÝÚ`ÔµÈ_ÚÑÔbÉmÙÓÏÇbÙŠÓ4Çÿ×ˆÓ ÆÛ×PÑÜÄý×4ÑÅaÕiÐìÄ,ÔFÎÊÁIÔͼ¾þӔ΃¾sÒŠÍ$¾sÑÅËŸ¾ÐrËI¼³Ïkʦ¹·ÏÍÊh»?Î\Ç乨ÎÆß¹ÌÅŽ¶³Ë®Ä]´vË:ë±@Éøć´GÈÛÄ]²¦Æ¢Á«±
+ÆëÁ÷±HÄÄÁ¯®lÃÜÀ«qÄÀ˜ª(à ÁE¨ Àr§Àç¾4¢žÀ.¼ £X¾Â»;¢À¼ö»£¥×½#¹ê¢q¸¢·/™*¶Ðµæœ¸¦·j›¸·¨¶Áœê·+¶qš­µ³è›r³
+æZç â£æßècãùèZéãàçÈè(äçXéå#èêä³ç éMå—è1êðæé éå¼éë˜å¬é'ë˜çêé˜ëßèñé×ìÔçêëì¡èäëaì„èØê7í³êêëí³é]ëßígéUíížê&ë¤îé+ë]í¯ê“ì„ïšëãì8ï‰êøí(î×ë˜í’ð„êÊìÇðªê¹êëðoëôìþñ!ëÆî]ñjìíî]ñÔí¸îeòî6ðwñÝîað¦òïpðñÈð7ïÅòîèïpó&î‡ð¢òÐî%ñò ï…ðbòæðbð@òÄîäñòÈî×ò!ò!îLò*ó^îäñûô<ð"ò&ô_ò?ñ®õXñ7óDôEð3ñÙôZðòÌôþñLòfôEñ²òUôèòHñ²õ‡ñ;ò.õ>ò÷ó/õƒôòõ¶òñêõÃóoò{õróHóëõ»ôóDõóoó&õÌó3ójõóôòÐõÝòˆòæöó&ñîöó‘ñáõûóUóÑöcõ1õõûõ¶õ öŸôùó¼öó¦ó‘÷jôÊònöõô£ðÌõÙóÑñÿõ-óôòõSóüî‹õióñDõóoï¸ôµó*î6ô0ò ð»ô'òÄîÜóÍñÃîÂóˆñíïò¦ðóíûò®ðÝì²ò7ð7ê]ñïpî¤ò¿ðîíNòjðDíñÐïëìúò?ð@ê½ñ²ï…ècð/î2êzðÝîèéðžîrçáðí…ç’ïãíšè‘ïïíÙæÊïÍípèð@í¯è5ïgìõç ï}ì©ã«îTëå´îmëµæAíâëƒç–î©ìIå~íâënâÀîê‡ãØìÏêeåaíFë
+Ö4ÐäĹÕQÐvÄîÔªÏÁcÔο®Ó Î=¿Ò†Ì¿öЉËƾ¾ÏØʽuÎñɧº{ΓÉé¼hÎÇ”¹6ÌǺ¹ËtÅB´kËÄJ³>Ê
+íÍé@ícîƒéDì/ïÖêYë ï[êLípïVë3ëãð|ëôíÕðìàïðoë˜ï´ð/ëaîðêì'îðÿíïAð€ì©ïŸñ&ìþïNðîïŸñnîðªñ.ìíññ?ìðÄò¿íûðªòí[ðžòªí_ðžòŒîGð·ò®îÓñÐó&î”ñó*îñð7ówï…ñáóDïñ•óïFñ²óïî˜òwó|ðóñ•ójñ7ðÀôlñÌñõSð÷ò]ô4ñrò·ô’ñòêô+ñPñûôgð·òÿôEñ.óoôcòHñ²ô_ñDò?ôþñƒò7öòÝòõ»óoó õ`ósó3ôùósó¯õeòòõKòCñˆöIñÌòˆõ1òðæõiò³òHôÛòŒñôVò¦ñ;ôònðbôÎòŒðbóïñ·ïïó¯ñûîô'ñÌítòˆðUícòðìÔñòð ì¡ò*ïÚícòð+ëñ*îýíVñï´ë ñ.ïFëð¦î ë×ðâïê/ðæî­èýïÒíÍêvðfîréãðHîéÆïëíÀè¾ï…í_érï’íšèxï}íFæ î¤ìæAî%ëÓåî‡ëÎãÈí
+êÂåÕílëæí¯ëDå@í0êðãiìÔêPâéíê/ãŽìŒéìã³íÄê“äåìÔêvãì^é¾á{ëÆè²â,ê±èEãëè¾áNêôè1à3éÎæøáê3ç`àßéÆç7áAé˜çß¼èRæß1çîåÅßÉèåâÞfçmåÞ›çmåÜvçTäÚ¼èxäÝAæNã–Û³æºãPÛÓå#â~ÛÃäŸáîÚéäqáœÜ®äeáöÚ°ä‚ásÙ%ã3à?Ùã\à;Ù9â—ßÀ×àâ¯ß>טáîÞôÕØâÞÔÕ1áÑÝuÔ:á)ÜÓÔíáÝÕ)ß“ÜIÒí߇ۓÓpßÅÛôÓÞøÛÑbÝŽÚSÐÜßØÅÏ‚ÜUØ$ÌÝ
+³tžkµ²S˜˜µ–±¢“³³°•8°$­?ó;½zžìƒ#LyLxà`‚hmUOÓÕèÈ°Ü-ÜÏСækç åi±vµÉ¥•äåäößÝôIõ:ôcökö+õ÷ïï¼íÞçqì^ìçKìÇì<º~ÆÉCÎíÖÌÕ„ôäöÎóÑñ]ñêð¢ùïúO÷2óÍô…ñfêøìéé'éêægéƒë7ãõé±ëräÙéãê˜åQénì@æ×éjëÎè5êeìwç&ê˜ìèýë”í–è=ì#í³è¶íížê&íÍîÂêƒë×î;èÃíRíóéœíxî‡êHítï’êrì+ï,ê]ìéîmëzìíïêzíVïê"íðˆëíûð"ëYïNï[êÛïçðíïñìfîñðûëÓîÜñrì+ð+ð÷ílïŽðîìÏððÿìúïcðêìäïüñ®íâð„ñÌíÈðªðóî*ðÝñícñòfîzñ3ó&ïšð¢òfîÜñò¿îñòˆíÍñ{ò;ïïñ»óLð·òLóoïñ7ó|î×ò&óïNðôðˆñ]òûðoñÌòUî©ñóçñnñŒòªï9ò¦òæðÄñ]ó*ññjóˆï‰ñLó³ðÿðó^ñÃð@óbðÝòò{ðoñŒòrðÙñò®ñæïŽò÷ñfîròûðíÞò„ð îÓòðæíæò7ðëòð
+áwÚ”ä³á¹Ùãõà•Ù%ã@à/ÙBâeߨØâß׈âŽßØáêÞäÖ¼à¦ÝóÖ4àïÞQÒÍáâÝÓ„âÝ×ÖÜàuÝyÔRßZÛ×Ò†ßÛFÒ~ß!ÚýÒÞfڠБÞvÚOÎåÝïØÑÎÝïؽÎ&ÛvÖüÌŸÛ¿ÖË„Û¯Ö<Ì”Ú3ÕÈË2Ù¾ÔÍË ØÕÔ.ÉÎ×ÜÓ)ÉéÖxÒOÇ,ÖˆÑrÄ|ÕüйÅÛÔjÏCÃÔÔnΧÂáÓ„ÍÐÂ’ÒGÌâÁ˜ÑrËð¿+ÐvÊ€À²Ïèʶ¿ÛÏ<Éñ¾NÏ É ¼lÎhÈ)½9Ì„ÇN»{ËUÅ̹ÊxĦ¶ÉÉÊúÅÇÂé¶AÇmÁo²KƵÀ±zÅò¿A³>ÄR¿'¯öÄi¾0°!Â]½–­áÁ+»É®7Á#»)¬%¿˜¹ö§Ž¿E¹|¤^¾¯¹³§S»Ì¸¤Óºœµ’£ºY´} ºNµê¡§¸Çµ ¾·Í´Ñ×µ_²Ÿë´Y°Ê™Ð´¡­ì“¬²+®‘¯ä¯c–e&!\<ê9EŸ¾c"Ã(ÆÄ1v5%ù;óDû/Dp
+iBõE¤";¡z¢ô…Œm«tçYugÅljA/”%YCb•^•LÄ,J6p .þÊb}»a½±£±¹î¾‘¨u‰±ú}J®Æ²ý¢ÜääŠ×°òÕó^î¤÷]ùm÷Úî.ò³ñŒðóõóõ÷öõô}ï
+îÏì”ëùëðæßñ»ñ¦íJó3ó|ï0ëzíÄçôõ$ïAñ?ñaî­ë‡ìnæëÓì+çìÇì¥è¡ììˆè=ì<íçÝìÏìjè,ííèñìQî©é˜ì3î6éUíÙíÑé<í‰î!êîCî2ê×í¼îé4îPî‡êîœï0ê‹îTî¾ê±îrî×êœïšï£ë¹î¤ï0êœîñïüêôî±ðsë@ï
+ïêzï=ðHë;ï[ï§ë]ïcðìUï[ðâë±ïçðëßïçðˆëÂï$ðÄí_ð»ñ*ítïÖñ¡íð‘ñ.íðÀð³ì®ðfñí–ð"ð¦ì®ïôðâíð/ñ•î¾ðžñÃï,ïüñnïðòHïüð7òHîð3òîìïòîðoïlò!î ð|ñêîìðñÝï[ïÖò{ð3ïÞñ.îÏððæïcíÿðâîËï¸ðÙðsïðæï0ìfñíí$ñî*î?ñ!ï´ìõñaíÀíRð¢îýë˜ðbî ì¡ïøîiìÃï…î]ëýï‰î?ì+ïÚížë×ïlíÈêÂî±ì©ëjîäì'ênîaìúë]î˜íé˜î*ì<èºí_ëéYìäë]è„ìþë‡ä#ìnê æ„ìÔêaæìUê"çGì¥êÂé/ì<êãæßìQêeæìéüâõë7èºâ<ê×è•ãýëè‘äTêvèRá éÂçmßéévæ­âDé¤çhâ£éçákèoæNßVç?åß“æÛäšß˜æôäáÝæbãýÜãæ¶ã’Ü¿æ,ãÞIå@ã/Ü1äPâ<ÜßäTâ<Üçä‚âMÝÇäXâDÝ‚ãíâÜ–äqáÑÙ-â@ßÚ/âÀàÙóâáßíÙªáÕßZÚhâ<ßÍ×\áÉÞ›ÖáÝÏ×àuÝ’ÖààËÝßÙ^àÞØ@àÝ‚Ö„ß%Ý<Ö ß6ÜQÓçÞËÛrÐ¥Þ’ÙïÑÐÜëÙBÏ,Ü–Ø Ï ÝŠØ½Ð‚Ü~إΗÛô×tΛڼּËÙÚùÕè̛٢ÕaÌ#ØÝÔ¹Ë:؉ÔÉ3Ø™ÓlÊ'֜҆ˀÖÀÓ)ÇÿÕüÑVÅÕüÐĵӯΟÆJÓXÎé¨ÓTÍ•ÀÐÒÌ2ÁAÐ7Ë2¿îÐÊÉ¿ ÎÊÉÁÌŸÈâ½ ÎAÈ9»;ÌÂÆ­¹¡ÌFÅÀ»8ʶÅh¶ ÉåÃ"µ É噵ƒÈÁ ´¥ÆªÀ[²»Æa¿ê²»Äã¿ ²ÜĽ–®lýϰæÁؼp¬WÁ”¹Â¨°Á º)ªÀº‘¬3¾~¸Ç¨D½L¸C¤1»†¶§¹¾³Ò¢Øºa´  ™¸N³¡(·É°žâ¶™°ižMµ ²´œ8´C°Lœç²®Zš‹±—¯ •o°/«?r-}^ªá (¶ZBT[üÛÜ«²—ØÑ #C—”Wô—~ ÐWW¦ng_K;‹F4õ(@ d@Þ6¥ q"|ã
+àߧ
+¦ë!
+ë3îrì3êeî6ë‹çöíJêëë îê3ê]ípë7èèí§ìèàíëjèˆì”êiérìˆê“æçìIêç ì¡éMæôë¾éHä#êÎèèåêƒè9èë
+åeéµèäméôè,åê7èAä?êçÿäé{ç}ã¯éÓç–ãÌéfçGâUè€æRáfçáå¸á9çÙå¸â‚è$æ âñè æ9àÆæ˜ä¼ß“æ=äÞ,åâáà™äåâþàïåã}ßRäŸâ¼ÜeãqákÞ~ã‚á¨Û¯âÔà®ÜŽâÌàÂÜÇâ]àÙ®âHߤÙ-áÍßBÚ/áVß)Û*á¤ßsÙãà•ÞrÛàçß ×hàªÞ
+ò ¡d~
+ë!â!¬[òuãC(@ù,2v£PêXM=3"7.>Ô'Ë–žž[‰ÍÊ'³§NóT+*‚„‹Ø~!ª€¯Qš„¥^©­’ÑjÓdÃbêëèå‡é ëœà7ÚÍÝYÖ°sz7jˆË>Ï<ÀÔèè²ã§íFíšç.ø(ú9ù#õ¶ö/öò•òÙñPïRï¸ì'í¸íšé8õô…òjìúíïèýì@í
+ç?ìMìéègîTíóêeí[í‰é+ígîèˆíží«êí¯í«éUííÿéjíÍîéní_í«ébî!î%é­í¼í–é8íâî?é×îeîzê"î‡ïê¤îµî¤ê“î.îmé©î.îÂê7í¯îºê¤íÍíÈé˜îPî©êHî*îCêîýîìêrîìîäê7î¤îÏêÂî%îËéüíÙîTêÒî‹ï,ëaíÑïVëãî;ï
+ëPîXîí0í³î¤êÊí÷î%éßíîXë¾ìõíæì„ìØíÿììMî êaì„î¤ì@êÂíûêœëzìwê;ë‹ìÜê?ë;íê“ê“ìÜë*ê~ìéë]êë ê½êìéÛé¾ì©éìçÿì¿èˆè=ëìéÎé4ë‡êækëìêèVë©è¾èê‡è•ç\ê3è™æÓêÊèRæ érçŸæé±çÄå÷éÂçšå¬é]çêåYé¤çÌåÞé”èäèýç äÄè™çTãíç«æä'çÀæãÈçÝåÙâ³çKå8âç?åàÛæ{äLßåæ¥äXß6æä7àïå+ã#à'åLâ£àäŽâŠß^ä³â«ÝüãàáÑß!ã
+á¬ÛÓâ§àXݪâàÛ2áƒßoÚ#áoßJÛá=ßBÛZàyÞÃÙ¶à…ÞrÚ´à²Þ’ØéàuÞØÕà#ÝÓÖœßÜ¢×ÄÞŠÜi֜ގÛøÕÌÞ§ÛËÖ0ÞrÛä׈Ý]Û¯ÕÜëÚ¼ÔåÝMڌԪÝ4ÚKÓhÜ]ÙbÓHÛvØÝÒOÛNØTÔšÚصЙÚS×LÏ$ÙÒÖˆÍvÙZÕyÌصԮÎýÖäÔµË×,ÓHÊ£×ÒùÈÞÖØÒ+È_Ö0ÑäÈ1Ô>ÐàÇ(Ô~ÏÜÇmÓËÏ­ÆþÑ­Î\ÃŒÑrÌÆÂåÐÀÌÃLÐËÆÂ$ÎíʺÂhÍ°Ê#¾þÍ¡È°¿ŸÌ2ȼòʪÅò½žÊ›Æ¼É„Å+ºhÉ Ãú¸¢È¡Ã¶¤Ç€Áº´©ÇÅÀî³ÇeÀµ(Äm¿³ÇÂýô³EÁ…½b²ÊÁ”¼™¬  ºR¬Àr¹H¬e¾J¸F©j¾7·
+ªÜ¼V·b¨ƒ»º¶¦$»£´&¥Zºõ³¦Œ¸µ²$¥;¶³±@£bµß°¿¡Éµ¶¯Ÿ`±ß¬ÌžÄ±í«­›ƒ²¬w›î°”©â–»­¯§ 7â¬(K±ô;É™Fn5µ:¤i;»E¨Rõ%Ï$PK$Á Dc,.&Úµð&mÅNDT".…CÒOŽG Ty-î Ë2 B FÚ €8
+
+—&jÝ¡ hÒóEé¶`aÚëö5 *.!‚ 7v# )=”$I^]çp^¡k%!|Ph‹¡
+„± ýa,®4zÅè
+çE³Gx"±dêkáKˆŽ‡–RxÚ4Ù<±0~Š²ájIp€EðEåL{'Û˜¹œªzʱѰԥ¯X¯ ŽwŽZ”\rwÑèÔõ½ ìúî ìõ´ º²ªîXïlç³õÙõ÷ò.ö}öäó¯ëƒìéQ÷nø»÷Lójô°ñòììç¯ìÔìØèÓíí³ç}ípîvçìÃìäèõì¿ìÃèkì¶ì®é
+ícíJéDì™íAèÃíí
+èxígíJèýìÜí…è€ìõí–éMícíNéfíVíNéí,íVèñì®ì¿ècíJígèØìþí5èõíJíJèàìŒígéìõìééœí_îçdìÇíléUí_í0é@ìíí¯ê&ë¾ì¥èªìþíê?ëììÏèùìQì¿éì'ítèìì<èVê½íè™ébí0êTéÂìQéê ë­è•êëeçKè|ìéjç¼ëÆæðê;êÊèZéê‡æ¥çCêøèàèÏéãçÿèŒé¹çŠèê“èªæ¥ê3æ¡æìê/åÁæ­êç’çè•æåYêYå‚åÅè²ç.âè åÕäèýækäíçÝæÓåçŠæ âÐçêå¬àøçÈå“áÅçTåâDæ×åâŸçÌåòâ0æVä£áæäPâ†å@ãýßNäŠâmßäŽâàä¼âåßáã»áòßãeáúÝšã·áwà;ã’á½ßãiáúÝeâÈàÏÜYâà?Ý×âUà?Ýqáfß°ÛËáßÙÛàÏÞ¿Û à7ÞjÚlß ÝëÙ-ßÀÝyÚàÝëÙnßÉݶ×Xß Üž× ÞìÜ¿ÕIÞ‚Û¿Õ=ÝyÛØTÞ›ÜUÔíÝ4Ú˜Ô"Ü5ÙÎÕœÛøÚÒåÛ³ÙÑÜÛØ(еÚ× ÒWÚO×°Ó)Ú×´ÐÌÙ–Ö¨ÍçØiÕ1Ì.×°Ô Í0ÖÓ͸Ö$ÓŸÌqÕ„ÒÝÌYÕmÒ¦ÊhÔžÑ~Ç›ÓÓÏèÇÔJÐÆÓ@ÎáÅtÒ¦ÎXÅlÒ¢ÎEƵХÍ7Å–Ï$ÌÃÏrË‹ÂsÍÈÊ ÂUÍ?É·¼öÌåÇm¾¨ÊÝÆØÀ®ÉÙÆØ»
+!­mË÷ ‚{t ŸZ M ü#j«å™£^afß+så&-gØ \åùèæ0S2Ü·þ O E&  ä&@ ˞’(½úá ëW ¥Ö  Ð g¬›ä¦ÓsUpZn$Y €® Åâ$'¶
+N+]/Žð4F:Šî˜U˜¬ucFIÒ'³{[€hZ÷¸½„­,²9¸!£$z‚,eÓqgyoRkÈŽÊÍ´ÜóòÝðâë ì'æ¶ëLëèåÕì3ìúåûììæÏììŒæÓìíå÷ëÛì8æðë©ìç*ìfì^èZëìëýç«ì¥ìíèìsì¥ç§ë ìè ì/ìç«ì+ì<ç¼ìDìMçöìIì¥çúëýëµèëßì ç¯ëaìæÛì„ì^ç¸ëìëìçhëÓë¾çšëèëÂçTë3ìÃæ±ënìè ë*ë×æÛëœë±çhëzì/çÈëjìèàêÊëYçÙê"ë©æÊé
+êç?è²ëæé
+ê~äHèéßäŸç«é­ç&è¡é{æçåê åÞçšèèçCçéDç æøèÃçCç«éè9å÷éµåzå´è¡æå#èä§å8é+åÑäŠèåÙä#ècäÔãqçTã+á=æˆãiãýç2ä«â¼ç?åváAæä3ãuæäÐâ£æ(äŽâåÁâÄá‡å‡ãÐã‚åzä£â³äáãÔàÂäÝãPßRã§âYáJâéà¾ßÕâÔßkà`ãDàLá ã’áœß°âÈáwÞ¿âÄáVßoâ~áÝïâ~àøÞŽâYßúÞ§á´Ý8ÜMàïÞ·Û‡àßÞÇÛ%àÛÞ«ÛZßwÞÛ2ßòÞ1Ü)߸Þ9Ù^ßZܶؽßÛ»ÖÜÞ¿Û«ÔBÞ(Û:×üÞ]Û·ÔbÜûÚÕüÜvÛÕ€ÜEٲլ܎ÚSÖ$Ü Ú7Ô&ÛËÙJÒŠÛ:Ø}Ó\Ùã× ÒGÙf×Ð^Ú`×(ѵÙBÖÌÐìØÕ°Íf×4ÔеÖTÔVÑ#Ö0ÔZÐGÕ¸ÓãÎ9ÔÉÒ¢Ì2ÔvÑèÉŸÓ£ÐÇVÓÏ8ÈÓ¯ÏÕǶÑÁÎÅBÑnͰıÐèÍÅòÏkÌ>ÅšÎhËÃÍÎÊäÂÖÌåɧÀöÍÉG¿Ë€Çð¾ Ê|Æ‹¾ÍÈùű¼)È_ÄJºœÇûoÆlÃ1¸þÆÂ/·îÅhÀȶ:Ä¿PµTÂô¾d¶iÁï¾7³ ÁT¼·²ÀL»w±æÀŸ»•®É¿E¹¬®¾¹Zª½š·/©±»Jµ ªº²µº©¦º†´y§Ã¸ˆ²Í¡N·j¯®£ª·6°^¢0µÿ®ÿ¡K´—­¥¡
+³¬Ï w±­¬œZ²D«‰Ÿ–®ÿ©Â™á®L§o™”«¾¦[( É K‹[Pi!ÙA4Yæé+
+i úÀ'•°9kF.5Ä¥R>Ø©\7 Ð¼Ú w' lGH û ;®ö3¯6ºN  I' ¡kgûñ PÉœ+S" TЛK.$ßo=µ_÷(E-Nø ´ â 2OB‹yˆy'd(ǵ}!ÓÄ9cæ&*ü.<öS ÷ Và
+«[ ûT— Ð ¬B±†ÁÀ"Jï²ÿûDê=%Y/ß+W•H³I"!ù&ô,ŽkE"¿»")
+öÜ"âo8@>=iéÆë×Ü ò ó"îGêYëaå'ê;êüäÙëëeæ,ëjë¾æ ë7ìäêDë‹ãŠêÛëÆäÔëaë¾æsë
+êÛë@åÞë/ëãåêôëYåÿêßëæ=ëìää’êÒëHå¤êœë/å‹êaêßåHê‡ê¨å÷ê¤êÊæ9ê×êÛæ©ëë&æ¶êµê±æ{ênë/äŽê½ë*å¨êPêeårê&êæßê ê;æüéµê+åQéôê?åzèÜé+ãñè®èxãõèÜèÓå¨è1èºäDçGçòãæ¥çîâ³çêèãÈç çŽâMæèäöæwçhä#æðçå´åÉç£æNå÷çå°å
+åââ—æVæsãaæbåâä¯å#æ9ãXäñåêä'ãXå‚ãXâÔåQãuâ£å@âåà²ä¼ãàÛå]ã¯ákäyâÌã3ä\âéáVä\âráÉäãâ¸ä'âùàã»âHàCä'âeá-âÔâDà‘âÄà3à?áÞÞzßþáÁá!ß1âåàÂß6âÌá=Ûüâ#ßúÞÐáß‹ÞEáÕß6݆áoßéÞ$áÝEÜÛàÞÛ!ßwÝ¦Ý ßþÞÛÇß{ÝÇÛŸÞ9Ý8ܦß:Ý®ÜMÞÜÛVÚ Ý×ÛfØÞÛØ…ÝEÚå×ÜqÚtÔ2ÛÓÙ’Õ]ÛvÙbØÕÜÚÕiÛJÙ^Ó Û!ØyÕøÛ ÙÕÈÚXØ<Õ=ÙF×\Ó×Ø¹× Ñ©×ÔÕŒÑ~׌ՌÑüÖÔÔÝÎÎÖðÔ6Ñ Ö$ÔRÏcÕÈÓ›ÍvÔåÒ’Ï4ÔrÒ¢ÌxÓïÑRÈÒõϵÉR҆ϱÉñÑ‘ÏÈAÑBÎMÃëÐ#Ì'ÅwÏ¢ÌFÅšÎXË—ÃnÍ÷ÊÝÃÅÍ$Ê2Â3ÌUÉÀöˇÈk¿§ÉÙƹ¿êɄƃ¾QÈoÅ/»ÁÈÏÄ]¼8ÇÃS¼ØÅ­Â’ºÅÁ”¶3ÄF¿‰¶•Ã¾úµø½ø´ÉÀP¼·³Ä¿½»¯²”À»s°¾ëº­¥¾‚¸Ë®©¼Íº®©»˜¸¬Hºµf©íº)´É§O¸F²S§Ž·L±Ø¤a¶Š°/£µ™®ÿ¡´É­á¤Þ³®{¥Z±Û­†²ªµ ´°‚«Ÿ®Æ©£™®§˜UªZ£Í+ÐïM5rQinè;ɼô$
+ð
+>4È CGŽ¢#ʦž´uv¥,«1Ki"Þ )œ‘_ ¶ .²õI4üà÷?ç¿<
+ñ hb 
+T ½ºü¢š“¶: ]C” å9È+x
+Ž >|
+ë¡(j%¡!Î#à¾'Y,è £|ƒ!a艅Žo0ô›ú
+é©ã–éê¹âùèVèŒä/é/éµä'è¡éQãeé'éøãiéé
+äöèxè•äêTêµåné@é äqè•é<ã†éQéðämé ê‹ãšé'éDä¯è¶è¾äÙè®évã3èZèÏãuèAèÃâŽèªéãHèˆè¥äLçŸç–ã«æÓç.âzççmãHç
+å‚å¤âå4ægã\åå¼äuæ(æ­áúåæçáãéå°â4ãýånãyã»åDâ“äuåâ›äŽäŠãaãuä‚ã/âáäeãã–ãžá5ã
+âÄãâHã}á5á ãéá)âã¯áöàªã«à¶áâþáVáÙâUßíàËáfáJß á{àÞ¯áÞßáßéáâßíà•à•ÞÐß´àËß ÜßáßÅÞ»á)à3Ýžà•Þ’ßwßÅÞzÝãàyÞøÛøàÞ–ÝÞ¿ÜEÜYÞ¯ÜªÝ ß6ÜËÜIÞ1ÜóÚýÝøÜ¿ÛÃÝÃÝ Û Þ]Û·Ù>ÞYÛøÙ×Ý8Û!ÙªÜqÚÑ×èÛèÚ×(Ü
+  _ßCHÊû \ÌÊöTö hÝ » hf
+» @r°~| ­ Bü:€R©Cgò6ŒãâyXo&&ýE6‚£? MWP
+nµMHe>
+ù° 4XÖ ý ºhL8ö-qq\ì18 .ûPÝÚ!T»—^0$û!† ÞF13Y1À‡PQÄÈ¢Or‹º˜ G‚lßáÙ¦ÊMÜzßwÕ]å°çPßéÌ¡½uÏàÇäµMç¯ê ãÈí¯ò¡ìõØ¥á1Þ$Þ³ãLßsîï‰ì@ëPîLèxêçíÑêTé‡ëå÷é­ë*ä’èÇé©ârèJéUá{çÿè¶âvèJèãuè,è1ãåè5è„ã@çòèJã@èVè¡ä
+è|é]âè$èùâùçÝèNâ›èVèõâÝç?ç*ãTè=èoã³æ×çâDæ”æÆâæ€æ¡áÙææZãØåòæwã#åîåâã§å÷æã
+äÌåvâþä¯äúßwäŽäþâÐäÈäÙâ~ä;äŠâ]ãýäââùãXßþãuãØá=âãÌáââÄâíàáâãÈà×â ãÐà3â—âñáÞáþâráÍàÓâÈàªá‡áÅÝëàáoßbàÆâ@àCááƒààà×Þ·àyàçßàÆàà/ß´ßòßVß ß¨Þ’ß ßåÞèß>ß¼ÞaÞËß¸ß ÞnߤޖޣßsÜ9ÞŠÞ†ÝÝ4ÞÜÜiÜEÞ5Ú\Ü5ÝŠÜYÜÇÝeÚ3ÛŸÞAÛÏÛðÝUÝÛÜ9ÚÀÛ ÝEÚÀرÝÚ˜ØiÜUÚ?ÙÜQÚ3Ø ÜEÚÙÛfÚS×ÛÙNÖ,ÛØPÕ=Ú´×4ÖÙ–ØÕÈÙnÖÐÖ¼ØÍÖ@Õ)ØPÖ”Ó<×(ÕÌÔB×|Ô†ÓÿÖ¼ÔÍѽÖÔ’ÐRÕyÓ³ÐzÔVÒéÑÉÔ^Ó<Ï,ÔbÒ?κÓPÑ^ÌÒkÐNÍ°ÑðБË>ÑÏ ÉÐ#ÍãÉáÏgÍ‘ÉÏ<Í ÇèΗÌFÉ$ÎxÌ£ÆJÍbÊüÃÉÌÞÉéÄîËxÉ?Ä‹ÊÈ5ÂÚÉ^ÇRÁEÉVÆÛÁºÈÅ⽞ƭ뻉ÅꬽPÅ+¨¼CÄòÂ/·ÆØ¿ö·¬ÂÖ¿EµæÁI½‹·IÀP½b²¿ ºÐ²±¾‚ºÉ³ƒ½|º@°…¼¯¸®A»ê·[®»¶ü®Œ¹OµŽ«ó¸ ³ï®ûµê³£¨×¶±“¦5µq°3¤y´d®ô¥Û³˜®ô¤á±H­!¢š¯¼«C¡G®”ª Ÿ#­¬¨°¬¯§Oœx«m¦“›ñ«â¦…™K©Í£ï”/¨=£3C=¤>Å‚ÒTð#Íxyu0ËÎGZ6ÜåÕQCWIDð*ÕßTn¤þ
+
+— 7
+ =v‘l L
+ò ñ å,P‹Ü £ MX‘WH²q&ÖUBKÚ!Ã(û)KiwÁádtäÁÒ Ð
+  ‚m/é²:GAÚÊòšÎ GOÞ*H?8”Z~4 àë5…<"7<ñÏâõ‡¹ð,Î&6ÖÖgZ ó+ ¼¼&®$œ¸HÛ1tÝbó.¾ .ë^ >‚ÿû-1&jw@ˆ/b `«_]JSÅoyê·°[8dÓVƒ%i;U_/‰iXÀ3A@#7TZ‚™a,i©ªzžMrÍȲ•}SplYœê•y•Ú¼Ö„Ë>Ø­Ò†ÀêÜËÔBÄ çêæÂÛBëÛìñä'ê“íÞê"çòéìä‚ç
+úFí˜
+ýš
+ FeÎÐ á þc Ó‚
+N-Ÿ‹‡ì¡D
+ÔD}!è%»&ñ!dûG$
+Éd×'x
+‹6º="¡K)*Ñ!¿ä;í, ¥šV\H™¼ZmR’Éårf¢£óQH‡gº2²©lì4í"fÌ4%}]$6¡‰|?o\€PB[ Œ–J»Ÿ{Y¢%C’&V+¬ˆÃUž4„BV25ÿ™iÇHqo÷O16»´ßrÃê"ë”ã«èí=éøìññáì{éHì™æ˜åûçÈâ(äXå@Þ~äŠå4Þìä†åß6ãÔãÐß¼ãíä+ß äšå#ßå'å‚à+ä
+äßÍää3ß¼ãmã\ß{ãuãeߤãÐãàߤã;ã/ßããÞøâñâéßZâáâÝß‹âDâDÞnââ@ßöâ‚âŸßZáRáÕÞøà‰áAÜÓáFá)ݦááÝ<àlàÜ5à#à‰Ü¶àãàßÝàhà}ݲààCÝßåßåßààÜMßRßZÜßFßRܪÞüÞäÜ$ÞnÞzÚõÞIÞMÛzÝïÞAÛ§ÝޛڠܦÝUÚéÝEÝ]ÙšÜmݦÚÜªÝ ÙjÜ‚ÝÙ†ÛÃÛôØXÛnÜYÚCÚÑÝ0ØíÙ’ÜÓÙëÙÒÛ‹ØÕÚÑÛrÙ~ÙjÛ%ÖXØÕÜIÖÔÙNÚxÖüØ™Ù×@Ø<ÙªÕeØ@ØíÖ\ÖàØáÕ”ÖDØ ÕÌÖØ×@Ö4Ö,ÖìÓ£Õ€×@Ô2ÔrÖLÔÍÕÕ¨ÔžÔvÕˆÔ.Ó×ÖÔÙÓlÔŠÓ÷Ó<Õ°Ò
+ÑÐ'ÌuÐÿÏoË—ÏØÎ`ÌÂϹÎtÌ|ÎhÍÐÊ]ÏÍrɺÍóÌ]É3Í;ÊèÅÄÌ»ÉuÇNÌʲÄúÊ®É,Å ÊBÈ_ÆYÉVÇyÂQÇàÅö†ÆúÅJ» ÇZÃnÀyÆ7ÄR¼¨ÃþÀý½Ä‹Â » ÃÀE·¡Á§¾º¹ýÁ6¾Ñ¹À¶¾
+¸÷¿½Pµ’¾ú»²·°½P»s³Ý¼º¹Ø¯|»×·Ñ±6¹Ô¶ñ°¹D¶E²e¸4¶/±¶«´´®sµ
+õ Éât½ý  xR”‰Ë
+‡ØT³)_"Á_M±¥Ë*;ºÚ5*0IÁ
+SE’/ß ®nAL½ÐRÇ ‘òJRñŠÕ@P_jß4q\bN2¯¾|î;B¿s²4£„s!5eÿzÓ9«Kwˆ>"RŒæEòå¨Û^+™¥TÝLiL7¼'nõ:®:\Ð.†xz>e®¬PjÏ@ª±ž}ô^{™l€§içÅp¾Æ«†ãÐäÚ`ç7ì²çšä’æìßã»åÝä~åiÞvã‚ä/Ýmãàã¿ßÅãžãÈÞÔâ“âÐÝšáúâÝ»ââiÝeáêâDÝ áæâ~ܲâ â8Ýqâ<âMÞá-á1ܲàçáÜUâ â£Ü®áJáwÜ»àßá^ÜqßåßÀÝ$àÏàßÝß)ß6Úõ߬ߠ۟ßß:ÚÅÞèß Úýß
+|’ÌÁ )A-¼}i•(•
+0
+‹=—/y|ijf
+NÁÝ €¸‰•:F8aI d ùy ª 7
+Κ>a*_FôÀ™6é†d`Ó={ ¢ C6 ± ¦7®ý8%!þ¹®CrÀ)v%’˜B*x –‚é9â ‹‰-9@ í~®:u @Zæ1ª
+M>Ò&3 Ïq7<Ãñw:¨Ik4 tl3;¢pü2¸¾qK3)ºLP&Ãœ]Ë+Ž¢f0GƒlØ6ø†tX;·"a\3¸L‡YL–ª} H¸™~ÏC(û_W6 ×h¥8kÕn:.ã}ÓAЉÿFVWo7¦/‡òRJ0ë¯ö~NSÌ6¹+žÄÙÛ6ÑÉá°æbàTå÷çyà‰åÕé#á°àãäéÞ(åÁåæàøè•é8àÆëLë‹ãyéüê?âUèEèÓá{æ±çKÞøãä†ÚõâŽãåÚýà¶á1ÛàXáJÚ'àXá^ÚKß àÙÒßÅà•ÚÞüßÙÙ’Þ–ß6ÙÞ ßg×(ÞÞnÙNÝUÝQÙZݢݻÙjÜïÝQØ<ÜëÝ,Ø ÜÛÝã֬ܦݶָÜAÜe×àÛ³Ûì×HÛ~Û—×ÜÛNÛð×|Û£ÜQÖ4Û2ÛnÖ¸ÚíÛrÕ}Ù¦ÙÛÕyÙfÙºÕ5ÙŠÙßÕ ØáØáÕi×Ð×ÜÓãØ Ø Õ¤Ø•ÙÔ×ÀØ0ÒÝÖ¬ÖÕ5ÖÜ×”Ô†ÖטÐèÖ(ÖüÒzÖ,ÖÓXÔÕÕÐÓ!Ô®Ö
+¢ß›Ý¦¢‚œj¤Ì¡ö”Ü£Xžž”<¢dV‘  Ušöh Œ YU$JÆ""suÇ Ëa› GöôÌ4‰? |ƒ˜A
+r ÒqÄSyf
+I)ûñIw® Øz5[&
+îÇW ŸÏjS ° ï›
+ùóé%ö¯Aioß/ë$„§/C*h‘WW,N PsØ3¢ eë-? þ†ÿ< Ý95ñ 6Vó'9 €kã6j8iâ9ˆVqæ9 ‘wë3Z³|Ê5àVq_/¬?Qõ&’úJ'<æUX/æÖcv1¥iä58}q~7~ñ}Í>ûpkŒ0=›|£BJ3c^7ùakX@v.v;C¥¯y5ErÖ„ÐI;*‡fFÔÊ‹VEÀ2‡{H­ ·–UR$'^ølËB øp¸X¾v½x4nÌxà{àrLrqƒfþk?w×o÷tGx¨–>žk—¬ú²”«”¹ö½S²ØÂüÇ›Â{ÚCÜIÔÕÞfàë× áNãÛJã·äŽÝçå¨æ€Þàé/ê àßæ=æ”àëé+é'âþèNèâ@èè™à}é<è¾ãíé8èoä'çæºá{äTãñÞâ4â¸ÛÏß{à/Ù^ÞèßBØ¡ßoßÕØXÝëÝ¢×ÜÜ¢ÜqØÜ»Ü]Ö°ÛÃÛfÖDÚOÚOÕœÙRÙBÔÅØÉÙ5ÓóØ•ÙFÔ^Ø×äÔ¹×@×øÑRÖ˜ÖøÒºÖHÖøÔ ÖÖ8Ò‚ÖØÖlÒ†ÕøÕäÓ!ÔjÕðÑ#Ô:ÕmÑ7ÔÉÕIÐ ÔÑÔéщÓßÔ®ÑÔ>ÔŽÏKÓÔ®Ï<Ó)ӻщӘÓÿÏÑ~Ò ÎϹÒCΓÑÑjÎTѽÑìÎÐôÒÍ÷ÐZÒ Í¸ÎÝÐ+ÌÎTÏôÍZΓÐ?Í7ÎxÏGÊ6ÎÏ_Ê›ÍÛζ̾ÌÆ̳ͥÌUÍÉÒËhÌÒË‹ÊÌUÊÊ‹ÌÉ ÈvÊYÇÕÇyÉáÈgÇ4Ê2Ç(ÆçÉ Ç„ÅùÈsÇ£Ä?ȥǧÆlÇðÆ'Â’ÇZÅ{ÄÅpÄ×ÂÇÆlÃÔÀÅÛÃOÂÄ ÃO½ðãÂ(¾ÜÂÞÁo»‚Â/¿P¼•Â¿»ÅÀˆ½ø¼]¿²¾%ºß¿ç¾N»%¾,½¹A½=»ßµâ¼Šº-³Š»Ô¸Ã´&ºÅ¸³Àº]·ßµb¹Ž¸µ(·ý¶í®û·W´­¶µT²Ø®!´°²a¬,³ä±R©Þ³°§ ²›®°ªø¯À®7©Â®»¬ï©n­Ì¬A¥Ã¬ª¢
+³ @&vwT-ÍgØÇ Ûà— [Ä 7_!­Ñ ÙÒI@ Û ¢uøâ ¤ç4¡©g!y‘ik Ó´hêG <81jþô¬f<Ìj¦
+[ݨ$Û og×ÊcfPö!x]P¹"ì¤Uœ/¼ 6Î-=öN )ç Z\¾*1
+Yké+ö
+ÆxK3+
+Ëy›3O ;n0u zlZ3 ão-<Ûypj32 ßr4.#{@6ég<.دU(>dk76?siä7]—Z>0™Åfy2R]m|5ŽnÉ8x§_P+%‡^È)©éfi6(m+HBx7G`qtíBi‚OPLJ¤Gz‡…ßG¼‹²FákŠTF>Ý‘@N«*ž¥[ð"ugÂJÛ( m­O:(—¿Œsà+™|b§4×@eF5>„A HºAÌDvO¸GÐ: H:B¤M„VªP[a5Wàefi›^îl.nÆcŽfÉn cÂyê{OqãSkw—uzpùŒ!“ÍŠØp@|ƒuù‚f‰Íò„Ü‹-~ü„†ŠƒÈ–š›%“#¬~²ž¬ýºC¼ë¶³É³ÌJÉ^ÌŒÎ&È•È¡Ë|ÆšÄÉ·ÉáÌ«Ð+ÎýÊ>ΣÍÈÎ
+ÐÎõÕÖÒå׬ÙÕÜÛÚåØáÝ Ý4ØqÜ-Üe٪܊ÝÙ~Þ=Þ Ú¸ÝüÝËÚdÞÜÞôÙ÷Þ»ÞfÛ›Þ9ÝŽÚGÜvÛ¿×ÀßJßþØÉÜÛÝØ ØTØáÓ€ÚÙFÔ^ØH×üÓˆÙ÷ÙŽÔ2Ö€×@ÏèÔ"Ô~Ï’ÑÅÑìÍ3ÑvÒ+ÍÏðÐÿʇϢÐÉŸÎåÏrÊÂËÑÏ©ËøΧÏÊðÍWÎXÊü̘ÍnÊMÌ+ÌâÊÅÊŸÌíÉNËÌÈÉÖËUÈËɯʪÇÈËÊÇiÈÈöÇÈ&ÉeÅFÆÈÏÆÈÆ>ÇðÇiıÈoÅJÄÈÆÐÅšÅÇÆÄ©ÆYÂíÄ$ĩ¿ÁÄaÅ´ċÃLÀ#ÄRÀc¿PöÀýÀcÃ1Â7¿ŸÁÀ®½ÇÁT½á¼@¿ý¼¯»œÀL¾†»a¿k¾»§¾%½ ¹=½Ò¼)¶ñ¼ãºù·»º¹î¶¤º¸­³¹ ¶ü±Â¸\¶[µ·¶I²+·¬´y°$µ¨³Ö¯¹³ä²‰°/³•²h«—²V°¬¯²+°bª–°¢®¥©j®Â­ ¨q¬å«T¥
+® á àÊ(.ð›&Q—GŸ¿.˜}ùª“=‹œ °¾@M nP ³{f¾ 1úH/'¸aÁjk
+Øö›Ÿ
+ß!!õÝS ?”iQÜ. oŒs÷+‡ žfN-_ gW='ò2ÙÝäDµ-¾TÛ+
+*UÛ%Š‰fy+í W¡8 gZ0î ˆ ?«“n=â\M-› Únj2Ñ ws/;,"uR71aˆ/‘åhº8%7k¤8qT[ü1IeZÿ.'2Tä)¦5T·+®ÄVj0TïC$[^T'eä]¥5’„O¬5¤ÒUB1h]t®Aô-ŽÔI”µy@@Ç*f<!‡{¡@oÕ‡¤Fr (•4Ont—Y>Ð|\T%4¯_kÓ+&±…gW)<VŠC=)”8N=ô1F:6@¥1í)ý6P.²9ñ>".Î-÷8r.0:4?‚0à(P3¿,‚,i5Ï-*à5†.×0î)d,„8W*þ"x-…(!c-ú()<+n)/Ü,Í(Ê$<-'
+&Ÿ1(P1ä;8. ;^>S2P\k_ ?8HªXCObÞiMBbmjçP_>fqS?iõn-P!^ÜhaRÚbÙlÖ^•dInQaJn×yfNsyIoF{°rZu}_q®…±Šp|w²†^{cŠj‡„^•i›uŽÝ‹4™‰ü“¯ž³–ê‹å’3H™bž€—x²S¶ƒ¬e©x¯¬W¯1´—²Ñ¤ÌªÙ§V»½ø¸äÄÅ×Á¾Ò+ÒzÍÄÊäÌÉÒÕìÕaÒ×P×ÑàÙ¢ØÉÔ~Ù×|ÕÙJØÒñÙ¶×ôÓ»×ôØÍÕìÖhÖ8Ó Óÿﱄ ÏèÐàÏ$ÎýÎ)ÊÊ6ÊQÆÈÆÄÇyÄ$ÄÇàÅMÅaÆÛÅ:Æ3ÅâÃ<ÅÅ/Ä ÃÍÆ>ÅöÄxÁçÁÜÄ,ÁëÀÃÁàÁXÂÞ ¿ÛÁœÀÛÁÁ¶Àö¼VÁ_¿c¼ZÁ=¿/¾{¿§¿ ¾¿Ÿ¾à¼ƒ¿A¼º»)½Ç¼<º²½¼
+À3ÿ ™§PÉìš$ÜÆ «Í%¬¼!M†“¼¼ Ç[ Á RÁûyVF&%*%+S€
+â ·(óÈ LoF k¯"†¾üp»6ü ‹7C¿\‹¯InaNó+€SC,Y
+-g+n #j,z
+xV»&{ï‚Á=)
+Py< Œ‰±<ÿ ÉŽaJa{f›5ß ˆ€h>„*{Ô>¡˜”M+¢|G<ù¨d­3µgZ6$Ü]E1 zi÷4ŒÞX²+¥$Nõ'½vb"1®qZÒ,l’__+¦SY'æhFV,"x=†(¹ô`08™µwÙ@_sÕ= °g|=czÐA$¬…ßAë‚\?ãEž˜ZUw‹vYö"Ö„RP#d[#a~9OË$8]TG'ûI‹9Ö%çš""Ü(ø1X'
+´Ü³¯u´ ±Â°i²S±ž«ð²±°w¬,±Í°¬^°”¯#¬>¯g®,©‘­×¬zªÇ¬ì¬¨ó¬«
+¦š«*©£¦ ©‡¨Y¥¨`§£Þ§é¦b¤Ð§¥þ¢ã¦¤¦¡
+¥#£®›[£å¡(š*£ »œÏ¡@ŸÉ™ ’ЙŸ –¸šý“Ã8™Æ”Ï›¨™ š'—PŠa˜4“~? ŸL M…‘ G%… ŽðšÒ
+b<QÞÓ‚ú
+ˆuêw
+ÊîÈ}AT 3ÑO€-h&—É0
+ —
+êÅ ®HžD”ß,Àx8õ —£;`ˆ; bïÍ9ô^ ñ êZd/˜’ 7$S'\*g šAhF6
+öt\â® ä± ‰søå¹Øa ØëZd…1t GUd'ð¡
+Ý£Ž–„ ~ B£.) GÕñÅ ¬ È-I(Œgj,·p¤ N¦ žŠX Y{%IdjA3ï Å]w(þ öjð47
+®ne1ú \C-ŸŒnj<9 O‰º@@ õ’üHb‹mL4à ¡s;&Ø‹C#™¢Lû™‚‡>†hrI9W—qH7VñRÊ+4—Z%0+Vý,Ë‚M’&WL'(0w±:ž¾\ì,„êHä% (?2(¹a=(•Y1fQpd8ÀXsé=ÃvkÐ=å®mX>æFl;
+Ì{÷> “›†Q«³›C`I! ˆûQ#£–ãQõ"NrÌBx MiõJq"`Lm;N: ²"À!ß'ù+ý$±"f*#Ý9%<å'¢ .-$'º"®/H)È3{4¿-$^-Ž'«*ù3Õ(Š+Ž9*)ƒ<¿C*µ=C[)h?ÎDŠ)V<ËC7(.BJK&ŒHºGß'wQNÇ(æ@ÇG(ùH~GN%86Ú>&)Ã/X9~&ç)ß6Ú&+74q&30Ò9§&ÿ-›8e%¬2%9ã%…)È4Ú%'09"'½}Ë#pñc%Ú Ë+p¬ ã+5 !û,}Ð+\36¶"*+ÞÓ0‡7|!X3W9ó#[&%.˜ Ü0ù:E# 6P;Å"g0:I#21h:Û$9,L3t"b%N-G v*Õ5#*ê3ù ã!E)¶ ,¢$Íè†%z…íE"¤ƒ˜"ª †½:ò"þ)ï&8#Ú.í*¿(É2¢.éV:UB@ËcbWžq¼z¡s“cirIlŽzä‡~ˆë‹øšwœ‰†ƒ™¼›Ý„†™À{›¢í¤¯?³‘³«b¶µu¬S¸Œµ™»¾»-ÀúÀßÀ ¿vÁz¿›ÀÀö¿rÂ¥Á2À›¾]À¾U¾ä¾J¼³¸rº×¹+´“·
+µ‹²sµÌ´¬®Í´Ü²Õ°b³²~±$³m²~®²S°…®^±…¯Šªç¯\®ª%¯<­š©­è¬Z©K­a¬¨(¬ ªã§0ªà©Æ§þ©¿©£¼¨÷§Z£z¨ì§žú¨(¥ Ö¦Ë¤­¢—¥#¤-ŸÓ¤è£žP¢”¡ 3¢0¡c›”¡ÐŸ¸•Ï Qœ®” (›î•¤ž¹›W‘Ž¤™‘ì›Q—Ô“-™z—g‘G˜‡–‹²—“‹†d•. 'Ÿzâ)ëJA r5[ –¬PSo
+oå
+@¥9ÚÕ,3œT‡.O¼Læ%Ú“ ‰—¾„N@Ó$a]T1 ­6¿€ý"Jyÿ:¤I×S5'´?R
+Éž›V¢¬‚&M—3z=:ý …pV5¬úr¾;í't†8§Rf'%Ÿ_Õ1j
+Nu±6y KŒC° ­g3­ Žwß;ëž—dL‚[¦ÿY¼ôGg rU9kæu;7‘™NÛ'tæOœ)™†hø0® RÌ'yJV'˜#n:÷¶cY,ÒG $
+€# /`/¥"À@Š;•(;S0EÖ$ä #…ïT"¿õ’$ù&Ó"|·
+¥;£Ðžh¥ ¢nšï¤ »›¿¡ÔŸ±˜¢
+ž”›øŸfžšžƒE—òžßœ¤‘nœE˜¨…šö—(“¢™”—~‘JšO—<ž˜z•o‹œ–’„Œ•’)ˆL”K‡‘ŽŽ¡UQs
+ÿŒ`Ac (\›*)€G>; Kk4Œ
+¦œPO ÚV1o
+¬Ig&½·S,·qSË,tÝK*#•XDA"Y‰c«2Ç¥|ßD}ó@<&"ŒXü/tó”ö`¬ÚNX(´ÔN,ocZ 6àoad:W M5“€6(kf'
+<kTú30˜;ç'}þùPB*/g êAa*›Bh’;õS×.öö—i4²kÍVî/#UuÓB1é45Ž? p *"¥æ‡3SÀ¨C)#ôB¢$,Ä%˜
+ 8R ¯DrúuG©ºI„?;‹•Ë5Õ„¤<1ñújA1'Ý?>O/`3†8p2Ó o‡*& !|w3c„9A¼_¥0—äX´1• ÂnÀ2~ j{C5
+ÉV-\ E‚\FвŸ UÃ#¬XižÇKK´ŒÌG&m3)[IL"C >`È.u‡y§9Ää^*MŒ^H1M»w<n[$#Ð3<O!.>Ò$°fY§69”c“8üŸ^4íµ‘O&&“
+#q8ú(”#û=n'> d8/%™"Y6Á&T!Ó@~-À$~;,‚#_%²'j3¶,Š!7uÜE•+®tG(ÎM)3L#Ç(#ˆô/R(’!©?Ö3©#Ö4Ä'ñ#8:Ý0w!i?«1m}â#\n°'zÖ g'¶Õ+02Ÿ&M+ÍÚ*q*ß$ù\ E))³Et:g)DC:&*å4ü/H&&WwD#0lGo;b)ÆBš;&0“R4Di82X8'2s?Ö?J6—(V6W5Y$ç9%<×'(:$;#‘8ì:mÞ2’9U"D7ä; —5î9g\5
+ÀS—6*
+suþ@W ]Ì Œ=!•oZCà ésII4 i”d€˸ˆvxàë¢o{fVƒ 8|SYZ ¿çÄ”"ÿ¸,c7 ò“ÀlŸ •mnJ> ¨”ž_àÕÿÿÝÓ6NÿÿÃW!‰ÿÿÀª]óâ DBúJ»‚ ‡ÿÿÛN7ÿÿºß読ˆ!³àÏ·A6
+\Æ4(¡F/$»_v!G\VmêI¾*a˜>Þ„ÄFÐþF8µmi< m >| #f 09 EM6b™¹`Õ¯Qkm8¤;T7 Š“:MD"jˆ-ø ½}¾6=
+_“ Ly ªŒÏFx
+p/7¦ \{L= q¡QSs €DCP –}Xq † 
+&Ä Fû!ñ ¥f–1 vUz*ýÓ]–*p·h;3HVkœ4™:]ô*ó 0ÙH
+è(=
+Ž8t%£ Wª8¥¥Pñ/[Ÿ‡ÌNÕýŸ4^þ}q >Õ] 6°8aÓ2ÈÐm
+7ó|nDæ…a@B°_í8xfj>=áCf;< ^U­3oi±>_#25ï*}&å3ž2ð(¥3?-²(ñ+à)±'½"¤#w$Ž>4Ú- ù!ñ*Z&#&85÷-¼*#C#k#^;L ‚›* >d"+#$û¼€!¬6Ð/¡)œ+P&À$b9ò!òAåÉ'A%>#@.'ý#Î;-'';&‡"v d'e"ý$õ$[!ô©6;/3°,û"y0+%Ã#w:2-#’5p$†Dþ0U$nU7µ'Ý:¶-µ%UIQ,%!Œ-# ö4·&; É=·.=$?ú*Œ"55*¹ Æ-ñ&1 yiuEI*žyŠHü&Gþ.w ­7ÿ&‘ ÄA¤-N#
+5I.í,q@û3±,›VT>K,Ð+»/Ì)Ã%5¹7ò·0û>$–7±<Û28ß!Å7ð;"6[8|C-88ÙÖ3t9ëÒ1Ö7Ç‚/?7—^13ˆÌ2ú3Jž2Þ4Ì25I 2c6´Ø2²7p"¡78(;>>i*4A B,$±>èB¯&[>ÖEM$= Hô"{<çJ9%O=F#==¹H­&`A®M(s@èLÂ0>G;P;?oVŠ_ÁTØgðlØdxxw}t‰›‡‘|tˆÏ†–vl‚&q€Pu}ksZ{Âv’Uób¤`…[Û_M\‘5„EvF8ÕCgBœKL›HR0ôB3Cúj G¼d
+"²o íL+ $Õ ¦ËŸ
+£–}^ññY57caEÏ )!N. 9±Hqé’ÏàšB¿¤MqÛS•¤nç(Âø“ ',Vy1oB$ëˆhiE ’lÂHàbhCnâ’=Q^ ò£<Z× :б~9Ÿ|KüÆsî<u (ön‡èNºœ4xÓó™èøÕe‹M4áA’ö$xŽäGd‘Tš(ƒ \s
+== Ж¨IXù«é\sÇiÝf¾ØrOèÎÂ}GPÁ6sgÁEvýva9Ö@Z'Ú ™S-\TVF)iýj5PDž½Va±z1=d÷RFìiœ¿Q#VœûQ?Ô.$§ym?rÀMp
+&c/ùz#)â’$ÿ%Ïš"$I¸#\$ gç}
+R´.œ â— ^¬M]öf‘ ü© n§¦ y™=©Ç ¤Òæ
+0É’ "ÿÕ¾³Ù ¼o8ˆ “eƒÍ%= ïgL„)Ò¾#wÓa  N ¹4ÎÔ¼¾í}Ê „S\ Å@7ÈM 
+¤¸xÒX$ øÐ ÆŸ£0-YÑŸîi2‡L^/qÛõÆ \*«èdJ7$uuˆb Ùcm" ;‰6LŽ[El'4<Ÿ!žë& ê/—ƒÅF! —ëG¤YM› ?£:Ë‚:cÿE!Ï%h9.á^‰ªFŽ£r*6W´{~:[
+ËfS*Œ€7º ÆëK “‚?ˆ
+e'-
+.W4Œ-q/ÿ.)E <ù3Ì:¦6ƒ5e(%’-.A
+$  éËJS E7y…æ ,©b=Îf÷ T*Ó ZI †¦š ¬U€ Ì
+ƽ“ÛÖX
+»2 âo{ý¦Q !{" vòºþ9&»Ù8r œNÉ @#h¥à•@z%² | /*
+òé—! ncŸ
+õ¥ }ëU‚a*ÂëT+´Û:ï† Æ ¼°­K<ß"46N<) K){£B"✷1»ÞñE¤!µ+~½=ˆulDŒo^Ê8#4gõ3Ž
+,c"-åÒq‰5­wŸ<±ÍR,CÀW¹,Ë
+úeÉ,¸
+Ñpã4Ä xTÃ.
+*†Hd ®›uP/’¤SÄ…•ÜFì°~É?úWY‹*–VB& , |b.ÕLgj2í*U*&ÃPa¢2G-jA6ŽŸHÕ= ".z |.ö’ äG,13[6Œ^QÌ.Ú>’ Pê—ÇZC%jI<;X×3•€]ç3i87ƒjÏA¨ý_l:IT“1ßaaÞ9~6f;<'¼TÀ4êZ´7#Ž/C+q(5W0Û.Å0 ,j*)* )Œ'N ‡ ð"Z9r2¢,z
+Ø
+@Ç
+l@! ãÏ ÿø
+n-$UkÎ !¢ƒ \_V ¶Ù
+¶Í$%>ÿô1˜s©!ƒà£> 'FkPß¿ éé ÷
+åL ™ #g€åô__c*-<b7»øUµ( üd‚Pµ-cÆtÁMJ ö2çÏ^@&ª+ ÐJŒ :„ÓG¾ih>=¿S^-yÑaÁ,¸fÁ0Ô½dX-©@O•([v`3F
+@n³3= õx}9¼ ê[è/% ´yl<{Õ˜7J%vžƒPI÷~K=J ~jw4Ù'g…0wrB#¶½[`-ƒèhl/_öK#%b N¤,qk]5eœT‡#â®8¹ˆ9Ì"ëÑXT49ºVƒ2m_XY3´mOœ›‡Q›è[Ñ6U:VŠ0±i5n’pÿ=Rás]FÅÉc†:¿Îhª7$5gÍ:,eZÜ6øoT¡3 ÚV6ª"Æ?t4)»2.ƒ(Î/!+5(Æ)''
+*°SJ;å'íT¡>Ã*Z€äNÙ2Ù~NL%-÷zMÛ/š¤Zo;
+~ö^Z7‘|MY©<au¥Yù<Ïc­SÇBêhªXILd6TîFŽ[ÿO#A€d¥PÐC«^ûM«AëDc@¼>¹Ai?|>&A~>r>eI‘AJ?<TÅMC˜~f9M©c S¨G=y˜buNA{f1P&^*OÖEehØUžGÙglTHø_gPÓGUkOZM VcH>,0..²4((F5ù–å/¥ È‚+Ì  )Y¿Ÿ"çî Ž"-c v!¢W
+l"
+| ¢ Î%U  PF Á
+²d%zb#ö
+ýg1
+¸+Ó
+^}o0/©ÖQ£ƒ=¡ökn ço1ž(Y8)0
+< *<öðÀ…ƒ
+û4-ì#]=#î’@
+ztJ:SõX¹/èYL)%­]m'Vø\‚(zÒYU&>¢b¤.=f1† »~8m Éx‘: ‹^n,Ò
+ˆvO5W «€Þ;. è‘3Aß"kG/ ßg0d^§.%µGL&ZVm* ;UL&ÉkFÅ#+ NÎ(@\fî.·ÿM$å ¯;(!ÿ¢5l"mXJI*ÑVÉ-ë$`Ÿ3ŤEôv0C‰ú\ñ3‘q^¾1R t9Ж‡$Hª±¾L5.b•94rˆ:,`Ý6°Ãiý=½ÅIý12Ê=ü0"v9/T&Ì'F'²$«.í+¶&1*z(º& "Õ#Å"‚!Ÿ!7!R# Òx i!L¢?#Ä#\¾
+ø×Ý ´s4 o Æ!“!£6²k3S,§&É2l+&-%à&#µ"´"¹!k3{)#m1×+
+(ø$è 1}+Å!«"û!- v,J' #?]1š# 2‰$qÈJK2Ñ$ðBk2~$®2¯(
+ñ]» ÒµÌ S<´ <“uV k(4 Ø4̪ ‹œ#9 0j÷Ã
+ÈZP ±sL Ñ2ð©Ï•"!
+FÌ1ÍcâôýèðØ<G¾a ;ö! ,
+ÆII: :$3ÃøZV…ºir,ŽT* ;ç ]`Gä%0ÅV)$ˆÖLÖ#7NV~$#Bl€0ƒ°cG.° &~{8† Äl%7­ ‚Xå*ç œo¿2Ó }t£6Œ 퉈= œ_Ý)Í<c?+*lYÉ)ÅÛF'>Zi(ÂdHE!õ þAÎ!¸ œKØ%ˆ …ZU)T
+K±#¬ >:¢"å „5p!ìN:Ï$'ÐS±-Ÿ4gL3èxhº6í!`ù7îŸb4Oúad2ÁxÎ:¢¬K”†ìQëFrh@8.ˆëGJÖ]Õ6tžd B ÷09({™"$*
+Ž
+TF J(À/#tò"À&Ÿ W¢!•çb Fj X/±² 8+a
+ûÜo xÏÁx ›$$ à­:ýäE$¹5¿Ñ
+:ç õâ  <ÃÔYç䳞Pµêr *¡v ÖC
+©LN ñi½8W NÒè.
+¼\ þ*n$Qø
+‹ŸZW
+… “×|Så{u  Bu  UOö ͹_ÀwÓW ¶È d'
+’CA èO'§0®E+™´@™ÐÚ>¥"â\+:<BL#^MKš ÷Q%"ô“bÞ)™Aa€(ßo^§*º
+p4Ÿ cT1 NR9&Ôc"-o
+dÏ/| æhû-k wTÝ( œXh*káR_& ÍHR'UOY$mHD : ôL"$Ñ éEÚ%F MC« ¥ ìLÉ"† 9B&~ >Q%s=Õ%öV[3? kR4³Ï^‹1ž™\û2žLk!6½i–6²z>ÿ7Š%Jž’{(L zƒFµ·—qOé“VÕ8VäZ?ŠO$m$Þz2|ï! 'uñ$¿(Û [ ²(!ƒ ØG£5!ñå¥$e!ì$X ¡$¡+€#).e#))«/!©' -©"W,,0•!f4F7ù .3Ç ;N8zÈ8N9t D£@z"g=”9›!H"K'
+0úZ/%
+¿ ` Þ8,#µ8 >ž-Šô³$Ð O†$çz­z$/ ˆdªJǽH‹ >„
+í¯žF…
+.}ä
+fò ˜ä¢
+ RÕ R û=f Þ£(ª4}"u×1|!z*߈Cº!?tRw!ÒÙ[ƒ$ùÞmš+ÈñXô&?ÞR%\
+Eg41Î ¦e.‹ vRŠ%ó e`-){
+tZÀ'j ÈQí#¶ JCgè PXŠ*uëH@& óKó&Ï0R©%îH\ 'Û ]TŸ'^ A—!  ÁAú Î 6Nú'‡ £RÅ07½R.‡X /‘²m¶:Œgp44ÂKd`4Ôc\27DpV6|9;.¸‹Kr'xwISù}
+3]2q2q-M1hŠ1638i.Ý308-23š-1Q®,½0³,*x0!«20©Ù0 0u%363L#80L1=« 5">N#_#‘
+ t+ª<!>W%¡5•7&&.77·w3Z<C/º;D.8Œ¿,Ù8%
+E3E
+òî ¾…»Ã
+?€ æ
+f¥§cûÂD™ÖyÍ
+— ¼0o? yïÁâ""`£Ò$gîâM¤!¸=[Ç$Øhð)<qjç+P–Nà$[>@ hÈf¡4`dW0)% „P% Þ`z)°
+úX % .P¦ ± ÷;¡Ô
+žFê# óE # „Rƒ'UG' ì]w+Û3\ì)Õ QOþ%` PU )Ü ûN1+dk`Ø67¢d3}×oô7;w‘<»aj¶4n35?÷r7!€>tÅ‘ËZ9* ‘ßj×8À}qKG ›yrÌ:®Ô{ñ<]t"eÞG X”]uPYiçm ]
+_ådV]Vc"U’gkZ÷nqP_Rnœrù`åkDo³^çl3qN_Ûkp#c˜^ÒeãYÂ`±h!W(MyYÑO¸FPöG’:ÓEë>ˆCÉI”<½AVF4mD÷L:”@×F÷8[`(B jðoÇR@bglR‘^©d‹A‹]Žc­C’S¶YA>$X‘\î;‡X%].:~U Y¢<K¶QT8DJØQ‘8ãG•M°4vBgG.3Á77?O.7=xC+ù:?-â4¦;B(Ñ:É@¸+N3¾9(Š1§8©' 4*8º% 3¦7?$ö*Ç0÷#m0K6Í%0+C1¬ »,30Õ “+/è!_',¢d%f+‰&
+-Uh(,Î ""&ò!;$)n, !ƒ!îÆ %Í›ñ è#1^ â#òÆ,}+Ó$/C9e'&Fþ>)7C<‰*<9¯* N}CL,5)=T7ÿNxQ÷IgFõH*DPA™MfHŒ$u ìðÆ+Œ98t4FEíC’*Ë=Û=#&á:0;(ù=`;£/ØCv@ä-
+>§;0,Y@>1[B–BÀ7ìLJ#Kêa¥\–D[÷V NÂas^{2”C#>lQfY"*'Ò#J'Å&ç_Hoôm³Ubpa‹F [šYCãW&Wª?]RŸUñ4OKBO~0;F­Iï-%EŠI"2=GƒDû¸ß!/*:˜7÷3ä?†=¿BxV^YFF WãT‡+:ž:i)B:á: Vrຠ æ!â+¬.8·!À&‰ö!¢´âÁ ³.ñ$1ž r-!€ Ù71ýâƒIë
+"
+
+ýYì e­% ªò š…FP©
+«¯
+dRªÆ Úƒ »¡W.ƒ.y»Æ[@“j
+=
+~ fö µ k  Ç+ Í ä †Ð‹“"(¿&VÝ%×Â]ï#ˆ\%$Já" 3‘k{;">s8•\T¯&{
+ Z¬'! ùXè% $Vm$n `Kó h
+à@‡ /HŸ C GKW$ ½V(} îOr'a Ù\ž-~ ûp@3Ї^Ã-mOTÛ,v(H&&ø7X^-*p\¥0
+•â½¼Ã
+=N€ œ5n(õ VïȉEjñ [ =Ÿ»H ¤úѽ‹n »\/ÓRö~ BÁÄ
+j  8q²2. ý°]Q%‡ˆB¢2Fœ&åg`&õ!©G')
+ìw+3Ð -^¶') ÙQÊ#ž RO÷#¿ ÖJï"¿ O¸%· Vy)”g_¹,ü[,T…y:ƃAV`[/èQ¼+òªT})D÷P(ˆftUD¦ ¸[¸0×x½S0=€˜g<Bƒ©Š+a¹+ª%ŽÄ‹ÄJ°{ÎÑÄmÏrÑìƽтÓ<ÈξҪǔÍçÑÉqϒЭÇNÐ#ÑÁÅöÏÜÐðÉÊÐцÈ5ÎýБÆÐÏzÐÀÈXÍnβÆaËÌNÃ÷Ì›ÎEÄÐ+Ñ­É΋ÏCÉŒÎÆÏ ÊÎ-Ï­Ç Î&φÇGÍßκÆ|Ì»ÍKÇ$Ì
+xZseq¢f–®æ²$±Æ¨(¨Â§é¨c©»¦¨¥¦Î£[¦§Ð¥¡ö§ð¤S¤„§"¦i¤F¦ñ¦5°i´<®¥!Ùê]ì^ó^Ú¬a¯*­¨¥1¬ª}v·{CsC‰DÆ?£âªS§§—d¤šâ˜¯›–íšÄ˜×”Üš¦˜}©š–‘j—Ζ
+p
+eHw² Rƒ°ª?.¼‚>(V IÊ3Òh<ÛÝfJé
+¿'G #I
+w7©Ñx7÷-b ¸Ìè ‡#5_
+¬Åæw
+Ñ'+Žø½;‘Ø“`e Œd,„Ï$D% f6æ  ‰tº uJ@ ñv›çß¿4“„J¿K ö0 U:-8Fפ ;½ÿœ» ú Åd–·´7x@ @ˆl¬IÓ p¿‰~­ ¯I^b;ƒ
+Ò›ñNv
+㜖N ¡˜ŽSœä| Lë$›f†=3L+±F})Ú \bð9¼—t%GÉ!‰wåR€*«uŽDÌU˜Úm‰>·‰æ_'4#sØJØ+};X 6W~Þ]¯6–€]¯; ¦à’q ¶P­lO®ð­v—,ºÛ¼4¨ÇÙÉe»oÍ…ÏcăϽ҆ÈÀÑ?ÓÈ•Ð…ÑäÉCÐfÑìÈÄнҺÇÏЉÇÙÐÑ­È_ÐÒ?ÈPÏøѱDŽϊÑÇèÎéÐrÆÔÎÐ+Æ“ÉqÊ'Ä‹ÁzÃ&¹ÑÀ Á¸)ÉŒË&Á̳ÍÓÆÛËøÌéÆxË̈Ä;Ë˾ÆBÊ“ËdÅ/ÊËŸÂÎÊ›ËôãÉ7ÉÎÄ,ÈcÉÛÈ1ÉÂaÈ™ÉÃ5ÈÈAÃfǺÇûÂËÇZÇôà ÇÈoÀTÆÄÇ÷ÀÁÆ:ÆÁÂÅ¢ÆÀ¹ÅÌÆß¿ªÄ“ÅȾœÄ‹Åa¿\Ā޾ÆÄFÄÛ¾QÃLȽøÃrÄÓ¾‘ÃÔÄ­½mÃuÃç¿…Áþ¨¼™Â>Ãn»œÁàÄm»wÂ7à ½ìÀßÁ«¼ÜÀãÁ º¶¿ ÀŒ¼ú¾{¿ã¹Z¾™¾ÆºsÀÀ̺&¾N¿}¶æ½ô¿¸÷½H½Ò¸Ò¼½*·>»ý¼É¶ñ»ñ¼R·f¸è»d¶ü¸Œ¹™´õ¸v¹³³I¸…¹±·‹¸!°¸)·ý²'·W¸²¶¶Š± µ/·²­µ
+²$®‚ÀTÁo¿]O^XC:Ž;…8o¿ÛÂFÁ±z±¥¯Š™Ušùúª¼¯M®,©2­a«X«
+«ìªÃ¨¢«»¨Û©£ª®§ð¦N©/§¿¦b¨$§±¦2¨§k¬0­¯ªLQM
+¿W WíVú®—°î¯4 3£¢
+™ÀžT™¨M­Q HÆEˆþ‰éœx ÿžM˜iZ™_—{šR™D•$›—Àýšˆ— ’3˜¶•i¢–ý”\+—’”È—åŸc˜Oæ
+Íg¸­j(lbFàâ]Ga \Æ'Œ+™#\+¹.p(m<—AB:,M]SNŸWÙ[tV7f†nÔk`oAt¿h²pYyXqYcigO[o¶}tyf£xQr;'O ¡1Tw†+™ºŠ b…""çéò"YíÑ%ê$d p-Åœù3C(ñ«¹ 0ž O¢un;Äò Šìzøµ#§Ò
+0.ß
+ð ;3°âï‹
+ùÚ° Ïò^ tÇÎ4F3êš ¸úš
+  &xìÚs
+£ Œpyž’j h'RâÅ ç,l +^«s¨´2ô `— ÛF)]âÞDQ”ÈÖ b ,]_x Ç ±J5¥ûü~þÖ+bv7%–óEyáô ij–
+΂-˜-õ/,Œ†rk2K²h~«3L®Œzç8@®¾t\Æ›l ™¹ƒÔZt¥pŸM6q÷c?6”žý†Zã«
+œ“x¤¡©“ô‰:eö¾`¾ï¨n­Þ¨x=§Ÿ…µø°,˜s¶ƒµ¤Ÿù½ËºR¢¯Ì”ÎõÀÐÏOÒÈ×ÎdÑ3ÆÐZÒ¢ÇÕÑÁÓÓÉRÑ3ÒõÉüЩѩʪÏÉÑ^È¥ÐÑðÉÝеÒOÉÆÏkÑFÈ&ϹÑ#ÈÏÏ4ÐrÈîÏÑÑzÇ£Ï~ÑÇÍÎÎáÈ1ÎÏ8Ç›ÎTÏ­Ç?ÌÎÎ)Æ/ÄYÅù½#Â7ÂÇ»îÇ”ÉeÁ«ÌŒÍ¬ÆöÌÒÎƹÌ#ÍWÅwʀʀÆïÊÂË*ÅöÊ+Ê“ÅQÉGʺÔÉÝËÃHÈvÉÒÃuÈ¥ÉÒÂÉ(Ê:Ã)ÈÏÈêÂÇÆÄÈ&ÃçÆtÇÍÃ…Ç”Ç÷ÂÆpÆšÄÅòÆx¬ÆQÇ ÀªÅ¸ÆaÀ9Å¢ÆaÀjÄ€ÄÈÁ\Ä ÄÄ¿>ÃOÄi½#ÂÞÄY¼ÆÂíÃÔ½.ÂYÃ&½ ÁÕ¬¼ÁÂ$¼{ÀnÁÅ»ÐÀAÁú¹–¿˜ÀWºVÀ9À…¼¿¿ò¼†¾dÀv¹É¿Á¸¸¾¨¿Ÿ¹A½ô¾º¸ð¼Ø½b¸Œ» ½Ú¶I¼½¢··»a½H´vº½»ß´ÉºRº•·¾ºß¼-¶x¹»N¶¾¹ŽºÌ´ˆ¸v¹’³[·(¸¸´Ñ¶··´yµ«·m±´Í¶¯±æ´Ôµß²9´îµ±
+¸÷¼
+ür_LŽ ÊO5 oü~ ò KäN HBž -0Aæ‘ 7 .÷bp_ ‚… B ×ó e M‰õ ˆdh« ÈÀ:æbž¢[ó¬Ñ?ê¢ýß„(ª$– :
+.L‡9 ( ›·{] 
+2YT^û,[$y PÉ ¼·j® wh Î !J@×B×"ZÞ^š:ˆº)·ê˜Å$Ày¨­ÃnÁ§åLjÉJ¸ÅîÉ£»GÆ¢Ès·/»îÀŒ­¬Þ¯–'ÄmÆß³ÍïѕîÉÊÌå¿ ¿/ÁÕ²@ÐÓ„ÈzËÆÎpÁ³Ç Èò»]ÇRÊì¿#ÊðÍ;Ã[ÍbÐÆ+ÐÈÒ~É;ЙÑÁÉÒÑÁÓXÉiÐ
+ÏGÇÌýÍÄÈ_Í;ÎÇÕÎ)Ï¥ÇÎ
+ÏKÇGÍWÎÂÆ‹Ë2ËtÇÌÌõÆ$Ëü̘ƖË&Ì€ÄÄË|ËÉȬÊxË&ƇÊ:ÊÅÄÉ,ÉqÅ:ÈŽÊlÆ|É,ÊÃWÈLÉÙÂüÈÇÉ;Ä|ÇôȑãÇÙÈvÂÇVÇ›ÄÀÇiÈ5ÃÇ}È ÂNÆ|ÆúÂÆ“ÇVÀ¹ÄÆ/ÁóÄÆYÀÐÄ“ÅæÁ³ÄpÄžÂÃrÄ$¾wÂÒÃS¿ÐÂwþ~ÂÞĽyÃÃÁ¼pÀßÂ>½À»̿ŸÂl»ÀÁ»
+CåvñË{x•®œŒ™¥“àš’–'-:1K+˜W¹WïDÓTAWF«48´.HIä>¡trw`âx1ƒ#}>p™Âv‰”¬WX²a\Œ‰ãs}’tükŸwemv_Ëg¸^'y{†¾ƒµa¬ph‚% óÞš Pà W_„ -tŸ í+ ÖèÌ#ÞŽ ߸´¡ ma›ÕáI%²©û#¿ °§¾á©Fl0K
+6Ä ] K¸
+!…¿ –
+¸5 u* ˆ
+ìà’ê?
+_ 7T ` N¦ ó(ÅM ÔÌ G”ë  zN¹ýV)*uÄ{ûˆ©»øêÀͳÁô  §
+UÌýš!¥SœÄ
+¼ ó/
+P>Ú.˜2_âF3Gv+iú– ¼¢ð›G’æ¦T[¶…][­,®•ÜË>ζÁώҦɾÐüÓ¿ËaÒÔ"ʪÐØÒgɌбÓÈP͉ÎéÆ$ÉÝÌÀÎMÐ¥ÄRÐjÒÈÀÐÑøÅÏÍëÐ;Ä;Ï’ÑFÈÐNÒSÆÑÓdÇŸÐèÒÊÂÐѽÊ>ÐVÑ+ÊÐÑFÉJÏäÑÇÝÏðÑvÈ1ÎíÐÈTΣÐÇàÎùХnjÐ'ÑìÇ—ÎÊÏäÆÛήÐRÇKÎñÐÈƋΓÐfÆlÍÄÎÊÇÙÍþÎùÇûÍ×ÏÇ0ÌaÍçÅ–Í7΃ǛÍ,ÎDŽ̾ÍçÆ–ÌéÎMÆ ÌõÎ
+Æ­ËÝÌiÆãÊ›Ì|Ç^Ë
+¿®¹ù¾•¿n·ù½­¾¤º»¯¿¼ƒ¼l¾‘º¼K¾%¸Œ»˜½ ·ò»h¼†·‹¹’¼1¸Ëº4»U·(¹bº§¶¾¸Uº¯¶Ô·
+ºV¶¶¹b´rµÌ¸­µµ·/²‰µÔ¶²´µ³¶ü±´´µß±2µ|·Üµ/¥ ªS Ð5ï0§#DGß?~18›Ý”±³Ä¶+´ ´µm²ZŸ0¢¨˜¢Õ£ú ²Kµ™²6”5—™Ç£T§Z£Ð©­:ª™©«[§â§hªü¨g¥£©g§h§ª©Íª‹«Å©¸˜‡žóžf±i}\;})/qÄ›¼§¤›[¢Ašœ~kMH/v†`Ã:œS¶P`B‰ien'c†“7—…’ü<Q?é:BQÛYU/2R6¸/ý·{ö\c2ï9G8‹¬šp—å‰'–
+ùj˜qÞh_{Èyêi^»_ÿTleæi¼]A°CE9ŒoWhRVªsªqKãwß
+Î!qÜŽ ñ
+½®¼‰ ¼
+=vl-L
+•
+î "”¢u
+µë3ç)Ïþ%0Q¶ò£'S ¯Þ‚‹
+t½ñ*^
+ª Éq,»)œ)¢R3Ù4®c305š-Ê-3È!4#•\.®*C~G^A9#hD.Gm1]"š$L+A,n[ ìž ¶,: ¿®Ô©²0±) ±¦ýD>(@g$?%C*ö8š’bi6P÷ ¼Ö{HM#j $Ê(^ ô".´#J%œ S4ø8á>zð}MVÌ?„DV!¢XJ_)5Y‰´Ñygðl9T´RòW™9:ó@/íZ `f;ÿ¼ÔÀ¬ÓÎEÐÅÄÑ+Ó@ÇÝÏÕÑÇyÐRÑÈæÑ•ÓhÇ}ЩÒ'ÉüÏÍÐÌÉÆÐÑZɈÑ'ҢɔÐ;Ñ‚É}Ð©Ò ÉyÑ Ò¢ÉRÑÔ ÏìÒÆïÎQÐÆÁÏÐ'ǧÏ?Ð¥È-Ï8йÈzÐ+ЙɾÐjÑÁÇûÎåбÈÏrÐÈîÏ[ÐvȆÎñÐ‘È ÎåÐèÇZÏ<ÑJÇqβÐÈ5Î&Ï<ÇÅÎÆÐNÇqÎEÏWÈ9ÍOÎAÇqÍjÎ9ÇàË
+nõr"PD“Ú—x{ªÆɈ¹L˜1œÏï¬w¯ë—`ǮʽûÃ_ƹ'©Y¬ÅšB›FŸ†ù²eµ‹¥vÎ9ϚǔÐ~ÑÉGÏcÐÈǧÏÐNÇiÎÝÐzÈ×ξÐìÇôÏ~ÑVÈ)ÎÒÐGÈβÏäÈ)ÎÊÐÈÍ´Ï8Ç Î=ÏÑÇÅÏ ÐÈDzÎtÏȸϩÐôÈzÎ-ÏKÇ«ÎÆÐ7ǾΛÏüÇÍÎpÏÉÈÏÏ‚ÐüÈ\ÏGÐ…ÈHÎÏ,ȑ΋ÏGÇÿÏ~ÑÇûÏ,еÈ9ΗÏÈÎ=ÏÈ-ΗÏ_É7ÎAϹÆÛÍGÎ)ÇeÎ"Ï?ÇÅÍÍ•ÈòÌÎÍWÇ}˲Ì+ÆÊ:ËQÇRÊÍÌÆ7ÊËÄJ˦ÌFűɈÊ6Ä¢ÉVÉ„ÅMÉÎÊáÅaÈêÊlÆßÉáÉ(ÆÈXÉÎÅ ÈÉZÄÛÈ‚È´ÃÍÈ1É”ÃuÆÁÉ Æ¢È™É Ä(Ç?È)ÂíÇ«ÇÝÂøÆ|ÈÂ$ƱșÄYÅaÇßÅBÆöÃjÂñÆQÀßÅÅžÁkÄÈÅM¿ªÃÔÃÅÁþëÃÔÁÃÄÀL´Ã9ÀÂ/Äp½ÏÂ/ÃÅ¿ÁÀ˜ÂοÁ…¿ýÀÂø½Ë¾Ã¿}¿˜Á§¿kÀ2Áž`À Àj¾
+¾YÀý»%¾`À}º²¾†¿X¼¼ë¿ ºRºa¿\½u»~¾7º½»‚½š¸C¼h¼ºº¼N¼w»sº×¼8¸¹ç¼¹Š¹»§¸ó·ºæ¸,µ¾¹S·b¶
+º½¶Ûµôº£µ–·6¹A´Gµ¶¸Ò´õµ|·µ[±·‡´Y±¿·>´G±Ôµÿ´"®É´-°­­¯Ò§£±R·ýµx´y·çµ%ª ­º¨©¯²D¯*¬¬±´¯£¦š¨Û¢—efáRXòYÖLùT[Q=FOŸ#Ÿïž2ª3®¬0¦~«¦ ¤«1§é©»¯®®:yĆtÂ6j=J3âeëj1YH] avV|w})uâœ.¡"Ÿ™šùšŠD‘¥˜ ›hÍp!fj•p¥föP;U£J«•Rœ‰™›jßvLnjU²d]¹aYlaÎüU_;TA³Bæ\W`ÈW»CxG•Ew·ˆx<Su[N#mRrÃeæk™r™iýoO}ŒuêSqU[Aau‹sÆ]…
+~Ædu.K4(ìì‘dnkÿd°HuQùKÓo—{+j¾xKw®ad#ã(·%þ]ÀÉ3'<I3zžéšØ{îšóœ»‹€hl.Mù Ð¤eŽGža¡Æh¬ú±V¤´z•~fhøŠ¹Ž½w1¸ª»‚«x­³±Ÿ¸«—°¿–cÃÇ·–¿ê¸ҡp¦•Á£Ð¨˜²‚»‡uÅŠ“’éy»níxÀa•³…l½ž‡£ŒJ¶íºh® Ã}Æp»-żÈz½žÈLÊ.Àç·[»l®Z­3²=›JÌmÎÊÃÑÑ/ÒrË­,±V¢ê¼Z¿z¯& ü£×ömsnM‹ÃØż·:¼@¿¶­h¼Ñ¿Á´G¼w½¼²òLjɾÀ”Å Ç—½yÃ&ÅF¸­š˜žÛ¯g±ÍžÀ»;¿A°¸ÁMÄ€²=ÆÁÈ˽ÇÀ”Ãu´"ÃÅ+³{ÊÌÀýÎTÐvÉÇ£ÉJ¾•Ì¯Î9ÅwÎýÐZÈÏ­Ñ'ʪÏÍÑFÊ:ЉÑèÊÅÑ;Ò–É/ΣϹÆëÎåÐ~ÇÎÆÏàÈDκÐGȸζеÈÍÀÐ^ÇGÏ(Ð/É$Ï–Ñ^ǧ΋ÏÑÈÓÎáÐÈÄͨϒÇÎÏ–ÇRÍþξÈkÍ0ÏÇÍ´ÎåÇuÍÓÏ0ǺÎ5Ï ÈsÎ1Ï<ÈcÍ3ÏGǺÎ9ÏèÇ£Î)ÏoÇÍûΧÈs͉Î9ÈæÎ\ÎÝÉœÎ1ÏȸÎMÏ È9ÎÏKÇ Í´ÎtÈÍ…Î&ÈkÍÍÈÈ ÍvÍzÇÝÌÆÌÞÉ(ÌxÌñLj˗ÌÇ£ÉÒËQÇKÊì˶ÆɈÊäÆçÊYÊxÅßÉqÉbÄ­É/ɳÄRÈÈùÃÑÈÉeÇCÇÙÉ,ÅJÇûÈ•ÄÓÈTÉ ÄÇ4ÇàÅÆ|È=ÄšÅÌÈDÄaÅ‹Ç(ĹÆ3Ç0ÄÈÆ/Æò°ÅÛÆÌÁ§ÄýÆJÃÅĽÅê°Å/Æ ÂÂ¸Æ ÁÁÅÅpÃ9ÃuÄ̽ÒÃÁĵÂ{ÂíÃnÀúÁÜÃÉ¿_ÁcÃ
+´"´\µ¯´G°6³†¬Ú¬s°¦®)µ²õ®ž²ã±°3±ü°«Ì°­÷²
+´°´ê“ç–íŒJNL8Œ'ŽÔ†Í•Ø–”Š£œ?ŸšO¨+­S¬A¤Úª3¨+¤Ð©$¦Ç£«t¨×w÷}úsŠZŽ×‡Ù—°˜×Ž{R{%kÂF{Cí9,…‰‹¢‰!œ§—ëž½•ùeãmDdqBy
+Ê]ÍÏOÈÛÎTÏÕÇŸÎÎåǧÎIÏGÈ-ËüÏ_ÇCÍ3ΟÇGÌéÍWÈÌiÍóÇäÌÎÅÏË‹ÍjÉôÌ>ÌÂÈÄÌeÌÎÉZËÌBÈË|Ì€ÆßʲËôÇ„ÉôËÆYÉ£ÌNĦɳËEÆÉÖÊJÅMÈòÊBǾÇÅÊ¦Ç Ç Ê“ÅMÈÉ;Ä©Ç÷É Ä
+ÆÔÈ´Å‹ÇbÉÒÅÈÇeÉ Å¥ÆØȥŇÄöLjÆØŵƢòÃ9ƹÃÃØÆïÃWÄ$ŸÂFÃÆÃŒÂ]Æ'Â7Ã_ÄãÃÃÄÐÂÃbűÀ}ØÄ×Á‰À}ĹÀˆÀÁÃëÀÈÀ£ÃWÀß¿˜ÃfÁ#ÀÛÂhÀ¹ÀLÃS¿XÀ Âl½D¾œÁ俘¾wÁº¾¿:Á½L¼òÀ*½Ý¼{Àß½ ½„¿ê½ð¼¯Àg¾»ßÀ¼ï¿¼ç¹ö¾N¼pº&¾«»J»½¢¸C¹½9¹ ¸¼çº•¸á½¢º«·I»½¹|²ù¼·–¶¨ºê·¶PºG¶iµºÐ·„¶>º1¶3·Iº¶ü± ¸ÎµÁ°/¸ˆµ¯²w·€¶´1¶æ´²Õ¶f´?±Ñ¶³´Ñ±
+¶+³•¯g´G³Ç³/³Ç§o±a´N¤ ¬ó³,³«±æ®Í©Í±R®s©Û°ß¬á­a±h° ë¥Ÿ}ž{lgó•Å•*‰Ö§¨ó DŸò¥óŸÆ¦<«F©¿¢¨Û§H£'§é¦NŒ†“TÔ€’†}hœÂ¢‚  ˜‘ò‹’Z‡_O€MGÅ3Ò–à¡áŸ:’ï—£‰ˆ³ŒG€Ì[ãaBZ2yƒu{XyWaFa X¦“¤„YñcÒ[÷P¾[@Rr0¬6Á-‡/Ï6h1a[BgÅbý‹¼™:–f‚Ó‘w‹vZMd&V¶:";F-°Z§fva#KÌVFQòG;O¡F«BÿBV.–w÷‚Ast| {È^b-j2ƒ$ø‘FãILB”:%D#àpÔ}©p¾akfS»Tìb±WÙSœ^lSßPi\hV¾«¾Âºw¼¿£¹L¼8Á#½À»ßÁ…¹·½€Á伺À̆¼p™Ä|¾oÂÄý¿XÁrÄ©½ÖÁ‰Åž¼ëÁ”Å+¼pÁ\Äž¾•ÂUÆh¾¬ƱÀ”ƒŸ¾0ÃÆB¾QÅJÅöÀˆÇyÈæÁÉÈvÉÄ;ÇɘÂÚÆUÉ$ÁPÅžÉ}ÂQÆßÊhÀ®ÇÊBÁ~ƹÊ'ÂÇRËÃÔÈ‚Ë6ÂlÉËYßÊFÌ>ćɈ̻ÃÊÝÍjÄNÌJÏ¢ÆʇÍűËhÍ7ÆʾͰćËÑÍÈÄiÌÍ$Å–ËEÍZÄeÊŸÍ ÆÌÍ3ÅîÌÎdÅUËÙÎ&Å3ËÍÍþÅÏÌYÏ?Æ]̈Î&Ç}Ì'Í°ÈŠÌ
+ºG·¶¶º@µŽ±v¸CµT²Ü¸è¶³´v¸%¶ ²­·çµ[®^·Í´ˆ­º·´&±
+¶´y±¢µ¨³i±Z¶³ú°Sµ[³®®³ä±Ñ«4±Œ±s´„µT¤ì´"µü§h¨þ±R®^ª¹°ê­¬³œ±H’W˜U‘G–²œÓ—W¡"¢ð˜z…€Õl²ŽÚˆŠs$š¢ô‚œÌ£ k© ¬Ö«ûŠ†8‡¡˜¨¡fšËqÕwNlWyê~¥t<—Ĝɚé™>™v…ûZWRé8›hèhþUVœ¿¦9¥I¡”ö†^q4x4j˜f–o‡hàyÜ„ÊyÜQ©Mþ<Í…á‹iQÌXQ8T“^ÜX#itùh
+ºù¾Ø¼ö·ù¾É¼·¶/¿T¼@ºG¿+»R¶½Lºs¶õ»Áºe¶Ž¼8º¹·»a¸zµ» ¸¦³ º£¸µ!»G¶ºµq¹’··²¹|¶[³Ë¹¾·³¹î·‡³[¸F¶x±Û·–µ¨°­¸µ ¯Ç¸ ´Y±ã¶Ô´´­:·´—¬!´Ô±d®›´Ô²‚®Eµ_³3«µ±Í¬3³˜±H­÷²à±©u±±hºÐ´Ø¡Q²”²Æ¨×¨ì°®Æ¥å¯•¬:©j³E°~Œ`’-ŒÜ“‹ŒA¤¨˜4‰ì‹cvæ’ ŽQvJ“¹ŸÂŸ¸•ýŸ0žM¢Ä«´ªdyóy­mJ•AšÇ‘Pto|Ütllñq—fC—¢Æd;g¸TÛG;?D,ïeLdV–—ΠGœç†eZ`#ij]¯iÚt€m¥p\vÏl“E¼<£-j€‹Œ…a8-=x4OJ%QzI¡_CoÒdÒz ‡Ù|¸ˆì{Ÿ…›z¤ƒošH”„H5RfEM:G;k.Ó&É*Õ$åC‹LFZ:†;Ñ0B=«9Þ#»\hfC]Øfž\\<é:ý3Á"j$P%Qm@oJR?È+A0%Š_9kŽ[ÂQTCAô*Â1»)Å0b<'5ˆ7AÃ8Ó·T»ß¹#³Ò½‹ºa¹9½¹Ô¸)À.¹ò¹+¿Ÿºh¼%Ák½P¨½A½†¼h¾ƒ½ÿ½Ãハ½Äß¾o¾ÍždÁ2Å3¼ã¿öÅÌÀ¾«ÆªÁzÁ+Æ̽‹Â]È&¿vÃ&Èz¿£À½È\¿ ÁÂÇqÁ¾ÁÉ Â¨ÃuÈÀ½ÁIÈo¿ÄÛÈÄÂ;Ã1ɸÉ7Â/ÄɘÅ3Å>ÉGÂíÄ Ê®ÂsÄÄÊJÁ˜Å'ÊøÄãÅFÊeÅöÈ1ËÂüÇèÌaÄÆþÌ„ÃÁÉuÌ·ÄÆ>Ì:ƵÈoÌ'Ç È5ÍÇ^ÉÎÍÆQÈPÎ"Æ$ÊŸÎ-ÅhÉuÍïÅ+ÊÍ3ƞɔ͑Å{Ê›ÍvÆ>Ê„ÌÂÇÝÊÕÎ`ÇKÊÅÏ¢ÇKÊlÎÊÇûÌÍÓÇCÌÒÎ\ÇNÊÑΓÇiÊ.Ï<ÆpËϽÇēΧÉ,ËÍÌÈ°È´ÎõÆ Ì¾Î—Ç€ËÙÍçÈŽËôξÈzË£ÐÉÖËÍÎéÇ—Ë›ÎÝƱËdÎíÉJÌùΧȂÉüÏrÉZÊMΛÈ5Ì2ÍûÇVÌéÎ
+ÇÝÌNÍ Ç¾Ëô΃ÈÇ̯ÎtÈHÌ2ÍrÈgÌ#ÍïÈkËøÍrÇàÊÍ7ÈæË‹Í ÉÖÈËÍ°ÉCÉ?ÌÇÿÈLËÕÈÈHËYÆ È¸ËÍÆ:ÈvÊìÇÇuËlÆïÆQÉyÆ+ÆQÉƱÇ,Ê6ÆçÇÈâÆ7ÄšÉ,ÅòÁ«ÉÝÆ/ĀȕÅæÄ‹ÈöÆßÄRÇyÆeÄÌÈÇÅÂÇÈ‚Æ'ŵɫÇZÂ’ÇûÆ+ÁÑÈÆÃLÆžÅwÁ\ÆtÄò¾‚Æ3ú¾†Å’ÃO¾]ĽÅ3ÁzºÛÄ×ÁżýÄÓ ½9Ä7Á+¿'þÁä¾oÃ@Á½¢Áä¿c»ãÂa¿>¼@Á~¿2»ÉÁ#¿§ºùÁï¿A·êÁ¾
+·îÀg½Ö»)¿:½uºR¿\½¸Ù¾Ø¼ö¶õ¾~»?´É½„¹º³>½Ã¹¯¶ ¼ò¹¤²a»Y¸ª³»Ì¸Ù²›» ¸³iºR·ã³º†¸Ã¯ò¹¯¶¨²±¹ ¶ø³
+¸µµÉ²­¸J¶(¯ë¶â´Ô®­¶™´²”¶’µ,°»¶Ð²ç¯gµu².°b¸ì¶¶—¶ŸE–Ü w¦“ ò¬z¶³§é³{°ªA²s°©â²¦¯Ù§Û°L®%µÅ³Úž¶¬…¯ÙªA¤1«éª§®¬ó«¦°$­S€‡\fˆšù†æ”¡–K„þy2uÜ_¥ƒ8w±\$tºvÃjø™€•¾~Þ¢A­3­!pÉtiféþ‰x/fmÝcßk²skéœ;§¢ÑT.VÉEøBÀEò:œl½\›F&–朕€~ŸŠ.~«I‚Q«G^~gí]¥joDc7J|@À,÷qÇ~rw+=ü?ñ3¸TóYñRte1s¤n } Ž±ŠÂr‚}Vqïk&tPhŠ…#•Ï’ÅD¬I¡>€6Ô6P-B<ÍF¦B](h3Ù.`0[/t"«5ñ19 ù^4mÄi–dÀ^È<yNDg,Îÿrµ<‘L[FS148g,Y#`¶OÈInOu;Z#Ð*R"3™5-f1O?6¬¸»8¹µ[¼ZºN·+¾™¹‡·
+À=¹L·¿ê¼†¸äÀ㼨ºÔÂw½ÿº8ÂŽ¾•»ý™¾N¾dÿr½Ã_¾~¿ÃѾ
+¾¤Äý¿¿AÅ¢½mÀ.Åp¿MÀnÆ ¿ê¿®ÆlÀã½ ÅÏÂ(¾wÆžÁ¿ŸÇ²ÀEÀ'ÆÄÁ£¿ùÆhÁz¿rÇ;Á.Á=Çɸ¿ãÈÄÂ]–ÈËÂÇÁ³ÈËÅ'Å+ÈËÂlÃŒÉ ÂŠÃÁÉGÅ ÁÉÒÄžÄaÊ Ä?Æ]ÊŸÃÑÆ:ÉÂÄYÅ’Ë|Â{Æ7ËÂÅYÃWËìDzÅtÌJÄîÈ‘ÌÒÅdÇÿÌÖÆ$ÅÏÌYÆ|ƃ̧ÆQǾ̣ÄæÉÍ¥ÆÈ=Í(ÆNÊ>ÍÅ¢ÊaÌÅ‹ÉRÍvÇ(ÈDÍÓÊ'ÇàÎÉÂÊhÍÄÇ4ËÆÌ€ÇûÈoÎÂÆÐÉ(ÏWƱÉ3΋ÇôËήǔÊÍ;ÇÈ)ÎTÈ´É„ÎÊÊQÉ,ϵɣʮÏÊ„É7ÏÉuÉŒÏcÇ÷ʶξÉ7ÊèÎÖÉíÌQÍ…É;ɘÏGÉíÈzΫȆËìÎ`ÇäÌ#Í×ɯʗÍþÈæ˪Ï0ÈÇËUΧÉÈŠÎ1ɳʟÌåÊ:É;Ì È©ÆlÍ;ÉÆ3̣ɺȬËÙÈgȬʲÆãÆ:ËðÇäÔË>È©Ä‹Ê>Ç,ǺÊ2ÇqÄ¢ÊQǾĢÈÏƵÄRÇÙżÅaÈ×ÇiÁØÈcÆÀcÇûŒ¬ȩƿ\È&Å‹ÁÍÈ\Æ3ÂíÇ”ÅýÁÑÇÍÄÀÂ$ǾÅ{ÀßÆßÅÂsÇ$Åh¿êÆãĵ¾YÅMÃ
+ œB–¨£‹®·«¦'°A¬ï{¤‹ ,¨©9™Ž¢A­ˆ«?›«¢
+˜¥¢í­ïªv‹Å•8Ukpu,o"‡ï‡Ïq&k
+ÃAF¼A€/û9Î7?1“,8D›I89@Z%h’^‹AØ:–*F³?µ-*æ`àGR@GU409ÿ.ŠK3L7ý?x<«+Š},JžZLy5PBè9#¯?¼·Í«û»‰¶ê¯x¼a¸F±“½j¹¡·/¾`º×¶¿v¼%³µÀ½¼p¶tÁ§¼Ñ¶|Áþ½P¸ªÁ¾?·¡Âí¿6¸
+ÈÃ"½qÈÄ»²ÇmÄN½&ÇÙćÃ9ÉÄ¢Á¾ÉuÄJÀ=É?ÆBÁʶÃà¾çË€Ä]ÂlɄĵãÉéÅd–ËUƚċÊÉÅÓÃuË|Ä×Â/Ë‹ÅÀÁ6ˇÇ0ÄtËlÇ;Ày˾ÆëÄJÌ ÇðÃËaÈ©Â Ì>Ç(Ä ËÙÈDÄ ÌÈ¡ÄtÌqÈŠÅhÍrÉ ÁçÌ„É”Ä0Ì€É$ÃLÌQÈ5ÇGÌÒÈîÆYÍGÉqť͉ʇÉ(ÍÆYÉÎpÉñÆQÍCÊÕÃÑͨÊÑÅlÍçÇÉÈÛ͑ʺÈ9ΗÈzÄ–ÍKÉ ÇÍ,É Ç,ÍbÊÆ“ÍbË ÇqÍÓËEÄö͉Ê6ÄòÌQÉáŵÌJÊ>¸ÌuÈ•Å‹Ì'É7ÄßËIÈ9ÄYÊÉÇV´Ë>ÇK¿ÐÉÆÆëÀ®ÈËÆ‹ÄxÉÒÈÂpÈ-ÆtÀ”ÉVÇ7¿ßȬÆ'Á ÈÆ'ÂÉbÇ(¼<ǫĽ¥ÇÑÄiÀ2Ç«Å3¾BÇZć ÇÿÅö½‹ÆúãºÛÇ7þ(Æhã½¢ÆÃHºKÅp¸¢Ä
+À…»CćÁv¼ëÄýÂF»YÄ;ÁcºüÃóÀî¹qÃ}À}¸oÃäÀ'µ¨Â´¾?· þþ¹2Âl¿»Á÷¿Ô¹^Áv¾·¸!ÀŸ½Ë¶¿Á¼³6À9»Ô´ü¾ö»×²'¾sºG±©¾lº4°»¾%¹¤²h¼ý¹’µ‹½žºÛ´v¼çº¯u¼N¸Ç±@º ·‹±dºÛ¸¼«Ìºh¶/¬eºRµ¾¬Zº@µ‡­e¸Ò´ù¬ ¹ ´°­º¸!´Æ©´·³¬Z·’³µ¬H¶×³>¨÷¶Ô²a© µ«±·¨Ÿ´¥°Ø¥ÐµÉ°p§÷´?¯Ý¥×³Ï¯X¥ ³^®”¥-³P®i¤’²Ø­å¨éµÉ²õ’”Ò‰Ó›µ¢‰š„£Í°Æ­Èg™Ô”} w®ÿª¦“²Ø¯ù†pŽ]…þˆª†ŸryœV¥Íœñ–ÏŸOšO 3¬S©KƒÅ‘ˆ m¢{4v€ €Ãi<{`­pëyÇDpauj‚PKi{iƒR&t€tù‚¬;‰ÝeëkÀ[ÀU’V³G^^l¯f[‘tžÀ’Mci€^vE‘
+w~|kf‰]^,M²wZ¿{:p”|JtÅ+0ô) a%kÛ[B>èDó7¦#p&À
+3­@k;¿Uu^dQg\ûh
+KW`÷W>>ŠE10¹/`!T!V>D XÈPB˜YZN²¬ìº-µ¨«i»†¶(­Ó»‚·‹°¸¼«¹±½ÏºV³Ç¾l»´y¾Õ»hºwÀç½*´gÀú¼™·
+­H£ ±h¬¶¤s°¿¬ž¥™¶m±Í‡:Ž„}“0––ž9°Pªa’)ŸK˜iŸ`®p©û¤s¯ò­ìë—èŒAq¿qšaa7›r””‘¡~›u™i©Æ¥ú“ž¶’uùƒ}˜‡„åp×€·Šj„‚_†Œq«gh#S}_U`O—xk†6}ët”„Ù}»^Àf!X
+YÑT¨<YÂbà]8©šÎ>W ]^OÄT­}¾{fdµM‹PYAhVqìl¯_¢l3`4D5R+ÖmUqaÙ1¼6Ë+“ŵH8CJ<µS?[MFXCc²]m['lÂf!NóU%Amd˜t6g9]Îu!m~Où[OK9-ƒ0£%+¸,x"á;M"Az]·; œy1I;4^6p{b,hË^ûBµ?ˆ44Ey±`,ô4g-©L²\ªU%FDJ²6(5—ZCñé6_CØ:÷FË[3P¬:¸Ö´°¬ºµM®Eº{¶S¯ë»‰·ç¬¾J¸ ¯¾œ¸ˆ±h¾Âº•´Y½ø»±o¿®ºê°‚ÁI»¶² °¼Æ²HÂw¼Ü°Üƒ¼¨³6ýf´žÂ]½Ú³A™½Ú´©Ä0¿#´ÄÀ¿Œ·|Ä¿³ìÄ–¿c´kÄß¿T¶¶Ä¢¿A¹=Ä¢ÀµñÅ7ÀEµPÆÀ.µ¨ÆƒÀ̵¨ÆãÁk¹ŠÅ–¸›ÅÛÁ¸—ǣ¸ÝÆ:Â/¸¦È=™¹'Ç,Â{¹LÈDÂø¹îÈ¥Ãy¹ÉÈÀÄa¼
+Ä¿ò·EÿA¶Âô¾¯³óÂÚ½À³ƒÃ5½¸µjÁؽ´´ Áç½S²êÁº¼³¶ÔÀý½é´ˆÀ2¼Æ³^¿r»•²´¿'»³[¾ »;­3¾¤¸µ®Æ½´¹­×½ˆ¸F±v¼™¸z­þ¼·ý¬>» ¶^®…º¶+­3¹Ôµ–«¹b´Æ«t¹Øµ¤ª™º´°«›¹b´ãªÜ¸Ù´ê©Ž¸J³§é·±Û¨´¶•±ü¦—¶×±+¥ ·‹±$¦iµÔ°p¦µT°!£i¶™¯Ý£e´®—¦—³˜¯4£¸±í­¢³°¸«û£l¯X«&¢g±d¬Lž°ßª¡¯¼ªø¡
+¯ªE£ ´Y¯œ† ƒ~‘qœ§”잨°Ÿª%Ø›2”é›o®%©šf®i«C•œµ‡ÏsWq7ZKÄšO’wŠÅ’¨…/•
+Ë *Î7ÙK‹Il+l85-m§ª¸%²V§>¸¼²´©6¸ð³ª©|¹™´©´¼eµ×­×½|¸)­¼·>®^½û¸û­=¾Y¸û¬—¾‚¸U¬P¿ß¹«1À¸Ù±ÉÀ#»N°>ÁE»N®…Â’»h¬åÂá»?®Âí»º®LÃ)»×®×Ã󼊲wýL¯gļƯöÅh½û±9Äò¾± Åa¾%±ˆÅ{¾†´kÅY¿v³®Åt¿6´îÃɾ ²'Å ¾s³Äú¾úµ¶Ä±¿”¶fÆ‹Àú´"ÈÁ.¶¤ÇèÁï·ÆšÁ=·ÇGÁظÃÇึÈÁ«¸—ÆúÁïºÌÇ Ã5¸ðÈ=Âá¸NÈÇÂø¸ªÉ Ãf¸?ÉáúµÛɧ»ºÈ ÃS¸kÉ Ã@º{ÈÓĺÔÈXÃ÷¹ÉɺÄ7ºÉqÄ0»YÊQÅ'º~ÊÄ©ºʾÄî¾™É7Å>ºüÉRÄ|¹ÆÊFÄ–ºùÊ|Å$»ÐÊ:ÅMºÉÃú¸¼ÊĹØÉ Ãó¹–È=üýÈŠÄ׺ñÉ Äx¸ŒÉNÃu½*ÈÄ]¹ùÈÇÔ¹DÇ®ÂÚ¹ºÈzørÈòÃ@¸ŒÉÃb¹ÈÂé¸?ÇÕ†¹òÇÉÃ&¹îǶùØÈ1ÃD»¶Æ3Âé¹ÜÆaÂF·ùÆÐÁ¾º{ÆëÂQ¹iÆ Á·:ÅaÀ®·TÆÁ ·jÆžÁo¹¯Å¢Á«´NÆlÀT³¹Æa¿êµ>ÅîÀ.µ™Å©À2²zÆJ¿Xµ Å$¿\³˜Ä­¾·±Ľ½Ã³WÅF¿ ²—Ä?¾²”ÃÁ½Ã¯#Ã1¼V°b™¼K²wÁ󼺯²ÂǼG®Á³ºÔ¯xÁÍ»o¯‘ÁP»)®žÁ=ºœ®ÁºC¬Ú¿:¸Œ¬h¾h¸N¬½‹·P¨Ô½á¶’©Æ½¶‡«­¼N¶’¨Ô¹^³ªªËº´Ñ¨ú»´¿§„¹ê³Š¥ ·±$¥®¸U±Â§ú¸\²Æ§®¸á²ê¥Í¸›±ñ¤-¶¯Ù¥¶Á°¥4¶^°S¤åµ>¯™¥z´Ñ¯Ò¢Ä´»®l¡É´¬®¢‰²õ­: X³I¬žŸ-²=«†ŸÐ±É«‰Ÿc±V« ,°ê«T›¬!¥—,¦bŸŸÉ±«Q™á¯_§úš’­V¦½šˆ¬¥¦$ž$²‰¬úyI‰3€†Œ1ž –Ùw΃fyó{–ˆO,›k®ð©\–.«å¥§‡7©€Mt wbbÄ–¤€™×†<‹µwez:}ëiý‚–Šîyÿsq}&pE€)sFLddïu¼nL„!ŒJtÖXþYBbÙ[V?Sƒ&¢†›rVhhaY=hCT:Ù(BC ü€½’J‡Ù{¼“
+¯‡Ä–½=¯«ÅF½¼°ñÄĽǰ3ÅU½ø±Å:¾4±ÛÅê¾Ü²òÆ>¿´Å¿_´—Ÿ¿ºµ‡Å‡À ³äÇìÀÇqÀ'µ¾ÇÁ´rÈÁ2¶¶ÇàÁçµüÈ=Áض¨Ç¶Á÷¶âÈAÂwµ’ÈϵÈkÁصŽÈǶ•É}ÂǹLÈ´ÃrºGÈÄÃä¶(ÊÃ1µ7Ê'ÂÚ¶Ëö·/ÊÃW¶ƒÊÃS·òÊpÄ?¶ÔÉ^Ã)¹ÜÈ~Ãr¹¾ÈÄÔ¹ßÈæö¹ÜÇmÂÚ¹¤È"Ã9¶¤ÈŠÂY¶¨ÈPÂ,¸UȴøǀÂF¹ãÇ£Âô·qÇÝÂ,¶âÈ¥ÂpµøÈ5ÁàµüÈ_Áþ´È‚ÁcµxÇÕÁ~¶:È"ÁÜ·|Ç^Áä¶ÐÇ$Á‰¹’Ʊ ·xÇ›ÁܵÆžÀ”¶fÅÓÀˆ²ýÆç¿Á³ÚÅ¥¿g´<Äæ¿:³†Å©¿I²aƹ¿n³/Æ¿X°AŸ¾4²çÄÛ¾•²]Ål¾²2Ĺ¾;²罞¯‘ÅM½Ï²õÄž¾Š±ÉÃ}½P¯-Ô¼{±æÂÖ½°…¼
+ÈkÂQ·ÈÏ–µƒÈùÂ>¶ÈîÂ/·ÈÄÂεÐÉ ÂN²‰ÉCÁXµ%Ç„Á2¶IÈ Áë´ÜÈvÁ‰´dÈPÁ=³ÀÈöÁc´\ȆÁr²ZÈ9ÀˆµÉÇ4Á'´4ÇqÀвžÇÑÀT³3ÆúÀµÆšÀ²wÇôÀc¯4ÈÀ¿Ð³xLjÀ›³,ÇÙÀT´¥ÆÀ2µbÅ/¿º³mÆö¿ê³þÆ¿ê²Æ+¿¬ïÆß½Ú±@Å–¾s±hÅJ¾F°©Ä|½³ªÃ²¾!±Ãç½D¯ÎÄ€½ °ÃŒ¼Ô«qÄa»§¯JÔ¼{°¦Ãܼú±¸¼™­Ì»»†±DÁÉ»ý®wû۰Âw»ñ­šÂ¡»N­¶Á÷º×®sÁXºw«túɮWÁïºî®pÀòº]«bÀW¹Í­e¿/¹‡ªaÀ ¸©€¾o·AªÇ¿ ·Ø©•½Ý¶W§y¼ ¶ ¦C½À·$¦Ë¼Æ´´¦ÿ¼N´¬¦»ý´-¨/ºß´ž¦ŒºY´U¤¹Ñ²£ ¹ ±£±¸è±¢û·¡°^¡Í·Â°A¡ý¸C°b  ¶¶¯ ¡Þ¶i¯*Ÿª¶®3ž¶>­ÚŸÍ´Ø­1´Í¬ˆž¥³/«ó²h«šº³Ï«ž”±vªÇœ ±ªZšY°>¨q›¿°(©Yž+µ:¯ÖŸ~°{¬~—‹±R¨ìŽ¨UŸäŠÅ 3˜ä”ٮߥþ•¡«X¤-”V«´¤±”®ª£Q˜û¯Ö¨o]})wîŽW¡œÖdÒsfñn¢})sk‰S—è‰3¤œpK†é€ebõnmdnƒ šâ•†H‹ñr3wÅk1GèŒÖšp‡Ér|mÁ zW’PSãFèXŠKb>jõhàL¤JêJ)0·h.yn­XÊlüf†<û@¸1Ž*t
+¤‚õ˜iámZ|åfä)3o* 6ã4»,«V)S0;›<mB±1ë^§gwVçP8VØIïyy¦X9nQd÷Ö ¸ë _5ÿ8Ó(Ç?F—>_RiqKm TMbKMp9Â9ï*]Ð}ÁzžFËYFL,“®ðÀ#Ö ïCëNÛC(õ
+A¬ Å Úl6å>U2—0à>Ã7BpÄ¿  R j B)Ü&sF _>\k2ÇAª:ýÀ.¡ 
+- ò Ñ? ö#î+#%ðFK^@Yö*Ä8ô1RZ&3‘ ð½ !ù5Æ#³¿"b-a$ÙžŠ³Ë­œø´­ŒŸAµ€®~Ÿµ«®3œû·ý®žž¥¸—¯\Ÿ0ºü±6žºÌ°¸¡Í»²£F¼³x ¼V²Œ¡@½.³f z½Ú³f "¾Š´ ¤M¾ µ«£'¿›µ¯¢HÀµø¢À9¶¢LÀj¶
+£™Àã¶Á¤£Á#·¤ªÁ ·¡©Àc¹t§Áz¸}§•Âƒ¹+§S°¹¦Äùm©9Ã
+»£­¨Å ¼Ñ«[Ãà»4ª¹Â’º{ª§Âôº««©Ã
+·š°¿Ÿä¶«¯ËžØ¶•­Ó›ƒ¶|®LœI¶¯‘S´¥­³³ï«âq³½¬)›š´G¬W˜¬²Ø«x—²
+ªÀ™Ã°Ê¨Š™R°ã¨ú–c±ê©—°©§ð–ã°{§y—½­È¦Ü”¡®”¦X”š°‚©´Š—dXOœ/D„ŸœZ•1†à•Œ=Ž×¢)š„Ù™”’Ù¥¬3¥%¨´¡¿k©ª ´‹m¨ \Ž×¬l¤’__v^l؆ ¢)œ{`ÒdQr s§ŒPªa¢…ë 3–àJ|Y•RÀDL> f)zos2„‹Òu}o«fJxƒµ‹¿w—\,].@w‘Ám]K{`aZf‘¾wTA~SYJ.âNÉUÃEtjû€ƒu`Nm^öWÖ4®5w …23, Cyc†ÿwôfKtƒa.5ù.°?8;$ï3Ô.¦<7 < /‡\H`üN<÷Hï:†ýÎþKoaÆY_SS$•Ð€o(=tNÒGZHÊ}M<UFß501BC¡:ªNìq”i“*’#ÚV0D¬W5U 'N4,/ôéÖXÇÆë"òÀ"Ù˜)â9¯6d
+ú R —I™æ{‡É6†U¡S $ü0I',!ò i*=#=“«~ ‚*%!I™²2«X”ý³ìªE“굫«Ì–c¶‡­!™‘µÌ­¨˜¹·W­:™¶¸­×œô¹¯€Ÿ{º@±Æ %¹Ô±OŸÐº±› =¼²z ¼¨²2Ÿ¾Q´ž$½ô³ƒž/¼à²6Ÿj¾ ³‘ž”¾™³² ¾³ú¡t¿´©¡ý¿ùµT¢‚À2µÌ£¸Á·
+¢gÁնעdÁÅ·W¥¿Á ·Ø¨¦ÀÁ¸Ò¦NÂN¸Ò¦[¸0£MÂU¸)¨ÁM¸Ç¥oÂí¸}£¸Ä¸ä¦ÇÄxº)©£Â°¹ß¨ÄºK§0ĹجÁÃ[»]¨xÄeº‚«JÄú¼«´Ä€»ßª%Å’»ù­ÅȽ=­Ň¼ë®LÄö½ ¯«ÅJ½ˆ­Ÿ½¬¬Å>¼¨¯_Ä̽9«JŃ¼VªÆF¼t«ÅÓ¼Kª%Äú»§©Åš»ß¬ Æ ¼¾©2Ä©ºÔ¨\ÅY»YªdÅ‹¼Zª™Å»ý«þÄ?»«­,Äa¼l¨gÄR»‰ªÄ7»¨ÄC»ªVÃźº¨ÍÄm¼Ü©ÍÂø¼)©+ÃyºŠª§ÂŽº¯ªÿÃW»Ô©¿Â$º¯ªÂJº1ª:Âa¹¤§™ÃS¹L¦'¸¸á¥¼Áúº£¦²Âºâ§aÂl¹D¨ÛÁc¸d¦¡Á…¸¦©ÔÀHº¥ª¿½¹9¦Ë¾Õ¹Ñ¨q¿ã¹q§’¿Ô¸ˆ¦2¿_·¡¤óÀ¸—¢`À£¸ì¥ ¿¹L¢)¿_¶Ž¢Ñ¿ ¸Ë¢R¾ó»²¢Ç¾;¸
+ŸR‡Ï¤€œ±ƒÈ©¤4\zqšk¢‡:¡›ñNcVÀFQRþf‹\‡½¬¬¨+yÓ—ZŽÇ9ýJœDÁ`ØbÑIöbXyÇrf|ñˆwÙ^ÈWM92€˜bV\W[†B±{„?o;J½YMK†^ržB«NÙGÔ/;·G?—`‚z¾q®L aæ]k9D5t#)Cô>·)€5ŠrQFY|G#ë%£ ¾*a$*ø-{.¹#µ5È==22M_oZÍHVjECÎ&? ®A€YÑUª<ÔÐB jÜfƒ6ôHúBpUdvƒq‰< J]<¹=9QH_JVmkiÉ"³/t&6E)TD¦`ÐZèl&Ü lpw—$œóÙ ®Z U"…'6£$031I]Ú%‚ç˜ ß6 SO w$¾2ñ·£$;1‘³8" <*µ%8Ó«-”ì°´¨n•²2©÷“ ³þª%•Ø´N¬a•_µT¬Å—Cµê­úš˜·j®×›Ã¶3®P™Æ··¯¼–ƒ¹ ¯n™„¹+±šÁº¯ý™„»)±»š•»æ±ß›,¼•±Ñœ…¼{±OŸ¼N²‰œ+¾²@ƾ~²Ü¡á½À´Y¢:¿6µ¯ ¿M´QžÀ=´g N¿µ¥¿X¶Š Â¾ö·u¢ÀÀ}¶Ð ˆÀßµÛ Âí¶¤Ÿ)Áä·u¤Áo¸%£’Â;¸¨GÁX¸—¦¨Áո΢‚¸Y¢RÂá¸k¤F´¹H¥*Ã1¸ó¤aÃ1¸Y¨Äºe¨çºp§™ÃþºY§ Ä©ºº§œÄ©»
+Œ _>àW´Sù9%ëŽ!榙 ü’¢'q4.÷- ÃŽ}®Û©2Ž”°«F¤±°¬¯X²
+ÁM·I¤ÞÀ¸!¡GÀ9¶¯¡ýÀ²¸Ò¢H¿ò¸!¤¿Ì¸±£×¾Í·ò¤•½ž·¾ b¿ç·A ¾ï·ã£s¾]¸£[¾
+µ¾ž”½¶¾–¼Â·:ž½ µ¯žv¾h·‡¢-½„¹Ažâ½A·ž^½¶[ž ¼¯·A¼@¸…‚¼¹Âœ»Ì¸Ö›»£·Üœà»R¹¤žßºõµ×.ºe·WœEº£¶™À¹L·
+µm—趙³ì—¬µ×²+–Oµq³Ï•®µ/²Z˜´G²—9´¯“a³6®…±¯• ±Û® ©±­®‰‘‡±·¬Œ[°ñ¬¥’Z°«?‹¬¯®ªV¤®ª’ñ®Ð¨ÂŒÙ­ì¨â‹i¬è§Ã¡«?¨'«M¨ÞŒ«J¦¥ˆ§ªZ¦ÿ‰ª²¦ ‰‹¨¤ÚŠ5§‹£z…§]¢)Š;¬ˆ¨”rÀ‡Ž{sCŠ€V…Í©±¦õ†Ý¤á¢{ œ –fw±’t‹7…2£ ¡p~¨¡±œª~i¢Ø›W|Y @š4¿¥Zž+Yàq jõoe!Œ$`Ýq‰a:BšLÝ;ÁC£Y®Uéeƒ~œ7gFK=hh f>LË[têoï’SRJ´0fñb·?8Z¹a M«‚V‹ÛdêVV6ó‚u„ÓaBI{H]4+%(¹‚zN|£^<§X€U#Y!’‹6n/ $qx€ähN<;J7GâO!ß’‚÷
+Ñ0g8Ñ-µ*´2¢'F,Š9Ä/8DÁ7ºçû W6lNþFê¤G2‚(
+#
+Ý d 9gQnIZ&‡6 /w»s ö ¹ä ÑÓ
+` Ò."+
+^ ›­÷¨úŒc®›©þŽ±@¬
+°E¬hd²D­!‘¡²9®¥–}´ ­Á•;³¹°W”"´°®Æ“ ¶+¯?”š¶â¯–ද‡–;·|±Œ”¸¸±~–
+¸Ë±ø—d¹ù°l–Ź‡±Â—nº˜±š*¹ù²2— ºs³¹˜4º«³ š1ºÅ´Ñ˜²»¯´š½#³t§½|µŽ›o½Wµ’ž½P¶õ˜Š¾d·|š·½š·»›Æ¾Õ·bƾ¶º§¿#·ç ,¿#·‡î¿M¹OŸÀ¹ À¶[ž˜Àc¸! §Á ·
+6çA)<-Î!ü…c5 Ò$ÿ X"¹Î5BÂ;™-‘=`5RBÚ ‹!v0ë, ù!'1Û#
+ƒ Ó)ŠÅ¬,§ó‹-¬áªA‹M­«4Œp®°¬)Œ'°/«éŽ°Ÿ®Û‘T±õ­H´²Œ®´n´ °ÆŽ½µj±·k´“°Z”<µ3°¿ó¶x°Ÿ‘{·I²=”`·$±í”æ·¯u•¸Ö±
+”Y·q²»’ ¸o³÷’̹·³¹“™¹Ž³A•ö¹‡³Ç–}»Y´ß”ö»´˜m»Ð³Ç˜¶» ´N™H¼"µôšŸ»ß·3™î½“¶
+™:½Ö¶Išó¼4¶A›2½=¹D›e½ž¹ƒ¾U·çœZ½©¸Cœx½ˆ¹ œ1¾
+¹fd¿”·¾o¹#›ñ½^¹œê½¢¸`ŸY¾7·PŸÆ¿E¶ žÛ¾J¹A¾‘¸Užß¿I¸¢žv¾·¸áœ¾Ü¶¨žƒ¾ä¶> ¾%·ÉœV¼·¹fžo¼·¶fž ½º-œÅ¾·f›¾·ÍšÎ¾w·3E½P·œ`¼e¹2œ½#·f›—½¸N¸¼¸Ç›¨½ð¸“žk¼à¹Aÿ»«¸Y›î¼«··œ]½¸?›»0·Ø»ßµÉ™ »‰·Ñ›¿»Å¶Ðºõµ¤Bº ·_œ;»¶·‡œÚº¶µTœSºa·›Úº¶µÛœºõµíš„¹bµÐ—¬·²Í˜zºñ¶Ìš°¹¾¶¾˜A¸zµP˜O¸U³ä•!·³Ú–ž·çµM˜ø¸7´kšÑ··¶b˜‡·‹¶L–·µŽ”v·´–l·ç´k˜f·õµB•ª¶6´g“N¶¤³Ú’æ¶/´C”fµ¯µm’q´´´ü’mµ%´“a³W²ã‘0´k²ý“J³L²eK³•±V³[±hj±—³˜’¥²h±+z°l°>z°/±'Ž”¯­®´¬ÌŽw¯ò«*‹Ò¯g¬ ‹V¯Ö­sŒõ¬ö«Œ†ª¼«¢‹G«°¨R‹€ª‹¨´‰Ùªr¨Þ†?ª ¦ã„¨+¥¸…j§Ê¦õ†®§7¥¿„L§’¤Ú‚Ù¦@¤eƒ`¦<£+‚b£l¡Æ˜¤P¢`~½£~¢{ £b¢-‚¢u /” ™Ÿ™pèûqr{Ÿ›Fyó¡3†z» ±žvq‰—t”_†yutüy֢ؠs»¡š°x·8}SxŽ›–¸xæ¢" YArckã:ÛJIBÓJ°XK'HTFˆm6–”ŠJ
+d` ClTØL\–hiT>cÀy mèƒus;]Ž_E:]ÉA)å:²E>:Qi]q@RéH‡Kt:‚ÇŒ'gÐdÝY0,“1$Šm‰oS1àC@!ï!ŽUÄRØ[®E{*ì-ƒ" $\ñ è%ç1§&ø€qY2jH5FS+¸>8Ä d ù h
+¾ ™ø $›/"­#Ú :õ@ÿ0›@Ófcä(ñ<O7.4”S¸T..ADõ?M©RŽ*B%/RCR<wàÿaWäêî¹#\/Ê,¦""Ж(]ûj g²| O¢Í 6’;P3b$>:W;“$´#äŽ
+ò³(ƒ'Ö#)+KÞ TL$…,#ß;oZ W(:¶5Õ1VSJRd â38.* ® ö ´#â2m/!á3 .©ì i£_ ™A
+§<
+ Îè,+46ö%l#S;Ù@ȸq 
+1 þI y Vã€G¨§Û}Í©`©ÔZ«8©ð„w¬Z«ó€w­³­ †®«°…¨®×®sˆ~®…®ø‰ÿ®Ð­ó†/±° ˆÆ±Æ®»ˆ ²'¯£‹ñ±z®´‡Ï³Ä¯jˆ„´U®e‰i³{²OŠÒ´±“Š%´G°ZŠ µ|²'Šƒµº²»Žªµí±üU¶°!µÉ±ÆøµÅ²›·(´ãŸ·‡´"“ݸ)´"“ô·|´)“N¸%µ”`¸¢´g’¹¶(–K¹9µƒ””ºYµæ“A¹i¶Ð—º¹ù¶$–i¹Wµæ’t¹º·”"º ·”5ºYµ¨”ºÌ¶t”Ùº†·š•$¹¡¶’˜R¸è¶ •»ºœµf”¾¹ç¶ñ“¶ºhµ¨–
+¹Š·E•ƒ¸÷µj”ù¸Y¶×–¸þ¶¾”鸌¶“йm·6’Ž¸7µü’#¸;¶Á–¸ä·:•é¹¯´&•—¸…¶í“ñ·ã´“’æ¸)µ¨“Ö¸“µÛ”¸µ´ü“T·_µŽO¸±µâ•X¸;´–4·3´ ”¸ ³Ú•X·
+³’ȶæ¶(‘-¶:´Æ“kµµx•ìµ¯´—óµê´Â趴Yû¶P´’ŵÁ³b‘¶’´Í’›µü´`’ ¶³œ[¶²]’›´C³A´?´¡aµ³S´Q³(‘q´y³ÏŽQ³(³²«²l´ ¶²´³á³À³Œ¿³œ´gÔ³p³ŽÁ²±³®‰ü²õ³:‰@³m´}‹µ²à³µ‹è²´ŽT²+³þ‘¥°S³Ž'°¸²‹±$°»‰ì±2±KŠõ°:®¢‡ˆ¯µ¯«…Ù®±h‡â­e¯µ„Ö­V¯1‡Ù¬ˆ­–…««_¬Ö…ë«°­“…ëªË­¶ƒª ¬€h©´«ƒÎ¨úª§„O§þ©ô‚D§r¨/~6§‡§7õ¥Ð§€†¥-¥
+y!ï2l0©%>a=ö&Ù"Ü{Úí<
+µB‘w¸ ´òj¸ä·L‘¹+´ò¸Jµ³¶¸·Pk¸Ë¶b·IµŽ*¸!¶‡Á¸Œ¶“G·bµƒ’`¸`¶ î·ßµ‘¶³b’¸µq’d·–µ‡“™·’µ!“T¶ñ¶f“Q¶øµ‘„·‡³½‘»¶×´“¶•´šH¶6³á¤¶’´¿‘¶¾µ’ﶇµ¨îµ×¶‰ù¶(´NŽm¶³³{‘qµº³äµ,´?‘ï´Â²—g´„´ž4´ß³b‘µµ
+²¦ž°­¯ë‹Û°p²=ˆÌ±R²´Š °¢²¸‡‹¯ë²Æ†,°¸±vŠQ°´±Í…’°H±
+f×l ';&6¶³íö!°, )Ý*G!‰9.^ax!£5_2¢.OªQ'oíÐDˆw3C4í%•?‚;½`(V# /"*ä
+?
+µb²DR´©²DŽÁ´³ÄŽt³è´Œg´òµ7;´—´&ŽT³>³ÖŠz³x³Ý‰r³´¥Š5³S´-Œÿ²'³ƒ‹c²Í²òN²Z´CŽ²Ã²¿Šg²Õ±íŠ±R±´Œ¦²Z²¿‰ˆ²ç³è‹±°²$Šj¯£²ÊŠ¬²6²î‡Ù±ã±.†,±©²@‡Ì°²'†ƒ±
+†#®‚±Í<¯g°w€¡­¾¯ ƒ ­]¯£€ü­¶°õ‚G­H¯«~ó¬^°î­v¯œƒG¬Ì¯Ý‚,¬¯g~±¬Z¯C}÷«‰®”€V©n®P‚Aª€¬w‚Á©£¬“~í©˜«|’¨é©í}}¨¾ª(w÷©9ª|ܧóªHvצܨq{ý¦p©˜yĥ⨢u¥1§7s]¥I¦¶x£w¦w:¢E¤?x‹¢>¢íuW¡ý¤'pg¡c¢xsÆ ª¡mmß ˆ¢l¤Ÿ… är²ž› 3m
+š¢š;OÒy w:mvŸ õoh›²ž2n ™ÆÐg,™}›,ib™¹›¨h‡™ÐžoqáŽG~Zl
+•‘WfÖ—I—òcT•ß•>dx•K–EgŸ—C™áH$f9`D_@ŽtŽ‘_"¹’¥[6“¢–;TÌyxp#a¯‘ ¶1jLÆL‰ )&¥"?±]ìYZS’nÚc2\·ŽÊ…:õQ.JÒA f)cI@âTHE1Aö^_[)G9eù_íJ;VÌBä.2%AÒcbõU`³IÛ@‘>ê-MX t}cYX#Q›5ý2Á7š*ÓJdh^Í;RŽIø;ç4Q!["§€Ö8+5:$ +K?­;bT ó"><W/Ž3p(Ú' Ê-óDaC$³-Ø(B)C#(.†]O̪ ½)O"xjHó 0ÂU;ZR þ83-(éD¦Ev /¿ýÃ&‚¡3)2ÿô!>p }*Z$j”öR
+ÆÅ=  ïw"  x
+?“} J†=Ë@“!%ÚF
+p
+
+ƒµ´³Ö‡À³S³f‰ü³³‰\³˜³£‹Â³˜³xŠ³$³A…dµm´}‡M³Ï´—„w³˜³Ò‡¤´¥´N†t´4³À‡ž³!³®Œ.³Ï´"Œ°´ ³Ò‡²ò´ ‡³P´Ø„½´QµŠ¿³‘´òŠÕ´ ³E†^´"²hˆ ²õ´k‹î²ž²ˆe³ú³µ‰²¿´8…´²9³œ„•²±´g‰à³p´dŠD³´¥‰e³^µ‡C±D´<‡Ž±­³:ˆ‘±6±.†K²e²z„t²ç´“‹@±²õ‰±V°b…®°{²'†X±Œ²¿ƒ¬±²K†°P±O…E¯Ö±'ƒA°3¯Ý‘¯c°¸…2®Í°Íƒ—­è±°}å®{±O€¤°°êƒù­þ¯Öƒ~­÷°„w®,°‰~T­Å±Æƒà®›°…‚­V®3„˜¬á®%­e°,‹¬…®e„?¬w®Œã«Ô¯Ë~~¬ˆ®æ‚,¬H¯4׫°®ÿ}ß«»®”|â¬z®í|Щ宂zÓªÒ®©|©q­%z©¬W~0¨¢«*|‰§£¬e|¯¦_ªkz˜¨|«_{ô¦ñ«Jzo¦ãª:y¦Ò©¦yù¦~ª uŦ“©ÐwÎ¥B¨©vݤŽ§ðr|¦ ¨w…£X¦ÿvÝ¢¥ÛrÑ¡K¥§qr ë£–r3 Ð¡Ðt
+lô៧i÷œ®ž$gõ›Ðf®šÁšìQ^zÙy5eœšEPc˜¯›Ãh6˜‡šc€—n™R_$•æ—<c'•_—ÑkvKpŸcv”"–_‹“^–;`’’¸”âY°’ –«\ç–¨™b>ÞZÅW¹Pu~Kã\h‘'’SX Žm‘~X*‡¡‚Jg唌†3NR&NJ"¼(ó!Å<__¾LÒf©ZsX*‡º„Ä<eS:Kv?ßiÔg…IñZæHôA=a^/=ÛZ2S¶BóSžB¢
+Kl8tNüK³F{]8Hb3›5â#¸Bk] V!3}E)8Ï3¢;ß.ÚO¯^PP²CR]LSÇJBL!Û/+¸=EG4Zt*Ú&Š$ em †,æ2&OOŽÝ&¨DGz9"ñF»#L!54ÏWT Cþ@|p$‡$¹Ì zl !;ó="W9l8-$
+;9%B |à Q 0ú9#Ö!¿îq b(ø$§ò#6
+}Я谱„?®s°{‚~®¢°eƒ¹­¨°Ñ‚“®A°s}h­6¯Ž€®­H­ú€•­¯‡€ð­¯Ž|M¬Þ­å}è«Þ®‰¬!¯*;«T¯}†ªÜ­:z«·¯<|¸ª¤­Ì{Ȩ©­ˆz§©±­³{]©¬Þ/¨¢­Ly„§×¬ y­¨»¬z}&¨¾¬ìvO©¬úx©û¬Œy›©!­VyI§r«qyx§£«´w:§‡«v¦J«s,¥óª§o{¥Ô©Ðv!¤e©•yʤv©uuW¤©`q{£+¨Šr‹£Ð©q ¢¶¥™pd¡¤§o³¢-¦nF¢Ø¥pÏ¡¼¥Pl²Ÿt¤Wn¾ž¨¢÷oÁžß¢Lk9¢hㆠ’hŸŸágD›øžâk½œ5žÛgÊ›žyh‡šœhd˜}œ–g•—£œ‰b˜¼šjSœ~À\e•8›(bp–š>a%•Š˜\î”2˜*_É“í–f[íô»[`x‘l{Xƒ’ܘ‘Y_””ÈWÀ»“*SŽÍ’ÏZ>•ö›6UU„R;Û`IaYå‘ù—5Rp‹ÁNÙ†&‡1Rd€)z10lL HŒ¦°^CåhLkÞ?[8T&Néy,v¦?üSÓNAømXlËJY7IO>âc°c›1ÖH[Et>]N>~æ.˜7ÿJ]AB\ÃH¶-Û4"8<'TÿM²2*@§5]6D<ƒ.e!f&ERDâNCA&@™-º›>¿7[k38/)™%Ó㶰i 5´! '¢íÍÞ})D?¯=+¯³
+B [xмÉ(¤%\s§d%½(pv6ýÑ+ì(Î& ;(7…Ö6¿5 ˆ14/ƒ é
+@5бP,¹ˆ*”%c|J nïqªb‘%_1Ë'ë< %ØË
+|Ç®E°´{ë®”°i}n­Ó¯Ä~±¬å°,€½¬e°»Å­6¯À}¬%®ÿ~'«J°{Ë«É°ã ­h¯Äz«Â®·׫X®©n«­¬o|»«É­s|‰ªo­á|6ª™®Py©‡¯#y©í®¥ݪH­~zƒªã­OxÀª„­ˆ|M©n­¬xe¨Í¬ö{¶¨‘¬0y’©+¬Sy¸¨´«´y{¨”ªã{˨é¬%wz¨x«m|§’«—|z¦Œ©Ôxý§H©xÔ¦Jª v^¦šª„rk¦…©|rù¤Ú«´se¦ªw@¦2¨éu!¤™©/vr¤P©×rˆ¥©goé¤á¨go¤×ªEu£±¨×rà¢Î¦ãsF¡~§:r-¡×§ l÷ \¤áiŸÉ¤'kô ¤œi}Ÿ¿¡ÐhžC¢
+bšœŸÉ_šžhq˜ŠäbX™_ô—~›
+^ß–Ùœ ^Õ–›¼a”sœj`”™ÿL,|Ç|J\Õ‘—CZÊ‘7—ˆUi’d”ŠT£‘Ž–ÓYô‘Õ™zR0 ‚þS[tÅoT’™ Xþ‘@SǸÞSx‹‰‘ßR­’˜ñ=!dcO/ÏOâQŠPÕœ™fMr‡FŽzKñ‡³ŽCßnn8(KEVCÉNæ22K˜Gä2¤G>ÇJ@rîvÔ:~TRd;½ml™=–O¿B|?›ihk‰-§<ë9±2ôA™5+s?g>¯Jñ?å;¿TxMD-Y9Y,0iCl:,:šD¡7|7xCP4SedfžAÔ=-@ð4o1hAªBÙ3`ü1"7û'}Æïö\Bxª ïwY4+.O*Y(ð'xU ³
+• Óñ"+ž…Ì H"5»Þ)i&¥â1à.l ‚3º.| r9£6F 4#5l Þç ö 2üwŽc(ù& £
+½å#nXw*L)$°Zf§v/î9
+Ø%î ²ŽªŒ(-q/Û
+þ  œ¢ 1bÐ{
+tr¥sª‹r`¦ª¤t(¥h©gs¦¡©xqò¦~©Âo ¥Í©¿p¦ª:s§¥¨(p»¤¨\oé¤*§Þr*£i¨Ûo£±§:q”¢§p‘¢¡¨nœ¢g§âl.¢0§™n€¡\¨cmÌ s§Ðm á§µh ~¦Äiâ ¸¦mŸÉ¤ám¸x¤­kež¥¢ÜhI'¤×f¶œ¿£ýhœû¢i&œÚŸÓf.›õž kÈ™AŸáh›9ž¬f+š;žéd;—Îœ±`-—ž]ª–íøb'•Ü›Q`ï•›Ó_¼•'™:\1”`šB^d”c™>[`”/š ]ɒ̘ŠHÉyU{ôV¸Ž½—2T.8•ÅT¦¥“GZÀW•vX’–êP?|~NTØxôxNQ=:—POk‹4_QŠ¦ÂOºˆb²NðŒ$“'D8rÑu*óG+GDSe‹ø•âJ„¨bHdž9ŽS„~?{œ.EŠ?ú•õ$ð7À0é+Ï:Ó0k=½h)m <)`Ú_š8-hgi/,®Cá=BÏw#§&I7i4Œ9UMÎA ø#ú;
+Iy<-CY7MI7NF†<;+¬A—;<MÎMÇ8ß;ÿMfBÿHöUO@~CëKK9"*ô5ˆ(€Ó.°1!• Ë 29
+” AØþrYŸEWŒ%2!ë÷43¼_Þ£ßÒ·] ñ$œ C*½)&G%ò9È5Š! +‡#Í"Û61262d45ðs ïbΠɣP`Ù/,˜rz ÃÝ=Ë Ö•š÷
+Bð_ ñÑ &
+Ü ¹‘ê ü›c%pí¶(+« W»ý
+?4ÈCé7¤#€"‘#"!Hq"l%h.¡"ô܃Öd… U—žù¸éˆv üù/_0þ^%°&; â ý Ç[Ñ~ÿ ¥(¼%hg„H,µ=!4f!~)€"4ÖHõ*h1Ô‰ ¿nš|C,ã-~%û=€8ÆÆ·|ïòÝ â
+Y
+!Ä] B,
+§ —%2Tá)u~ &U.¬.ï n áo 2Ñ%¯" Ç €0·
+’Jœ“TØÆ›Yn‘™ÆSÌ™ÍR…w™ÆT«ŽQ™XW>±˜\S3Žä–ŠQ¹Ž—?QHŒv“ÓP&‹Þ”NU‹²•§>ðqÕu>P ˆòÌO‡u“©L
+êšý+,·/ ‡#â"I6H'Ö'NÝ'Ÿ)F!¯{ l*gW! 4!2¨4\1à!Ò×`Lè"=&¢¶íYuÿ3 9t ¤;³>z]#öV0Í
+h †¡ íF#Ó¥£a>¡ú€Ö Ò;<3kò  —C/Ì.8H \¯CT
+·Z\”ž  Zk•'ŸYW´–‘¢&Y&—¢ð`–à¢7\ñ™v¤Ú^9šˆ¥¿^×™á¦`#œ ¥^]œô¤Ú_´›r¥å_÷œû¥‹^Üž¦Ü`»Ð§a¯µ¥*]&œ'¤¸]GŸ)§]­ X¨Æ`»  ©€dŸù¨q]ôŸÆ§Ec\ Ö¨+g ¨†b Öªve¡¡6©dÒ iªõd[¡ˆ©ÛeÞ ÿ«”hV¡_ª§fÄ ¬Pd}¡Æ«Ja’¢«ûe¼¡\ª™dc¢-­Odh¢j©ðiž¡%ªk¢"ªÿh1¡ý«e!¡Â«åc°¢u¬ljj¢¥¬>h6£.©ði¡£@©\jj¢¯¬^lÛ£!©Ûj£¡©ÉhV¡è«i®¢>­“j®£¬…jý£wª–k{£T«ìj(£®¬ih£2ª%o’£_ªÃj®¢Ø«
+l§¢Ä«*h+¢­jr¢ªõh|£«»jL¡ÞªÿkŽ¢Eª¹k¡ùªi<¡pªygå¡ÞªOj9¢Ü©!gÕ¢AªiU¡z¨†i±¡Â¨Dj\ Ú¨åhYŸµ¨˜hݟЩjl3Ÿq¨GjA N¨gi$ œ§ªi1 p§®f{ U©ÔkŸÉ§vf¾ŸV¦fc¿§ogûž¶¨GhVž¥§Ehžy§ i 8¦šh¥‹i1œ“¤ÉgW¦øeœS¦ cº ¥#d)œä£âcL›×¤Zbxšó¥åe™™Æ¥WbÙš¦£JcÕ›”£Jb^™„¢Ø_Ø€¢R^–꣱`€—2¢½[~–O î^d—j¡_Ζ'¡
+[Ñ•ŸKWk”Å \ñ”¸ž¯[Û“³ž³[O”×Y2’ÂST«’Å›—[J‘ šRT鑨›yU¢šœQÅŽÇšˆRLŽ÷˜KS÷‘š~Sú™bOàŠ¦˜¼N¶‹¿—ŸOžŒ‰•±NcŠ•ROuŠ(’0J‘ˆ~‘ÈIˆß•—>Žn uCL[…ßÛN†
+ K”…ûìJs…<~H„’“UzEs]N˜€Sˆ§D[|
+TÚõ "~5³5a)ù9
+ÁƒøI¯ ÆÖ€Ú
+‘Ÿ0SË‘{¢7T“:¡U[”ó¢‰Vú•E¡DZ/–
+Ÿ\ªfùŸ{© fñž¶«ìcÚ =«QdV _ªEggžŠ©f™Ÿ:©Ke9Ÿ)©cdåŸmª3f®Ÿ©­c«žß©d žÕ¨ógžW¨Ðafž¬¦Îb$œ;§ybœÖ¨ìac
+ÂRË›aMrŽêšìO]D™KQÊ‹™UPŽ}™øOüŒ–—9Mù‹Œ™˜LN‹¯šÇOOŠd—OD‰@•XL ˆ„–
+H-‡Ù•lIe‡:•IÆH‘ÜIy…m‘¾H’„q’ß>¹jÉsIF™‚Á‘DÙ‚užJ'›¸EƶŽ
+FŽŽÍhðˆ°w‚I£€/î=ÉqÞ;"aLhwEªM‘C7{Ô‹A zÿŠÒBÓ|wñ%‡.ä(…1Ð`0m°7pu'3Ô4Þ:]>¿†“A96HŽ<Q”q 9åE³6?*,C¼E$\F³PY9,]:`÷1 JÔDñ)h<A;w<mgÅn*2f6l'W#ô,H È"¢ôe‘!b=ÅG -‚J]CÍ$Å-:4Ü5y*ö+'!ŒÚ
+.IîO C×wÉËù6
+àó˜
+„²Ç}} *éسf²
+ål p ¤væ ®
+CfúB ‡ 81Àã…#Ì î
+Í&y0>N0„fÒ*-Œ5³+´;D=Ù+¢F¿ÅŸ óµH—x ½Ë
+šéOùQœMŽ*›×MÀ‹PPŠÏ›†LöŠ¦šBKŠ²™„L©Š—JƒˆÒ™ŠG‰@—<C¥‡­“JDL‡­•ùHÉ…½–OFì†9“ôG…”¡GYƒ¯“[EÞƒ‘µB­ƒ“úG«é5F¼€·kEˆS‘»8 dµnÆ@@|kk@%} ¤E-{@‹v=¹|zŒò?z‡žkØ€Éjž>ËwÈ»9~u܈ 5ùe´qN<w‰é;ûvl…è9éuˆˆe:ïyŠÔ%´5T-Ö2uZÙey3d3sI‘9•E9>|ô•Á4dK¿?iµßÜ6Œ>e1&3AHDCá9‚=4Q[»_v0{H±GßO1³5®B"w}‰@3D,–š$>"~Ú9[¦o¥`L-)U‰SÎ0>.RS"RPê:&68á2M žU?7$¼ / ò 
+‹Íc
+ä ;W|Â\Àœ\
+—¤VK–‘£!\Ý•ý£ÞYù—%¥-V2–ó¤™U¨•;¢ßUX”v¢LUn”p¢ðUú”«¢ÑTü“Ý¢†Ri“[¡ÆR˜“Ú¢-R’ö¡\Q‘«¢T‘Ò ,Tn’wžðQùæŸáP/¼žvO&‘]ŸHR…Žý ­ObΞ9Q¼!äMrŽ¡›üODÑòM‰Ž­ž<Nuš>PÅ‹SšöJá‹p›áJËŒD™ÞF>‹7™\G߉› K¦ˆ@™ÔI€ˆ™ÞH­ˆå˜äFˆˆ–¸Kå†^•
+Hq„•Dt…p”ÒEeƒ¦“hCÿ‚œ’`C€¤”€Cš€’¡A|~'’ìBY~’C9~ÿ‘@ ~iä?È}Žt>½{uŽg?ó~fî5ißv´<w⋆<xq>òw‹Ša=yIŒ}6lu{6;Q–RŽ9¼wÙŒ¶6uþ‰_2…`k 6¡o©5³q„¨6Án™‡!87tXŒ€#>¡<U)T\–+´WÅfñ};ÉDï5Îwœ‘±1M;EµÆ v++8;0 B;Á?Î5ì7T,QO—U "|DGEZä*Ž,
+=r|²=f=¯(ã e ;™ Ÿ€MI„)KçCe(ô*OšRS[jMð)þlŽl€AÜ'40¥(QëG…(34Ù
+,'+!O©×]«A Ï ÷(òR ´Z“*«Ždq8ŒŽ(²®
+#/
+ÖÝá ÃE
+— _ a€À úì “cÙ
+ª ² Æ•ÒŒìÀÿ#Üðj
+”µ „N,”⣙M¾”¢ôMò–¤ŸRN•l£OÛ–O£XQ›–Y¢&T>•¤±T[”Õ¦Tõ”‘§P6—À¥÷RJ–ý¤S0–\¥ªTC•Á¤ÉT0–€¤ŸT–§SR!— ¥®Sˆ—I¥-T˜Ã£.PÕ™b¥ PŸšˆ¤¿S˜>¥ T«—ѧ)UQ—…¦~V̘û¦ŒW˜$§)T¦˜ä§
+RQ˜É§§TH—°§yV —ë§ÆUn˜§]W>—°¥ÍQ÷™‘£åU˜R§ÍW —á¦2Z—C¤eU¨–Ì¥ZQ%˜Š©ŠTÝ™¦ÇVŠ˜$¦~Wœ–§€Sb—S¨2X×¥åX˜¥ÉRò—¥¸Sn–¤¤ïTg–R¥¼UL—£åTç•æ¤lUå”z£eU¦–l£åUñ•ì¤SWm•â¤ÆWy”E£TR-”ߣ9Sg–¤™R­”O¥¿QK“þ£™U6“u£RX”¤•R·“4¡QP`‘ï¡Nf‘±¡SF“‚¡UR¹’6 ~QH‘Ž zR ’PŸèQO‘žŸïM¤‘MŸÂK†‘ §M[¡KIÔŽáŸÓK9tž¢M´¡œ{KÓŽÊNohœEL›øJóŒƒdK'Œ œ¿L䌼›kIÝŠ¿›šGS‹'œÝJƒŠšmF؉·™AHLj°˜›C‹‡˜¨E¯†p˜˜F †ã—%C…K˜B*ƒ•sD„“³FZ‚{”ÙAxƒc“#A9Ê“ä?O-”YAL€«’‘@5}Ä’«:¸|ß‘{<}Y‘‘>||*‘3=9|Êb9Ž{œŽ¡<QyùË<ÿw”¸9p{@¨1šb)p™9 sL…´9ˆu¨‰à8kuq‹:–vã‹2bøp¾0Þ]ñkG7šv‰‹6¬sR‰o1b¢s2k÷{r6 nÔ„3þn*‚5 s̈”"sG¯N†#¡J°X
+-^¶q!ÂGR‘2ëtu‹:ÑAÌIsN`4…6ƒ/=ßIXÕ8Ä:B#÷BÈIl>îC,'d.”$ü4fÔsì:I?÷1 Äž†~!‚0i`iK0@Û#j#4#O—$»N3\žQ¾Eˆ!7[Kþ&È&42í*x;i/íK3ç(O Ò!ƒ&O GˆR?
+ x'!¶'x(ƒ };õýð4S=Ã+Ž/È${ùw) O­Þ pÄ9
+z0ä4à#ìV$ ÙLÐ=¿
+…ž³J.¥ DIæÙ¡%J¬¡QJO> üI³à¢žGΑT¢”H¯’µ¡tHñ’=¡
+JR’È¡’Hü”S¡ÍK¿“³¡¼M§’`£ÔL«’„ ÌOÙ”â¡"S’²¢ÜL"”p¤ùM”8¤ªOF“0¥sIâ”»¥TMþ“Æ£N¦”+¤}Q*“œ¤ZQw•¡¤N»•¥oN>–'¥ÞQs•ƒ£FN.–K¥
+J€5
+ |„©r%ß'ʇ&08 %¸uÓK./p#M/ø&ÎbÏ
+‚Řô‚ c
+I–“0¡ÆJæ‘ù£JLt‘¢ûJa’Å£QIÔ‘Ï£CJv‘@¤™KÈ‘Ë¢¯Kˆ’”£ìJ»“#¤I“T¤-Mk’z¤ÓLY‘n£ïN‘‹¥•L0’@¥sJ¢“T¤1N´’È£®K.’»¤;K5’ߥÛN„’¤ïK“n¥G±“¤‡No’”¤}N’ ¤»O6o¥N¹‘±¤^LĒ⣮M2’˜¤åNΑ˜£„N_Ó¢MV‘
+´ZÎ áêØ « d, U àð‰$Î"Ï#S;Ö~
+®Gx„"Œ(·¸§×
+Ôö -9
+ܤ
+“x=Š~Ÿ”<|å“Ó:×{(“u8è{(’];ûz›¶;\x·‘Ž8Ýv{Â5wŸt3ìwK5Æv0Ž4þvRŽ‘5 s>‹¬4£t‹S2jt<ŒÃ2›qÐ32rÝ‹c1éq&‰x3›p‰‰ž3oq_ˆe2úoš‰i/nF†Á0ÞoL†H/oôƒÿ-ÃmZƒ©-÷kJƒ80©oZ†K!«KÅYà&*WÍk
++Û'^’-‡+Öøx } ì+û'"Ö7•2¸|'m%TdB|^F+ö:/øÐÂË_/³3F¯+-nJªI38È ç8JCØ4x›’¯Ñ
+5P(z  ÿÇß¼ T %Ã,¡ôÖ V )¨ ¿"b7ž6Ç'°°¸ Ù_îê¹n
+WFX\ [ÿQ…€Î
+I‰4æÆ_㽄
+;ù‡›e:²‡ï™f;{‡!›2;§ˆ°š~=t‡ø›:ã‰ü{</Š%œB?MŠá=ÉŠ†¤?ŠÕœŒ?çŒ1 @#‹1á>§‹mëAeŒ!ž¢CŒ©ž¶B.…ŸˆA¹Œs B.Œ} ÂCvŒÌ K@¥Œc _C’ŒÜ 
+!{\ztJ!²S½fÍ$ï'x‘P
+f^
+ì –Ê!¸É+p/¯í-j1Òë7¯DÄø@èT.J @mP/è.W-$¶/=42 @ XÒÆ .&j4*kv(¯%øX;ýS’%Ë8N6d^ …È/ò71%c ÃÀ l 8Bæ$¡`,7¼.<2 þ |gý;€ÛEò9l"5@w #- $ ø/Í,Ÿ® ä|U¹ j ,q ý l#È.© ‰=
+6“Ô
+~q÷¾#%'Y#Ž7 r Èym ì9Ÿ
+»œºê
+· ý,s! ú±«^
+‰Yœ–=ëˆ'›á?Y‡³:m‡èœL<9ˆ3›Ý>3†[]>±ˆœu>]†j›?µ†Í›®=Èq›ü=È£št?_…ž›h?ú…К`>(†µ™Ê?M…KšA"„õ›>‚øšp<ׄ¢™9ЄܘÃ=@‹—³>–‚é˜R;›ƒD™b;…/—ˆ= ƒ„—À<™~ù˜79I€—:<‚¾–U:ÑÈ•é:딸:ó~3•7|Ù—Ñ6Ò~À–v8¼}/•i8“|ý’Ü7Àzi’67º{Ÿ’ 7Üy~‘n5Êy’Ÿ5pz€‘P5yoA6txkb4Ju¶‘=4Íw21¾vÔ§1Îv’2Át«ŽQ3-tŒù2Zr¯Šõ.ÓrkŠ".is–Š–-1rŒm2#påŠ 1@o¶‡”0Np@‡¤.n¥‡½,ëmU‡½.m‡+-,lÍ„†/`k]… /(jð„-"k²„õ'Ókc„·,¢i£„œ)Ÿi‹\+%hA€>*çfüÂ&ÎfÆJ'Óf‹~½)«gT€½&jc‹|ÐG¨VC"4T•g‡(@cì}²$haûy°&õds}©#QÁcA$HñV\{J#ZWÙ>šIr$R[¤uÓÒA¬PT!ÕXôoZ šZ˜sØWZ×q¿èYqK öbGz[G0¹>l#§_g# 1Ò-‰ ] ¿9%ö-€Ô',-åVÏ#%¾-€9Ÿý0"9Ô¾  \È)5óø#Ú)ûß6ëA
+d3 ë/:8+¾| p bóP „:ª# Ë< .J
+q «XúJ}@
+5
+Ý$(¬’ å##1&ƒ4Þ"ˆ À¶¯ ;î!4Y) Dñ ™(“E+q%ÑqH—ëþ,ô y$#35
+b,Ãéˆ* ? øÞ"XÈ¢
+23yâ–R2l|Ü””4M|¬•Š3H}Ö•1×Ô”<1â€)”c0ËD•b2ç~u“Æ2#쓬2ǀϖŠ5+€—á7Ô–Ï5V’—C40€ð˜1ׂœ–4‚æ—å5eƒ&˜m4ø„º–U4ׂû–Y5ƒ²—3䃎šï8¸ƒWš•4æ„m–ó7D‚¸—M7àƒo˜ë6}‚©˜€7¤„š8ð„˜Ã8„â˜Í8®ƒ¼šù6Ë…#˜ë8V„ï™9,ƒJ˜m6L…Úâ8º…åš$:®…5™è=~„L™Š9Q„-™¹7g…E›7¸…™Ð;m„«š;F„¢™¨9•„þ˜:Š†9™v:¸„К³:@„™˜9n‚šY;Á‚œ™8‚КV7Nƒš$:O‚,™ ;«-™K8 ƒD˜U;¯‚;š·;R6šß;±ø˜Ý9­€ù—ï9ù‚ –Ù<ÿ€>–v:š²—]8Ïl–š8[Ê–«:~Õ˜>:–¶–Y:U>•Ë7žq”æ7P~œ•†;4~«”Ù6’ø•U5|¦–6|©“ç6&| ’5}{¼“#7Â|3“¦6Ö{{“À6
+yu‘õ2´zc’)3“z’34 xe’4Wx‘Ž3
+wÅ‘ž2ÎvRÜ3Ou@1@uw1t±ŽŠ4s»0Gs§‹ë1Xq÷‹:/3qŒs10pNŒÌ0[oÁŒ=-{o‰Ñ,o³‹1,Šl{‰ª.ˆl6‰-8l㈪-õk¤††-Fkx†)½k²†*¼j …
+-€hF„(…j“‚_+¹g\„0*Pg ‚l'OgÛ‚)'îeL€€'#eÀ8%Icç—%Îd`c&;bÙ~%îai|'&6azÇ%/`ê{1$ÜdÝ€JºJ«_§L: Iý!‚RØlO$¨_
+5TFù3ÛBæý#g%§-:cJ· œ,%–a7BD#~<3
+ýö’
+Õ%šs+5rHñgbU «"i}   }6üNI?5-óf –Kb1 TP´HŒ!…¼]5 30oî#ëß
+<3íë6G樂Ëe&…‘‚‰,$Rà 3
+]T=ï2ýX&’hŸ3%v3)# ¯ C^ ú z!j,Û ï €
+ ‹WÞ}/WùÜ ¼
+± …d Ñ ˜Í}–&'aY2å … ÿŒ¶\º
+P9
+2I}Ó•Á6özÙ–>3³{{–>3œz»•Á2{Ô”€5æyu–R5Äz“'4®zQ“*2Óy5’¥1VyC’31òwQ“¬2‹x_“'1ÀvÑ‘q0âv8ã3Au@K2¦v‰ˆ1©tße0tÈà/~txŽ”1rü‘/“r²H,sX0 qYx2mp׎Z,³ryŒÒ.¦o]‹û0Þo`‹/moŒ.,o-Šp,˜l¬‹G+Am]Š>+Ôlň )»kˆþ)¾kÖ‰(kB†Ÿ+%g§‡V+ hà„Ö(>gÛƒÎ)”g„ø&¾h’‚µ$¢gãì'Ydü‚D&Ìe¾€±&d^‚¢'Ccò~u&b~º$‘c)&?aY}z$M^À}b"_ˆ{Š Ý`YzZ"|a{I#µ\xw Ü\xà"Ÿ_ò~ 8A3WA@)Ï7³´M¾e„!ÎZ“vé PVMr–V³v"ÉS e–-‘RüZáîM4dç¥M—f™q5)AXG­Z‚sL‚eL»Qzm »OKnºN l÷
+–”$„„9&KI Þ(4UÌvAó&Œ&JÍ ï  C/#h“CëQ|±)Â*
+z7=G« ·$p,–¦!#Åf7ÑJV å×=ç-8ÛÕ ,
+„Q Œe>$/9Y;B÷aø ”Ñé9x
+D(é<«!ÀÀÙx»Jø9&ýN˜2™ÚÄTü È
+Wy8-£3ú¶•ÑQ yBÁb) ·"Ù„ï
+ù’©›Í¹ž VSÕj.›%é Y G
+•˜Zª Ô§#,Á±a $ ¡ ?“!¿šRs oªÂ$
+ ?R
+ZôÙÜK+”lŒz)djÚŒ°*}kh(ßmíî'9pdŽ. nIñ/pó;-¢sžX+ÇskŽÁ)`sã’,Otó‘,@v©¶)vl“4,[uZ’Ï+èu«‘W*žxבì,xK”O*”wΔ+€xË’®-*x(“
+z“T.æyö‘µ1y)‘¾1Àx}’0Ûuê”I1°v·’.²v~‘/ÿv÷‘]0Yuù”?.¹u5’w0sú‘«-Èuƒ‘„,t®±/OsÆ-Ût"‘ò-§r­’-mqÇ',„r>—-–rhŽQ.Dpö=,‘osŽD-mí‹J)¾mÏŒ- myŒ+ømóŠ¼,1jûŒ=(ál6Œæ*>kô‰P(¯kk†ü(Sj³‰æ*ñiˆû&òg؈Ò)BgÛ†µ&ÞiÄ…À'µhØ„(¤f¾„º*´eD„-'íf®ƒ]'TeY`&†c†`%0c†€›'îcs€>%Oa•€"ˆb,}ú""c~"‹b~<"3_P|Í"I`|-!'_}¤#
+‚{H+´3‘$›xÊ ² ![
+' ²
+ Ñ!Ù-“Ä>\E øÎ çý 5 ª/˜$Á"o
+HiÊF}:GK¨6bH||ZÉc]){Í—HÉ-¹È@b=sÖ&
+9 
+¦ÃÐ 7ž-ú*"îÅ ~å„~ Â$´&”‰gá1ø1D‚
+'Ÿ)o~%#
+9‘âöÙ
+
+ :ˆL¸ «
+|Wu öæ'•g•‰$#¤ip‹¬(i{‹*RjøŽŠ&
+kƒ5+ùkBN)æmøŽÊ)ˆo;.(+oÊ)qE!+qÁŒ¶(²rüŽm&ÿs>¡)Œs,”*Žsý‘)iu>…)Fsn“G)Õt-*¥t‘ .1t“',#u¨‘‹+5un‘¥,ŒvG‘@.ƒxÑ’C-MwÂ’‘+qw‚‘ -1w«”ž(ýx×”È,Ëw«‘õ.wx “³.x£”-<xΓ÷,`xÑ•v.5w1•*-•y¾•+{’é/½yð“Ó0§y­“À.Îz”ù0éw÷“Q1Šzo’d.ßyF•.äya”s0)y”¡0Ôx…”.sy§•X.{“í-qy¶”2-àyÁ•ý1?x•3žvŒ•Ò/Úzr•ó/¥x¨”Y0Yx ”‡0Åw”ð/Ãwß”i3
+x”".ýwk’ì/8x‹“þ1æw‹“Ÿ/òw’Â3t±”?.év*’”/Áv’/òuLæ-Zv‘ .^t[.Ãrÿ’Ì-õsÝã/=qúJ0®q/»-3qr‘],EqP~+¶p†Ž:,¢qP4+AqáŒ,TpaŽ,·nŽŽ
++aoÏ›*ÐoÑ*ÌmŒŒù(m Š%*Wlú‹S*=jûŠ+7jÚ‰±)Wk ˆI(§jˆÆ(’iÁˆ<&õhº‰¡'h­ˆ@(Hfц¥&Œf^„¢'\fF†<$§f¬„0&e†„œ#d.„I%Ådf‚ò%*cׂ2'a§ƒæ$3a €«#¾`Í€ê#_a…~ "ˆ_Õ~f$ÿ^Å}ý#È]Õ~ä"›[ãkò]‚|!\kyÉ]÷zä Ü\6y 3[ÔxWùY+zÇ!XEx¥ ¿Xv½áYvGX²tA˜T7nß`/Ê=¥\Ux}2TråÐUöuó\B˜\Wf:áQ{N hÂQërOhPÚoÊ^PƒnWßD_Û„<_IwIKih_ZE}]h9NZnß #k+³ëAÖ^P½H&jòII iƒD2YH y&2Çò2VJ "-0LåI)hë
+ý$í
+r Ö !¼/¼›;S7ƒú Ñ Ü%$‰» 8 …+|íŸDv?D#8Cg2ýnM<ÅT{ |{|ó(Qf‘, ¿ æÛ  È•
+ °§ÒÜÏÃàµ5 ê ƒ T ¢!¯ Z" 'Ã$,NOÔÃ
+8
+K;Õ+UY
+þíy·/íÕê[
+Ú ¥6˪
+ŠP)
+,·sªÛ,s÷‘å/Rs…Ö/—r0‘ .r‘ÿ.uqŒ’ -%rù«.°qz-›qmŽí,p¶¬,Hp¶Û+‘oWQ,
+o3Ž)"nÜŒÆ*9m„Ž)°m*Óm[)•mø‰à)9mJŒõ(Ñk—‹²'lÀŠZ'bjÔŠ£(¨j€‹å(1ỉˆ&Àhø‹ñ(¢iˆþ&ÏiZˆ%¾gȇø%õh†é%:fù†Ê%Tf±‡—%×fü†3#ìf‰ƒà" eY„‰#øe,…%8dI†¾#§eY…8#Åc<„½#©dc‚– ùc2¾"aè€2$V`å~·"Ç`Š€b"F^¢€P#Á]w}Á!ë[}÷ ¨]ñ|t ð[õ|© $[à{[!^ZÙyù'[ƒyÊ ÝZ%wz†W¨v•ÚY\wü %WÙv‰RU_v* UçuêTtßÓSòs­ªTvÑtN´k‘l'Þ4HŠRru‹ÑP8q
+jPÉp)GQßsI8<…VTÜJDj_zM[m¶gNåjmäL¿m­ÐG%aÞ8®GGK#fì¼BÆ_dMBÆ^H ^"—.H>Bû^t¿E<e/Cd™7€Iw ï«( ð7WPÇú-ñøCÍ^€
+™“"ÄH
+) eoƒ!4Œ=PY¿ã¨(4$I/ &$¼/=âÇ0WÎ-.5}õ&²/ri)¹3,Þ=S)h0uû V l á#4¦+1•>Š¨}
+3¾)n<ºß%ö
+\Ÿ ÑÝ'AE+>A$»3/š &
+” Ô §Î u w ç
+¯j y|<k ;œßŒã
+QBò
+’‘)ˆo ’ -qo®)…q¨”)'qì‘„*zo`’®'îp ‘Õ%4ry+_q¶Ž4+åoÿ¿)Ôq~ô)óoÏ‘#+ohŽÔ*'oF¶,q¡)FpÄ›'!poŽÁ(;mÉ›'²myŽ­+l–Î*qm×'Ðn¾'ÛmûŽm)<mUG&šm&‘(]m|Ž+ïk®'Ûmv)¦lOŠ}(½ijŒæ(§jbŒò'<jD+&;i‹X'kcŠ²&ÎiŠ†' h9Šñ%Ïh1ˆb$h9‰Ó$Sh‰ï'f‰&Îd퇋%,e!‡å"ôeã†æ"îeÙ…ë!»d‹„!#7cˆƒ¿#Aa‹…É$Ña{„F"Ib¢„Ç"gdÇ€n#:a%à"†`÷€"Àaýƒ,#Œ_ÿ‚# —`#€› ^¤€ (]Ý~
+öRùtP¦R
+z E8²ú5äP|ñÌ#)n4½ Î%¤1ÒI#—º7*=Tû'34Ÿe$ +%+]#Ã ß * ­(zBLÙ*"3)
+‚ × g —#3À 
+YqÏe‘EÄC%Å6å#+Û
+Ö aP‰¾é<
+Ï ­a L ƒ”
+2+&ë›-h ñ 9 öð
+ÝÊd“#
+ýh •Ï!Rc% (—u¬
+<
+dNŠ¿$Že/†Ñ#zf†¥!Àf)†² çe醖!«bÙ…E$þb4‡V"b†d!"bV„d!¼c4ƒi"bÞƒ©!x_ç„'Š_ç„U q`}„an_Ÿƒ&!¥_ª€D ._b¶u^C‚P ]E~6ô]ñYe\cPù\Y~“Ï\ª}Í [c~B»[Ï~{Ú[}ÍÉYd|eEYâz»–Yš{ã)Xz‡XvyßØY+xôRW¹v€£Tøy‡ÜUuu¢‚S£t+S¶t”wRtPmQu€žQYuFkRVsÁR>r-[PŠp†&NpåQOšo OMçov»L–n@Dä`00.DÂOq:DJ0k·QHÛjíæJkº9ÐOrÎE¬d¸ EÓi9¯D¡gë
+I*åE¤lâ"oÙ6CNx‡’B ˜ ¡i£-?=·¸eû.ò?g ]&L0g·Å&
+ã2¤: Fâ&Ͼè%D$ËÖPÖI 3¦
+&|>Eõï£  Ê / Eš*'ØÜ
+ª Ýa x 0D™Bg"Ì*B‡ xK Žï é —&Œ…ù ÿ“"
+g×
+¥ Û |+´
+«1@J'58_Vß\µÚµ:<KfÏ»/F ­
+ôÊývÄyö (è é)A>Þ ø"5.ŽE$ÿÒ+Ž7÷ŒzäáÒ”Q<º
+ ¥Ü  ­‰y+ö
+(Cqn
+ÿ !2_žFh
+{½0BÂ;ã/X!eK§V±} “3Š
+OD“ t7¾v ìø
+M
+×Ö>Ú=U$r
+‘Êk
+«"*0«È1qHs,ÚC(²;Å]ì•<a^ ü0yF1Õæô 0 L ÷6£SÄósh}6FQ†8 I{
+; ì k(­É  l7G
+ÿ,qJ r$³1Í/Í#¾\öû ®uS Ù Ó6¤ ú2}+
+š 5@~,Ü ³ 3qO# ° Z#8º¯>äê
+ú ½63!eg$›ý
+v9ˆ¼Éë ‰%… M
+Î]w
+w°u§F 5]Ä„ Âp›«z¸jxüH
+ÍÅ
+x¨8U#yª W¹{0X£|¸ÒWÃ}èX(5$Zè}t8ZC€ {Z‡€Þ&[§ø[ú}âÖ_}tð^Àì]É€h4]¸š^i€_i€Ø^ÊÔ*^ÒûÓ_ª‚Êç_$ ^~!-`[ƒþaÌ…µ_§²³_Wéž^샄¨`Y…ÿ`7„œ`œ…2§`‡„qP`B„X*`I„2aÉ…ÙYb$…NjaO…
+øbŸ…H5`^…ܨ`¤…gŽ`(ƒ‹Ìai„•»b…H=`÷†99a…«§`â‚ãÛbƒ‘xa¿„ò;b
+…4`¾„œ#aG…Bô^ä‚÷_·ƒ/7_ù„Œ=^t…)û^þ…‰k^•„w+^ñ‚¦^ˆƒÎ]š\ôi[;$[\pÝZ‰¦Ï])~f\ €bÇYÌÌY•}ÇUY~ŠŠY{™…X™~Š¸WozzlYC{î*XC}eWzl^WzÖV\z71Woz]VâyöU•yR_UXxHrVvw¹zTOxÎMRæw®PS†vúoRßxËR4w®¨QDv[¦PŸvovP
+
+©'Þ;£½4 O`²22Na v6UX6Œ8\k
+q"§1¬$y 4QTÌ ^/[K„¯¦h Ç3ŽSû–r-$T´
+½"ñ2½Ð( ¼<.È
+¢//M
+¡%e5¶pÄ!ñ56`1çóö° $CÔÆÊÚDð ‡)Õ?Ö •
+b®¼ … ¼ÿò}ʇ-1ƒ ï /õRX± 4‘± ‡ £
+.ì
+z Lj Ye²9á¶
+q&PL pƒëJ™pñIÛpÿÿIrpBðJoO0IJm]0Igm)?Fåo’LFVmpžEÀl E¼höhDÁhŒÌDäj¼”D…hæßB©gòBùgðAzf
+AeÖOB1bÛ_@'bÓS>öc­b>†cv ?cê¡>ìaõ\>^¾^<Y_vÍ;å^©Ž>Ç`Å Ö*}@ŸJ0“L%ð;]z9|Y¼9¡W¨ ¦8òXÈ 9,[Ô/øD ~]&4ÏS¿ })@Ÿ Ò1âP‘ ²4ÓUÝ =2ÇR)ѱ(0žJ.› R4,Zk 7'N= ë5»
+-fMFåe “ÚQwž’@ëS…(J Ú-:IX à%ˆ7ž’ŽªÒ,YòŽY<0 æR¸ +ÌÖ%`;—fSà"
+U
+ÎŽ®
+
+aÚ`h$ª2ÏñŒ æ ÿg‘ kÐd1Öx -
+ˆX=ö ÆLq)ÖLER
+`3Tð ¡1§R
+›,åK˜ä:/Ô %ò=ú 0ÃS)OÇ+Œ§T½)(FSßÓ h€C¢Ú¨"ª6Í
+
+n³$„
+Î*kIà ¥%Ÿ75{¤¯!Mx!“ª "GŒ£~ à ‡×!Éc’/ ¬î ¹êö
+^ëÒéG%ií ÔŸ
+q[F¯n
+[½ b6
+¬5'Ug
+à3VF …1 Uö b1®RŠ ä5÷XÍrù*Æ
+ê!4Ä y,]K¤ W&@| 0$T. R.?P Û*…Gi)±+Mš"7:a j+„J.
+!ò2fÔVÂR$¢?!K‰ ‰Ÿ©Ð=e``
+]²#C Y'ÆB †%þ5[ Ëõ2
+²Î0À!uȹÁ%l&Oäj ¦(K¤ë.e|S«¬é4  ä#+=
+KýhðžÞ
+q€PK–rRÎL^sO'KÜtûNs…›M™sÚ"Oàt”±L°sŠNftÅ Oþs|CNÒtuÁOtº PDs|nP=všPit*€Pöu5ÑQ°vìP›wÈ(QþuÓaQwvDÏQv£KOÄvÚ$PPvaöP6vùQ¼viDQ˜v[tP·vd›Qv~P»v2<P
+oIo±ÁGøo’7GqbFµq#Hªn•FìnÑŸFm<#FÉlg<Em¥´Dl{–ClIQCÇj_A3joŸA½j#SBphÀ,B–fÔ;BhÈrBÂgš}Ag'É@Õf)“@eþ?af)³@°c˜T>d!W=’b>=7b< œ<áa+ ­<ù_¥%;.aaE;Z`* Ÿ8´`œ 9^® 9Q^9 Þ98^v¹7W[ 7˜Z_
+6]k ¤7¦Yn —6Z< F4µY¢ N5WÅ ³4SYi 93/Yì €3JWÈ t3UÛ 82uT+ ž2öVé ¬(?’ )/(R
+0»P·
+±/ÿQ Ã/]QÁ
+×.1PÚ
+Q-mPWhk] B-îº)OG±¡)0HT Í+ Lt¿-MÕ^#¹9:뉺̎6Ò
+µ$Ä7F ù$È;ñKÕà34G,
+Š½P$±L“
+
+ KÃ>Õñ†#n:B $!A0é½Ú'Qúl
+]&”
+>™Z áA":
+m
+L œ{•ª[
+QMtx®NLtߤOsÉÚM”s8aNqu>5Mu8TNÂtxOÍt{QN„taN´u`/Nu·O
+t†ÂNCucUN\s‚±Mt®˜NérµÈM—r­CNsR4MòsÚñM/t<tM×skØN tþœL^sœÛL½uLkto§L€sã K5t£³L;qƒ K³r0L>rWÿIärª KIrqþK–q7³J9r̳I¡q³¹KÈq— JIpù<Góob[J«q@üHæqšïG’pN„GþnûŸG’oêHYnNˆFpo8EmAEam¶GklDÁm<õDalÖ'D—lDAlˆDLkêBóks­BikxqCÍhI¾BÆhÅ×@ÑhóðAãhøº@hYÆ?(f Ô@e®L@8dßû>’e¶Â>id¨ ‹>gdò g=ŒcQ;±a­<;bQè;VcÇ À:¬aÖ M:€`Ø(: a… 9³_ù È:s]þ Ç9!]r í7×]ê6Y^È ô7r\ç …6á\O †6b\¹ Ç6([† ,5V[1 5¡X£ 74éY
+5Y‰ æ4=Wã
+_2XC
+64!SË
+¯2—U v1MT— J0pU¨ •/³T
+¨1ƒQµ
+±/ÏQëO#Ú;Z J-ŠOA Õ,ÈO- P-ºMÐ X-âM" ¢,¸M+O)áJæ L4’Ì4#+<‹˜(ÞH:½)Gõw+òK„K©*­ç—¯!’9 ® "/‚x%LALË º–Q.^BºaÙ:(²\ ys¢Š! ÞÃòQÞ2ºÁL*U ¯34"þñ Â
+‰(]h  á:˜.ñ°8xü+! ´ 4ã¦Â zß \ Û
+3•
+‘
+Þ [
+pÚJßq—RKIo¹I}oæ
+HuopÊI8qâIpëŒHâp×ýIeoÕÌIq/8I®p{ŸHÃpö›G›p}–Hío¶®H±p×`F pFIpu"HRoŒ8Hzms@F¢n0ùG2nÉÿF7mkÀEúm¥ GƒnÚGE}l+ÂF!ißfGkÐïEl3ØDûkRDpjmœDjÇÄA°jÒ)B_jBñj¦BhþBÙha¾A+hó­A5htÙ@ðfiæ@‘gðî?ÐfN o@èef¡?.f{À=Ýf¬ i=þdš …>.d^â;wedp<Ód6 È<}as
+p3\UÙ /1hU¯
+N0ìV7
+½0^U—
+‹0³T• ï1TÖ
+f0°S
+R/(QO a.Q Ä/R;õ-ÈQ§
+P,9Ow
+*,®N. L,MÞ:“5L ˆ,ûMÞø+½Nñ,gL’ G+AJÔ”*UJ>U*dKK (EÆÅ ¡Ž¢"2P³)cF¨£'íFó±%_Cãê°#„c"Q q6r !Â9ÈÖ"î=^› .y¡z"s° ÌĘ_#•{ î; ‘ º$0ù+®‰*¥ <Ûx, »— ±q1IX ×÷ < raY7|{À
+á¿~ ª Xl é êm —
+ ƒ ÐY$
+ž5ÛD&ß9
+έ}G
+ù6U[h C4¨ZÅ
+²3Û[Ÿ 4 Y‰ )2sY• 2ºX~ 2;WÖ
+»2ŒU† 1_VÓ
+§0ëV¸
+w1Ub
+0Ux »0T¹ Ó0ÉS Ê.ÌS± D-vRð ¯.›QŠ X-ßQÓ l-–O|ø,‡O¬ ,EOò ++ÃN—*«M&ï)ÐK±#*Kªü'LGk«/R÷*'Lþ)hIŸ(ID|(‚G’Ò(ÁGgŠ&†FÅ'EÀ¬Ç.—è8Í #ìA7ë#1@èx þ=ú9Ä#¼+®)¹TI8e‰ ±;í:Ë: ²½‘ £67?Œqyn£} \‚éöû¹Ø(±cÏ+Œüù;¯J k½Ë-ð¦ ô> ¶ s9À>/<
+õ ³
+þ#›ŠZv_Ž˜™y24Ì
+j»
+˜Â
+ ì
+
+¸°
+°8J^C
+œ7Í[ð
+}5Î] w4ä[6 -5+Z± 4\[Y
+Ê4
+³3ÅX¯ E2jX1 72ÇYÇ
+r3=YU
+Ü2ÓY<
+2W­
+p1ýW( ;1ŠVø
+1µU£ M0¢U
+þ/ÿT7 7/]T< ‡.]Sx
+`-–S} È.Sœ ç,ßRë¡-:RVh.YQ¹ ¹+¯Qps+êPe |*²Oþ !*°N Q+N#d+L¤Z)kLW)ˆLÉ(ªK]°'­JŒ,'ŠJdN(.JOÊ#ß?ï0Š.|j'LIÔå$F¿$ÓE ç% E3I$aDAì# CãQ%öEØà([!
+;gÞ"V@­Ù5~É;½½*Î ±3Ø!ÃAž. +?~9È ¯B©K
+à zŽ •æ¾9/†ÚL_F8?"Ç–è,#ã5—‰šv (ãn·‰I& ~öË!*ž  - ñ
+gc 2]f¸\;[ ·´&Æ
+
+S”¤žVjf M
+¼/
+
+Ñ8°`‚ Û:Ob± ¼;Ba8 v<a€ g<bÓC<id ›<ec^ T=‚cÏ š>Uck ß=Fe~ ã?e¤ ª?~c ¼=úc  8>âc½ â>¯dÇ W<_dÒ ÷?ÊdÊ 0?ãe” ª>ðeé »>¿eI ê?@c¸ ü?4dÅ (>3e¼ C<“fv ]=Le– Ã>¥d° ð=Xd‹ 1>g7 4>ÐeW í>ÅeD w?OcÅ `?f‘ ¶>e– ü>àf1ü?JbÛ Ó=ÑeL Ð=ReL >EeA W@d€ ¶>ÿe< /=žd˜ À;—f^ =re9 ˆ?Me' g>†eW H>Md1 ;>æc r=¯cß O<c< <+b´ <‰bs ®:Ýc í<%b %;½c% :Ãc€ å:Wb" W;«bV K;,`Š U:~`Ø 5:a`… ë9Š`[ \9nb ë9‘_Ø È9K_$
+Ó;§` ¯8x_
+™7õ_$ ‡7Å]É ,6Ò]´ {7A\} 66Ð[½ ³5î\ß ·5\6
+Þ5Î[Ÿ r5h[© ê5VZ †4Z% —3ê[Y
+#5lYì
+k3ZZ}
+Õ2¼Yi
+2ÜYu
+!2ƒXc
+82cX{ •1XW  .1·VC
+C0õU(
+*0PSÇ &09Tð Z/Uz¼/ôS<ü07T â.˜Sb ,-GQ˜½-ÏQ3­,RV+ûQp¢,>Pê R*4O
+ *YNâë++N‘¥*!OÁ(øMîÄ+4M=/)}M )2LR}(}L Ç'’JŠà'xJ9é'¨I0Ö%ðGõR&¹FÔ%ÓFûÍ%7F¯¹%NF¼!&F«„þ9iÎ.ù$2Eöp"AþM!üA¦Û!{@Çù q@äv ?]'!‹B , ;åA+gÆ\-$é¶:½y‡8 TÇíÌ
+-SU¯=-N¸:°äú7Í„áù>Ø ‹< x¯H Š w4"Þôgnf§]6gB,Жõ+å³”›gȯ9Nzƒ —b Èœ“)Ô¶ – ò’÷ d ϯ©Ò u(w {Ãhñœí 1©ÿ
+öEM`ôÊÏß
++&
+3æ— ƒ/
+„3×Zã q3}\‰
+§5A\;
+5û\ä ?6’^’ C5ß^n
+H7 ]ñ 37Û`¡ 8ò_â Š:*`z !;^_Á ×:š_t 9caW d:¢ax ":za :m`n ,;·a <«a¼ ¸=aÆ ;›`^ ;b, Í:ób^ :<b^ W</a+ J<£b
+Ñ<c2 å:Ïbæ C;Ûb‡ ~:ucâ ½;bó Ž=áaî $;Ëc² }:’bm Ñ;
+bI e;ûaÆ ì;c Š=xbÙ
+õ>7aà ;ma\ ":žak +<›`T :ˆdA „9éb¾
+{9¾bm
+ö;Rc è:û`å
+Ã8_ y8-_W ˆ81^À (7]¼
+Î6?]5 ©7­] 5{]­
+Þ8"\Ø
+Š7]É
+Ø6°[.
+Ê4¿[’ ¤4½Zª ç4LZn à3©Xå |3/ZŒ ß3FY9 ¾2«X´
+¯1-X¯ !2ƒVø =1XWÅ ô16W» )1vV
+"/<Vj z/ôWì0 T+ ‹/ƒTx …/ Vƒ¦0gU X/S† 80S÷K/]T„….=SÂS.*SVÐ-ÔRJØ-'P°&,OÍÛ+ÌOp€+Oà>)pO`à*vObþ*ŠN‹õ(ÜOä)pL½Ø(PM[%'L›8'KáP'óJï(
+`X
+Ú‡
+êÍDÜÔ
+Ý2]Y
+
+ô2u[Ç
+33b]
+4#\W
+w3¾]ù Í4²\C
+Ã60Z±
+k5Ñ]· \7|^b Ñ7€]Æ
+_8\·
+V8è]h
+Ë8-^Õ
+Ü8Y]ª
+U7]Á
+ˆ7×^W
+±8Û^¢
+‚8€_ ;7Õ^
+â89^$ ¢8æ_" ø8Ÿ^ù
+ª7 _l 7(`Ð -9x_í
+Ô8#^ Š8_
+‹8¾_P 19a_@ †7a_d Ø7 _1 ¿7ù_g M8 _U 6ú_ƒ é8^î
+>8]_÷
+ž8 ^ h7_) 7]– 8^/
+å6ï^À 6y_Ÿ ó7_^… ®7‰]‰ ä5ó]·
+Ø6ç^_ ß6º^ *5è_ _5È]‘
+/7_Û
+¶5E[ã
+U6P\E '6&]J *5]£ E5†]h
+N5V[à
+95Ì[Ù ™5µ\Ë
+5t[ˆ
+5R[J Ð4¦Z÷
+‹42[1 p4¡[.
+è4[ü D3?Z¾
+3ÁZ
+
+2øX¾ Ó3?XJñ2¿Z9€1¼[eÎ1XX6 E1FW­ .1·VtI1hU[ø0ÅUÃ
+©.ÚUÿ
+b.ÁT£ ‡/bV> 0gTšÁ-÷Sza-ƒT>ª-R0¼-úQ¤T,æQòÚ-åPË-P~ ,ÒPü+ìOþ+P›ä)ùO- U)YNó**”NÐÁ)¦Mð²)ŸM)#L> 'ãK‰' K]&­KÓ³&BIö©&#L’I&LK5'qI×±'FI˜æ&Hú¢&#F X$¶GDµ$dG.õ#÷G "ÖEpG#1D2B"mCV¦"ÐBÀþ!CË&"%C¦ Aco!-@Œ T?ÄåA°äæ1B`v9“ùá=ÅtO=XX<O1£:|Ã[;ĺ<s#„;\äŽ;q³8:¡u9]†Û9ʤüvôb/wÂK6ó™€5†ÑÕ3ú 7•,¨ Ǽü
+ŠÙ÷ OÅQ°ï°;Â#ªýY^_,Ü} Ýü§8 B/qú
+ ¨ »
+¤÷-Q~-
+çŠ
+Z,ãV± o/V) ½//W ‚0²Wy &12Zë
+ 1Yk 18YC :1 Zë
+>2ôYö
+z2ºZë
+3ŽZZ
+b3ïY¢ ´3þX¾ O58Y w4oZC 4W[ )4âZM 4ƒZU Á4dZp )4ÕYº ¹3óZd
+:5Z ”3ßZW
+-49]Œ
+64˜]¼
+f5\¾ ž6[` @5[[Ñ º4Ÿ[ˆä4úZ±
+ 5.[Þ
+,3Õ[, æ4gZa ó4`Z§ ³5#[6 4Q[Ö ÷4Ž\. »4°ZA Í4·YÓ
+4äZŒ ¿3—[ˆ 3ßYì Ñ38]$ Ä3\1
+-4OZ‚ ê3¼Yp š3ùYa
+3þZ¢ 3¦Y°
+U3ü[ƒ 2©Z¯
+3t[B ê3ÎZ– ­3ÒZ
+1éYù 1˜Z# U2uYù 2X1
+¼2fX£ 2ûXÈ Ñ1âWˆ 2Wï ¢2VR |0™X>¤1cXO¤2>Wo ./|Xv M/ïWK Á0.VTç0“VH =0Uÿ‹/ƒVe¬/'Us….T•E.WT7 .UVl-R«Z-"SM Y,€R>Ö, Q+öQ?Î,xPeB,ÉOÏœ+ŸPRÅ+®PŠ)*‡O…¦)MìE)VMéd)vL2Ü)aLrË)ÍMŽ(ÁLYQ'§KÚÃ(L™ˆ'¯KÌÍ'TL€=%ùKÝ&UJfà&3H5è%þGÎ$ÁGïf#ŽGÇÓ#¹Ig$F@±$ÓEÀ¸#MDÕ„#>E+Û#¡D#C#IDâ]"žEíõ!D› àB[l x@‘ ïAµ¨ AFG’@®¥Ù?2­=>¡dà>§Zˆ>Cm0ðŽÿ;ãÜÍ;‰·S:ó%ê9õ«c8v7Ý8kX^9,w8óf7Ñuu6Q5°tâ6uM¾1bø1ô0±5n4
+m~ È
+« j 
+E
+å1 w
+
+V0ûW ¸2;Wå y0ÛWRÄ0õWF`1[Wys1W $1|V2 >1ŽW2 1hUž…1VÌå2
+XCÏ1xX™ J1¡WÀf38WïÞ1X
+ó1§X>{1òWk (0ÂX% ¶0KYŸS0ÐXV)1éWïÍ1"Y¢ê0©V~ô1ƒWÈV1‘Võ0ÌXÒx1=Wí T/5WÒ¨0ûX -1fWå l0[YÓ‡1ZW<«1ƒZ9 ¦0YXEé/ùV‡ ‘0ìWƒ
+=9
+‰¸Zž —ËM%
+"e
+
+2-Tg ),¼V Ð-{UBF.™S¥ë-ÊTéÚ,§Tq,üSHT-.S¨ ,S™3,÷RtÙ,êQw[+/RŸ¾,ÈRmº- R;ä+lRØ”+vSq‚+>Q3Ú+4P&])×P²ñ*ÁPÕp*Ošš){P¤)MO(P#Þ)ÜM—‰)öMîÂ)YO&l(`M{ˆ(¨M’(FKÁð'GL 'wM+Ÿ(cK˜^({MfJ'K†…'aJ·%ÝJ4%cKão&÷JGÊ%²H™&0H„%’FÅ°$ªHVÇ%#HÅ\#³G}ø#ÍEÄ
+=§…Ï=h>¢;Ÿª<HA:®h:]Òc;gJô9O%!94®7ÜÈó8 ¶6° 5ìóÀ6wØH6uÖ×6Üm@6¡º|4–س3Nq3}ÔK2­÷f2€å?,Žˆ “Jm$2o‡N0¦S/ ›/ùÙå/
+H‰
+bÂÅ/¿iÀÙ ”Ýûà*ó¸
+ ~3 _
+[:
+ÆŒ‰À$¢ á
+R
+
+/W=þ÷>ÃÆ>«’f=j~=íH;û=ˆ<Uý<•ó<3Z:Cܲ:ŠäÕ:žÇ9 ÌÜ8™Æ58'¹î8>—ç5ó@5ïà£5æ€A6 ?&3d"¥4‰Rú4f{1¥÷2ÊëÇ1T¦¹1Ž@0Î8O0©ò­0B´¯&—HxÅ”p0‡`ê-ñRb-–pZ-1’ÿ*–
+ÆÒ
+]
+žä'
+ö¾s³ú µ
+
+|à|œ
+
+s/ùYT.³{ú-Ù¡v.x¬-ŒnÊ-Gͪ$-ÌZ"Ž-Y ×+
+×
+­ˆÉ5)œx  ÊÇh $!t
+…
+zÙ x£œ ² ù.‹ z
+x
+ŽÕ éj
+
+ŸB
+*¯ìÛ,YÚÕ#OÏ}#û±O)Å“(ªÌ( `+g “ó
+ÜT
+
+VÍ?!…FØg!'Fr!F(ö"ADì#‹Gk"ºH¼–"®Ig"4Iä»$nGñœ$§GLí$BHxE$JI¾#‹J 0$ÈIA_$ÖGŒh%G%DHKñ%tGx.&*JRv%H]­$»H—F$eGon#¿HRð%-I2ù$ßIAÓ%hIÝh%hHd%&G
+"ÇG #qFݳ#ÜIgô$0Hæs#PEòk"NGzP"•EÉW"áF
+."êGi%#…G4Q"ªHœ"FÉ !ÀEå!‰F­ê"AD£R!ëF _!E{d nC´† ùC_B ¡DRðWDËÙDŸÜ C( ‚AúÇ [DwLB UA@_„AaÕ"@›ÎA|”ÚAJ?
+?Ø@t]Ÿ?F*û?zº£?€?U>£j]>«Íª>Ñ<ÅI†=Ã1M<oï:ÝDã<ŸÐ•:g|r9Ÿn
+!Ó¶á#îÀµ(.¼'š™'‚©)Ý
+
+3â
+ðz
+
+>
+î>
+žæ(¨I~ N
+§ æç°
+ $÷ÈzG¹
+;5
+
+H’šØ
+C‹: C¼ƒ!B(ê ^Cü­ šE3Ð ïDÙ” SC2¶ £C‰Ž gDÕÇ 6DP"õC9r /D.æ WDÓ¿
+DÞ XC©»ƒD¹ÉËD#î·BèÔAúgÉAå
+ A³ëÐAYŒÙBió,Bx# @e"A‘ÿ?ºré?oÈ%@k¸@nŽ?ÊŠN?FFæ?HbÐ@m4?Ž„p>ÇLª=`¨¨=ôÈA;¤<=›:Žc;ßµ<ëÙ*=Pn=©§;y><#ª":×P:):gòh92ø8)d®8ø(+9S8…7ð'9ŸD³7¤ ì7ðŽø7P"5µÔ¼7c´i7äï6Ìs4q¼e4”H"4½´Ç5•¦Ž3•†Ð2~]¢1¾Q1Ò–1;ü1ŠEô/r<0º/wu$.ïF.YHC-Yb>.7ã¶. ê+‘~+Ü$+ø–¢)Ø)Dõ½)»à<*«ŽQ)F“<(-£à&*€€$¿Ål&Ú£0&¬O&]‚q%$d~'xC
+yÐg "L »%` $kA %$ªAå&
+¾Ðg
+~
+äç
+^Þ% )MC
+
+Ó?¸È@¢Ö@~ã°?„º==ïÅs>z¸Y?’Û°? £?Ž²ð?ÛÖ~=Qú?ÂŽK?ÀÒq>§ÍÅ>I¿µ=ÃÍG=ç´’<å Þ=é>ù<ÃÛ>ç·>ˆ—š=‚°!<Kc':œƒñ9«è;ƒÂd<_ƒ.;Gf;Õu™<ˆ²9Mî:ß}ü:&o†:SI 9¹c:ÁÛ8:†
+ý!
+ßë !l
+-+
+*
+íù
+>’
+•á
+^i
+LB
+d
+<©ÿ=HßÏ; ,™:ÃU 9<ë»; {õ;d5;gE:ñ}Æ<¥n:Ûh:½’;@B:yþI:wý‚9éôÓ8¶A!8Œ9Èò©:wa¨:ëC‹9.$8~ D:¿T8ü6Þ8~
+ý!†
+Ô!
+Û!>
+ö»
+öº
+sj
+ ë
+ï
+,
+
+
+
+0¼¤/d¸Î/<æË.,Ò¯.®× .nˆ»-r°&,•¹g+RŠ,¼ˆC-1‹*¦yâ,Vq·+P}j*²|)ƒC*RN)‡Ml)þŽg*hw/'êWŠ(m¹(.O.(X#'ë2"'…g D( º& 3 |&J !%°# Ô$s ¬#[f $$L +$p
+#ø !ü †""
+Ö ‡
+õó
+ º
+/:
+ +
+
+5Âqn6s‡7³Œö5Æ}ð7ª3ž6¨S5t+45‹ó5
+„1Q‹1)å¥17ê0 Í/ÆÌ$/éR0Àñh/,ÝÈ/×/¼—h.Ûf¢/Y«Ì-tÕ-RÍ-,©Ý*¨®¨,ææs-PÔG+þ–†*‡vz*œ™Ÿ+Y)¤**uMÿ)ìvY+v`•+¤yh(NY(C ì(ä3 ÷(5.;'•( ”(0 Z' &•+ $Õ+ #%ÉK Ï$ê
+$p
+ /"j
+ë
+| à
+ Á
+  '
+Ü
+#°4Gr5âïo3LßO34‡49„4®U/3gKÚ1TI×1ß‹2âF¢4s'Œ2öS¦1Œ‘2ÃÀh2²Ò0gëL0LçP1®“½0Ÿn1DÏu/ ÏŒ-q¦µ1+Ó015/CŸ¶0>´p/!¡-µ/â®x0K¨7/¡š.˜j,Žº,Ÿ¼«,‰¬º+–qy-hë,å},•Sq+âU1+zo7+±L3+abN*Tki+ jk* l1)'I+4Q0)98x( <)kX )¬Y ¸(T ˜(Jq Ð(² 9'3 Þ& * «%L %#ý
+ Ø$6 T#Œ
+ü#ë \$x
+Ø"Ï
+§!Æ
+v ê
+4Í
+
+
+~"‰
+Õ"l
+!å
+
+P
+
+
+9
+
+-ZÉ!/iªY1f¦[/Xw%/æŒé0¸.Ì/nz-5€-6Ø-ÝŸ/Á¢@/±¯„/f
+ç#J
+ß"s
+¿"V
+è"Ü
+Ë"V
+ï"P
+u
+
+Î"ä
+Â"å
+Ä#
+
+a!É
+-!õ
+$"W
+u"Ò
+9!Œ
+. 
+
+
+
+
+
+ >
+
+ë#e
+½$M
+Ï"è
+±#U
+ž#
+p"(
+R"l
+$!G
+3 M'³# -(± G(×
+ ò' "' & í%*7 &£ ´'È ¸%Ã6 Ú%ä1 ›$³ ¶#¡* x$û {$Ê
+Ü#k
+í$
+Ö$ˆD
+|$;
+Ê"¿
+œ"b
+]#
+/#¾
+ –
+-!x ¬#\
+ñ
+
+
+endstream
+endobj
+36 0 obj
+<<
+/Type /XObject
+/Subtype /Image
+/Width 440
+/Height 308
+/BitsPerComponent 8
+/Length 111645
+/ColorSpace 35 0 R
+/Filter /DCTDecode
+>>
+stream
+ÿØÿà
+         ÿÀ
+ÿÄ?
+ 
+ 
+Ïdƒ¶¤J×
+þ°ÿ
+
+
+ESliceType
+leftOutsetlong
+         ÿÀ
+ÿÄ?
+ 
+ 
+Ïdƒ¶¤J×
+þ°ÿ
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+ <exif:ColorSpace>4294967295</exif:ColorSpace>
+ <exif:PixelXDimension>440</exif:PixelXDimension>
+ <exif:PixelYDimension>308</exif:PixelYDimension>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>
+ <photoshop:History></photoshop:History>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ <tiff:Orientation>1</tiff:Orientation>
+ <tiff:XResolution>72/1</tiff:XResolution>
+ <tiff:YResolution>72/1</tiff:YResolution>
+ <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:xap='http://ns.adobe.com/xap/1.0/'>
+ <xap:CreateDate>2005-06-03T23:22:12+01:00</xap:CreateDate>
+ <xap:ModifyDate>2005-07-16T18:06:42+01:00</xap:ModifyDate>
+ <xap:MetadataDate>2005-07-16T18:06:42+01:00</xap:MetadataDate>
+ <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'>
+ <xapMM:DocumentID>adobe:docid:photoshop:748d66d0-f613-11d9-8e12-cba614fb1489</xapMM:DocumentID>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:dc='http://purl.org/dc/elements/1.1/'>
+ <dc:format>image/jpeg</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>ÿî
+
+ 
+ÁÑ5'áS6‚ñ’¢DTsEF7Gc(UVW²ÂÒâòdƒt“„e£³ÃÓã)8fóu*9:HIJXYZghijvwxyz…†‡ˆ‰Š”•–—˜™š¤¥¦§¨©ª´µ¶·¸¹ºÄÅÆÇÈÉÊÔÕÖ×ØÙÚäåæçèéêôõö÷øùú
+sƒ“FtÂÒâòUeuV7„…£³ÃÓãó)”¤´ÄÔäô•¥µÅÕåõ(GWf8v†–¦¶ÆÖæögw‡—§·Ç×ç÷HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ
+(ê?Ù7—÷Åÿ
+ãäùt‘ ôp>—ÿ
+Ÿéí6¶õëZÓ®ÿ
+ÿ
+ÿ
+Óá¿ÕèG^×òè@ž[s?å‚öãýâþÏ~ý_ê=VM£Ž?Õòë¨g!9±¨Ÿãÿ
+/¶ÿ
+ÕÎÕòèÌ=ÿ
+\úwìm“MO”¤ûì?ItŽ3½²›´ ÿ
+Z̧÷opíê<Î4Wóÿ
+ÿ
+þÛó_ýëëÿ
+ª¼¦kí15ŸÄ¾ÿ
+ïâ¹,–è¥ÃýígÝæ?ÜfýÂÿ
+·ÙùŽ‹d© èÐtfg`¨)àØùÌÞtÇð_òºÌ/ðÁ‹Îßøký~¿ú¿îCúƒg2ý^G¤¶Q ã&¿äê£þ{c{ß{vèÁÕM²¿Ò.C¸úÇøÇûŒþóŸù}_ù~{‡9ÙÜHÉ«?ñ_ÐëW‘̱Ñéütl=ÇS°1[ýïŒ^tÑnL·ðâXʇÈÎãŸâåëíW,Ù´ $?#öV‡×¤÷ CRÕŽ¶°ø¯G×=3ÖWl ¦KvïùFs[“vo|ÁÉdëþŸîk9ÿ
+½É‹þ»*¿Œà8¿÷ü œ÷\5n1’x¸ÿ
+m‡´ómÇM„Çe6ü «£Ì䱿Åkþ·ãýÅûC¼Ä-öéåüüúAºHcˆëZmØ0lÿ
+ÀùùÍÿ
+bŸêóëÝ~Îìyñ´ü¬ßsÕÝG”¬Ìb~Ïþ
+ðÓþòè¹þ#ÖÅõ¹zŸK‡ƒqå°˜Ü?ü«Ë
+ÏáßîSŸy8ûå•Òè(ÇæÞjŽŽ¼?ŸD£ä‡Xü‹¤©Ý©76äØùê,¦k1²7fûËþåçKƒÂnùë=Ç»æ×}u#4-@xaÊG^ð¾}kOØ_;oÙYŒ®ÍØLnø¥Ü˜½é¿*òßî7lÐ¥|×ðÿ
+‘OµÎS5ýޫ̹:ÿ
+t¥TÔuYÕ›«»úOø‡ú$ù ýäÚñz¢Ëe«?¼˜Ê _ã œÁîp„ò6}ÆD&™§ù?ßmëÑŒqR†™3ÖüŠí¼Çhf6çÈÏ]KÚ|]fÃÍf2ØÉýÛß?õbÍqöþäÿ
+¶Û÷ë“VŠ”ùÇþqÑgÔ_õ~Ιèúó-¶÷¾èθÚmÏKGü³øµ!þ'Aü øõÿ
+ÿ
+·’ÌnŠÏï=f[¬³mÉŒÿ
+€ðÿ
+õï§>Ÿêý½XÇUô¦Aßû¨Óf÷Nct¿†¬ŇãÃøpÌEϸv]ɤª×·ý_.Œ,ö±Jyœÿ
+u§wÍžàÄ÷gtæ7VÔ®Ém½ÁI—þ ˜¤þüHäøäOx›ÍWbëvš™5?çôwyDÌÔáëÑììv·7Äø<­Ní¨5˜ª,>[øGðÜfø^ßöq¹ÏaÛWÞÇ\ç¥~«¬Êä·vðƒýÛ©¨þükrÕehó9,Ÿû‚ÿ
+ ž–WrQfØÁ=ò´xºÏ´«¬¶Oýëü=ºÖé&Tãý_>˜KÄgêùt°ðû÷ÃÛl¾K£ äu߶z¿]ÿ
+½ãü)ýÕûzjoâ¿ÂÅfì¤Ìÿ
+¬>,Ö³?ñtÿ
+©ašòŸ­ôïÐ=]¹7ncjÁ³³yÊjª=ø6~á«?ÞLŸ÷_™þ?þœÿ
+œ–×ÝäU{z®³ýÉÿ
+’:úÆ×»#1‹ÛŸå?u˜Åÿ
+ >/=NopnáY¯ò¼Çñ,føÁ§±ÔŸõÅt[¥Ž8ôáüqäñtû>}ÇMü?X¼{‡-l–3‹þ5ÿ
+õ>•9ŠÍÓµ²›ã)ŠÁîLoðª/½ûOï'5ø¼ïûÿ
+ß•ÿ
+«‡ËªOùá¼;CQ•ÙÕÛs¶º?±¿Ü.îðÿ
+1©û2¦zõÂP«åÑÈï åe Nǃ7S÷;ü·1ü'1à_Où~ÌAî°Û$Ûy‚âf¥ÈòóãæzN‡# z#Úy,fá®ÎPýÍ>è¬ûÚʼ±ÿ
+¼ön}÷û‹ö4ÙìlgU:óOFÿ
+Ÿ%ÿ
+ßô5=µØí¹‹ÍnúJ½É|ð?ù}`ðgr¿û§ÿ
+jlÆRøÖpÒQÿ
+ÿ
+ÜÎsý²¯pvG¹ Ç‘òHu[»&cZgþ+çјë‘5Ù²ÂSfäÊVÑÕÕÖ4Lïûž¶ ëõþ ÿ
+Š”Š,îäÜ{qï)²UTîc-WlØe0_Çÿ
+7î øûç²îl,#'ΟæéEþÞTòÿ
+à}¾¿aë}if­£ ÌPå+ªF?˜û:ÊJOø¶×å/ÿ
+Ú¹MUÚß³U›‡-ÿ
+†Ÿêþ]F‡»(hðØînÀ©©Ìäë2—ËnÌÆg“¯þ™¢?ãçÜòÿ
+¯ÿ
+?Ÿåþ…Ñ‚^vŒ«ötd:¯âîÀØ{woõÏiÐÔöŽÀªÜ™M͹*é+?¹9:àXOà8,/û÷ÿ
+—ú¿^ú¿—ú¿gBFä‡+¹7FCu~*iª08òÏï ²u÷Âñüwþyý»ýãÁ»UÃ]>ƒæÕä:T>!ÐQGß8©¥Ì`çÁã~ãìòxZ=ïI¶ÿ
+š«ÌtatÍ3Õücëv–ŸuMŠÂnÝŸž¬ÊWVbâã“¡Åà¿åËœ?óØç=ãï¸\É{à5¬â™¥j¾´ò_òôÇVØYÿ
+™?”ž_Ÿ^ú6ôÿ
+wýÍÿ
+¢\
+y?ý×´^“Ý6+üCüV§dî ϼ/¶òÔ›oø–Nƒý?ßÁog|×µ›‘Lpÿ
+ÿ
+\¾ØÂÖmíÃYü7'A¹ó¹¯à8,/üÅÜvóŸòéö2¬$§¿àÿ
+üÛü{©Ž¦éÛƒ „ÍÆ.‹øN'þP2§Œ9ÿ
+yú¿ýjùtƒ¢­>Éßæ*‘¸¾ç Q‹ÿ
+¦kÒ:³ƒþ3Sÿ
+Ù`iþ¯ƒ£;™Û¢žîÝÇÞ_ß «×=s’Ü}žÿ
+M¿•®¯¦¦þG‹£Ü•yjÌ7ùü_ýãŸ7ó ߎ½¹ ôôÑèÇ£±²vû?kd0{VzlÝ>
+³)]·)?¿ŸÄ±•ùLíÏñ¯à{¿ýÓ·¸w›yŠìµZ¨þ^és’ê¾ÆÏuCûÕC°7fø?Þæ2Ü䲟Å/Ÿÿ
+OüX¿¼ƒsÛŸqÆßÌw«¸ÆHÍ£òþDûæÈSË8ÿ
+zËçСE‡è|•Uð®ûš¼ÿ
+t3ïZÝÇÚ±SÖåwý>6£li‰Ãÿ
+}
+ÿ
+ª?½ÿ
+¤·—ô¿è.©^lFÛÎä3sîšz‘”Û{ò¶³I[™Ù8Ïáó¥ÁÛÞZÒ÷p¼Ž9Ö•ÿ
+j®R§ýÅÿ
+=“=f£+㦪Ãÿ
+JOâY1‹¯Çûk· »—¬#ñ ›¸pÄ¿å'¥‘nŒ ÿ
+úº éLw%¸Ÿõ~Ί†fl®Öî›àÿ
+ø쎯¢ÌA>WøvC=þ[YI–£þ%÷ùLkœ/×Ümû§|¶䪂<£ÿ
+ųÜý×ü^jê«?ÜfBÿ
+lÖÞáóU¤µl×ÒÛ×íON<Sü]0vGÉ~ì¹Û™Ê}ëKý×·÷nnOâXÊÿ
+°ÇÅ7ù#=PõaÛ=Ù•”³â³•Ý]Oþý¬¥ù&c3’ûûŒúÿ
+ÆIªãDàûSåé^„Mc•?êÿ
+ÿ
+tžÞÛ“nÏ´öý+)MœÃýŸ5xœ?ðÜg³8î/Vô€™¨ó_QòèÆ8Í1ǧ…’£gw&yÿ
+¡oú¿¡óëw–\ŸüWÏ£‘±6@ÀÓ ]ƒ¨ÿ
+×ɺO'—BWpg·&ñ—tn<á©þ!Kü*·WIøÅçåËü þ=‘ò£mÖTÇšú·¯Ê½ .‚ì>ÑSf*(k©ª©òŸÂöÇÝÕÿ
+šW´ŽŽFüËâ·…VCºñTØÜÇÙ .Uÿ
+ú)ÿ
+®“ß»/gý þ%ö£}¸ö?ïÜûïc=»eѸÑ !ý.–ìð,€×†z.ýoÚuÓKOýÿ
+Ó¤~F U_ÜPågÿ
+›åПêºìE~W)=67í…ÑQÿ
+ÓýX)Ž1QäzöÜóã3TùÊè*j~Ö³ø×ù_<›ÿ
+U~Ñþ€ŒJ|ž + û“£ÿ
+ž»qÃ’ûzj,§ù/Ýÿ
+šõ¯FC­÷†ãÛxªx6¬õ4ÕN2à}×ÿ
+èi6þV¶©§ªÿ
+¯ï?Üg?íÿ
+®|ô´õÓÁüžªì¨é?­¿Çñ챚V¾_æéd—
+¡ÿ
+Ÿ>R²ÔŸhF7ü?¯øûÜ¡šÂZ ëÚ—×£aº¦Êãvæ×ÁÁ°ªÃýïÚUßø¯ÿ
+F —òè©æ!~}\ã*¥ª7Uuvodï ]R‹qíÝÃGþã?Šÿ
+è¿ï-¿þåi¶Þ@îO³£ËUÿ
+O³ì2›¬pÇp§ýà~ÉÎéàP¨Ïú¾]/¾øOú½:-m¸?…ÁœÁ×SUÓ%_úÿ
+è>Û½þ-øÿ
+ìÝ ?ßÕ ?wõÆù~à¿Çþ=¿z²œ©Éóÿ
+ܧþé×üûñ¸
+#?ÕᶠFý_·¯ÿÕ¥þ«ê]åÜÛº¢‡ CMü ÑýígÝÿ
+¿àù|ǧEl'‡üWCgu,oAµèŠýÏñJ<Vç­Ëý1ŸîwþEífç¶Ë’zãÓÔ|ú½•ØLŸŸú¸tÝÔÛV»xWÔQ`þç%‘¦£ûÚʺO§ü^­ükú{òöË$ûµ¼Àv‚—ýÑfé8‘MN1þN¶Ïí¿ïWWãès”4ÙºŸàÿ
+Ïò>}–Ip__êùuãÉ’zHd°õ}¹à¡Êó÷Ÿå–öu-à”iÿ
+<Ìÿ
+óvÊŽ´#Ëý_‹¯YÈT5ú¿Ô:>:ufî>¯í ¸ño³ò”xϼݟgþã+ÿ
+«Ï¥v
+(éXgÉXÿ
+W£>žh³ßgà‚Ÿü›ø_ü ¬·Óý¿²Ù-Î ÿ
+‚|ëþ~­bl÷ÙÇ<óÿ
+ì•M?ÚbþÏîÿ
+8 ÿ
+ÚŸ·Ÿ{þ?ÅÞ~—ö#Úã¼(¤·’üº-{A/?õzô(ÛÎeñxí¹•Êÿ
+)þæŸï?6·øÛýaøåY OB8 Óo×ÿ
+ŠÅ/ðúºÏ½û¿´ÿ
+zlFSþ,õuáÿ
+ß»û1þAý}·á¨òé nKtÝGX
+|º*Þm«OõqéŸuægþëáÿ
+\?´”ð?ýÍã¿ÐìÆ íƒ
+œ«ú=&}•8ý_ÅÐ±íªŒÅ.C9]57ÛýžèÜõxƒÿ
+Ÿºà– üû!š"ç'-HUiëÓ Udóø?­/ûä~ҙϨÞaâüSÆ¿¯¿tiÀ:Ã7ü°þŸñ^µ[®æýéiüÿ
+È¿Éi ÿ
+çíÇG2þºÇhû:ùß»ÅýåþÎÿ
+×ù¿ÙÛýç‹û÷^馳·ïù¾£þW-þÂþýŽ—öu&G—Óä¿âþoñÿ
+endstream
+endobj
+39 0 obj
+<<
+/Type /XObject
+/Subtype /Image
+/Width 440
+/Height 308
+/BitsPerComponent 8
+/Length 111645
+/ColorSpace 38 0 R
+/Filter /DCTDecode
+>>
+stream
+ÿØÿà
+         ÿÀ
+ÿÄ?
+ 
+ 
+Ïdƒ¶¤J×
+þ°ÿ
+
+
+ESliceType
+leftOutsetlong
+         ÿÀ
+ÿÄ?
+ 
+ 
+Ïdƒ¶¤J×
+þ°ÿ
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+ <exif:ColorSpace>4294967295</exif:ColorSpace>
+ <exif:PixelXDimension>440</exif:PixelXDimension>
+ <exif:PixelYDimension>308</exif:PixelYDimension>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>
+ <photoshop:History></photoshop:History>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ <tiff:Orientation>1</tiff:Orientation>
+ <tiff:XResolution>72/1</tiff:XResolution>
+ <tiff:YResolution>72/1</tiff:YResolution>
+ <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:xap='http://ns.adobe.com/xap/1.0/'>
+ <xap:CreateDate>2005-06-03T23:22:12+01:00</xap:CreateDate>
+ <xap:ModifyDate>2005-07-16T18:06:42+01:00</xap:ModifyDate>
+ <xap:MetadataDate>2005-07-16T18:06:42+01:00</xap:MetadataDate>
+ <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'>
+ <xapMM:DocumentID>adobe:docid:photoshop:748d66d0-f613-11d9-8e12-cba614fb1489</xapMM:DocumentID>
+ </rdf:Description>
+
+ <rdf:Description rdf:about='uuid:748d66d1-f613-11d9-8e12-cba614fb1489'
+ xmlns:dc='http://purl.org/dc/elements/1.1/'>
+ <dc:format>image/jpeg</dc:format>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>ÿî
+
+ 
+ÁÑ5'áS6‚ñ’¢DTsEF7Gc(UVW²ÂÒâòdƒt“„e£³ÃÓã)8fóu*9:HIJXYZghijvwxyz…†‡ˆ‰Š”•–—˜™š¤¥¦§¨©ª´µ¶·¸¹ºÄÅÆÇÈÉÊÔÕÖ×ØÙÚäåæçèéêôõö÷øùú
+sƒ“FtÂÒâòUeuV7„…£³ÃÓãó)”¤´ÄÔäô•¥µÅÕåõ(GWf8v†–¦¶ÆÖæögw‡—§·Ç×ç÷HXhxˆ˜¨¸ÈØèø9IYiy‰™©¹ÉÙéù*:JZjzŠšªºÊÚêúÿÚ
+(ê?Ù7—÷Åÿ
+ãäùt‘ ôp>—ÿ
+Ÿéí6¶õëZÓ®ÿ
+ÿ
+ÿ
+Óá¿ÕèG^×òè@ž[s?å‚öãýâþÏ~ý_ê=VM£Ž?Õòë¨g!9±¨Ÿãÿ
+/¶ÿ
+ÕÎÕòèÌ=ÿ
+\úwìm“MO”¤ûì?ItŽ3½²›´ ÿ
+Z̧÷opíê<Î4Wóÿ
+ÿ
+þÛó_ýëëÿ
+ª¼¦kí15ŸÄ¾ÿ
+ïâ¹,–è¥ÃýígÝæ?ÜfýÂÿ
+·ÙùŽ‹d© èÐtfg`¨)àØùÌÞtÇð_òºÌ/ðÁ‹Îßøký~¿ú¿îCúƒg2ý^G¤¶Q ã&¿äê£þ{c{ß{vèÁÕM²¿Ò.C¸úÇøÇûŒþóŸù}_ù~{‡9ÙÜHÉ«?ñ_ÐëW‘̱Ñéütl=ÇS°1[ýïŒ^tÑnL·ðâXʇÈÎãŸâåëíW,Ù´ $?#öV‡×¤÷ CRÕŽ¶°ø¯G×=3ÖWl ¦KvïùFs[“vo|ÁÉdëþŸîk9ÿ
+½É‹þ»*¿Œà8¿÷ü œ÷\5n1’x¸ÿ
+m‡´ómÇM„Çe6ü «£Ì䱿Åkþ·ãýÅûC¼Ä-öéåüüúAºHcˆëZmØ0lÿ
+ÀùùÍÿ
+bŸêóëÝ~Îìyñ´ü¬ßsÕÝG”¬Ìb~Ïþ
+ðÓþòè¹þ#ÖÅõ¹zŸK‡ƒqå°˜Ü?ü«Ë
+ÏáßîSŸy8ûå•Òè(ÇæÞjŽŽ¼?ŸD£ä‡Xü‹¤©Ý©76äØùê,¦k1²7fûËþåçKƒÂnùë=Ç»æ×}u#4-@xaÊG^ð¾}kOØ_;oÙYŒ®ÍØLnø¥Ü˜½é¿*òßî7lÐ¥|×ðÿ
+‘OµÎS5ýޫ̹:ÿ
+t¥TÔuYÕ›«»úOø‡ú$ù ýäÚñz¢Ëe«?¼˜Ê _ã œÁîp„ò6}ÆD&™§ù?ßmëÑŒqR†™3ÖüŠí¼Çhf6çÈÏ]KÚ|]fÃÍf2ØÉýÛß?õbÍqöþäÿ
+¶Û÷ë“VŠ”ùÇþqÑgÔ_õ~Ιèúó-¶÷¾èθÚmÏKGü³øµ!þ'Aü øõÿ
+ÿ
+·’ÌnŠÏï=f[¬³mÉŒÿ
+€ðÿ
+õï§>Ÿêý½XÇUô¦Aßû¨Óf÷Nct¿†¬ŇãÃøpÌEϸv]ɤª×·ý_.Œ,ö±Jyœÿ
+u§wÍžàÄ÷gtæ7VÔ®Ém½ÁI—þ ˜¤þüHäøäOx›ÍWbëvš™5?çôwyDÌÔáëÑììv·7Äø<­Ní¨5˜ª,>[øGðÜfø^ßöq¹ÏaÛWÞÇ\ç¥~«¬Êä·vðƒýÛ©¨þükrÕehó9,Ÿû‚ÿ
+ ž–WrQfØÁ=ò´xºÏ´«¬¶Oýëü=ºÖé&Tãý_>˜KÄgêùt°ðû÷ÃÛl¾K£ äu߶z¿]ÿ
+½ãü)ýÕûzjoâ¿ÂÅfì¤Ìÿ
+¬>,Ö³?ñtÿ
+©ašòŸ­ôïÐ=]¹7ncjÁ³³yÊjª=ø6~á«?ÞLŸ÷_™þ?þœÿ
+œ–×ÝäU{z®³ýÉÿ
+’:úÆ×»#1‹ÛŸå?u˜Åÿ
+ >/=NopnáY¯ò¼Çñ,føÁ§±ÔŸõÅt[¥Ž8ôáüqäñtû>}ÇMü?X¼{‡-l–3‹þ5ÿ
+õ>•9ŠÍÓµ²›ã)ŠÁîLoðª/½ûOï'5ø¼ïûÿ
+ß•ÿ
+«‡ËªOùá¼;CQ•ÙÕÛs¶º?±¿Ü.îðÿ
+1©û2¦zõÂP«åÑÈï åe Nǃ7S÷;ü·1ü'1à_Où~ÌAî°Û$Ûy‚âf¥ÈòóãæzN‡# z#Úy,fá®ÎPýÍ>è¬ûÚʼ±ÿ
+¼ön}÷û‹ö4ÙìlgU:óOFÿ
+Ÿ%ÿ
+ßô5=µØí¹‹ÍnúJ½É|ð?ù}`ðgr¿û§ÿ
+jlÆRøÖpÒQÿ
+ÿ
+ÜÎsý²¯pvG¹ Ç‘òHu[»&cZgþ+çјë‘5Ù²ÂSfäÊVÑÕÕÖ4Lïûž¶ ëõþ ÿ
+Š”Š,îäÜ{qï)²UTîc-WlØe0_Çÿ
+7î øûç²îl,#'ΟæéEþÞTòÿ
+à}¾¿aë}if­£ ÌPå+ªF?˜û:ÊJOø¶×å/ÿ
+Ú¹MUÚß³U›‡-ÿ
+†Ÿêþ]F‡»(hðØînÀ©©Ìäë2—ËnÌÆg“¯þ™¢?ãçÜòÿ
+¯ÿ
+?Ÿåþ…Ñ‚^vŒ«ötd:¯âîÀØ{woõÏiÐÔöŽÀªÜ™M͹*é+?¹9:àXOà8,/û÷ÿ
+—ú¿^ú¿—ú¿gBFä‡+¹7FCu~*iª08òÏï ²u÷Âñüwþyý»ýãÁ»UÃ]>ƒæÕä:T>!ÐQGß8©¥Ì`çÁã~ãìòxZ=ïI¶ÿ
+š«ÌtatÍ3Õücëv–ŸuMŠÂnÝŸž¬ÊWVbâã“¡Åà¿åËœ?óØç=ãï¸\É{à5¬â™¥j¾´ò_òôÇVØYÿ
+™?”ž_Ÿ^ú6ôÿ
+wýÍÿ
+¢\
+y?ý×´^“Ý6+üCüV§dî ϼ/¶òÔ›oø–Nƒý?ßÁog|×µ›‘Lpÿ
+ÿ
+\¾ØÂÖmíÃYü7'A¹ó¹¯à8,/üÅÜvóŸòéö2¬$§¿àÿ
+üÛü{©Ž¦éÛƒ „ÍÆ.‹øN'þP2§Œ9ÿ
+yú¿ýjùtƒ¢­>Éßæ*‘¸¾ç Q‹ÿ
+¦kÒ:³ƒþ3Sÿ
+Ù`iþ¯ƒ£;™Û¢žîÝÇÞ_ß «×=s’Ü}žÿ
+M¿•®¯¦¦þG‹£Ü•yjÌ7ùü_ýãŸ7ó ߎ½¹ ôôÑèÇ£±²vû?kd0{VzlÝ>
+³)]·)?¿ŸÄ±•ùLíÏñ¯à{¿ýÓ·¸w›yŠìµZ¨þ^és’ê¾ÆÏuCûÕC°7fø?Þæ2Ü䲟Å/Ÿÿ
+OüX¿¼ƒsÛŸqÆßÌw«¸ÆHÍ£òþDûæÈSË8ÿ
+zËçСE‡è|•Uð®ûš¼ÿ
+t3ïZÝÇÚ±SÖåwý>6£li‰Ãÿ
+}
+ÿ
+ª?½ÿ
+¤·—ô¿è.©^lFÛÎä3sîšz‘”Û{ò¶³I[™Ù8Ïáó¥ÁÛÞZÒ÷p¼Ž9Ö•ÿ
+j®R§ýÅÿ
+=“=f£+㦪Ãÿ
+JOâY1‹¯Çûk· »—¬#ñ ›¸pÄ¿å'¥‘nŒ ÿ
+úº éLw%¸Ÿõ~Ί†fl®Öî›àÿ
+ø쎯¢ÌA>WøvC=þ[YI–£þ%÷ùLkœ/×Ümû§|¶䪂<£ÿ
+ųÜý×ü^jê«?ÜfBÿ
+lÖÞáóU¤µl×ÒÛ×íON<Sü]0vGÉ~ì¹Û™Ê}ëKý×·÷nnOâXÊÿ
+°ÇÅ7ù#=PõaÛ=Ù•”³â³•Ý]Oþý¬¥ù&c3’ûûŒúÿ
+ÆIªãDàûSåé^„Mc•?êÿ
+ÿ
+tžÞÛ“nÏ´öý+)MœÃýŸ5xœ?ðÜg³8î/Vô€™¨ó_QòèÆ8Í1ǧ…’£gw&yÿ
+¡oú¿¡óëw–\ŸüWÏ£‘±6@ÀÓ ]ƒ¨ÿ
+×ɺO'—BWpg·&ñ—tn<á©þ!Kü*·WIøÅçåËü þ=‘ò£mÖTÇšú·¯Ê½ .‚ì>ÑSf*(k©ª©òŸÂöÇÝÕÿ
+šW´ŽŽFüËâ·…VCºñTØÜÇÙ .Uÿ
+ú)ÿ
+®“ß»/gý þ%ö£}¸ö?ïÜûïc=»eѸÑ !ý.–ìð,€×†z.ýoÚuÓKOýÿ
+Ó¤~F U_ÜPågÿ
+›åПêºìE~W)=67í…ÑQÿ
+ÓýX)Ž1QäzöÜóã3TùÊè*j~Ö³ø×ù_<›ÿ
+U~Ñþ€ŒJ|ž + û“£ÿ
+ž»qÃ’ûzj,§ù/Ýÿ
+šõ¯FC­÷†ãÛxªx6¬õ4ÕN2à}×ÿ
+èi6þV¶©§ªÿ
+¯ï?Üg?íÿ
+®|ô´õÓÁüžªì¨é?­¿Çñ챚V¾_æéd—
+¡ÿ
+Ÿ>R²ÔŸhF7ü?¯øûÜ¡šÂZ ëÚ—×£aº¦Êãvæ×ÁÁ°ªÃýïÚUßø¯ÿ
+F —òè©æ!~}\ã*¥ª7Uuvodï ]R‹qíÝÃGþã?Šÿ
+è¿ï-¿þåi¶Þ@îO³£ËUÿ
+O³ì2›¬pÇp§ýà~ÉÎéàP¨Ïú¾]/¾øOú½:-m¸?…ÁœÁ×SUÓ%_úÿ
+è>Û½þ-øÿ
+ìÝ ?ßÕ ?wõÆù~à¿Çþ=¿z²œ©Éóÿ
+ܧþé×üûñ¸
+#?ÕᶠFý_·¯ÿÕ¥þ«ê]åÜÛº¢‡ CMü ÑýígÝÿ
+¿àù|ǧEl'‡üWCgu,oAµèŠýÏñJ<Vç­Ëý1ŸîwþEífç¶Ë’zãÓÔ|ú½•ØLŸŸú¸tÝÔÛV»xWÔQ`þç%‘¦£ûÚʺO§ü^­ükú{òöË$ûµ¼Àv‚—ýÑfé8‘MN1þN¶Ïí¿ïWWãès”4ÙºŸàÿ
+Ïò>}–Ip__êùuãÉ’zHd°õ}¹à¡Êó÷Ÿå–öu-à”iÿ
+<Ìÿ
+óvÊŽ´#Ëý_‹¯YÈT5ú¿Ô:>:ufî>¯í ¸ño³ò”xϼݟgþã+ÿ
+«Ï¥v
+(éXgÉXÿ
+W£>žh³ßgà‚Ÿü›ø_ü ¬·Óý¿²Ù-Î ÿ
+‚|ëþ~­bl÷ÙÇ<óÿ
+ì•M?ÚbþÏîÿ
+8 ÿ
+ÚŸ·Ÿ{þ?ÅÞ~—ö#Úã¼(¤·’üº-{A/?õzô(ÛÎeñxí¹•Êÿ
+)þæŸï?6·øÛýaøåY OB8 Óo×ÿ
+ŠÅ/ðúºÏ½û¿´ÿ
+zlFSþ,õuáÿ
+ß»û1þAý}·á¨òé nKtÝGX
+|º*Þm«OõqéŸuægþëáÿ
+\?´”ð?ýÍã¿ÐìÆ íƒ
+œ«ú=&}•8ý_ÅÐ±íªŒÅ.C9]57ÛýžèÜõxƒÿ
+Ÿºà– üû!š"ç'-HUiëÓ Udóø?­/ûä~ҙϨÞaâüSÆ¿¯¿tiÀ:Ã7ü°þŸñ^µ[®æýéiüÿ
+È¿Éi ÿ
+çíÇG2þºÇhû:ùß»ÅýåþÎÿ
+×ù¿ÙÛýç‹û÷^馳·ïù¾£þW-þÂþýŽ—öu&G—Óä¿âþoñÿ
+endstream
+endobj
+40 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/XObject << /Im7 33 0 R /Im8 36 0 R /Im9 39 0 R >>
+/ProcSet [ /PDF /Text /ImageC ]
+>>
+endobj
+45 0 obj
+<<
+/Length 1552
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 710.037 Td [(Shell)-333(escape)-334(\050via)]TJ/F30 9.9626 Tf 75.605 0 Td [(ifeof)]TJ/F1 9.9626 Tf 26.152 0 Td [(\051)-333(seem)-1(s)-333(to)-333(be)-334(enabled.)]TJ -101.757 -11.955 Td [(Shell)-333(escape)-334(\050via)]TJ/F30 9.9626 Tf 75.605 0 Td [(\134pdfshellescape)]TJ/F1 9.9626 Tf 78.456 0 Td [(\051)-333(seems)-334(to)-333(be)-334(enab)1(led)-334(\050restricted\051.)]TJ
+ET
+1 0 0 1 72 694.595 cm
+q 1 0 0 1 1.99992 2.0 cm
+1 0 0 1 0 -253.997 cm
+0 0.6 0 rg 0 0.6 0 RG
+4 w
+[ ]0 d
+1 J
+1 j
+10 M
+q
+-1 0 0 1 0 0 cm
+-400.00008 0.0 m
+-388.05362 20.69193 -369.76968 36.62247 -350.00008 50.0 c
+-236.22455 126.98863 -70.53836 127.82376 -0.00008 250.0 c
+S
+Q
+2 w
+q
+-1 0 0 1 0 0 cm
+-350.00008 50.0 m
+-309.8453 199.85959 -97.68582 152.31425 -0.00008 250.0 c
+S
+Q
+q
+-1 0 0 1 0 0 cm
+-350.00008 50.0 m
+-195.84702 50.0 -37.96687 108.30608 -0.00008 250.0 c
+S
+Q
+1 0 0 1 0 253.997 cm
+Q
+1 0 0 1 0 -254.993 cm
+q 1 0 0 1 20.46147 -30.30342 cm
+1 0 0 1 0 -228.938 cm
+0 0 0.6 rg 0 0 0.6 RG
+4.00002 w
+[ ]0 d
+1 J
+1 j
+10 M
+q
+0.50769 0.86154 0.86154 -0.50769 0 0 cm
+18.46175 -32.30765 m
+30.40823 -11.61566 48.69225 4.31496 68.46193 17.69252 c
+182.23788 94.68146 347.9247 95.51657 418.46324 217.69328 c
+S
+Q
+2 w
+q
+0.50769 0.86154 0.86154 -0.50769 0 0 cm
+68.46193 17.69252 m
+108.61685 167.55267 320.77711 120.00716 418.46324 217.69328 c
+S
+Q
+q
+0.50769 0.86154 0.86154 -0.50769 0 0 cm
+68.46193 17.69252 m
+222.61557 17.69254 380.4963 75.99884 418.46324 217.69328 c
+S
+Q
+1 0 0 1 0 228.938 cm
+Q
+1 0 0 1 -72 -439.602 cm
+BT
+/F1 9.9626 Tf 303.509 55.29 Td [(5)]TJ
+ET
+
+endstream
+endobj
+44 0 obj
+<<
+/Type /Page
+/Contents 45 0 R
+/Resources 43 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+43 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R /F30 17 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+49 0 obj
+<<
+/Length 95
+>>
+stream
+0 g
+q
+1.779999 0 0 1.779999 72 79.2 cm
+/Im10 Do
+Q
+BT
+/F1 9.9626 Tf 303.509 55.29 Td [(6)]TJ
+ET
+
+endstream
+endobj
+48 0 obj
+<<
+/Type /Page
+/Contents 49 0 R
+/Resources 47 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 5 0 R
+>>
+endobj
+46 0 obj
+<<
+/Type /XObject
+/Subtype /Form
+/FormType 1
+/PTEX.FileName (./tmp.pdf)
+/PTEX.PageNumber 1
+/PTEX.InfoDict 50 0 R
+/BBox [0 0 186 360]
+/Resources <<
+/ProcSet [ /PDF /Text ]
+/ExtGState <<
+/R4 51 0 R
+>>/Font << /R9 52 0 R>>
+>>
+/Length 2015
+/Filter /FlateDecode
+>>
+stream
+xœíZËŽå4Ýç+²6ÆU.¿¶Hiv3ô´4¨³˜fÁïsʉǹ€@Dk¤¹ís×»Ží\kh¶úoû|^¦ÏÓ·dþôëdM´@»ÿ_?M4ÿ<%%žYœöó2Ek iHÀ˜\˜Ù%6™fï‚É!ÏÌ9˜äæçIB0!KÆúY|2O²Ñ¤6¤ì³±I¨HkØ HÑì(0a¨:wÞ°ÌUG’äT§jE?O;›_¦ÄøØ
+Šz2ÖÒÆ'Ú ë:êh£"×*FÒY/‘Nýt—8"·ò4ãsd.Œ6›¾›Àm ™MÄa£Œ³…9ýz9!7,4G´1vÂÀ)%Äa È ÂÀAWûwO¯ÿ*c S}^#S^m|}DåÌòà­ÍE‰Œ¶t ×SÆ.q|)ºœÛ64Nyí¨îlc}³<x÷{5Žz‰ W¨=itqÞJ-'äF®jÆÄÂÙ®™ã_ÑFy÷°<x¥s¹‹G#ÊS=mt‡7˃wÿ€Äø¯J½âÒ«îž8^æàsðß:p8Ö÷Oh!vÛÀu`¸Œ_FàzWÕ—Ÿåî—×Õÿp¡²œ_\ÎS€¨þ#ktA.‰–rÛD^/ÛVÞx`âz͵ŒÀõvƒí[¤Áľú‡»¼å„\߆'4rÎÕ  •ýÓW{ž?MYNÈ-Uæ"±ÆWDøÎÚ²¾þ|`•'óoÏï&ˆËÖªø“Sé|áž ¾û²"u‚Oy½!j6d›
+–MX¯Ýë
+Ru0.ÈAÇ8}mÊg?¶€±ibªMj@7I°!÷Øú·I è&éݪþ £Mj@7©2_›Ô€ƒWQ!zÃ6 Ÿ¤uß­Ô€~’X¤Oì&U Ÿ€Ù~¥
+œéÝJg{¸ýv÷Ù¬“ÞO¿Çßü²
+endstream
+endobj
+50 0 obj
+<<
+/Producer (Aladdin Ghostscript TESTER RELEASE 6.23)
+>>
+endobj
+51 0 obj
+<<
+/Type /ExtGState
+/Name /R4
+/TR /Identity
+/OPM 1
+/SM 0.02
+>>
+endobj
+52 0 obj
+<<
+/Subtype /Type1
+/BaseFont /Courier
+/Type /Font
+/Name /R9
+>>
+endobj
+47 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/XObject << /Im10 46 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+56 0 obj
+<<
+/Length 7055
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 710.037 Td [(Ah!)-798(perhaps)-451(a)-452(burn)1(ing)-452(match)]TJ 0 -11.955 Td [(might)-340(be)-340(some)-340(good,)-342(if)-340(she)-340(could)]TJ 0 -11.955 Td [(draw)-513(it)-513(from)-513(the)-513(bundle)-513(and)]TJ 0 -11.955 Td [(strike)-355(it)-355(against)-356(the)-355(wall,)-360(just)-356(to)]TJ 0 -11.955 Td [(warm)-373(her)-374(fingers.)-564(She)-374(drew)-373(one)]TJ 0 -11.955 Td [(out---"scratch!")-339(how)-339(i)1(t)-339(sputtered)]TJ 0 -11.956 Td [(as)-484(it)-484(burnt!)-896(It)-484(gave)-484(a)-484(warm,)]TJ 0 -11.955 Td [(bright)-504(light,)-547(like)-504(a)-505(little)-504(can-)]TJ 0 -11.955 Td [(dle,)-471(as)-444(she)-444(held)-444(her)-444(hand)-444(over)]TJ 0 -11.955 Td [(it.)-938(It)-497(was)-498(really)-498(a)-498(wonderful)]TJ 0 -11.955 Td [(light.)-534(It)-363(seemed)-363(to)-364(the)-363(little)-363(girl)]TJ 0 -11.955 Td [(that)-427(she)-428(was)-427(sitting)-428(by)-427(a)-427(large)]TJ 0 -11.956 Td [(iron)-443(stove,)-470(with)-442(polished)-443(brass)]TJ 0 -11.955 Td [(feet)-358(and)-359(a)-358(brass)-359(ornament.)-519(How)]TJ 0 -11.955 Td [(the)-403(fire)-404(bu)1(rned!)-655(and)-403(seemed)-403(so)]TJ 0 -11.955 Td [(beautifully)-400(w)-1(ar)1(m)-401(that)-401(the)-400(c)-1(h)1(ild)]TJ 0 -11.955 Td [(stretched)-472(out)-471(her)-472(feet)-472(as)-471(if)-472(to)]TJ 0 -11.955 Td [(warm)-361(them,)-367(when,)-367(lo!)-527(the)-360(flame)]TJ 0 -11.956 Td [(of)-338(the)-338(match)-339(went)-338(out,)-339(the)-338(stove)]TJ 0 -11.955 Td [(vanished,)-426(and)-407(she)-407(had)-407(only)-408(the)]TJ 0 -11.955 Td [(remains)-372(of)-372(the)-372(half-burnt)-372(match)]TJ 0 -11.955 Td [(in)-333(her)-334(hand)1(.)]TJ 0 -23.91 Td [(She)-473(rub)1(bed)-473(another)-473(match)-472(on)]TJ 0 -11.955 Td [(the)-405(wall.)-659(It)-405(burst)-404(into)-405(a)-405(flame,)]TJ 0 -11.956 Td [(and)-363(where)-364(its)-364(ligh)1(t)-364(fell)-363(upon)-364(the)]TJ 0 -11.955 Td [(wall)-357(it)-358(became)-357(as)-358(transparent)-357(as)]TJ 0 -11.955 Td [(a)-481(veil,)-517(and)-481(she)-480(could)-481(see)-480(into)]TJ 0 -11.955 Td [(the)-447(room.)-784(The)-447(table)-446(w)-1(as)-446(cov-)]TJ 0 -11.955 Td [(ered)-417(with)-417(a)-416(snowy)-417(white)-417(table-)]TJ 0 -11.955 Td [(cloth,)-364(on)-358(which)-358(stood)-358(a)-357(s)-1(p)1(lendid)]TJ 0 -11.956 Td [(dinner)-444(service,)-471(and)-444(a)-443(s)-1(teaming)]TJ 0 -11.955 Td [(roast)-402(goose,)-420(stuffed)-402(with)-402(apples)]TJ 0 -11.955 Td [(and)-356(dried)-357(plums.)-514(And)-356(what)-357(was)]TJ 0 -11.955 Td [(still)-433(more)-433(wonderful,)-457(the)-433(goose)]TJ 0 -11.955 Td [(jumped)-369(down)-368(from)-369(the)-369(dish)-369(and)]TJ 0 -11.955 Td [(waddled)-375(across)-374(the)-375(floor,)-385(with)-375(a)]TJ 0 -11.956 Td [(knife)-267(and)-267(fork)-267(in)-266(its)-267(breast,)-281(to)-266(the)]TJ 0 -11.955 Td [(little)-364(girl.)-535(Then)-364(the)-364(match)-364(went)]TJ 0 -11.955 Td [(out,)-361(and)-355(there)-356(remained)-355(nothing)]TJ 163.925 466.251 Td [(but)-433(the)-433(thick,)-458(damp,)-459(cold)-433(wall)]TJ 0 -11.955 Td [(before)-333(her.)]TJ 0 -23.91 Td [(She)-394(lighted)-393(another)-394(match,)-408(and)]TJ 0 -11.956 Td [(then)-320(she)-321(f)1(ound)-321(herself)-320(sitting)-320(un-)]TJ 0 -11.955 Td [(der)-440(a)-441(b)1(e)-1(au)1(tiful)-441(Christmas-tree.)]TJ 0 -11.955 Td [(It)-492(was)-492(larger)-492(and)-492(more)-492(beau-)]TJ 0 -11.955 Td [(tifully)-473(decorated)-473(than)-472(the)-473(one)]TJ 0 -11.955 Td [(which)-383(she)-384(had)-383(seen)-384(through)-383(the)]TJ 0 -11.955 Td [(glass)-286(door)-286(at)-285(the)-286(rich)-286(merchant's.)]TJ 0 -11.955 Td [(Thousands)-385(of)-384(tapers)-385(were)-384(burn-)]TJ 0 -11.956 Td [(ing)-298(upon)-298(the)-299(green)-298(branches,)-305(and)]TJ 0 -11.955 Td [(colored)-438(pictures,)-464(like)-437(those)-438(she)]TJ 0 -11.955 Td [(had)-427(seen)-427(in)-427(the)-427(show-windows,)]TJ 0 -11.955 Td [(looked)-460(down)-460(upon)-460(it)-460(all.)-825(The)]TJ 0 -11.955 Td [(little)-353(one)-354(stretched)-353(out)-354(her)-353(hand)]TJ 0 -11.955 Td [(towards)-474(them,)-510(and)-474(the)-475(match)]TJ 0 -11.956 Td [(went)-333(out.)]TJ 0 -23.91 Td [(The)-342(Christmas)-343(lights)-342(rose)-343(h)1(igher)]TJ 0 -11.955 Td [(and)-267(higher,)-280(till)-267(they)-267(looked)-267(to)-267(her)]TJ 0 -11.955 Td [(like)-414(the)-414(stars)-414(in)-414(the)-414(sky.)-686(Then)]TJ 0 -11.955 Td [(she)-265(saw)-264(a)-265(star)-264(fall,)-279(leaving)-264(behind)]TJ 0 -11.956 Td [(it)-371(a)-370(bright)-371(streak)-371(of)-370(fire.)-557("Some)]TJ 0 -11.955 Td [(one)-382(is)-381(dying,")-382(thought)-382(t)1(he)-382(little)]TJ 0 -11.955 Td [(girl,)-308(for)-302(her)-303(old)-302(grandmother,)-308(the)]TJ 0 -11.955 Td [(only)-320(one)-320(who)-320(had)-320(ever)-320(loved)-321(h)1(e)-1(r,)]TJ 0 -11.955 Td [(and)-334(who)-333(was)-334(now)-334(dead,)-333(had)-334(told)]TJ 0 -11.955 Td [(her)-347(that)-347(when)-347(a)-347(star)-347(falls,)-351(a)-347(soul)]TJ 0 -11.955 Td [(was)-333(going)-334(up)-333(to)-333(God.)]TJ 0 -23.911 Td [(She)-307(again)-306(rubbed)-307(a)-307(match)-306(on)-307(the)]TJ 0 -11.955 Td [(wall,)-414(and)-397(the)-398(light)-397(s)-1(h)1(one)-398(round)]TJ 0 -11.955 Td [(her;)-426(i)1(n)-395(the)-395(brightness)-395(stood)-395(her)]TJ 0 -11.955 Td [(old)-344(grandmother,)-346(clear)-344(and)-343(shin-)]TJ 0 -11.955 Td [(ing,)-256(yet)-236(mild)-236(and)-236(loving)-237(in)-236(her)-236(ap-)]TJ 0 -11.956 Td [(pearance.)-525("Grandmother,")-360(cried)]TJ 0 -11.955 Td [(the)-404(little)-405(one,)-422("O)-404(take)-405(me)-404(with)]TJ 0 -11.955 Td [(you;)-518(I)-456(know)-456(you)-457(will)-456(go)-456(away)]TJ 0 -11.955 Td [(when)-389(the)-389(match)-389(burns)-389(out;)-417(you)]TJ 163.926 466.251 Td [(will)-381(vanish)-381(like)-381(the)-381(warm)-380(s)-1(tov)1(e)-1(,)]TJ 0 -11.955 Td [(the)-441(roast)-442(goose,)-468(and)-441(the)-442(large,)]TJ 0 -11.955 Td [(glorious)-494(C)-1(h)1(ristm)-1(as-tree.")-494(And)]TJ 0 -11.956 Td [(she)-278(made)-277(haste)-278(to)-277(light)-278(the)-277(whole)]TJ 0 -11.955 Td [(bundle)-262(of)-261(matc)-1(h)1(e)-1(s,)-276(for)-261(she)-262(wished)]TJ 0 -11.955 Td [(to)-408(keep)-408(her)-408(grandmother)-409(there.)]TJ 0 -11.955 Td [(And)-382(the)-381(matches)-382(glowed)-382(with)-381(a)]TJ 0 -11.955 Td [(light)-373(that)-374(was)-374(brighter)-373(than)-374(the)]TJ 0 -11.955 Td [(noon-day,)-405(and)-390(her)-391(grand)1(m)-1(oth)1(e)-1(r)]TJ 0 -11.956 Td [(had)-289(never)-290(appeared)-289(s)-1(o)-289(large)-290(or)-289(so)]TJ 0 -11.955 Td [(beautiful.)-484(She)-347(took)-347(th)1(e)-347(little)-347(girl)]TJ 0 -11.955 Td [(in)-378(her)-379(arms,)-390(and)-378(they)-379(both)-378(flew)]TJ 0 -11.955 Td [(upwards)-269(in)-269(brightness)-269(and)-269(joy)-269(far)]TJ 0 -11.955 Td [(above)-315(the)-315(earth,)-319(where)-315(there)-315(was)]TJ 0 -11.955 Td [(neither)-311(cold)-310(nor)-311(hunger)-311(nor)-311(pain,)]TJ 0 -11.955 Td [(for)-333(they)-334(were)-333(with)-333(God.)]TJ -96.342 -475.42 Td [(7)]TJ
+ET
+
+endstream
+endobj
+55 0 obj
+<<
+/Type /Page
+/Contents 56 0 R
+/Resources 54 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 61 0 R
+/Annots [ 53 0 R ]
+/B [ 58 0 R 59 0 R 60 0 R ]
+>>
+endobj
+53 0 obj
+<<
+/Type /Annot
+ /Subtype /Text /Contents (This text is from THE LITTLE MATCH-SELLER by Hans Christian Andersen)
+/Rect [72 606.614 355.465 720]
+>>
+endobj
+62 0 obj
+[62.037 231.887 225.963 729.963]
+endobj
+63 0 obj
+[225.963 231.887 389.888 729.963]
+endobj
+64 0 obj
+[389.888 518.81 553.813 729.963]
+endobj
+54 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+67 0 obj
+<<
+/Length 7055
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 710.037 Td [(Ah!)-798(perhaps)-451(a)-452(burn)1(ing)-452(match)]TJ 0 -11.955 Td [(might)-340(be)-340(some)-340(good,)-342(if)-340(she)-340(could)]TJ 0 -11.955 Td [(draw)-513(it)-513(from)-513(the)-513(bundle)-513(and)]TJ 0 -11.955 Td [(strike)-355(it)-355(against)-356(the)-355(wall,)-360(just)-356(to)]TJ 0 -11.955 Td [(warm)-373(her)-374(fingers.)-564(She)-374(drew)-373(one)]TJ 0 -11.955 Td [(out---"scratch!")-339(how)-339(i)1(t)-339(sputtered)]TJ 0 -11.956 Td [(as)-484(it)-484(burnt!)-896(It)-484(gave)-484(a)-484(warm,)]TJ 0 -11.955 Td [(bright)-504(light,)-547(like)-504(a)-505(little)-504(can-)]TJ 0 -11.955 Td [(dle,)-471(as)-444(she)-444(held)-444(her)-444(hand)-444(over)]TJ 0 -11.955 Td [(it.)-938(It)-497(was)-498(really)-498(a)-498(wonderful)]TJ 0 -11.955 Td [(light.)-534(It)-363(seemed)-363(to)-364(the)-363(little)-363(girl)]TJ 0 -11.955 Td [(that)-427(she)-428(was)-427(sitting)-428(by)-427(a)-427(large)]TJ 0 -11.956 Td [(iron)-443(stove,)-470(with)-442(polished)-443(brass)]TJ 0 -11.955 Td [(feet)-358(and)-359(a)-358(brass)-359(ornament.)-519(How)]TJ 0 -11.955 Td [(the)-403(fire)-404(bu)1(rned!)-655(and)-403(seemed)-403(so)]TJ 0 -11.955 Td [(beautifully)-400(w)-1(ar)1(m)-401(that)-401(the)-400(c)-1(h)1(ild)]TJ 0 -11.955 Td [(stretched)-472(out)-471(her)-472(feet)-472(as)-471(if)-472(to)]TJ 0 -11.955 Td [(warm)-361(them,)-367(when,)-367(lo!)-527(the)-360(flame)]TJ 0 -11.956 Td [(of)-338(the)-338(match)-339(went)-338(out,)-339(the)-338(stove)]TJ 0 -11.955 Td [(vanished,)-426(and)-407(she)-407(had)-407(only)-408(the)]TJ 0 -11.955 Td [(remains)-372(of)-372(the)-372(half-burnt)-372(match)]TJ 0 -11.955 Td [(in)-333(her)-334(hand)1(.)]TJ 0 -23.91 Td [(She)-473(rub)1(bed)-473(another)-473(match)-472(on)]TJ 0 -11.955 Td [(the)-405(wall.)-659(It)-405(burst)-404(into)-405(a)-405(flame,)]TJ 0 -11.956 Td [(and)-363(where)-364(its)-364(ligh)1(t)-364(fell)-363(upon)-364(the)]TJ 0 -11.955 Td [(wall)-357(it)-358(became)-357(as)-358(transparent)-357(as)]TJ 0 -11.955 Td [(a)-481(veil,)-517(and)-481(she)-480(could)-481(see)-480(into)]TJ 0 -11.955 Td [(the)-447(room.)-784(The)-447(table)-446(w)-1(as)-446(cov-)]TJ 0 -11.955 Td [(ered)-417(with)-417(a)-416(snowy)-417(white)-417(table-)]TJ 0 -11.955 Td [(cloth,)-364(on)-358(which)-358(stood)-358(a)-357(s)-1(p)1(lendid)]TJ 0 -11.956 Td [(dinner)-444(service,)-471(and)-444(a)-443(s)-1(teaming)]TJ 0 -11.955 Td [(roast)-402(goose,)-420(stuffed)-402(with)-402(apples)]TJ 0 -11.955 Td [(and)-356(dried)-357(plums.)-514(And)-356(what)-357(was)]TJ 0 -11.955 Td [(still)-433(more)-433(wonderful,)-457(the)-433(goose)]TJ 0 -11.955 Td [(jumped)-369(down)-368(from)-369(the)-369(dish)-369(and)]TJ 0 -11.955 Td [(waddled)-375(across)-374(the)-375(floor,)-385(with)-375(a)]TJ 0 -11.956 Td [(knife)-267(and)-267(fork)-267(in)-266(its)-267(breast,)-281(to)-266(the)]TJ 0 -11.955 Td [(little)-364(girl.)-535(Then)-364(the)-364(match)-364(went)]TJ 0 -11.955 Td [(out,)-361(and)-355(there)-356(remained)-355(nothing)]TJ 163.925 466.251 Td [(but)-433(the)-433(thick,)-458(damp,)-459(cold)-433(wall)]TJ 0 -11.955 Td [(before)-333(her.)]TJ 0 -23.91 Td [(She)-394(lighted)-393(another)-394(match,)-408(and)]TJ 0 -11.956 Td [(then)-320(she)-321(f)1(ound)-321(herself)-320(sitting)-320(un-)]TJ 0 -11.955 Td [(der)-440(a)-441(b)1(e)-1(au)1(tiful)-441(Christmas-tree.)]TJ 0 -11.955 Td [(It)-492(was)-492(larger)-492(and)-492(more)-492(beau-)]TJ 0 -11.955 Td [(tifully)-473(decorated)-473(than)-472(the)-473(one)]TJ 0 -11.955 Td [(which)-383(she)-384(had)-383(seen)-384(through)-383(the)]TJ 0 -11.955 Td [(glass)-286(door)-286(at)-285(the)-286(rich)-286(merchant's.)]TJ 0 -11.955 Td [(Thousands)-385(of)-384(tapers)-385(were)-384(burn-)]TJ 0 -11.956 Td [(ing)-298(upon)-298(the)-299(green)-298(branches,)-305(and)]TJ 0 -11.955 Td [(colored)-438(pictures,)-464(like)-437(those)-438(she)]TJ 0 -11.955 Td [(had)-427(seen)-427(in)-427(the)-427(show-windows,)]TJ 0 -11.955 Td [(looked)-460(down)-460(upon)-460(it)-460(all.)-825(The)]TJ 0 -11.955 Td [(little)-353(one)-354(stretched)-353(out)-354(her)-353(hand)]TJ 0 -11.955 Td [(towards)-474(them,)-510(and)-474(the)-475(match)]TJ 0 -11.956 Td [(went)-333(out.)]TJ 0 -23.91 Td [(The)-342(Christmas)-343(lights)-342(rose)-343(h)1(igher)]TJ 0 -11.955 Td [(and)-267(higher,)-280(till)-267(they)-267(looked)-267(to)-267(her)]TJ 0 -11.955 Td [(like)-414(the)-414(stars)-414(in)-414(the)-414(sky.)-686(Then)]TJ 0 -11.955 Td [(she)-265(saw)-264(a)-265(star)-264(fall,)-279(leaving)-264(behind)]TJ 0 -11.956 Td [(it)-371(a)-370(bright)-371(streak)-371(of)-370(fire.)-557("Some)]TJ 0 -11.955 Td [(one)-382(is)-381(dying,")-382(thought)-382(t)1(he)-382(little)]TJ 0 -11.955 Td [(girl,)-308(for)-302(her)-303(old)-302(grandmother,)-308(the)]TJ 0 -11.955 Td [(only)-320(one)-320(who)-320(had)-320(ever)-320(loved)-321(h)1(e)-1(r,)]TJ 0 -11.955 Td [(and)-334(who)-333(was)-334(now)-334(dead,)-333(had)-334(told)]TJ 0 -11.955 Td [(her)-347(that)-347(when)-347(a)-347(star)-347(falls,)-351(a)-347(soul)]TJ 0 -11.955 Td [(was)-333(going)-334(up)-333(to)-333(God.)]TJ 0 -23.911 Td [(She)-307(again)-306(rubbed)-307(a)-307(match)-306(on)-307(the)]TJ 0 -11.955 Td [(wall,)-414(and)-397(the)-398(light)-397(s)-1(h)1(one)-398(round)]TJ 0 -11.955 Td [(her;)-426(i)1(n)-395(the)-395(brightness)-395(stood)-395(her)]TJ 0 -11.955 Td [(old)-344(grandmother,)-346(clear)-344(and)-343(shin-)]TJ 0 -11.955 Td [(ing,)-256(yet)-236(mild)-236(and)-236(loving)-237(in)-236(her)-236(ap-)]TJ 0 -11.956 Td [(pearance.)-525("Grandmother,")-360(cried)]TJ 0 -11.955 Td [(the)-404(little)-405(one,)-422("O)-404(take)-405(me)-404(with)]TJ 0 -11.955 Td [(you;)-518(I)-456(know)-456(you)-457(will)-456(go)-456(away)]TJ 0 -11.955 Td [(when)-389(the)-389(match)-389(burns)-389(out;)-417(you)]TJ 163.926 466.251 Td [(will)-381(vanish)-381(like)-381(the)-381(warm)-380(s)-1(tov)1(e)-1(,)]TJ 0 -11.955 Td [(the)-441(roast)-442(goose,)-468(and)-441(the)-442(large,)]TJ 0 -11.955 Td [(glorious)-494(C)-1(h)1(ristm)-1(as-tree.")-494(And)]TJ 0 -11.956 Td [(she)-278(made)-277(haste)-278(to)-277(light)-278(the)-277(whole)]TJ 0 -11.955 Td [(bundle)-262(of)-261(matc)-1(h)1(e)-1(s,)-276(for)-261(she)-262(wished)]TJ 0 -11.955 Td [(to)-408(keep)-408(her)-408(grandmother)-409(there.)]TJ 0 -11.955 Td [(And)-382(the)-381(matches)-382(glowed)-382(with)-381(a)]TJ 0 -11.955 Td [(light)-373(that)-374(was)-374(brighter)-373(than)-374(the)]TJ 0 -11.955 Td [(noon-day,)-405(and)-390(her)-391(grand)1(m)-1(oth)1(e)-1(r)]TJ 0 -11.956 Td [(had)-289(never)-290(appeared)-289(s)-1(o)-289(large)-290(or)-289(so)]TJ 0 -11.955 Td [(beautiful.)-484(She)-347(took)-347(th)1(e)-347(little)-347(girl)]TJ 0 -11.955 Td [(in)-378(her)-379(arms,)-390(and)-378(they)-379(both)-378(flew)]TJ 0 -11.955 Td [(upwards)-269(in)-269(brightness)-269(and)-269(joy)-269(far)]TJ 0 -11.955 Td [(above)-315(the)-315(earth,)-319(where)-315(there)-315(was)]TJ 0 -11.955 Td [(neither)-311(cold)-310(nor)-311(hunger)-311(nor)-311(pain,)]TJ 0 -11.955 Td [(for)-333(they)-334(were)-333(with)-333(God.)]TJ -96.342 -475.42 Td [(8)]TJ
+ET
+
+endstream
+endobj
+66 0 obj
+<<
+/Type /Page
+/Contents 67 0 R
+/Resources 65 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 61 0 R
+/B [ 69 0 R 70 0 R 71 0 R ]
+>>
+endobj
+72 0 obj
+[62.037 231.887 225.963 729.963]
+endobj
+73 0 obj
+[225.963 231.887 389.888 729.963]
+endobj
+74 0 obj
+[389.888 518.81 553.813 729.963]
+endobj
+65 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+77 0 obj
+<<
+/Length 153
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 713.081 Td [(This)-333(is)-334(a)-333(page)-333(containing)-334(destination)-333(`num)-333(1')]TJ 231.509 -657.791 Td [(9)]TJ
+ET
+
+endstream
+endobj
+76 0 obj
+<<
+/Type /Page
+/Contents 77 0 R
+/Resources 75 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 61 0 R
+>>
+endobj
+78 0 obj
+[76 0 R /Fit]
+endobj
+75 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+85 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+87 0 obj
+(Outline 1)
+endobj
+88 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+90 0 obj
+(Outline 1.1)
+endobj
+91 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+93 0 obj
+(Outline 1.1.1)
+endobj
+94 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+96 0 obj
+(Outline 1.1.2)
+endobj
+97 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+99 0 obj
+(Outline 1.2)
+endobj
+100 0 obj
+<< /S /GoTo /D 78 0 R >>
+endobj
+102 0 obj
+(Outline 1.3)
+endobj
+103 0 obj
+<< /S /GoTo /D [3 0 R /Fit] >>
+endobj
+105 0 obj
+(Outline 2)
+endobj
+108 0 obj
+<<
+/Length 1666
+>>
+stream
+0 g
+BT
+/F1 9.9626 Tf 72 713.081 Td [(This)-333(is)-334(a)-333(link)-333(to)-334(destination)-333(`num)-333(1')]TJ 0 -11.955 Td [(The)-333(link)-334(is)-333(object)-333(79.)]TJ 0 -11.955 Td [(This)-333(is)-334(a)-333(link)-333(to)-334(the)-333(first)-333(page)]TJ 0 -11.955 Td [(This)-333(is)-334(a)-333(link)-333(to)-334(the)-333(thread)-333(`num)-333(1')]TJ 0 -11.955 Td [(This)-333(is)-334(a)-333(link)-333(to)-334(the)-333(previous)-333(view)]TJ 0 -11.955 Td [(This)-333(is)-334(a)-333(link)-333(to)-334(our)-333(faculty)]TJ 0 -11.956 Td [(This)-333(is)-334(an)-333(example)-333(of)-334(mul)1(tiple)]TJ 0 -11.955 Td [(line)-333(link.)-500(Make)-333(sure)-334(that)-333(the)]TJ 0 -11.955 Td [(link)-333(and)-333(its)-334(end)-333(must)-333(be)-334(in)-333(hor-)]TJ 0 -11.955 Td [(izontal)-333(mode)-334(and)-333(the)-333(parent)]TJ 0 -11.955 Td [(boxes)-333(must)-334(have)-333(the)-333(same)-334(box)]TJ 0 -11.955 Td [(nesting)-333(level.A)-334(common)-333(mistake)]TJ 0 -11.956 Td [(here)-333(is)-334(using)]TJ/F30 9.9626 Tf 57.699 0 Td [(\134pdfstartlink)]TJ/F1 9.9626 Tf -57.699 -11.955 Td [(at)-333(the)-334(beginn)1(ing)-334(of)-333(the)-333(text)]TJ 0 -11.955 Td [(without)]TJ/F30 9.9626 Tf 37.083 0 Td [(\134indent)]TJ/F1 9.9626 Tf 36.612 0 Td [(,)]TJ/F30 9.9626 Tf 6.088 0 Td [(\134noindent)]TJ/F1 9.9626 Tf 50.394 0 Td [(or)]TJ/F30 9.9626 Tf -130.177 -11.955 Td [(\134leavevmode)]TJ/F1 9.9626 Tf 57.534 0 Td [(,)-333(so)]TJ/F30 9.9626 Tf 18.319 0 Td [(\134pdfstartlink)]TJ/F1 9.9626 Tf -75.853 -11.955 Td [(will)-333(end)-334(u)1(p)-334(in)-333(vertical)-333(mode)-334(and)]TJ 0 -11.955 Td [(cause)-333(an)-334(error.)]TJ 229.019 -454.554 Td [(10)]TJ
+ET
+
+endstream
+endobj
+107 0 obj
+<<
+/Type /Page
+/Contents 108 0 R
+/Resources 106 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 61 0 R
+/Annots [ 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R 84 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R ]
+>>
+endobj
+79 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/C [0.9 0 0] /Border [0 0 2]
+/Rect [195.426 709.096 230.628 724.04]
+/A << /S /GoTo /D 78 0 R >>
+>>
+endobj
+80 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Rect [161.055 686.238 203.811 697.086]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+81 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Rect [161.055 676.22 227.833 685.131]
+/A << /S /Thread /D 57 0 R >>
+>>
+endobj
+82 0 obj
+<<
+/Type /Annot
+ /Border [0 0 0]
+/Rect [143.897 662.327 222.353 673.176]
+/Subtype /Link /A << /S /Named /N /GoBack >>
+>>
+endobj
+83 0 obj
+<<
+/Type /Annot
+/Rect [143.897 650.372 193.517 661.22]
+/Subtype /Link /A << /Type /Action /S /URI /URI (http://www.fi.muni.cz/) >>
+>>
+endobj
+84 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [167.972 638.417 216.996 649.265]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+109 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [71.004 628.399 216.996 637.31]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+110 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [71.004 616.444 216.996 625.355]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+111 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [71.004 602.552 216.996 613.4]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+112 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [71.004 592.534 216.996 601.445]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+113 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+ /Border [0 0 0]
+/Rect [71.004 578.641 129.783 589.489]
+/A << /S /GoTo /D [3 0 R /FitB] >>
+>>
+endobj
+106 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F1 1 0 R /F30 17 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+115 0 obj
+<< /S /GoTo /D [3 0 R /Fit] >>
+endobj
+118 0 obj
+<<
+/Length 877
+>>
+stream
+0 g
+q
+1 0 0 1 72 719.801 cm
+[]0 d 0 J 0.398 w 0 0 m 468 0 l S
+Q
+1 0 0 1 106.592 437.81 cm
+q 0 1 -1 0 0 0 cm
+1 0 0 1 -106.592 -437.81 cm
+BT
+/F51 49.8132 Tf 106.592 437.81 Td [(Rotated)-333(text)]TJ
+ET
+1 0 0 1 109.913 437.81 cm
+Q
+q
+1 0 0 1 -37.913 -0.199 cm
+[]0 d 0 J 0.398 w 0 0 m 468 0 l S
+Q
+1 0 0 1 -37.913 -104.176 cm
+q 2 0 0 3 0 0 cm
+1 0 0 1 -72 -333.634 cm
+BT
+/F51 49.8132 Tf 72 333.634 Td [(Scaled)-333(text)]TJ
+ET
+1 0 0 1 72 333.634 cm
+Q
+q
+1 0 0 1 0 -0.199 cm
+[]0 d 0 J 0.398 w 0 0 m 468 0 l S
+Q
+1 0 0 1 0 -34.991 cm
+q 1 -0.57735 0 1 0 0 cm
+1 0 0 1 -72 -298.643 cm
+BT
+/F51 49.8132 Tf 72 298.643 Td [(Sk)28(ew)28(ed)-334(text)]TJ
+ET
+1 0 0 1 72 298.643 cm
+Q
+1 0 0 1 0 -165.739 cm
+q
+0.87 -0.5 0.5 0.87 0 0 cm
+1 0 0 1 -72 -132.904 cm
+BT
+/F51 49.8132 Tf 72 132.904 Td [(Link)]TJ
+ET
+1 0 0 1 72 132.904 cm
+Q
+1 0 0 1 -72 -132.904 cm
+BT
+/F1 9.9626 Tf 301.019 55.29 Td [(11)]TJ
+ET
+
+endstream
+endobj
+117 0 obj
+<<
+/Type /Page
+/Contents 118 0 R
+/Resources 116 0 R
+/MediaBox [0 0 612 792]
+/MyPagesAttribute /MyValue
+/Parent 61 0 R
+/Annots [ 114 0 R ]
+>>
+endobj
+114 0 obj
+<<
+/Type /Annot
+/Subtype /Link
+/Rect [71.004 82.565 176.149 163.996]
+/A << /S /GoTo /D [117 0 R /FitH] >>
+>>
+endobj
+116 0 obj
+<<
+/MyPageResourceAttribute /MyValue
+/Font << /F51 119 0 R /F1 1 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+120 0 obj
+[600 950 783.3 750 683.3 750 759.7 555.6 694.4 769.4 755.6 1033.3 755.6 755.6 611.1 280 544.4 280 500 277.8 277.8 486.1 555.6 444.4 555.6 466.7 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 427.8 394.4 390.3 555.6 527.8 722.2 527.8]
+endobj
+121 0 obj
+[277.8]
+endobj
+122 0 obj
+[777.8]
+endobj
+123 0 obj
+[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525]
+endobj
+124 0 obj
+[583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4]
+endobj
+125 0 obj
+<<
+/Length1 1567
+/Length2 8603
+/Length3 0
+/Length 10170
+>>
+stream
+%!PS-AdobeFont-1.0: CMB10 003.002
+%%Title: CMB10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMB10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMB10 known{/CMB10 findfont dup/UniqueID known{dup
+/UniqueID get 5000761 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /JJKGXQ+CMB10 def
+/FontBBox {-62 -250 1011 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMB10.) readonly def
+/FullName (CMB10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 76 /L put
+dup 82 /R put
+dup 83 /S put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 110 /n put
+dup 111 /o put
+dup 116 /t put
+dup 119 /w put
+dup 120 /x put
+readonly def
+currentdict end
+currentfile eexec
+ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå»
+ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+
+}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦Œß=מ7‰ÈÚ„Ä’ÕKV"~Pr„©-=›€L¿$ÀŸwc›rlVcÏN &'³{…%¨Gf“®#ɨ_iùý#S’Xd+½ÁÀìîU¿+/ùFAÐSó ¶&•ÔZT€ÁD¥Ü<žžfúÝû8ýÙ';ÌÑt:ŸODj`Æ·2à©°ÿ¹`9x¦Ôø'̱üƒœLuîë¬2|†œ a_çlºdB¹3'åá…`ÂîŠ[ߥñ]~7<×Ñn†¸9ùÝ^©V¸î–16T®°/¥lüZâmUȇôʾ¸vƒôiÏ«k¹ÊxSR? ß›r-4 üŒOÛ¦Ñ~äuWovÝí»eú »8˜£Ümîø.ÖÔãmT¨\^×ô|œhˆ&ƒD¤áFÞ’@N•ë©\ù3‹¶à<}—Ã"kŽ.ø
+ô¢£ —ïÔV7LøU|»:h›Ž†ã•¶Ÿ†ÃÖzŒqp*
+}uqVlÓÐ,Y̱ƒ¿âðÍ!ØÓ^¢Ø®RàCµ6>,ôá*r|5é7ú§l÷.Ò*Ÿ¨H@‘´•b$ÿk²{¨_€õÔÔ5vx26ôçg'bÚ†˜ÄTö!ÍIÜ•¥ zBLJΑˆÐ *g‹la„Çî®ïÑŽ·Ú¢<?VHÙÎä?uÝc@­ÿí˜õ™‹Óô/Kƒº½ †Ä˜Y‡ÖOÀ’8ÌïobNs2BÃB·m´:n;Z™ƒÜûcñ[0䪯wµ%mèìö¢4Ï~wÁ—I éön#m>´P–`”ýR†IfLXö[ºÇÀ¶ Mß—•»-‹Í¼ñ§¦DPl^V-6»è¸„‘¹Ó[wpæ–¦œÀXó
+x5/‡^!B¹õ:°šáÿ@ãLõßê} fÎÌpÝVëYoÃÃa\b]55€1G"®Hž|ïx€ëi= …9ª™ˆàk„û.x-’2¡`ÑǶ—þ¼õy® zyÊ'„ƒòÅ‘ìêv¹¬ç˜é·D£BÃlá
+’1rpžk]Ù’±ÿÖâS3]ù´Î3!±ëÙ`[‚|+ú‚~DTU¼ý]‰õV¡÷–ÝýgiD>à#Ö[˜Þ¬sž˜š-ý}Ù‡ï¾Q˜h \âÂl e„x°Í›û
+T$AáòNÚ8ÀQ;‘fÅgìô_{­sþ£ +XÅt±†‰¿hi÷¢ñP€f×o…Ô½ NÞ“2 ‹É/sO•v¢k­Ø5ã(ÐÃy9}õ\²¹Þð/†&ò´©¥š-Sž„^OqîxH•âè"ùgÛŽï@¢™¿ÚO„08UØ:WzÍÀÖ­¥§µ-“üXD6‘ &ÍŠ9ЬҤc­Ê-¾Ç÷ÈÎÊ1¤Rˆb2xÃh‰Ø=TìN•YÝÎD›ƒ 112üÐ×ÙZ{ÜÁ6^ìG¡rc]zµÖ3A-1 …
+ìbØ· m
+!«ß£ë|‹ ýER镦}ŽÙ£ðÙpDw'ëGt?䜬oK\ìŽî]:3’%²:ž# …9l§Rªd²W>Û ÑU3Z~þPXéš?;à•¡%ì3Y$þ¤¿/y‡ ­?kö¼%‰åÞ÷êÙ±ú¼G줠
+›³Nsº˜£j·-˜É 2 ËÓ¨qPUq¹9)>#i}Ãþ¼7X+z¥A Ý]“åU¬T×Òw­mâ‘X΋‰âœg£ý ^Ð%ˆÌ Ì“ùÈÎÑl@ËNß´œ’$ÝQ•Y·ÀFß/Ö þ@)ý•†s!Ù…ðR>“sš©ç$0Ó …—}Ó#Î"-@ŽN-Ú¿Ùá÷[S l¥ö«£»›lùL)ƒzA†ê“<{¦
+êœñ÷ö2õõa¤ËyÊS;2Š-½€‰ò•û~1¬ð‡·çw¿wì9Mî[㶚'±"3˜)óY>Ù/Bÿ'!„3Ý–E ÙÛ¼ù„³8;ß`µÆ`>¡}գл¥Æw7å÷qž,¯Yî¸r“»Ç, åõ©|òØÎ{7èÂ#TŸ’kj—Ÿ‰Àoëþ†‹‚Dô)ÃÃÁöPlíFÞtí׿”um8¨±€lç½7Œ¦9 R€?µ§¸w
+•< ˳†Ó6ÁÊáÊþî̪“adU<úzÜžTS¼wÅzøùlÐû|AÕ&PÈoÖk§™?ä\‹Ð¹¿ ü×!¨h¡ÄÝ0îîRmoQÕ´*uœScž\×8Eü ‹!£ï€< ÔÜaYŒÃDjæÕH¹õ㔶¥nñ×½Úí„ø!>·ÜÈNi›Ù…íŽ\ÿ,rœ©%Ø·cf½E ¯V¦Ñm[›š¡íÒÌÕ—¿–?BaHèÒ´÷3Úð3hQˆ­üˆÒYDé[¸YÜvr¹éšSXM¹EÞ¸•¾‹lÔ/9ÙVŒÎŸ‰xCpˆXJWïˆLcûÓç‡LBù~Ž-î!0«ö Ö
+=„"Jõö¼ñÞYˆCÉoʹ£CüV8¥øIÈK$Œ;Ô‡‰_`"hÓæõîŠý
+|³œ½`š*V@î8”£ET&'[Ô?uwçFçê—Uü'˜Û.FF(ãbRP­˜XÛñ(òÁ9M8õÑ$÷¤q¾2iͲ>?Š®‚ e§+èf>Ñjä»{—•Eúz>¤æC^ ¬_í¦OZÄ[;AˆºÎv“Báµ@Z=‡£èÓ7èÆ»tÀû®;ûÈgF:ÊV< pþ3³Œ_\ pKØ õ¢Íþ € Ï↬ý>Ÿ:7Æ&V/¨+Ü›m¼“w'µôö*¡B+JR£T4ÕW@8(mü Ÿ¸òÖ
+‡éÖÂûeã·Eëí‘}Ì\×{î¦,–˜ ¢»?Ü¢Ã8±ÔýG°oäŠd=Ë®þçt§co})ý·{üVûwiRW¬äœ*F¡žè?©Añ÷š98Mœ ió«."±BúÙöìoMŸÞ6á+×f nÚב»ÇlÉöëÖf‹´5P ËáÏ#Ã,\*‡{WD^³¸yÒü… x¼·áÁYø±·"_´•à’{BÞ'ñj§ßY7bg¦­% 7†g瘰K2®³t~‰ùò¢¬
+ÊLOï†T,Z¿ERdsUÍzä`6ñ·îx¢Y4èÐwÓ#ùa§£ÌÍõ¢Äh´¾'c4i5
+à(Û]Ã.„ûÚ…0.¹µ?ýãո¯hÚŵ-³½”òÇÍs(
+~mò[óZN¬æœ½fk"Þ¸s%Eš¾H‹šyà¹=É¿…Þ%Ü”"$ø›V¢:%H€ßÄ–o¸øƒuÙœæy6èÚ0è]RSS%Ý Z^]µ£ƒûã#<ŠôæÂEø½ ØBhiË[Δ±šدd ô&%Z!¬N値–±†ŽKé ðÂtÆ?íéÌÛsKþÒ?
+þ~OâZ`œ¹JÖqï- vdq){1B)Òœ’¿Êe¯×ak2VØ渤0lÀp©ÜŠÍ4¿Fùåí!'—»çxÜÛ‹;XMÍQv¯ÇãøF/L‹²Nn%Š§,v¿bÜ„Ä”qN\^®úƒ$8åyµ@ÞLl[Ü׎©<\«yK[_†|}hÆÞè@yô)vþq¿¹[ÜZ£Ûøh*ÔöA2K¨ËG^¥¨}7o³Ô„«Vd o¤&Ýf²Z或B8Ö˜lP©:Ó*MÆ|X-ÌŸˆÿNλG9l…?°Ø`,ÉQXPZž
+Ž§˜S¬ò@Í^¨UëM33¡þûÁoMäã³:œ´G^uK<F€EöÖ–ÆS’­OT ³¢:>o“ ²?ôN¢gÕ=ƒHÔ@П'4TTL€£E®m<´¯Z"Pq¬uÀS¤ÖdqFÊ1x€OGõAϺI2x¬ü|`Ýœú·¼9(jîs¸S/µV¹T‡Àõ”ÚKßõÖÐõ‚£ep¨"ÈØ«2z䌱Ûø ¿³7,„ÕÑÊ\hAmív>/&Þ¬×Ö8Pþ¢Xó˜´ÑtûãÑèßz&™6Ò¾Å;ÄÝvH!³—ò6
+ ôS'9³ä÷+ž„©Ž`å@•‡ç¾PR"{¥å ½ù)”cA÷}ôën~§es#RôPG_¼Ðpe:B ÎÐÞÝ´„ö%¾µ~€B¶ös?~mHBo›þ”…Ÿä¯±ªon*Q"F¸òÄs/Gù–½J†°(³M-wbü` ‘öæ“„Eh0ñX/}öñ°8Hx,ûy⟹Â/ _p27¥×'›ST³¹†Ák¾´1@°£÷mäÒ9'wÙ‰2ÛÒR ƵŒ³Ç¤
+) ½Ë)[ö–±kÝÐ,Š#o›H~µÞ
+¹iÊ]¶ý|¢Šn¨OMK)Óœ¡x¬{©j…W)»{,åZ6e8íN7­ó“«i›—ñ¦¨»Íá/Çwæ÷¼õx—á„Q¾„[!¾ØÛß{3ëå¶G ľíèµÚs`\¯bù òŠ&­<@ß&º#üi·Õ¦Yi{ˆ¿°Ô”È9=‚ݨöÔË3œv„ËRp.—)’L¼ž8fÀ¿!‘h™1ZïˆN«·ùa‰t/ÔÁFÓh1Çî‹èu¨DIt(¬™SíJöK‡8äw\²±jUŠã B.á[{g“ñrº'-b¡¥!P# w¶?¨wíãPÿ£#ó¾f6^A½Mƒ×Œô» ø”A/œËW›¯]¤Ú¨N(á=ÜíR€w¹7ôéå€"§\§ý®W™¡ø¨ˆ+E3û²˜„äæ‚Óؽ‡Ô¦ LÁ~ñCÞhPˆ)Í÷)¥ú»õëº,Ç›í7bV‡a·á“œB¾»ÎGGHÛo#Ö=Ì+ ŽÀ^‹¢Á"!Áq)Sß—moƒ תeŒ š¼‰vzȾÂÒ"mžÜ
+V´ÒyîÖ‘WÀ‹¿×¶:'$d°º%ì¼çÖvE ûÒCÜi¢?ÞoŸƒƒœ Úšù'ÁÂB¬t¿+ 6™“ÞJuuV¬½’>Þuíã­m
+t kö{Ü_ÜÒ}Ù>ñʼö¶ðûd“¿ÒP:³.|û³Ž„v–Q·.,(\……Ö†¦¦‡2Dl¸Ÿ®¨IÆñ:¥â)¾,¹²2’&`Ð7Q¿äy³œ”H §:'Qm_RÍ»€ç»¿¦€Xó§¥íFáù¤rßÚRŠù,}»R¨ÃÂFŒFÈàÅï9}ÕŒ®ŒÇ4ïb n­Å2&9ÊÌòBæ̆C¢œ7{XB”M¾ÁXϯsW/|nn@ªpŠ´^>wÚ¬U¦ 7ë+E×q³Ó:%ì'.£r;°»JS»j6¼´zµLfßÐøÙ«¨ñâ–›·ö0`Ƭ(vä--’‚j½À<b Ó`©©[ySá™Í6´Twh. ZNI©ôœ#áODüæ^sÑ6Ìw€å°¤UÄ[ÿõ¢ŸÚÛÑ0ç4–¡Åˆ ëZ`׃ªJãßfo¤Ì©éòi Oz-ôæ-
+endstream
+endobj
+126 0 obj
+<<
+/Type /FontDescriptor
+/FontName /JJKGXQ+CMB10
+/Flags 4
+/FontBBox [-62 -250 1011 750]
+/Ascent 694
+/CapHeight 686
+/Descent -194
+/ItalicAngle 0
+/StemV 108
+/XHeight 444
+/CharSet (/L/R/S/a/c/d/e/i/k/l/n/o/t/w/x)
+/FontFile 125 0 R
+>>
+endobj
+127 0 obj
+<<
+/Length1 1398
+/Length2 5888
+/Length3 0
+/Length 7286
+>>
+stream
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CUJHND+CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 58 /period put
+readonly def
+currentdict end
+currentfile eexec
+ÙÖoc;„j²„¼ø°Aw-åÎ<ï˜øX2-Τ^tÅEÒ_á’SœÚKªFÙÄ1F^j¿NBqøžÞ×ó{ä³´y4ö-FègbÖÿöÔ“{÷"Ö¸
+’w¯àÇÊÈÜÄÁ‹Jv‚åð$†tE;ÈD4¯VÜ¢üŸ§vëš{bG@ëdÅ«ß)–ø²Nòhäòë]!(”À7h`”fŒ1ìzùpÜB˜r £æŠdÛž‡·Ç>“÷sVÙiHÂÞ­âkJ‡…KyÚÔÃÑàüuK—I[ÏÆ„(,M’=þ¬äì}µ%½vf†º'°–äE+œ)ê}fƒ¢Æ$lÜö(…ÔW2[8˜h¼T>¦Ü9„º€X33 vi˜®U/µçÇ¥Yö{z4þ¢ó¾¾B&Úq¯‹nŒzà³Ü|š¤¡úï1/É´c™±ŒCzwmáö|¯xá]LÇmo¥}­z¼m5íà׎Œo: ž©ê¿Š„.º‰"­ÛãĈõ¬d
+v¨Œúëzýëš N
+p´zªP;VÒ¿g6ǢŠ>Ù,ÿñ>º—O€J4mA0ÌýR3¶Ö¹*È{¾+¢ºä9á…iuåÏM”äO@h}-Û(Ž ‚Qȃ钌¼Aàô¹Ÿ‹)Ó±Ôí ¼¨=.9©çœëô3góœ=[¾_ÿbÿo_ðBV¤ßúƂ˶òW"í䶛ÂàaòéoZFsO‘)„”¤%ïd2ò¹wŒN»­ÓH>õD}õðÛ‘ÅY•¼í´±1jZ®ƒg¨¿1b¾¹œJªa|`¾h§b)ÁwYƒïc[&0j”ð²X
+˜hS·…¢&}pþ-ÒêfÖ^ aûÖ_
+Ål4zVéóènRóà¿_e@¯³*z|–‘•Wi.·9Ì)ŽÇ™›B†SŽßs3Ïk ,^Œb’šðz˹a Ë…4_BãêÜûÆÎú1ï+ÑÚÓìWµ²2ÊpoœDûœ«‰¾x>Êf×H³ú[]TEöÁjšRÈŠ~/+û ääê š˜Ýl8äzXÜ’p²ôŸ›H!V÷Üd¶!¶€;d4¢£T¥Ù5:,ãúv#cK*ÜÖ;+zÏXŒ¯z k ¤QÓßwÅ>aqÆb6å1Iú¹ÎK&…?eÐÕ÷‘=ˆêf¹¶<ðjKüŽÓ$k¸löÞ%_ôm$]™9ã-ă åkaLËÜù˜TÏP1{Ðn ‰ŽÕžFÚ{bT½Ì¼f†âí ­{‰LÒë&ˆÀÀ
+ÊX9ãʦàú÷îµß>?Úä´T ØÈoîRwšÓá:
+‡›e¹ï
+/ò ‰ºèÁyûí¸}„ ‡tæÚX¢ƒº"7€òqt„àfú}ÀæÑ”)°†8SRÓX•y<œs´2j•O^¼áƒº%À Uº…à{>Ô/ ¬¯©Cmoßå0Î%¬}¡pÛdç{h4>ŠŠ^wD¦ð@eQôdÄêaidYÑ^à@¿µ?p i3;²BŹAeûûÇôõ Ñ"­Kcéæ_
+
+ô>üÉüToÑ=¤*¸ÉËúy¤€Ù#p$™UÎa¦€²€5Q2Z3:·È<YGÑ{1øÿcVI°6(_rM"ø‰t…d€€ƒÝªNë†2]ciaáö4óÿ=ïÍr™»vyÛ¯h^*ÁHKÙ±|\ôØY‰wµMë£3,*µÄŠv5}.ª¥9¦°Ÿ"6a¼´eYéš}6©2}Kƒ0î_V°λŒÛÌ/§6À~ˉ0òkB’ˆÆþlî>w’ÞXê<âHY°Æxv½}€äF-$›"›b!(µzkDQRbt;³Çéj¤¸Äk äNö4­Ó4ù™ôß³ÜÿjA*›`gÒ‡Qª±² (¦ç;Ë°Q U„CpbèÍ@;øÃC
+¢ü…ùù¦?Îr
+²w}±‚HH/³*%úÛb•k“¯üY±yoxжj®î—x£²S½˜\yµ)n?ºžVè‚J¶ù+Èka… [zÜÌf˜±€—×fI*Ý[f=M3Ó)%¼ñ©®“qª®¶O(¿\-Z!ŒžëJÃ
+H)rQöµQ5ö£TbL}/>Î5kì÷=Qw¢Oþ75üˆ#:•×,¢U_LP?‘µÇÊNC®æSMöÕiïÕ Ú>•ÆÏ÷ˆå åñ3*×j#WÃDê8è‹$òÓ|òž!·FŠßÊÌŠ¸þéÚL“;_
+dQ–JI$¶º–ÃYÈ(ØmRqè÷£J[’~fÖ9,–«6³â_1ú£Ó~w »ë©S,?1?ƒ óÖAÔÅßyl(‚ãL¹Ït» ïUîìè À«m@Ò*ûT9ÛE¹¥WOg-Ú–ÖÁŒ°HépæaH"\z¤ýÂ/ÒÓ„EjV{1‰ó1̃T±•VLýÒ5yWK|z€Òóã—ð|Ú¶t¤jBdé…V=®zÙ3ÚÀTÖJ~¼æ[²¾µþÕ3`ýv þpnrƒU MVWª›ö.çY-t虘鰭²2zÕñ‘„¥
+<S6t1µlÄÝ`»bšæŠ
+’ô•|šº“(±4Ÿß§(éðB²ý-k¼»¹žÆ–k¥áôû»K®m‹Ý@Þ_¤A'æ×ÀZºÓÀ,$Re mÔD[­Àp~Ëð®ð‰ XÜ“Aý8mAzÙõçœd¾N;"ä™~Ñ’¨¾pß¼ö—¸CG¦€“NП°ŽÄß|; Kî6ÀAß÷ÔÇ``ä¾j:/ 
+\ÂtHCêïÊù™/
+Dáå »Ê {ieÄã ™¬<¡¯¾êÏý|Â.{—c°‡lø0Ž£ˆ(§ÚC˜+î͸ÙZ¸þp$ &ña§´$Eª’FHm
+Õ’cuýy¹URkàQRbµÊ‰«Í¿†„|¼XPÔ V½Å(ézÞÑêm{v½ŽÃNt*ŸÌñšc
+㟈+;= ›GÛz87Srp&†²$‰kõäÍ@㵦˜‹aM€ˆÂ–#ʲe|û˜ôb¯â™ tL‡8ѱ0—ʈ|ÏÓê¾O)ßqÐåF•t –OŸ£=x²¥ºÅ‹Ú ئ_æÅ=ÿ“ý+—¯ÒO9å†A}Ì¡\ áy^,=x_ŒÁ«U»Àß¡6O‡jBÚã8?…?„çåD»
+÷½ ­‘œ £E6älWr‡<4þøMÊ_]Tˆ™~'˜v¯û?Qy
+jà…О¤á”Á ˜|-°cL„ô´TŸîz~ÈœÿLú†7Ô¥­G+ZÀËŸBŒ±ßŠ¿ê=¸*&ÌT7«8~‡#˜ÒàÆ¿l•Â8¶²Å½¸hJû·¦Á ¢(jÿbå*=|tŒ,cÒ“0Å0l·ï°´Ís<Vºw
+«©ÇXw5Í/"Ëá|k™¨(e$/ÞJ«¾G ¸à“ÇõÁž0Mõo#hpÑTé%Äòå-R (>¥*Îú Ò¨ìÈ25ˆh¼èïº|I.5uÁ`QP£÷Ö‚)`ñ©—QQǶé(ü÷4“5•³^§ƒÞ„‚M߯oˆ5G*`?ÍRFM¨ àÀþÕÌgãŽêpÀfÚßnþ
+y¸q ´BÀ¶$Ã@'ˆÊ6é!Wëà
+ÎúE¶ÆI¹ï6ø,ûITÁ$‡þÎy›Ù‡î“H–pi¹æÿVchž]l&Ûß¡FÃÝ:¹ÂO¤é$#ÈŠ!D:¨
+uÙ@ «=0" 8Yoˆe²Æá#Õ¢&@7²ØP"ÕϧÙ_M³MdQ[(@Ü­ß¼ÔÐ×&àéÇu³6£À€}† újÙ—xëÛî_
+endstream
+endobj
+128 0 obj
+<<
+/Type /FontDescriptor
+/FontName /CUJHND+CMMI10
+/Flags 4
+/FontBBox [-32 -250 1048 750]
+/Ascent 694
+/CapHeight 683
+/Descent -194
+/ItalicAngle -14
+/StemV 72
+/XHeight 431
+/CharSet (/period)
+/FontFile 127 0 R
+>>
+endobj
+129 0 obj
+<<
+/Length1 2521
+/Length2 21207
+/Length3 0
+/Length 23728
+>>
+stream
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /GMFNUY+CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 71 /G put
+dup 72 /H put
+dup 73 /I put
+dup 76 /L put
+dup 77 /M put
+dup 78 /N put
+dup 79 /O put
+dup 80 /P put
+dup 82 /R put
+dup 83 /S put
+dup 84 /T put
+dup 87 /W put
+dup 88 /X put
+dup 97 /a put
+dup 98 /b put
+dup 91 /bracketleft put
+dup 93 /bracketright put
+dup 99 /c put
+dup 58 /colon put
+dup 44 /comma put
+dup 100 /d put
+dup 101 /e put
+dup 56 /eight put
+dup 33 /exclam put
+dup 102 /f put
+dup 11 /ff put
+dup 12 /fi put
+dup 53 /five put
+dup 13 /fl put
+dup 52 /four put
+dup 103 /g put
+dup 104 /h put
+dup 45 /hyphen put
+dup 105 /i put
+dup 106 /j put
+dup 107 /k put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 57 /nine put
+dup 111 /o put
+dup 49 /one put
+dup 112 /p put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 46 /period put
+dup 63 /question put
+dup 34 /quotedblright put
+dup 96 /quoteleft put
+dup 39 /quoteright put
+dup 114 /r put
+dup 115 /s put
+dup 59 /semicolon put
+dup 55 /seven put
+dup 54 /six put
+dup 47 /slash put
+dup 116 /t put
+dup 51 /three put
+dup 50 /two put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+dup 120 /x put
+dup 121 /y put
+dup 122 /z put
+dup 48 /zero put
+readonly def
+currentdict end
+currentfile eexec
+ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå»
+ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+
+}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¥ÜÆØx¹<¥Ÿ ,—Ü-.è2›¯iR‹n·Ã±vÌÙ¾1ä • „'Æ䓱©·_r"O¯»_‹t±3keè¾fBݼöVÁfj—Ú9Ò³ÿ Ô Yh뀸Á{û´qÝÉÊÆ-÷†—ºøÉ·ÊãÁ}W§?Å?gw1*Eh[ŠÜÛ:›—ªtÍÀWeI,Úv•8üa…<{‚ñBú1â¤00Z8ÃÌî5 |ñŽ}­µðN¾àÔ×lw]ƒÿƒ6Nÿb¿—ðð¤h3E`œ†(¡›EÁ‰¡Þ'Q;²eµÔƒª/ðà­.D©yL’â5ØñÇ$¥4IGÃå׮Ɋ\‚yjù9£.îV­U»5£Q!äì‹-ÍèµÈBƒ…Ä9ödèâö««B^éoVùð­wˆBÉŽáT7„¡‰¾R€ŸÀsO™GA‹¦÷ãÕà b#íTBv!m·WT=úãÍÀ¦üw,ªID%'¥ÙMÅKé<‡|Ù]ØD¥Ã°€@‰õ·€2²½Oø(
+L2
+#VÐÃÐÀëÕÖHÕ“ó‹/©ÊF×gw"F5”wñSˆ$|¯ÿoQ<ÎçΗ Ñ`~¶<10©|™ÿ<»émï´·ùØœÞÉhðÞ „߭逵µ°°›?É`?ó7–ë _Ì [•¾ó8xP<41Õó=tÏøH
+yÛ(ŠK'†Ã2O0ÓV—®6IP$$lûéú¬¸-“à[ÀëÔeÍÉ‹øÇKÌ×&2%g”b¯z‡÷JÌ™,uo~M¬2ÄzÞu’™ ‡Ô6*š»*¦ Å «Ñÿ9¿Î¨ß?Ä£K”c)ËÏ÷á\ðgŸt­&?©ãŽÏÄôûnTëw½“æ¼$ dN\C¸›¤ÎÚOöÖÏ@¥W2xè8q!LdÒ®ãoë~ä1V/ŒÈB=@±ôúí!0’ÁY¡ozù$íùÐ÷Ç€%Ä­¿ÑÉwáÞá2]oªÃß ®_ý?IhËuè¡BmîF:µ1Ø–d©Èy6÷‚ÀÚÞ F ¨„Ln5Sòw&©-ëÓ°¯žGzø¨9ê=È'’ä(Ìý¼IühNú´Ö{äO ˜1LvcÕmiµ¦À&È"MìêmÄ@·WÕ†­¤­mÜb%0Ù˜*ú`šëÄ¡“ß“/fõÃl½%PE2¡:VA)SBL/æ<ªî5ªCžA£ß÷l;®{ËÀ (#ºØXnF’"‹
+eÊ,’pþÚƒrh“ú¸“uñ„Œ`+l{÷eQ÷Ö_@f63HßPavÑzUÍ_°ŸÍÆZ«1*ªäǯM+Çbp€†;{ÝªÌ ­Q3èVV;Ø¡¼ÍˆÓ ®O.Ožài,¼88«ÖƒìÆ…gŸ=\=à@"FàúKFøT¡bû˜‘¾VŽl(lg®ÁÚbÒ­Ý!¸èªÕ–ÕË\áýùa4Q1°Ì~ «9âqV¥¸§Ì¥ ’s^kí¢sdŽ›nz‘Á­£ç¤:ÖLžz]Žðªr Š¥¢ªƒvND¾‹MG79$ILiþ&“AØgánl6y‡J FOµò<K åëPͤOŽAAÊv†“ÞÒl¢&çµøYå×´'ÙÎ
+8ÇÄzAH¥ÕŸ3
+y.ò[ x¹âÝt1Au­ª pAÏ.[4£SØ2bw”+c t©¤îNehDÌ²Ý Å"™!~ä«;+7p\¤wxYâG
+^Ý5E®ÍÜè“Ÿ_ܹ–Gµ÷áðé€(A l·Ñî1`Ü8u.óu+îãÙ"úó>;ð,zÉ´Ñ%
+o»¯ß xÈ0˜s‚ÖÈW1FxÏîÔè—ß gþm‘µxVyõµÚÑ"]#z~—§pvòÁ †‘™öØŨ.rB9‰$n¸YC­C1úÄtªd@#÷¨8
+ÎFUE¢ìóþŒðÓKƒÀÕHŒ'²µ>ZQ@ÎIÙàt%£äÿ–œÀ[¨)7Ä&¾ü hÎn ±éY'ÔÛa¶TÃñ'XrÔß™/n_n•JL¡ (–@
+²ç ËК
+­µN{KFµßÛð^k›bÞÂnê~í`L¯£]Ûa¤U¡¹Å{üˆvâïLßܺæ¢4“ô1˜$rmAÿîs•ÂÆóònZß*™»=©÷Êsõðo›b@{‘yÖ !CC‹{c.WZ¶ìïæ0n àbp…gsP˜d$-Ñ\ö¯ÎÔ›&L<p¿¸l |¹~›´8èú.ÉÄ–¶+fÎÇzy¨vƒá_²Bz®Ê‡Ÿ†ô2?vÔ¼êó¼õׇÃXa£!8Õ¤m
+–Û‡gwÙ!
+ø7åF Y@yS]~ñ…Ÿ™­ùloBÖ鬓 –v!0ùè·ŠF”‚ Ýßúî©Eßa[ˆ‚føPx4€H… |êWü´;ÛGÖY"3Bô5ÙóüæøáH\"Ó«[ø1–Ιíc5Nø9ªp>27J»Býóµs/g(ô©xQ,t>[®â8Í“GsŸ:R$9]6&ˆúmy®)iµŠvÉéjÂöW¨‹LÄRB^RBal¿ëx³_ ×Y:²5M§¯ßæîÛ»­µ¨û/j¤…àÅÙ¡!}Þ`”îëD&W€ÈªäÖQX¹$HߧçÌtI¤­¼ ÈÕ.ÙYñ@Øn«r–_ôìnÜ ¾OüãtAN-L n–‹—?_Þ^_…Ûg’µ~žÆ;`°Ðí¨KB‡Þð6eĶÁܯ‘¸
+>”èl¿Qp‘†«¢Ó)À†¶ùµ¥ò/;S' ^¹õ:ätJ±j@êx«³ƒE(0GÊ;κÛQqŽ©Ç”kT'¹ðž;ž<qnØäutlLC1“XÄ 5Í—
+q‘×ÄqÒ¥?ä‹Ðz1CS+À£P1Ã~eÉS2Í 3«J–MÚÊ„•l(ñÓµ$ºeÉQå/mpN5K7WýeŠ|)ÃÛØÞaŠH–­àZ¹Ó¯4uU}¿ÅÄçÃô¨U Ñ!Ë–Y•ìê
+øœ‘> ÷ÉDHj‡¢ãsr‚xÜ–
+æ.Â>ÚÐÖ¯¯¡Ïk—®ÚlÄ;&–¯#<çÚš°òe)fÑäFz›`·Ç·?¢ãIc
+$ÙªÛ'Ch?5™<„Sý»íË°Áñ@“­ ša¬´€-™AcŠ†éloW´M(òr
+f}cqÃ+5Áy~!ýÝ]ÕúøÀìU,­¾t )æi:Hò ¾O…ÄÛ(®_eOéFV¾þqÐ>¬uèàÄ-G:ˆáñÄzƒž…›HZ\%UívØÀ
+à4‰±1­nˆ_ûD>}p+æfªg9h$ú¨Å]@ïMù`Ø^Ò¹GKö;5«¤wÇë»äIrqïA¨3fA‚ßYiu¬€ÂÝäÃò½ÑïìÒYréDõö:ÚdR¥Ý “At ë-ª,)âºaª¤ÉºhâÏ9[Ô§uÿSç9K’„ÄTK©aX$äwgÉ“¶Oƒ[âx‹qǃ£yI(–ÿ¼j5L§ªIÀcµ}|hÀ$‘zDâUÏÂw»Y+½ý¬Z:ÎïçÄϤŜ1¿òµlÙeÀÇ`uø@|¬ìÖ܈贚Æ^Ú6î/žyÑû`að¡¦È Š[¯ÎŠ`Ò¾ÌEž£ÂwÁìa ¡zæiòLa„}jÊ°çÉ@û£Šå}ÅxæïW¶™ån‡sŽ˜0n*{¯l?Z©zó‹•Ê‹>¸ç8íp-LÑ&È£ûïK`> `´¨%Â`–¢îÝ¿Ésª?ºvË»Æ^\ü‰*’ÖýQÊá¨Nbf…+Û¼¾Þ„žo" Ù§U ¼zÑógêgÍaäŽu´F Ñ™<ÃXúyݸª¬Ðú*¼Ègöÿ4?X2]Â4¨HšÍ¢›×òš^ÁÐqLeo²œ˜Uíó~ ÷¥’’Ð7>ì)Ƥó™Hnžº¨­A7"é{D†R</2týMÅÇôùs妀ûk9IXô’f£©œÑâÿÏýû+Ù¦XE짖È.êá!ÀÐÃ"*JÛS7ÀÚY¯èïjÛ &ÒÙAèJ +«æˆ¿¹»Ú=õ–N¡å$6v²STY‰#Û®L—ÿ4Χîç?›
+¶ØtíþþYá5`F~_›xÁƒUž|‹'X’µÇ‡„G@UÖ6I \™„çÜö>ü:ÉV_ûÉ>Õ¦9*I0}Óµ\"{Øï3UÚzÆñÉuäFœfÌÙ¤…õPߨÊ)Eˆ8‚üU¥œúw)®ðgŠËqÔ:àdj#¥¹¯ÜˆhqÇ ¥œ¼so -¹@’
+KG7ã"­|QЇæªúå Zòzs|…‚}£ÄLÕ´SŠ¥:€fªÕm¼§ÂA3ïÖðS 2Ä=‘Ö[³d·Ø“üJœ\ܳ­òcìÚ€üù|Ët¾j1ÑÆ›AçrþŠ®ÀÑ®þÌJvÂ,K| ò´…Ï•VÞœ
+˜ü›Q„´[ÜÞ<UÁX:‚ÚÛ?c+ö%à± íN»ÜBS59†øƒÁ³ªž"ÃÖÄœ³gèTé¼Ýä^b©WÅÛ(²*$ Œw¬øè)ŠŒ“ã…^N!r­ÃYz¥<¥†&r—;AdIC`/ˆ}
+-j 6z\ËlòÌýŠœK4*ÍK-×ÝW¥SåP‹Í®AªG'ƒÄÄÜú³ÐÒÌEï2ØÐHP7Á¯íYäWÉ-²FÉEM‘×]šÈB‰âŸ$
+~Gù E;ŽªÈ™N—ÒF¼ÀôädoøùhÅDØyC·H3Qnâå
+Ì€ä,Ìh[C& ¶ÅŸ
+õöÖ²ìö¥aY혴P€nÉ
+Aˆ·×âN+ú Z{ª¸-2—ÉÎÜ ùf&katãim).?5Ÿ²ß
+Ú~-l—Rç5nê¸à6äæqå%ˆá^
+Á¤ÈE¯#볫»Zü÷: 8F-ÀˆpHvtÄí1˜È,W™çÔ°Æ·²ï£2cz쇌('³ß
+Ž² ÂWßC¨ Âô«ú¤C!¸=‰dR³žÚuº´­ÃÐp•yë®S1dIXëâ/)ªöb)ñ²å@¡;+«7ô{šq’¢-
+‡™¶·'@¬’Ì/…(òMäiÅ´nI‰4*ÂœÈx±²ö\Â;Ðÿ²Ns¸z—ăg3 Ńiè, ü§<Øì,¯9¯7ôj²®ú“Ãð¤áÙMåhßÉ2kIh
+4S æjÒ‰åe_9?Ä ºaGæezòy^Ķå*t‘øÞdM¤¥u®·Óß:0_ÅIôןKÞSP.Õ¨‘¨%Á;(7–©­„t$´æP…FÃb#£±|Èñ)¦ÎÏü\ÏHÊ)ùÁ´p|›%¸¬n0³?úÛB+T­ªclÓûðö`ú}:]Ê»2±Ò îxöÔ¤^Ÿˆ*æ „ÕaR0Ñq$e³í”b(ág^É ú³Üž©á[|LuÀÀÅ:6”¶ÁÃŒ'ɇªƒ|ÙC¡äzn{ÞkážÊc5{Õ(M)Ä"µÒiFi û¸õ™0g*ªÌÅ÷LöÛBèÔ(ÙÊ(¿qI`f Ûž÷lu¼ˆšŸýYêIWh@ZÆt[ëiY±Ó£—fS¯Ù…N6OÉȘîoD.ÙJ
+UÕxœÖWƒÙ—¯Ð‘Ä=¨ž½ßÑ7ó/ˆ^!ôÍñO
+ê½VÄ·¬¸1XJš{«E ÈaMO±ZØÿK”¶Ye
+-´Ê¶ÆªïØæí<±A…š]P·J&N;åYNE­è}È×­)Øåj#”‚W¢¥ì?—Ì
+Îkdq¤º´0.Pà,÷+ò^šŒŸ¨Ï{»_ìÔ±|ƒ—š| ÝÊ{ŒÅˆAÎƉ¼Ú¿÷Û¦-n¯(aªÁ}.Æß—ê%Î]ëóy‚ÉL¾7š¶Ûž›ÝœªMÙÜî³¾Ù ‘›ù$ÐmGü^à%<¸0ŸV®¸ï5™¶ÞÑÝ_ß!åg Ð[KîØôSw=Õ(è ‹ËõY£ ÂDM06$þ³dnl/¬ÙA‘‹eTß{N—¦†»
+)
+Òbµ#úõœ•?;&°>#ËTSo½¥Bì\+ w˜Ó€‘£ÎP›– ¾C¡ÞT§ý„Ÿ7ÌIJ÷ûË6_oPq2ÑCéøËÿ†Eð¾%@Àúê?¼iø]Ò~ì?'-”·+‚v=<Eók±êqŽŸÏâÂÕGñ·óˆˆ˜EF>4™uÕEw6ç89T
+ÒdÈêŒno$jà6)§.ÄFˆry9‘¨BL½Šxô˜FÔ>bPt’€
+HÎ%º›ö)$Å@„èžÌ²>»zJ2ÉÓ{Ì.ʧp@Óy‚$ˆël"ï«CzH±×2)°Er½é ‹ ¨E«ÙÛ]ü‚«àn^±Z
+†^rM?½;ÿíæ¹8*3
+¡$ʯ}qyˆàlc‚ÌžF£|íS³5Q¡Ç…$¨Ï­y'J0–äs¸™2ŸphÚJÖ÷9pˆ¬oNÒ¼é¨h^Älœ)4Šq8,t¡9­­0á<
+‘AU²«ýRkÎbÏaP;€¢ÿC'´ >$ñ9oàÇ‘,?¤ƒØ£‡*t㶕 Nªu ’2º4 ~¤7û(ï@,’·›Šþñy3÷Èrê^¥Ù Ĺÿ9.þ-úÙ y79*oÝÔ§Gèmùe­Â´{³h‰‡ç†\Úú¿U`¬¡¯¤–Tf­Ðn¿®^}Y¼€¼¥òRßÄŽÔ•:$NZç;˜ø ;*ïœ6Ö
+Aïnñ¢¾.oaÅÅ«X–%&,¥W‘7»'+(ÿªëPG‹h»ÔV×èR<ØFÙ íZv?lñ­fŒ»“„a³A
+Ì„9 ðYÖ,@#g†è0e²kCßHèòûò>äÁ×õ¨^Fy°¸w–¨à“D¾öÄ¡sË©üüü![!O‡lµ
+ëñ¥máôæo j¬N¸áRÊ)ù‹L.œ¦u?ÒI‰Š,Ó`&¼“e‡Ð%êmÀþ¦7¡ÜÚØÁ{s+7 >ŠV2u–l„2ßmL¨fsÃå"¤‰Î
+¿½2`2!|X]§Ôìe„.¢Çi[
+
+߀ÛÝz¯¢`)WÈÀišä}êÏuk5.$‡¬_e­qÌkßY æ¼,cPzò¥>cÜÇBÙtÊ“íQ¶¯˜!WlÚ ÏY;uK ¾n6%_cúnÇ5?‡µb ×®¡sO` QÓÀÕFLTùë9N 9V¿[{b³&ò…ý¬´Ë|ØeZ7º"„?ø.°§ºæ¤æël}þˆ*&ÑwOÝ=%лKÂÌ÷’Þ5¯ƒ°PN¿Nlm“àâžÏ3Kñ½¥ÞÍã\æíþÁtk9EO°æÆ»ø2â4Åê¶/m
+gÈ$WÌ:†!\Eù¾î¨ù€“`‚‡zß’fÖm M°n“úÊ@„æ"϶àñâmÃÇ®±/.ÓüS>H^Tœô# éL4Uºâ¦Q¹‘˜6Bóþ.Ék.ž=‚³*Y>Œñæ”-/&÷^îü ³¦&EâUçAºÎÔ
+| ‡>S¹âgß–ÒˆvÔ>l8¥:fXdï¤qorî¬Iµî
+þ;dh7ÐêÞpΟ«2¦äØŠª¾! ü+¿£–è¹HªË+àù*I陼æB\j EBÍ×/>Ô+áNÙ&
+亊ߨÆWG‰“Ò«0+jKÂjRøÅUA½ìzš¥i”óoÙ_ïh€ƒÀ^¥öó­^Iž8ºYP¼ôŒ ÞHðulK×Ì!‰DNN·ó#î6/ˆs£k> @¤¨ÁXj©¦i‘©ÿcuBèÖmbÈMè1´¹øŠ5t§)vÖMñ›8î‰3YÎtAÚ«B±¢gßÄ.[4þÒ!'A±i!Ú]ÒsúÍúk³¸j‚·²î®³ AÕ¬ÑÖ"„‘2 9¼ž{õ”[¬J†É@½¦90>–Gh’6ÉɉœY+°FùW2Ò4Ñ:ðÇß(±‰­ô½>³t‹®#¡•ÿ£w•¹ÒËD|PETL°R
+¸D ÅSX¾«h_&_›0sõ-צùôŒçà¥Sív¯'y ù£Ë‹­¬ø@þó¼Í•xë¡4>Z>1*é²u’Ï“è8¯à`A~Ý ø-WÇB>µêŠØɵ.¯¶ïDßóŠYG%6 ’W™Ý&èo‰©6‰YËÕÆÏZ¹»r?Y{ïB»ÿéÉûLöb%Q6œ£î-}oQ _‡°Ü QÔ“Šz*ò0ºÌ†ìÎ:ì+G³…-ãgG©ýe”ƒˆõæÀ¹ª‚ÅKÒ ÛYî[ÊÕxØMã3äBdCO”x"èôÆßC×äQÂ%Çk[1Áý
+‚…‡¦ÕÁ’Q0#â 5úÞñŒ@âg*ŽK#ØÁh€€}†M?=4Þ<æHéQÿx°ì_ÍîR‹êë<®Óß ºÆ\geÞ³
+¹žÎsíG,¶ºe«Ï½þtß=‹km7Ó’”¸å1ûz Œ‡-ÌúhCQ¸ƒ€€-Vã E¥ë­Æûxs.4þ0¸•”ˆŽ­ Úó4ã[E°¾Ñ¥¢Xᣇ]ÍRÁÏÕä/Zâ‘Ì”sÿ?OT#>ô·˜Ÿ™gƒíºBQ²Ê Ê"ÛÌ9BWµÂõéû¤§P¶`5©ô{=ùáŸs]|¸-ø ò¾_ x6ÛùáýÖ“Õé% Õq<[Š`2‹º¸û "°ç±’ÁrâµÆb9Œ´€²ÆÀͧî­G¾K’í}ºÖÂÜ©&Å(øDzÀËä’±ŒãI©ùú¹»4üå2‚°ñØ’4ü]ºÔ]Œ[F‚Å5[fw(­âDŸ#õhüf-€b IË<õ2ퟯVS}Gã²Cßüì ˜qáêÊٜ跜u¨ij<ìÝY SÕˆ%Í®úÄF'ÕêGÞ<νÓöô¨9Q”ÐñYvÏóðÁf°¾õ!9Ä©7NÍUdý©¯e™Ÿ—f†
+Ó9Û™<Ï/r8µ,³ïæRéÛ%ñ¤ :”'¶üŠÑp˜¸v"ÕÁ0tQA®}w`Ì«¡#èLB"Q­ ›AIª•aÜGÆO?pYŽ‘Ïçùs.
+œÿ Ý6VP í²£ 2:渎
+I¾} Òu㎔õ’öR}àÐ<Èå{¼
+˜XÝÚ〶ko]¡Û^í‹þƒ±nOÏ(„xòq}ì‹.J]žÞ­-µmàc^ãiª» ˆï_<¿Æ잀£mCŠ;Ù€ÃIär|Ž†õDÞYùôS·Œ|K.ۦͩϞ)„¬PÀ-L¬¢¾cë¦ßü2É›èì $Ô`Û¶ãwvÛø4¨ºc "pÙÕ–äy…·£Öà  jkóDµž&‚q0G¢Ö%ðë¶úñg]ŸæüÈ]¨Ó—ÖÜ¥uq‚ÍdL ^= Ñ Ë7Žâ;Ó$?LXÿ
+
+#?6ÝÀ>öãXÇé"vµUÌŒ
+f*(×w·^ëýa­½,põÿìCU`·Öý\SÏ÷˜k¬¦_‚s
+þ˜Í‰· 6Eþ4sПMòAÝìj™Ä×ûÙD°Õ¯–!Hò´ΔÂB˜Øp¸K^åz„,šno}ß¡ì=IˆÔíZ²•ñäÖZ¨÷­eî+ª}Nµ[Ø,;•÷§27̯.P%\_á]Õƒä”úÀw±@Li(–)tÚ*®HÊŇ™¬÷iyÿ‚½úºó#Йöäåð%äT‘OˆY¼0?¸%K ÷7ô¥Þ!‡0Ù‰l!ç²=ê㇤Ïj?Ýa°‹ #K²(UX9*%½^ÁôHfÕ4ÅË!üiªí0(6,sèBõc<Áõ¨G‹7WHÝ ;£=pFÁÇ]îWcüœâ×Rxš¸ªÀ$ç–©.;¨/[ÒŸ¬“
+èš-®Bé_pâU–g+þcôÌ!)êêš}Ýžxt$—¸$¹É[œû4×5íì¨pš
+âö;ù22qÌ´'|‚*‰´ÞúšÜ™¼ÍÝÈcÚjI(v˜Ó¾=h±¶ƒ»ù5†
+/Y „¡\
+ñÖêLkš'®¤B¹1*á
+ñ^ÀÖ?-våŒÁ•9†â_NËò÷V‰Fæ˜;±|iÿײiÒtC®.žª]cêQ&MÚ~ý`9£Z©Oƒ{´©0&Œ‰òº‹
+šnZŽ·°Âè…çq‰y r=òóë‘™;Ë#ôYâ<É Ð$¼‘ªó DœØÀC÷°R/Ï–òûi5òýnùjÅáL@ü×G¤†˜Ç3Ç9¿ÅGÕ)ñ”h«—·Ì^~ªKúâ;*Å2ˆgç¹¢šhù'tLëù—ØÚ²¼¶iHÁåRV°ÜÍ[qt/ÿ‰Å¸|3¨¢¢èYªVêUÏjé«¡ÐË×þƒ+×FÉkUW«Oï»Ëà„ìžÍÓ"SòöÄ
+€S¦xrÄ@v4¼h­ÇVS4Ýui"\ÿ”€ßm`juø èWš>˳l W<b>9æ3-+c·„p›jg†²YOs*:µ;6ƒÚ éP×¥î9`(hž¬ýƒÝ?5WiµLñ”iý}Óŵ
+­=¥Oô¿ÅÞBœ3/¤P%v—aºÅR=´reS¼v¤± ³ÄäÆ“_XØ[¬xf÷ …8N’]gèw‰ÛÄ×&ªPo¨ƒ‡ù¹œ¬ž·«Y™_£üQÜjB‡ˆ•GkÏ~ݧ`]†Ü„;öG…¸œzO"RãÉÖ(4ûËÞôJê 7¯®E'fÚ>‚2¤¾êÃêze„ cl$m²(ê15™ãfµÛÒæ~E¢}w°KÖV¸z)§F¾Bi5ÂÈ'©
+TôL%FíÛNeƒëT%”>ñykJ•öž<E9÷(¡(üx>ƒbTx$½Ë Áv™÷µ2dv‰ñòËhÕ^òq ‰½Ì
+ È+—(cäcŸ¥®1þJgøö]W$ š.<3P«¹{Ü°H@rYs’Æ@sÏ£Åwâ ®"{-fñ¡¢ú#¾þ­üE¢1©Å
+çE‹fHa àî(¥¼&äîe¶ðÛ>q0ÆÊ.äÜn
+‘1AˆïmV&êËÇFØêçŸÂGJ&V®ÐY¤_l‘‰¨Ï]i»¢µäÁŠV®à.¬üœ8<!‰Êö›„p­~‹ƒƒI¶°¢ÎÍ#;¸«ŠªWwøϸE:I—¡xð€Õݹ:oƒCJ7"ãIþe²%£4ûŽ'A"Êt/
+ ±]Îþyžä|ÐCãÓpï§/®—óNžÌÕ4ª´SàêòªO ÜëßdÛåb øtáí¿6‰Ö,;:³é3Óº@áRU,åwVǽ,&— 7;(—ˆÅ­™‘‚ˆM(oJ)Ðz×ÈT³g3ÂNòæ3Ý<.~þvGâ––ÜWówìÝÕplôN Òió¸7ÿRç
+F6“¡8Çí&³&­ƒ–#WÜ“¼¸Îìr:"óv8¿´×ïV¾O|8©[m©èu†ÍKlo¼ æ ý)ðy×7[a‚Ý\Dú9“Ó]‰‹æE߯ô&'x{kº_[¹j¡HCnóÇ»I½:ƒm¤|Üò.Žýí%ÿ¤r@¥à¸`_Üì–Q7@PScùTÕTûÀ>)K{ÃMŽüËY¶et#VÛCÙÃ4ÞÇ©ºÆ+›Õîo41ën{SV®¥m.O2m$I ÚÅ:æžFÐ @`t²k…‘¼NTq¬4GÞJy?C
+d—ôÐpY¥•ñÃIÂ{´ŸC^îç°O+ôÕÂðp0î]«C…pÞdÝGQl¿®H1Ä+>vG¾ŠO`:‹²¢gÉ Ï7~aÓŒ ƒ3Ct—¬æ
+#ÑžÐIÚÙÃ’õì©,™ßï â]$£‡8Øé%Ð_=x±%ÒŒ†YØU·1º@N õ#¡µî ½y+?6Õ…À E©µ|o“P#Šë· â%Xû½· ) Mv£_‰”C&þà ³ënž øÈSÍá³r¡ gϦŸ2¾
+‘®%¸Ÿ9DE(%*÷!>8ÒÇ?t™Žpñÿò°ƒû%´ì¬êæÑ0µ–1e¿D™b/¡ãÝýéÁB>¶¯“ñÇn
+
+]­ì#²}í%)Xy¦Uµï²¾£X‡ì9ì]Â7ÞÝ›·ftdGɯ´
+Õ‚Û7Õ3tž8æo'óÿü9êÔ–ªÝ14±Pn
+5»wSc
+!ØÙ BŸ%_[ߧͭ•7¡Š©žóŒ@’dñ±éÀ„ºVo8F‹þ6ïàOò®d hAéÆö\ð`rÊî÷8%… @¾æxÕˆ\96%}ê™L U„t0ߪ£ÈÀÀËÛ¾tU•ÔoØO*±²ºY áf؉þ¾…é×$,_jº—ž#šjÙJ. ™{­š¿çd'ƒäÚ]
+úÿ‡Çûg%™ ²È#~‘mAkîrð&m£ ¸ÑqJœVÓî@ÀÛ˜½~ jýgƒ
+ÞRÈGNIì„ÔbWÓuŸÕFk¶¡}»¯¦<3ÈÄ Pé)§|,m^»J§’¤ažç|d½Î‘BëC›ùû¥½ZX`ÕÿÞ1Z`ÍE¸VQ;hÝ
+uS¹vÄÈCx £·ˆð 8B°Õ`ü+$ÈÆAÍ¥ÙQ’{.ÞM̪¢¤ÅÍψ“=Q€qn¬pã('•ÿ\äCEz'DìóºÒVRíXɆÜǯ
+ A†ß{G¦Ãþ]ç¡E<{¨µš¡íÞ
+õy„‹àÞNSñaÿ¹òÇÝ?¤1ˆüù¤¨{Š{ÊÓá>f#žE%BZ÷QÉWßê“KÐϵlpi3Ú¾Õòá3tznâ.å£ó20¨Rc±—$³dü×Üøq¦™ùM™å‹I±ò©Â¤°„þ¦×7:£‡_¶%§´¥#sôù4M=ArÔŠÓ€ÅˤG5AÃWz'.ªk¥å†[ÔöËßhuVÎ àbêóöÏ'f­]¹%ºõ["3tk N4ª–ë›Îý¿{lBì$]·‚C•0§êRCÓЀïìã43UµLÛ^9„ p‘2ÎpuÀÅ>íÛdÖ»àƲ‘’šdÁ-¡ã”ªà¥Žó '©œÊÆÌÇ3 A1yç|6 Yçü›;ç6¶ï“6ЩUÒ(üî!<bY(|ƒñŒþšwGÂe·×ž.ÞÞ˜"™up!)áßÒf£aùE¥lU¡È¤å,¸w,Qœ_ôµU aÒr)i\žŽìé‡ØNÈÝ_Xmç:Ù±‘*çï^÷ †dØ*öŠb™¸ÜUÙŸë°¤ƒ:°ï'ÐLIP)I´3sºa™”,—y›äépÊDû„§j~ªHÆÆMÊ=¯v0³ˆ7ó¬êK
+uF¢»Êö4÷l¢sÓ5Œç[xP0Ð~`§ø=ÅgÁZC`ꇭM’@…ËSgÙüQ§~‡Ti`r~íÿÀæÏF.\ÁP(ä§ÆÇj·O›§mpIËÅTS–Àd·û‚œÇ¢Á3)ï ½‰¸¹‡«µò¨'lÈ™TV`®ï.sᆠd,Ôœ
+Lè°øŠÕ¥äù¶Yÿp`Át©™õë=À†a=Æ­$¹ÎS[r].
+é€ÖV¿bIçí^‰ui>H…øœ±o‚ÝŒLØðª‘ú
+¢%É¡ƒŸŽžÊTI
+âM§r%¹ÙXÖÉ:cßýX5!pQ2Ã~¸Í2ÎŽj
+ÆS¦ÆØÚ­Ç(¢´c!” ®I­@zjhmôIeZ»è> ÏÉK+©¦nüKÃÁ*¼gÚ˜ •~¹ ÞT×ÍÝ|¯ÐéßXß*¶Œ;–ÄÏWá’‡…×cs‹¹ét³» ’Ú×ƼªUì2qßXc:/óÁù¿þ†KµË§—veƒNSIo™„ôóuÉÂÞ߀!ž Dwà¢ìÍÕ—M|305`¡,¡‘Õoýàw#ÈŽFh;ëL¨œ/üÄML¡ ¬Âû8{Üø±~Ò­÷©þã 3
+¤KÁ(è•gµò kB#˜wðÛC¡¡yèQ®Ó¨XEŸ,M˜‚íR±ndúš¹,ˆu•×ô±ÿGÈuÀ—yøoe48&>ý”ç½²)VÑÞîµ›[~"I>VÙÆ9”ºXhWÝ|øé6ño¾n9äÂÒIòÂ\ MŸÔûBõgÞA®eù#@C„òÒè
+endstream
+endobj
+130 0 obj
+<<
+/Type /FontDescriptor
+/FontName /GMFNUY+CMR10
+/Flags 4
+/FontBBox [-40 -250 1009 750]
+/Ascent 694
+/CapHeight 683
+/Descent -194
+/ItalicAngle 0
+/StemV 69
+/XHeight 431
+/CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/W/X/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/exclam/f/ff/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/question/quotedblright/quoteleft/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero)
+/FontFile 129 0 R
+>>
+endobj
+131 0 obj
+<<
+/Length1 1379
+/Length2 5902
+/Length3 0
+/Length 7281
+>>
+stream
+%!PS-AdobeFont-1.0: CMSY10 003.002
+%%Title: CMSY10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /FXXUVH+CMSY10 def
+/FontBBox {-29 -960 1116 775 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /minus put
+readonly def
+currentdict end
+currentfile eexec
+ÙÖoc;„j²„¼ø°Aw-åÍßᾉYň5t&× {hLšGÒqB`d­Ë—PØ©†ÑÖ|*îøÎx\ÁœÞ–HŸt
+äl?KÚ¢ë[$‹¸Š³úGpðöÃݺ±/JÇzc÷¥‚F8ûvP3Üà/XO6ÈyAo¿±î~ëç]WqD‚M¹ˆY4ߧ󆸢YÕÌ¢XPEðLý2ã_2¹ ­¹©oH•{
+1xÒÉê'¿¼u|»o øöúWNRšE”ò¦í™¹Óôû&”ã˜lFÿ\LRh1®Fžbñ¦­Ï}+‡l Cø] ¦¥ÛÂ(„vfÕoƒ+fÏœMëí³}÷l?c*Þˆ"î­^R¬æ]ªm†äÔi§„KªOÉÒŽ!I Œ²Ó²ûçõRþ_tÓW;™¿Ìñ˜Çu@(#ªt*̧Ó U œ{|ãõõQ}a3åF¨l•¾ó8x¬¤Òt’HWA¨Â­â;³!ÚVÞÐþ CºÊƒVo³—Ûvºžì’?³”;”œ±=ËÜ>,„Æ㧫¾\"«ù¶•šÑRívRC•Ø¥œQDh
+Ó@_,žÇËœ½kbflçAIøP^ª³™wÙš¦dIÉHzk(c÷3ƒxûŠÉìSÊUPI³f{KΩÍs… îÍY¯¼¡í/ìvÁÏ[¡¹ûظL%O¡@ë™Hƒ†“<ÞP'ŽJ£ËÛv‘Õ,Æ$´"hU§M?ô³ë?á“p*Ö„7v×=ÛP1s}ãG“@¤N’5^ð3•‰Tå³8fº† yQ¦‡ƒ¹O)„´ ¬07ÓæÒ%… „G ¤ú’Rz£óófé{‡Ð^DhÜô<ä¢{™™âB•ËêÖ}úÀÆÙžs2f'CóyÞâ°_ǮӮ@]c8“±n7q'ƒæKˆü4kO=íþ«@ÖU ’¨Ül,ÝPoE‹ÞækÔ™*7q[Ú!ì÷ú·ÎØèÓ\o»‚^×$·&Œåóò]8l•ä·s¹&„„Á/ââ^)š!TåÄ€a óá¬îÙгá½S"¡;è•üu^
+A5ò™6B=Û¢vnÛ™Tã­™±Ï¼"…Ñ÷©]/Í-}{ˆÑÆÉ@ŸÓ–+‹šiý©caÎpnÉÛã´ÓàÕ{ª N©‚
+_MÌŒý`-@³0Vý'ôœÏ±Ðö©tS¨É¤d?ݱX(ƒYƒ…Ä÷kNWµYÀíFØ<èB}³–ék³ÛÃßRí(ÚÕÏ^2Ø%0Aüýìm„»
++gpA€,°,Á=|j«25CÉ‚7›õÕ ’ï–¯µ—Ø.é/F¨ɹË0¢–tRœáºŠ."we h¿P€ eäÖmpòîJ‡o´@°±â–ÿ_ðêAÒ3§âQé¿BVô~$ð9E¢ºj=
+‹]? «è{w¯_53÷¥FîgÓ¿³4B™èä›ìA¨«á½q²ÏðËßÀÞÑ4µŠ‡¤Ðî1®PfÔ ¬ó,ÖSÅŸ6ôã¼ r¤§[‘ÝÁv`à ¼µ±ûô¿x÷G$ÿŸ„¥êÏ.}¡¹Î Ì”·¨ÜϾFÍ™”c°±š‘‚=­Áf!*˽ª./çwĉR8º(@ÙÙ‹šz c¸½@ÃN&Im—žÝ£>X!Èm•eñÊ@ÎlWÿ"ÒVCHèø8ÔkÕ‘<yøœNu a”ꥨ½Å.¦ÆïtN´¥Äˆl2²¸kAI]‡)Mø¶S¢æÿY–Ùnµ‚™Õ&¨*^ŽÇ‘'üc@
+µ³„ qÆv&¶¯Ê÷Cßå3N
+ $F¨Ô–HDÙòV?pòyÑ—¹PÞ%F=»‚ÂÇÆB‡öÙö¡GKØPh³~N´[¸IÊ_ꈀCðTzÞÒf ç <Ó–”Œü`4|mƒE1ÖJ'¼ýáÝ$`}R ‚Ú\¨€âN2kf¢aóouJ73ê´òváê¿ôKÛW{œMÓÞ3?שMò]ù:W;v…˜Xâ;„B’ ‰§X.PáI;?Ÿ!T¤ˆ . ·sìöU]䮃’=ÑXŠþ ý’5´ÀŠ€r€Mt>y=¯†*ãbC¾~^ ½tÅAr±¡l'¶øŦ•üó\ô÷ØŸÉL냡P“&7ttöuGz;Kg4ÚóÑ;·u)"é³;úÜS•–Âv½ËðüõC~³?¿Jƒ»/’F"6U.°0>çô+ÜKQÓ„0"ÊÓ«Ñ=ëñséÞíƒxoJ]áת!Ìwü6OÝ.}‹ž€tëË5ð¢VâË©³+¬¥·¬­Àü7Š³Us‚š®Ö©ÆyçåÊÄ“TŸŒC5üGrgâUÄ5Ì$‡—Œ&|°µ¿Š~•ÝGªäØ8ž—ê ¡¯Mvåß(jt§ƒãß ñÏ¢nñí›]Î]ÅQÌW…OØ‘ˆm.Œ£Ž­ð R[¾ИoN<j#æþ'‚çļ1­ØÀ;}ð…\McÖ(:Øe±?ö…†ãZ™4Kˆg‡©Åè¤Â©ç@ŒœT¬” Õ'aö"%ÆK|`QK}à¢ÈãòuD†œ“‰}ó&€ýÄ89.ýÖ§»çbvBc+E¿+? É5¦ˆ&l9ôX¹P>Ðngô IFç:?Ât”ØSUOÎcÆj2Cm[¥à«O7>kWúk¥¢©½ËX¯'ƒ²î¦œÂ<U§²×NÛ8LodjÛs×3‡> ™#ñ–Ñt'X•d9+E7±ðNä™dŒ8{Å]òŒm¹/‡ Æñž»×Ž¥dv‹Y†Y–öþwopôé™!™EÄP7F?oÏÄjP9âò­"›Ág“BŠŒÎÅÙPîŽô;B^QO©“3ù¿*B 3³ƒun»$·ßIÆêÿŸ_Oeþ`Ô
+˜$Àß`‚}-9Q/Ä¥åM³e€ž?ØÁÇÉêÒ°µìhä]Š¦bð¿ ýé»ê«_ê2<ÑøÍ–Æ+ìtª°[Ïœ±ˆJ¡þ©O@¤%M‘I‚Þé t¦µØvƒ†Õ\¹/bãÑÃòMVFÊ05ÿÎ+kIå2W9>f–}©· ÐøĶô3t‡¶«ÿº¡jª†¦Ã|"§´æôîÖ
+ŸÇÉ[ÓLŠhŸŽY³)Øo57kßþ“#%H’\
+zúåT¸ÞúË0ÙÝb#ö›[›zyÏ’Õ$e1¬ÛkÕ5—dRAì`(Å…@{=yW>¿ðˆä>ú‘¯çy@æÅÿ¹Uáú;”œ±=ÃH;Çc{–ð<yBb7©l!&xºð@©‡Ôï•-d¡Û½uäê\
+˜Ee’5ø+ÄÙ°s§Zò'±¹§õ˜àçbˆQ²ôð°SlŸjÅö zv
+Íyñá˜`+éÙW?od;€«®¶&ž
+™¶=}`°>É¢¹ÜQE¹«©ÿڑ/M¨%m!hæ
+Ò]Ô3ª¢‚Z™‹
+endstream
+endobj
+132 0 obj
+<<
+/Type /FontDescriptor
+/FontName /FXXUVH+CMSY10
+/Flags 4
+/FontBBox [-29 -960 1116 775]
+/Ascent 750
+/CapHeight 683
+/Descent -194
+/ItalicAngle -14
+/StemV 40
+/XHeight 431
+/CharSet (/minus)
+/FontFile 131 0 R
+>>
+endobj
+133 0 obj
+<<
+/Length1 2109
+/Length2 14158
+/Length3 0
+/Length 16267
+>>
+stream
+%!PS-AdobeFont-1.0: CMTT10 003.002
+%%Title: CMTT10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
+/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /ULVELD+CMTT10 def
+/FontBBox {-4 -233 537 696 }readonly def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def
+/FullName (CMTT10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 65 /A put
+dup 66 /B put
+dup 67 /C put
+dup 68 /D put
+dup 69 /E put
+dup 70 /F put
+dup 82 /R put
+dup 83 /S put
+dup 97 /a put
+dup 92 /backslash put
+dup 99 /c put
+dup 58 /colon put
+dup 100 /d put
+dup 101 /e put
+dup 56 /eight put
+dup 102 /f put
+dup 53 /five put
+dup 52 /four put
+dup 62 /greater put
+dup 104 /h put
+dup 45 /hyphen put
+dup 105 /i put
+dup 107 /k put
+dup 108 /l put
+dup 60 /less put
+dup 109 /m put
+dup 110 /n put
+dup 57 /nine put
+dup 35 /numbersign put
+dup 111 /o put
+dup 49 /one put
+dup 112 /p put
+dup 40 /parenleft put
+dup 41 /parenright put
+dup 39 /quoteright put
+dup 114 /r put
+dup 115 /s put
+dup 55 /seven put
+dup 54 /six put
+dup 47 /slash put
+dup 116 /t put
+dup 51 /three put
+dup 50 /two put
+dup 118 /v put
+dup 120 /x put
+dup 48 /zero put
+readonly def
+currentdict end
+currentfile eexec
+ÙÖoc;„j²„¼ø°Aw-åÎ=Ó%åW˜)-{Ùr½uú•)¯œ‚ßröA•ÉÂÜãE(õ@Úý{ë¹´‡º“Q»û|ü_‘RÑå»
+ØÐÆϤëA³Å -T@æ|ýq|Vk¹¿J% qu8P¢øwÄGx³ÅªÛ̆ÖåQæ¯6K üªÒ-UŒ\§Ô%¡bÕ"t-*ðxÔõöÓŸÏÿJ‘+
+}ì3¥{Zà2ŽùÕzݬT2sÀ$ZõÌÑ&{Bè–J×{¨¦Œß=מ0).
+âÜ·BÝDý‡q}Môæ8À|¤j›©$±{ÃjÏìpÓxæxS½Æ«Eîu
+¤•™¤š¶7%É‘õ±4\ ¯9»b
+dÆ¥`Š$ P… …›‰:"‚ ñ©)Ž©|UÑïÆ©ëŒfù«Dµ¤tøÔd—§ =¬›œ5Íó¼+¶¤îj7Á%ëi@ÿ—âÈ)шËT/
+ŸPv
+&°°ãÁꬑ]÷RR›ªC¥C^¯5ý9#ôAíá+?ÇBë$çÜÇ)ê@’²:§(W'æ,‡
+%`&ì{„(KÅ:.CìiÍK9¢¿xHÅ-vâEüÔ4x_5ˆå ÙºüŠšÄ,ôž§dâl5'bËbÝq,–Hö. O“°è8Åá NNn÷ZÄGòquͷDZÖM”¾ôÁgûéÔd/.oí~*Ľ–ẾÊ¿epø˵
+1î²}o€K
+nÆác2ˆß¯xXΠ1!?:àá¹–åt#Ãà?%¹Ñ÷•g„ŠS¿e[zšŸeÍ
+Áâï«œ.ŒÐ—%¤pq¿ªô>¬>^ézx,Ú{^’Íc]r›â6o®·†µ¹õ¡ÈÞ¬tH“TÜCýÏ× •O;Ðqâ]8ù$y¸·BˆoLr €{=fÀ¶¬$' FøÅ}*õƒ%ù*‹úªútds¢›CNzc¶»š§û‚5G~Íظže ê2‹Ôd«Šã]bsz'¿È:åÏaWA´ª™>4+
+ý¦5uß=JTòú­“Hˆ8¨Yá·n¸ÐÏ{ü±-¼øúžtÿÒ}Püì”tÄ¢§Jx³•8×ÈÓRÛá.\{Ê`uÝÿ[ˆµ§ô%é¹3Áˆü…7Â\Õrn‚†NJµêþ‹Ïò™ý F­k¬² ³ò¾Oj¿—½®ßÚæ+´WeÕÐs©MÕV—‹)ªø˜–óÁàªJñYVñË›8´ìÀ1Áýd#JL1?M´È?"Å›b§ÌQÁï¾¹fc·ÐÓŸr´½¯ <gl~ï—‘5Y¯KÏ=Såñ]ëd
+@ˆ¤€_5ÕHsà‚ûõÜÆê/ò⺋ÌkVÝuægä”ý¡‹Öî}'4l•Ð”å@ù¯¿_OIß¹7›Ï/{^zy-drÍx f¡½Ìú7JßÑÖñø„×ÓÀ÷´S©ã'Ÿz{¹ëbµ¥ÓckPb~Æ
+0¡±ÂÃø¦ÍzãIÓ­!„ Tƒ¸‹Rª$Ó,¥‚¨ì/ èB
+}YIK[‚ùň,¾Ó÷A˜ïRPÌPki<÷WT哤 àë`ˆtÎOˆ’PÆšlÌöT{*\0T Í%ÈBÚå N  ²?0”—pÿíþLð´”X´± ÚÞùD”aNå>ar¼4דÕ@ùd¾ª—Á”çv¯5³꺜5eÄDfR+·c=Piÿs«ÛX‘8þšÔÐmm‹€šÛ;E­¯LêÄ]œH|­S“°±‡· #õÈ¿¿§ðøË´§åç°À»Æªlçõ²ù™ã È÷¨ò„S6ùŠæðe¤îÁ¿!3€BYTg˜Ú±}T¡Ta˜Îˆ‚ˆŸ«Ïf›ÔgŸ¦»ÔþðX¦_+t”1¡2)AÖ{ߨøïãcƒ×° ‘«¨zP*QË©—S×Råd*çlNíØbjɇ©w½u_ŧ0ß3¥_¿mÃ=/èßQñô³ufôâ¢
+ñ'I N¢»â?Éqjªñ™)
+ÊŽëšÓ²+ž¶¡AÇÑÐr¢â»©6&HДC9Ömr|Ã7r²óGù%:‡òJrþ¶<Þ(«gG^ÂÄ´³~¯xPé^€KâÞÔÁàYúY…DË“"ø¸”$?f·7—Úšß}¹’XËäoèˆç3üœ'â+T…e|7õ~Ÿxø9F¾’ÖÊ“ •u
+Ìiãh
+9Nt’…9‚»uicæsÍäJ€w
+cZ|¶Á$CÈ[ÑiŠ×eðƒ Ò"÷
+K·„S?Í0Z<ª¼òM^žoEáÖï” <XˆdaeK ^~Çà·€+ !¾à<mG¹vyg09>§´"1é¦í\­eάI¶ SsÉBIT·ŒÕÔvòÙe赡 R»kvl$|­i÷ì0qpð½
+Qx
+ŠÊ"„¸Óªï©á“a¦x;ÏY Ž`³m ÷±ÎÆeòïï©"bsàiq>,ÄZnÊè›3æÂŒeÐÌ(¥±gÆØoû¦¼ =$ìRù·ÿŸµþܬú¯Ÿ'âJ:cjª3¦‚f2
+N’µ:3CC;OÊv"<ȳA?9=¿Ô‡a’ÓÈ{úúMË»Š¶ö&}Lænu¦¥4ÛŸV[Ìà+.¢_…bê¨$tö«1ê.¶}ÉÖÇÓÁcÑü¯{ä«<<›vì÷ܸßÌzÖô‡<ú Í
+°MÊö‚:7¯õjm›˜ ª!µ'¦¿3¹xÄ<[r îä«ënÝ^™sºÉ:Ÿ^—M{Ã9E“Å·ÑÌ8ÑÝBãt<ÚW#ë³WsÛ 3’}Âæ~]ÏNAýÑx!¦ íf”ð%þÒ™ÄÇø°wÂÙ €ìˆëÃ˳,Ø¿QÖ㌴W싪Ì»¥«±3´âZ·0´Ói!Íá-v1 1Ÿ?2zçqÚäøÐ6³œ 
+:ñ‡Ç+›åñž-—wqm2Ä(*$&°¿ïC8‰\<HêúÊ_Ý“×y²/Ýn,Ip`aš?Gk²û»0_h’Ç‹êü ‡ IÓŽ¼5uOy
+ð?¬“ÂáÖQ{“ ©<›Œíîã¬9@Ìn`8n“—xá‚4<ÍJ50/¬Á/œõB•dœ·='¯ëÕ„üe>®+«`m½eØŠz­“–öͶTá9
+I¹UfÉ0wAEÍ]'~Wé‘›Ñ^œÛtŽõIôÿ}Í¥Ýá=Ûqñ a‘$ž´WõÊ ûk̇úØ¿K‘oFŒv}Ù·0ÅðâÒaùdL(óð#g¢è5z~çç[;›¦ýtò¢kxdÐH¦ãE¹-:?ù:|[R•ÙÙ”aé8vÑè(aÅŽß
+åñ0Š#ºë"ù­
+„^¾;è i<\
+‰àÀŽtyò‘>J[2LÕ³&‹‚ æûM»ÜŠÿ°Þ´I=+îÝvµäí®ôvÁC+©edO=‹'[Ž$Wi·í0üú#
+ÖÉè 4õå[9%­öƒð|üâ´pàÌs@‚YLŠŠWk¢dfÉIü¸&^
+/ÉLk¦N5k° )µ­+kæ±ñG ýk<npÄÆ^ð¦ôheéŽÞÊãÌÀ¾âÀ²g³ôñx4„ƒ¶Y+LÇžÂo³å°E^.Ë
+ê<”ñ-cJ˜ã„Ò>[¾€ò]uk½¢À¨ùtêÈ©§“»i¨•Á®ínñL©ÏçZ¶(‹S×o[+ /SºÇ£I×MH3Áu`´¾xx „ZtŒGYÞ46ÏÖBFøè)”Æçå@o]•TÁ(G´)…³›©ªãA)aËM«Û8hú­ Yy½ß$Q’ ØÔˆ‰ÁbëB¾½´á—FåŽÜ¹ïã.ÄèWZéØ×¼¾‡ÔÅœ«<í‹^ÿ)LŠ§üåÎøÝ!’º£’ƒÁN:æê¢Oj~ëÃØEðm¯Oª"[YSQùÎPËU!”ͬÓÈÁº>ªÈG”8
+ôï{ WÂíºlˆÉ
+¿¦ª?¿ùåðù)¥¿ „Pñìd9H0}¿¦h\ú\&6×({ *Ë–d¹U’‹f:Mét î ë1â)åýà ָðÒV=šeý\¯eK›q4ü;¡\‹;#ï…!l´‰áãð!]·0Yyh£¥(i¯Òcåæзë<d‘A¤í¤ÚÄ:áß‹¿õ}• ÒÂ~0Æ×2ƒHM
+øÀÖFù¤±hœ~ðc7“s™®,Ô’œ&f¦e'Å9<9 Q§F¬åêáŠIàÜ“‚dâvxzøm1ÍýCÔ<@õÏý™M(W‰”Š¬ÿ„nþÃhjSJ /KêEî‡Ãdû“[ªÃ çÔ^¢üðîY ±qPºþ†[+Am>ç?i×ÃHiÕ”r¹Îç_d¬Ô°ž:'%SÎÊ‘Ýsˆ˜ôÜëÐ̦›HþÎ ÁËu·{ö-¬ˆòA‘çwgŽ;ØãF1ßI´"I®ü0Z‹]!]ž£sd Ô•çfþ… ŽöÂ#suöý€'uVœÅD,ö;ï€ÇÕVÚ§ù©V ˜¢ŽæQç %@kM‡k=ÅÕîµU̯AEwðbe…ž‘˜¯íÇóó¾MtÞɨ©hN·º,½“d §ø³6• ¿Â=¢BË^ûá|hh,)Œ !Q»ÃHí«(5Ùà“þM)Þbܺü=ÛMø•()X¯v."O•Þ“÷ÐòH8 bà 6zŽDÒìˆçò«À3¤¢¿’+±wÜÒœä×ÅLU[ו11¼?÷n·®îW]Ä00yŠ“p׎-/ªI´ˆ«ä}wq9§•Ùñ.F90 ü=ŽëtyŒ*dL¬ðœ«{ΨµÍw×쎋(‹ø,>¬ µkSùê'¡²†&ããÇ.A‹©w—rf]9<uÉ|W%fh¹Q¬3vá(ÙrE5Ë: ÌôÁ#—’¨ge$Û"f!|É>U'„׶| ùMë}&¿]èÍ‘ïáYsf¤-uxÓk àf#ïøSocDß‘Sù:Aµ7âÁüîàÞ–äS}e\ÑœäØó ãÏ3 ´ÆW\aÐv‰Ô
+\Øè3žöaÊì(¸r™’@g+ ­*, l•óˉUN^r9°qw]—·†(rš¹Vf^h¢'§Þƒ†ÅŸ˜Þó F@!2d(Y‚¢ ÛÒ¢½Z1OŦHS Éç8Áh•r¨¤ú>æ¥ðàÑíÿc_u²6ŠF/å¤ïÌqr„Ö×î­ÉåÅzwGýb”ôr1Ž†&'ÕN¬iâô&`Iy¹šš>=
+7n¾ó±6ÒÒ0<®U¿=àw¤fºfñ’öq¤çá®KôÆ{®÷*Þݤ0~ºi¦ØÚ—¤cÇmn–”€u4ÌÐÈ\Üì}(¤–=+žDV5쳯̵t÷L{$ø`ÇfɃ/J©¢CéArwøu •Õ‰xWÝï­“Ž±õA~%&LSƒ1û¢ò …ÃÌ/›¦L¨ óHåðƳ¦D\èlkó‘º @PòzþOx} £¡3ò:Ñç·‘‚áNF´_Ølð„m§wÿÖ% ‡hÖs À†4ÂÜœæ}è4¹›{Ê:¾øD•ßä¾·­°bÊNÔ™×K)¡Šn36´ÔmdÆúÏj„Nƒéu æÌö$Ži—±š-‰H/‘5u
+„^¾ †»S1èYãÓiŠujhä‰Á1X*.ÔƒiIk
+ûŽ°“•ƒ':&Qû§­ó'm¡û)W× çs$1ÁD+ìºSÅác$†÷Š+if
+'|¨#+ÅOâ™>hï^«WÝ[‡Ã6ŠFE(L/Cë¿ø{#¹üHsX#V Ï%™eD ?S…ƒ¬ÁÀc>ss]†mÖŸ¢¬nž#Ê%çæx¾
+ ËÏj¡Æ-˜±LDîRGì—“_\I?Ô<D²#… ò5;Ey#õqe!‰ÈzsO'žÅY›
+Òè-àÚÅ´Þ&6îýMÂËÈâ˜úò›´ w~¡%dbAJ Jâ—ïSƒaG®É5D§‚•yÆS± FÑ:ÿÎò„•¶ÀS…Ëzk8Pd,8®¯P &_7öPío¢u‡Ž„Œ¹ª‚¢$‡ ðPi`¾ê»ssX²ã+ú÷iêM‡y}^ÀÒœá’ý¬Ë¸?{Ù50…uþ¼{Íjs.¦Åð\CêžÜÁQgݽw’›&é¨ØÖ-¢26s_±Tñ&ƒFT­ KZ¬´¤÷FA¥Bz^°Ÿ‚W°$¸K·4Œ]ñÒú””¢Ë5ˆŸbŠ¼€L4^oÂ4×=T·ú>æ\êî}z¿fíÞMõŽ»²X#Õ²_h6
+t–:‚P«Äë;*S
+yuV!£ž#bß©*S"4¤­&ïv”Jqò°sã|µ{õ⌋Pq͜ق—º¦OzìA$w¢]Àj¥åÍðpQ]0ß¡Sæé0ò1u^¬*|TMCÞ“‹ £¯»5†ôP ,X6Ñú׫wn¡vêLL(©lYûR`]ò*êê$îȽ¡Ù5¿‚R 7Ÿ‡·ÜÜÁ~+*K&º®2MªËbMqù2otRoùm\9çÐóeÁòœ­ŒáO„¹×‡¯*x,!ÝŽ†ôø#j Q¸CÅ5ÛŸ=\ŠÜ[ÀÖF
+yr80¡«»ð¾î«IWÖ%KNm“P}L>+²EŒš Ô%ia¼ßJ€ÍÄBwþÿUR4V“ºÕ‡a^`>¨jD‹„-Í…Õ^ò
+ˆÉ袳µ¨q¥Ø›’Ó‚ fÞ4-œ)ª?:X|€šñ""äÕÈ»¦A+jºâ+Èï…lZg‰"¹ä…ŠÇ7 clÈKuÃ3U€Äž2~o¯ßà †ö·Ä.,z=~í=¦: ‹šlÊG½ISó@dÜ·RdÒÞVc_™¼ð[»µß¦aK¾«zQö2É–’fÀf»©”ïp+¸ÀŸš9Ù,’À! )U÷'$f%É
+·y©#ę͗ýÉê¶ÿ)7³*ì:=jà‹+7Gú"{Õ×%³ß¤~¤g§ó4o©‡£^Ù~Ô¾·iÙÉÆ–)ioƒÃ_Ëe«³
+ <S0H¸Éõ;™çŠ
+>šff¯äIg9Z{®A¹çÂÚšÜÕ;G‘±7 ñ?„~Ì
+endstream
+endobj
+134 0 obj
+<<
+/Type /FontDescriptor
+/FontName /ULVELD+CMTT10
+/Flags 4
+/FontBBox [-4 -233 537 696]
+/Ascent 611
+/CapHeight 611
+/Descent -222
+/ItalicAngle 0
+/StemV 69
+/XHeight 431
+/CharSet (/A/B/C/D/E/F/R/S/a/backslash/c/colon/d/e/eight/f/five/four/greater/h/hyphen/i/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/quoteright/r/s/seven/six/slash/t/three/two/v/x/zero)
+/FontFile 133 0 R
+>>
+endobj
+119 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/BaseFont /JJKGXQ+CMB10
+/FontDescriptor 126 0 R
+/FirstChar 76
+/LastChar 120
+/Widths 120 0 R
+>>
+endobj
+19 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/BaseFont /CUJHND+CMMI10
+/FontDescriptor 128 0 R
+/FirstChar 58
+/LastChar 58
+/Widths 121 0 R
+>>
+endobj
+1 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/BaseFont /GMFNUY+CMR10
+/FontDescriptor 130 0 R
+/FirstChar 11
+/LastChar 122
+/Widths 124 0 R
+>>
+endobj
+18 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/BaseFont /FXXUVH+CMSY10
+/FontDescriptor 132 0 R
+/FirstChar 0
+/LastChar 0
+/Widths 122 0 R
+>>
+endobj
+17 0 obj
+<<
+/Type /Font
+/Subtype /Type1
+/BaseFont /ULVELD+CMTT10
+/FontDescriptor 134 0 R
+/FirstChar 35
+/LastChar 120
+/Widths 123 0 R
+>>
+endobj
+5 0 obj
+<<
+/Type /Pages
+/Count 6
+/Parent 135 0 R
+/Kids [3 0 R 15 0 R 28 0 R 41 0 R 44 0 R 48 0 R]
+>>
+endobj
+61 0 obj
+<<
+/Type /Pages
+/Count 5
+/Parent 135 0 R
+/Kids [55 0 R 66 0 R 76 0 R 107 0 R 117 0 R]
+>>
+endobj
+135 0 obj
+<<
+/Type /Pages
+/Count 11
+/Kids [5 0 R 61 0 R]
+/MyPageAttribute /MyValue
+>>
+endobj
+136 0 obj
+<<
+/Type /Outlines
+/First 86 0 R
+/Last 104 0 R
+/Count 5
+>>
+endobj
+104 0 obj
+<<
+/Title 105 0 R
+/A 103 0 R
+/Parent 136 0 R
+/Prev 86 0 R
+>>
+endobj
+101 0 obj
+<<
+/Title 102 0 R
+/A 100 0 R
+/Parent 86 0 R
+/Prev 98 0 R
+>>
+endobj
+98 0 obj
+<<
+/Title 99 0 R
+/A 97 0 R
+/Parent 86 0 R
+/Prev 89 0 R
+/Next 101 0 R
+>>
+endobj
+95 0 obj
+<<
+/Title 96 0 R
+/A 94 0 R
+/Parent 89 0 R
+/Prev 92 0 R
+>>
+endobj
+92 0 obj
+<<
+/Title 93 0 R
+/A 91 0 R
+/Parent 89 0 R
+/Next 95 0 R
+>>
+endobj
+89 0 obj
+<<
+/Title 90 0 R
+/A 88 0 R
+/Parent 86 0 R
+/Next 98 0 R
+/First 92 0 R
+/Last 95 0 R
+/Count -2
+>>
+endobj
+86 0 obj
+<<
+/Title 87 0 R
+/A 85 0 R
+/Parent 136 0 R
+/Next 104 0 R
+/First 89 0 R
+/Last 101 0 R
+/Count 3
+>>
+endobj
+137 0 obj
+[68 0 R 57 0 R]
+endobj
+68 0 obj
+<<
+/I <</Title (THE LITTLE MATCH-SELLER by Hans Christian)>>
+/F 69 0 R
+>>
+endobj
+69 0 obj
+<<
+/T 68 0 R
+/V 71 0 R
+/N 70 0 R
+/P 66 0 R
+/R 72 0 R
+>>
+endobj
+70 0 obj
+<<
+/V 69 0 R
+/N 71 0 R
+/P 66 0 R
+/R 73 0 R
+>>
+endobj
+71 0 obj
+<<
+/V 70 0 R
+/N 69 0 R
+/P 66 0 R
+/R 74 0 R
+>>
+endobj
+57 0 obj
+<<
+/I <</Title (THE LITTLE MATCH-SELLER by Hans Christian)>>
+/F 58 0 R
+>>
+endobj
+58 0 obj
+<<
+/T 57 0 R
+/V 60 0 R
+/N 59 0 R
+/P 55 0 R
+/R 62 0 R
+>>
+endobj
+59 0 obj
+<<
+/V 58 0 R
+/N 60 0 R
+/P 55 0 R
+/R 63 0 R
+>>
+endobj
+60 0 obj
+<<
+/V 59 0 R
+/N 58 0 R
+/P 55 0 R
+/R 64 0 R
+>>
+endobj
+138 0 obj
+<<
+/Type /Catalog
+/Pages 135 0 R
+/Threads 137 0 R
+/Outlines 136 0 R
+ /PageMode /UseOutlines /URI (http://www.fi.muni.cz/)
+/OpenAction 115 0 R
+>>
+endobj
+139 0 obj
+<<
+/Author (Han The Thanh)
+/CreationDate (D:20001212000000)
+/ModDate (D:20210228102409-08'00')
+/Creator (TeX)
+/Producer (pdfTeX)
+/Title (samplepdf.pdf)
+/Subject (Example)
+/Keywords (PDF TeX)
+/Trapped /False
+/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020) kpathsea version 6.3.2)
+>>
+endobj
+xref
+0 140
+0000000024 65535 f
+0000928067 00000 n
+0000001777 00000 n
+0000001646 00000 n
+0000000015 00000 n
+0000928491 00000 n
+0000006353 00000 n
+0000001878 00000 n
+0000006376 00000 n
+0000006467 00000 n
+0000006516 00000 n
+0000006609 00000 n
+0000006730 00000 n
+0000006773 00000 n
+0000007221 00000 n
+0000006219 00000 n
+0000001941 00000 n
+0000928348 00000 n
+0000928208 00000 n
+0000927925 00000 n
+0000007112 00000 n
+0000008121 00000 n
+0000040402 00000 n
+0000040768 00000 n
+0000000025 00000 f
+0000000000 00000 f
+0000447484 00000 n
+0000447850 00000 n
+0000007987 00000 n
+0000007385 00000 n
+0000008487 00000 n
+0000008685 00000 n
+0000040330 00000 n
+0000450071 00000 n
+0000448023 00000 n
+0000448853 00000 n
+0000609828 00000 n
+0000448888 00000 n
+0000449039 00000 n
+0000721640 00000 n
+0000833452 00000 n
+0000449937 00000 n
+0000449104 00000 n
+0000835358 00000 n
+0000835224 00000 n
+0000833613 00000 n
+0000835760 00000 n
+0000838301 00000 n
+0000835626 00000 n
+0000835472 00000 n
+0000838069 00000 n
+0000838143 00000 n
+0000838222 00000 n
+0000845727 00000 n
+0000846039 00000 n
+0000845545 00000 n
+0000838431 00000 n
+0000929807 00000 n
+0000929897 00000 n
+0000929969 00000 n
+0000930031 00000 n
+0000928599 00000 n
+0000845891 00000 n
+0000845940 00000 n
+0000845990 00000 n
+0000853566 00000 n
+0000853255 00000 n
+0000846141 00000 n
+0000929521 00000 n
+0000929611 00000 n
+0000929683 00000 n
+0000929745 00000 n
+0000853418 00000 n
+0000853467 00000 n
+0000853517 00000 n
+0000854045 00000 n
+0000853880 00000 n
+0000853668 00000 n
+0000854015 00000 n
+0000856612 00000 n
+0000856758 00000 n
+0000856883 00000 n
+0000857002 00000 n
+0000857139 00000 n
+0000857289 00000 n
+0000854147 00000 n
+0000929375 00000 n
+0000854188 00000 n
+0000854216 00000 n
+0000929264 00000 n
+0000854257 00000 n
+0000854287 00000 n
+0000929190 00000 n
+0000854328 00000 n
+0000854360 00000 n
+0000929116 00000 n
+0000854401 00000 n
+0000854433 00000 n
+0000929028 00000 n
+0000854474 00000 n
+0000854504 00000 n
+0000928951 00000 n
+0000854546 00000 n
+0000854577 00000 n
+0000928873 00000 n
+0000854625 00000 n
+0000858138 00000 n
+0000856380 00000 n
+0000854654 00000 n
+0000857431 00000 n
+0000857572 00000 n
+0000857714 00000 n
+0000857854 00000 n
+0000857996 00000 n
+0000859396 00000 n
+0000858253 00000 n
+0000859522 00000 n
+0000859238 00000 n
+0000858301 00000 n
+0000927782 00000 n
+0000859638 00000 n
+0000859910 00000 n
+0000859935 00000 n
+0000859960 00000 n
+0000860323 00000 n
+0000860946 00000 n
+0000871215 00000 n
+0000871463 00000 n
+0000878848 00000 n
+0000879075 00000 n
+0000902903 00000 n
+0000903406 00000 n
+0000910786 00000 n
+0000911012 00000 n
+0000927379 00000 n
+0000928704 00000 n
+0000928797 00000 n
+0000929488 00000 n
+0000930093 00000 n
+0000930256 00000 n
+trailer
+<< /Size 140
+/Root 138 0 R
+/Info 139 0 R
+/ID [<A367CAB0F6E6BCD7F9D2DC41237898D7> <A367CAB0F6E6BCD7F9D2DC41237898D7>] >>
+startxref
+930596
+%%EOF
diff --git a/systems/doc/pdftex/samplepdftex/supp-mis.tex b/systems/doc/pdftex/samplepdftex/supp-mis.tex
deleted file mode 100644
index ab089a297e..0000000000
--- a/systems/doc/pdftex/samplepdftex/supp-mis.tex
+++ /dev/null
@@ -1,695 +0,0 @@
-%D \module
-%D [ file=supp-mis,
-%D version=2004.10.26, % 1997.01.04,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Missing (For Generic Use),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%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 support modules are more or less independant. This
-%D module, which is not part of plain \CONTEXT, provides the
-%D missing macros and declarations of registers.
-
-\ifx \undefined \writestatus \else \expandafter \endinput \fi
-
-%D Because \LATEX\ has no safe package loading mechanism, we
-%D need to take care of possible interference.
-
-\def\StartLatexHack
- {\edef\StopLatexHack
- {\catcode`\noexpand/=\the\catcode`/
- \catcode`\noexpand:=\the\catcode`:
- \catcode`\noexpand;=\the\catcode`;
- \catcode`\noexpand"=\the\catcode`"
- \catcode`\noexpand<=\the\catcode`<
- \catcode`\noexpand>=\the\catcode`>}%
- \catcode`/=12 \catcode`:=12 \catcode`;=12
- \catcode`"=12 \catcode`<=12 \catcode`>=12 }
-
-%D This hack is needed especially for \LATEX\ users who use
-%D the Babel package. The Germans have active \type {"}'s, the
-%D Poles have \type {/}, while the French have \type {:} and
-%D \type {;} defines as command (thanks to Daniel Flipo for
-%D pointing that out and testing). Potentially active \type
-%D {?}'s and \type {!}'s are less dangerous since they are
-%D handled by the \type {\protect} and \type {\unprotect}
-%D macros.
-
-\StartLatexHack
-
-%D \macros
-%D {ifnocontextobject}
-%D
-%D First we take care of redundant defining. The next set of
-%D macros are a bit complicated by the fact that Plain
-%D \TEX\ defines the \type{\new}||macros as being outer.
-%D Furthermore nested \type{\if}'s can get us into
-%D trouble.
-
-\def\definecontextobject
- {\iftrue}
-
-\def\gobblecontextobject
- {\setbox0\hbox
- \bgroup
- \long\def\gobblecontextobject##1\fi{\egroup}%
- \expandafter\gobblecontextobject\string}
-
-\long\def\ifnocontextobject#1\do
- {\ifx#1\undefined
- \expandafter\definecontextobject
- \else
- %\writestatus{system}{beware of conflicting \string#1}%
- \expandafter\gobblecontextobject
- \fi}
-
-%D \macros
-%D {beginETEX,beginTEX}
-%D
-%D Outside \CONTEXT\ we will not be \ETEX||aware.
-
-\long\def\beginETEX #1\endETEX {}
-\long\def\beginOMEGA#1\endOMEGA{}
-
-\let\beginTEX\relax \let\endTEX\relax
-
-%D \macros
-%D {writestatus}
-%D
-%D We start each module with a message. Normally the output is
-%D formatted, but here we keep things simple.
-
-\ifnocontextobject \writestatus \do
-
- \def\writestatus#1#2%
- {\immediate\write16{#1 : #2}}
-
-\fi
-
-%D Let's see if it works.
-
-\writestatus{loading}{Context Support Macros / Miscellaneous (2004.10.26)}
-
-%D \macros
-%D {protect,unprotect}
-%D
-%D Next we present a poor mans alternative for \type{\protect}
-%D and \type{\unprotect}, two commands that enable us to use
-%D the characters \type{@}, \type{!} and \type{?} in macro
-%D names.
-
-\ifnocontextobject \protect \do
-
- \let\protect\relax
-
-\fi
-
-\newcount\protectiondepth
-
-\ifnocontextobject \unprotect \do
-
- \def\unprotect
- {\advance\protectiondepth 1
- \ifnum\protectiondepth=1
- \let\normalprotect=\protect
- \def\protect
- {\ifnum\protectiondepth>0
- \advance\protectiondepth -1
- \ifnum\protectiondepth=0
- \doprotect
- \let\protect=\normalprotect
- \fi
- \fi}
- \edef\doprotect
- {\catcode`\noexpand @=\the\catcode`@\relax
- \catcode`\noexpand !=\the\catcode`!\relax
- \catcode`\noexpand ?=\the\catcode`?\relax}
- \catcode`@=11
- \catcode`!=11
- \catcode`?=11
- \fi}
-
-\fi
-
-%D We start using this one it at once.
-
-\unprotect
-
-%D \macros
-%D {scratch...,if...,next...}
-%D
-%D We need some scratch registers. Users are free to use them,
-%D but can never be sure of their value once another macro is
-%D called. We only allocate things when they are yet
-%D undefined. This way we can't mess up other macro packages,
-%D but of course previous definitions can mess up our modules.
-
-\ifnocontextobject \donetrue \do \newif\ifdone \fi
-
-% no time now, will do a better test later (based on dimendef)
-
-\def\!!stringa{plain} \ifx\!!stringa\fmtname \donetrue \else
-\def\!!stringa{babel-plain} \ifx\!!stringa\fmtname \donetrue \else
- \donefalse \fi \fi
-
-\ifdone
- % plain defines some 15 dimens, so we need to define a few
- % dummies in order to get out of the scratch area
- \newdimen\scratchdimen % 16
- \newdimen\scratchdimen % 17
- \newdimen\scratchdimen % 18
- \newdimen\scratchdimen % 19
- \newdimen\scratchdimen % 20
- \newdimen\scratchdimen % 21
-\fi
-
-\ifnocontextobject \scratchcounter \do \newcount \scratchcounter \fi
-\ifnocontextobject \scratchtoks \do \newtoks \scratchtoks \fi
-\ifnocontextobject \scratchdimen \do \newdimen \scratchdimen \fi
-\ifnocontextobject \scratchskip \do \newskip \scratchskip \fi
-\ifnocontextobject \scratchmuskip \do \newmuskip \scratchmuskip \fi
-\ifnocontextobject \scratchbox \do \newbox \scratchbox \fi
-\ifnocontextobject \scratchread \do \newread \scratchread \fi
-\ifnocontextobject \scratchwrite \do \newwrite \scratchwrite \fi
-
-%D Watch out, in the past we ran into troubles with \type {\onepoint}
-%D (and others) mening something different in \LATEX\ then here. In
-%D such situations clashes are bound to happen. For this reason the
-%D assignments are no inside the test. We try to catch those situations
-%D but we cannot keep ahead of teh future.
-
-\ifnocontextobject \zeropoint \do \newdimen \zeropoint \zeropoint = 0pt \fi % else problems with dimen12
-\ifnocontextobject \onepoint \do \newdimen \onepoint \onepoint = 1pt \fi
-\ifnocontextobject \onebasepoint \do \newdimen \onebasepoint \onebasepoint = 1bp \fi
-\ifnocontextobject \zerocount \do \chardef \zerocount = 0 \fi
-\ifnocontextobject \plusone \do \chardef \plusone = 1 \fi
-\ifnocontextobject \minusone \do \newcount \minusone \minusone = -1 \fi
-\ifnocontextobject \thousandpoint \do \newdimen \thousandpoint \thousandpoint = 1000pt \fi
-\ifnocontextobject \onerealpoint \do \newdimen \onerealpoint \onerealpoint = 1pt \fi % latex has a funny \onepoint
-
-\ifnocontextobject \emptytoks \do \newtoks \emptytoks \fi
-\ifnocontextobject \nextbox \do \newbox \nextbox \fi
-\ifnocontextobject \nextdepth \do \newdimen \nextdepth \fi
-
-\ifnocontextobject \CONTEXTtrue \do \newif\ifCONTEXT \fi
-\ifnocontextobject \eightbitcharacterstrue \do \newif\ifeightbitcharacters \fi
-\ifnocontextobject \MPdrawingdonetrue \do \newif\ifMPdrawingdone \fi
-
-\ifnocontextobject \ifzeropt \do \let\ifzeropt\ifcase \fi
-
-%D \macros
-%D {@@...}
-%D
-%D We use symbolic name for \CATCODES. They can only be used
-%D when we are in unprotected state.
-
-\ifnocontextobject \@@escape \do \chardef\@@escape = 0 \fi
-\ifnocontextobject \@@begingroup \do \chardef\@@begingroup = 1 \fi
-\ifnocontextobject \@@endgroup \do \chardef\@@endgroup = 2 \fi
-\ifnocontextobject \@@endofline \do \chardef\@@endofline = 5 \fi
-\ifnocontextobject \@@ignore \do \chardef\@@ignore = 9 \fi
-\ifnocontextobject \@@space \do \chardef\@@space = 10 \fi
-\ifnocontextobject \@@letter \do \chardef\@@letter = 11 \fi
-\ifnocontextobject \@@other \do \chardef\@@other = 12 \fi
-\ifnocontextobject \@@active \do \chardef\@@active = 13 \fi
-\ifnocontextobject \@@comment \do \chardef\@@comment = 14 \fi
-
-\def\s!sp{sp}
-\def\s!pt{pt}
-\def\s!bp{bp}
-
-%D \macros
-%D {@EA,expanded,expandoneargafter,expandtwoargsafter}
-%D
-%D Also needed:
-
-\let\@EA=\expandafter \let\@@expanded\empty
-
-\def\expanded#1%
- {\long\xdef\@@expanded{\noexpand#1}\@@expanded}
-
-\def\expandoneargafter#1#2%
- {\@EA#1\@EA{#2}}
-
-\def\expandtwoargsafter#1#2#3%
- {\@EA\@EA\@EA#1\@EA\@EA\@EA{\@EA#2\@EA}\@EA{#3}}
-
-\def\@EAEAEA{\@EA\@EA\@EA}
-
-%D \macros
-%D {everyline,EveryLine,EveryPar}
-%D
-%D In \CONTEXT\ we use \type{\everypar} for special purposes
-%D and provide \type{\EveryPar} as an alternative. The same
-%D goes for \type{\everyline} and \type{\EveryLine}.
-
-\ifnocontextobject \everyline \do \newtoks\everyline \fi
-\ifnocontextobject \EveryPar \do \let\EveryPar =\everypar \fi
-\ifnocontextobject \EveryLine \do \let\EveryLine=\everyline \fi
-
-%D \macros
-%D {globallet}
-
-\def\globallet{\global\let}
-
-%D \macros
-%D {!!...}
-%D
-%D We reserve ourselves some scratch strings (i.e. macros)
-%D and some more counters.
-
-\ifnocontextobject \!!stringa \do \def\!!stringa {} \fi
-\ifnocontextobject \!!stringb \do \def\!!stringb {} \fi
-\ifnocontextobject \!!stringc \do \def\!!stringc {} \fi
-\ifnocontextobject \!!stringd \do \def\!!stringd {} \fi
-
-\ifnocontextobject \!!counta \do \newcount\!!counta {} \fi
-\ifnocontextobject \!!countb \do \newcount\!!countb {} \fi
-
-%D \macros
-%D {!!...}
-%D
-%D The next set of definitions speed up processing a bit.
-%D Furthermore it saves memory.
-
-\ifnocontextobject \!!zeropoint \do \def\!!zeropoint {0pt} \fi
-\ifnocontextobject \!!zerocount \do \def\!!zerocount {0} \fi
-\ifnocontextobject \!!tenthousand \do \def\!!tenthousand {10000} \fi
-
-\ifnocontextobject \!!width \do \def\!!width {width} \fi
-\ifnocontextobject \!!height \do \def\!!height {height} \fi
-\ifnocontextobject \!!depth \do \def\!!depth {depth} \fi
-
-\ifnocontextobject \!!plus \do \def\!!plus {plus} \fi
-\ifnocontextobject \!!minus \do \def\!!minus {minus} \fi
-\ifnocontextobject \!!to \do \def\!!to {to} \fi
-
-%D \macros
-%D {smashbox}
-%D
-%D The system modules offer a range of smashing macros, of
-%D which we only copied \type{\smashbox}.
-
-\ifnocontextobject \smashbox \do
-
- \def\smashbox#1%
- {\wd#1\zeropoint
- \ht#1\zeropoint
- \dp#1\zeropoint}
-
-\fi
-
-%D \macros
-%D {dowithnextbox}
-%D
-%D Also without further comment, we introduce a macro that
-%D gets the next box and does something usefull with it.
-%D Because the \type{\afterassignment} is executed inside the
-%D box, we have to use a \type{\aftergroup} too.
-
-\ifnocontextobject \dowithnextbox \do
-
- \def\dowithnextbox#1%
- {\def\dodowithnextbox{#1}%
- \afterassignment\dododowithnextbox
- \setbox\nextbox}
-
- \def\dododowithnextbox%
- {\aftergroup\dodowithnextbox}
-
-\fi
-
-%D \macros
-%D {setvalue,setevalue,setxvalue,,setgvalue,
-%D getvalue,
-%D letvalue,letgvalue}
-%D
-%D The next two macros expand their argument to
-%D \type{\argument}. The first one is used to define macro's
-%D the second one executes them.
-
-\ifnocontextobject \setvalue \do
-
- \def\setvalue #1{\expandafter\def\csname#1\endcsname}
- \def\setevalue#1{\expandafter\edef\csname#1\endcsname}
- \def\setgvalue#1{\expandafter\gdef\csname#1\endcsname}
- \def\setxvalue#1{\expandafter\xdef\csname#1\endcsname}
- \def\getvalue #1{\csname#1\endcsname}
- \def\letvalue #1{\expandafter\let\csname#1\endcsname}
- \def\letgvalue#1{\global\expandafter\let\csname#1\endcsname}
-\fi
-
-%D \macros
-%D {unexpanded}
-%D
-%D The next command can be used as prefixed for commands that
-%D need protection during tests and writing to files. This
-%D is a very \CONTEXT\ specific one.
-
-\ifnocontextobject \unexpanded \do
-
- \let\unexpanded\relax
-
-\fi
-
-%D \macros
-%D {convertargument}
-%D
-%D The original one offers a bit more, like global assignment, the
-%D the next implementation is however a bit more byte saving.
-
-\ifnocontextobject \convertargument \do
-
- \def\doconvertargument#1>{}
-
- \long\def\convertargument#1\to#2%
- {\long\def\convertedargument{#1}%
- \edef#2{\expandafter\doconvertargument\meaning\convertedargument}}
-
-\fi
-
-%D \macros
-%D {forgetall}
-%D
-%D Sometimes we have to disable interference of whatever kind
-%D of skips and mechanisms. The next macro resets some.
-
-\ifnocontextobject \forgetall \do
-
- \def\forgetall
- {\parskip\zeropoint
- \leftskip\zeropoint
- \parindent\zeropoint
- \everypar{}}
-
-\fi
-
-%D \macros
-%D {withoutpt,
-%D ScaledPointsToBigPoints,ScaledPointsToWholeBigPoints}
-%D
-%D \TEX\ lacks some real datastructure. We can however use
-%D \DIMENSIONS. This kind of trickery is needed when we want
-%D \TEX\ to communicate with the outside world (by means of
-%D \type{\specials}).
-
-\ifnocontextobject \withoutpt \do
-
- {\catcode`\.=\@@other
- \catcode`\p=\@@other
- \catcode`\t=\@@other
- \gdef\WITHOUTPT#1pt{#1}}
-
- \def\withoutpt#1%
- {\expandafter\WITHOUTPT#1}
-
- \def\ScaledPointsToBigPoints#1#2%
- {\scratchdimen=#1sp\relax
- \scratchdimen=.996264\scratchdimen
- \edef#2{\withoutpt{\the\scratchdimen}}}
-
- \def\ScaledPointsToWholeBigPoints#1#2%
- {\scratchdimen=#1sp
- \scratchdimen=.996264\scratchdimen
- \scratchcounter=\scratchdimen
- \advance\scratchcounter by 32768
- \divide\scratchcounter by 65536
- \edef#2{\the\scratchcounter}}
-
-\fi
-
-%D \macros
-%D {doprocessfile}
-%D
-%D This macro takes three arguments: the file number, the
-%D filename and a macro that handles the content of a read
-%D line.
-
-\newif\iffileprocessed
-
-\ifnocontextobject \doprocessfile \do
-
- \def\doprocessfile#1#2#3%
- {\openin#1=#2\relax
- \ifeof#1%
- \fileprocessedfalse
- \closein#1\relax
- \else
- \fileprocessedtrue
- \gdef\dofinishfile%
- {\closein#1\relax
- \global\let\doprocessline\relax}%
- \gdef\doprocessline%
- {\ifeof#1%
- \dofinishfile
- \else
- \global\read#1 to \fileline
- #3\relax
- \expandafter\doprocessline
- \fi}%
- \expandafter\doprocessline
- \fi}
-
-\fi
-
-%D \macros
-%D {uncatcodespecials}
-%D
-%D This one is taken from the \TEX\ book. The \CONTEXT\
-%D alternative is a bit different, but we hope this one works
-%D here.
-
-\ifx\dospecials\undefined
-
- \def\dospecials
- {\do\ \do\\\do\{\do\}\do\$%
- \do\#\do\^\do\_\do\&\do\%%
- \do\~\do\^^A\do\^^K}
-
-\fi
-
-\ifnocontextobject \uncatcodespecials \do
-
- \def\uncatcodespecials
- {\def\do##1{\catcode`##1=12 }\dospecials
- \catcode`\ =\@@space
- \catcode`\^^L=\@@ignore
- \catcode`\^^M=\@@endofline
- \catcode`\^^?=\@@ignore}
-
-\fi
-
-\ifnocontextobject \setnaturalcatcodes \do
-
-\def\setnaturalcatcodes
- {\catcode`\!=\@@other \catcode`\?=\@@other \catcode`\@=\@@other
- \catcode`\#=\@@other \catcode`\&=\@@other \catcode`\|=\@@other
- \catcode`\$=\@@other \catcode`\^=\@@other \catcode`\_=\@@other
- \catcode`\*=\@@other \catcode`\/=\@@other
- \catcode`\-=\@@other \catcode`+=\@@other
- \catcode`\==\@@other \catcode`\<=\@@other \catcode`\>=\@@other
- \catcode`\"=\@@other \catcode`\'=\@@other \catcode`\`=\@@other
- \catcode`\:=\@@other \catcode`\;=\@@other
- \catcode`\,=\@@other \catcode`\.=\@@other \catcode`\~=\@@other
- \catcode`\(=\@@other \catcode`\)=\@@other
- \catcode`\{=\@@other \catcode`\}=\@@other
- \catcode`\\=\@@other \catcode`\%=\@@other }
-
-\fi
-
-%D \macros
-%D {doglobal}
-%D
-%D Some \CONTEXT\ low level macros can have a \type{\doglobal}
-%D prefix. Let's just forget about that here:
-
-\ifnocontextobject \doglobal \do \let\doglobal\relax \fi
-
-%D The next obscure one is needed in the generic verbatim
-%D environment. When we end up with more of these, it's time
-%D to load the module \type{syst-gen}.
-
-\ifnocontextobject \doifincsnameelse \do
-
- \def\dodoifincsnameelse#1#2%
- {\def\dododoifincsnameelse##1#1##2##3\war%
- {\csname\if##2@iffalse\else iftrue\fi\endcsname}%
- \expandafter\dododoifincsnameelse#2#1@@\war}
-
- \long\def\doifincsnameelse#1#2#3#4%
- {\edef\@@instring{#1}%
- \expandafter\dodoifincsnameelse\expandafter{\@@instring}{#2}%
- #3%
- \else
- #4%
- \fi}
-
-\fi
-
-%D \macros
-%D {dostepwiserecurse, dorecurse, doloop, exitloop}
-%D
-%D The next loop macro is a real weak one, and does not offer
-%D the full \CONTEXT\ functionality, let alone nesting, but
-%D for simple purposes, its behaviour is acceptable.
-
-\newcount\recursecounter
-
-\def\dostepwiserecurse#1#2#3#4% very weak and rubishly version
- {\ifnum#2<#1\relax\else\dodostepwiserecurse{#1}{#2}{#3}{#4}\fi}
-
-\def\dodostepwiserecurse#1#2#3#4% very weak and rubishly version
- {\recursecounter=#1\relax
- \loop
- \edef\recurselevel{\the\recursecounter}%
- #4\relax
- \ifnum\recursecounter<#2\relax
- \advance\recursecounter by #3\relax
- \repeat}
-
-\def\dorecurse#1%
- {\dostepwiserecurse{1}{#1}{1}}
-
-\def\doloop
- {\dostepwiserecurse{1}{\maxdimen}{1}}
-
-\def\exitloop
- {\recursecounter=\maxdimen}
-
-%D \macros
-%D {ifundefined,doifdefined,doifundefined,
-%D doifdefinedelse,doifundefinedelse}
-%D
-%D These alteratives are not robust but suitable for simple
-%D usage. The official ones are a bit faster.
-
-\ifnocontextobject \doifdefined \do
-
- \def\ifundefined#1%
- {\expandafter\ifx\csname#1\endcsname\relax}
-
- \def\doifdefinedelse#1#2#3%
- {\expandafter\ifx\csname#1\endcsname\relax#3\else#2\fi}
-
- \def\doifundefinedelse#1#2#3%
- {\expandafter\ifx\csname#1\endcsname\relax#2\else#3\fi}
-
- \def\doifdefined#1#2%
- {\expandafter\ifx\csname#1\endcsname\relax\else#2\fi}
-
- \def\doifundefined#1#2%
- {\expandafter\ifx\csname#1\endcsname\relax#2\fi}
-
-\fi
-
-%D \macros
-%D {doifinstringelse}
-%D
-%D It seems like we end up with more and more macros here.
-%D Sigh.
-
-\ifnocontextobject \doifinstringelse \do
-
- \def\p!doifinstringelse#1#2%
- {\def\pp!doifinstringelse##1#1##2##3\war%
- {\csname if\if##2@fals\else tru\fi e\endcsname}%
- \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}}
-
- \long\def\doifinstringelse#1#2#3#4%
- {\edef\@@@instring{#1}%
- \@EA\p!doifinstringelse\@EA{\@@@instring}{#2}#3\else#4\fi}
-
-\fi
-
-%D \macros
-%D {twodigitrounding}
-%D
-%D We don't support rounding outside \CONTEXT. Sorry.
-
-\def\twodigitrounding#1{#1}
-
-%D \macros
-%D {lineheight}
-%D
-%D In \CONTEXT\ we have \type{\lineheight}, which in many
-%D cases matches \type {\baselineskip}.
-
-\ifnocontextobject \lineheight \do
-
- \def\lineheight{\baselineskip}
-
-\fi
-
-%D \macros
-%D {dohandletokens}
-%D
-%D The following macro is the simplified version, but good
-%D enough for day to day hacks.
-%D
-%D \starttyping
-%D \dohandletokens some text\with\somemacro
-%D \stoptyping
-
-\ifnocontextobject \dohandletokens \do
-
-\def\dodohandletokens
- {\ifx\next\end \else
- \docommando{\next}%
- \expandafter\dohandletokens
- \fi}
-
-\def\dohandletokens
- {\afterassignment\dodohandletokens\let\next= }
-
-\long\def\handletokens#1\with#2%
- {\let\docommando=#2%
- \dohandletokens#1\end}
-
-\fi
-
-%D Very reduced:
-
-\long\def\appendtoks#1\to#2%
- {\scratchtoks{#1}\expanded{#2{\the#2\the\scratchtoks}}}
-
-%D Well, also handy.
-
-\def\doiffileelse#1#2#3%
- {\immediate\openin\scratchread=#1\relax
- \ifeof\scratchread
- \def\next{#3}%
- \else
- \def\next{#2}%
- \fi
- \immediate\closein\scratchread
- \next}
-
-%D New.
-
-\let\donothing\empty
-
-%D Also new:
-
-\def\letempty #1{\let#1\empty}
-\def\globalletempty#1{\global\let#1\empty}
-
-\def\letvalueempty #1{\expandafter\let\csname#1\endcsname\empty}
-\def\letgvalueempty#1{\global\expandafter\let\csname#1\endcsname\empty}
-
-%D Sigh
-
-\def\settrue #1{\chardef#1\zerocount}
-\def\setfalse#1{\chardef#1\plusone}
-
-\let\newconditional = \setfalse
-\let\ifconditional = \ifcase
-
-%D That's it. Please forget this junk and take a look at how
-%D it should be done.
-
-\StopLatexHack \protect \endinput
diff --git a/systems/doc/pdftex/samplepdftex/supp-pdf.tex b/systems/doc/pdftex/samplepdftex/supp-pdf.tex
deleted file mode 100644
index 184cfb8158..0000000000
--- a/systems/doc/pdftex/samplepdftex/supp-pdf.tex
+++ /dev/null
@@ -1,2191 +0,0 @@
-%D \module
-%D [ file=supp-pdf,
-%D version=2004.12.16,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ to \PDF\ conversion,
-%D author=Hans Hagen \& others (see text),
-%D date=\currentdate,
-%D copyright=\PRAGMA]
-%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 These macros are written as generic as possible. Some
-%D general support macro's are loaded from a small module
-%D especially made for non \CONTEXT\ use. In this module I
-%D use a matrix transformation macro written by Tanmoy
-%D Bhattacharya. Thanks to extensive testing by Sebastian
-%D Ratz I was able to complete this module within reasonable
-%D time. This module has support for \METAPOST\ extensions
-%D built in.
-%D
-%D Daniel H. Luecking came up with a better (more precise)
-%D transformation method. You can recognize his comment by
-%D his initials. (We keep the old code around because it's a
-%D nice illustration on how a module like this evolves.)
-
-% Beware, we cannot use \zeropoint here since it may be
-% defined in the range \dimen 0 - 20 which we happen to use
-% as scratch registers; inside context we may consider
-% using dedicated registers.
-
-% fails: ( ) vect10 9.96265 fshow % \040\040\040\040
-%
-% some optimizations are possible, but we need to be generic
-
-%D First we take care of non||\CONTEXT\ use (newlines needed,
-%D expandafter not -).
-
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-
-\ifx \undefined \convertMPtoPDF \else \expandafter \endinput \fi
-
-\ifx \undefined \StartLatexHack \else \StartLatexHack \fi
-
-%D This module handles some \PDF\ conversion and insertions
-%D topics. By default, the macros use the \PDFTEX\ primitive
-%D \type{\pdfliteral} when available. Since \PDFTEX\ is now the
-%D default engine for \TEX\ distributions, we need a more complex
-%D test.
-
-\writestatus{loading}{Context Support Macros / PDF (2004.03.26)}
-
-\unprotect
-
-\ifx\PDFcode\undefined
- \ifx\pdfliteral\undefined
- \def\PDFcode#1{\special{PDF: #1}}
- \else\ifx\pdfoutput\undefined
- \def\PDFcode#1{\special{PDF: #1}}
- \else\ifcase\pdfoutput
- \def\PDFcode#1{\special{PDF: #1}}
- \else % pdftex as well as in pdf mode
- \let\PDFcode\pdfliteral
- \fi\fi\fi
-\else
- % we probably use context
-\fi
-
-%D First we define a handy constant:
-
-\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
-
-%D \macros
-%D {pdfimage,pdfimages,pdfclippedimage}
-%D
-%D Starting with pdftex version 14, images are included more
-%D natural to the form embedding. This enables alternative
-%D images to be embedded.
-%D
-%D \starttyping
-%D \pdfimage <optional dimensions> {file}
-%D \pdfimages <optional dimensions> {high res file} {low res file}
-%D \stoptyping
-%D
-%D The first one replaces the pre||version||14 original,
-%D while the latter provides alternative images.
-%D
-%D The next macro is dedicated to Maarten Gelderman, who
-%D needed to paste prepared \PDF\ pages into conference
-%D proceedings.
-%D
-%D \starttyping
-%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
-%D \stoptyping
-
-% \ifx\pdftexversion\undefined % no \m!systems for the sake of latex
-% \writestatus{systems}{Why not use pdf(e)TeX binaries?}
-% \protect
-% \expandafter\endinput
-% \fi
-
-\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
-
- \def\pdfimage#1#%
- {\dopdfimage{#1}}
-
- \def\dopdfimage#1#2%
- {\immediate\pdfximage#1{#2}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfimages#1#%
- {\dopdfimages{#1}}
-
- \def\dopdfimages#1#2#3%
- {\immediate\pdfximage#1{#2}%
- \immediate\pdfobj
- {[ << /Image \the\pdflastximage\space0 R
- /DefaultForPrinting true >> ]}%
- \immediate\pdfximage#1
- attr {/Alternates \the\pdflastobj\space0 R}{#3}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfclippedimage#1#% specs {file}{left}{right}{top}{bottom}
- {\dopdfclippedimage{#1}}
-
- \def\dopdfclippedimage#1#2#3#4#5#6%
- {\bgroup
- \pdfximage#1{#2}%
- \setbox\scratchbox\hbox
- {\pdfrefximage\pdflastximage}%
- \hsize\wd\scratchbox
- \advance\hsize -#3
- \advance\hsize -#4
- \vsize\ht\scratchbox
- \advance\vsize -#5
- \advance\vsize -#6
- \setbox\scratchbox\vbox to \vsize
- {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}%
- \pdfxform\scratchbox
- \pdfrefxform\pdflastxform
- \egroup}
-
-\fi \fi
-
-%D If you want to save a few hash entries, you may prefer the
-%D less readable alternatives, like:
-%D
-%D \starttyping
-%D \def\pdfimage#1#% This one is less readable but needs no additional
-%D {\bgroup % hash entry for the second stage macro.
-%D \def\pdfimage##1%
-%D {\immediate\pdfximage##1{#2}%
-%D \pdfrefximage\pdflastximage\egroup}}
-%D \stoptyping
-
-%D For old times sake we provide a few aliases. These will be
-%D removed some day.
-
-\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
-
- \let\pdfform =\pdfxform
- \let\pdflastform=\pdflastxform
- \let\pdfrefform =\pdfrefxform
-
-\fi \fi
-
-%D \macros
-%D {convertPDFtoPDF}
-%D
-%D \PDFTEX\ supports verbatim inclusion of \PDF\ code. The
-%D following macro takes care of inserting externally defined
-%D illustrations in \PDF\ format. According to a suggestion
-%D Tanmoy Bhattacharya posted to the \PDFTEX\ mailing list, we
-%D first skip lines until \type{stream} is reached and then
-%D copy lines until \type{endstream} is encountered. This
-%D scheme only works with vectorized graphics in which no
-%D indirect references to objects are used. Bitmaps also don't
-%D work. Interpreting their specifications is beyond the
-%D current implementation.
-%D
-%D \starttyping
-%D \convertPDFtoPDF
-%D {filename}
-%D {x scale} {y scale}
-%D {x offset } {y offset}
-%D {width} {height}
-%D \stoptyping
-%D
-%D When the scales are set to~1, the last last four values
-%D are the same as the bounding box, e.g.
-%D
-%D \starttyping
-%D \convertPDFtoPDF{mp-pra-1.pdf} {1} {1}{-1bp}{-1bp}{398bp}{398bp}
-%D \convertPDFtoPDF{mp-pra-1.pdf}{.5}{.5} {0bp} {0bp}{199bp}{199bp}
-%D \stoptyping
-%D
-%D Keep in mind, that this kind of copying only works for
-%D pure and valid pdf code (without fonts).
-
-%D The scanning and copying is straightforward and quite fast.
-%D To speed up things we use two constants.
-
-\def\@@PDFstream@@ {stream}
-\def\@@PDFendstream@@ {endstream}
-
-%D \macros
-%D {PDFmediaboxprefered}
-%D
-%D If needed, the macros can scan for the mediabox that
-%D specifies the dimensions and offsets of the graphic. When
-%D we say:
-%D
-%D \starttyping
-%D \PDFmediaboxpreferedtrue
-%D \stoptyping
-%D
-%D the mediabox present in the file superseded the user
-%D specified, already scaled and calculated offset and
-%D dimensions. Beware: the user supplied values are not the
-%D bounding box ones!
-
-%D This code has become obsolete.
-
-% \newif\ifPDFmediaboxprefered
-
-\def\setPDFboundingbox#1#2#3#4#5#6%
- {\dimen0=#1\dimen0=#5\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
- \dimen0=#3\dimen0=#5\dimen0
- \xdef\PDFwidth{\the\dimen0}%
- \dimen0=#2\dimen0=#6\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
- \dimen0=#4\dimen0=#6\dimen0
- \xdef\PDFheight{\the\dimen0}%
- \global\let\PDFxoffset\PDFxoffset
- \global\let\PDFyoffset\PDFyoffset}
-
-\def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
- {\dimen2=#2bp\dimen2=-\dimen2 % \dimen2=-#2bp also works since tex handles --
- \dimen4=#3bp\dimen4=-\dimen4 % \dimen4=-#3bp also works since tex handles --
- \dimen6=#4bp\advance\dimen6 \dimen2
- \dimen8=#5bp\advance\dimen8 \dimen4
- \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
-
-% \def\checkPDFmediabox#1/MediaBox#2#3\done
-% {\ifx#2\relax \else
-% \message{mediabox}%
-% \setPDFmediabox#2#3\done
-% \fi}
-
-%D We use the general macro \type{\doprocessfile} and feed this
-%D with a line handling macro that changes it's behavior when
-%D the stream operators are encountered.
-
-% \def\handlePDFline
-% {\ifx\@@PDFstream@@\fileline
-% \let\doprocessPDFline\copyPDFobject
-% \startPDFtoPDF
-% \else\ifPDFmediaboxprefered
-% \expandafter\checkPDFmediabox\fileline/MediaBox\relax\done
-% \fi\fi}
-
-% \def\copyPDFobject
-% {\ifx\@@PDFendstream@@\fileline
-% \ifPDFmediaboxprefered
-% \let\doprocessPDFline\findPDFmediabox
-% \else
-% \let\doprocessPDFline\relax
-% \fi
-% \else
-% \advance\scratchcounter 1
-% \PDFcode{\fileline}%
-% \fi}
-
-% \def\findPDFmediabox
-% {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}
-
-%D The main conversion macro wraps the \PDF\ codes in a box
-%D that is output as an object. The graphics are embedded
-%D in~\type{q} and~\type{Q} and are scaled and positioned using
-%D one transform call (\type{cm}). This saves some additional
-%D scaling.
-
-%D \starttyping
-%D \def\startPDFtoPDF%
-%D {\setbox0=\vbox\bgroup
-%D \message{[PDF to PDF \PDFfilename}%
-%D \forgetall
-%D \scratchcounter=0
-%D \let\stopPDFtoPDF=\dostopPDFtoPDF}
-%D
-%D \def\dostopPDFtoPDF%
-%D {\ifnum\scratchcounter<0 \scratchcounter=1 \fi
-%D \message{(\the\scratchcounter\space lines)]}%
-%D \egroup
-%D \wd0=\PDFwidth
-%D \vbox to \PDFheight
-%D {\forgetall
-%D \vfill
-%D \PDFcode{q}%
-%D \PDFcode{1 0 0 1 \PDFxoffset\space \PDFyoffset\space cm}%
-%D \PDFcode{\PDFxscale\space 0 0 \PDFyscale\space 0 0 cm}%
-%D \box0
-%D \PDFcode{Q}}}
-%D
-%D \def\stopPDFtoPDF%
-%D {\message{[PDF to PDF \PDFfilename\space not found]}}
-%D
-%D \def\convertPDFtoPDF#1#2#3#4#5#6#7%
-%D {\bgroup
-%D \def\PDFfilename{#1}%
-%D \def\PDFxscale {#2}%
-%D \def\PDFyscale {#3}%
-%D \setPDFboundingbox{#4}{#5}{#6}{#7}{1}{1}%
-%D \uncatcodespecials
-%D \endlinechar=-1
-%D \let\doprocessPDFline=\handlePDFline
-%D \doprocessfile\scratchread\PDFfilename\doprocessPDFline
-%D \stopPDFtoPDF
-%D \egroup}
-
-\def\convertPDFtoPDF#1#2#3#4#5#6#7%
- {\message{[PDF to PDF use \string\PDFcode instead]}%
- \vbox{use the direct method instead}}
-
-%D \macros
-%D {dogetPDFmediabox}
-%D
-%D The next macro can be used to find the mediabox of a \PDF\
-%D illustration.
-%D
-%D \starttyping
-%D \dogetPDFmediabox
-%D {filename}
-%D {new dimen}{new dimen}{new dimen}{new dimen}
-%D \stoptyping
-%D
-%D Beware of dimen clashes: this macro uses the 5~default
-%D scratch registers! When no file or mediabox is found, the
-%D dimensions are zeroed.
-
-\def\dogetPDFmediabox#1#2#3#4#5%
- {\bgroup
- \def\PDFxscale{1}%
- \def\PDFyscale{1}%
- \uncatcodespecials
- \endlinechar\minusone
- \def\checkPDFtypepage##1/Type /Page##2##3\done%
- {\ifx##2\relax
- \else\if##2s% accept /Page and /Pages
- \let\doprocessPDFline\findPDFmediabox
- \else
- \let\doprocessPDFline\findPDFmediabox
- \fi\fi}%
- \def\findPDFtypepage
- {\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}%
- \def\checkPDFmediabox##1/MediaBox##2##3\done%
- {\ifx##2\relax \else
- \setPDFmediabox##2##3\done
- \fileprocessedtrue
- \fi}%
- \def\findPDFmediabox
- {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}%
- \let\doprocessPDFline\findPDFtypepage
- \doprocessfile\scratchread{#1}\doprocessPDFline
- \egroup
- \ifx\PDFxoffset\undefined
- #2\zeropoint
- #3\zeropoint
- #4\zeropoint
- #5\zeropoint
- \else
- #2=\PDFxoffset\onebasepoint
- #3=\PDFyoffset\onebasepoint
- #4=\PDFwidth
- #5=\PDFheight
- \fi}
-
-%D \macros
-%D {convertMPtoPDF}
-%D
-%D The next set of macros implements \METAPOST\ to \PDF\
-%D conversion. Because we want to test as fast as possible, we
-%D first define the \POSTSCRIPT\ operators that \METAPOST\
-%D uses. We don't define irrelevant ones, because these are
-%D skipped anyway.
-
-%D The converter can be made a bit faster by replacing the
-%D two test macros (the ones with the many \type {\if's}) by
-%D a call to named branch macros (something \typ {\getvalue
-%D {xPSmoveto}}. For everyday documents with relatively
-%D small graphics the gain in speed can be neglected.
-
-\def \PScurveto {curveto}
-\def \PSlineto {lineto}
-\def \PSmoveto {moveto}
-\def \PSshowpage {showpage}
-\def \PSnewpath {newpath}
-\def \PSfshow {fshow}
-\def \PSclosepath {closepath}
-\def \PSfill {fill}
-\def \PSstroke {stroke}
-\def \PSclip {clip}
-\def \PSrlineto {rlineto}
-\def \PSsetlinejoin {setlinejoin}
-\def \PSsetlinecap {setlinecap}
-\def \PSsetmiterlimit {setmiterlimit}
-\def \PSsetgray {setgray}
-\def \PSsetrgbcolor {setrgbcolor}
-\def \PSsetcmykcolor {setcmykcolor}
-\def \PSsetdash {setdash}
-\def \PSgsave {gsave}
-\def \PSgrestore {grestore}
-\def \PStranslate {translate}
-\def \PSscale {scale}
-\def \PSconcat {concat}
-\def \PSdtransform {dtransform}
-\def \PSsetlinewidth {setlinewidth}
-\def \PSpop {pop}
-
-\def \PSnfont {nfont} % was needed for TUG98 proceedings
-\def \PSspecial {special} % extensions to MetaPost
-
-%D A previous version set \type {%} to ignore, which
-%D simplified the following definitions. At the start of
-%D conversion the percent character was made active again.
-%D Because the whole graphic is one paragraph (there are no
-%D empty lines) this does not give the desired effect. This
-%D went unnoticed untill Scott Pakin sent me a test file
-%D percent characters in a string. So, from now on we have
-%D to prefix the following strings with percentages.
-
-\edef \PSBoundingBox {\letterpercent\letterpercent BoundingBox:}
-\edef \PSHiResBoundingBox {\letterpercent\letterpercent HiResBoundingBox:}
-\edef \PSExactBoundingBox {\letterpercent\letterpercent ExactBoundingBox:}
-\edef \PSMetaPostSpecial {\letterpercent\letterpercent MetaPostSpecial:}
-\edef \PSMetaPostSpecials {\letterpercent\letterpercent MetaPostSpecials:}
-\edef \PSPage {\letterpercent\letterpercent Page:}
-
-%D By the way, the \type {setcmykcolor} operator is not
-%D output by \METAPOST\ but can result from converting the
-%D \cap{RGB} color specifications, as implemented in
-%D \type{supp-mps}.
-
-%D In \POSTSCRIPT\ arguments precede the operators. Due to the
-%D fact that in some translations we need access to those
-%D arguments, and also because sometimes we have to skip them,
-%D we stack them up. The stack is one||dimensional for non path
-%D operators and two||dimensional for operators inside a path.
-%D This is because we have to save the whole path for
-%D (optional) postprocessing. Values are pushed onto the stack
-%D by:
-%D
-%D \starttyping
-%D \setMPargument {value}
-%D \stoptyping
-%D
-%D They can be retrieved by the short named macros:
-%D
-%D \starttyping
-%D \gMPa {number}
-%D \gMPs {number}
-%D \stoptyping
-%D
-%D When scanning a path specification, we also save the
-%D operator, using
-%D
-%D \starttyping
-%D \setMPkeyword {n}
-%D \stoptyping
-%D
-%D The path drawing operators are coded for speed: \type{clip},
-%D \type{stroke}, \type{fill} and \type{fillstroke} become
-%D 1, 2, 3 and~4.
-%D
-%D When processing the path this code can be retrieved
-%D using
-%D
-%D \starttyping
-%D \getMPkeyword % {n}
-%D \stoptyping
-%D
-%D When setting an argument, the exact position on the stack
-%D depends on the current value of the \COUNTERS\
-%D \type{\nofMPsegments} and \type{\nofMParguments}.
-
-\newcount\nofMPsegments
-\newcount\nofMParguments
-
-%D These variables hold the coordinates. The argument part of
-%D the stack is reset by:
-%D
-%D \starttyping
-%D \resetMPstack
-%D \stoptyping
-%D
-%D We use the prefix \type{@@MP} to keep the stack from
-%D conflicting with existing macros. To speed up things a bit
-%D more, we use the constant \type{\@@MP}.
-
-\def\@@MP{@@MP}
-
-\def\setMPargument% #1%
- {\advance\nofMParguments \plusone
- \expandafter\def
- \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname} % {#1}
-
-\def\letMPargument
- {\advance\nofMParguments \plusone
- \expandafter\let
- \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname}
-
-\def\setMPsequence#1 %
- {\advance\nofMParguments \plusone
- \expandafter\def
- \csname\@@MP\the\nofMPsegments\the\nofMParguments\endcsname{#1}%
- \handleMPsequence}
-
-\def\gMPa#1%
- {\csname\@@MP0\number#1\endcsname}
-
-\def\gMPs#1%
- {\csname\@@MP\the\nofMPsegments\number#1\endcsname}
-
-\def\dogMPa#1%
- {\@EAEAEA\do\csname\@@MP0\number#1\endcsname}
-
-\def\setMPkeyword#1 %
- {\expandafter\def\csname\@@MP\the\nofMPsegments0\endcsname{#1}%
- \advance\nofMPsegments \plusone
- \nofMParguments\zerocount}
-
-\def\getMPkeyword% #1%
- {\csname\@@MP\the\nofMPsegments0\endcsname} % {\csname\@@MP#10\endcsname}
-
-%D When we reset the stack, we can assume that all further
-%D comment is to be ignored and handled in strings.
-%D By redefining the reset macro after the first call, we
-%D save some run time. Only use this macro after all
-%D comments are processed and use the simple alternative
-%D when dealing with comments.
-
-\def\doresetMPstack
- {\nofMParguments\zerocount}
-
-\def\resetMPstack
- {\let\handleMPgraphic\handleMPendgraphic
- \let\resetMPstack\doresetMPstack
- \resetMPstack}
-
-%D The arguments are saved with the preceding command
-%D \type{\do}. By default this command expands to nothing, but
-%D when we deal with strings it's used to strip off the
-%D \type{(} and \type{)}.
-%D
-%D Strings are kind of tricky, because characters can be
-%D passed verbatim \type{(hello)}, by octal number
-%D \type{(\005)} or as command \type{(\()}. We therefore
-%D cannot simply ignore \type{(} and \type{)}, the way we do
-%D with \type{[} and \type{]}. Another complication is that
-%D strings may contain characters that normally have a
-%D special meaning in \TEX, like \type{$} and \type{{}}.
-%D
-%D A previous solution made \type{\} an active character and
-%D let it look ahead for a number or characters. We had to
-%D abandon this scheme because of the need for verbatim
-%D support. The next solution involved some \CATCODE\
-%D trickery but works well.
-
-\def\octalMPcharacter#1#2#3%
- {\char'#1#2#3\relax}
-
-\bgroup
-\catcode`\|=\@@comment
-\catcode`\%=\@@active
-\catcode`\[=\@@active
-\catcode`\]=\@@active
-\catcode`\{=\@@active
-\catcode`\}=\@@active
-\catcode`B=\@@begingroup
-\catcode`E=\@@endgroup
-\gdef\ignoreMPspecials|
- B\let%\letterpercent|
- \def[BE|
- \def]BE|
- \def{BE|
- \def}BEE
-\gdef\obeyMPspecials|
- B\def%B\char 37\relax E|
- \def[B\char 91\relax E|
- \def]B\char 93\relax E|
- \def{B\char123\relax E|
- \def}B\char125\relax EE
-\gdef\setMPspecials|
- B\setnaturalcatcodes
- \catcode`\\=\@@escape
- \catcode`\%=\@@active
- \catcode`\[=\@@active
- \catcode`\]=\@@active
- \catcode`\{=\@@active
- \catcode`\}=\@@active
- \lccode`\-=0 | latex sets this to `\-
- \lccode`\%=`\% | otherwise it's seen as a number
- \def\(B\char40\relax E|
- \def\)B\char41\relax E|
- \def\\B\char92\relax E|
- \def\0B\octalMPcharacter0E|
- \def\1B\octalMPcharacter1E|
- \def\2B\octalMPcharacter2E|
- \def\3B\octalMPcharacter3E|
- \def\4B\octalMPcharacter4E|
- \def\5B\octalMPcharacter5E|
- \def\6B\octalMPcharacter6E|
- \def\7B\octalMPcharacter7E|
- \def\8B\octalMPcharacter8E|
- \def\9B\octalMPcharacter9EE
-\egroup
-
-%D We use the comment symbol as a sort of trigger. Beware!
-%D The whole graphic is seen as on eparagraph, which means
-%D that we cannot change the catcodes in between.
-
-\bgroup
-\catcode`\%=\@@active
-\gdef\startMPscanning{\let%=\startMPconversion}
-\egroup
-
-%D In earlier versions we used the sequence
-%D
-%D \starttyping
-%D \expandafter\handleMPsequence\input filename\relax
-%D \stoptyping
-%D
-%D Persistent problems in \LATEX\ however forced us to use a
-%D different scheme. Every \POSTSCRIPT\ file starts with a
-%D \type{%}, so we temporary make this an active character
-%D that starts the scanning and redefines itself. (The problem
-%D originates in the redefinition by \LATEX\ of the
-%D \type{\input} primitive.)
-
-\def\startMPconversion
- {\ignoreMPspecials
- \handleMPsequence}
-
-%D Here comes the main loop. Most arguments are numbers. This
-%D means that they can be recognized by their \type{\lccode}.
-%D This method saves a lot of processing time. We could
-%D speed up the conversion by handling the \type{path}
-%D seperately.
-
-\def\@EAEAEA{\expandafter\expandafter\expandafter} % to be sure
-
-\def\dohandleMPsequence#1%
- {\ifdone
- \ifcase\lccode`#1\relax
- \@EAEAEA\dohandleMPsequenceA
- \else
- \@EAEAEA\dohandleMPsequenceB
- \fi
- \else
- \@EA\dohandleMPsequenceC
- \fi#1}
-
-%\def\dohandleMPsequenceA#1 %
-% {\setMPargument{#1}%
-% \handleMPsequence}
-
-\let\dohandleMPsequenceA\setMPsequence
-
-\def\dohandleMPsequenceB#1 %
- {\edef\somestring{#1}%
- \ifx\somestring\PSmoveto
- \edef\lastMPmoveX{\gMPa1}%
- \edef\lastMPmoveY{\gMPa2}%
- \PDFcode{\!MPgMPa1 \!MPgMPa2 m}%
- \resetMPstack
- \else\ifx\somestring\PSnewpath
- \let\handleMPsequence\handleMPpath
- \else\ifx\somestring\PSgsave
- \PDFcode{q}%
- \resetMPstack
- \else\ifx\somestring\PSgrestore
- \PDFcode{Q}%
- \resetMPstack
- \else\ifx\somestring\PSdtransform % == setlinewidth
- \let\handleMPsequence\handleMPdtransform
- % after that we will encounter more tokens until setlinewidth+pop
- % or pop+setlinewidth which we catch next; we explicitly need to
- % reset the stack since [] n setdash may follow; a more clever
- % approach would be to read on till the condition is met, but it's
- % the only pop / setlinewidth we will encounter so ...
- \else\ifx\somestring\PSsetlinewidth
- % already handled in dtransform
- \resetMPstack
- \else\ifx\somestring\PSpop
- % already handled in dtransform
- \resetMPstack
- \else\ifx\somestring\PSconcat
- \PDFcode{\gMPa1 \gMPa2 \gMPa3 \gMPa4 \gMPa5 \gMPa6 cm}%
- \resetMPstack
- \else\ifx\somestring\PSsetrgbcolor
- \handleMPrgbcolor
- \resetMPstack
- \else\ifx\somestring\PSsetcmykcolor
- \handleMPcmykcolor
- \resetMPstack
- \else\ifx\somestring\PSsetgray
- \handleMPgraycolor
- \resetMPstack
- \else\ifx\somestring\PStranslate
- \PDFcode{1 0 0 1 \gMPa1 \gMPa2 cm}%
- \resetMPstack
- \else\ifx\somestring\PSsetdash
- \handleMPsetdash
- \resetMPstack
- \else\ifx\somestring\PSsetlinejoin
- \PDFcode{\gMPa1 j}%
- \resetMPstack
- \else\ifx\somestring\PSsetmiterlimit
- \PDFcode{\gMPa1 M}%
- \resetMPstack
- \else\ifx\somestring\PSfshow
- \PDFcode{n}%
- \handleMPfshow
- \resetMPstack
- \else\ifx\somestring\PSsetlinecap
- \PDFcode{\gMPa1 J}%
- \resetMPstack
- \else\ifx\somestring\PSrlineto
- \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
- \resetMPstack
- \else\ifx\somestring\PSscale
- \PDFcode{\gMPa1 0 0 \gMPa2 0 0 cm}%
- \resetMPstack
- \else\ifx\somestring\PSspecial
- \handleMPspecialcommand
- \resetMPstack
- \else
- \handleMPgraphic% {#1}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \handleMPsequence}
-
-\def\dohandleMPsequenceC#1 %
- {\edef\somestring{#1}%
- \handleMPgraphic % {#1}%
- \handleMPsequence}
-
-%D Since colors are not sensitive to transformations, they
-%D are sometimes used for signaling. Therefore, we handle them
-%D separately. The next macro can be redefined if needed.
-
-\def\handleMPrgbcolor
- {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 rg
- \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 RG}}
-
-\def\handleMPcmykcolor
- {\PDFcode{\!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 k
- \!MPgMPa1 \!MPgMPa2 \!MPgMPa3 \!MPgMPa4 K}}
-
-\def\handleMPgraycolor
- {\PDFcode{\!MPgMPa1 g
- \!MPgMPa1 G}}
-
-\def\handleMPspotcolor
- {\PDFcode{0 g
- 0 G}}
-
-%D Beginning and ending the graphics is taken care of by the
-%D macro \type{\handleMPgraphic}, which is redefined when
-%D the first graphics operator is met.
-
-\def\handleMPendgraphic % #1%
- {\ifx\somestring\PSshowpage
- \let\handleMPsequence\finishMPgraphic
- \else
- \letMPargument\somestring % {#1}%
- \fi}
-
-\def\handleMPbegingraphic % #1%
- {\ifx\somestring\PSBoundingBox
- \def\handleMPsequence{\handleMPboundingbox1}%
- \else\ifx\somestring\PSHiResBoundingBox
- \def\handleMPsequence{\handleMPboundingbox2}%
- \else\ifx\somestring\PSExactBoundingBox
- \def\handleMPsequence{\handleMPboundingbox3}%
- \else\ifx\somestring\PSshowpage
- \let\handleMPsequence\finishMPgraphic
- \else\ifx\somestring\PSPage
- \let\handleMPsequence\handleMPpage
- \else\ifx\somestring\PSMetaPostSpecials
- \let\handleMPsequence\handleMPspecialscomment
- \else\ifx\somestring\PSMetaPostSpecial
- \let\handleMPsequence\handleMPspecialcomment
- \else
- \letMPargument\somestring % {#1}%
- \fi\fi\fi\fi\fi\fi\fi}
-
-\let\handleMPgraphic=\handleMPbegingraphic
-
-%D We check for three kind of bounding boxes: the normal one
-%D and two high precision ones:
-%D
-%D \starttyping
-%D BoundingBox: llx lly ucx ucy
-%D HiResBoundingBox: llx lly ucx ucy
-%D ExactBoundingBox: llx lly ucx ucy
-%D \stoptyping
-%D
-%D The original as well as the recalculated dimensions are
-%D saved for later use.
-
-\newif\ifskipemptyMPgraphic \skipemptyMPgraphicfalse
-
-\chardef\currentMPboundingbox=0
-
-\def\handleMPboundingbox#1#2 #3 #4 #5
- {\ifnum#1>\currentMPboundingbox
- \xdef\MPllx{#2}\xdef\MPlly{#3}%
- \xdef\MPurx{#4}\xdef\MPury{#5}%
- \dimen0=#2\onepoint
- \dimen0=-\MPxscale\dimen0
- \dimen2=#3\onepoint
- \dimen2=-\MPyscale\dimen2
- \xdef\MPxoffset{\withoutpt\the\dimen0}%
- \xdef\MPyoffset{\withoutpt\the\dimen2}%
- \dimen0=#2\onebasepoint
- \dimen0=-\dimen0
- \dimen2=#3\onebasepoint
- \dimen2=-\dimen2
- \advance\dimen0 #4\onebasepoint
- \dimen0=\MPxscale\dimen0
- \xdef\MPwidth{\the\dimen0}%
- \advance\dimen2 #5\onebasepoint
- \xdef\MPyshift{\the\dimen2}% unscaled
- \dimen2=\MPyscale\dimen2
- \xdef\MPheight{\the\dimen2}%
- \chardef\currentMPboundingbox#1\relax
- \fi
- \doresetMPstack
- \let\handleMPsequence\dohandleMPsequence
- \let\next\handleMPsequence
- \ifskipemptyMPgraphic
- \ifdim\MPheight=\zeropoint\relax\ifdim\MPwidth=\zeropoint\relax
- \def\next{\endinput\finishMPgraphic}%
- \fi\fi
- \fi
- \next}
-
-%D Unless defined otherwise, we simply ignore specialcomments.
-
-\def\handleMPspecialcomment
- {\doresetMPstack
- \let\handleMPsequence\dohandleMPsequence
- \handleMPsequence}
-
-\let\handleMPspecialscomment\handleMPspecialcomment
-
-%D We use the \type{page} comment as a signal that
-%D stackbuilding can be started.
-
-\def\handleMPpage #1 #2
- {\doresetMPstack
- \donetrue
- \let\handleMPsequence\dohandleMPsequence
- \handleMPsequence}
-
-%D The same applies to the special extensions.
-
-\def\handleMPspecialcommand
- {\doresetMPstack
- \let\handleMPsequence\dohandleMPsequence
- \handleMPsequence}
-
-%D \METAPOST\ draws its dots by moving to a location and
-%D invoking \type{0 0 rlineto}. This operator is not
-%D available in \PDF. Our solution is straightforward: we draw
-%D a line from $(current\_x, current\_y)$ to itself. This
-%D means that the arguments of the preceding \type{moveto} have
-%D to be saved.
-
-\def\lastMPmoveX{0}
-\def\lastMPmoveY{0}
-
-%D These saved coordinates are also used when we handle the
-%D texts. Text handling proved to be a bit of a nuisance, but
-%D finally I saw the light. It proved that we also had to
-%D take care of \type{(split arguments)}.
-
-\def\setMPfshowfont#1#2%
- {\font\temp=#1\space at #2\relax\temp}
-
-\let\MPfshowcommand\empty
-
-\def\dohandleMPfshow
- {\bgroup
- \setbox\scratchbox\hbox
- {\obeyMPspecials
- \edef\size{\gMPa\nofMParguments}%
- \ifx\size\PSnfont % round font size (to pt)
- \advance\nofMParguments \minusone
- \expandafter\scratchdimen\gMPa\nofMParguments\onepoint\relax
- \ifdim\scratchdimen<\onepoint
- \def\size{1pt}%
- \else
- \advance\scratchdimen .5\onepoint
- \def\size##1.##2\relax{\def\size{##1pt}}%
- \expandafter\size\the\scratchdimen\relax
- \fi
- \else
- \edef\size{\size bp}%
- \fi
- \advance\nofMParguments \minusone
- %\font\temp=\gMPa\nofMParguments\space at \size
- \let\temp\relax % to be sure
- \setMPfshowfont{\gMPa\nofMParguments}\size
- \advance\nofMParguments \minusone
- \temp
- \MPfshowcommand
- {\ifnum\nofMParguments=\plusone
- \def\do(##1){##1}%
- \dogMPa1%
- \else
- % we need to catch ( a ) (a a a) (\123 \123 \123) etc
- \scratchcounter\plusone
- \def\dodo##1% Andreas Fieger's bug: (\304...)
- {\edef\!!stringa{##1\empty\empty}% and another one: ( 11) -> \ifx 11
- \ifx\!!stringa\MPspacechar\MPspacechar\else\expandafter##1\fi}%
- \def\do(##1{\dodo{##1}}%
- \dogMPa\scratchcounter\MPspacechar
- \let\do\relax
- \loop
- \advance\scratchcounter \plusone
- \ifnum\scratchcounter<\nofMParguments\relax
- \gMPa\scratchcounter\MPspacechar
- \repeat
- \def\do##1){\dodo{##1}}%
- \dogMPa\scratchcounter
- \fi
- \unskip}}%
- %
- % this fails in some versions of pdftex
- %
- % \dimen0=\lastMPmoveY bp
- % \advance\dimen0 by \ht0
- % \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
- % \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
- % \dimen0=\ht0
- % \advance\dimen0 by \dp0
- % \box0
- % \vskip-\dimen0
- % \PDFcode{Q}%
- % \egroup}
- %
- \setbox\scratchbox\hbox
- {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint\box\scratchbox}%
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \wd\scratchbox\zeropoint
- \box\scratchbox
- \egroup}
-
-\let\handleMPfshow\dohandleMPfshow % so we can overload this one later
-
-%D You could consider the following definition to be the most
-%D natural one.
-
-% \def\MPspacechar{\space} % normal case
-
-\def\MPspacechar{\char32\relax} % old solution does not work with math
-
-%D However, the following implementation is more robust, since
-%D some fonts have funny visible spaces in the space slot. This
-%D gives a mismatch between the space that \METAPOST\ took into
-%D account and the \quote {natural} space. This only happens in
-%D labels, since \type {btex}||\type {etex} thingies don't have
-%D spaces. This phenomena showed up when preparing the
-%D \METAFUN\ manual, where Palatino fonts are used. We can
-%D safely assume that \METAPOST\ considers \type {\char32} to
-%D be the space.
-
-\def\MPspacechar{\setbox\scratchbox\hbox{\char32}\kern\wd\scratchbox}
-
-%D Well, this does not work with math fonts, so:
-
-\def\MPspacechar{\char32\relax}
-
-%D Most operators are just converted and keep their
-%D arguments. Dashes however need a bit different treatment,
-%D otherwise \PDF\ viewers complain loudly. Another
-%D complication is that one argument comes after the \type{]}.
-%D When reading the data, we simply ignore the array boundary
-%D characters. We save ourselves some redundant newlines and
-%D at the same time keep the output readable by packing the
-%D literals.
-
-\def\handleMPsetdash
- {\bgroup
- \def\somestring{[}%
- \scratchcounter\plusone
- \loop
- \ifnum\scratchcounter<\nofMParguments
- \edef\somestring{\somestring\space\gMPa\scratchcounter}%
- \advance\scratchcounter \plusone
- \repeat
- \edef\somestring{\somestring]\gMPa\scratchcounter\space d}%
- \PDFcode{\somestring}%
- \egroup}
-
-%D The \type{setlinewidth} commands looks a bit complicated. There are
-%D two alternatives, that result in a similar look in both
-%D $x$- and $y$-dorection. As John Hobby says:
-%D
-%D \startnarrower \switchtobodyfont[ss]
-%D \starttyping
-%D x 0 dtransform exch truncate exch idtransform pop setlinewidth
-%D 0 y dtransform truncate idtransform setlinewidth pop
-%D \stoptyping
-%D
-%D These are just fancy versions of \type{x setlinewidth} and
-%D \type{y setlinewidth}. The \type{x 0 ...} form is used if
-%D the path is {\em primarily vertical}. It rounds the width
-%D so that vertical lines come out an integer number of pixels
-%D wide in device space. The \type{0 y ...} form does the same
-%D for paths that are {\em primarily horizontal}. The reason
-%D why I did this is Knuth insists on getting exactly the
-%D widths \TEX\ intends for the horizontal and vertical rules
-%D in \type{btex...etex} output. (Note that PostScript scan
-%D conversion rules cause a horizontal or vertical line of
-%D integer width $n$ in device space to come out $n+1$ pixels
-%D wide, regardless of the phase relative to the pixel grid.)
-%D \stopnarrower
-%D
-%D The common operator in these sequences is \type{dtransform},
-%D so we can use this one to trigger setting the linewidth.
-
-\def\handleMPdtransform
- {\ifdim\gMPa1\onepoint>\zeropoint
- \PDFcode{\gMPa1 w}%
- \def\next##1 ##2 ##3 ##4 ##5 ##6 {\handleMPsequence}%
- \else
- \PDFcode{\gMPa2 w}%
- \def\next##1 ##2 ##3 ##4 {\handleMPsequence}%
- \fi
- \let\handleMPsequence\dohandleMPsequence
- \resetMPstack
- \next}
-
-%D The most complicated command is \type{concat}. \METAPOST\
-%D applies this operator to \type{stroke}. At that moment the
-%D points set by \type{curveto} and \type{moveto}, are already
-%D fixed. In \PDF\ however the \type{cm} operator affects the
-%D points as well as the pen (stroke). Like more \PDF\
-%D operators, \type{cm} is defined in a bit ambiguous way.
-%D The only save route for non||circular penshapes, is saving
-%D the path, recalculating the points and applying the
-%D transformation matrix in such a way that we can be sure
-%D that its behavior is well defined. This comes down to
-%D inverting the path and applying \type{cm} to that path as
-%D well as the pen. This all means that we have to save the
-%D path.
-
-%D In \METAPOST\ there are three ways to handle a path $p$:
-%D
-%D \starttyping
-%D draw p; fill p; filldraw p;
-%D \stoptyping
-%D
-%D The last case outputs a \type{gsave fill grestore} before
-%D \type{stroke}. Handling the path outside the main loops
-%D saves about 40\% run time.\footnoot{We can save some more by
-%D following the \METAPOST\ output routine, but for the moment
-%D we keep things simple.} Switching between the main loop and
-%D the path loop is done by means of the recursely called
-%D macro \type{\handleMPsequence}.
-
-\def\handleMPpath
- {\chardef\finiMPpath0
- \let\closeMPpath\relax
- \let\flushMPpath\flushnormalMPpath
- \resetMPstack
- \nofMPsegments\plusone
- \let\handleMPsequence\dohandleMPpath
- \dohandleMPpath}
-
-%D Most paths are drawn with simple round pens. Therefore we've
-%D split up the routine in two.
-
-\def\flushnormalMPsegment
- {\ifcase\getMPkeyword\relax
- \PDFcode{\!MPgMPs1 \!MPgMPs2 l}%
- \or
- \PDFcode{\!MPgMPs1 \!MPgMPs2 \!MPgMPs3 \!MPgMPs4 \!MPgMPs5 \!MPgMPs6 c}%
- \or
- \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
- \or
- \edef\lastMPmoveX{\gMPs1}% evt \!MP here
- \edef\lastMPmoveY{\gMPs2}%
- \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space m}%
- \fi}
-
-\def\flushconcatMPsegment
- {\ifcase\getMPkeyword\relax
- \doMPconcat{\gMPs1}\a{\gMPs2}\b%
- \PDFcode{\!MP\a\space\!MP\b\space l}%
- \or
- \doMPconcat{\gMPs1}\a{\gMPs2}\b%
- \doMPconcat{\gMPs3}\c{\gMPs4}\d%
- \doMPconcat{\gMPs5}\e{\gMPs6}\f%
- \PDFcode{\!MP\a\space\!MP\b\space
- \!MP\c\space\!MP\d\space
- \!MP\e\space\!MP\f\space c}%
- \or
- \bgroup
- \noMPtranslate
- \doMPconcat\lastMPmoveX\a\lastMPmoveY\b%
- \PDFcode{\!MP\a\space\!MP\b\space l S}%
- \egroup
- \or
- \edef\lastMPmoveX{\gMPs1}%
- \edef\lastMPmoveY{\gMPs2}%
- \doMPconcat\lastMPmoveX\a\lastMPmoveY\b%
- \PDFcode{\!MP\a\space\!MP\b\space m}%
- \fi}
-
-% \def\flushnormalMPpath
-% {\scratchcounter\nofMPsegments
-% \nofMPsegments\plusone
-% \loop
-% \flushnormalMPsegment
-% \advance\nofMPsegments \plusone
-% \ifnum\nofMPsegments<\scratchcounter
-% \repeat}
-%
-% \def\flushconcatMPpath
-% {\scratchcounter\nofMPsegments
-% \nofMPsegments\plusone
-% \loop
-% \flushconcatMPsegment
-% \advance\nofMPsegments \plusone
-% \ifnum\nofMPsegments<\scratchcounter
-% \repeat}
-%
-% an alternative is presented below: (no \def assignment)
-
-\def\doflushsomeMPpath
- {\dodoflushsomeMPpath
- \advance\nofMPsegments \plusone
- \ifnum\nofMPsegments<\scratchcounter
- \expandafter\doflushsomeMPpath
- \fi}
-
-\def\flushsomeMPpath
- {\scratchcounter\nofMPsegments
- \nofMPsegments\plusone
- \doflushsomeMPpath}
-
-\def\flushnormalMPpath{\let\dodoflushsomeMPpath\flushnormalMPsegment\flushsomeMPpath}
-
-%OLD \def\flushconcatMPpath{\let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath}
-
-%NEW pre-calculate 1/D so it needn't be repeated for each control point.
-
-\def\flushconcatMPpath
- {\MPreciprocaldeterminant
- \let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath}
-
-%D The transformation of the coordinates is handled by one of
-%D the macros Tanmoy posted to the \PDFTEX\ mailing list.
-%D I rewrote and optimized the original macro to suit the other
-%D macros in this module.
-%D
-%D \starttyping
-%D \doMPconcat {x position} \xresult {y position} \yresult
-%D \stoptyping
-%D
-%D By setting the auxiliary \DIMENSIONS\ \type{\dimen0} upto
-%D \type{\dimen10} only once per path, we save over 20\% run
-%D time. Some more speed was gained by removing some parameter
-%D passing. These macros can be optimized a bit more by using
-%D more constants. There is however not much need for further
-%D optimization because penshapes usually are round and
-%D therefore need no transformation. Nevertheless we move the
-%D factor to the outer level and use a bit different \type{pt}
-%D removal macro. Although the values represent base points,
-%D we converted them to pure points, simply because those can
-%D be converted back.
-
-%OLD \mathchardef\MPconcatfactor=256 % beware don't remove spaces before it
-
-%OLD \def\doMPreducedimen#1
-%OLD {\count0\MPconcatfactor
-%OLD \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0
-%OLD \divide\dimen#1 \count0\relax}
-
-%OLD % too inaccurate (see old pragma logo)
-%OLD
-%OLD \def\doMPreducedimen#1
-%OLD {\count0=\MPconcatfactor
-%OLD \divide\dimen#1 \count0\relax}
-
-%OLD \def\doMPreducedimen#1
-%OLD {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor
-%OLD \divide\dimen#1 \MPconcatfactor}
-
-%D The transformation code is rewritten by Daniel H. Luecking who
-%D describes his patch as follows:
-%D
-%D We would like to divide 1 by $X4, but all divisions are integer so
-%D for accuracy we want to convert to large integers and make sure the
-%D integer quotient has as many significant digits as possible. Thus we
-%D need to replace $1/X$ with $M/N$ where $N$ is as large as possible
-%D and $M/N$ is as large as possible. Also for simplicity $M$ should be
-%D a power of 2. So we make $M = 2^{30}$ \footnote{$2^{31} - 1$ is the
-%D largest legal integer. Using it (and simply ignoring the inaccuracy
-%D caused by $-1$) turns out to be at least as accurate in all cases,
-%D and more accurate in some.} (largest legal power of 2) and adjust
-%D $X4 downward (if necessary) to the the range $1-2^{16}$. This gives
-%D at least 15 significant binary digits, (almost as accurate as
-%D \METAPOST\ for numbers near 1) or almost 5 significant figures
-%D (decimal).
-
-\newcount\MPscratchCnt
-\newdimen\MPscratchDim % will be assigned global
-
-\def\MPadjustdimen % sets \MPscratchDim and \MPscratchCnt
- {\MPscratchCnt\zerocount
- \doMPadjustdimen}
-
-\def\doMPadjustdimen
- {\ifdim\MPscratchDim>\onepoint
- \divide\MPscratchDim 2
- \advance\MPscratchCnt \plusone
- \expandafter\doMPadjustdimen
- \fi}
-
-%OLD \def\doMPexpanddimen#1
-%OLD {\multiply\dimen#1 \MPconcatfactor\relax}
-
-%D DHL: When viewed as an integer, $1 \hbox{pt}=2^{16}$ so $2^{32}/X$
-%D is the right way to do $(1 \hbox{pt})/(X \hbox{pt})$ and get the
-%D answer in points. But we are limited to $2^{30}/X$. However, we
-%D actually do $[ 2^{30} / (X/2^K) ]*2^{2-K}$ where $K$ is the number
-%D of halvings it takes to bring $X4 below $1 \hbox{pt}$. If $K$ is 0
-%D or 1 we readjust by multiplying by 4 or 2, otherwise by halving
-%D $(K-2)$ times \type {\MPscratchCnt} holds the value of $K$ from
-%D \type {\MPadjustdimen}.
-
-\def\MPreadjustdimen % acts on \MPscratchDim and MPscratchCnt
- {\ifcase\MPscratchCnt
- \multiply\MPscratchDim 4
- \or
- \multiply\MPscratchDim 2
- \else
- \expandafter\doMPreadjustdimen
- \fi}
-
-\def\doMPreadjustdimen
- {\ifnum\MPscratchCnt > 2
- \divide\MPscratchDim 2
- \advance\MPscratchCnt \minusone
- \expandafter\doMPreadjustdimen
- \fi}
-
-\def\MPreciprocaldeterminant
- {\MPscratchDim\withoutpt\the\dimen0 \dimen6 % s_x*s_y
- \advance\MPscratchDim - \withoutpt\the\dimen2 \dimen4 % s_x*s_y - r_x*r_y
- \ifdim\MPscratchDim<\zeropoint % we need a positive dimension
- \MPscratchDim-\MPscratchDim % for \MPadjustdimen
- \doMPreciprocal
- \MPscratchDim-\MPscratchDim
- \else
- \doMPreciprocal
- \fi}
-
-\newcount\MPnumerator \MPnumerator = 1073741824 % 2^{30}
-
-% todo: dimexpr
-
-\def\doMPreciprocal % replace \MPscratchDim with its reciprocal
- {\ifdim\MPscratchDim=\onepoint \else
- \MPadjustdimen
- \scratchcounter\MPnumerator
- \divide\scratchcounter\MPscratchDim
- \MPscratchDim1\scratchcounter % 1 needed !
- \MPreadjustdimen
- \fi}
-
-%OLD \def\presetMPconcat
-%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 % r_x
-%OLD \dimen 2=\gMPs2\onepoint \doMPreducedimen 2 % s_x
-%OLD \dimen 4=\gMPs3\onepoint \doMPreducedimen 4 % s_y
-%OLD \dimen 6=\gMPs4\onepoint \doMPreducedimen 6 % r_y
-%OLD \dimen 8=\gMPs5\onepoint \doMPreducedimen 8 % t_x
-%OLD \dimen10=\gMPs6\onepoint \doMPreducedimen10 } % t_y
-%OLD
-%OLD \def\presetMPscale
-%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0
-%OLD \dimen 2 \zeropoint
-%OLD \dimen 4 \zeropoint
-%OLD \dimen 6=\gMPs2\onepoint \doMPreducedimen 6
-%OLD \dimen 8 \zeropoint
-%OLD \dimen10 \zeropoint}
-
-\def\presetMPconcat
- {\dimen 0=\gMPs1\onepoint % s_x
- \dimen 2=\gMPs2\onepoint % r_x
- \dimen 4=\gMPs3\onepoint % r_y
- \dimen 6=\gMPs4\onepoint % s_y
- \dimen 8=\gMPs5\onepoint % t_x
- \dimen10=\gMPs6\onepoint} % t_y
-
-\def\presetMPscale
- {\dimen 0=\gMPs1\onepoint
- \dimen 2 \zeropoint
- \dimen 4 \zeropoint
- \dimen 6=\gMPs2\onepoint
- \dimen 8 \zeropoint
- \dimen10 \zeropoint}
-
-\def\noMPtranslate % use this one grouped
- {\dimen 8 \zeropoint % t_x
- \dimen10 \zeropoint} % t_y
-
-%D \starttyping
-%D \def\doMPconcat#1#2#3#4%
-%D {\dimen12=#1 pt \doMPreducedimen12 % p_x
-%D \dimen14=#3 pt \doMPreducedimen14 % p_y
-%D %
-%D \dimen16 \dimen 0
-%D \multiply \dimen16 \dimen 6
-%D \dimen20 \dimen 2
-%D \multiply \dimen20 \dimen 4
-%D \advance \dimen16 -\dimen20
-%D %
-%D \dimen18 \dimen12
-%D \multiply \dimen18 \dimen 6
-%D \dimen20 \dimen14
-%D \multiply \dimen20 \dimen 4
-%D \advance \dimen18 -\dimen20
-%D \dimen20 \dimen 4
-%D \multiply \dimen20 \dimen10
-%D \advance \dimen18 \dimen20
-%D \dimen20 \dimen 6
-%D \multiply \dimen20 \dimen 8
-%D \advance \dimen18 -\dimen20
-%D %
-%D \multiply \dimen12 -\dimen 2
-%D \multiply \dimen14 \dimen 0
-%D \advance \dimen12 \dimen14
-%D \dimen20 \dimen 2
-%D \multiply \dimen20 \dimen 8
-%D \advance \dimen12 \dimen20
-%D \dimen20 \dimen 0
-%D \multiply \dimen20 \dimen10
-%D \advance \dimen12 -\dimen20
-%D %
-%D \doMPreducedimen16
-%D \divide \dimen18 \dimen16 \doMPexpanddimen18
-%D \divide \dimen12 \dimen16 \doMPexpanddimen12
-%D %
-%D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-%D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-%D \stoptyping
-
-%D The following optimization resulted from some tests by
-%D and email exchanges with Sanjoy Mahajan.
-%D
-%D \starttyping
-%D \def\doMPconcat#1#2#3#4%
-%D {\dimen12=#1 pt \doMPreducedimen12 % p_x
-%D \dimen14=#3 pt \doMPreducedimen14 % p_y
-%D %
-%D \dimen16 \dimen 0
-%D \multiply \dimen16 \dimen 6
-%D \dimen20 \dimen 2
-%D \multiply \dimen20 \dimen 4
-%D \advance \dimen16 -\dimen20
-%D %
-%D \dimen18 \dimen12
-%D \multiply \dimen18 \dimen 6
-%D \dimen20 \dimen14
-%D \multiply \dimen20 \dimen 4
-%D \advance \dimen18 -\dimen20
-%D \dimen20 \dimen 4
-%D \multiply \dimen20 \dimen10
-%D \advance \dimen18 \dimen20
-%D \dimen20 \dimen 6
-%D \multiply \dimen20 \dimen 8
-%D \advance \dimen18 -\dimen20
-%D %
-%D \multiply \dimen12 -\dimen 2
-%D \multiply \dimen14 \dimen 0
-%D \advance \dimen12 \dimen14
-%D \dimen20 \dimen 2
-%D \multiply \dimen20 \dimen 8
-%D \advance \dimen12 \dimen20
-%D \dimen20 \dimen 0
-%D \multiply \dimen20 \dimen10
-%D \advance \dimen12 -\dimen20
-%D %
-%D %\ifdim\dimen16>1pt % oeps, can be < 1pt too
-%D \ifdim\dimen16=1pt \else
-%D \ifdim\dimen16>\MPconcatfactor pt
-%D \doMPreducedimen16
-%D \divide \dimen18 \dimen16 \doMPexpanddimen18
-%D \divide \dimen12 \dimen16 \doMPexpanddimen12
-%D \else
-%D \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
-%D \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
-%D \fi
-%D \fi
-%D %
-%D \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-%D \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-%D \stoptyping
-%D
-%D But, this one is still too inaccurate, so we now have:
-
-% \def\doMPconcat#1#2#3#4%
-% {\dimen12=#1pt % p_x
-% \dimen14=#3pt % p_y
-% %
-% % we should test for >-1024 too, but for the moment take the gamble
-% \chardef\MPfactor1\ifdim\dimen12<1024pt \ifdim\dimen14<1024pt 6\fi\fi
-% %
-% \multiply\dimen12 \MPfactor
-% \multiply\dimen14 \MPfactor
-% %
-% \doMPreducedimen12
-% \doMPreducedimen14
-% %
-% \dimen16 \dimen 0
-% \multiply \dimen16 \dimen 6
-% \dimen20 \dimen 2
-% \multiply \dimen20 \dimen 4
-% \advance \dimen16 -\dimen20
-% %
-% \dimen18 \dimen12
-% \multiply \dimen18 \dimen 6
-% \dimen20 \dimen14
-% \multiply \dimen20 \dimen 4
-% \advance \dimen18 -\dimen20
-% \dimen20 \dimen 4
-% \multiply \dimen20 \dimen10
-% \advance \dimen18 \dimen20
-% \dimen20 \dimen 6
-% \multiply \dimen20 \dimen 8
-% \advance \dimen18 -\dimen20
-% %
-% \multiply \dimen12 -\dimen 2
-% \multiply \dimen14 \dimen 0
-% \advance \dimen12 \dimen14
-% \dimen20 \dimen 2
-% \multiply \dimen20 \dimen 8
-% \advance \dimen12 \dimen20
-% \dimen20 \dimen 0
-% \multiply \dimen20 \dimen10
-% \advance \dimen12 -\dimen20
-% %
-% \ifdim\dimen16=1pt \else
-% \ifdim\dimen16>\MPconcatfactor pt
-% \doMPreducedimen16
-% \divide \dimen18 \dimen16 \doMPexpanddimen18
-% \divide \dimen12 \dimen16 \doMPexpanddimen12
-% \else
-% \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
-% \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
-% \fi
-% \fi
-% %
-% \divide\dimen18 \MPfactor
-% \divide\dimen12 \MPfactor
-% %
-% \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-% \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-
-%D We cannot use \type {\beginETEX} here since in plain we
-%D get \type {\outer} problems, sigh.
-
-%OLD \beginTEX
-%OLD
-%OLD \def\MPcriteriumA {512pt} % scale
-%OLD \def\MPcriteriumB {2pt} % scale
-%OLD
-%OLD \endTEX
-%OLD
-%OLD \ifx\MPcriteriumA\undefined
-%OLD
-%OLD \newdimen\MPcriteriumA \MPcriteriumA=512pt
-%OLD \newdimen\MPcriteriumB \MPcriteriumB= 2pt
-%OLD
-%OLD \fi
-
-%OLD \def\doMPconcat#1#2#3#4%
-%OLD {\dimen12=#1pt % p_x
-%OLD \dimen14=#3pt % p_y
-%OLD %
-%OLD \chardef\MPfactor\zerocount
-%OLD \ifdim\dimen4<\MPcriteriumB\ifdim\dimen4>-\MPcriteriumB
-%OLD \ifdim\dimen6<\MPcriteriumB\ifdim\dimen6>-\MPcriteriumB
-%OLD \ifdim\dimen8<\MPcriteriumB\ifdim\dimen8>-\MPcriteriumB
-%OLD \ifdim\dimen10<\MPcriteriumB\ifdim\dimen10>-\MPcriteriumB
-%OLD \chardef\MPfactor\plusone
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \ifcase\MPfactor % spurious 0 removed
-%OLD \chardef\MPfactor\plusone
-%OLD \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA
-%OLD \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA
-%OLD \chardef\MPfactor16
-%OLD \fi\fi
-%OLD \fi\fi
-%OLD \fi
-%OLD %
-%OLD \multiply\dimen12 \MPfactor
-%OLD \multiply\dimen14 \MPfactor
-%OLD %
-%OLD \doMPreducedimen12
-%OLD \doMPreducedimen14
-%OLD %
-%OLD \dimen16 \dimen 0
-%OLD \multiply \dimen16 \dimen 6
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen16 -\dimen20
-%OLD %
-%OLD \dimen18 \dimen12
-%OLD \multiply \dimen18 \dimen 6
-%OLD \dimen20 \dimen14
-%OLD \multiply \dimen20 \dimen 4
-%OLD \advance \dimen18 -\dimen20
-%OLD \dimen20 \dimen 4
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen18 \dimen20
-%OLD \dimen20 \dimen 6
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen18 -\dimen20
-%OLD %
-%OLD \multiply \dimen12 -\dimen 2
-%OLD \multiply \dimen14 \dimen 0
-%OLD \advance \dimen12 \dimen14
-%OLD \dimen20 \dimen 2
-%OLD \multiply \dimen20 \dimen 8
-%OLD \advance \dimen12 \dimen20
-%OLD \dimen20 \dimen 0
-%OLD \multiply \dimen20 \dimen10
-%OLD \advance \dimen12 -\dimen20
-%OLD %
-%OLD \ifdim\dimen16=\onepoint \else
-%OLD \ifdim\dimen16>\MPconcatfactor \onepoint \relax
-%OLD \doMPreducedimen16
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12
-%OLD \else
-%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18
-%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12
-%OLD \fi
-%OLD \fi
-%OLD %
-%OLD \divide\dimen18 \MPfactor
-%OLD \divide\dimen12 \MPfactor
-%OLD %
-%OLD \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
-%OLD \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-
-%D DHL: Ideally, $r_x$, $r_y$, $s_x4, $s_y$ should be in macros, not
-%D dimensions (they are scalar quantities after all, not lengths). I
-%D suppose the authors decided to do calculations with integer
-%D arithmetic instead of using real factors because it's faster.
-%D However, the actual macros test slower, possibly because I've
-%D omitted three nested loops. In my test files, my approach is more
-%D accurate. It is also far simpler and overflow does not seem to be a
-%D significant concern. The scale factors written by Metapost are (?)
-%D always $<=1$ (it scales coordinates internally) and coordinates are
-%D always likely to be less than \type {\maxdimen}.
-%D
-%D If this should ever cause problems, the scale factors can be reduced.
-
-\def\doMPconcat#1#2#3#4%
- {\dimen12=#1pt % p_x % #1\onepoint
- \dimen14=#3pt % p_y % #3\onepoint
- \advance\dimen12 -\dimen8 % p_x - t_x
- \advance\dimen14 -\dimen10 % p_y - t_y
- \dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x)
- \advance\dimen18 -\withoutpt\the\dimen4 \dimen14 % - r_y(p_y-t_y)
- \dimen14=\withoutpt\the\dimen0 \dimen14 % s_x(p_y-t_y)
- \advance\dimen14 -\withoutpt\the\dimen2 \dimen12 % - r_x(p_x-t_x)
- % \MPscratchDim contains precomputed 1/D:
- \dimen18=\withoutpt\the\MPscratchDim \dimen18
- \dimen14=\withoutpt\the\MPscratchDim \dimen14
- \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
- \edef#4{\withoutpt\the\dimen14}} % p_y^\prime
-
-%D One reason for Daniel to write this patch was that at small sizes
-%D the accuracy was less than optimal. Here is a test that demonstrates
-%D that his alternative is pretty good:
-%D
-%D \startlinecorrection
-%D \startMPcode
-%D for i = 5cm,1cm,5mm,1mm,.5mm,.1mm,.01mm :
-%D draw fullcircle scaled i withpen pencircle xscaled (i/10) yscaled (i/20) rotated 45 ;
-%D endfor ;
-%D \stopMPcode
-%D \stoplinecorrection
-
-%D The following explanation of the conversion process was
-%D posted to the \PDFTEX\ mailing list by Tanmoy. The original
-%D macro was part of a set of macro's that included sinus and
-%D cosinus calculations as well as scaling and translating. The
-%D \METAPOST\ to \PDF\ conversion however only needs
-%D transformation.
-
-%M \start \switchtobodyfont [ss]
-
-%D Given a point $(U_x, U_y)$ in user coordinates, the business
-%D of \POSTSCRIPT\ is to convert it to device space. Let us say
-%D that the device space coordinates are $(D_x, D_y)$. Then, in
-%D \POSTSCRIPT\ $(D_x, D_y)$ can be written in terms of
-%D $(U_x, U_y)$ in matrix notation, either as
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{D_x&D_y&1\cr} = \pmatrix{U_x&U_y&1\cr}
-%D \pmatrix{s_x&r_x&0\cr
-%D r_y&s_y&0\cr
-%D t_x&t_y&1\cr}
-%D \stopformula
-%D
-%D or
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x&r_y&t_x\cr
-%D r_x&s_y&t_y\cr
-%D 0 &0 &1 \cr}
-%D \pmatrix{U_x\cr
-%D U_y\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D both of which is a shorthand for the same set of equations:
-%D
-%D \placeformula
-%D \startformula
-%D D_x = s_x U_x + r_y U_y + t_x
-%D \stopformula
-%D
-%D \placeformula
-%D \startformula
-%D D_y = r_x U_x + s_y U_y + t_y
-%D \stopformula
-%D
-%D which define what is called an `affine transformation'.
-%D
-%D \POSTSCRIPT\ represents the `transformation matrix' as a
-%D six element matrix instead of a $3\times 3$ array because
-%D three of the elements are always~0, 0 and~1. Thus the above
-%D transformation is written in postscript as $[s_x\, r_x\,
-%D r_y\, s_y\, t_x\, t_y]$. However, when doing any
-%D calculations, it is useful to go back to the original
-%D matrix notation (whichever: I will use the second) and
-%D continue from there.
-%D
-%D As an example, if the current transformation matrix is
-%D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$ and you say \typ{[a b
-%D c d e f] concat}, this means:
-%D
-%D \startnarrower
-%D Take the user space coordinates and transform them to an
-%D intermediate set of coordinates using array $[a\, b\, c\, d\,
-%D e\, f]$ as the transformation matrix.
-%D
-%D Take the intermediate set of coordinates and change them to
-%D device coordinates using array $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$
-%D as the transformation matrix.
-%D \stopnarrower
-%D
-%D Well, what is the net effect? In matrix notation, it is
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{I_x\cr I_y\cr 1\cr} = \pmatrix{a&c&e\cr
-%D b&d&f\cr
-%D 0&0&1\cr}
-%D \pmatrix{U_x\cr
-%D U_y\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{D_y\cr D_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr
-%D r_x&s_y&t_y\cr
-%D 0 &0 &1 \cr}
-%D \pmatrix{I_x\cr
-%D I_y\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D where $(I_x, I_y)$ is the intermediate coordinate.
-%D
-%D Now, the beauty of the matrix notation is that when there is
-%D a chain of such matrix equations, one can always compose
-%D them into one matrix equation using the standard matrix
-%D composition law. The composite matrix from two matrices can
-%D be derived very easily: the element in the $i$\high{th}
-%D horizontal row and $j$\high{th} vertical column is
-%D calculated by`multiplying' the $i$\high{th} row of the first
-%D matrix and the $j$\high{th} column of the second matrix (and
-%D summing over the elements). Thus, in the above:
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{D_x\cr D_y\cr 1} = \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr
-%D r_x^\prime&s_y^\prime&t_y^\prime\cr
-%D 0 &0 &0 \cr}
-%D \pmatrix{U_x\cr
-%D U_y\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D with
-%D
-%D \placeformula
-%D \startformula
-%D \eqalign
-%D {s_x^\prime & = s_x a + r_y b \cr
-%D r_x^\prime & = r_x a + s_y b \cr
-%D r_y^\prime & = s_x c + r_y d \cr
-%D s_y^\prime & = r_x c + s_y d \cr
-%D t_x^\prime & = s_x e + r_y f + t_x \cr
-%D t_y^\prime & = r_x e + s_y f + t_y \cr}
-%D \stopformula
-
-%D In fact, the same rule is true not only when one is going
-%D from user coordinates to device coordinates, but whenever
-%D one is composing two `transformations' together
-%D (transformations are `associative'). Note that the formula
-%D is not symmetric: you have to keep track of which
-%D transformation existed before (i.e.\ the equivalent of
-%D $[s_x\, r_x\, r_y\, s_y\, t_x\, t_y]$) and which was
-%D specified later (i.e.\ the equivalent of $[a\, b\, c\, d\,
-%D e\, f]$). Note also that the language can be rather
-%D confusing: the one specified later `acts earlier',
-%D converting the user space coordinates to intermediate
-%D coordinates, which are then acted upon by the pre||existing
-%D transformation. The important point is that order of
-%D transformation matrices cannot be flipped (transformations
-%D are not `commutative').
-%D
-%D Now what does it mean to move a transformation matrix
-%D before a drawing? What it means is that given a point
-%D $(P_x, P_y)$ we need a different set of coordinates
-%D $(P_x^\prime, P_y^\prime)$ such that if the transformation
-%D acts on $(P_x^\prime, P_y^\prime)$, they produce $(P_x,
-%D P_y)$. That is we need to solve the set of equations:
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{P_x\cr P_y\cr 1\cr} = \pmatrix{s_x&r_y&t_x\cr
-%D r_x&s_y&t_y\cr
-%D 0 &0 &1 \cr}
-%D \pmatrix{P_x^\prime\cr
-%D P_y^\prime\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D Again matrix notation comes in handy (i.e. someone has
-%D already solved the problem for us): we need the inverse
-%D transformation matrix. The inverse transformation matrix can
-%D be calculated very easily:
-%D
-%D \placeformula
-%D \startformula
-%D \pmatrix{P_x^\prime\cr P_y^\prime\cr 1\cr} =
-%D \pmatrix{s_x^\prime&r_y^\prime&t_x^\prime\cr
-%D r_x^\prime&s_y^\prime&t_y^\prime\cr
-%D 0 &0 &1 \cr}
-%D \pmatrix{P_x\cr
-%D P_y\cr
-%D 1 \cr}
-%D \stopformula
-%D
-%D where, the inverse transformation matrix is given by
-%D
-%D \placeformula
-%D \startformula
-%D \eqalign
-%D {D & = s_x s_y - r_x r_y \cr
-%D s_x^\prime & = s_y / D \cr
-%D s_y^\prime & = s_x / D \cr
-%D r_x^\prime & = - r_x / D \cr
-%D r_y^\prime & = - r_y / D \cr
-%D t_x^\prime & = ( - s_y t_x + r_y t_y ) / D \cr
-%D t_y^\prime & = ( r_x t_x - s_x t_y ) / D \cr}
-%D \stopformula
-%D
-%D And you can see that when expanded out, this does
-%D give the formulas:
-%D
-%D \placeformula
-%D \startformula
-%D P_x^\prime = { { s_y(p_x-t_x) + r_y(t_y-p_y) } \over
-%D { s_x s_y-r_x r_y } }
-%D \stopformula
-%D
-%D \placeformula
-%D \startformula
-%D P_y^\prime = { { s_x(p_y-t_y) + r_x(t_x-p_x) } \over
-%D { s_x*s_y-r_x*r_y } }
-%D \stopformula
-%D
-%D The code works by representing a real number by converting
-%D it to a dimension to be put into a \DIMENSION\ register: 2.3 would
-%D be represented as 2.3pt for example. In this scheme,
-%D multiplying two numbers involves multiplying the \DIMENSION\
-%D registers and dividing by 65536. Accuracy demands that the
-%D division be done as late as possible, but overflow
-%D considerations need early division.
-%D
-%D Division involves dividing the two \DIMENSION\ registers and
-%D multiplying the result by 65536. Again, accuracy would
-%D demand that the numerator be multiplied (and|/|or the
-%D denominator divided) early: but that can lead to overflow
-%D which needs to be avoided.
-%D
-%D If nothing is known about the numbers to start with (in
-%D concat), I have chosen to divide the 65536 as a 256 in each
-%D operand. However, in the series calculating the sine and
-%D cosine, I know that the terms are small (because I never
-%D have an angle greater than 45 degrees), so I chose to
-%D apportion the factor in a different way.
-
-%M \stop
-
-%D The path is output using the values saved on the stack. If
-%D needed, all coordinates are recalculated.
-
-\def\finishMPpath
- {\PDFcode{\ifcase\finiMPpath W n\or S\or f\or B\fi}}
-
-\def\processMPpath
- {\checkMPpath
- \ifcase\nofMPsegments\else
- \flushMPpath
- \closeMPpath
- \finishMPpath
- \fi
- \let\handleMPsequence\dohandleMPsequence
- \resetMPstack
- \nofMPsegments\zerocount
- \handleMPsequence}
-
-%D The following \METAPOST\ code is quite valid but, when
-%D processed and converted to \PDF, will make a file
-%D unprintable on a Hewlett Packard printer (from Acrobat
-%D $v<=5$). Who is to blame, the driver of the OS layer in
-%D between, is hard to determine, so we add an additional
-%D check.
-%D
-%D \starttyping
-%D clip currentpicture to origin -- cycle ;
-%D setbounds currentpicture to fullsquare scaled 5cm ;
-%D \stoptyping
-
-\def\checkMPpath
- {\ifcase\finiMPpath
- \ifnum\nofMPsegments<3 % n is one ahead
- \message{omitting zero clip path}%
- \nofMPsegments\zerocount
- \fi
- \fi}
-
-%D In \PDF\ the \type{cm} operator must precede the path
-%D specification. We therefore can output the \type{cm} at
-%D the moment we encounter it.
-
-\def\handleMPpathconcat
- {\presetMPconcat
- \PDFcode{\gMPs1 \gMPs2 \gMPs3 \gMPs4 \gMPs5 \gMPs6 cm}%
- \resetMPstack}
-
-\def\handleMPpathscale
- {\presetMPscale
- \PDFcode{\gMPs1 0 0 \gMPs2 0 0 cm}%
- \resetMPstack}
-
-%D This macro interprets the path and saves it as compact as
-%D possible.
-
-\def\dohandleMPpath#1%
- {\ifcase\lccode`#1\relax
- \@EA\dohandleMPpathA
- \else
- \@EA\dohandleMPpathB
- \fi#1}
-
-%\def\dohandleMPpathA#1 %
-% {\setMPargument{#1}%
-% \handleMPsequence}
-
-\let\dohandleMPpathA\setMPsequence
-
-\def\dohandleMPpathB#1 %
- {\def\somestring{#1}%
- \ifx\somestring\PSlineto
- \setMPkeyword0
- \else\ifx\somestring\PScurveto
- \setMPkeyword1
- \else\ifx\somestring\PSrlineto
- \setMPkeyword2
- \else\ifx\somestring\PSmoveto
- \setMPkeyword3
- \else\ifx\somestring\PSclip
- % \chardef\finiMPpath0 % already
- \let\handleMPsequence\processMPpath
- \else\ifx\somestring\PSgsave
- \chardef\finiMPpath3
- \else\ifx\somestring\PSgrestore
- \else\ifx\somestring\PSfill
- \ifcase\finiMPpath
- \chardef\finiMPpath2
- \let\handleMPsequence\processMPpath
- \fi
- \else\ifx\somestring\PSstroke
- \ifcase\finiMPpath
- \chardef\finiMPpath1
- \fi
- \let\handleMPsequence\processMPpath
- \else\ifx\somestring\PSclosepath
- \def\closeMPpath{\PDFcode{h}}%
- \else\ifx\somestring\PSconcat
- \let\flushMPpath\flushconcatMPpath
- \handleMPpathconcat
- \else\ifx\somestring\PSscale
- \let\flushMPpath\flushconcatMPpath
- \handleMPpathscale
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \handleMPsequence}
-
-%D The main conversion command is:
-%D
-%D \starttyping
-%D \convertMPtoPDF {filename} {x scale} {y scale}
-%D \stoptyping
-%D
-%D The dimensions are derived from the bounding box. So we
-%D only have to say:
-%D
-%D \starttyping
-%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
-%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
-%D \stoptyping
-
-%D \macros
-%D {makeMPintoPDFobject,lastPDFMPobject}
-%D
-%D For experts there are a few more options. When attributes
-%D are to be added, the code must be embedded in an object
-%D accompanied with the appropriate directives. One can
-%D influence this process with \type {\makeMPintoPDFobject}.
-%D
-%D This option defaults to~0, because \CONTEXT\ takes care
-%D of objects at another level, which saves some bytes.
-%D
-%D \starttabulate[|l|l|p|]
-%D \NC 0 \NC never \NC don't use an object \NC\NR
-%D \NC 1 \NC always \NC always use an object \NC\NR
-%D \NC 2 \NC optional \NC use object when needed \NC\NR
-%D \stoptabulate
-%D
-%D The last object number used is avaliable in the macro
-%D \type {\lastPDFMPobject}.
-
-\ifx\makeMPintoPDFobject\undefined \chardef\makeMPintoPDFobject=0 \fi
-
-\def\lastPDFMPobject{0}
-
-%D The additional code needed can be made available in the
-%D (global) macro \type {\currentPDFresources}.
-
-\let\currentPDFresources\empty
-
-\newtoks\everyMPtoPDFconversion
-
-\def\convertMPtoPDF % #1#2#3%
- {\bgroup
- \ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new
- \setbox\scratchbox\vbox\bgroup
- \forgetall
- \offinterlineskip
- \startMPresources
- \doprocessMPtoPDFfile} %
-
-%D The next one is kind of private and probably will become obsolete):
-
-\def\processMPtoPDFfile % file xscale yscale
- {\bgroup
- \let\finishMPgraphic\egroup
- \doprocessMPtoPDFfile}
-
-\def\doprocessMPtoPDFfile#1#2#3% file xscale yscale
- {% the following line is needed for latex where onepoint is not
- % onepoint but a number (maxdimen); some day i'll make a latex
- % variant of this file so that i no longer have to deal with such
- % issues; then i'll also speed up this module using a few context
- % tricks
- %
- \let\onepoint\onerealpoint
- %
- \setMPspecials
- \the\everyMPtoPDFconversion
- \catcode`\^^M=\@@endofline
- \startMPscanning
- \let\do\empty
- \xdef\MPxscale{#2}%
- \xdef\MPyscale{#3}%
- \xdef\MPxoffset{0}%
- \xdef\MPyoffset{0}%
- \xdef\MPyshift{\zeropoint}%
- \donefalse
- \let\handleMPsequence\dohandleMPsequence
- \message{[MP to PDF]}% was: [MP to PDF #1] but there is a (#1) anyway
- \input#1\relax}
-
-% strange rounding/clip in pdftex/viewer
-%
-% \def\finishMPgraphic
-% {\stopMPresources
-% \egroup
-% \ifx\pdftexversion\undefined\else\ifnum\pdftexversion<14 % for the moment
-% \chardef\makeMPintoPDFobject=0
-% \fi\fi
-% \ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
-% \chardef\makeMPintoPDFobject=1
-% \fi\fi
-% \setbox\scratchbox=\vbox
-% {\forgetall
-% \hbox
-% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
-% \lower\MPyshift\box\scratchbox % unscaled shift
-% \PDFcode{Q}}}%
-% \ht\scratchbox\MPheight
-% \wd\scratchbox\MPwidth
-% \dp\scratchbox\zeropoint
-% \ifcase\makeMPintoPDFobject
-% \box\scratchbox
-% \or
-% \immediate\pdfxform resources{\currentPDFresources}\scratchbox
-% \xdef\lastPDFMPobject{\the\pdflastxform}%
-% \pdfrefxform\lastPDFMPobject
-% \global\let\currentPDFresources\empty
-% \else
-% \box\scratchbox
-% \fi
-% \egroup}
-%
-% funny clip in viewer
-%
-% \setbox\scratchbox=\vbox
-% {\forgetall
-% \dimen0=\MPllx bp
-% \dimen2=\MPlly bp
-% \setbox\scratchbox=\hbox{\hskip-\dimen0\raise-\dimen2\box\scratchbox}%
-% \ht\scratchbox=\zeropoint
-% \dp\scratchbox=\zeropoint
-% \wd\scratchbox=\zeropoint
-% \hbox
-% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space 0 0 cm}%
-% \lower\MPshift\box\scratchbox
-% \PDFcode{Q}}}%
-
-% \let\PDFMPformoffset\zeropoint
-
-\def\PDFMPformoffset
- {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
-
-\def\finishMPgraphic
- {\stopMPresources
- \egroup
- \setbox\scratchbox\vbox
- {\forgetall
- \hbox
- {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
- \lower\MPyshift\box\scratchbox % unscaled shift
- \PDFcode{Q}}}%
- \ht\scratchbox\MPheight
- \wd\scratchbox\MPwidth
- \dp\scratchbox\zeropoint\relax
- \dopackageMPgraphic\scratchbox
- \egroup
- \endinput}
-
-%D Alternative for \PDFTEX. We cannot come up with something more contexy
-%D because this module is also used in \LATEX.
-
-\def\dopackageMPgraphic#1% #1 = boxregister
- {%\ifx\pdfxform\undefined
- % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
- %\else\ifx\pdftexversion\undefined
- % \chardef\makeMPintoPDFobject\zerocount % no pdftex at all
- %\else\ifnum\pdftexversion<14
- % \chardef\makeMPintoPDFobject\zerocount % no resource support
- %\else
- % % keep the default value
- %\fi\fi\fi
- \ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
- % an existing value of 2 signals object support (set elsewhere)
- \chardef\makeMPintoPDFobject\plusone
- \fi\fi
- \ifcase\makeMPintoPDFobject
- \box#1%
- \or
- \scratchdimen\PDFMPformoffset\relax
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \setbox#1\vbox spread 2\scratchdimen
- {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
- \fi
- \setMPPDFobject{\currentPDFresources}{#1}%
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \vbox to \MPheight
- {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
- \else
- \getMPPDFobject
- \fi
- \global\let\currentPDFresources\empty
- \else
- \box#1%
- \fi}
-
-\def\setMPPDFobject#1#2% resources boxnumber
- {\ifx\pdfxform\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifx\pdftexversion\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifnum\pdftexversion<14
- \def\getMPPDFobject{\box#2}%
- \else
- \immediate\pdfxform resources{#1}#2%
- \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}%
- \fi\fi\fi}
-
-\let\getMPPDFobject\relax
-
-%D \macros
-%D {deleteMPgraphic,
-%D startMPresources,
-%D stopMPresources}
-%D
-%D Here are a few hooks for \CONTEXT\ specific things.
-
-\ifx\deleteMPgraphic\undefined
- \def\deleteMPgraphic#1{}
-\fi
-
-\ifx\startMPresources\undefined
- \let\startMPresources\relax
- \let\stopMPresources\relax
-\fi
-
-%D \macros
-%D {twodigitMPoutput}
-%D
-%D We can limit the precision to two digits after the comma
-%D by saying:
-%D
-%D \starttyping
-%D \twodigitMPoutput
-%D \stoptyping
-%D
-%D This option only works in \CONTEXT\ combined with \ETEX.
-
-\def\twodigitMPoutput
- {\let\!MP \twodigitrounding
- \def\!MPgMPs##1{\twodigitrounding{\gMPs##1}}%
- \def\!MPgMPa##1{\twodigitrounding{\gMPa##1}}}
-
-\let\!MP \empty
-\let\!MPgMPa\gMPa
-\let\!MPgMPs\gMPs
-
-%D This kind of conversion is possible because \METAPOST\
-%D does all the calculations. Converting other \POSTSCRIPT\
-%D files would drive both me and \TEX\ crazy.
-
-\ifx\undefined\StopLatexHack \else \StopLatexHack \fi
-
-\protect \endinput
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index eae98f0777..25e339fb4b 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1654633062
+date=1654719549
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=e34d6bca6bbaa5f97c7066a845047a21
+lstdigest=820a377bd5348eabc3587c93b453710c
numpkg=5626
relstate=next
-version=8193
+version=8194
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: rZ38jIaKPOBuMbOPCOCrZZSOjZA9wkE+/0ndRDEhrC9Ilab8cBi/azOUDfuQgYSTXL1pMy6EQj/sOh4GPlDPr+3DZn/cMdDzLk3ehS1EY4D22VBhW3OxnHEy8qHZYxLAJIsKy+RwE0Apm5mzkscaGK2FQZp3tKS7CX67AX/oRIiw/OvuAawHa7w6OiYQQsM2YqNH8TWwviFVhrDlv1SI0S2r15xF2VuDAzFdPKtRriyAR0Eol9a1l65pucFL+M6NNzY2sOOUpgeIyRynNApYpRwRx/w9C9ao1rMiGsbxIGLmD6jR6XEK9vQKjwDqD0TyoteN117kwf9mMqG/dah2CQ==
+;;;; signature/miktex: JUBBcWODW9oIrHgbc9HaeCcAmIeqH0jHVl3gfIZ9Q5Fp+aYKI79ZfNzi1Fto14gVLRLrZvp1GLuOPSQqEodu8YjwlQ9GMTkianKiNIS4Sw6jKwzXqhBtjKs+MqoemnmP9hjIiHStcxhnttl03JElh+mwrRMLxI7HkVsESadoFxj9uklmzA4fUKQjneVO6QG4NsFWXaEy4BYi2dUun/HTU9LTdGEiXpAL8aLZbW4lYizrQ5+gnrbBNWDWWG9Gl78pl7/oUSXnPDzupROwvz3l4oJ5CR6CpCqAr+He4TGaVsl575SFAtNlO3PsSaRz3hsXeWrEVH636sD5nJ0jy7YtXA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index d4f0ae5c52..fd708ed6dd 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1654632667
+date=1654719118
lastupd=adjmulticol adjmulticol__doc adjmulticol__source babel babel__doc babel__source beamer beamer__doc biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source bidi bidi__doc bidi__source bxghost bxghost__doc causets causets__doc causets__source create-theorem
-lstdigest=a6278b08500efa77205a749cb28851d1
+lstdigest=cb5d0befca04101e5ff94e98f83a2b04
numpkg=5626
relstate=stable
-version=8193
+version=8194
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: aB6fmET9LyrwbnmkzUG7jJvULCD6JuryW1X0VJYvOwvOgko+z7KrlYjQZzJpeuNMkrzYpJChatIh9zIMahzOmJ07FNP76NM31D/hjxkL9z9goX6E3PbIn3Io2YNwODDW7ggpbBUuxzHs/n3mcRMd+7duNrJCpu8zy0i53VM7y24nsyF7FREAIAjFTUgifA16L1MCsxXmVl3N8PYLH0UiehtZ/WcFteaBVxRShrMu3zbLqp3y4pIYSbugXYKfBHsZ4BUKM3vHBWGownkrgL6g4bjXEYfgBWgeMH0FuRPHZe9ndCpDkJ0S9BvGcxnkRfvuEpPXvNyXm95PfTl7jDDdig==
+;;;; signature/miktex: wTpz5VKR5U7sw64orTurZNDY2gkrB4l6rY42v/qLxxYjzVm4s7pYsILlqiIQAcxU9nrx8HGY9Qr7KxPgwyABDfIu4+3r9sM91BcFFeQsjzrDpCafiqNGD8Tq1g9dzIRPKFch5Lw+ql9uNFDOuCw+5H2y4FBa4KSB/7yPYLBjnDGQiPUEFvg71VGMIonwRN3yAErkmWQ4mrk/ZE0s0GAFV4Yb5BfwXGII82+S6NC27NqqwyyGoaWH2biJaZJbowxLbZPTb9TppO83KE44Va+q4qVjaUxSg3YYTQa51GHy1a/xZwhknDnvOK4Qvzr74Wiip7HnybTsoskmZ7kYiUSOrQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 6af7fbdde5..d7f756a759 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-06-08-02-02
+2022-06-09-02-02