tex-common-6.04ubuntu1/0000775000000000000000000000000012607350221011743 5ustar tex-common-6.04ubuntu1/TODO0000664000000000000000000000072012607350221012432 0ustar * remove all the luajittex bla bla from tex-common * disable luajittex format in texlive-base * move all the trigger code into update-texmf-conf why? how should this work? * make distinction between trigger call and normal clal * rewrite policy and user documentation!!! - all config files handling has changed!!! - texmf.d handling has changed, changes to /etc/texmf/web2c/texmf.cnf are NOT USER EDITABLE ANYMORE exclusive use of /etc/texmf/texmf.d tex-common-6.04ubuntu1/conf/0000775000000000000000000000000012607350221012670 5ustar tex-common-6.04ubuntu1/conf/texmf.d/0000775000000000000000000000000012607350221014235 5ustar tex-common-6.04ubuntu1/conf/texmf.d/00debian.cnf0000664000000000000000000000003212607350221016302 0ustar VARTEXFONTS=/tmp/texfonts tex-common-6.04ubuntu1/debian/0000775000000000000000000000000013321177314013171 5ustar tex-common-6.04ubuntu1/debian/ChangeLog0000664000000000000000000000304512607350221014741 0ustar 2006-05-02 * Found files of unknown origin in avantgar.tfm * Work on pnsfss finished, started working on required font files 2006-04-27 * Wrote e-mail to amslatex upstream to clarify their license. 2006-04-25 * texinfo's README allows distribution "without royalty" - is this "no-sell"? It's probably just ambiguous wording, "in any medium" should be moved away from "without royalty". * Added tpm files for latex-beamer, pgf and xcolor, marked xcolor as verified in the Catalogue. To beamer.tpm, I added beamerexample-seminar.tex - whether this is free depends on the outcome of investigating seminar. * Filed bug against pgf (wrong copyright file), but it's still free, except maybe for some images. * File #364127 against latex-beamer, because I found out that beamer has files with unclear copyright. Let others care for other's business. 2006-04-11 * ltxmisc.tpm is added, but the individual files have not been checked * Wrote an e-mail to Axel Kielhorn (the address he uses in usenet, Axel.NoSpam@gmx.de, since the one in adrconv's files bounces * Fixed the tetex-src part of the script * Wrote an other mail to Lars Engebretsen, regarding ae fonts 2006-04-10 * tpm2licenses can now be installed and called with perl /usr/share/tex-common/tpm2licenses (or simply use dpkg-statoverride to make it executable...) * This file is actually a Change Log only for my copyright/license verification work tex-common-6.04ubuntu1/debian/NEWS0000664000000000000000000001152212607350221013665 0ustar tex-common (4.01) experimental; urgency=low * moving files from /usr/share/doc/texmf to /usr/share/texmf/doc when using dh_installtex: - please Build-depend on tex-common (>= 4.01) - install the files in /usr/share/texmf/doc no further steps are necessary, dh_installtex automatically adds the necessary dependencies (either >= 4 if /usr/share/texmf/doc is present in the package, otherwise >= 3) -- Norbert Preining Wed, 19 Dec 2012 13:09:07 +0900 tex-common (4.00) experimental; urgency=low * documentation file changes: the link from /usr/share/texmf/doc to /usr/share/doc/texmf is dropped. That means that the documentation of packages putting them into /usr/share/doc/texmf will not be found by texdoc anymore. Package should be rebuild with an added dependency on tex-common (>= 4~) and put documentation to be found by texdoc into /usr/share/texmf/doc (according to TDS standard), and other docs into /usr/share/doc/$package, but nothing into /usr/share/doc/texmf -- Norbert Preining Mon, 17 Dec 2012 22:43:14 +0900 tex-common (3.7) unstable; urgency=low * updmap file handling changed For users: If you are using PostScript fonts that are not packaged for Debian, some changes have been done: updmap now reads *all* updmap.cfg files it finds. That means, the easiest way to activate local fonts (in TEXMFLOCAL) by putting the respective map lines into /usr/local/share/texmf/web2c/updmap.cfg, and call updmap-sys once (as root). If you have fonts in your home directory you want to activate, paralleling the above you put the respective map line into $HOME/texmf/web2c/updmap.cfg and call updmap (as user). But be reminded that you have to do that everytime system fonts have changed (there is no automatic syncronization between user specific and system wide updmap(-sys) generated files). For developers: Since version 3 of tex-common, which conincides and requires TeX Live 2011 and upward, updmap now behaves differently then before: It reads *all* available updmap.cfg files. That means that the handling of updmap.d snippets in /etc/texmf/updmap.d has changed. Packages rebuild with tex-common >= 3 will not install anything in this directory. Old, especially Debian external, font packages that still use the old (updmap.d) mechanism are (as of 3.7) still supported, but with warnings. Please rebuild these packages with a newer tex-common. -- Norbert Preining Thu, 12 Apr 2012 07:53:27 +0900 tex-common (1.8) unstable; urgency=low * Manually reinstalling removed conffiles Due to a bug in the postrm script of tetex-base in etch, purging this package removes essential configuration files of texlive packages. tex-common is also affected, because tetex-base removed /etc/texmf/web2c/mktex.cnf. This file isn't strictly needed, but it is very much recommended that you reinstall it. You can find a copy in /usr/share/tex-common/. -- Frank Küster Thu, 31 May 2007 10:32:21 +0200 tex-common (1.4) unstable; urgency=low * Filename database in $TEXMFHOME is no longer created and updated The ls-R filename database in $TEXMFHOME, $HOME/texmf, is no longer created in new installs, and also not updated by default. This makes sense unless you have a very large number of files installed in that tree. However, you MUST remove the old file $HOME/texmf/ls-R in order to allow TeX to find new files in that hierarchy! * Backwards compatibility hacks dropped In etch, some tools and search paths still supported obsolete paths and invocations. These backwards compatibility hacks, most notably to the *-sys tools and font search paths, have now been dropped. * The parse-first-line feature is now enabled by default, in order to allow MetaPost to call TeX with different formats. Only when invoked as "teX" it is disabled to remain Knuth-compatible. -- Frank Küster Mon, 2 Apr 2007 13:42:06 +0200 tex-common (0.26) unstable; urgency=low * New font cache handling The font cache handling has been reworked completely. By default, a separate font cache is kept for each user. If you want to re-enable site-wide caching, see the instructions in README.Debian. On systems where $HOME is not writable, fonts will be temporarily cached in /tmp/texfonts. * Breakage with TeXLive The texlive packages as of version 2005-2 do not automatically create a user's TEXMFVAR directory for font caching. This might break document processing in some configurations. Simply create the directory $HOME/.texmf-var manually to fix this. -- Frank Küster Mon, 3 Jul 2006 15:25:26 +0200 tex-common-6.04ubuntu1/debian/changelog0000664000000000000000000020032513321177314015045 0ustar tex-common (6.04ubuntu1) xenial; urgency=medium * Convert trigger to noawait (LP: #1780996) -- Brian Murray Tue, 10 Jul 2018 11:45:32 -0700 tex-common (6.04) unstable; urgency=medium * set Multi-Arch: foreign -- Norbert Preining Wed, 14 Oct 2015 12:48:21 +0900 tex-common (6.03) unstable; urgency=medium * do not create temp files in / (Closes: #797381) * work on the documentation -- Norbert Preining Thu, 03 Sep 2015 09:22:38 +0900 tex-common (6.02) unstable; urgency=medium * add help2man to build-deps (Closes: #790101) -- Norbert Preining Sat, 27 Jun 2015 23:05:12 +0900 tex-common (6.01) unstable; urgency=medium * upload to unstable -- Norbert Preining Thu, 25 Jun 2015 14:41:33 +0900 tex-common (6.00) experimental; urgency=medium * remove Atsuhito Kohda from uploaders, he has retired. Thanks for the long years of work! (Closes: #773961) * remove redundant code in postinst (Closes: #777558) * rework fmtutil/hyphen handling in the same way as updmap handling * switch to trigger activated format building * try to ensure reproducible builds in files generated by dh_installtex * dh_installtex: remove generated dep on dpkg (Closes: #787906) -- Norbert Preining Sun, 07 Jun 2015 10:27:15 +0900 tex-common (5.03) unstable; urgency=medium * remove C.M. Connelly from uploaders, MIA (Closes: #765326) * bump standards version, no changes necessary * delete misleading/outdated paragraph from Debian TeX Policy -- Norbert Preining Tue, 21 Oct 2014 09:44:31 +0900 tex-common (5.02) unstable; urgency=medium * call fmtutil-sys with --no-error-if-no-engine=luajittex following upstream, as there are some architectures that do not support luajittex -- Norbert Preining Fri, 30 May 2014 17:58:17 +0900 tex-common (5.01) unstable; urgency=medium * upload to unstable -- Norbert Preining Wed, 28 May 2014 17:55:12 +0900 tex-common (5.00) experimental; urgency=low * fix man page of update-updmap (Closes: #717070) * exchange the check for kpsewhich running with a check for texlive-binaries being installed/configured. Otherwise we might run into library upgrade problems (missing symbols due to missing so bump upstream). This is done both in the debian/postinst as well as the postinst-tex code for dh_installtex. * only call mktexlsr for tl/texmf-dist tree, the tl/texmf tree is gone * bump standards to 3.9.5, no changes necessary -- Norbert Preining Thu, 22 May 2014 10:53:13 +0900 tex-common (4.04) unstable; urgency=low * remove thailatex's patched version of babel.sty (Closes: #712297) * break against thailatex versions older than 2013 to make sure that no patching of babel.sty occurs. * bump standards version to 3.9.4, no changes necessary -- Norbert Preining Sat, 15 Jun 2013 17:00:51 +0900 tex-common (4.03) unstable; urgency=low * update-fmtlang: make sure we find the head files in both the old (<= TL2012, ie texlive/texmf/) and new (>= TL2013, ie texlive/texmf-dist) -- Norbert Preining Sun, 12 May 2013 19:09:17 +0900 tex-common (4.02) unstable; urgency=low * dh_installtex: properly deal with already existing format links (error out if present and not agreeing) -- Norbert Preining Tue, 07 May 2013 11:21:54 +0900 tex-common (4.01) experimental; urgency=low * dh_installtex: if the dir /usr/share/texmf/doc is found in the a package, then the generated tex-common dependency is >= 4 -- Norbert Preining Wed, 19 Dec 2012 13:10:52 +0900 tex-common (4.00) experimental; urgency=low * drop the link from /u/s/texmf/doc -> /u/s/doc/texmf here was never a need for having /usr/share/doc/texmf at all * break with all packages having installed files into /usr/share/texmf/doc * remove stale code that deals with upgrades from versions < 3 * adapt documentation a bit to reality -- Norbert Preining Mon, 17 Dec 2012 22:42:13 +0900 tex-common (3.15) unstable; urgency=high * break against old latex-cjk-chinese shipping not working hyphenation definitons (Closes: #697669) -- Norbert Preining Thu, 10 Jan 2013 07:45:09 +0900 tex-common (3.14) unstable; urgency=low * breaks texlive-lang-arab to ensure its removal during upgrades from lenny -> squeeze -> wheezy (Closes: #694258) (thanks Andreas Beckmann) -- Norbert Preining Sun, 25 Nov 2012 11:16:02 +0900 tex-common (3.13) unstable; urgency=high * rebuild all updmap.cfg files regardless of presence of snippets this is necessary to make sure that after the last package in TEXFMDEBIAN has disappeared, the updmap.cfg file is empty (Closes: #677698) (urgency high, as this is actually a critical bug since users cannot easily fix the updmap.cfg file without manual intervention) -- Norbert Preining Mon, 18 Jun 2012 10:19:41 +0900 tex-common (3.12) unstable; urgency=low * mention NEWS.Debian in the update-updmap warning * break against old luatex, it cannot find the necessary files (Closes: #613013, #676716) -- Norbert Preining Sat, 09 Jun 2012 11:40:37 +0900 tex-common (3.11) unstable; urgency=low * don't break if texmf.cnf is already removed (Closes: #671610, #672269) * ship a html redirect file as README.Debian.html instead of a link so that hrefs work (Closes: #657677) * remove references to teTeX in all relevant places (Closes: #511710) -- Norbert Preining Thu, 10 May 2012 07:11:07 +0900 tex-common (3.10) unstable; urgency=low * fix IFS error that prevents newer hyph-utf8 to get configured -- Norbert Preining Mon, 23 Apr 2012 23:03:22 +0900 tex-common (3.9) unstable; urgency=low * break against old version of jadetex that contains wrong and outdated format definitions (Closes: #668762) -- Norbert Preining Mon, 23 Apr 2012 12:00:23 +0900 tex-common (3.8) unstable; urgency=low * update NEWS to include a paragraph for users * add a warning if one of the update-* fails due to missing checkfile, that the package has to be reinstalled with --force-confmiss * add lost definitions of TEXMFTREES, FULLTEXMFTREES, TEXMFSYSVAR to postinst, which made run mktexlsr *always* in unprotected mode (Closes: #668661) -- Norbert Preining Sat, 14 Apr 2012 08:41:08 +0900 tex-common (3.7) unstable; urgency=low * do not create /etc/texmf/language.d, and try to remove it in postinst * update-updmap now includes snippets from /etc/texmf/updmap.d which might be installed by Debian-external packages, but gives big warnings * dh_installtex: fix an error in the logic when to add a (magic) header to the snippets, which resulted in all the updmap snippets still containing the magic header (no harm done, though!) -- Norbert Preining Wed, 11 Apr 2012 08:46:18 +0900 tex-common (3.6) unstable; urgency=low * update-texmf: sort list of files to be included (Closes: #665767) * set VARTEXFONTS to /tmp/texfonts again, otherwise buildd break (Closes: #666637, #666613) -- Norbert Preining Mon, 02 Apr 2012 09:25:33 +0900 tex-common (3.5) unstable; urgency=low * fix bashism in update-texmf (Closes: #665438, #665457) * rebuild the pdfs, so that at package build time no tex system is necessary (Closes: #665633) -- Norbert Preining Sun, 25 Mar 2012 09:43:32 +0900 tex-common (3.4) unstable; urgency=low * implement support for generation of language.dat.lua for luatex based formats: - extended update-fmtlang - change and extended the format of files in hyphen.d (needs rebuild of all providing packages!) - adapt dh_installtex for new format * start fixing the TeX-Debian-Policy document * do not add a universal fail clause in the debhelper generated maintainer scripts parts if the script is called with an unknown argument (scripts/post{inst,rm}-tex) * lintian warning: add addition makefile targets * doc: first run on updated documentation -- Norbert Preining Thu, 22 Mar 2012 18:08:18 +0900 tex-common (3.3) experimental; urgency=low [ Norbert Preining ] * remove tpm2licenses, Tpm.pm, FileUtils.pm, this script is hopelessly useless now that we don't have tpm files. * fix report-bug script configuration [ Hilmar Preuße ] * add new Polish debconf translation (Closes: #662094) -- Norbert Preining Wed, 14 Mar 2012 16:55:00 +0900 tex-common (3.2) experimental; urgency=low * clean up 3.1 changelog entry * don't run upgrade code on new install * don't create and remove texmf.cnf if no texmf.d conffiles are present -- Norbert Preining Sat, 10 Mar 2012 10:49:30 +0900 tex-common (3.1) experimental; urgency=low * only try to remove /etc/texmf/web2c if it is still here (Closes: #663029) * add missing break against tex-gyre <= 2.004.1-2.1 (Closes: #663173) * remove old ucf managed files with ucf instead of dpkg-maintscript-helper (Closes: #663092) * clean upgrade from tex-common < 3, move settings in 00updmap.cfg over to /etc/texmf/web2c/updmap.cfg -- Norbert Preining Sat, 10 Mar 2012 08:48:22 +0900 tex-common (3.0) experimental; urgency=low * remove all texmf.d conf files * remove /var/lib/texmf/web2c/updmap.cfg in the postinst, it is disturbing! * properly treat KanjiMap entries in dh_installtex * postinst-tex: don't break if a fmt.d snipped has been removed * bump up to 3.0, updmap.cfg is now managed differently with multi enabled updmap, so all the local adaptions are not necessary anymore * add calls to mtxrun --generate to the mktexlsr trigger action in case context is installed * add new Dutch translation (Closes: #652627) * bump standards version, no changes necessary * add Breaks against old versions of all packages shipping files in updmap.d -- Norbert Preining Tue, 06 Mar 2012 20:06:47 +0900 tex-common (2.10) unstable; urgency=low [ Norbert Preining ] * generated postrm code does not remove metapost format since the engine was not rewritten, fix that with a special case in dh_installtex (needs rebuild of texlive-metapost, context) (Closes: #619358) * bump standards version to 3.9.2, no changes needed [ Frank Küster ] * double-escape backslash in a printf string, thanks to Steve Langasek (closes: #622938) -- Norbert Preining Sun, 26 Jun 2011 09:00:08 +0900 tex-common (2.09) unstable; urgency=high * fix creation of ls-R files in /usr/local/share/texmf by updmap-sys which is called in the trigger section of tex-common's postinst. This fixes a policy violation. (Closes: #607857) * update Danish translation (Closes: #608423) * disable shell escape completely (fix for CVE-2011-1400, DSA-2198-1) * bump standards version to 3.9.1, no changes necessary -- Norbert Preining Wed, 23 Mar 2011 09:42:02 +0900 tex-common (2.08) unstable; urgency=low * include again 80DVIPDFMx.cnf and replace dvipdfmx (if it is still there) to make it search for cmaps (Closes: #572921) (patch by YOSHINO Yoshihito) * put TeX-on-Debian into doc-base section Typesetting (Closes: #536343) -- Norbert Preining Wed, 09 Jun 2010 01:32:21 +0900 tex-common (2.07) unstable; urgency=high * reword the language.{dat,def} trigger action's message to include the name of the base format (Closes: #566915) * convert some files to UTF8 * work around an under-specification of dpkg-query that makes the calls to it in the configure script break configuration, and thus creates FTBFS of unrelated packages (Closes: #571334) * bump standards version to 3.8.4, no changes necessary -- Norbert Preining Sun, 28 Feb 2010 13:13:35 +0900 tex-common (2.06) unstable; urgency=high * call mktexlsr with list of trees in lsr trigger action (Closes: #564457) -- Norbert Preining Tue, 12 Jan 2010 20:32:14 +0900 tex-common (2.05) unstable; urgency=low * update language.def based formats in the texmf-hyphen trigger option, otherwise updating hyphenation patterns does not have any effect on those formats (Closes: #562918) -- Norbert Preining Tue, 29 Dec 2009 17:48:08 +0900 tex-common (2.04) unstable; urgency=low * fix bug in dh_installtex that added a rogue newline in hyphenation definitions, thanks Danai (Closes: #562783) -- Norbert Preining Mon, 28 Dec 2009 07:05:31 +0900 tex-common (2.03) unstable; urgency=low * only call fmtutil-sys in postinst if texlive-base is configured (Closes: #560854) -- Norbert Preining Sun, 13 Dec 2009 07:50:25 +0900 tex-common (2.02) unstable; urgency=low * upload to unstable -- Norbert Preining Wed, 09 Dec 2009 23:44:02 +0900 tex-common (2.01) experimental; urgency=low * Remove setting of MPXCOMMAND. MetaPost in TeXLive 2009 no longer needs it, and is broken when it is set. [fk] * postinst trigger action: run updmap sys action only if texlive-base installed since otherwise updmap-sys will break * bump standards version to 3.8.3 * bump depends to << 2009 (there was no 2008 anyway) -- Norbert Preining Thu, 03 Dec 2009 22:32:27 +0900 tex-common (2.00) experimental; urgency=low * new experimental branch for changes necessary to support TeX Live 2008 and later that introduced hyphenation pattern support for etex based formats. language.def is now managed like language.dat. - add support for generating language.def to update-fontlang - install those scripts as update-language-def and update-language-dat - make update-language work as calling both of the above - adjust dh_installtex to accept new syntax * Make the wording of the warning message in postrm-texlsr broader, since there are a couple of reasons why this can fail * postrm's generated by dh_installtex now no longer assume that tex-common is installed when the package is removed. After a rebuild of texlive, this will fix #531581. * Update some texmf.cnf settings for TeXLive 2009. Before uploading to unstable, this needs a closer inspection (in particular, comment changes possibly cluttering diffs. * Add a Conflicts on old texlive-common, in order to force an upgrade of all the packages in one bunch. * implement trigger support for mktexlsr -- Frank Küster Thu, 15 Oct 2009 10:22:22 +0200 tex-common (1.20) unstable; urgency=low * after the change to tex-common's postinst script the ls-R file for /var/lib/texmf was not recreated, which breaks installation. Add this tree to the trigger call to mktexlsr (Closes: #532525) -- Norbert Preining Tue, 09 Jun 2009 22:37:03 +0200 tex-common (1.19) unstable; urgency=low [ Norbert Preining ] * change dh_installtex generated postrm code to call update-texmf-config only if it is present. That should be due to the policy, but it still might happen that tex-common is not installed bug another package depending on it is tried to be removed (see bug #531581). (Closes: #530832) * Remove the code in postrm that removes /usr/local/share/texmf/ls-R, we are not allowed to do that (policy), but we try to remove that directory if it is empty. (Closes: #528021) [ Frank Küster ] * Make sure that tex-common's own postinst script does not create /usr/local/share/texmf/ls-R (closes: #528021) -- Frank Küster Sun, 07 Jun 2009 21:53:07 +0200 tex-common (1.18) unstable; urgency=low * make sure that fmtutil-sys --all and updmap-sys are called on new installations when tex-common is configured, since new installations do not trigger. This bug fixes via rebuild of texlive-base #520042, #520410, and via rebuild of #520449. * bump the dh_installtex induced dependency on tex-common to 1.18 * rework trigger support so that new file triggers are used, but the code in the maintainer scripts generated by dh_installtex for updmap and language calls the new script update-texmf-config which simply calls the respective trigger. In the course of the the options map:notriggers and language:notriggers were removed from the possible options of dh_installtex. -- Norbert Preining Mon, 13 Apr 2009 22:33:23 +0200 tex-common (1.17) unstable; urgency=low * remove developer only information from debian/NEWS (Closes: #519964) and include the information in the changelog entry for 1.15. * using dh_installtex --flavor formats:build_all breaks because we removed the calls to update-fmtutil etc. Readd all those calls (Closes: #520166) * bump standards version to 3.8.1, no changes needed -- Norbert Preining Tue, 17 Mar 2009 21:57:47 +0100 tex-common (1.16) unstable; urgency=low * add mktexlsr calling code from postinst-tex to the trigger action in case it has never been run before. That allows fresh installations to succeed. (Closes: #519701) [np] -- Norbert Preining Sat, 14 Mar 2009 16:57:24 +0100 tex-common (1.15) unstable; urgency=low [ Norbert Preining ] * upload of trigger-enabled tex-common to unstable, packages should be rebuild. Triggers are supported for files dropped into /etc/texmf/updmap.d and /etc/texmf/language.d, i.e., for calls to updmap-sys and fmtutil-sys (when hyphenation patterns are used). If packages need to install fonts/hyphenation patterns and need them active in the postinst already, it should call dh_installtex with --flavor=map:notriggers or --flavor=language:notriggers Until all packages have been rebuilt with the new dh_installtex updmap-sys and fmtutil-sys will be called two times. * remove references to teTeX from the man pages (Closes: #486369) * bump dh compat level to 5, adjust debian/control * add ${misc:Depends} to dependencies [ Jan Hauke Rahm ] * make debhelper's '--with' option available for tex-common. dh_installtex can now be integrated in debian/rules via 'dh install --with tex' when using compat 7 -- Norbert Preining Tue, 10 Mar 2009 18:36:33 +0100 tex-common (1.14) experimental; urgency=low * fix coding error in dh_installtex's pod documentation [np] * updated Romanian translation (ro.po) (Closes: #506038) [hilmar-guest] * add a fix for dh_installtex to work with debhelper >= 7.1.0 (experimental) (Closes: #507365) (patch from Roderich Schupp) [np] -- Norbert Preining Mon, 01 Dec 2008 17:31:26 +0100 tex-common (1.13) experimental; urgency=low * bump standards version to 3.8.0, no changes necessary [np] * use the local keyword in policy compliant way [np] * replace emacs with share/texmf in postinst.in [np] * add updated version of sv.po (Closes: #491426) [hilmar-guest] * Fix dh_installtex compatibility with debhelper version >= 6 (Closes: #492604) [np] -- Norbert Preining Sat, 02 Aug 2008 13:04:18 +0200 tex-common (1.12) experimental; urgency=low * bump version of tex-common packages built with dh_installtex to 1.11 otherwise the conflict with tetex-base is not included properly. This really would close #467330, but due to the disappearance of 1.10 the last version is also sufficient [np] * Create empty /usr/local/share/texmf in postinst, remove in prerm if empty, with code taken from the Policy manual. The decision whether local documentation should be in the texmf tree or in /usr/local/share/doc and accessed via a symlink is left to the local admin (closes: 475077) [fk] * Removed the tetex-bin-upgrade script from the source, it is not needed nor installed, anyway [fk] * register TeX on Debian and the Policy in section Debian [hp, np] * remove double definition of OPENTYPEFONTS in texmf.d [np] * fix wrong file link in Debian-TeX-Policy.sgml (Closes: #481038) * Again install the README file for tpm2licenses in /usr/share/tex-common/ [fk] * implement support for triggers for /etc/texmf/updmap.d and /etc/texmf/language.d [np] -- Norbert Preining Mon, 02 Jun 2008 16:41:31 +0200 tex-common (1.11) unstable; urgency=medium * bump version of tex-common packages built with dh_installtex to 1.10 since it is the version that removes the tetex part (see #466036) [np] * And Conflict with tetex-base (<< 2007), in order to force a /complete/ transition to texlive in lenny (closes: #467330). At the same time, drop the conflict with tetex-bin, since tetex-base already does that. However, when and if we remove the tetex-base package, we need to find a different solution for this [fk] * These two changes fix RC bugs, hence the urgency [fk] * Another update run for debconf translations [hilmar-guest] - Vietnamese (Closes: #453780) * change the definition of TEXFORMATS to prohibit the finding of wrong formats (and be in sync with upstream TeX Live), and remove the trailing // of MFBASES and MPMEMS. [np] * update po files [np] * bump standards version to 3.7.3, no changes necessary [np] * move the build stuff to binary-indep, the package is arch=all [np] -- Frank Küster Wed, 16 Apr 2008 21:54:38 +0200 tex-common (1.10) unstable; urgency=low * update-fontlang: - properly handle file paths containing spaces; - when the jadetex or xmltex snippet is not included, write an explanation to fmtutil.cnf; - only trigger special behavior on 40jadetex.cnf, not on *40jadetex.cnf; same thing with 40xmltex.cnf and 10texlive-latex-base.cnf; - use 0 and 1 instead of "false" and "true" for $seen_latex in order to be consistent with the rest of the script. [florent] * add warning to the pod documentation / man page of dh_installtex that it will add management calls to *all* packages if not instructed otherwise (Closes: #400742) [np] * remove duplicate TEXDOC configuration in 45TeXinputs.cnf which gave .html a higher priority then pdf.gz. Thanks Jörg. (Closes: #431610) [np] * Remove some outdated stuff in TeX-on-Debian [np] * remove the tetex part in TEXMFDIST, remove TETEXDIR from TEXMFCNF [np] * add Vcs-Svn and Vcs-Browser fields to debian/control [np] * update debconf template and package descriptions in control file (Closes: #447689) [hilmar-guest] * l10n updates + additions [hilmar-guest] - Basque (Closes: #448485) - Catalan - Czech (Closes: #449263) - Danish - Dutch - Finnish (Closes: 448291) - French (Closes: #450704) - Galician (Closes: #448232) - German (Closes: #448245) - Italian (Closes: #448367) - Japanese (Closes: #448680) - Korean (Closes: #448436) - Lithuanian (Closes: #448705) - Norwegian Bokmål (Closes: #450911) - Portuguese (Closes: #449234) - Portuguese/Brazil - Russian (Closes: #450726) - Romanian - Spanish (Closes: #448541) - Swedish - Turkish - Vietnamese -- Norbert Preining Wed, 21 Nov 2007 09:26:01 +0100 tex-common (1.9) unstable; urgency=low * Make sure that update-fontlang detects TEXMFVAR properly even if the directory does not yet exist (closes: #428448) [fk]. * let update-fontlang and debianize-updmap create TEXMFCONFIG if it doesn't exist yet (at least when there's only one directory in that variable) [fk]. -- Frank Küster Tue, 19 Jun 2007 11:32:09 +0200 tex-common (1.8) unstable; urgency=medium * Bump urgency since this fixes a RC bug which hits anyone upgrading from lenny to sid and triggers a forkbomb. Urgency only medium because of the long list of unrelated other changes. [fk] * Add a workaround for the fork bomb problem in format generation: Ignore jadetex and xmltex if latex is not present (closes: #427562) [fk] * make proper ucfr checking in maintainer scripts (Closes: #409897) [np] * rework the code generated by dh_installtex in the postinst script. Now at postinst/configure time fmtutil-sys is called with --all --cnffile where are the fmt.d config files installed by the package. This way a dpkg-reconfigure will create *all* formats defined in the config file, even if the sysadm has defined additional formats. (Closes: #418983) [np] * Update snippets in texmf.d according to a reordering patch accepted upstream [fk] * (first) rework of Debian-on-TeX document for TeX Live only [np] * add a list of old files from teTeX which can be removed * Do not install unused 01tetex.cnf and its md5sum file [fk] * dh_installtex: rewrite $engine to metafont if $engine = mf|mf-nowin * Install a copy of mktex.cnf in /usr/share/tex-common, and advice in NEWS.Debian to reinstall it. [fk] * Debconf translations: Added Vietnamese translation, thanks to Clytie Siddall (closes: #426881) * implement an opion --nosourcefiles for tpm2licenses to not check source files * Add symlinks "README.Debian.$ext" to the respective "TeX-on-Debian" formats. [fk] -- Frank Küster Mon, 11 Jun 2007 10:14:14 +0200 tex-common (1.7) unstable; urgency=low * Undo the changes of the autoscripts snippets ordering, debhelper has changed back to the former method. -- Norbert Preining Sat, 14 Apr 2007 08:39:46 +0200 tex-common (1.6) unstable; urgency=low * Document in NEWS.Debian that support for ls-R in TEXMFHOME has been dropped [fk] * Policy: Add a chapter on meta-packages and document that they are usually not acceptable as dependencies * reverse the order of autoscripts snippets in postrm (Closes: #418984) * change alternative dep on cdebconf to (>= 0.39), lintian error. -- Norbert Preining Fri, 13 Apr 2007 09:34:44 +0200 tex-common (1.5) unstable; urgency=low * fix missing tetex component of TEXMFDIST (Closes: #418674) -- Norbert Preining Wed, 11 Apr 2007 09:45:29 +0200 tex-common (1.4) unstable; urgency=low * Change main_memory to 1500000 to go with the main_memory of mpost and TeX Live's texmf.cnf. This change is needed to make mpost work under all circumstances [np]. * Update settings and comments in the texmf.cnf snippets to match upstream's as close as possible [fk] * Drop backwards compatibility hacks for paths (see NEWS.Debian) [fk] * Enable parse-first-line feature, except for Knuth's "tex". [fk] * Update Tpm.pm and FileUtils.pm from TeXLive 2007 [fk] -- Norbert Preining Tue, 10 Apr 2007 17:52:56 +0200 tex-common (1.3) experimental; urgency=low * Fix typography in Debian-on-TeX, thanks to Miguel de Val Borro (closes: #413449) [frank] * In the source package, replace 'tex-sed' with a Python script named 'texify-tex-output' to do a better job (handling all known cases so far, some of which seemed rather difficult to implement in sed). We don't need to Build-Depend on Python, because this script is only used when we generate PDF output from the DebianDoc documents (Debian-TeX-Policy, TeX-on-Debian), which we don't do at build time in order to avoid chicken-and-egg problems. [florent] * Add engine subdirectories to the search paths for MetaFont and MetaPost, too. Thanks to Jörg Sommer * Change the dh_installtex removal logic since format dumps are placed into engine subdirectories. We now remove all format dumps and log files in /v/l/t/web2c and /v/l/t/web2c/$engine/ -- Norbert Preining Thu, 22 Mar 2007 01:28:27 +0100 tex-common (1.2) experimental; urgency=low * rename flavor format:no_format_links to format:no_links (nobody is using it already), and document it [NP] * increase trie_size to 400000 to allow the loading of all texlive hyphenation patterns [NP] * Make sure that dh_installtex's postrm snippets won't try to run fmtutil-sys when it might be already uninstalled. -- Frank Küster Fri, 9 Mar 2007 16:12:17 +0100 tex-common (1.1) experimental; urgency=low * Upload to experimental. This version is needed to build TeXLive 2007. * Increase trie_size to the value in TeXLive 2007, and update the comment from their texmf.in file, too. * Only strip comments with '^[ \t]*# ' from the auto files to preserve comments starting with ## [NP] * small fix to dh_installtex for useless inclusion of postinst-tex (move the definition of $dothefullstuff into the package loop) * implement flavors format:build_all and format:add_one:formatname * let dh_installtex automatically create links for formats installed and add flavor to disable this behaviour. * fix a bug in dh_installtex which prohibits --priority to work correctly for command line config files. [NP] * add Norbert Preining to the uploaders * add lintian overrides for wrongly detected bashism -- Norbert Preining Mon, 26 Feb 2007 18:31:32 +0100 tex-common (1.0) unstable; urgency=low * Release as version 1.0, tex-common has been stable for months and deserves a non-zero version number * Debconf translations: [frank] - New Romanian translation, thanks to Eddy Petrișor (closes: #409267) - New Portuguese Brazilian translation, thanks to the Traduz MailingList (closes: #408866) - Updated Catalan translation, thanks to Guillem Jover (closes: #409162) -- Frank Küster Mon, 5 Feb 2007 10:55:26 +0100 tex-common (0.44) unstable; urgency=low * Use full pathname when registering files with ucf (closes: #408263) * New and updated debconf translations: - Galician by Jacobo Tarrio (closes: #408122) -- Frank Küster Fri, 26 Jan 2007 18:10:23 +0100 tex-common (0.43) unstable; urgency=low * Register documentation in section TeX instead of Text (closes: #403086) [frank] * Debconf translations: - add Russian translation, thanks to Yuri Kozlov (closes: #406872) -- Frank Küster Mon, 15 Jan 2007 07:51:34 +0100 tex-common (0.42) unstable; urgency=low * Documentation fixes to update-fontlang.1: - the .TH line was broken, causing an ugly footer in the formatted manpage; - the SYNOPSIS had an incorrect syntax ('-language', '-updmap', and '-fmtutil' aren't optional) and the new way is much easier to read anyway IMO; - always mention the programs in that order: update-updmap, update-language and update-fmtutil (reason is, I think the average user is more likely to need update-updmap than any of the two others); - the arguments to some options were forgotten, as in the update-fontlang usage message ('--help'); - better option formatting (for those with a short and a long form; copied from /usr/share/man/man1/man.1.gz); - the default values for TEXMFCONFIG and TEXMFVAR do *not* end with a slash; - the path to TeX-on-Debian.txt.gz was wrong; - s/updmap.sys/updmap.cfg/; - s/TEMXF/TEXMF/ in a few places; - a package may install *several* files in each /etc/texmf/*.d directory (and list them in the .list files under /var/lib/tex-common). - a bit more details here and there; - more formatting to ease reading (such as italics), punctuation, typographical fixes. [florent] * Fix to update-fontlang: don't forget the arguments to '-c' and '-o' in the usage message ('--help'). [florent] * Minor fixes to postrm-texlsr to avoid having too long lines (greater than 80 characters). [florent] * remove the left-over definition of dhit_check_run_without_errors in postrm-tex, it is included in postrm-texlsr (Closes: #402068). [NP] -- Frank Küster Mon, 11 Dec 2006 19:46:08 +0100 tex-common (0.41) unstable; urgency=low * Install the TDS specification along with the Debian TeX Policy (closes: #401196) [frank] * Register ucf files with ucfr (closes: #395018) [frank] * Refined wording and typography of the documentation documents -- Frank Küster Wed, 6 Dec 2006 19:03:21 +0100 tex-common (0.40) unstable; urgency=low * Register TeX-on-Debian and the policy with doc-base * Change the wording of Policy to indicate more clearly that everything can (and should) be done using dh_installtex. -- Frank Küster Wed, 6 Dec 2006 11:08:26 +0100 tex-common (0.39) unstable; urgency=low * changelog editing: fix wrong bugnumber in last upload [frank] * Add a more verbose explanation to the warning when updmap-sys failed (closes: #397717), and echo errors to stderr. [frank] * Change default priority for dh_installtex to 20, and document in the TeX Policy that 10 is reserved for Basic TeX packages. This would have avoided bug #399447. [frank] -- Frank Küster Tue, 21 Nov 2006 18:32:32 +0100 tex-common (0.38) unstable; urgency=low * install update-fontlang and the three links all into /usr/bin and keep symlinks in /usr/sbin for old packages. Update the man page of update-fontlang. (Closes: #396822) [preining] * Clear up the description about user-specific configuration in TeX-on-Debian, many thanks to Géraud Meyer (closes: #396826) [preining,frank] * Debconf translation updates: [frank] - French, thanks to Christian Perrier (closes: #395844) - Italian, thanks to Luca Monducci (closes: #396101) - German, thanks to Helge Kreutzmann (closes: #396036) - All others except the heavily outdated ca.po where unfuzzied by me, even in Japanese I can change "dpkg-dist" to "ucf-dist" [frank] -- Frank Küster Fri, 3 Nov 2006 14:14:12 +0100 tex-common (0.37) unstable; urgency=low * Fix bashism in postinst, thanks to Michael Biebl (closes: #395274) [frank] -- Frank Küster Thu, 26 Oct 2006 08:14:29 +0200 tex-common (0.36) unstable; urgency=medium * Depend on debconf (>= 1.4.69), which introduced the error template type (closes: #395032). This broke upgrades, hence the urgency [frank] * Fix format extraction regexp in dh_installtex, the format name must now be at the beginning of the line, without any leading whitespace, but hyphens are allowed in the name. Thanks Ralf. [preining] * dh_installtex: Include only the minimal mktexlsr code in case no other installation is done (ie no maps, formats, languages). Also add the ability to specify texmf trees on the command line, and only recreate the ls-R DB for /usr/share/texmf and /var/lib/texmf [preining] (Closes: #392359) * Add engine-specific paths to the TEXFORMATS and TEXFONTMAPS variables, and avoid triple slashes. This is completely backwards-compatible (it only adds path components), and is needed for the planned separate context package. Thanks to Ralf Stubner for the details! [preining,frank] -- Frank Küster Wed, 25 Oct 2006 13:16:13 +0200 tex-common (0.35) unstable; urgency=low * Use local variables in debianize-updmap, so that the right file for enabling font maps will be found (closes: #393920) [frank] -- Frank Küster Wed, 18 Oct 2006 17:58:09 +0200 tex-common (0.34) unstable; urgency=medium * Handle non-writable /usr/local gracefully upon removal, thanks to Sam Hocevar (closes: #392518) [frank] * Change debianize-updmap so that the --syncwithtrees and --edit options do something sensible, and won't break the system. Together with the upload of tetex-bin 3.0-22, this will close #392573 and #334747. [frank] * Add a check for shadowed config files to update-fontlang [preining] * Move and extend the teTeX README.Debian to TeX-on-Debian Documentation [frank, preining] * Move po-debconf from Build-Depends-Indep to Build-Depends, since it's used in the clean target of debian/rules. [florent] * Adjust the TEXMFCNF setting in conf/texmf.d/85Misc.cnf to reflect the change in tetex-bin 3.0-22. [frank, florent] -- Florent Rougon Sat, 14 Oct 2006 18:53:20 +0200 tex-common (0.33) unstable; urgency=medium * Fix syntax error in debianize-updmap (closes: #391976). Also, the logic in the script has been fixed, so that it actually works [frank] * Add an additional check to update-* scripts in case users shadow their generated files with files in TEXMFCONFIG. [preining] -- Frank Küster Tue, 10 Oct 2006 10:21:19 +0200 tex-common (0.32) unstable; urgency=medium * adapted sanity check in update-fontlang to TEXMFSYSCONFIG = /etc/texmf (closes: #391348) [ralf] * Provide a tetex-bin-update script. This allows also texlive to properly rename an old tetex-bin conffile, and add the magic comment, and is therefore needed for a transition from teTeX to TeXlive without upgrading teTeX to the etch version first [frank] * Install debianize-updmap into the scripts dir [frank] * Provide the debianize-updmap functions in /usr/share/tex-common, for usage by all TeX systems in Debian [frank] * Changed the order of trees in TEXMFDIST. If TeXlive and teTeX packages are installed together, files from TeXlive now take precedence. This makes sense because those files are usually newer. [frank] -- Frank Küster Mon, 9 Oct 2006 07:46:31 +0200 tex-common (0.31) unstable; urgency=medium * Document in policy that font cache data have to be cleaned by packages that Build-Depend on TeX, and how to do that (closes: #388399) [frank] * On systems upgraded from woody to sarge, tetex-bin generated a bogus local configuration file with entries that were erroneously detected as locally changed. These entries are now harmful and break texlive, and the file is therefore renamed if it meets our expectations (closes: #391355) [frank] * In 95NonPath.cnf, add a comment about how to redump the format file (closes: #380323) [frank] -- Frank Küster Fri, 6 Oct 2006 17:40:19 +0200 tex-common (0.30) unstable; urgency=high * update-fontlang: If a conffile has a corresponding dpkg-new file, that is, it is from a yet-unconfigured package, drop it any case. Previously, the check was only done when the file had a magic comment, but conffiles in sarge generally do not have this magic. Therefore, upgrades from sarge would have failed if the conffile change is needed for proper configuration (closes: #389550) [frank] * Remove the medium-priority debconf note without replacement; anybody who really runs into the problem will be able to find the information in tetex-bin's README.Debian (closes: #388973) [frank] -- Frank Küster Tue, 26 Sep 2006 17:14:45 +0200 tex-common (0.29) unstable; urgency=medium * Add missing function and variable declarations to preinst, thanks to Hilmar (closes: #385532) [frank] * Do not load debconf manually in postrm, it isn't needed at all, thanks to Bill Allombert (closes: #388156) [frank] -- Frank Küster Tue, 19 Sep 2006 09:17:13 +0200 tex-common (0.28) unstable; urgency=low * Fix spelling of "medium" in the last upload * Remove jadetex settings from texmf.d (closes: #384333) [frank] * Add a paragraph to the Policy how to handle format creation when latex.fmt or other basic formats are needed [frank] -- Frank Küster Wed, 23 Aug 2006 22:09:37 +0200 tex-common (0.27) unstable; urgency=medium * Policy Change: Treat configuration files properly as Debian Policy mandates. The only TeX-specific addition is that we remind maintainers to only treat files for site-wide changes as configuration files, not files intended to change the typeset output on a per-document or per-project basis. Consequently, mktex.cnf is now installed as /etc/texmf/web2c/mktex.cnf. Thanks to Manoj Srivastava! This closes: #379089, a RC bug, hence the medium urgency [frank] * Really install NEWS.Debian about the font cache changes in the last upload [frank] * Update changelog for 0.16. We forgot to close two bugs. [hilmar-guest] * Debconf Translations: [frank] - Update Dutch translation, thanks to Vincent Zweije (closes: #379234) - Update Spanish translation, thanks to Javier Fernández-Sanguino Peña (closes: #382967) -- Frank Küster Wed, 16 Aug 2006 16:58:01 +0200 tex-common (0.26) unstable; urgency=low * Font data are now cached separately for each user, or in /tmp/texfonts when there is no writable home directory. Thus we could get rid of the complicated debconf questions related to that issue (there's still one note left) (closes: #376050, #366805, #368411). Many thanks to Ralf Stubner for his "braindump". This change requires installation of a file in a TEXMF tree; we therefore run mktexlsr if it is available. [frank] * Debconf Translations: [frank] - Updated Czech translation, thanks to Miroslav Kure - Updated Japanese translation, thank to Kenshi Muto (closes: #376632, #377945) - Updated brazilian Portuguese translation, thanks to Felipe Augusto van de Wiel (faw) - Updated Danish translation, thanks to Claus Hindsgaul (closes: #377664) - Updated German translation, thanks to Helge Kreutzmann - Updated italian translation, thanks to Luca Monducci (closes: #377378). - Updated french translation, thanks to Jean-Baka Domelevo-Entfellner (closes: #377388) - Updated Swedish translation, thanks to Daniel Nylander - Updated Lithuanian translation, thanks to Kęstutis Biliūnas * common.functions.in: [florent] + change create_tetex_formats() so that fmtutil-sys is run in a temporary directory; otherwise, it may use files lying in the current directory, which can cause bad surprises. This will close #377581 when propagated to the various packages using this function in their maintainer scripts. + replace `command args ...` with $(command args ...) everywhere in the file. * Updated Maintainer field to use new mailing list [jdg] -- Frank Küster Wed, 19 Jul 2006 16:05:47 +0200 tex-common (0.25) unstable; urgency=low * Translations: - Fix typos in french debconf translation, thanks to Florentin Duneau (closes: #374632) [frank] - Update brazilian Portuguese debconf translation, thanks to Andre Luis Lopes and Felipe Augusto van de Wiel [frank] * scripts/update-fontlang: - don't include ${conffile} in the generated file if ${conffile}.dpkg-new exists ($conffile may not be up-to-date in this case); see http://lists.debian.org/debian-tetex-maint/2006/06/msg00260.html for a discussion of this subject. - cosmetic fixes. [florent] * Update scripts/update-updmap.1 and doc/Debian-TeX-Policy.sgml accordingly. [florent] -- Florent Rougon Mon, 26 Jun 2006 10:37:04 +0200 tex-common (0.24) unstable; urgency=low * Updated debconf translations: - French, thanks to Steve (closes: #369360) [frank] * dhit_check_run_without_errors() in postrm-tex was not completely silent even if called with -silent (outputing 3 ugly lines starting with a space followed by "done."). This is now fixed. [florent] -- Florent Rougon Sun, 18 Jun 2006 23:14:27 +0200 tex-common (0.23) unstable; urgency=low * After the groupname question has been renamed, make sure that the new questions are not shown again when the old one has already been seen, and unregister the old question (closes: #366812) [frank] * Fix bashism in config (closes: #366789) [frank] * Fix our check for a working configuration in texmf.d, and write short information messages to stderr for the noninteractive frontend or for people who don't have a pencil (closes: #366907), thanks Ralf [frank] * Make sure the font cache directory is always world-writeable - we previously missed the case where apt-utils are installed in a buildd chroot (again closes: #354113, #366858) [frank] * Updated debconf translations: [frank] - Czech by Miroslav Kure (closes: #367162) - Danish by Claus Hindsgaul (closes: #367180) - Italian by Luca Monducci (closes: #367183) * Debian TeX Policy: Remove last occurrences of obsolete TEXMFSITE. -- Frank Küster Wed, 17 May 2006 18:56:32 +0200 tex-common (0.22) unstable; urgency=low * Also install FileUtils.pm which is needed by tpm2licenses [frank] * Make running of update-* commands silent in the debhelper postrm helper scripts (Closes: #365070) [preining] * Debconf translations: - updated wording of swedish template, thanks to Daniel Nylander (closes: #365992) [frank] * Change the configuration scheme again a little: Before accepting a group name typed by the user, test whether it really exists. Furthermore, if there is only one user in the "normal user" range in /etc/passwd, suggest their group as the owner of the font cache. And finally, make the wording clearer everywhere. Many thanks to Anthony DeRobertis , James R. Van Zandt" and Helge Hafting (closes: #366107, #366095, #365513) [frank] * Fix lintian warnings and errors: [frank] - Move eperl to Build-Depends-Indep - Fix my name in update-language(8) - Add overrides for the font cache permissions and our debconf note if the postinst script fails. * Bump standards version (no changes needed) [frank] -- Frank Küster Wed, 10 May 2006 13:19:52 +0200 tex-common (0.21) unstable; urgency=low * Syntax error: postinst script silently failed when it should have displayed a debconf warning [frank] * Improve readability of eperl scripts in debian/ as in tetex-bin [jdg] * Adjust priority of the groupname debconf question to be the same as the managecache question (closes: #360127) [frank] * Fix eperl open commands in maintainer scripts to work with -k [jdg] * Made preinst a /bin/sh script [jdg] * Install the tpm2licenses Perl script and the Tpm.pm module into /usr/share/tex-common for more convenient use [frank]. * Add to the source package a ChangeLog file to keep track of the copyright/licensing verification work I'm doing [frank] * Update debconf translations: - Danish by Claus Hindsgaul (closes: #360035) - Czech by Miroslav Kure (closes: #360212) - Spanish by Javier Fernández-Sanguino Peña - Swedish by Daniel Nylander - Turkish by Osman Yuksel - Lithuanian by Kęstutis Biliūnas (closes: #360282) - Italian by Luca Monducci (closes: #360645) - Japanese by Kenshi Muto (closes: #360679) - German by Helge Kreutzmann - French by steve (closes: #362426) Many thanks to all contributors! [frank] -- Frank Küster Fri, 21 Apr 2006 09:49:06 +0200 tex-common (0.20) unstable; urgency=medium * This version fixes a RC bug (#357983) - the version in testing was not affected. But taken together, 0.20 fixes lots of important and annoying bugs that also exist in testing that I'm increasing the urgency. [frank] * Change wording in debconf template and README.Debian to clearly indicate that per default users are not member of the "users" group, (closes: #356960, #357983) [frank] * Install reportbug control script to report with tetex and texlive packages [frank] * update-fontlang: Change the note that is displayed when the output file is a symlink to an error message (displayed also in quiet mode) (closes: #357289) [frank] * Fix typos in update-updmap.1 and update-language.8, thanks to Nicolas François (closes: #357763). [florent] * Translations: - Update french debconf translation, thanks to Steve (does not closes bug #356840, since it is incomplete) [frank] -- Frank Küster Wed, 22 Mar 2006 12:29:54 +0100 tex-common (0.19) unstable; urgency=low * cater for groups without a name when setting the groupname debconf variable (Closes: #354401) [preining] * Use debconf for user interaction if the postinst script detects incompatible settings, thanks to John Goerzen (closes: #353474) [frank] * add --check option to update-fontlang and to the man pages, but state that it should not be used in maintainer scripts (Closes: #354517) [preining] * Fix copying error in dh_installtex that created dvips config files with an additional comma [preining] * Translations: - Update Swedish debconf translation, thanks to Daniel Nylander (closes: #354635) [frank] - Update Danish debconf translation, thanks to Claus Hindsgaul [frank] - Update German debconf translation, thanks to Helge Kreutzmann [frank] - Update Italian debconf translation, thanks to Luca Monducci (closes: #355033) [frank] - Update Turkish debconf translation, thanks to Osman Yüksel (closes: #355061) [frank] - Update Japanese debconf translation, thanks to Kenshi Muto (closes: #355141) [frank] - Update Czech debconf translation, thanks to Miroslav Kure [frank] - Update Lithuanian debconf translation, thanks to Kęstutis Biliūnas (closes: #355453) [frank] - Update Spanish debconf translation, thanks to Javier Fernández-Sanguino Peña [frank] -- Frank Küster Sat, 11 Mar 2006 17:58:38 +0100 tex-common (0.18) unstable; urgency=low * Perform all config checks in the postinst script instead of exiting after the first failure * Call debconf-updatepo in the clean and build targets, thanks to Thomas Huriaux (closes: #354138) [frank] * Remove "set -x" from config.in, a leftover from debugging. Sorry. (closes: #354181) [frank] * Add many more md5sums for obsolete conffiles. And add a script in the source package to check whether we now catch all of them. Many thanks to Andreas Tille! [frank] * Fix the missing dhit_ prefix to the build_format call in postinst-tex autoscript [preining] * Fix spelling error in template, thanks to Matt Krai (closes: #354318) * Replace wrong mode 3755 with 3775 in templates. [florent] * Add myself to the Uploaders field. [florent] * Remove duplicate Build-Depends-Indep on debiandoc-sgml. [florent] -- Florent Rougon Sat, 25 Feb 2006 12:58:27 +0100 tex-common (0.17) unstable; urgency=low * Restore the previous behavior by making the subdirectories of /var/cache/fonts world-writable by default. Since this is unsafe, advice the user in the debconf template, and increase the question's priority to medium. Thanks to Lars Wirzenius, closes: #354113. We do not fix existing systems, since this is mainly targeted at pbuilder environments and similar, where tex-common is only installed on demand. [frank] * fix an error in dh_installtex when grepping for the magic header [ralf] * Add an md5sum for psfonts.ams, thanks to Andreas Tille [frank] -- Frank Küster Thu, 23 Feb 2006 17:36:04 +0100 tex-common (0.16) unstable; urgency=low * Add dh_installtex for public perusal. [preining] - add dh_installtex and man page - replace dh_installtexfonts by a script converting the syntax - give a warning in the dh_installtexfonts man page * common.functions.in: - Add md5sums for tetex-extra's former configuration files (closes: #351649, #352486) [frank] - Also add some forgotten md5sums for tetex-base, and make sure scripts really stop if the md5sum is unknown (closes: #352688) [frank] - remove LaTeX and pdfLaTeX format files before trying to recreate all format (closes: #352391, #346135, #352569) [frank] - use different variable names for /var/lib/texmf as a texmf.cnf variable and as a maintainer script variable [frank] * rework debconf usage (Closes: #352394) [preining,frank] - only care for ls-R file permissions of the font cache from now on - manage the group and permissions of /var/cache/fonts * TeX Policy Draft: - document dh_installtex and some additional checks needed in maintainer scripts [florent] - Clarify that some files from the Basic TeX Packages stay in TEXMFMAIN [frank] -- Frank Küster Wed, 22 Feb 2006 13:43:32 +0100 tex-common (0.15) unstable; urgency=high * Urgency high, because this version adds important checks that should be present when the teTeX packages enter testing * Add more checks for essential entries in texmf.cnf, and bail out with a user-friendly error message if they are missing (closes: #346326) [frank] * Fix functions in common.functions.in, so that old conffiles of teTeX are properly handled, thanks to Ralf Stubner * Drop unneeded paths from TEXFONTMAPS, we now have only 3.0's upstream value plus our backward-compatibility paths; also change the check in the postinst accordingly (although the old one would still work, we do not allow it for simplicity's sake). [frank] * Fix typo in dh_installtexfonts which would echo wrong file names, and add --quiet to the call of update-updmap in the debhelper scripts [preining] * Again fixed extensions of files to purge, and take over correct language.dat handling from tetex-base (see: #321804). [frank] * Move the handling of 00updmap.cfg from postinst to preinst, where it belongs [frank] * Fix typo in manpage for update-language, thanks to Nicolas François (closes: #349723) [frank] -- Frank Küster Thu, 26 Jan 2006 22:24:06 +0100 tex-common (0.14) unstable; urgency=low * Bump standards version to 3.6.2 (no changes needed) * Move debiandoc-sgml from Build-Dep to Build-Dep-Indep * Fix a couple of lintian errors and warnings * Fix dvips config syntax, thanks to Danai SAE-HAN [preining] * Rework the debhelper snippets post(inst|rm)-texfonts [preining] -- Norbert Preining Thu, 22 Dec 2005 16:38:54 +0100 tex-common (0.13) unstable; urgency=low * tex-common now provides the symlink /usr/share/texmf/doc --> ../doc/texmf, because tetex-doc now puts its files into TEXMFDIST [frank]. * Do no longer install teTeX's common.* files and dsf-patch.mk, they are no longer used. * Implement --flavor for dh_installtexfonts, first flavors are only for generating config files for maps [preining]. * Fix brace expansion in pdksh, patch from Robert Luberda (closes: #342781) [preining] * Add fonts/hbf to the search path for T1 fonts, this is needed by cjk-latex. [frank] * Translations: - Update Czech debconf translation, thanks to Miroslav Kure (closes: #341941) [frank] - Fix italian translation file, this really closes: #340031 [frank] -- Frank Küster Sun, 11 Dec 2005 14:53:05 +0100 tex-common (0.12) unstable; urgency=low * change ls_R_magic to include ., ./, and ls-R so that kpathsea does not moan about unusable entry. [preining] * Document TEXMFSYSCONFIG in the Policy Draft, and add some more clarifications to the text [frank] * change TEXMFDIST to include texmf-texlive and texmf-tetex [preining] * Translations: - Update French debconf translation, thanks to Clément Stenac (closes: #341721) [frank] -- Frank Küster Fri, 2 Dec 2005 17:40:04 +0100 tex-common (0.11) unstable; urgency=low * Check for correct setting of TEXFONTMAPS after possible user interaction in postinst, and fail with a clear error message, instead waiting for teTeX's or TeXLive's updmap calls to fail (closes maybe: #338585) [frank] * Add a function clean_texenvironment to common.functions, to be used from TeX package's postinst scripts, and document that in the Policy document. [frank] * Add the md5sum of the postinst-edited 00updmap.cfg to ucf's database. Also fix the logic for taking over changed settings from tetex-base, and create 00updmap.cfg with proper permissions. Special thanks to Junichi Uekawa for insisting (closes: #335682, #338689) [frank] * The Policy draft has been extended [frank] * change TEXMFSYSCONFIG to /etc/texmf and remove the !! before TEXMFCONFIG in TEXMF [preining] * add TEXMFSYSCONFIG to TEXMF and and reshuffle the order [preining] * change TEXMFDBS [preining] * Translations: - add Swedish debconf translation, thanks to Daniel Nylander (closes: #338866) [frank] - update Danish debconf translation, thanks to Claus Hindsgaul (closes: #339354) [frank] - update Italian debconf translation, thanks to Luca Monducci (closes: #340031) [frank] -- Frank Küster Tue, 22 Nov 2005 20:15:41 +0100 tex-common (0.10) unstable; urgency=low * tex-common should only Suggest debhelper, not Depend on it. It would pull in too many dev packages for every normal user. [preining] * Fix the syntax of some eval statements in the config script (closes: #336951) [frank] * In postinst, create nonexistent ls-R files with proper magic content if they are not already present (closes: #337073) [frank] * The config script was not idempotent, and reset the debconf default for group writable ls-R files on a fresh install. [frank] * Remove the ls-R symlink in TEXMFLOCAL, thanks to Lars Wirzenius (closes: #333308). [frank] * Check for leftover .svn directories during build (closes: #327785) [frank] * Add the md5sum of a version with a newer comment to the list of known md5sums for 00updmap.cfg (closes: #336713) [frank] * fix installation of debhelper snippet postrm-texfonts. [preining] * actually allow multiple invocations of dh_installtexfonts and stop with error if a cfg file is installed several times. [preining] -- Frank Küster Wed, 9 Nov 2005 14:45:34 +0100 tex-common (0.9) unstable; urgency=low * Change ls-R file handling to be useful. Don't use debconf as registry. (Closes: #332264) [preining] * install debhelper dh_installtexfonts script (closes: #320147) [preining] * A few changes to update-fontlang, most notably that it will now check, when invoked as update-updmap, whether /usr/share/texmf/web2c/updmap.cfg exists and abort with an explanation in that case. [florent] * Translations: - updated Danish debconf translation, thanks to Claus Hindsgaul (closes: #332699) [frank] - updated French debconf translation, thanks to Clément Stenac (closes: #335776) [frank] - updated Italian debconf translation, thanks to Luca Monducci (closes: #336093) [frank] -- Frank Küster Fri, 28 Oct 2005 11:27:48 +0200 tex-common (0.8) unstable; urgency=low * Change hyph_size to 8191 - according to DEK it should be a prime number. [frank] * Add a (closes:...) to the last version's changelog entry to make tracking history easier, in fact the bug has been closed manually [frank]. * fix update-texmf to not go into an endless loop when called with an unknown option [frank] * Modify postrm.in script to remove TEXMFSYSVAR and /var/cache/fonts (thus also removing left over files at purge time) [preining] * manage ls-R files using debconf [preining]. The translations have been copied over from tetex-bin [frank]. (Closes: #328291) * Let the debconf dependency be created by debhelper, thus allowing debconf-2.0 as an alternative [frank] (closes: #332115) * In fact install the pdf version of the Policy draft, but include it in the tar.gz file. Thus we can drop the Build-dependency on tetex-extra. A working TeX system is only needed on the developer's system if the policy source has been changed. -- Frank Küster Wed, 5 Oct 2005 16:14:46 +0200 tex-common (0.7) unstable; urgency=low * take over installation of /var/cache/fonts/*, /usr/local/share/texmf and the ls-R links from tetex (and texlive). [preining] * increase lambdas main_memory to deal with a lot of languages [preining] * move old config files in /usr/share/texmf/web2c out of the way [preining] * remove old formats in /usr/share/texmf/web2c (closes: #323828) [preining] -- Frank Küster Wed, 24 Aug 2005 17:18:34 +0200 tex-common (0.6) unstable; urgency=low * Refine the updmap transition code * Increase hyph_size to 10000, to make the inclusion of current hyphenation exception files (e.g. dehyphtex.tex) possible * Also build a pdf version of the Policy draft, and Build-Depend on tetex-bin. * Move LSRS variable to common.variables -- Frank Küster Wed, 17 Aug 2005 11:04:33 +0200 tex-common (0.5) unstable; urgency=low * Merge update-fmtutil into update-fontlang (closes: #319651) * Fix installation of manpages * add bibtex/csf to texmf variable BSTINPUTS in 65BibTeX.cnf (closes: #319650) * Many thanks to Norbert Preining for providing patches for these changes. * Increase trie_size in 95NonPath.cnf to 27000, to allow TeX-Live build its formats with all languages installed * Editorial changes to the Policy Draft, thanks to Hilmar Preusse * Add compatibility paths for ENCFONTS and TEXFONTMAP in texmf.d (closes: #321074) -- Frank Küster Wed, 3 Aug 2005 12:04:42 +0200 tex-common (0.4) unstable; urgency=low * Bug fix: "tex-common: generalize TEXFONTMAPS and ENCFONTS", thanks to Norbert Preining and Hans Hagen (Closes: #318872). * language.dat is now a generated file in VARTEXMF, and the actual conffiles are in /etc/texmf/language.d. This allows packages to add hyphenation patterns - many thanks again to Norbert. * Merged update-updmap and update-language into one file, and fixed location of memory files in update-updmap * Install the symlink to texmf.cnf -- Frank Küster Mon, 25 Jul 2005 14:22:36 +0200 tex-common (0.3) unstable; urgency=low * provide an upgrade path for the configuration items taken over from tetex-base * Add a versioned conflict on tetex-base - they would remove our 00updmap.cfg file. -- Frank Küster Wed, 6 Jul 2005 17:36:30 +0200 tex-common (0.2) unstable; urgency=low * Install the configuration files needed by teTeX * Bug fix: "tex-common does not install: conflicts with tetex-bin", thanks to Hans Ulrich Niedermann (Closes: #314948). -- Frank Küster Wed, 29 Jun 2005 20:36:47 +0200 tex-common (0.1) unstable; urgency=low * Initial Release. -- Frank Küster Mon, 13 Jun 2005 18:09:55 +0200 ;; Local Variables: ;; coding: utf-8 ;; End: # vim:set fileencoding=utf-8: # tex-common-6.04ubuntu1/debian/compat0000664000000000000000000000000212607350221014363 0ustar 5 tex-common-6.04ubuntu1/debian/control0000664000000000000000000000410013321177314014567 0ustar Source: tex-common Section: tex Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian TeX maintainers Uploaders: Julian Gilbey , Frank Küster , Florent Rougon , Norbert Preining Build-Depends: debhelper (>= 8.1.0~) Build-Depends-Indep: debiandoc-sgml, help2man Standards-Version: 3.9.6 Vcs-Git: git://anonscm.debian.org/debian-tex/tex-common.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-tex/tex-common.git Package: tex-common Architecture: all Multi-Arch: foreign Depends: ${misc:Depends}, ucf, dpkg (>= 1.14.18) Suggests: debhelper (>= 7.0.8) Replaces: tetex-base (<= 3.0-10), dvipdfmx Conflicts: tetex-base (<< 2007), texlive-common (<< 2009), context (<= 2011.05.18.20110627-1) Breaks: texlive-common (<< 2010), tipa (<= 2:1.3-15), itrans (<= 5.3-10), gregoriotex (<= 2.0-1.1), cm-super (<= 0.3.4-4), cm-super-minimal (<= 0.3.4-7), latex-cjk-chinese-arphic-bkai00mp (<= 1.21+nmu1), latex-cjk-japanese-wadalab (<= 0.20050817-15), latex-fonts-sipa-arundina (<= 0.2.0-1), latex-fonts-thai-tlwg (<= 1:0.5.0-1), lmodern (<= 2.004.1-3.1), ko.tex-base (<= 0.1.0+20071012-1), ko.tex-extra (<= 0.1.0+20071012-1), latex-cjk-chinese-arphic-bsmi00lp (<= 1.21+nmu1), latex-cjk-chinese-arphic-gbsn00lp (<= 1.21+nmu1), latex-cjk-chinese-arphic-gkai00mp (<= 1.21+nmu1), latex-cjk-thai (<= 4.8.2+git20111216-1), latex-cjk-chinese (<< 4.8.2+git20111216-2), latex-sanskrit (<= 2.2-8), musixtex (<= 1:0.115-2), scalable-cyrfonts-tex (<= 4.15), tex-gyre (<= 2.004.1-2.1), jadetex (<= 3.13-12), luatex (<< 0.70.1), texlive-lang-arab (<< 2012), context-doc-nonfree (<= 2012.06.27-1), alqalam (<= 0.2-5), thailatex (<< 2013), texlive-binaries (<< 2015), texlive-base (<< 2015) Description: common infrastructure for building and installing TeX This package contains a number of scripts and common configuration files that are needed to install a TeX System. . It also contains debhelper-like programs useful for building TeX packages. tex-common-6.04ubuntu1/debian/copyright0000664000000000000000000000661212607350221015125 0ustar This package is a collection of files needed to use and/or build TeX packages in Debian. Its contents are either written by the Debian maintainers, or taken and adapted from the upstream sources. It was first created Mon, 13 Jun 2005 17:55:58 +0200. License: Unless otherwise indicated (see individual file listing below), it is covered by the following license, the GPL: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License, version 2, with the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL-2; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Copyright Holders of individual files, sorted by directory: - toplevel: split-texmf: Frank Küster (2005) TODO is probably not copyrightable and contains contributions by all coworkers. - debian: Currently, all files are Copyright 2004,2005 Frank Küster , except common.variables: Frank Küster (2004,2005) (based on a framework by Davide Salvetti (1999-2002) ) rules: Frank Küster (2004,2005) with eperl code based on work by Davide, as above - doc: Makefile version.ent tex-sed: Frank Küster (2004,2005) Hilmar Preusse (2005) Debian-TeX-Policy.sgml: Frank Küster (2004) Richard Lewis (2005) Norbert Preining (2005) - dsfp: dsf-patchfunc dsf-patch.mk: Frank Küster (2004,2005) - scripts: update-fmtutil: Atsuhito Kohda (2002,2003) Julian Gilbey (2002) update-fmtutil.8: Atsuhito Kohda (2002) update-texmf: Atsuhito Kohda (2002,2003) Frank Küster (2004) update-texmf.8: Atsuhito Kohda (2002,2003) Hilmar Preusse (2004) update-updmap: Atsuhito Kohda (2002,2003) Frank Küster (2004) Florent Rougon (2005) update-updmap.1: Atsuhito Kohda (2002,2003) Florent Rougon (2004,2005) update-fontlang: Norbert Preinig (2005) based on update-updmap update-language.8: Frank Küster (2005) update-fontlang.8: Frank Küster (2005) Atsuhito Kohda (2002,2003) Florent Rougon (2004,2005) tex.pm: Jan Hauke Rahm (2009) - conf/texmf.d/ all files are split from texmf.in-teTeX, Copyright Thomas Esser (1995-2005) , in the Public Domain, except 90TeXDoc.cnf: Atsuhito Kohda (2003) - conf/fmt.d/ 00tex.cnf: Thomas Esser (1998,1999) , in the Public Domain tex-common-6.04ubuntu1/debian/dirs0000664000000000000000000000052212607350221014050 0ustar usr/sbin usr/bin usr/share/debhelper/autoscripts usr/share/tex-common usr/share/texmf/web2c usr/share/bug/tex-common etc/texmf/texmf.d var/lib/texmf/web2c var/lib/texmf/tex/generic/config var/lib/tex-common/hyphen-cnf var/lib/tex-common/fmtutil-cnf var/lib/tex-common/fontmap-cfg var/cache/fonts usr/share/perl5/Debian/Debhelper/Sequence tex-common-6.04ubuntu1/debian/maintscript0000664000000000000000000000021612607350221015444 0ustar rm_conffile /etc/texmf/language.d/00tex.cnf 2.11 rm_conffile /etc/texmf/fmt.d/00tex.cnf 6.00~ rm_conffile /etc/texmf/hyphen.d/00tex.cnf 6.00~ tex-common-6.04ubuntu1/debian/postinst0000664000000000000000000003257712607350221015011 0ustar #!/bin/sh -e # # postinst maintainer script for the Debian tex-common package. # # Copyright (C) 2004 by Frank Küster . # Copyright (C) 2012-2015 by Norbert Preining # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". umask 022 # # definitions of necessary trees TEXMFSYSVARDIR=/var/lib/texmf # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # Give a name to the first commandline argument action=$1 trigger=$2 . /usr/share/debconf/confmodule db_version 2.0 dhit_texlive_binaries_configured () { # unfortunately this seems not to work anymore, we have to make # sure that texlive-binaries is properly configured, otherwise # a squeeze in libkpathsea and engines might occur # kpsewhich --version >/dev/null 2>&1 stat=$(dpkg-query -W -f='${Status}' texlive-binaries 2>/dev/null || true) case "$stat" in "install ok installed") return 0 ;; *) return 1 ;; esac } dhit_build_format () { tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building format(s) $*.\n\tThis may take some time... " if fmtutil-sys --no-error-if-no-engine=luajittex "$@" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi } run_mtxrun_if_possible() { # code from postinst-tex if dhit_texlive_binaries_configured; then if which mtxrun >/dev/null; then # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present # # dpkg-query has two defects wrt not existing packages # - it is noisy to stderr # - it returns 1 # so shut both errors up stat=$(dpkg-query -W -f='${Status}' context 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 1 ] ; then tempfile=$(mktemp -p /tmp mtxrun.XXXXXXXX) printf "Running mtxrun --generate. This may take some time... " if mtxrun --generate > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mtxrun --generate failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi fi } run_updmap() { if dhit_texlive_binaries_configured; then if which updmap-sys >/dev/null; then # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present # # dpkg-query has two defects wrt not existing packages # - it is noisy to stderr # - it returns 1 # so shut both errors up stat=$(dpkg-query -W -f='${Status}' texlive-base 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 0 ] ; then echo "texlive-base is not ready, delaying updmap-sys call" >&2 else tempfile=$(mktemp -p /tmp updmap.XXXXXXXX) printf "Running updmap-sys. This may take some time... " # call updmap with --nohash so that no ls-R files # are created in /usr/local/share/texmf/ # see bug report #607857 # instead of that we call mktexlsr $TEXMFSYSVARDIR # afterwards. This can be done without checks as # we know that dhit_texlive_binaries_configured and # since mktexlsr and updmap are in the same package # and we checked for updmap already if updmap-sys --nohash > $tempfile 2>&1 ; then rm -f $tempfile echo "done." tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr $TEXMFSYSVARDIR ... " if mktexlsr $TEXMFSYSVARDIR > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $TEXMFSYSVARDIR failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi else exec >&2 echo echo "updmap-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo echo "Sometimes, not accepting conffile updates in /etc/texmf/updmap.d" echo "causes updmap-sys to fail. Please check for files with extension" echo ".dpkg-dist or .ucf-dist in this directory" echo exit 1 fi fi fi fi } run_fmtutil() { # now call the equivalent of fmtutil-sys --all explicitely # we also have to check that texlive-base is installed # and configured, otherwise we cannot be sure that # all necessary basic files are present if dhit_texlive_binaries_configured; then # see above for information on dpkg-query usage stat=$(dpkg-query -W -f='${Status}' texlive-base 2>/dev/null || true) case "$stat" in "install ok installed") do_it=1 ;; *) do_it=0 ;; esac if [ "$do_it" = 0 ] ; then echo "texlive-base is not ready, skipping fmtutil-sys --all call" >&2 else dhit_build_format --all fi fi } run_mktexlsr() { trees=$* if dhit_texlive_binaries_configured; then # mktexlsr may not be present if which mktexlsr >/dev/null; then tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX) printf "Running mktexlsr. This may take some time... " if mktexlsr $trees > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "mktexlsr $trees failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi } run_hyphen() { if dhit_texlive_binaries_configured; then if which kpsewhich >/dev/null; then if which fmtutil-sys >/dev/null; then # code from postinst.tex v=$(kpsewhich -var-value TEXMFSYSVAR) c=$(kpsewhich -var-value TEXMFSYSCONFIG) TEXMFVAR="$v" TEXMFCONFIG="$c" export TEXMFVAR TEXMFCONFIG tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building latex-based formats --byhyphen $(kpsewhich language.dat).\n\tThis may take some time... " if fmtutil-sys --no-error-if-no-engine=luajittex --byhyphen "$(kpsewhich language.dat)" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi tempfile=$(mktemp -p /tmp fmtutil.XXXXXXXX) printf "Building e-tex based formats --byhyphen $(kpsewhich language.def).\n\tThis may take some time... " if fmtutil-sys --no-error-if-no-engine=luajittex --byhyphen "$(kpsewhich language.def)" > $tempfile 2>&1 ; then rm -f $tempfile echo "done." else exec >&2 echo echo "fmtutil-sys failed. Output has been stored in" echo "$tempfile" echo "Please include this file if you report a bug." echo exit 1 fi fi fi fi } do_triggers() { DO_TEXMF=0 DO_TEXMFDIST=0 DO_UPDMAP=0 DO_FMTUTIL=0 DO_HYPHEN=0 case " $trigger " in *" /usr/share/texmf "*) DO_TEXMF=1 ;; esac case " $trigger " in *" /usr/share/texlive/texmf-dist "*) DO_TEXMFDIST=1 ;; esac case " $trigger " in *" texmf-map "*) DO_UPDMAP=1 ;; esac case " $trigger " in *" texmf-format "*) DO_FMTUTIL=1 ;; esac case " $trigger " in *" texmf-hyphen "*) DO_HYPHEN=1 ;; esac DO_MKTEXLSR=0 # # ls-R updates trees="$TEXMFSYSVARDIR" if [ $DO_TEXMF = 1 ] ; then DO_MKTEXLSR=1 trees="$trees /usr/share/texmf" fi if [ $DO_TEXMFDIST = 1 ] ; then DO_MKTEXLSR=1 trees="$trees /usr/share/texlive/texmf-dist" fi if [ $DO_MKTEXLSR = 1 ] ; then run_mktexlsr $trees run_mtxrun_if_possible fi if [ $DO_UPDMAP = 1 ] ; then update-updmap --quiet run_updmap fi if [ $DO_FMTUTIL = 1 ] ; then update-language --quiet update-fmtutil --quiet run_fmtutil # reset hyphen, we already rebuilt all formats DO_HYPHEN=0 fi if [ $DO_HYPHEN = 1 ] ; then update-language --quiet update-fmtutil --quiet run_hyphen fi } ################################################################# # Here starts the real action ################################################################# case $action in triggered) do_triggers ;; configure|reconfigure) # if we are upgrading from before 4, remove the preinst created # backup of the symlink if dpkg --compare-versions "$trigger" lt "4" ; then if [ -L /usr/share/texmf/doc.dpkg-remove ] ; then rm -f /usr/share/texmf/doc.dpkg-remove fi fi # remove outdated thailatex babel.sty if [ -f $TEXMFSYSVARDIR/tex/generic/babel/babel.sty ] ; then echo "Removing outdated babel.sty from thailatex." rm $TEXMFSYSVARDIR/tex/generic/babel/babel.sty rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex/generic/babel rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex/generic rmdir --ignore-fail-on-non-empty $TEXMFSYSVARDIR/tex fi update-texmf update-updmap --quiet update-fmtutil --quiet update-language --quiet trees="$TEXMFSYSVARDIR /usr/share/texmf" if [ -d /usr/share/texlive/texmf-dist ] ; then trees="$trees /usr/share/texlive/texmf-dist" fi run_mktexlsr $trees run_mtxrun_if_possible run_updmap run_fmtutil # create empty dirs in /usr/local/share/ if [ ! -e /usr/local/share/texmf ] then if mkdir -p /usr/local/share/texmf 2>/dev/null then chown root:staff /usr/local/share/texmf chmod 2775 /usr/local/share/texmf fi fi # remove out dated dir /etc/texmf/language.d if [ -d /etc/texmf/language.d ] ; then rmdir --ignore-fail-on-non-empty /etc/texmf/language.d/ fi ;; *) ;; esac #DEBHELPER# ### Local Variables: ### perl-indent-level: 4 ### tab-width: 4 ### indent-tabs-mode: nil ### End: # vim:set tabstop=4 expandtab: # tex-common-6.04ubuntu1/debian/postrm0000664000000000000000000000467312607350221014446 0ustar #!/bin/sh -e # # postrm maintainer script for the Debian tex-common package. # # Copyright (C) 2004 by Frank Küster . # Copyright (C) 2012 by Norbert Preining . # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". # give commandline args a name action=$1 # remove, purge, upgrade, failed-upgrade, abort-install, abort-upgrade, disappear ## do the things we have to do always case $action in abort-install|abort-upgrade) syml=/usr/share/texmf/doc if [ -n "$2" ] && dpkg --compare-versions "$2" lt "4" ; then if [ -L $syml.dpkg-remove ] && [ ! -e $syml ] ; then echo "Reinstatiating $syml" mv $syml.dpkg-remove $syml fi fi ;; remove) # remove TEXMFSYSVARDIR: All files and dirs are created either by # us, or by packages depending on us. rm -rf /var/lib/texmf # same with obsolete /var/cache/fonts rm -rf /var/cache/fonts ;; purge) if [ -L /usr/share/texmf/doc.dpkg-remove ] ; then rm -f /usr/share/texmf/doc.dpkg-remove fi # TODO purge ucf files # remove texmf.cnf if [ -d /etc/texmf/web2c ] ; then rm -rf /etc/texmf/web2c/texmf.cnf rmdir --ignore-fail-on-non-empty /etc/texmf/web2c fi # try to remove /usr/local/share/texmf if it is empty # people should normally not have TEXMFLOCAL ls-R files # unless they called mktexlsr manually, in which case this is fine # maintainer scripts should call mktexlsr with a list of trees so # no /u/l/s/texmf/ls-R is created #rm -f /usr/local/share/texmf/ls-R 2>/dev/null || true rmdir --ignore-fail-on-non-empty /usr/local/share/texmf/ 2>/dev/null || true ;; *) ;; esac #DEBHELPER# tex-common-6.04ubuntu1/debian/preinst0000664000000000000000000000263612607350221014603 0ustar #!/bin/sh -e # # preinst maintainer script for the Debian tex-common package. # # Copyright (C) 2012 by Norbert Preining # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to: The Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # # On Debian GNU/Linux System you can find a copy of the GNU General Public # License in "/usr/share/common-licenses/GPL". umask 022 # prepare for change of symlink to real dir slink=/usr/share/texmf/doc slinktarget=../doc/texmf case "$1" in upgrade|install) ov=$2 if [ -n "$ov" ] && dpkg --compare-versions "$ov" lt 4 ; then if [ -L $slink ] && [ "$(readlink $slink)" = $slinktarget ] ; then mv $slink $slink.dpkg-remove fi fi ;; esac #DEBHELPER# ### Local Variables: ### tab-width: 4 ### indent-tabs-mode: nil ### End: # vim:set tabstop=4 expandtab: # tex-common-6.04ubuntu1/debian/prerm0000664000000000000000000000033112607350221014232 0ustar #!/bin/sh -e # # prerm maintainer script for the Debian tex-common package. # remove dirs in /usr/local if empty case $1 in remove) rmdir /usr/local/share/texmf 2>/dev/null || true ;; esac #DEBHELPER# tex-common-6.04ubuntu1/debian/reportbug-control0000664000000000000000000000005312607350221016575 0ustar report-with: texlive-base texlive-binaries tex-common-6.04ubuntu1/debian/rules0000775000000000000000000000605212607350221014250 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 INSTDIR=$(CURDIR)/debian/tex-common bin_scripts=dh_installtex sbin_scripts=update-language update-texmf-config update-tl-stacked-conffile update-texmf nonbin_scripts= sbin_installfiles=$(foreach script,$(sbin_scripts), scripts/$(script)) sbin_manpages=$(foreach script,$(sbin_scripts), scripts/$(script).8) bin_installfiles=$(foreach script,$(bin_scripts), scripts/$(script)) bin_manpages=$(foreach script,$(bin_scripts), scripts/$(script).1) nonbin_installfiles=$(foreach script,$(nonbin_scripts), scripts/$(script)) \ texmf/web2c/mktex.cnf build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: dh_testdir # Add here commands to compile the package. cd doc; $(MAKE) cd scripts; pod2man dh_installtex > dh_installtex.1 cd scripts; help2man -n "generate hyphenation configuration for TeX engines" -s 8 -S Debian -N ./update-language > update-language.8 touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. cd doc; $(MAKE) clean -rm -f scripts/dh_installtex.1 -rm -f scripts/update-language.8 dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/tex-common. cd doc; $(MAKE) install DESTDIR=$(INSTDIR)/usr/share/doc/tex-common cp conf/texmf.d/00debian.cnf $(INSTDIR)/etc/texmf/texmf.d/ cp $(sbin_installfiles) $(INSTDIR)/usr/sbin/ cp $(bin_installfiles) $(INSTDIR)/usr/bin/ cp $(nonbin_installfiles) $(INSTDIR)/usr/share/tex-common/ # debhelper stuff # dh_installtex(.1) is already installed via the bin_scripts grep -v '^[ \t]*# ' scripts/postrm-tex > $(INSTDIR)/usr/share/debhelper/autoscripts/postrm-tex grep -v '^[ \t]*# ' scripts/postinst-tex > $(INSTDIR)/usr/share/debhelper/autoscripts/postinst-tex cp scripts/tex.pm $(INSTDIR)/usr/share/perl5/Debian/Debhelper/Sequence/ # fontcache stuff with proper permissions install -d $(INSTDIR)/etc/texmf/web2c/ install -m 644 texmf/web2c/mktex.cnf $(INSTDIR)/etc/texmf/web2c/ # Remove the out-of-date ls-R file from /usr/share/texmf and create a # link to one in /var/lib/texmf that we can update without violating # the FHS (symlink created by dh_link) rm -f debian/$(package)/usr/share/texmf/ls-R # Debian-specific stuff install -m 644 debian/reportbug-control $(INSTDIR)/usr/share/bug/tex-common/control # Build architecture-dependent files here. binary-arch: build install # We have nothing to do by default. # Build architecture-independent files here. binary-indep: build install dh_testdir $(check-svn) dh_testroot dh_installchangelogs dh_installdocs dh_installexamples dh_installman $(sbin_manpages) $(bin_manpages) dh_link dh_compress dh_fixperms --exclude=var/cache/fonts dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure tex-common-6.04ubuntu1/debian/tex-common.doc-base.tex-on-debian0000664000000000000000000000112212607350221021277 0ustar Document: tex-on-debian Title: TeX on Debian Author: debian-tex-maint@lists.debian.org Abstract: Debian-specific information about TeX packages. This document is intended for TeX users who want to know how to change settings in the TeX system, install additional components, or deal with problems. Section: Typesetting Format: text Files: /usr/share/doc/tex-common/TeX-on-Debian.txt.gz Format: HTML Index: /usr/share/doc/tex-common/TeX-on-Debian.html/index.html Files: /usr/share/doc/tex-common/TeX-on-Debian.html/*.html Format: PDF Files: /usr/share/doc/tex-common/TeX-on-Debian.pdf.gz tex-common-6.04ubuntu1/debian/tex-common.doc-base.tex-sub-policy0000664000000000000000000000077112607350221021542 0ustar Document: debian-tex-policy Title: The Debian TeX sub-policy Author: debian-tex-maint@lists.debian.org Abstract: Rules and information for packaging TeX add-on packages (styles, fonts, viewers, etc.). Section: Debian Format: text Files: /usr/share/doc/tex-common/Debian-TeX-Policy.txt.gz Format: HTML Index: /usr/share/doc/tex-common/Debian-TeX-Policy.html/index.html Files: /usr/share/doc/tex-common/Debian-TeX-Policy.html/*.html Format: PDF Files: /usr/share/doc/tex-common/Debian-TeX-Policy.pdf.gz tex-common-6.04ubuntu1/debian/tex-common.links0000664000000000000000000000133412607350221016316 0ustar usr/sbin/update-language usr/sbin/update-language-def usr/sbin/update-language usr/sbin/update-language-dat usr/sbin/update-language usr/sbin/update-language-lua usr/share/man/man8/update-language.8 usr/share/man/man8/update-language-def.8 usr/share/man/man8/update-language.8 usr/share/man/man8/update-language-dat.8 usr/share/man/man8/update-language.8 usr/share/man/man8/update-language-lua.8 usr/sbin/update-tl-stacked-conffile usr/sbin/update-fmtutil usr/sbin/update-tl-stacked-conffile usr/sbin/update-updmap usr/share/man/man8/update-tl-stacked-conffile.8 usr/share/man/man8/update-fmtutil.8 usr/share/man/man8/update-tl-stacked-conffile.8 usr/share/man/man8/update-updmap.8 var/lib/texmf/ls-R-TEXMFMAIN usr/share/texmf/ls-R tex-common-6.04ubuntu1/debian/triggers0000664000000000000000000000025013321177300014732 0ustar interest-noawait texmf-hyphen interest-noawait texmf-format interest-noawait texmf-map interest-noawait /usr/share/texmf interest-noawait /usr/share/texlive/texmf-dist tex-common-6.04ubuntu1/doc/0000775000000000000000000000000012607350221012510 5ustar tex-common-6.04ubuntu1/doc/Debian-TeX-Policy.pdf0000664000000000000000000035355312607350221016336 0ustar %PDF-1.5 % 57 0 obj << /Length 471 /Filter /FlateDecode >> stream xڅRɎ0WH}0B4!qX(q`{!qů^'?c6LʑҊ H k |G[C*p]_p -B})=~&?2#B&Fb{H$)I#4[F dW>ΟJл9$pd,CH0W!UG*'Sӫ^] #̛|0)&SLbV>`? 籷ƈ<[!e^'^\"ZcJ79L_L(P2LʪPq﮳{[lWp,vuqqs=lqi">\.9r~\ցs2=۷v뼡آTܑ%1&)ؤK=a! ",**[}|婄]K ]=mI endstream endobj 69 0 obj << /Length 978 /Filter /FlateDecode >> stream xڕUQo6 ~\lɲv]QܥDNSߏ.DJ)GDD7.'YnjD2*Zo_,YAGmF,Yޱ2JK%]eˌw=~六~Un_*ƃ8CȥoDoxrd \}3c)ǝS*çrg+^aݚ&,>٭:>1xQAVh4(yM!7t[ٞ o6{ |>V^Bx(  .Ф. Dz {kќQl1X,]CH} !GUX7N;%Jt-YNZes^@ov7RIs~[/N 8mH12*bG= +W$u=V..n겊70Ps0Ds;"`KvQ~->lFC#[* 2OboSM!mF8)g4) Z4\&Rf86v ,Yk!߃X[ֵ+|VU4e߭ɷn-jdaYN:9%.B 30H@sNpjlNd׍wIwGA/U0RN&Yg;`kaUo,VjV[ź1@),݈vf[yꥁF{u|;eh3m!W rekYO?z0%(%Ko [ \ endstream endobj 90 0 obj << /Length 691 /Filter /FlateDecode >> stream xWM WpfcFZR?|X)݃fkNNl$NnTUjs0o"h _"dHHTH (L|3 uQ3Q;{EZe1cgCv9A@tm}JͰd~W)|u.]L]B&ouzLIL뮗:׭>*c&ȳv 6M….tb"EEuBX6iYԧp޺DžUB:6Xq n;|Ehalegt4_EMz)1Y6}!YY"1E ʕ7if!b;!_oxˣ>EMTTMeZ,;pv\:,H><KXow񥂘۫#L9ŁfzJ=}= =BBTYI$uMY'~qr kt@f0U{m^z.+`;AO_ZMeѦNFGk5*`9))/,9a-֌3cpi_:G9|T2J[2WdsA'ʊg Nԙ8zk J(Uua|J.v:?HW endstream endobj 95 0 obj << /Length 133 /Filter /FlateDecode >> stream x]N @+4ͺMVBdʠLa{ `5ü3' H٪(Ekawtt͸R͛UEeoCY-0 ޒKK=]I $ endstream endobj 99 0 obj << /Length 679 /Filter /FlateDecode >> stream xڅTKo0+|d JDUժT`ZL$_ U>g%Ή[l,^j9ꕲ:SއQ‘{v麣Oڏ7͛ )$ul @3Ǻ1l:0ơf'(ir`w dl~rL'3ײVL ]_eN c+^AEgf#"}ћ}}*:O|V.cL`a䧝BLͬc]٬gM}}zo0O 5k/,l8Cz-~{%t# r}멿?zxx endstream endobj 102 0 obj << /Length 161 /Filter /FlateDecode >> stream x]@})\•jԄxP@1{| Ɔfkm`5bD aXbdYo]$TmߍHe[Muܥu$=C|> stream xڥYY۸~_PU 1GDH.b/=;2ѣDđw1+O^ b9 KwtzD)}ޝ(j~L]ެ<>|.I(dzA@oW1?oN-nI Pʫ+sfcB8Ts9eY_ꀟf".^TTv屰 :Oyս5jt 0r!k=I( CH&/pN/!_77 B1UO3 @M"r8LtǤC2"nB9i:h= E2"F8L8Mȟq_Q훤Uib~#$'1N &3*3"c~q%m j- ,ޚ1aMr·-)x[o*sPt k2T "ȉ"`nU䖕K^MT*}ow֧S]݂F LHq8J?pm}}hĉ6(MIY"%dLYkdb0A9-lmE, N>pBQ$EG3@'s- ʖCP&X ~PN_߁%ګ*b3L"7T2`&@ePSAp<N{MՐT#-)ɒ$s]> ^=@84;AٽVF h:v^r?O(3.-!T|*1u+" ՞f͌fssH!RY'݈qH4Iupm$Mk3{pw1`;9B+uOkIi=Ҙ4OyRYRb.NvBI gLr?< <=VEj 1z%A룑_]ՌaBeK(^(&mͯRŮɘu-zXКPX1 ڀ#2\Eh$s66L97i&y"r*Mt5ĬpZ? ӑc6GDa==:8cRopRdHE n@6g4_=a|RZE8mp n <&MQ-R'v`4p0]!fX( iUZwatiΟʅYyݞeҶiZq\1PzbсQ Jb1K{0"6 0.igsW o:ou/;oh$v(%!-򹆣Ok7WiS@yK q:0D>=HB-OTm|k')9_<$!' ~{?wb endstream endobj 118 0 obj << /Length 163 /Filter /FlateDecode >> stream x]O@+sك L!TALL汓,Ɩm`5bΐT eXyCՅ3I85 U> stream xڍVK6WhzmݢiS4 lhKXr%uԴp^ :"~]!E2;4c8$ÄhW0|ݽnw_;(bljUcm#cӨ٢416s1 A,L8#>J7KIQh*6u{VڌPL/2@ 0AQJHx~cD4,`c3pbSI;&N7NVȦ_4XE ǐ C 񽳫l/F W*|ě(&jj~s z@&  fV cSݬ%3C՝*N jkN@*_4|lbp9{w旛WP3l5P ”x( ӌAEP,R_oJjka3:g-@(V_,<5PNV.Q?_}~D&pe}Mlk۶}Dn&]>exv[~<,xS4ém%*s&?h$ǜ+P .ᶃ#EE5@E{(P丩X&˱Hf;p6G *r vڭ';,y4N!Ihe Wzp/ 6 6ش~PyX ̅4߄{|[34ݳ{ q t.w- >M qS>C]}-?4| o˓牜P:mz>UJ1-z|OF(ORskQI=| r i;~r$A=/;xp+1<3#db6Mth'TTXݱʉ&hРep f zQDFx endstream endobj 130 0 obj << /Length 191 /Filter /FlateDecode >> stream x]P 1SjặĤUTSbq@OO=AaX՟h OފEA±%Ū3:uS޻=1є0ta#dAOHǘ=n9\#/Y]lNž|iw62cUͱ4)e`iصͰoQ,jWHǦR5cw30il$ 5Wy?g@3 endstream endobj 135 0 obj << /Length 758 /Filter /FlateDecode >> stream xڍTr0+#aÖ-tȂN$;=Wr JW}F6*{I*RJ EVkR*AKa2QUCnzy.W}!Nn Yz25aTVaa*ZB+3O,L'CK^upswhl%@#$ɹEwe^s5dF ~)S1rtO-RsHMu2=~Q^q2 LJajk]p^E خcN-b%}ߦ[_o܂9yQRVeu`GeeId0JU'BOy)<~tmӉ= #?niJ;?Φ`thOX\Z?EFad(* '48|m'2;EēGD&M;l߯P404MШ #'1sYB_ )xI)%rRБڅ3#5iP@$b>ó|pdw֥cHr4I&?(GķX aYxAsAy ?)n endstream endobj 140 0 obj << /Length 168 /Filter /FlateDecode >> stream x] 0D{& UQA̭XE[}c+fx̰-`ea05r!X9ZU>a E9%J̺K\]3rC}Kj[b.`'`cYdoKMUMcV" i |M]29_)c4A endstream endobj 147 0 obj << /Length 2746 /Filter /FlateDecode >> stream xڭr6_GzƂq;$NݤN;m( 8/KR{@(<83>{2=fA(Y`%?tqp Ld̔$*eş~qx7;Y&% _>I/Z9aP &;\eS>H)>BK|i/4Ӆ.;:5bE, b:˹Rpm m׺A=fV}f"XEd 4o͊b_\^;/VW0 VIx!$BwUʥзn.EU&-Zv GF<-a8`M>!YH\$"`I`%mianG ə28QM;!صRq2%#G%R>=A:A_3񻱨]CnNw]^VڢeК>dkm1Bci1Znֶ$y-"NJ ޤmѐB *tYhDM* v(a8NNI[uvD:8pJu YZ0/"F޹yUPnG,Ny:Rj2o RAʥxee6G8vT BBS5L񎋘`$a%Z遡s5̸ . '!ؚɊ5=JK>TlOc< @yxϫڮy4FN;A N8yEգ2Է;f?R rg q5vgL+nW'HPh #oo P(AZ|]+41 n)8L0 m7yg-؀n$«hAo*V[/E<,, eowPImsrG '%SR퇈J6Gza软,R|C v`i*a~<De jFHA:GPHV6rJ<\@ӥ9ȢK0adJEfygv͕i3l\I)6vFd/UbA+{fβjY0 FE]۟cɚ)d$ss]VS>T EI#ύxdǖMullOA }_>|z{u4tVzdOg?:Dc gゅ"޶yuDo=`a~oqۥܻY.4]yƏYpO?u B4Zt9TN<.o!T: ]7#R(Z秏Srp~*Æq viۗGyI 1ڋT!(s.HUY',!WGI>I\lD囹e~(_QQ;)C4V Yy=VmՓם::ᜫx|+O+-jM2ğ)U@_&-ݏ fE-lQu #эËG g:--NkM{:Wo OH7?8{o 짇7>R%} endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 813 /Length 2142 /Filter /FlateDecode >> stream xZYoH~ׯ!ͮ> 0IDY2$z)Q%SAlU_jQ^QA*+VQ6;Ebp[ I'ErMVcdȃ=F}PrJ cM|V1` 9"SRVM*Ԑ}T)& lr*c^%!1@U,r&`=&Cg\`+%0KD#ȝjU;!12Dsi"c~y|ԃ}p3}ȈJv6M&@(V d'<FGkPȉ! '_~Z0rtf%Xoԋ]UN4T{c/~6ƜrC%ƙZ7r.?4[9r_nEc|lOZ- 7ͺ9q`2ۻR-U30٬rM({حgjz0[L1hfߵaڗ$;ׅ8k3e)xN;u5|Dfɗ+pb/ZŻ4!:4& ~jל{17۶ brM쵓棆Ai;mݔhZ̆m5L0+oqG[aVƓ8=H6{'^T6E7`!~ZICMvP^g7չHpr+>~+UǣUS~2W/IJ[\:>E]rVGw gY,q?UӡAf|\T1%mQkFu1A0%8CA\ PbCs,)Me>A3oTVFt4'i-N avUZR'rRs1ok\"?X}|4"||HK7ZƬ_*P,]ſ.7_EQO'v _cpZuڡ!=hf x(몺ȯ_ѽOn]ffthdD$ZC}y<ԭB-|aeHo5٬rJB9Cyq6duސfL45͂>ͨwdqUm;BJYiѲ+N DIZxZƋQǸ=:沙&Ǩm 8"ftvpGAVS 3Bޒvy&@ d I!jeqF=QqDVL+.bz=>m=Ȧ`:>>d MSy묷jwTj1܅ر^e 4̲wpte0|4gu-B䝺? T؃쇛eߘ&GpBBWsw5Viѹ%DN Tv{apObɱ]Ni5-Kb޳Vc<[#u\oxr0{^O)YSu)mc{%b<[r:Y1d^:5='GG G޼ x\]َ2~Ԛȓ݅[NOx[H$Utߍnޛ?8did"sjAfEN+_xÀ}8 endstream endobj 158 0 obj << /Length 3913 /Filter /FlateDecode >> stream xڝZݓ߿oZ3 ~\6۽N.uwUmj08fvt[BT\BjZj W?WYHv( ҫ4Aūr!? f:CTɋX͟w_QDq \bwJ@gQlU_g*Wa thFWb4՗W|~$PrW2]?[:zzQߐyC~:U+nJ%E&ٍ޽'WDa8/곡Y(%W!,f}# 3$wIIj[#A8oj3^m?1So*`@PQ2lޖ1gC}Vw 5+\{q 1&4a= o ,b.Ҽ(:3iEpj隺xBco9* #l==-7J#jxϟ>|iA *Ӿ>#sEsmtĎtY20$V,=Ӳ݅#ill 'в hmx)yf~Sw_ێ If/HF'AN25;c^CE&XB_!:5 HŁو0 ?*ޢ5kJExd=+2p7Ϡ]R>_7͛_LUpzGa )h=M-\ۆ]E1yXMx״5Lhʢ 6ݏ['<#/F_ u#k`߽Pz׵McmB|v9@) ΋ 1R$jC IGŒV|g|Mkvkw:g@Kf 4stq}rtȄdB(D8CY"SA` `hR rDL4Sޠ3ٺZT'vhNYc)M<$&^,Inih4VAAjSOŌMX+k !y^جL1T$c {l;ousA ߃CQ=q zp F³UY̎aXnHaFA0h4R$!(gbΌ@;sN99 %l0hAt&Vqo1uqXMD -b}԰ewSev3󇺴6do>[;N,Vt|;XmA`)}A݄'DYܳ:;Lm`a*ox]ՙ][ԏt5S),h;DcQ;4/ 0+ [ M 2:hagԉMRbzl6r(0 NּAF*{۬9M:R-E.mC8:(a|"m V^KjW!c4ðhY}m6OƩ$3}MHr_cJ/8ZzǬv6Q݅u'/yvŷ_NPuMM֏[GLr_v;9,-yT.̴0ƄLeߨqӍm4ZM}_٫ڃͤ7"q4MɎ2wzW aMm#,%򖖵c-¸+Uۍ7ػvK\T.OMYR: %> n<:%2HiΫxK9Z\if3ʔ6pL T !ںbź&BkA3onD2* %I@S]E/a$FJNfj bO V_ S.L}#2&>R¿q1d MQ̚r 쀬LEhp3[EQ,d)ƚ#|nvyg21lӀh[YqX`A2=on@$%twx@AP/O3Uu4T ѐ3o!L#w z_={,g"4?* endstream endobj 166 0 obj << /Length 3102 /Filter /FlateDecode >> stream xڝMw6_["ޒ馯Mw_u{(H"Y;PD;l`f0/J.v ͻ Z"t.04DFBpqYTnRP.B'"0itS.6A,aWr -EN[O3Jc!MB{ϚW:UFIp\uo)?f]QW e^))Z)BJNEk@VgJ'zٷv5=>EkH-Ag]69mjGe&cԬ=jHBX@BQbz"cP埲TR" ZV?$6WmA0Tcƪ1ƫưjKB! Sc[Tk0V~ F̚fǬyJo?تcVfkD #%W^F-w-N$}Cs'@#2Fxw?Qゐmp˖0HJUD%W赿8;#dce&S>y_1O[CGֲjCA0D!_xd -?4sلtJ%Ec0:7|D=R KI(ܿ= ,qa οò5Gd' |*9h@p~כʻX&N+vbNl&v[*x*ق 7SJD*Ѵ1(%jvI\tmI$u*pI=հ>gE5#{p hp4KKEv8);\KQ`Nlf !9J`z`foYZ&Ucs9* 5E~) , "$%ӑNT>Z}‘r<&@^fmk1d%cz_ obF{2tFÃ*SPd,к+(4^IG3FCG1ŵ047}!-QfCiy"&OnII/޷P:R5I N3Tddu-$:cu%Ģ@$Rͣ]kDD^mN KqGW搌1 yV*eGE)! leik)^H$"fMD*|pN^%GGιI#yp}W)?%#񂩙K1E[(R*mP:JFn&˃D`ayiB /˺qB`:YnJzl5lDy,2\+\WKmxYc)T|cwC_@Ёcp0 9 04\g9k쳶2IڹS5<f.Z0$o"A`Y ˑC4gR$se+a})f'$O ̳o %(!皰w}Gk4`՘!eGn/,{4Jۺ,GW98`>8=l"a2ua td"cb$o޿܀'(a؍_S19|f(/ItB~IEO/`y2]H~wύa㷷(ۂND"ѳC~{++co.^ke^7!Nwc`'Z)|ø9%5%2L$ǥ+LNexi :_ O;O*bE%Myo+wnڱŇeӅ\+u/,hʾ%p牱[ Fk}Mf UHQs-\R5E e‰(+G^T)2P(^jnynՔ~Tx>> ,[B;S*\V:oC+%УPFW]3Nik_@/{+:L|?I4~ǣp;.^o_k?з\RˏF瘢b1K5L{ R4 dm |511n|/+j H ޢPb`u`. aEPNc:ƺ@_~ڮs7H5& [/3+Hd^.:k4v-Q/ROKYlE=346mz2dnF#߳nA?o "0c|2E "*wE' _ф"24w!L}S)x{.nt[Ov} JN3 jy>ࠨ> HEZvLsvpǽgbaykl5es6ܯ> stream xڽVˮ6+ T,kixQ ^r\}k_˽Yt%j4ǙsHT"~+`#D=bL"M$&L]>%*{q2A]}&~}@̄>ʂu~{CH}0 ̍FѳEC0}!< n(S`t$G5vpE4 }ލ=Q)J\/`2SJ;yrYT]"A?JF(46bwaRrvOiZW} Kv[l7d, X RJ̰yBESL\P}҉dd u>Av 1W!apiU)JcOzFBhsR )}a0ݾ.$jh@v:bs=VL]>6zFBDŽNLe4wfFо^(Vr,B};y_ G))8VR`d Lݲ*6pk;4 V(V s<_TծBc%Aq}C5.ԬLT.bRn压d|:G5,$ O<Ԙe\ Pgjt/J m7o0u"^PƁ_ytga\߆>y ad*q ^Y_m6$x["_uv%&QSFj  $*?2 pQtx l:˯ endstream endobj 182 0 obj << /Length1 819 /Length2 1901 /Length3 0 /Length 2486 /Filter /FlateDecode >> stream x}R{8y֪-fq1NX&rZ;Ƽ53dR6vKcGvcKI6d)LDrCھ{?W7] l[CcG; BF # k"Np"2>Ac 0XPMMMDw`1P1J4~>@ $6 1N B &K \E 匰ah⑓&He$-@$!=8-TYt`^‚!Yltgb+O 8&aHzf¡fHgAc 2Ĥ a tA4 N0  0+࠯C ג F{9{yhϵ aF 14L&#&\ EPP6J%`v$@AbddpC@ 2PN_ ru. 59\0Mσa v"p(>PH~_P -1#M#3.)p ^#$󴫼42j"`V3=>_%ڹwq{{Q4qnc;Nq偍)|%78lW ٣xIC*kJŦk]$(yo*Ʒ-bLWMCY7Lsh*.`&*Ԡ.*5'eܩ6 }_ ]쮗{=hj t֊OTx,t8+-XS'bs~oB@gL>okƯιO3F3ط*'dYsiQa8N;R5|c. t9 -]6._ 4< T{q,m*qms"W&VtT;0fW*Y<^'kH 7 $*6lv-f>g"5 VNMFq n>jS79vX-&? Τns5glGWO6ZߥuE.p4ebk)- >2o2}9CqյYUmOFGX,E9d^-S59<سY2Z5h$wÕ$Jxpg>9pE7)웓gZDTٿvM;NtyHM.eV۾J<ظǵ;&z",zt=X,;Q9R1r\~lAsn/zRG̬VG^O [=rƭ԰w\5/b@>yK.E_DY>CACbw{M TjSxn(e^9a:{}s*/Oe.J"1G|hIU$JWp1J[y~DmIgLO1wWթImDyv>^4=aj1UɁӗ-c^?ڛ7Y]nCOum8Jh]Y)ՕYa]RE3dlEj9Tdňc˒X<7OP]G&wDusNyh)i1fzXFyu?ϑ8J=PmJSXpw+w_44/'|ܤ6 ,uQty hwId՛za Kj(ޒ{BAo~ώ+/-7gדw(<iN0~bG+Rmy-(B[yQPR_U-ELӎK-X̻B\ajA3 QRÍZi96\n񮞾O,mWeV[9g;|!Ri+1g f7{#Zß,iD܏WA4{U_^0AK~E$׾&}kx%,\B3:aKG,\aCَos~{M9tg3 ۡ]n !+f$_%C3x&V~Q|waҜedR30L]{*̯"D԰ә-> stream xڭVuTCBJPzf`f(Ai$SD%=׽Yg?{?k[ípW qrAja\p5(,Q8Ly0e<[;@׈_!+xn"!0ӻW0 ` @9-*JV%MFm+(P0$ `G 84$s$@:Ak`w鷋F8BȻo Ea uMnC p݁iÑ($qBj+eD΍ܹpHk8wI|w0w^CP`w\V`5zsB@pAB`b @mk(ݝ nDCmqrPwm!0\߃x[8 Fia#àk .&uS?'@y]Њ.P&nZ0 ~ t@=M1w *(]lA*B`f F@!0Orn_.0ÛGU]WVSO(};b]pw'_D ,{oYB@&w%): F[=f}7X4v\;=q3`;;7 I'etʛr*-$[^qWsPem$_3e,=m1/ H7KÉTEayӸ?X:zZN068G0Ky'ǣ<,gU_".͡p/Rah$ n#}%)Ҭ}XL{mS$'㢞(pTAڄpVr:g䌅jvF)+ *]*C\&67)+}-n:]#0;e5&Tӟ1jCzŜcOkxў0| 3śLDA)>绥=eq#>?Ed;*9|:OǐU+awkL ,:8(rN^Mq.\zkI{gEbI_ɭ(.4X?-lls<iٷ V@?ʒZG^wުDpE dLIY$̥b8`l;'X^xCՈKDb@; kYQh}&v+Ҵ+-{μ?ػTtS4uo99bܦUrx$I ;Vd12P?X}}lcH}zYz_z M0)yS]N}kNCC:)Tמ ^y ;͊# YM -Lc xkHMO^ ѪL$̟ %1Dlbc,$9SrԒ GtS b ׮:/˭kue\|(jHG&h@=\m^U(t՘c;՚D|NE0ŇHUhCQdwܗnmE kyZ%9L}mfJiA;j6g 82)lI.hl%2:B➾_sl)jTd-1bt*~Ӛq>~bkG "8d b tF&H3T|L`c8KHSM@)frz(cmCVnyDs]XiXe?ί#9RLʫ* Ӓ=O Evk߆ qgC zro;RVDG%G>/pNt*by 9:${nܙ_cav.ㅓY׻34u9̝``=&_f.CD$ exC{gox8k4;r&']5Rbxjޟnٶ/RpUYko;`cV)8J`Vܴ }gk^(tw;B*x|fү'E\Iag rrtEƒUSti(,KSvgڞܰo\sZ'TFJ 7_(0EWF8u$Y|~4OSC֋eR&&}Y2ѭa6\ :!cELu? eo^eX0Fvi9Hj.!Tww=2 <0CqޛO,+!exk$?6&KnBs= PE'Q ޺R3^2ąeWz;qC KiQ?jJ7ϾN2R-=lng{~>W<mZ<QA V[aA{L 0f0mf,lF.f:npl_$r!_LK_̅o94Y+=~ë́FU;Sj[q{)GȦWed)iħ#9cŌmnu}*EzQsHz'S0`rKMw[>zB1q، ZePLnXoI6C$a617\ŒY6Lya;Pb|6/n_YzA #}1~\7Y/ڇ?y8>F4F27Rص^hz>ˎm&:oN!'$X٨wʞBNp7!Ջ=WbEoM.q#Ty&v|gpU=NMϊ}Lp'nVԍNqCtaF9 r p&n)`K;S69)q7-qˢmo5[{ rJpN^n06v.w]Φ{aol֮+^luYXy,?`zJ-sY(nPo*#I9-|"Am3dCЦ!K̢lߖ&Tq>yHq.Eu1RyQLSR'(W[m@=v* 7ܽ]ڿ@1Vn!m6yɧe| pHF1n׸ ="gx/pkE8dcŷ S`??F2~Ge?5HoL&P}x"E< L> OP\/ۤpW YEkS 3Y uъB{iVښ?'A۴0Z#G <9jⵯ?%lAfȽf evZ0R(z@v0Ŵc?yJ5iN^AU˻WE7JKZ霈֯Sdm6t4fOXu,JF=V#L|h:y=ED=V]nKF\2Ldaf`cTȦ9X~pܼ۞/3n2BW':mxZШas2 1FxLʘ KR:M\3ʹ} Wrf'̎G+HQCNz2EUW͓S1cK4Y|CvLRu1 l8 sW<FJlwnԛ`'0IG񂇿jYjLK&6kW,ȥn ՞x jQ/:/>x|= 9<#8@F6?7H>7,ɓh6cF⮶DudC3,@` @񧩇8.*dݍ4vWDvЅkK=8Ͻ,bCVQ$Nh¦p{xҌ p]ƄƲ* U.G>6#agFlrcI*c7,fB'h2vw3j߶Ph~y?Bw~X"oi;9634eqs59bkd8S=L"?YʇrUz D\){;D*9!B$<3ug2$B+>| yɺiN%6*Xz45ѐ@FA]`<߼&2zv"x~ak9~iu;'? xCY4u!&1O>\oߌ;O#Z}uW>y9V?u"q=Z_ѝIk[/i3p\cS|}nR0so讠P5./C@vMأvkY-@*Ijiė |p$S8#?~&!0vzlW<ڭ B%)O>ۂ3ByoQoS%嵻z]t 0W6صs4`yV;K݆=8̭p2=?i 8uճ Sy$ౕqZ͸GCb2RO<{?YؔlD懞A~K8G&NQa"QՄWCכcg ˓$ѹe=e3Æ2Rxܚ}.GTsuKRCfԫlt0WI܋JCv4pY`e\ ~"w0`~@F 5F0ͧ|CH M')8Et}9A1oM>_BE#eӍDqnRmCӟ:f_py1ok6LUz o& dMIn"pv楯 ø@LVA`–s*=c2 b6=1]NKl4ҳ s}zˢhv8 ]+AgAF-](?}:7]̞ P׍̷LUɂZ7햍1pCm*ݞ\42txTqt'&E !}\Nt[' S)U\`'/U61<VzEbӺTMG2h>)P, ghw _9ذ\beS:kjQ/ =q^n(+/ ˗_ڥ Aˮ?]RqhGS9M/;CMqZ{QQ8{| H-Lt@k v=wz#@DJKhΎtEr3T@__X(ޟFȻ {RWZD4Y矂PT:1q1z\g«e-  Hc{qRrvׅoBUpS![xZt~KG$jN70JrVz|F_|5 D{y2. |L.zMٜ9?/v{tZUZϮ{Pr_u: 9T@d#? oVw?|jy=<8>ޅˡ7odVuD_ |?}>|_Hp endstream endobj 186 0 obj << /Length1 1612 /Length2 12400 /Length3 0 /Length 13235 /Filter /FlateDecode >> stream xڭveT]ݒ-58]r nAwnwcUUk֬޴*,b34.7sqRYԀV.7#72-#K:@ $ GH@<AVzM5m&&Z ym {{qA`7Fu l X e]O2zO hjPq1A@` qc0-@%089Aoۀ@\=rX9z v.x[B&y󽁩@A΀*lmWn'Л|U߾77)p; 99ؙz~spM 'f#WwY'Uo`nQdE|i FfkP?.s: fፄlZ"}8Tfo"E?qUvBK}2\0Puؙ:_ ;aÿjA#l 1՛ 0A@ 5S5@G;pOdn pJMI+0wʛo%-I5xmuPUyGtq7;/wH2hM |(=Lj_\y6U17Ez9S{ m!MRs.Q.񣘗gc 0>FCfhu5\7cNGlȳ%^a\/5γHN'ڻ{B%k.p.ӷk L:)Sϥ2>txL~ݫ33a\!tI2ˋ8jrU"%969񵭵ѷʘ\<0Wg(XuTC8RA651Yd{.{Dg;Eu߃5m9*V ﺞ*Q-hOe~Ίuŭ.r.GmIiH&q~=nzwFDqbI|lT->u'4wybCظ/N|97fSBBoM\W'\NDSr~φ UwMîOՂ"&[ lw8t+.L1}Mcb Dd@x,$ j<ҁ_8w `씧);ϲ&~zjT >dqh_Ʉz͟؄DT:M9ͥ-?;~ ^r4.7WArPwjZ x\_ <+$Zia-oHvC@|5jW5'\ MG42UaMÃkr8؉8FBS69bi$2UPJM6ZeO  .KH\q3/$)sH} x=qxx/ ݙ^}`27F}C|Cw{6_Rԛ<0lDrOP5$wI !`MKD\wƃ-IÇjc6l5Yf6+v~i=Ue׌J+3?\cX]].ݶdʰȞk_VKuUeMX:kokT6 M퟽VS=5 ݙ\{_ }2 So0]VLH x`ԫ2"kvN~]“71Ps(m-TUN}/'1##{Rہ.O(w&9o jqZҍs"وoSu+}G0/$()&+ `%x0W3\S^7]>)ڙ"6#@pSrj##}@ iyP(TR>T&?FvBUp_#EuF wV*b)d&Ֆ{fs+Vh= zҲ&?d+,7 i z%Խsb;?6R=-E#{.de:8 uѧ~+ FpSY0zoh1^o3@٣yYݣ00vw&wR)v.MN E}8.xfG^''Z*Ԓ<8bSdDN}NjjAjH&uL%:6U\>6/$b‰6.+l;fBQ$\ٮ{vm L8o_n#XeVFr,5J)Vro sZMc2Hyǚ0js޻Hyls.Dnf^|Hk `X̀AE|b!765U,nE联t:Eqo=7U[[M]AF*OOyrQ99l|CD>ٯu":`T-䃋u-&tVNu&Kv_b 9P/:&A>YSU[T nTУ[pǙ>J. #Bf |Xǒv3çZGSV jW*YԵ.(]|*NHgY0Vv4iWwݳ 6۽BT\BE3#5Ni:?zdBϬy@]!5,KI~wxwkBbmQ"XǶ!>;!DTGD;R@; ^9$>~RԿb(k ;47e]RORϵH)(g%', }i$S[0w슚\%2vW+r)[NTi /)K,ڃ˙L{\t i9M}OyL}-M}}TQ/^̗X ufRV6hFNWYSZ1>MC&MDw5f2!4Gz)t&8'Y_,M8[!/[2 F ( vZGu(|i\N.er}pH䣻pl~k3S)>>)vD[q{r%m;{F*4 ?ۇcq%/ ©@^Jh$8 MTAOj9ZW^hM 9[gI<ʭW <:5-$.]Ӧp]0I)Lk=C&/UIK!"M-2ILX!H+6 ߥޥ L-1SJoWL%%f:5كtӗr;kQdo[3i5f׈/́.K7d9(;ƟZn`ů_9}&uOrD)1jVȄgÏ:͍5frؚ|מQv#+]C?.: _;7\g Ɍ\H=R+ﮟ7C{F%)J~à,UܦU]'>•dP{0fcϪnͪ|{^"e:'g`tK!T;| %kS pQt }.۵0 Ďp rNY!(R G "z% yu!z}/ªcE1-b(~9e z}5Ƹ>bX?l ĨM!}AHyFlj<bi{*^R)we={ku.9:T-vxw#f=0.!]&IR<uMbU [nn7 tOi#pι3t- 3 F5夭q`~j%)lZy$GAQww&thx_VLwt29+۹k=oM56~:pMKnJyGM'ZOE ƚ+yC[Z9v gg/8QE)(ԇ`x5C <Ӡh0vȮO9)ʹF;a;6=2QQk׬Vq:kJcGI/!UVU Bp~ԾEQ}a:<ͬ"星HisMA:b7Ui2&F:Oѽ)VȚl{RlBC΢ "P7Rp- m.RXJ6SnaJ74,q ݀3fL#o*%?376~srd0DP1uc5[F,ʟ,qqDe2 @ X#?/{P (xwFQQüp58Q'41r^JYS4=V#QR]9~i<#?^r'Kb0Cy mHL hw_QT?5N(X Z>h '6ov =: 4# eY{ <ueAm~*]'%OnQjskД tVZ8c:ٯa| ij.ip~tO:$̭-A7tMv%H?&XMzك'3{Ĭ;9UpuĽ9E9t$RsP&GUo;<^0 ȁ{%}}mnԅLLjmu{׃ ON@j+H=?bw'p^K_" * 3ECC;6p d Z@9(rс^?K׺&1}A 3 [f_7Gl{QkwjzQR_]= 9viOY-_畲q~J7ЗyUt0*09* : W-^1pHN/1N3 6:Ӛz\wfNV촚DYw4}6 jZb:P: ?"LSVV|G6߽Y 8W 3~)} &sڪT51 `l@\̚L/A#F[1 ;@CaDAAy3=h6r[``WT\~Q )JO27'7<: @?N^U9b̳L4Xȝp \؀*w;tK \LV9Oî ObJ: e"1ݲ0{Mz-߅ =]\e}܍Y/+,Tq\g^~-)ic*PPYQQUP;+լV~G:YӚ#.iZ:N4e˨G!R%zV$ g@7)!]~$dwG579*֮ Ugqo|̽/yHYJ`gʘz rKd|YTD"0nil_uK:,˕ԟ(h[/S& G^b lQHM~4/N?&lvw;Y8}zy{ee/&cr4*Ҩ35vm!DJnPž+ !Tݍ7Ǒ 3D3yzl8JXv4r#lI+nb xU 5"{/w7k TtPtA-1p)GNr!ǸB×r}2̩UQ_ul.5S >X/$=[jhJo, UNCɄR4 2 Kc31 MO[wO4\G (r!Ll5ȑD]Z=YK7$?݂2UWp "L6fe֜4srY/k+C_btKF6/Ƥe?!N|nZ7Cė.UcR'tvsL g7Joi(mw~G93I\n8l[FYOuo|g1Օ:9-d*ӳ4{;fwxσ#%^sjP"_i¿ n0[~x /%qfrv6hu#ű:[MZFraAZn-YY)1WU_q$p߽̾f&4Zԕh Z,)QP:m4 \xa1vƽMuKU D7MI%efΟ:sʙ- $|9#[:EŪ\ۏ辋P='Ş^OwO'<Ӗx.S[;Մ/ FTX,Äz5R~0z!CvyO$GuI5Bt:'3YmE"1'…SmK-[aT..\f?"`x|#%|? Ԃ&*"uT0FY;s/nY੔/fzS۟DkR̆? 4h|J(Pv] J }xFO+9m HnAΒ(kdzPKvb CNո@[i؆LMbB|E?|#lRc(!c{|&D~v{J;|eo_x=l}O?Q> "|Ogm! P-rs(>rJBn&@&Ձ(G "S0B:+:>A;=9{RL:xzzҞ0O-Z*LmB"%36 ^X,+M 1Ͼ.@hs~Z"3 M&;ID Gpi 94I_y}akL'vm|Nߌ&~= ? xtdyǾY.o-A:HE ^ǍS)7Y.ʖ >3b*ܥקzg>#LIϿ=3%kM 0ޝeP4j3MUclC!(E(*CY)}|:W~eJA#'bV6a^;E:^1HF2ܕ_ﭠi]%ztN:\ҐQ1Ǡgf/*in9_B+)c=;o| &s,+1+P(S*jfTI-SEM;"G N‘˺m?{&:Q Bc~FS.8v|?i]&|]KTGfY|Nu.]~P(4`N0G:PvJ#o8MOjS@,Je Td՝_UX.]wpfӞfvIO[ǥ%>-OzR,΍E'Hwk凭#U({ؖ2? B'|) -,/*Ug?[UQZii1x IT ϑ]xILzG[f$G\0bY*Y.qYmJL#h=\@\9xrMIye}F;:CpXXɯ`"],;A09ݥm{ n/LZk^.8]D RS)Gs sAC dՠݐj;H|dx؃$q{ m%k̒Cm;;]Dwnv[?"˨(ps¬(N)ߓ1&!:Ԓ%tw@Kb/sP^ oDpk7E^wYn+/ym<=1/Њ*-/r>|D%R Ϯ{œ-#:n$ck GW1뗮F@{ B*m6"*G]̿ɎRP5'&(}(&*ޕgR<]TXOD4bSz@khCjwGyH/%namѯAHeޢU_P6Ǧoq@UkBA20,"U cGpj9C65Zd*471jtyu *Vh{?~e rWLCps3AIȋ: ~rOs?ԝ1<2og䐲FZwp.\THo 0a`.F3kխ:F&kԞS;޲quCJ1zH`h/,vۖ/;:7ZHK;c/bE=́cv0q Pvk;5-D: Z$Z3Y=P4P5It,YXџ!Sm K_kzV&źE袉Oǚ "R.h;8~P֗}-S&J%O(KRܞz1ea"ۃ#i0A #fÞ 0&݉߸O*\Rv7ҷs ː,xAD|iTGv7U/WcKN, Udf2T3\B=5*o9P`)!ڊ/%İi xdcKhx l>\h/fW%euo8՗2 Ц%p`Jh/IﲴPr)Wg+R$C2DAIxYH.`fPs-۫:J3 RSFLxpn*I2 !*4C)>~O7?1Q `E vȮZвo9#{8q͑g7{=FJ&dgo&*vgk |HyxχߟŬ{jnKl[QC>{I#\$:W Օ{ޥ'"QGg4S1m,SM. zk "aP&|ZXyW }fjQGx_fTλ X]ryh3"$t1wSjϵ&aQ# endstream endobj 188 0 obj << /Length1 1630 /Length2 6044 /Length3 0 /Length 6871 /Filter /FlateDecode >> stream xڭTeX i g:%D)I.iPARDn~g}_3{{ŽȔ_@B2@J78{:@, NήP\ -!@5("&f"  B: ({:?yxD#x(9  `sP8eц;!BZ 3cG}e@=wB5^rM-!| PXaE2CQP_ v:`ؙ!Hjg !af.PAxA5= U 4n4~ |@~QIPJX8dC#>mu:p9hl4^H$V??񅀉?Be#\33ty}j6]}ŵfC+!OH_VE ԍ\5}\ó:A lOlb b̧\h] +aAoZBbuyĮ&h( w(w~( ۱Y08&N+EUuGcΞ+/eAt,)h?{a-ƹϲq8E9FJcLW@4L2ޕ=s8E4VdU({Nho~שs$`036DBd@Xdp[k`<] [;908_t01%稢2hz!H@\Ƒ2J̓=)'9Ch-Ğ`.~x'1aHa_(LoL j/'8rƂfvKyՇ~2Q@Co7qn#Rypia߄P\@i~nZvG|? Nh̑y^ڄU!HJ7k,N&K*OUS3OT,醓)^&ig6eƥ9ĥ0!ܖ8gYOJ$u{Eԗ$:u>Y7=QiaFH+s*8*Tfg;#p.ʹǡO8pKBdf˫tSK選VBKJ8lhQ0lwľL J_sF'+b"Z]ԗd3bG<Pp,g{}Wj0]g+%߽(/Z<15˲x/Z+5Y$,gp3{oD!rd+|¨dҝ a)SKV3 DJ[*G}ڬe :kQt$ӡg~49;퟊/|qc:ٿx2705tA}p`" ܛ8?N:{S۔b,d$4V/`t" WL=Xlp]ӢK(.:~ q_<(ͱx[ ..S K/([7E?_ k \,MiNxޙo yZ4iA\9r{JHXIТ"eUU4doyoRq@1 #Zr{ #E5A$8;))˄gG;$.w%1LJtS2+ X|iDd9%fKTE붸hYK~%/Vx_LN1^*ne<'t(VqIZn&\/z@}T|rƃޞB{<& Vʙ18n؛W$dq dc[gOɻ7)ր^r@jj@O {RWm{k OU{ FG{6T_aU7DΗ[v|[>!*f8KdqJw; Ȩ}Ggr_ϪVУ33Z!po.^m&;26[͉!n[w4#Fs1V5k-~?6C~䮂0I\!&xIX^񡔢OZ`)t`Eodv3<$`zTTE ě݄s.pFP?;H&,+8@[!k' 5<1_r dW2[ uO _|]#Q%;vad@>m>KݛAurmE&et-o[`[g1K5#<ɔc{r~}u؛VZLЍms1^I$k/&f jT}#^UnsrTJTJP5S ?%Yۈ%*UO|(A SØDpVX\iIwPWUM*Zh*7Àm 2q e4^ޤ4bߨ4*$H4u1G`=c'+ ͧO*ͣGsP}mvwy[H9@g";6DF<c߀~Ns/|%"=P< "FQ7G^1F;u$pE.yNӚ6vU?'*_ll-(آϹ${gHC<2WiM(>PgǜstXD)3KwQ"suvx,'E'rSN4gciKbUE.ߧU$pkh+>ndGlL^HU,jZ>X~S,bP]XޮEDsDjw`93Fdp+~bT]Q!9zf Knvǂj@j^qF t_[;_p֜Qǚ,=?\⮞&g S ֩-Qra ѣDB+w7gEdj|@M\fW%͸S7&izŸٌ7O^"mc9a=ᴝ+eQCwj*5t7OD&W](i_Nd3y(*֍( ؜LLlY5=̻fE* 0`^ߊûyX6JxP1"+ \v>Ak yH.O̜hVto>Z26;x_1xDǏĺy~)sbd}ʈ1[FD .n~q_ž2yI^SuJ0i2ML ţckA"iHR͹7.'ڛEV!OT v3\ԃU%͌ M sSۋnyq$nvȄic̹9h Q3W&U#.5r%+M:*j6n㝔T9ͪIUO]g%)I>%1Ȯ"\@SY'..df}p`'ĝnU)c51$_ L!ġzƹ񗜎SFZ+Rή>=х%? +4**5%IL(<XNe8GRvM90Sx?'R>~K;CaA} OS]m0y{±ZY]鳶x95=:8['4UՖ0SIO@sd)ԭ)UT"*b "V9W.;% [t]od 3):jv?Vk\l(٧7L⚋ʾxjǒ&#C߰wfS-z9ꛄNFܑ eˆGRa]Lo1gQo8L@S+V[YW&ɪ;h^L},@}y:œZ/Y2F@/R.PwD i7L=]&U3ky/iHXR^~߲)~3oXkj@e~  zҟ΅:sJ`^/g7I5LkcX8/3_ ujzφУGN&ϵS:p*@c{ -UAiGxc?)<,8zZoWvnv#c7Pt{cbPت1i BȜ˓&Xe1Lw+};=L]E*ry6G)Mnr|T> idt$;\+b9"u N@]}͛j,Io0 G;~O}Ƚd)q:ðwPtvFXKTO-ڛMxkN\s,T&[ W:Sg?oW 9Rx;XNY3kK3w syN} 8@(KLH6GΝMŶckwh*^B4? Or7+HӸޫ({^@Yw<-WsOw7szOd7)%VaSFܬs,?|'a'93^h3w CL;JK>.',ӧ"@L˷<)j6iq?ed\Ac%])"'ȅK1E4x`B1gB@؅'1ȣ#ki>) G=bFӦ$u҉^0Txxc< 94T+C[-;|g( YƟe5ٚ\% 5%va^K2Q`ӳܬB5hSQl | grOҧTM;.RGm[~C6i}#Ka^>:.Dje$_e37 l`fTİGx-qht  G㏟\MJf1&A ,CBWD"ۊc qdOeFlo`L$Wk!Sxq*ɧQ[ sK"m>|7O)K( ݲ(ctN2 3KA r^Mmlꓴ"wvq O6?A nKs{73xyܖm׀ 1+U dyo6B|súO8 Vf2bp69V#sIxzg1hsO$s%l*Y"]N+;r~mdq h7{ v8챐S<7SD|ahjV'3+/ EZ0h`Qgd d VE08kzAz%@<,'--9 $0#ПQWa<[(!QMcRI jptn}‰sBPKb\Vm:"g%d,&kԫ2S@[$2u6۹*OލlVphL݌Ra= ,BD_WeIefFݞKюvfO'#tHYV>4D+Bٛ.fJ٧Q+n ?>t|Kݔ\'Ur  endstream endobj 190 0 obj << /Length1 1614 /Length2 17449 /Length3 0 /Length 18248 /Filter /FlateDecode >> stream xڬyceߗeڶm۶m۶m[JҶJVj鉞4^=k9羈KFB'd`l&`JD PSP452rv558Z9؋q4Lf&ff @@?-7@/s `nekQPԒPJȫ$͜lnƶV&Y+3{3*3{SZs%08XM341sE p4srq rX8ٻ"7/+oUEQjiOmnHSZ/_ ZfS+G[#9:[28Y9ښtOѽ׿9Xٚ01i= ?[EovS79k@$Lmf0 K(T@Gj_lm; lao;)W+#=\ĭ u8CݾP>;"d4% 4\\߁uӔPd,ZKD0iq2 Y0ZaC^0N.2\u.b7~įsƈI@\Dkrd = É@b45 o(jKK=oؘV }1a2Y<[!F rfrG[MȲ6HPK+ ?{0)< Qc4awPD5ͦ>nfV`"nJh)AuBI"ib*<5zM+I#s晧D!sԟ_:: %fA1׿9Qt=l(mħTK{HDkq~CBfH^[ F50 *ҊQaBT/o6XMc#*֑S{Lcy/Iy M"ޚ5nOX69: ˶E> 6IesH)Yg@_RV3! NִJqGRm&25˧Qw`(1F6cmyFIi]{a͊Bgm /o]Bw2ݔ8Rk{U "yS૷u6l v$矟1.:C@>. !Cj+wlVNL  [@L$BxȅҐpJ򥂲fGw'(v}N+?-,H_='Ĥf8:א-:ghR5Թ_Ib}ux'&bz8ѓlhI? ErPzk1/ԯgb+}_^ z?b Af3}B :ӓ^%'Xan8:(I{3vP]B*NT -jZ1]{覫FB73:|aB[YU,_`!s[BT5&285Aԫ5Uw_ҥ;7/H }2dtVي@ %-=V]H'(Hm*㢫/@@T5oF鐟i0Q/2(%;n4b~c:AI[P17L!D@*|X%4޳ h2r3 ĽԌMm{w%?w}ܼ4GK]}'X<5,_s[+y>Qb0~ Y'eԦh+3'؞a+iɟ;Hո2j=N :8y, 18-t-7&G$YҶo7&\1/A0!qtw~;[%[BLXO_'yq7/9i]C90tx`W=eC>HhCα9Ӹ!KBrCӴ;v(۬ ;׵47~4&ዂΝ;XN~x]C "Zິb9ġAg%Oogr>Q}&b Q lZ5GLO3`h Lޑf5 yHm%oHHEaO1&H Gpd2Wz븎D/K7lo)XTw68$;@`r@I0I0ɻ>L:xGlɓ_'fCQr<&-yW/I-ٜ˾5zE$J]kT4BЂ[ou3[b gZ^|-؍5 -,wVBM0O_d~j$5c"Hfe+Fe[ i"hnU^21WѬ)%Y9;Q=K /8DW3GFjtXOR> U2얙Da|xX8LϮȒ-&jPлڒ^58k8Op?꼽a6~/??mxzHlgh]0[&^ Jn%r.~7ͩ櫏&&jubrpjՋ_$ nbͶIX>@W[hTi+vZ8e/(twE_6?y+Hu)}LjL '{dC?gAB~T@_IJ-+ 15v~Ғ6GpT=wQGo<^<6l|mt$V699c2A_9;π$glvRńװb,$)frKƗ_<℥00aO$myB4:zq;`V)T|t"סOfm8L}mtP+kxe39UxV*sr`BuK fQ!X9$[Q~Bpv1$Ȏج|dJ[P D@NopM+SL T=\(cCk`Jd~Ͻ1Ej9p8$2K͇xCc[Ux(X ElD+5(B W"^59D'I1s5J;d3NK'asgZHҘn:nZ+Z;LFn5II _[߰톙1qKtPFS5Ɂ*+*&:=s7KQz34K)aXN4iw]gXjf9 GvzV u!![;JHAvXpVYd*YLUגI1:5*P-VS#QNƞ"q\`ЋI2DD,n\{k% E6m  98)&gL'U6zM!3Vg]os<Pc>k[:#U6g}F:,K%BeK2ݫh$XY4F`G4lR//hW}-?Or{ FXm9HME5o5pUw$ӆk%l]yW7 A$FwlV^IH1=顗U z;qѦQxU` êQ-`eky Lj6M! 쏺(B0p uVQm);WI\_)"UEdle?  cA*k/S{DAε>Ri`-=iUIfw[yC{ЙK#U=i1ohG񴴅u^#lr_-~cp vE`H&'PP373 bIg>[lxrDۜLͽPg!E4@]I=Ʃ `y@/&!U,Lk|厶26DDrrݝzhxnax7xnRݮiWN^ZMGj$%b&cds] 'xȈgzZ%Ig~V)Kz_k]Jb:> beq?uOjK^ A?@綻gS!e뷪y)S7I'z2'4N!['Ψ`Sm{Ee&&ؽMDݓm爤?X< /jkvXq M:+%ý?~٪Jؙ*efC{9B$7ʩwuե,3NEⓖ,MJFՃ-ۤޗV9*xd{a(TnCN?|a 7g<N,&M; ^&0JSuD{nW؝k^RCE3?9:bsG¤Frs<su/&jMPa c[YN#q0MGT 9 < j:0o a+IEǬހuA`vdN6~`!\chwJ*Bi-~BΌP~~fvxD 0ˈ iP{zd*YD(y]4(}OXsf@/sT<$ ̾t (&H)bAB(Ya Io"5g_wps2D`Z;xxՏ0Cc%wbk_(Jœ8<1:Wk G8bE+.֔Q=hBRP9PM&qU}1/H:*=ЌO4k;I[ +$V;pp V^ ja~c A@Esˡ7hbZ;9.WEݱy66Mxt7 0+K6xS#pkYuf^‰;gt!!ZΏZle9F.K$.ږ+n5o/u68p7uŲ&~7Ex~wu4yz񄱉a|pgv6y7  /|,A]L &o0඙-'bPǓL9zߓtd4=01rDb8'+94zgx%8|&ycLQf~,Nm$;ոO0ϯ7tOW<§S|蒫ɦ,%qeN?bS;NWj!}OW0_o@iP'*L@p*3 Zz;f;F~ =ݐdxC$KNk*փH%$Ї&BQ]!IeeR=Y}t9ػf<ʡ6m3z2,"ew`DB>Z x'im˴ޮb&=y,͑h&Y+~)˚'m`U,QYP_H4l5E.YT1WTJ,Xfsĵ:Zʳ7 Bdu/ͽt Ob?E5MYL՛/|%J(['Z(~f'ht TYLji/hi`$8(q5:,Hi>/):*  ˨/3dG0! OuVbzO<#,[\*.Q`f6 .V)=w^˃ܫdqս?A fn47ʼSDF!0#"WZ'sB ڈz/\UǑHywj]j! -; 7(~&#G5@՗Z)PEgx _DPN~.u34K"PJธkbkk@lyd vSϋδ8xmֳk/3xLl$3{H=λ9 nwp3^BVIF~TQ^\mң%x"+M~ҳ=g7ZȶA`@ǩj% X9w||߼wFO D7HA6bk5&`AodbkviPB  TeD2X%` 91>IДFdr3g=0b=(+|BuY3~/~;D{jRt14R.u?vsU7ueJ/9?䦨!]Ӱpd a4* p=<K`iiySdBn+ 3Z`N&.XXھTzde[H@ؗ7)rjKEn6 IZ&0+%Z FQY=yDΓWyi>"U8"VwC"lp< X%A޹ٟc>3.\ns3%m.~+D2vԞr8+bC"]{Fh#Ǧ|ؕax+Oe̸o2vz)8лXgթd32 Dւ*k~%x"#7O0vM% zAT%Q9M/gƀ"# x -\y'1zw=O8qd'F3$%0J22r[;ehd"I{=L_3V6̖<0j9kQuuw)"9{o;äE};Sc#8%[{o+t|q;siCDlLӛY8+P^s,Hvˀez}p)nG*>|?9EsJ-N6wc˾OSsEVȐvϗ{`PԎ'NBE[۝]`vWciJha1{]some'wu~:Ґ>k oaREKݷn亽ul#`Ng%qΡ7"ң1GLn̾vbcr_o1/Edۉۥ½i\`O. FQ&\X>%&̃l7?&P2ujdgpmsqܱ t,Bf V8W.rn}XU)od ;b, zdP8;Mc)naT}t%9qNZNL d&I-χCV ̾a|8(eiviɸ XևXL4;#'98HO2z\c(5%i%QYtpFƞU &4U( u MLhIĮZ?:aQ\N]>+N+>=̛MJsTWq5kgid7KOIԈ#s9%)j[!]H0'pVrcC\p_A-) dٲ2 m&䫵b\ޕ*ץ; .Idr_u@mIԧ|wAAսaW(p@e4ka}Bkk&Ġ5O7_wMJ3"씳/emX!dU6kX-`[w=(yU-ic`^D > z|ԹLձ:4+=xKT2U^}!.c8paO cA˛C ^Gyk-NZh nX5LG{\*o.]*~> Zq }xD ⏃»g!2PxFY&,G:y7k1'qje8rrH0N5+{ fgRSLRS9TG*LL'Qw>XUIipx-^%IUw0$BL"!D*хqNjQe<9T=έ }>J/S 6N;!$GQ}gRu7E6F i?7:208AbOFI*;Q-2FIs`@5[kc?aCsʇMPk4bMp5#bI(0eshT0άӖWp"; xz$qak- Kta8ϢN$)(c =A+W{ ˓ItKd]+ޗAU?9 :O]"&&z`-Qoݕ.1_팲vk&J 8:iZupI_^ ->C /;/v ,KyDgW,<^hC,` / |kP5)"}?Tc+D2QԿ/qdgx ھo֩fqםɳaGt-z0PCYb_Ԉ3fZ? F7o X3faPۚUFIPǿ˕[^Jۛcb;UV Ie^d@]vCy=β]u-}N@q~^4QyKuK'Yk!if]4z7v!V@nzO{AǶvޞGO7뀰NsQq C< NfN"Ƀ/)/+ͱJΠjW}@pq!oriCjDOu%fDA %I+l1g_xdKN}4wgdgdY-ȸ-١|tkΣ%qv&OJC) cL?k֮gEʌK>le\dW녆Mn7Ec-0:=oX_ 5 sRH[=ra)}ƽ3ӟ"qB9b' q^5(68LEƒ*4&C%,c]j#T|K8y l-ߥDP;o|zOsr' ?5*덢|`wzב,K &eՔֈXܜO-e0 ;$~>C뫊^h_vOI~ xol Bl@n_$ V;%t#O8ST D9?.zd4`- {O^%!o:LucYWrjN(ݠ >c.͆O - bC-n9}͏ TAZSӬ{VԠ;EQ,qiqE&qT BXױ3b 6"ZtjF JwFViD{vw|2?h22PtLʥ=8=b^?ϤSzhچ' Z~ٛހ>}0o8A~eyMh(Ic,{GOݽ5RD5v1BvvE.qsq{ E+4͇,>OcY9w`H-8SޭχK>2F= =I|G֢>^ظ~qL8+=OW@GxW/ x`tVZtOtUxVq:_C~Y8}$&Aq!E*;JޟJ ?HX2,PHQX 0Ϙ:\Xokr )[̪]`D&ɳ|uuLfݾ}")\ϸaӊN\YSnIPOI/]c#`9nO Pm}~8lC-n$BD۝>>?[_vqr}dND<`+ΘrqݳտԹńȏ-e|QY_= H5uk돼IDvR+;p U>)`gʄl֡xjuY@ϲ58;IV*vN"cy=*SXz)(DCQG" WƦwK\yz@"vʂKҢ!fe623[-/14{ϥi|yxϳ7TT|yС28)żSVTzvɋk#l-5N$4p`ܛwUw<3;}j(̆t=0#*Vgwˬ`W?i.t\AzFCjD^kI*azjFsZ2I [k*eT˥ G;9[/9'/s^e]\6B@| E?O=zj[]ҞE@g]p\oQjNT<0g~a-kj*b)5]ryiD$zQ0A>xkʍوCC*FF*Ta9p|1n~J慒TUG",!{;r> f,p-?MP/ g9T(Fĩ6Kdoix5ݾr\کp !Gr/ ǥ2M^BQތ Wf hW S*[4~uUe`Ozۣ IR0R!ֺu7X4q?>d$I"ä"sv@Z#2IG;Gϸ2S MF4Et# yD kgkڵ }TKLr ͡iyx:rH^B'K7 ɊnTS=)j-Z!L xepB=\ަ?F"Iϗ\FC}_N#5 kC55}NH8=(:7n +&T\& *bJƫ$JOKPg7̸d5hפݷxR4R!cl!4ߪ}Mق[=]}q"hBGCN/AI8ZtM&)-9z٧q#( 6NʄY嗄;)l Um DG]圓7S# W˓!\[>X*=G H /Pd"OeTW߱|]ey'e=c}Gdž`qTN l &1pz^jYa J*fdl‰s[g,SL-GoN]9 ω2N`~ocujM"nm8pǽe%j kI0;JP\ԠO)IM뀑n`E,ue6Kg5ГV )d.uJ,*g{GMQlBbiYʻzb]ڈ2*J+tS˙P,78,1tOT;s]i #7yBG*i>l[bl'Zj>FGS22Wx_>n(JypWe: qTTxì&b$Fv=r" +\Ҧ)moJIU8a' 2Z`HH%.kZQXO52"'?a/'"q|e,Y]>o#(TI& O?Brn}&QmgD[ MN.?N}rƴ8[8N;#ڍ n8iF +wH{֠iF椰N,/Aetiݓ[iuh Z2^*MX͒t.֡ww}\!c|k%$`)}Nrn`׈\7MlI&= +*V<z^gc C28J56h6\} Vs׶50diOzuxwUz,-Đ$TA 9eFeo DY#:CgIǖU$tI9AJar?80VQ+, G}8$_|#Cӹӂu*f\n8CBʢq9f6HS( ̥4S|g)'i#l5Ҳ/ԧv?I;Oܓ/!CQX}< b|r{"U:GB: Y y_z֛oeFp r[# 778ye(a`sffhbӰiC"Q@z 3ڃU=2.GeSOt>|9#D/ORHKĤK0c endstream endobj 192 0 obj << /Length1 1630 /Length2 6887 /Length3 0 /Length 7711 /Filter /FlateDecode >> stream xڭTeXFJ;.nKD  )A@:{;9>^^ac3!*pO_P`l`tup->+XtA"xllÔ($(A@aa@::w<\<!AaFNP wE 0ߵ r=MM}ջ;߉L~3)(}|BbGwr$uP F Vퟆ0W?f pԌ4T5UNeWFo{qQa~p%=(ْDuUM_k:r'CX:I[xCl ӶM_Oh-bZ /ؼfny? f`=u' QԣUfO<;~չFǓ& Lk8`]z!+kw 1HbViiE^s! -F~+s$P1}+,pz$@?2QY BȼM"A_L2aُ֚ w6[6x,ӽs^헵v-SΏ;MyIXʕZhZ;V^<n(=jpF Vwr%*Ly=HcHG5'$uC^A8/3sЈϞ4VIyE-z/oQDҟ4Z$񱌝T9iE׹r~b)7ld 1NB4|  A,o:⃾p[K+80վcF}%^}^0W5[D }lx { wRsTX*a⃕@IO;,^B(bS\(RQqӨ=sBKݢqv!paŪ'[= 5/nr9Y.>fBٙdx-|l>,W#HEdkk~!ٜaDa* ݕR.fV+]+L#]D!70iDŚ&8һ*pQAE"h s?Msi"mWR1̊2] >(Ht!hU{ºm奝[}~ ӀŁosEbj|ToU| ]Nף+oR |%ckhbw(Crni*p,' tYa-ovzUx&nM'MbȢ؏"mau;O 9bIlb'!Qz`&uwmƀ~5hνú}2JS!/7<5[ ┏j Qn#?&{ j|I//~XDrvU长V_Q 4_OQ6'n6 ?d|[2a+M -Y^lHPɣZEA❠t*ڗB?jy`?$aWI.N_ISƙ,F|`dYax\`4$V Sgy%UZ-e~ڍٻ_k=] 9-FCa [Xpmׯ9g7>#ݳ$)=疅Pݬ G篧WiMZ33G!b?;=^U{-:^isHU,!U 9RuK%m}"\VF)f_4e=ZJLJnL| د塉*!*2 ܪNvm<d?vr}^A n7od\Z_ >a:ZI]\mH]#~-8yҐgmL;yܧ7)=*d--㓯8$q^]֎GݏMI({&U8f%UR & o]uY:.'ΎWz-9kݚ>SHlۆsm# " YgC*haI5ħ(>/2OЩ`kҶqUQnE's$N  /%O[}f@L!)q)ArצteN _t"iy܉)hRי/sT#kj冝;*`yu=e@.SrFjΚZ^w$H1as~kIoxa}2p~ }Y+BNݱ%XVJiɟ5;LyxtN]j<>34GrKԒ:7m4!d-E٠[&lyY@(B.1ClR,PBߌy32NBCx(6&?9_RI.۹|s7 /Phx!+ڶXglE'$^ MoCW~%;qqyڭIܜ+LpϩAf ],,(i|=oGџ٬*y"lآ:KcCuGGDz{jt.\t6cWf+q)[k1%*66_8CAfC'JhI_G ,aej&e-W4_*M2)]v|\Sm+ *L)L@"Bꤌgv|tzV\1Xjf#TBb퇚^p/Gfzstr/}ϲM.zuTw_]cOJqК|Ńe)5NnbV*!D" i!ްm)zKóD)" w—sY=$ֻw@d&Z LKf̰WDe14f nV lDwQg8K5cuG@;D%p Y|O;1P߁|DWU`B.gD6&̦aJ=Fc׽P^!RX}y ={iư+oؿ^a ͐}xi6m-tra UVuTPOupO{~p\`[i@i/LktC6᷏/{/&ń˯̨DoNCJ[ +58TG)ټ0@ޡlTh:w>4O2O!QTY!1gC8c16nfG1mM ;^nU]xxPnU 8-sxyveK8v)+GASQDjK}g8l2?6u$VODUWdj>+Ap=)L[mN-ObթT!(Ut&׉R:T3\|&UH0 (y,) cZ;I^N>S+Ɂ*ɽy"TMIf H WNlcƒweC0&P." /83lb`3+svzvLlI,@tهgpZ$@K.K,6yLT2x*VP+\2 FS܄(&zo_侽9#aCŚ&#e3zyXVX^~7319Ɲ|GV4T,'f:ϯG]>&; r_|{6A}įw)q $M)U'Ǥwv捽:6f *qR Y`@%ܐщ560v;yMRt\Sy zi!C%Z^?+Vr!/]T췒c :ؕQ^ u>jc$b]g}V$y팆 ~ ы6bXID; /Ta5 (o0ll2bûgwvdRݼxU&בR ׹7ű=#TUڢO8voPCDƾkI$3AO mv۬^~=]j ժx2"Q+F(tUSqbjcDKl[) a:o&w7>SlߔNKMw>I⊝:'}_k0=\ B``#YĎZQoOydIWZ}6)h:hniC5ghpq]/)F9WZ )EDqܺ{t0m. .Qh Vńso AxNT9C MRȖU򕷔7)v56;1Nf}ĴcaUc2?Щ4yc_A+C.&[My]bצ$Dpf3̖-_cN=U-YT,b;c6(򪊟jS>{#WUJGn:zcIv-U>t' -m**7FA4d d6 -s-'JmA!t b,7r;6z/XxpTvImJl?]r4+Z*%IJl[WxlN?]0s%}1!*3ng_iuKP%Yueb֊YF'm}L&:{H؇9@+qy6]$T+exoLT7$񔓑UܺR~V.1KS_<^f[l'f"].J'% wmqwe :Y`~~ }j/-mt9_y\MdV2UDMsYGfݏA_ZCdzuEr;yoSO4`eqB"G'8=)*ddk1+o"HR*DYlg21ۮq{Qn88h^X1+Me )8}{f\f=3#-0=%S¤[ 1։)%ZS~=1cʀCnue/;Ͳ 1>u]`KQMkz]=j橿t:r|3~x:^ْgͲE<,8]Eyl{p2]m"!i|t?V ĸFkI9(Z. ^k9:( #$L6?A)_)="̺ p!'6|[z\hmjcC mwîok$?r [7ﲏ74RLԕ%g1炘xPd-E*nvfͩdxs" &_^1S'Be+.cS॓bF) K<"QDMLӝ rP zNb?K URԦz/cJVK&ۢd[sϱ.K%Gz)@>Ni6a~煍-&4ᓔVPXSE~$GbF~j[ٚ%(I<3d3M/ZŬBD4ӬVN8Lx28HA8ڭ7Lė!Vsf}9ݺjs_N􂫅1SŦ{v)fihF Ei^A,LlV0ݻ#_Ȗ¹ĵ[A^F|vnHXX!ц>b_\9jQ33jtg{{@Ջuoƛok#ƫ+56vcc &S&_ŸK~x =7+q?HJ3J-C&F}kkR͘+=0U={؞>'ܻ_W}E8}*!7_[p endstream endobj 194 0 obj << /Length1 1616 /Length2 22134 /Length3 0 /Length 22971 /Filter /FlateDecode >> stream xڬct]&wlm۶<ձ:IǶm۶;{̙uf~7?]UꪽJf&@ {Wzf&1௙\hj`/f hb@S  lea AMKK_B&@hhw QZV@$JRA :LlLrV@{ 5` ?0v\V=L@g;++:Mm!n/!Ggv}\\]L]*IOWKcrXuF9Sҿ0V.W?L3+G[cϿ9:[Kf@0 _7vtwÿQ ֜oNS׿-ai{s3tAT _f39,ߔ;߉@'?]=ZV&19?mlge v5 a{r010Ehdjj 07ۧf@g[+{_=m%,Lmi<f_e(/)-)&Lߩ)U/Q\""gгp=r,n6VCk-ol[6V FiQu57;`EQ=K!Y5X?&tzBKՊ #vˍޫCx>[=?dhGz0m)SWԽ(휴A%1 r:L*PSOd~iuq 5gI'OCݷxq0X~)gɮF& [3bH-}waqTUkDtd)RQc}W\>NKx>Z`u6w.)gq59)Bߩ?⎯ k.I]qR³"S4Jܛ Sj:c: j։2Ta!,FA25fI |aXoeTvl"  (9vYӈ߹ux!_EӑB9Y۫]" o<4_G4VHЯNN! 8GI¡!["rݯdPuϤU{`ٶ_Tы>«߮50{M<jRM"ҡI>8^;fT*;k٪_+s7c*{w8sQxSa[N i[wHsNrD3Ġ&`y̽ok/ރ P)p᝝V)]uw$Fd)͡x3\5V#&kWL@>u[7%:}U2˟yYpUd{;Q<摚|Ԏz;'OkMm=/nla!9>NHCq{ 2Пͯ3B#zv'Pe_|+`nU:vZIG{VͥJ-P;F/r|;x-!nB"Oa<#iFjXDK(X)NˠB"6彦!NUAe^}bR::v. !E?*jKQ> +{wj;+5fnoahA"D 2hO)&)'d~=VGiM?M c$ |9f 671Lm߻?d)̉j|}/-Oό-5ث*Kzk=O{ù#U o񦦻 HL % H 9v(yRzG%f<f$2/%mG ٩$T,^> pLY4xkI9l+}%fLYNH{-ŶeNEƈ%E~˚Ks i T]Lߑd44u>IyS' pJfJK>a+];7*I ُdsP+6DXC!FYN~Ʈn4fźA Fx_;Qh~+eX4q$2\Y`Oo~^NQS9xGVEg4a$J~"NtBFK)7gWo,3%9ZG%o)1U rѨye܍7/!of3p+cF.?1cqfu:q7X>)Zb|c"" ߁e9J3!IO0b:.|C9gQ a#2+p|y&QM<{2=Ɂ{@ʡuV"%;Qlت) ;2#[Rgg1c.?s,3W2ͷSXu̙xl%@?i%kzi$Nfg%zoާe'n5{zuhH5I%p`MN37`ăI:DVhwٜ[Q)Vްr92Ϗ18ڴ:d]׎0нa\- < Y"W̬T^hc4Qc` o$u$<aĕa"*I^t<jzMq,ܶӬnRPc3lMy&a-`jz̏ $gC4 ʊ"עVR¼kyºoǗG}Qi:֖z*BMQz'F %]q 3Y)u{ Rs-cW В|Ŀ:Yi w:E{TX|sC&)3Zm)HZMl@S +Jr gvrGa8-}~nt3.G{KUh>Ї ]#ͻϥzBq΃1$SnzA3?tI8L ]v߻!x!N앬N~jl/JF'[ Oϖet9}$#[2~H]q9d^@gORX93P+>WHV>x_BcPI1@$1\jI"O$ e*.H1!5G_#KdRǾ(!gIxcͩjUԐpHGI(ЇQ:T{1 sݒîd3a=T_GEw#i-La} $Qбc%ϖ$z8)z3s$dp?L˰~uM+;u,t~"E8iX:Iٽi{K냳E3y$q~9<EorP9)=JʇɬY2g&G[0 X\e,#]d.zvо/7Kv>h ]rOD{c6 #F3GѺ9h8PX@X)gW~Dm!Qdhg>c&.a#>h4پ6A҃G=7wFBsS^d[4ߵ4w Ayq9XTrȺvE{_ig9hfR0ď<`h)llQ?iۜKi15Tefg;N7(2 P%T=6fh%dTt=!^<$u*> 9CW;URb^;+?"y&Q;TKUȰC\w"J!e\f\ԫQa_kO]*$<0 Ĕ٣ޒ]"UqcCpG\fl?e-;Gݏ ѻÍȊ[LoR֤hP&ή|um$;*J #`X@ E5AVq_%WE:E"SXXj۞V*)y"Fd oPr-ѽi2~Ftcj=DhY&[L~:fsWḛIi2Ov_'7%9-#QED%,E~!Vk ڦN1^z̭ YDL=yOc>M&/bR 8yL<8]JizE"ə}к/##>O(dF8""+IÎhZEPCɒ3H {G2O\iXD,8'P>4ꛨ< {Ï;e)A{t?1;45mP2G*>|cS2PoY-LmB>M.iad)m_P9-  q;/y ^t x)r Cwu>*&tF %8jv,({gjrˌy1<`bT>m]9@$g.8 4. *{\ksSRlϻKjVYiu݄?XdDK8Ve-")  i0:)--\)UpG6WzBVCQ=BiI¥>F,"v'8JCk6`_R{%6ttKwhhwuٟ1ĎdcRcL&f8{Iaz,\9{҇atLH6enpUEL=h{1FQc !&;jL;RnSgeIZcOUUx'YC>X1mo΢z^NQt{ djvط<ڊ  LTl"̄ *< n\4=[%'_&FQ!$-_\L$˼\rֿ_ER1jrWxK ;Gwlc{ߴlՍa-3#;E{c ])h"˟SiσA5;ΏGoQ] RW;d#_ eG L]]3tԬr*|&9=umn )PXvZPŗkR_ߚ`}Qç GnUGoFB~sْ!'-u sGd7 ip#NiṖ 㰳r _X47/z1i}gim>[s5%LEw #c1 nT w$5w붇!T"#'Pp1ס>Pi(SJxOzכ҃ZNVrB2_O9$ɱҫ| IA" (myK4O05O2fv+ lBOb".ɠ8,"jB[S$mHZF;tB/{ٻZ@g[ՠ2swxzƝ-#h/`!_b |XNB^QGُ&)R5"'C(iY7N6,a(M!= 2͓"6'kPUwGݨ:sY(*2糊1{T_RܴA z&k@:%_2wqEmXmQQR@{ų'|nWPA՛7b]>BYY-NDֱ0(R̤t߭ҟ5$FČyubh0:?xURX ;2VZ)iP-7xZ\u5".6Z)i`qR}Xgd5flC#o[T2f^0P ދhGx~8v̻yڰۑb! f,uS0;.J⤰.me2a #JrwP&W)B{ @J6~+Af eH'Y}vq?W(ihdSzs7O-'̶j7lGnW_3|p[|$D]m,6/L87@K!3QNcAOb [2. \5P.m?K#Th.Oйgާd9W._jY*Yƪ~ ¼^$QS~^u6?ryH-_10Eb@iUb<PF;kvG"-uT~72 X[`2b~|6R{J#H/(nNH &PBvY)d sX(qkSxes9 N*\ Wo~ǛڅZG~ʿ i7%<:_i]exWAۥj;e+>m.*սGm2r{-3nOdbh4qìRs.z|0iAuehӀjVG$g؁k[ܳ/٦ՒjL^~u7bwPjLZZLZi˧Yܓ"᰿ɺ՞)qdbrKVUJd~{b'ܽ{Gk8PLn 9[3ܜEtls\7%^;eF&kA{O\eTrpFvh4U|m,L?'1N]AGȾb)mʅj "`.& #w減 1BC #b5qNeyd-N_bI%g:)L"Gss y'Ɇ.neRӉC|e5aI:>_CP1j|酷!}f7dori},zPHykyτJoUbHm ߮5.t4D͊BW ;vDz81d)9ܗ1 $3 E03GHFXű0}4gYg%!Ti)m͍7"vwRx (}N"ٗk*JJ=(r)lTF:xsC} *~ 9b֧t5SHu6c;`I+p>E!͸ML@P6]cւW=a_(!Ag svM2Hi&}a!\naa| eҷȗ1j$lL"h cf },{D?'Hϋ 3@D')~bA%p`vwޕXv$Q( mǐ„G1GLQ<2reAs] W9N$o4E]_YvRA=s]6֫T&0_{}˥!PlsCx)" l/^>B^w"=x]2r!0uʨnj0o=H % Qkc>PX-oZ?9]%3 Senӓ,~3/>}@$-lza\w*H+ Dv.ͣҜ6c- $nN}_Z [ڥ#R9-嬆CӠTn6罇O~Jn^Rd]q:LQeykTrhW;Ű6YutiYk C(H__V;8ސNYOޏW31\/!ĻrZs'Np^c.=v!SkA&XOA;4:`pJ)$'7zGِ*s20>ӌ(k .C-G˄*<" ,3}b*AIϰ˿/zYFs\홠\`FKFw3RX!a5N:4@䚩K"7NƑRIy~*Y-jqˠ+/Kyʛ|צ(lveE* ;3Cogƍ;ñuz+ZCx"M$mQrQ=jy2pFܸ?rՖ-RJj񄉬}蘬,ۘ8["r}8{FM0Ε٫1o#DmǛsN4}st{O% 'b 2w`UCl: =jHvϞ~4p:4eq0*[j"/za^CH&ۑP ]g}Y[&:jdo0vCun;I׷U`Sf[P+0*Su~4x$W@Mj,;fTDײ#CfDG?YCk ZSS-j#>XzRE׋EE6l56SX(]ўYC6-GM cf ؇əOv+ p#zYNngRU> O7X|`pxmD{&nqE9#40]TuD~i+&ZufQUa{tZ [4+tH^E|OcUYvf((j()ۨ}c^m?235:?V@i ^G2rHF+aP5<8rG~2RZF<٧E_ndf3$UalfqD~ˢ| =v^jqQ9i\kUf!vٽ3-q3,NEiɪV鈼_r+(Fo[j-, yrdb ȊAWc0H%C34ʊH8LE'8Z57"'"˙H.xۼae2 #j')t5K/PJݿ,}?-HL?X4Zf5eVuDŽ|lwĸ 21.8Q{cQG1eݩ$nD: fh"/_7@ %iIZe{ Vׯgzsbg.n9i-OA0C3vBG,}PJeqs hLֻEgJ{jѰ1v J{b/42 mp\٪_@m"fx m3g234`ᡮ:StVt4x8h*l Om:ZeCOsYTт<]B YK[Ps[kV/f+oo+,8_w*'Ʉ_N #b!&wO补ڛNjϏao+Ey!lM;aў:{d9@BB^q;!i$/*%Q:Ԇ۠CORwBO2Խ,vF2mG0z`cK3-8oDŽS߀JMysGN;L4A 0ΦeEH5 9{ EέL w?JcO0uImb(M1SݬuIj#IZ>pEBɯut:}~w2cR-6=A+E[/a]\ b$-5ALYF6ZUO-ќ>u(D-F1ʹg܇&|1Z(QHu1Qt!t)ġ\9}g9~_PrJ4:<F[+)V#e5`CϲEI*%/N{7 e2d) ks{΢~QWe%L2C} 0˦N lc"u&2S˟i sC'.aJ|wZqp5UI6AIoӯU/+;9$z[?eX9sxMJD$zL:jX"X_40e#.Ѿ|Só1:LRi g13酪Gi 4sEplʵWTGSGd>- Gۨ\rǂ_kWOq&[hbD@ [4L g pT}Yw!qm,Rv_ jrM ǚO a .Ti C蘸+ T-) ΓHxl; & IGc pT+xhV$8 ܶ9׿⩪@2(rse 7-ۈj$ǨC;ݻxL[nw'#26)BڻMmzMAPaEG67&kzs8N,gPD{ßB't}c~øHe1 =Mk D_}&>Ԍ2?Vv6"E蠆HGhJ-Fo¶vNf&fO M@AMH =@ {ͲxLrcif6Qal@S0VYWtJƋG@~m֌~f-v%!l|*fk88:쵲hS8[nSt4CRStdc;gVƾ.X6>1TQN y8$5:"qQ))RsRBו&8$\ vba;fLt@I*uW+<=5q_FQ=~M? { lSxH¹/>ޚ (=rstMd 5&|5K.g0 ^Zޤ_NrF !}nu*%$ D( Y4hS2!mfTPc[)bNÿ< C8iH6t$$NKԛIavK8 bPeM~9*t 4<7 qma'Ai~nh¾'}g P?OZ:V=>wL LBZ·Yh;Z T8Vf ՆG<.mZ6iÈdd\Zxrpx R`\Q>)$ u}|nhOJyq]W%~2}YT'T]hYE^>zD*'چ~]B g^GLbxYPnI-v !< >޲[f<3~;_;&跫~֫$}g dk9˻DځW9uTRC҆DUv#y2}xL}ar#;_!2MM3dTRa*b{\Kg?MlSn=0y)[w{2 Y.R*[%/S c Μθ?\ЋE,UQk+hB͸KpoIR|n^69[nF`jw_N+^'e9Yof91BJT8Tb81 ܶ)aHE6I{gu46.M\ońȶa .w>4ϥ0c7)'ca6+ZBq^cJUyo=(N5?`# ؉}ee\JGD2⭄.n; 8PU#0o.+qjɝde)*TP=" 煯#OV!J< Ϊ%@$EW聊 X8n!-jß .$Wavcpl69!j%ЦK'$gwK<:k\ }xi<܈)aw'FH[?$$猴vv[FRnJu1!s ZvU VnEdfȇ? ׸'[; (T~ I3-`Jo߈b֤}W}zq3hJA^$0iJ$WPDЊɯmDs;TX0{n="# (K RUe9;ip$眣"n,/DLcmw~})*lBd\il-{e{Kj Fh`HL>˃G"_E Vv ,NKϐW:Dg*EA7EؗDzTsGLLEt%=vfDAO hxvvKi)svѶVc057eCf\q7N<z.*򣊇,Pb ֏5]\1Y(ai>w|;k"Ύl(~ۉx9{rb:]O?r4xC]K)IS_j$Q5a">śyԠuwmuENMራ`IPw`RP{D.٭eÛ-f)~apwk: T/vyp; 7%^qo˩ qvmDf*!>ř<+Np(T(S `P"/c;ҨPMf+wudžTUoDOFD+8Ze뎬("9%윒:NP0ܓ9ZӿSյm2cQc4kU^p Y}|~8&TYFKhI3}K9gjyls 0Z8ѡ<8vz( DOHyn}An1EJ,1UF%PMDs]Q/ѯ4χI8Y婞'Ǩs nJ>wavĐ%. 2Ɣ !ݱiDbS@"/Grb=U R_JZD. Du˜me)=XBd:ł~##߄WVQzgzR[`$ $uhdcyFh=b#]>[u'_KQ0/NHoo0@tw7D?bsݨܑu1ˬ[I(4$_Y^Y;"fa27^6fy |8g~n \{^FD|M1'")c6L72~7 خ41j4]N5oᗆ筋jݻx,ư(XKrʂ d`|@IooN5^g2(*oZS'cȞrz_ BǴ0]s%bЋ)M3)6ֵ R}J`ЀNatvYriDId}Ng%cH`w$OQ iyk ?&⺢Lp ن ʲWgd Ks.,C*b1Ɋ%(o_^@~PlU;ER;?|yiTl\ ˰+y)c_F:b.wq?{E7 8If-|V7jLR)7Zz9Coy[*doV6ٍ> stream xڭvUT]ۖ-ظظ܂;5suݪX9}HsEI(lfosadebh*]mfNJJQ' NĀ66/_(N K-==ÿ,L<|D:,Tn@{[8PX  @TQI[ZA@#>Pr5@@;g - ` WkL\ct7:1N go`dl1{>da});8:\Y$Q_A0>h>Pc3W. `c w ;UpZ;?h>οlr|!0U,:s:= Gfv639GJLe;$?D:66 ƶcr.q7xw G*@ WcA/lg&XA w`nl1vf@'Cӿ `dea7Ldjm9.YUNIUIޫ)}$fEDq>V&DZ8,L,,?Fblgl@;ayޔ7*-3ݥ7wh\Lr(ء^ھ7-lKkM0S${±۞ H uw <ț}3~A rfż&WONp~n~X(>uh `'TCWн{9Ƹ>ǤI.FNn',^#+eu\nK*_J|Oh9IԐ=m5&[EaU񦻤VivLSҳh?#@n $j}oz1 TM'@׺QNDĺvuI%wu&\D"Er7Ǹe]ǽ bkvG;U!gg[~ZQYa-LvW)Z*Ձ W]x"t<*A hF?fv&LF\sl4.ذuA0ܚU TɘuZF}__9HtS׎{>:ɢHlоQ'Bz5K:W74!zEo~X`լoEF=m:u XgT =m'\L o=bm0{ҠƢ5X ]f"̰#Pprz"8z/-fO4D0#S^c3u'~RIAPНm,fǁPsxs=k#,ϼD2Q$we_&'(x:b{W5)sYab040W n\+KWJmx@m]${dI!J N5`?Rk+j}=D(%Zińn-V #e@]X-bzBo SbU,>r>vԕ%,:  ,Nw} {Z-;<RUwJPw3:t5yf"7ܲn2J~]_?'G3|:[Qi`|yLx۝WaE:9Q&H<݈9<Ӆh/%񳺎Ϊ`?< ~g/ vϼƓD_S ¨wģ͊UC ^3HEu˃Z&D%9Y8l8.D-WzfV F)Gax@)l}nTko9xN W B^ Rgj {6Hۍ҄. mfTzγ'Z_a:A@&7*e$C 9RMCGO&oav?͂^q޿Y[ ;p.Qbu-C-AIͷ[aJCwNsIf?o!8(+=:iWO[uJxO{Zj}^[g7áJ~;z|˅d^"Nt0'и@:1%nuZeF )w13 [n7laWt2r:FWvPr܅)49xWg bZ\oYsEϨJJ:1s?UÊ=NgԗZ[LgPEW|eRIX֣%,v9e ErsA$m̶|7pA6 |ync^m>zl/[[y tT"k01ZAbi6#Tyq Hh-rms]3ZRu*W'I-B~] V z_Dw+U=$ P-60G"#6zNJOwՈ4ʮ>rL ݳ,Ÿ"irypB[! 7Z/T00r XZM ꠗ?YnDY8,0Bj]_,]L/ziL®re.O՜G2mW_$ĞԷ3wVt: tDf g:L~"6=TZh Ĕ:{/{J|{ArE4YEN{a ;np>wtF,7mHh%.i3\DI46%UcY<LR>?*LB|[CUB16=5/OUG 韔&r> g=^OTI$n;Mĵ/cs)j <'1 )(>GNFgts";kѤw!G:W ֥i ;q~3%U%8939'd])i[OZa4? {xk\6`nZ:qp,tFQ?JZ3 u MQ 3KaS/V$^ 'X/ujHب12uRe%ۅa!G Iv K'&M9kMŋ"63!?mM~)zHנhhρ)oT?7lE]2,96*bn6Of:S(aN1~u0# d57?^qDW?,>eNܞpnA@<QޣXWLW67(ū)şh[D/G\)#GW23.p߉k~lF36V9F!qf ؑ *K%!w.SH˺0 { `,$]ty7n-K:ha_PJd/!K]:Գ> 2'Wy.z7lSTc:Ycx,KLzZ0|g:?RiIO]PEat:,8s%vfQRn?1kΔӇ+8MGa&C+&anBHn[)9J6ˇVHOQ@06/T| !F#`M΁鄟% >yI߼AM.ޱQ~~FZ|%!?5`VW찫2$j{;їFf}%鬀jhM4Y\&7jh5<qk$w])%;?1[mDqҰo̠oh&1jCmL`y"Z]/˞dVԼÃ<,aZ1U\V2\K1͵B[|{!(cG &oM12hgiʳBHR 3gU FZC| z&~o+uV (2$%ta0E&]RO ߺYD̷NdBx3NeO+5s$Մ |72 V"BP2|k MV.'jO/,҅?dcj`T߈fwqӂս=O0lk3tU.sv“9vq9 zm,]'Goȧeᲁtlѭ QiMAHҀXa*g_Sv~C`M6/Q'i63tg-a<%/xS=h19d0ۏ^YjUmX↸Bځa3WPOaYu)\ym> 7!& J/HNkŕ̼?3Q O>1?4r %+c(hP1.XfО.l`}>P[o5:Tlΐ{le7A]~p/jg4*+"m' a:NըYݯ}QIsUt1b `z~lx ـ_%>*u2g(";W iUkjM Tg]#_v%ѩ+S-E5kvGӞ%J \ '3 |Pڄ;Q% ~7z}#IpW~'kD!J,%hU"P+"h좙f`BogK407`%/< oΑO[.EԸQF|1L@ȧ1Gm"^iS]">O /h~߬`W_5`y+=X1K\*:#>eHmIc9c<~3޿zNӡܷqҒ 5.EԶKޅ;"PNF|۹}`2J) KX/1}$Z(wG>5~H ?WaeCsL]Bdk:lnpSGIjjtɤ˙@r )siJ?Ђ~] Q`[yY1zXKbBOA`~|'Fbk? x!tl3nDp$iEׄ<{^:yG}97d?ɶ LV{㏒^ub\=KtJYKhhI=ͽdCӹ{uYt%aJ.'74̝?63{`MJҞkބCNQ 'N"#a5|gjJ ЃRBkvz"DsҪךJaa.}1zrڡ!k^K~c'?5+ h CINlP;5n>Fͣ`1y'?/LT0o7Gqjj2BD¡PfʒWi鳾\Cfꄳ Aצ)BI5Iw0 \^_Clyk@:x冚=U]tiKzQYqwrTe32?x'j*҃F>Vk|䛻.a b]Hh0e.w*O}[`iu - ~:Y>Q1󈵶LૃvAr6j`iשrjI|fs~BJSta^ItxKļp1JqQI0׸*QFR c')R+U?G tnGvy %\јa^LKF M]m\#5:m8Q˖{m/D:c,ؚXr,?ɩL3gVښ*J,=oܤgi6³\1 7cI{NC4D!)b%׾i-"Bh2FNFk)TYaCa;ŹXqb:r洣]xǵ#Y"wOM+:)F&ùغT!I~s68 }7MqPOk ,wEa +d|r2f=ظ%B.3ˏ!:vD21xlhuq`cVj.I gΥqBdXH{Uǹ^53׎?2n'~u_kH]w>jwlhu74 ^E:*PD6%h>ٽ)rr |D0 _;Υ̵<MJǘVs{uMNwcمʫ r]!AO:4݆ȥm̂8#/i,퍧8+9K48 ,FGyLe%(x#cB~&@͝.@ cWIuqhZ{^Kuֈ>_+q#3N!@ EPVe⹣}LE>Ȟw4lHIKf+]i,gJRz ݆̃5ﶓSyd3y|N馾.6x0_~'u2*^?|VMlUi{gz,betW<&sd6ydg֑z|#Ssto{2/U:Nu [^ϱts<Ɯ˲!.0OV9Po^Y͍gv _i `_K~M#L E6c3'Ck B;s,u/B9zm-P-V Z4ij'LÓ:XtLn{iYU Z,\p   axfB #fi}lI-#Ml4@'/hڋ(ǀa]lwn0$6p!]^$>T!xL(p ]i9(XQ 'pn ^j/K#AXUR(΢u!AJ,0*XV7eITtYH)э䯜VVĢW.uGLXҵ-1Q诶0^Oy1'iW>Z!.X;VАP WobM}kA\aQdiKuyK \at6Yq_v h71ܤFG)8-E*{5aeX\`q\k[ ߸ O{,G?O%$c(ϯ?~: 6怙SikLmæMi;hZBxdѦ<( n%;+ N<ھg#Q'wUU8|nDWf9p9 lyHٗG-Ob/m7[p sZs3ɐM"E9Gg鱯f$=<ӜX݈1l͍Z fyR/);$cI6Ƈϐ Z5Sh"dRƊ]BDZT0‚mΪ.w s p0hw\L3 WА1.N)m[gH+뷩a[(QTIDz >CZ0LDLT7]#&66D/iW¡i9@s7v* w ȓ"aJ6ao*D2,ZNj |;Gs[ĦZ+0U?x1@Tk~7U |";t~_$BW$ w@L) 3og/\ &+y q)o\*}NL$)Tp`QbOשI#Q~s1Q r-LG4VJuoe=]J{0I;‚OQVs9|8NȩP Ŭ.N|Y\|ԂpNz Bn$䈬c`Qښ#ݯIIΚe:Gr?&)ivsA8s٨PF+/kPk-40gT?#Ѫo01$AnH[CmZ`T7^ЭBץn򙏥h0]mQ3&F񗃢!*PmFNYX3̏XנG{g s,vV]#O n6U.-akTt"D<+l@ݐ]д1Š8"~1gsjv2y6 lAIOiAO;w5BR3| "τ E3&_WW)H9*IvK=M0X( :11>8/!'(ۜ+l0#xpT΂o>zԨ=Ԟj'}1&+J (yk Z'܂~O0z97(%HSSFyZoKHϽ25YGV$h\[_eǒ7 ȩnXqV|o:فjL6ч5DofKʷ]põlYd5Մ9a qa=БEmVdvq>k#&"H'koǎb*kӧI9 @a?ß-wwvhCŻ[$isr=3OY"lo V/02Y"MpU-; 0 Y4іKeu| fD3So[l lH Z e#Q SbcӰD\|Dƫ5Z rq /gV2斤$f4]kdΑnpziJ%4g7TW2P6kd^||%;)-#~Lp cC"srW΍LBPz.ALBɴ;O?s ڇRi,⤢+nvM}fGB*4';_H3VAX8Ny/׉6qY[oU\Nb[0M ;)2!:twLb÷H,g.e!$)87jKܮ3e&ţ88-qאLhY7o r&iHy>UH6gV#abk2p~ٵB_;I\Å9:ilJv*"&Lÿ(ar]5hfFaLd"yv:\و<Q0ӫGZS ɾ\ endstream endobj 209 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.16)/Keywords() /CreationDate (D:20150903092154+09'00') /ModDate (D:20150903092154+09'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1) >> endobj 152 0 obj << /Type /ObjStm /N 82 /First 710 /Length 3409 /Filter /FlateDecode >> stream xZ[SF~WI սE Lpc/]Ѭg)[%DyvQ]N6? &C2smL+G2s׋_|ɪ󬜝9y`8sog[Dד*ap{)LZ2:EVKyeiŶYN74'dsS ISS1Yyz\~]|I?b?bZ1< i1-v(ƣ+fА2x QttR#Ĝ˨ ?%s^}iGB`ì퇝a|E&YD Ѽ*f|TETNI9g@?bC&|UN @vEOiSU>|2_KɯrV ʿvA{!گ>NC_D<֏G0+1Q!A>z?9zw8LFgrݼ Ӣ9m§w跽V*Dx#>^O&E-z W^}-Zزyޚ뺬x7wk^k3l\̊xB7 k9>8<>|7Ȕª{Ap֥Mp޷MjyĒdIް%Ol<=O~|@lӴ-t:bGЫ!LHSX %No$XZL}$AH-KhAԮZoi:) l.M_U mA;D.& Y0&A͋s]nkx6@!mQsAeǯNuWLnء&uC*Ѽi)?Ug+7Cgrڍл0.䫼CxfW4-ȡojk!\ec1t&C|g½5[kvr:ɇpmZ6tt+š;kz6X 3,$G.v^Y-I++OG=6Uq-I\p FH}ؼ`[SVkX,W߼Ik&>e>- q6sb٦5gg2+biB;Ҹ#_ҋ>HI_-*uڄLVcTMtލ4kF$@#@b5˼QʭQ­:Z&TKR: _(R2YWoo\f3~:赛 X^r\ \ɞ }>]a \{U"?m CSӉ*3L.W8^qCԌ s@Sa'ա1;aGOs^cRK>h]7Zf J,yF2–<ߨI]H*QDV-TŋoE+;F|{89{x2{ش='ϫbZlS˿Q endstream endobj 210 0 obj << /Type /XRef /Index [0 211] /Size 211 /W [1 3 1] /Root 208 0 R /Info 209 0 R /ID [<398D9C4D438AD8A33B4B57BF59798EC4> <398D9C4D438AD8A33B4B57BF59798EC4>] /Length 506 /Filter /FlateDecode >> stream x%KWa~Q$O:ӉHQ9 rZ,SYO`d`4nr~>~}GD+"K T`5v͡:uT=؋ ]6F,*v؏]6f Њp6p{\ƶ#,PE kLa('9:7NcPgyl/8' `_  ` 8Q|{ .\~13~vû f3ˮ2xѐܐgE/rBFi[Qep.G Xz:x 6ӌ/.</+b+yFgb_&2}u%r0;WI='-c/$&##c $G TK7EAF$Bl cU5T3,[ g~[d~ +$/!xȴ2̿o?g% endstream endobj startxref 119921 %%EOF tex-common-6.04ubuntu1/doc/Debian-TeX-Policy.sgml0000664000000000000000000005270712607350221016524 0ustar The Debian TeX sub-policy The Debian TeX mailing list debian-tex-maint@lists.debian.org 2015-09-03 (incomplete) This document provides a set of rules for the packaging of applications, fonts and input files related to TeX within the Debian GNU/Linux distribution. Copyright © 2004-2015 Frank Kster, Richard Lewis, Norbert Preining, Ralf Stubner, Florent Rougon

This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

A copy of the GNU General Public License is available as in the Debian distribution or on the World Wide Web at . You can also obtain it by writing to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.

About this document

This document provides a set of rules for the packaging of applications, fonts and input files related to TeX within the Debian GNU/Linux distribution. It is still a in a draft state -- some things might not yet be fully implemented, and others are advisable, but not strictly necessary. If in doubt, please ask on debian-tex-maint@lists.debian.org.

The latest copy of this document can be found in the Debian-TeX-Policy files in the tex-common package. Terms and Definitions

The following terms are used in this document:

TeX-related package Any Debian package that uses or provides parts of the TeX infrastructure, i.e. the TeX or Metafont program or derivatives thereof, fonts or input files in a TEXMF tree, etc. tex-common

This package provides basic infrastructure and some configuration files for all TeX-related packages, including the configuration update programs.

Basic TeX packages

A Basic TeX package is a Debian package that provides the basic infrastructure for TeX-related programs. It should provide sufficient functionality for typesetting most generated (La)TeX code, e.g. from docbook, debiandoc, or texinfo sources. Usually, the Basic TeX packages will be divided into an architecture-dependent and an architecture-independent package.

The arch-dependent package must provide at least one binary that is fully compatible with Donald E. Knuth's original TeX program, and it should provide the original TeX itself. The output formats dvi, PostScript and Adobe PDF must be available, either directly or by conversion of other output formats. The arch-independent package must provide at least the files necessary to create the formats for plain TeX and LaTeX and the input files required by the LaTeX distribution, as well as the Computer Modern fonts.

TDS

The TeX Directory Structure, which describes file placement for TeX input files. The current version of the TDS is installed with this document as and . The latest version of the TDS is available at .

TEXMF tree

One directory tree, arranged according to the TDS TeX input file

A file that is meant to be used by a TeX-related program; technically any file that can be found by the /kpathsea/kpse library. This includes e.g. Type1 font files. configuration update programs

The configuration information from files provided by different TeX-related packages must be merged and made available in appropriate form to the various programs. This is usually done by scripts that write files into the TEXMFSYSVAR tree.

Currently, the configuration update programs provided by tex-common are: update-texmf, update-fmtutil, update-language, update-updmap.

TeX packages for the impatient

A package that only installs TeX input files, e.g. a new LaTeX package, should install them in the TEXMFDEBIAN tree (/usr/share/texmf/) at the place indicated by the TDS, see and , and register them in the maintainer scripts, usually by calling dh_installtex in debian/rules Packages that add fonts, hyphenation patterns or formats, or want to change the basic configuration in texmf.cnf, need to follow the rules in in addition to that.

Meta-packages and dependencies

The TeX Live collection of basic and add-on TeX packages provides some meta-packages for the convenience of users.

Depending on the texlive-* metapackages is only acceptable for editors, IDEs and other tools which handle user-generated code. TeX add-on packages, as well as automated input generators etc., must instead depend on a list of individual texlive packages which are actually used. This is, for example, required to be able to adapt dependencies of metapackages according to the users' needs.

File Placement

This chapter describes the placement of TeX input files, so that they can be found by programs. Files that are not input files for TeX or related programs must not be put in a TEXMF tree (put them into /usr/share/package instead). As an exception, documentation files in plain text may be used inside a TEXMF tree, e.g. to explain the purpose of an otherwise empty directory.

File searching and libkpathsea / libkpse

File locations must follow the TeX Directory Structure, TDS. The TDS specification is available as and , and the latest version of the TDS is available at . It is a bug if a package only conforms to an outdated TDS version. It is a more severe bug, however, if it conforms to the current TDS version but does not make sure to depend on an appropriately recent version of the Basic TeX packages or tex-common (that supports this TDS version).

The Basic TeX packages must provide a mechanism for searching through TEXMF trees that allows different files to be found depending on the invoking program and the specified file format. The only existing implementation is the libkpathsea library. Unfortunately, it was not originally designed for use as a dynamic shared library. A rewrite is under way to create a libkpse library with proper API specification and ABI compatibility. For the time being, the Basic TeX packages can provide a shared library, and program maintainers can decide to use it, or to link statically against their own copy of the code.

For use in scripts, the Basic TeX packages provide the utilities kpsewhich, kpsepath, kpsexpand, and kpsestat.

Directory trees

The following TEXMF trees are defined, as outlined below: /usr/share/texlive/texmf-dist/, referenced as TEXMFDIST /usr/local/share/texmf/, referenced as TEXMFLOCAL /usr/share/texlive/texmf/, referenced as TEXMFMAIN /usr/share/texmf/, referenced as TEXMFDEBIAN /var/lib/texmf/, referenced as TEXMFSYSVAR /etc/texmf/, referenced as TEXMFSYSCONFIG Any directories listed in the TEXMFHOME configuration variable in texmf.cnf or as an environment variable, optionally user-specific directories for configuration files (TEXMFCONFIG) and generated files (TEXMFVAR) The search order is from bottom up (files in TEXMFHOME taking precedence over files in TEXMFMAIN) etc.

The role of the trees TEXMFMAIN and TEXMFDIST in Debian parallels the usage in upstream TeX Live. Upstream uses TEXMFMAIN for the files that have to match the binary executables and TEXMFDIST for other TeX input files that are replaced when a new texmf tarball appears; TEXMFDEBIAN is an additional tree where TeX add-on packages can put their files.

Debian packages generally install files in TEXMFDEBIAN, and may ship or create empty directories in the other trees, in accordance with Debian Policy. Configuration file handling in TEXMFSYSCONFIG is described below in . Packages should take care to ignore TEXMFHOME in their maintainer scripts.

Generated files

Generated files should be created below TEXMFSYSVAR (or the user-specific variable directories, TEXMFVAR), with the subdirectory structure conforming to the TDS. Generated font files will either be created in each user's TEXMFVAR tree, or in the VARTEXFONTS treePer default, this tree is located in the world-writeable directory /tmp/texfonts/, in order to allow automatic package builds to work without user directories. On multi user systems, the admin might want to change this to a persistent directory and set up proper permissions

An exception is the generated file /etc/texmf/web2c/texmf.cnf. Local administrators should not edit this file, as manual changes will be overwritten later on. Instead, configuration file snippets in /etc/texmf/texmf.d must be used.

Filenames and installation of alternative files

Packages may not install files with the same name as a file already installed in a TEXMF tree, unless both files are in subdirectories where they will only be found by different applications, as determined by the --progname or --format switches to kpsewhich.

There are two exception to this rule: Basic TeX packages install their files into their TEXMFDIST directory and will usually contain files that are also in other basic TeX packages.

Packages that need newer versions of a file than already supplied by a basic TeX package and installed in TEXMFDIST can place them into TEXMFDEBIAN. Thus, the outdated file will be shadowed, and the new one is in effect.

The maintainer of the basic TeX package should be made aware of the problem A wishlist bug on the shadowing package, blocked by an other wishlist bug on the basic TeX package, can help tracking these issues. The package maintainer must make sure to follow new releases of the basic TeX packages and not continue shadowing a file that is newer than the version provided by the shadowing package.

The package must make sure that the newer version is backward-compatible, meaning it must not break compilation of any TeX document, and it should not change the output file. A change of the output file may be acceptable if an obviously buggy behavior is corrected, and if it had previously not been possible to easily fix this behavior in user's documents (or if the updated package and a possible fix in the document combined lead to a correct document).

Installing more than two versions of a file will most likely lead to confusion. Therefore, the possibility to shadow a file once should be enough, and the usage of dpkg-divert is discouraged.

It is also discouraged to use a file other than from the canonical source for that file, usually the CTAN network.

Documentation

Packages should make documentation available to texdoc. This can be done be either installing the files below /usr/share/texmf/doc, or by providing symlinks from subdirectories of that location to the actual documentation files. To allow partial parallel installation of different basic TeX packages, these always install their documentation files into /usr/share/doc/packagename and put symlinks into their respective TEXMFDIST.

Note that the previous location /usr/share/doc/texmf is obsolete and should not be used. Files installed there will not be found by texdoc.

The entry points for documentation should have names that indicate what they document. Names like manual.pdf or index.html should be avoided, even if the directory name is unmistakable This allows users to say texdoc packagename directly. Otherwise they will first have to find the right command line (e.g. texdoc packagename/user.dvi) using texdoc -s keyword .

Configuration Configuration files

Files that are used to modify the behavior of executables must be treated as any other configuration file in a Debian package. However, files that are used to control the typeset output - the appearance of documents - need not be treated as configuration files. It is up to the maintainer of the package to decide which files make sense to be used for site-wide (as opposed to per-project or per-document) customization.

A typical case for a site-wide configuration file is a file that must be changed if a style file should use additional modules (installed, for example, into TEXMFLOCAL). Options that only control document output are rather used for a particular document or documentation project and should usually not be installed as a configuration file.

Note that /etc/texmf/ is a usual TDS tree. Files can be put into appropriate TDS-conforming subdirectories (e.g. /etc/texmf/fonts/map/), but directories not specified in TDS (or added Debian-specifically in tex-common's files in /etc/texmf/texmf.d/) are generally not searched for TeX input files and can be used by packages for configuration files that are not TeX input files (e.g. the files in subdirectories fmt.d or hyphen.d).

Configuration update programs

Configuration files in the TeX world come in two classes: stackable and unstackable. The first class means that the respective programs read all configuration files found, while in the later case only the top or first configuration file is used.

Stackable configuration files in TeX are TEXMFTREE/web2c/texmf.cnf (central configuration for TeX applications), TEXMFTREE/web2c/updmap.cfg (font configuration), and TEXMFTREE/web2c/fmtutil.cnf (for format definitions). Unstackable configuration files are TEXMFTREE/tex/generic/config/language.dat (language support/hyphenation patterns for latex based formats), TEXMFTREE/tex/generic/config/language.def (the same for etex based formats), and TEXMFTREE/tex/generic/config/language.dat.lua (the same for luatex based formats).

In Debian, by default the respective configuration files of the following trees are used: For texmf.cnf: TEXMFDEBIAN (the texmf.cnf file is a link to the one in TEXMFMAIN). For updmap.cfg:TEXMFDIST, TEXMFDEBIAN. For updmap.cfg:TEXMFDIST, TEXMFDEBIAN. For the unstackable configuration files the respective copies in TEXMFSYSVAR are used.

The stackable configuration files are either static (texmf.cnf) or generated automatically in the background without any need for configuration, since changes can be included in a higher order configuration file.

The non stackable configuration files plus the file /etc/texmf/web2c/texmf.cnf are generated by configuration update programs from configuration files in subdirectories of /etc/texmf. For all of them this is the only method of configuration.

Packages are free to add configuration items to the common configuration files, but they should not try to override configuration items that are supplied by other packages. Rather, shared configuration items should be supplied by the Basic TeX packages or any other package on which all involved packages depend, with a setting appropriate for all. If this is impractical, the involved packages must at least agree on the way different packages override other's settings Note that in texmf.cnf, as well as in the sequence of multiple texmf.cnf files that are read, earlier entries override later ones. .

The configuration update programs should be called without any options to allow for internal changes, e.g. of the directories where the generated files are placed.

All package configuration related to TeX files can be done using tex-common's trigger mechanism. That means that packages that changed updmap.cfg (via update-updmap) must either call update-texmf-config map which will pass the configuration work to tex-common, or call updmap-sys.

In a similar way, packages that changed language.dat or fmtutil.cnf must either call update-texmf-config hyphen (for language.dat) or update-texmf-config format (for fmtutil.cnf), which will pass the configuration work to tex-common, or call fmtutil-sys (see below).

The recommended way to implement the configuration scheme necessary is to use the debhelper program dh_installtex provided by tex-common. See for usage details.

tex-common-6.04ubuntu1/doc/Makefile0000664000000000000000000000450312607350221014152 0ustar DESTDIR = /usr/share/doc/tex-common TDS_VERSION = 1.1 CLEANFILES = Debian-TeX-Policy.txt Debian-TeX-Policy.html Debian-TeX-Policy.tpt TeX-on-Debian.txt TeX-on-Debian.html TeX-on-Debian.tpt all: policy-txt policy-html policy-pdf tex-on-debian-txt tex-on-debian-html tex-on-debian-pdf policy-txt: Debian-TeX-Policy.txt policy-pdf: Debian-TeX-Policy.pdf policy-html: Debian-TeX-Policy.html Debian-TeX-Policy.txt: Debian-TeX-Policy.sgml version.ent debiandoc2text Debian-TeX-Policy.sgml Debian-TeX-Policy.html: Debian-TeX-Policy.sgml version.ent -rm -r $@ debiandoc2html Debian-TeX-Policy.sgml Debian-TeX-Policy.pdf: Debian-TeX-Policy.sgml version.ent texify-tex-output debiandoc2latexpdf -s ./texify-tex-output Debian-TeX-Policy.sgml tex-on-debian-txt: TeX-on-Debian.txt tex-on-debian-html: TeX-on-Debian.html tex-on-debian-pdf: TeX-on-Debian.pdf TeX-on-Debian.txt: TeX-on-Debian.sgml debiandoc2text TeX-on-Debian.sgml TeX-on-Debian.html: TeX-on-Debian.sgml debiandoc2html TeX-on-Debian.sgml TeX-on-Debian.pdf: TeX-on-Debian.sgml texify-tex-output debiandoc2latexpdf -s ./texify-tex-output TeX-on-Debian.sgml get-tds: wget ftp://www.tug.org/tex/tds.tar.gz tar -xzf tds.tar.gz rm tds.tar.gz tds-all: cd tds-$(TDS_VERSION); make tds.pdf cd tds-$(TDS_VERSION); make tds.dvi cd tds-$(TDS_VERSION); make tds.html install: install -d $(DESTDIR) cp Debian-TeX-Policy.txt $(DESTDIR)/ cp Debian-TeX-Policy.pdf $(DESTDIR)/ cp -R Debian-TeX-Policy.html $(DESTDIR)/ cp TeX-on-Debian.txt $(DESTDIR)/ cp TeX-on-Debian.pdf $(DESTDIR)/ cp -R TeX-on-Debian.html $(DESTDIR)/ ln -s TeX-on-Debian.txt $(DESTDIR)/README.Debian.txt ln -s TeX-on-Debian.pdf $(DESTDIR)/README.Debian.pdf # replace the link with a redirect html document, so that # the links within the file actually work cp README.Debian.html $(DESTDIR)/ #ln -s TeX-on-Debian.html/index.html $(DESTDIR)/README.Debian.html cp obsolete-tex-files.txt $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.pdf $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.dvi $(DESTDIR)/ cp tds-$(TDS_VERSION)/tds.html $(DESTDIR)/ clean: tds-clean -rm -r $(CLEANFILES) tds-clean: -rm tds-$(TDS_VERSION)/tds.texi* allclean: clean -rm Debian-TeX-Policy.pdf -rm TeX-on-Debian.pdf .PHONY: all install clean allclean \ policy-txt policy-html policy-pdf \ tex-on-debian-txt tex-on-debian-html tex-on-debian-pdf tex-common-6.04ubuntu1/doc/README.Debian.html0000664000000000000000000000051412607350221015514 0ustar README.Debian for texlive

This page has moved; if your browser doesn't automatically redirect to its new location, click here.

tex-common-6.04ubuntu1/doc/TeX-on-Debian.pdf0000664000000000000000000042103512607350221015502 0ustar %PDF-1.5 % 101 0 obj << /Length 622 /Filter /FlateDecode >> stream xڍSM0WRm XRCV@IPG|DC(ԓg{͛7E_ws"E\$MʎHH"B 4MQVsST/"\Ѡjk򡲭_7$4#1+2=M7*ŸK^OwNd#Z)b!)ѱDDnv6>&k"$rA+tfU]'~pk Rh 8|bɃK{ @]vnXOө=8D:e)L5}VmaKm'#&T! V}O~b. 0z8K>Ċؘv^M7lwrg*/W1Xd{CWC"[$%+XDxmZ:yw:9޺jƔ7+1# y?5mpvv|,Q7i7f ! ΦWx-;@?ob#$(dD9K1M"ln:4c[.<4з JD/[W\RÐQxa8I~D9LƎhÀ5"@,a=ej endstream endobj 114 0 obj << /Length 950 /Filter /FlateDecode >> stream xڕUKo6WF40 ZQ+"(/ߗ!eӼ87C<=K?n44H)*8_m{^To=Y\LHIx?"7E꿳f!MTl w.fAFQTI:>铄ϽU-3NU'[} *3y=+Znӡ uFˆg{B<4̚&; ۔d~GHjZ=_tw-*˰tBԱ/1-qiUk:snQa-׶OIFm#6:،UWa_46MVi.ia@/L'̩ą@6gRv4ud4YC\B0ɓmL|!ƿ:1Oe;W8[" {aQpupoUPT%$`Pޞ;}\pu& 驅ZƣX&1c,8V8^q|y]/@l\LoN_5<!+4K _r;i-N-1:;(^jLt)&t93dBADA-}.]4w/M-: +E7 Eá4KkX"`>S,_'L>Xa^bmj J9ןa2'UhξS *H4. )8 s CU(N- !zH MaC$+|Y'A"'8i >>#(if^W:H+ؗwZaXV#¥~Q } nr6oUrZ>?86JHd ߟ::iw^Q{ endstream endobj 145 0 obj << /Length 1351 /Filter /FlateDecode >> stream xZ[sF~W:v}괮LMӆL=AF h E—߃ bNLqˋ%|߹OLyiIzBr$S#u;=Q"ʴ7v`/y1bL#Jv}[sQVI˭$7I'(7ReR||1vk深Tn:,ؔ7pW82|pn؉j?u> Van|6Q}żgh18MޔO&Lp`C]h%Q}T$ig#ҌٳB-Ǐ=Ma< o`[dߖ)W^*{*VQ],^c7^dfnITdYna48A!;^!3`Ŷ%TJJ}=p5a@@i$75~=@F11p[2|0}J|lF;F2 t aڅM/Ėzp0^vfpr2 Fy;`?)[Fu667q4zea¸Fl5}.BUR2l՞le9[/i0R*G,),ENlIji)ͯi$UV's%N2F]^A8:!uݛgJY(E \fyGj9]?rrLy}OIh!3/i^Oè]Q.xbShnNԶ,'բxp5-u%q DUm^d +DKİ򞯢h\ ,'E/Vz=,e8z@&_\$=KJ[cr iG 4CE&M>1s0w3ObD@N0_ j{afbY_,דA_w_ |?9g^ endstream endobj 150 0 obj << /Length 133 /Filter /FlateDecode >> stream x]N @+4ͺMVBdʠLa{ `5ü3'H٪(Ekawtt͸R͛UEeoCY-0 ޒKK=]I $ endstream endobj 154 0 obj << /Length 1327 /Filter /FlateDecode >> stream xڽWM6WVofHJE}(@˴MDڍ}ҖZoCNpfFF.~[/^ "ZTp"ʩ z_뷋}4bIX1Nx\Dq#6$.I4.0,G!ASAFuw+Rw%$3fwh$+P=h~A᠕'W=*xzXh6Z8^}Q,ъ8(-$$]mOvw,_9vjrP6 &.tNȊܭbF/xctFfb/ѫ7i1 rCH^xR{e1#3 `֝K?쬟V*7 Q)#7!q<&M[([Ф 46EXby^dUGDž8! #2 <…g F$`'LSM?tm#πYI QgH}ԵgS3<X֞V:y8 Rlv ~$y tہ~A8sݞ'Ǎ0v4 8i C,B">-[MS:*KnȕX+Hc[Vgڰ \1A"!'Y 5SϽ @WD֝] /Z ^GCO@2b0l: u&=*Z=<0S9L 3F b>s8+م>j.УfqguC͢MHjbzVr8#)OPDF4^V7m] MB*PŒCyvF%sluA}Qĵveb<պHsjrnGd}n3fmi$'|ܬMf> stream x]A @+昇qVZT%U$3ѿA͛=94j L $8SAڵE?!XsL=O=zh+M #׸{#"tAkedDTn e42;y8 >7b2 endstream endobj 161 0 obj << /Length 2201 /Filter /FlateDecode >> stream xڵYYs6~V5A7gƓ85G%Je+I$$LHK$gfb _w8ZE8[%h +),&]tG3-=E"I?:6zw9'ψïbH*U8sb/(W\O>ͪwjKS*oo4]6)1p`p A<Ϯ/%=H`#RD! -\"0iNڋ ޅ}~ ƔnLtgt;9hN@%TpTգ΋GK@K)N;\jaO}v,mCsA)|駉Ynjʓ; /:Xu50>a}7[L*2{\d00.Uf(1JxAv&Su9Mk*z }V LE2g e7Wџ79xҬ&by wUe-B7:3֗Ig;\9~1\J6 <_!McbEht92P'MuU&/n@6vߌ@ xVG?DD p>x@%PKzsj-ބqeCL?kivx6̄}2OtUfvٕn20@6?>W}^`E:raNY1o-]wk}Nxy iwWY6ۭtv;~߫s;%n:ۤ>G0zMIko ?-HI{5 |{at7i b(40acJoO^(K[hO:Dh@,&?ܧXɊœ?cצjwLwF\b;>)WwJ ;iLc`[aڬvgi‚.'r[qZ{ D%->OM,ۦ#TEɥm;c1hĝQK18+8]c7.;xe:Aaǝt.Oƅ!on?-N2E3̡jz)GK}6O?M뭆?e;0чwnb,=f[>k#y9rP|l DB$ }Ƥy [u۲Op&`j_)|1[ۖI ~_Q}zygMp`$(F! W^FoNkɡ!_Ku7탌J%CDAoERG?U*WK¼N`:wovꙍ3ٸoy0O"[%죋:4 iq/QncJ lSZw0ȪSpڛ}e9j=cBpN~`'ZYHhPVNU5q;-SZpz4 `J5T87X rS!CO( B9lÑR &KqpPVvE˝[6>۲&׾͗XєP#!}0$lb7!8|\Ș|xc{^Iܶ~H(A}")B ;aO(;soMr:!̘$FN"ƝpMoL1%@]I`(fFФ!Ջ0NkK4)+y%AYȔy(±zHF0p{ы au 6H8e<31᫩v|] dW~y[ Rut7 W]$!lށ!mԙb(Y\6BI6g.06/=һj?ew$!H.Κ C0Đ$Okjn> stream xZ[s۸~ׯcIH/w;ޤL鶉lY5+K]ɿ4()tD<;W3g Y`s&83Ƙy̋g>x& dBxäaBBrZX",L)A1&0z6`(Iϴ@o@RiT60mt d4 HqnL 1%gƣǼ+2g!Y@ : r0z;4̜C90Ek=yq HV-T<:М3}p,h@pkC7D LJB\fB*\FC0;cp v16y ,',V( ڷ FR04"aR!a~6b y='`w/J^Qy EtW8݂¸ AsBN.CM 2 R F0$a., q.9T 4/H\s=ghPzn;R!hZ a)8烣#lb-2W,~+?Q8vOW~FȊ8qxN5Cj~7qN]SFZw%{7QqPͿ'lR4aꢘpWu],Gx6dݎ.Re33jAoBI͖܃jj\lj%U&^FC-#J;Wq8}rder\CjQJ|6En}ɠxqkfh867SS=9J;_M㚥USi>f- =r>Ųs8k^:L(oԈo-Vʢ:+MviW)*]ıum9ۑALu[&19pvݔ͞mx],r?YK7/އgq~)_C&򶅼6!Tq:*S$eqHyn kT͖;ly+5T4]R%ŝhѱjJjb{nKpJ[ұŽMݳ6j۠[gn]Tq^ cwTmھ%54pTI^rhVqZ(+7E1NĈh1>gTKH4>O]Yb.%q ]ZT8$c5m¡8 㙛>ƷQTby1~;p3OƫsBvt4ϾG,tq3fhZҙ'Gz1-cb7L0Yy-3 L/x J.[3k4e*h6]O&;J)M'>ִOu<ӎYn3t0t}x{~|tTϏO_?LWy|y !n6};Gh5 R] :r2-LFzU|SAޮVsnlz'n\5)E  "T) \ɁQ$z B9CZZ\kܸ~c*/ZʲWeޔ-2H_%=US%=US%=US%=US%=US%=]%=-[NJfVK)Vd>ЋHq'1똵 /І -7pP!\э(8Ä,/v-.%6GWSO.8 ~J/}47Sm>`^@3\eFP> 2dX;E{02G_]̄_y+&_E;p- PJЁR40\V+0V_d.}(2ZȢf.ބ}bvL*\w8eA}]EA ҝG ]i*xBI>>2޷DZJ,Ñn|[٪ kjyrdkG5 M D CQwP}{v3EP{G{jlJ#{PFC"TBd(T:pc`>C@f Nw}@%)gζ'$.T'lY7'[:q˞?DO9,ITgJbT3er.}Mx8an'! endstream endobj 168 0 obj << /Length 3594 /Filter /FlateDecode >> stream xڭْ}B&x=ͮ.d'WBR|}/AYO@V+oW7woEJX~c&dy~߭~^>MۍxkC^=S}4Y]cy]"( EH3U߄x-oo8l[q>EʛV;v1īY0߇fpoz2鯸DDhQo7תRmZyw'Yt O])ߙS>;v>v@=7]i9EkK! Y$2&DH7Kv#<.TݱiN)l +:7B+ƴ ޡ."\nn9k+f{2֠(]ϺjC‚(S 8ZV;MoB8d<zj>æ{|؎~O},Yv,ρ',J]67iyvӧYO ֌.L\5E imLjXsx(WGEmX1oIG J3< /Y8z JWy-DD DD%T"`qa ׂCntʋZͱhre@8jYGW}`fYQpFVSVs=Sg<s߾~w_L87rۚNcѻ;1r( a`]ֻ|42Y7*eD5ͲZe7}ݖi6MgP5`ybQ@ 2oU3.BJͻ~a1@ܳ_U 뷀QNsJe?ZSsn<< @QW.Mґ% xFu>&IS._&C!Xx}f+/F8zDx&ࣥWOSʚ_մyMăi 0Tg,Wdq[5XA@LX V͌b:yNm"_D bj2Oa[I' WT8]dwCT1_ػX;4cs/\@ju?>@i=@K ;Ӣxjrf^sۛq5fS4*mS&!׻:;wgꞠyiQhyA#9# GeV*q ֤rR Hvԍ:-G̑b hAљО8" ֙jT4L m3:\L|5bh c,/F!}q\ZuF&yx"ȱ<.(9_.T39M]m" {[ Ɯ)\iJc3"&4X](Nzp!XDM޿;}AdI 5C7¹t[?Zةvfrȵ,e- TV(t(c +5y:(SX:>hlG̜p`YFo(h}Wu< ]ޛ6ԫs îP>AT@@Q:k&y,:cm`1/4ϺM nᜒW/4s3,&t-n{HVeDނX'* <BHI?xS;v۴3j֍Jq{@NIA2[`V0qG)C p#LBD .61EAOds6?PUag CDtvqS e 3k |D3.W,lS]ꊫ""+Jf96؜{c1u18tJS9P_(j)T69+*1PQ4~picjK~$Z0`3aND*p|8PjUlBB5v{A@xRys4cvMEd/`'e!l~@HTqp5eY]nJ' 58(^)U1}qZVp9h_EvMC_N^ xϵGXB90HAFB/Z? hqL1 "uE3QZf`*SRriT?Q_ sۏ1iBMЊm r8?* BTEHIAk 3kP.n +n#‰[pׅr!]qdq<`xt%d̐=+u >J|UW](+He[SXD gӭN^TD-i6H1͂ud!\"#qsl@pn9(wϏp7py;_ {hQʹMz(訇;;LDP/AXo\xGt1.``2CZZ\V"h5dBlb$OY ߝ6ߚSpa!# igЎpլzRسp|N&+T[ۦ0>SKz,SVbΣ+Crp}axjGמË!!>OAeu3S gQ(0Fap?MGG" -^욏#~GG! .^ y^x`tI?@G"^.%01^5zSw]-e5>ɥj46$moCV0A7[^_`Y4߭WoR-SM[oШ]> `ml/U-jXJw;TM=o|S->DsYғ˞yeWMTVCka4 \THωݽPW[ZJOږt ~n> stream xڥ[[㸕~_qmx%%ؗNOf$6$@dUֶ-9\_FJONYJ dH|;?~ZőɳՕFV#˻?;zT'm-M765Hw|<$QLE:t{:ץQb0Ki%i]GOa,[m\h]OVХ-Iya 5?ۖUє7.*[ˌKy츽Xןn<}vQl3M~$H+/id߂&BU7%=h{}Ӕ{02M|C~bzb{_\IljK+|{~,0'1Q*[]{(G|ݽ3ƽmxb']g,9fm #w kAb3a%y8f*_ߖEbײ/{$ 9Lٞd^Zl}u Y<>M&ǣoޫu-t2<|T{kخwO-)"7X6P" K]QV,8Y>>M{9% 4>v4O|S87%v*c<'1 &&ŝqP(z{NYjr /ebE2mLri ľSFD#4hw-G~zo:1Q)AJ>`z@9 ef@wOآЃ/e/3W!|@_2zK}-J) b h ^:g/ ^bsWT>wt`pfG"ʔO|쐍<ҦAw _67Iٴ?Ю;mV OLıGvYxzF{mʮ#o_:ӕ6?H%eh ʱ?S.)8}&'H'c˂ u1ғ`I!ed<(fl+/_ 1EIH^32 !!t7O:NxYpd?lH=r}",< 3rD8 ~s+ӍOl'm}ou,4TƧb퍝L;49AE`A}\u8&O{Cߖ>/3/]1f@8G,3x c?x81EHOK\1oI|y~[KZ)ӹn]r)u|حQ~Ԅ?8>*FYǕ2Zv2Z9_b+>>̣YXt>/MlQ,Uğ +$d,6ĶIW ٴ[6-H\6dgCU7OtK{nzB4C!uCmcʱ[]k3Amk]G2Ú,myo6cH4c@vd^sDDsNkޅ9t$%q6$OɓSwoO2eL4ꑋ0g2v-`.ୱpK ~!xyoa\pi;d$]fhҍ8Yjf-$L\Dj>46{ G{0)sJ YAuSiϘgz"Lg_*޾A> 2#_v{#m'n 6+EO烯n_E$>ts"ʓ^$v "?r0}b?BbX]cљlҰ7$"X-A-0(WhAet!%G9g) / ǠMmK߄ahKw̔s%4xl'o}UXVʪZga0dkXmGHeG[ 80vN?P7c& 9~rzʩuڊ9.)9,?rl9ջK#V dq6~"Nv(,z+MI x KMQդ/˄&,M{7JC7TJLmE~3Blgn]>OP%!}ĞXO?-\:dm?C|b𱱈&}cT)HL+nDlʨY(`˼ښlFʫL:n& }g\*/)AjblZ:U67lbD(Њ"ebbY=zzSXg.a/ќSMF/T el(Sg}zHA9fFaw}F)Ս5z t{4ڗUuYL^sŔHSc/Sf5hLU@z^H"cLzXPus I]ͭCl5y ?} ,GҦ>*TmH:Z9q&X;/)U4.NeRtVA^8st|'5`!hugB+(ӱWE$z˷AFKXP1]IQuJm4 lJ^g;\T(TR]|[ylFs4TQ}ȩv[pLj R0 9 BcE)mY">mm7-~>NFTV8y޺Hg&lhņe+eXx)\+7*S»\V*7jjV ‘m7nGƥ#({#Q>"].2&vɡ$!h1nH> stream xڝ]6}ic͵@4u-⎖h/}dɫm{p83d{{f}2/y"od&TxY@ަ>o7ە_ fOEr:޶wEPeh|taj0Co67ބV6*Wڏ^ TygY{ʅ0o~ s"6wo}Lv$v >%"Z 30q5٠`C8Ȍx dzgF@Dׇww HHt-zޭ|;_!S"ɒ <'bhm M̦m?K(P1ۣE*Jp g @ &~^m襝]ʴ=8)jpNԑV)m~z:0YS`vwES_tIr'$ R%p6]@{EՅEq`(? 0ݔ4)fN( Ro77 Go(8E-H",B}+q?c% _M0;qg v8 DswC>і.,?`Hs4cgĨH"}ۛaӥs7_l׏]e)efH^{y> y:`Vvlkg+ 4$ϳ \ZнCm {D'\H]JDa>/&Bq 茙IĩA= :#Fo+g0Ai <>6Pu[q <fCWDQD"!u+},CIB,?D$DHyxź(RՔPiDN [҃mK; ?ڠ$ikI1X$1bК/֤7J('r3jcKP-l̙;Ǧ+ɺC-b8J!əh td QBv^]cn0&%iE-vA 늇 DWgEQJKz0*.-ehczUIB\n"ű-fOU#_3͊0 <` [(F%\C$466Xfze[*b#6m(,YEc^B"jq)dPj<?@GN#|=u{&W">mM ߭mO΅ 襣#Q&8{r}) "G;&'xyI7+nl`".ykP6jivc; F=C2^bJnB {r 0Kys{oP} !iWDՑA.%Yo{ԁGMS ~j wOpȵmpoZ ƽ+B)%}Ds!LQ#p= \%'p.GpV䷩0sJ&WCK|Gs p"/A];'[`')/ v?ߒUpFCr/Ģ|1o($Ջ9D sծ]Ⳅ t8|Ie 6<y/t[aCM'҄/)Ugm柚УIo8ZJ;fS 3=UɥGМyr!R79ܨZC\s+U9Npl܄`*0ր.C'& lCwpԩcV^;8xŪ ثTٔDnwxt$]]U{6{/^( M7Ã]&9{iⶌ6<ý}ajutC5>RK::tx_אgtLr)EK3#{*A #1^`]aA?j[qpFۡ4LnzlWR !Tb.zyΩekd<`bcxMeo.WP7+F Y>} MScœ E@^U3{,~SdW/x7ymy¹ĄN^U&" d:<> stream xڝWێ6}W-2sy)=Mhml+ѶYR%z/9lo$p9s8.կ"O R(m)N\%9U,T?ݼYYb&,9ҫqE'T&Dy4I& 9 =w-y)Q;N6U/{;;7<]\3&,#@F[7+{Wv3?RK Ww8fҟGJ7R޹kqcVosBUW}MTUJnͱq/y4w1.$a-~G[5SCWői++WLOȄ I0™3NdR(u6x;S~vu[~7z؉d)-3p es"+z#MoO(m]roڝ]8㜈] U\d 0y+l wa{`uUvޑE1aAOTu>7@>#Ϊ4G㢎<ֹEnBLXYl.EbҾf>!9vs{SSfqR /݈y w¨7̝-ʎ|pX@t={8+i hl &.q(o:Sg+f=zYMrLƌQQCbčc"*}1ƠPS?RvC%z) ێܤyu&1t`2vHHm0D ȾsL7 D-J{ozCp w%kn 1p" eQEG9(`vvf1Q"Zуd4IM 4d_7r9 Pv:T eG^4wk< - uEA,"Bz"]|G৳BG;t> stream x]O @)樐8{/xutS!Zdtz? TK#[VN)sR)(L%Rs³ƈ2/$ PVlD#  6> endstream endobj 195 0 obj << /Length 2583 /Filter /FlateDecode >> stream xڭَF}o,̞x%O3M`5jIH$#ߪn( E$ăM{ cY,`X(nj(XO/7˛odʔF0ɤʂb`3BHeLJxnsǤ $gqgS"f79܆2 |)͒4xa1:^U YVmvVeWUkoVygV;~ :aJ̽qxѮ:MYʌiJ{M^oL;%%&@2'N? WWHz.=Lx,f)j0]bꌓmh<'[WFB)i d4:#b )-Oz4p[ }:d̄̾B"~Vb(20E(RhgO9'1)k,ݪs= !|EK -%11dؘ@Aϴ`蹪+CmٙX{j_V!p븭et<"w(Lj]H>[ :nWsיzC0e9 = WJ؃D4u3t1lȭ¾5!o˖݆1]`ۆ;CʳX= 'ml w,n[#ݗ)our&fUJYK"/>{Csrh9ߵ#^}!uhTnz:" c a8j7l,c;V|*{QVe]ŶLby4ޗ·U}ή .P?-'\ 1kA6#nWH\vd G0~Q4-mkʴš|9-B]#ʊ<E) hz0^1Esِ!AB.APp~ -e3dChOzMߝB8jj&$$!LXmOVFz73GPlQTNkI6>*|P'< #R!MM&& @Tՠ1k -Ak-v΅!%ȯ@W\-^ٱpy(}mqeE6\^(FWFNXOiqWW+ s7w2uIGsl&p>߿9MAqa)kkX=~)AV.̖ސJ8C^#:aZ wX^ -}@W_o+`Xt7ޥw7AoJ1 ®=̵qXP9!p?'$PfFhK;ְ"ZuNNv'wصy"P3_9˥i!dRfιiR>h ՑYm 4)mBb,$YYxSzl 2@","Zne[Lt!*_"SomG=ܽ@&S¬˛'F2yGf""7 -~v!#V}Y/NZF3_oX޼8_z.ܒ,ևk.INEM:+PMH%gT:D&snXZ|0nxACƒC0:$31L}KӍ}tN2/8Bȳ CYs;Cf l`P7߁Dll0hl9lzyOCfgg?׌R7@ ț=N=_.&xӱ (9WLX?kӔݵ?(؜ixwq&Fe1/|W]"9g2ix;oncmv\N#Ӕyⓜ6&CjLᚎXsPϤAJ҅mA+QW.>+Iq()OIV)ct/3P-<bTWȪ2W6ڱ5[mb> stream xڭZ8C%ˣHlIʒζTK^pHasp8 .⛻/VoeXxYI/0fWۼ} p=mzևw;eYusM1_2㮝:Q._x !KE 1-Fa%៉@󧪛i=J%ݛǻqs2[_~ %~2_D2cB@swĖ$ %1Mu =|>X^4biWb[ Bqzz͟+i`4̀o #EMpx.Ou4/fo>=vF GCF@'{.->ppβȨMkDڪqy s'60yK2=heC_3.k oʌ 0};3*͡g>ٽQ.kZ2]6zHy%*7??}Wԉ #euUE9wzW|g3vVO;&klUG3Jjt>/Ua_l* O jԯN9:,^>nk2=*r`HB"+cXzbh=\O~gС1es0/Za꼘ӞeZ"b;EĎql+3*-!0}I<:nQ%Shnv~vo+]P$vnwj] &R>R˒)䥭6yQ(%,|Fi)݉_r?g59UU#9$xkȰ;N\ '1|^67l0M>B@&#Y:}h|%ʭӞֻ1bioN1e᠄t#cy}5>lz4{kT*| $#h.{D|\%G,6$4\~;R&f |iݿhNAOb% 9 -,UhB1 MtHѺAn'CJiE&}ꎫnWIƔ"^ՇƧ T͚H89zHtW?WD<(!H&~W.6xv4Ft:]G"x Pk\B0J[a2|5ɂDp/XofF)N{pw罉/low3!"rƾ|>ĚӪ/ GR5r Ž0ަaB41⅑X7:Fְ(MIrg U+kFj7)+fAR2S|uh}P{u :kݛyK!c} nMKsY2=i/,Yt"kg-~3P5p*YV5>MJ7^-x[n,D!1ĄoEUۡlVGЍ=5C]q\i|@H!"?: n "~q8yfG L 3i1 Bb 9 tZs3Da|(WOWSe!3*6UϹ ʈuگ1M>B!KD"Cfc.AݬD*PݯȦ|Hu(>G(A 9(3%n/>"1S211W?)wDlFZNZc aDgo"6 w{ KnC[VɼnMtb5eh仮/*tS$dAPHbZ_b#ᗏlp>\ {)H:VUYeOx2YfUfc>IE9aI0jFtS] /dRGiUߟ1`K&5E/ȘIjmY#mDQY RS֦=0Cg .sÚOAcS>E"҇D~<ꂲU5N=H36@{,+u *7id5n4ۗCuƚ%6(֨0lf?am28 Ut\Kg:v #ká)xK/bJ hV .抈[8߹QscJ2N5eWM3)zYqJ@qFu]{pƒ$DrZT80=cgVCL|{ p-} :(}-h/>%u}֭?[l އOK)#sVzKS%gI(ʦu).wK/'*b_ 73BXDZ)99nTj*^qwT:Ro{3yC`K"]# pxώ*~Wwb"אmP Of8޼CLTؘ:HE'~џ^?l wНV z$fRϥ']A=h(DoxxSH;Aۑ2]MЪfOCG?i"vwF` Nq)<ŀ7i똜z"ѕz9u R>90e\2.q6?<ٻgJ)auvU.e46X8Uoe#ͦv˺J@|S' d(b|tNijVx+]LI2MsL8(%+Ǽ: =~i?]|H qwV?ITcМfj'i1*zMv]Ÿ'mÝ /$ήJoI endstream endobj 205 0 obj << /Length 1132 /Filter /FlateDecode >> stream xڭWMs6W(uJdM:'wC:v CVZ4'I`w{!7/?A)N#a#Dmrtteqap X s 3?EYBP}Di 3}Z Q4Xڹ7tM'ڕB ?̭IL[yaԜkն{hEN&!<\ a/KIUȭ\ۣY!*KuQo'@8IQX8=u,oh]di͈Z:+Uo-?ͷ\wSKMhcmDy2U5ff3}8 p@[>PŰc =6Z Uy;V#wfߪz()ф{׷ rv':]]k^O&eYIR߽0@I_K0R\$u'+B7ޭBOTK[ suGqE)]Z~ !)H^hk5Y#ctVmu }חq0)*l떻D;։Uml,+f ,zzX\ 8L $$3 6/3Yge좒=\#m{>tt=4Xוx䁖M3t1Ͽqk9 ռ77at]v3)+ܹĝąµͯJOR_{z`^<)Uʖc(T_/jPĄL#ʦ*l !&_dV> stream xڭteT[5.$ݽC7H8 -w $kp'XGwY)9vծs_ihI߂.l\B5[W#TMxr.G ,2`K77KPP X۸uXXXxp5 lo i P')89vBr0Hbi?/.C'-#1CAd$_9dt4tX񤺋C_ ))G7/_'z?T _*?W2,gK]PbO{8Xh)d8gp\Ƹ i0ة^0߿ʱ/-lM:aBwܾӯ-%n"{q;Z|,ہfOfUV85̊P)'y`'?i 鮝p|-Sb_~k@xQS:k3-r@bWI.z(wn8̝a>6 1X{-E@ @N%r[82i *y]ag(%bl3,>*NEqk6ܿ-u@kCJ_i)YzmުB䇛Ta@N7_m[մ$w\6[n _,X# -c/D((=hx4|Q@0Qc1/dyv0t!6 t_9?ڌ9H"-iQ*wZRGi :G+˛~BHɹKAtڐ>9 SJke+cXM Jw#{rpl_dI7#CH`Ӗ~>ēI1)ntͯ!ʹw 0x˪{N=c0/aDЗ٤(d-ȇEڽ+DAggz:iNC]L7i7!꟠#d}6Q׳{| ՜HgiumΛڰϻ_g@^V\xV0^]ٔ,aRD e&0q]+V`]$FI?!)%ɜSVh͋05:U[#\Pi;swފ@7a'(FpDtQ<߅vbQP] S%E-k 7䣖Ŕ PbGGxIHAَU-9LuG5 k8FNVC 3AGV+R+/ }[ZɻsMÜ wSn'P})DI:z㣰۔֧70#^D6Jw"{w: m0͹ fj{}?!t*VW)Oȣ?xcՏ:u6hL$KYb0eZ٦_ff<Ӈf.4ꞃkw> SEᚩǜZLKHyQ mʎ tp|Sr_GuVe|ʳҰ,Nf}mLvӼV^d6AQ³Ro#5r7%DbrǷ>h3yJ'^1N j. viM `H%2\){t1ȺCXã1C6C{C,ߘe_Z@w_k4*ga (1EH%ܽw?Wu9u7Y2a,2F_rc ؝(ܰE!N|,lCG?#goAکCh ޸OM5GN0Ms(^N{a6vAϝD<KɄ)"9t0 \սiut?Ur!+-эt,WUךr”w "(Nv)le`xg̟>2ח[f}û8-_=#G?i0-!KJ `'b;LA~` P&aóe[ŒzeӏmP{c /ޫ'6BU%ene^3=PsU鹈,6~YJ:;OD|5R?EF L`ͫg ܄qe"]ӀR Xb?xT a7Y+˲7 %:Tɷ}{Cxªi@]⬹xN8"g(l :0%^|45D](tv`xubb ݈K>tM_ h-#HYéT_G)l޷׏9+2,*Òv>pɟ暑XFwveF*RsǙz$[rzKvDw0J76+?L>%Z\.np85AS?،#Te/r4T?kWvFf7h["H(g98F7Y1Z/[5ȴL7ri|u2 N.>lk]:;^Ku]̑3(ȕ"8 o/Aʼn")z$i+zꦖ1ѹ;b9Րb/Y#Xr0ϣR|sqry uϻuo(G~FbYDcrH3&D/TeGwhp0((ˑ\7ۛky];M CW\~eݹY]i<ŋ-/h-y1z/te~U ϔQ (ED(/g˷1A]BPHa#jqE)y@8gm_!o[jkfD D6#V͍OlCI힧nچ% u3k UPZBb8)~VSQ}S/!,mù}Dy8X0P9'WТVYE0]d~ҟ|p| P`& ],9|jYvlhb<>F!%x;B⦁i/̟aÜhE|#ĐOϳ0>-avVOnsYo!2Wag<) Kչ{YY!QFi*qj"ýM]OV}zuwXwAc1OG79t>!^J)3V45둀(qB Gߑ_VPg~u_*o%RR3՝rT"&f61nB8TmĄYmO1M4:j#P[.{$$4ASes=ZS'S>5vn.'پ9۔m*5_LNE>8]"}eL:\[`۠ KeA0/gqag{2OJz PГbфIw` pQS, 7aOS3 ln:۠1D5VBr}-tS"W+|Ω%óҗ@c2OX(C{B-uˏc;Jr4 ҏo~-4ˊoxj0zp׷莟- )^# 6==gȢ;z ӂu36\)͟lndHдkMGZlM'=~OwJm ~\ ͪL9sm2IĕwN,}EAi/\6)O'>1H1إq.b~Go uwzrBM 9bͻ #̎|2އbb1V0 Qc%L& &' 4ZwJ굌Vo+ 8V bʛu?=m#cz/:-+{o>(i.S%:mڨ)]/-$ m * ԍ`olĀX[[]s_ibVrgNܓt./6e~'oe;ߒijwc鑽خIuwd5t`i;esL}Z}.%;rߓD2EӐ8M-?E+57;&WofZmGYV<񶚾Y_]$GFECtG~+4S)r@{!ȼ# 8>/zIA)Ԉ{)1hyzw4w(3pU뇸 H|XNHP ~%tMWͫy0ӂInJ(Njѐm)"rHUå"IRC}ueNјhqJ!{s C.JMiBLRZSB^fu +4L9S`id1<  q gܽ 2qfu5=?SЬ#|c-*X| -HI/l5EIHL| %F~:?2b2Ҥ RhfJ2A$C74 z뿄uQ% H/fUuqX5&ܪKW9֗M)rchK=I-XjS~-]>jqH*e;?gtO\wrcW%0ƣ zɚl_W#ۂ9cOeu$MUhХ%(xZ "֯5P@Tפq 80ȭ/6",Dm+hUZv/X4q=@swИ#~[tؼ%Q}-\y>ܜB iz/}6#C;Tvcz/M8JEa$r30 Hg(H>exdh;5^=LĴK,LFdYDl=owjMawHnGxVqϞ}?2Dau&GE'Xy53)s5|!ow>+A/4Mhˏ7~|0[98D1uoxmIEKqXjis';DVnEIJ endstream endobj 217 0 obj << /Length1 1612 /Length2 14598 /Length3 0 /Length 15437 /Filter /FlateDecode >> stream xڭeT&;wi.A XCpwwwwww $Cp33s~~~SOSVSj0Y8@`&6fV~HIh kBpm@` ?@hl|||HT Gg+k0VK],@6K` pqt7:b8m\\~l\VΦ 6 s;W[:`.`sgG0oVUI[b pi`OIڀ\`;\f@mEd_ @+Sg ;_to՛::yÿ ΒoNsV6 $Ed`c܀j?3C`DbQvM SO[ovS6;^0gؙ:Mm<3Po8r`ӿYFiw `ijSk,v6 _EL+4mmA. ?_Yt4%s+J`MǿG)J; dbpM/:+mKfeW_';X3+`S_U׋[*Sy~\;TegBM.@/eg:^W0ܬڇԿtq8#\=v+Ǧ|pD5OkFo/:=N@3<16:w;p@ĐH%`rJ 0qk2}q+^ |3&k )lO1; e()'[nlf_#6#Rq59cm2f#Y qo GqZ$#H?tRȚvA!|3G,`}az -e{(.вݗORDxψr1DqGWG!6%2SlStw Zc+q.PM s3E} uNY~̘qHEStVk.HUJCL֧2XL3'^:bIK;,}et\@2B`[+]\|z`MB͂u ]ĵظFŀm<}黕o25aQS5wrJڔ @a51#CJ譡 2j;zFI FoIuo{l}0"62,;;x| m/aCDUb/ Exdm_V^𝡟 #fS r/`Pg- X i.>.@(F@5'Ud-m;`WXS1S Jg+2GV}{ڦ[pϺS[{/6ƩSvceo¶as˵h+'{ǚm*۳m="c0L+9XtƬ0Y" cm>_<iZZ':޺a%eOwxb#Y?|ȣy^}Լ9?FXq4ywov5 ߊG l-og!N5A끉+uPzv(eҡX*2뻼j|{v^T3Јw"Е UX7E=k vhVpvМ P:"S8d4\wcZ:G_T:L a1wT -rރj%^=vꫮ@۝ GLt7X\myk$Vz!96 p'YհޔfXAıQ"RlD~(gA=WB<,u;%m%FŶŇ 'YɫJID _3 D&Yʨ~A.3P9W2/úg -,ܮ.5}"mP2 h#c2G:^OUy'w 9U"K֛j՜7iQ{CrQ-s>JWBv Wvk ڪqQcko]bDk{<8g; O"T$,#f"AZrsUu?7EB_~|j fD+j6K!;"L p4r`=`&l6x5ŠW&wA"t †U+}=؉9ï)6F)]P(t1nu*$F]u Ee54R;{>~h?ly8M0d5^. ńsCS4H(Z E:rrn25H~hܦi/R~AqQ"?2tZ*#OˬO=lQ{?MkORxݫ@Vw*?zˇTaݖ]U0Il;(VShe:["pmmŎh.ѪUAM9^xKclO ˅{В5,;+]S$-m{p̫+ duKD-ɄdX= @#fYP/-njq3dh/UNKIGs{;Pjעv.h<:j2(enBD87!XToF\U@5n {'h6Rk 2<ګO_yņΐv5$f\׺R Ʒ<\W痂Ͻ0b1f~O^9RԊqkZ\7b=Y%z~TyI/yZN- \T1zoȀ_qce_y0b!GwoX9^&wSFt6;Nyrۧkw 9Xlp6hW:x:of#wOJQ]X^PQEH6(4ѱm>e]K2Hσ^?ۗAZL܌==0l-tI&Y+ɜo$g@Op|`(V@~JNH}+UEE?}9k#:/\Pнt!,Roxױ؞3|C)!حM/I~y,3YUӯj3b-ی21E|{$ d K/&JEl#%VYMapC6nj#b\j[BS5Cq/мv^#?$oTt'5XEg+6:>CЕ}i%ñp2T{ks^XS(VEYk25~7:۷:, F(IPx;tաB?]=}o ,Lu%Ʌg2Wlɘ=8{RecǂAfL}D #qۃY>b(ݡboTOp՜' νKP'gXOXщmtѠ]d$q 2{mk͖:~:?#ta/WEv5j*28IqvIh7Mp`A#T>1VNlsaDI 3HB=h /;S;tɻT_0--̛ecGomtlΘ[fV8u?Qӳ$DJ/BE#ceEZL@U^VHes \~o sńjmq%г&jɺ$Bήm^`i&CRen1e3 QM_?!`uvb[f*?I1Aũ̠[gY͂\(n6%ˇڷUO  %XmTҼ; `q\GdO2JfhE]Z.4<,t 5\ۼ"4O9:nYlEZ,Pmoԯ xx H&F=(nԧzTDHu^VhC2?J"7z]8Kpt6W9y-ǘhn\ 52plխMXyWf zML&KŒAI!b%(. 2* @JHQ*[JE lmA fXf3w*0aUY3VwBg+09g-99חh?u}O'̞E82㷆k۰k 5"Ҏя&^﷏^nYJW9QH2G[^!EtyxDa9 䂛5@O|2-}1S<;5/.x2t6a׮>5UD KN(1U{+l!ߤA+~v.~܍) ͺ3*toJ"VhlӴlTbjuXbCNzқr2 i4F1wi:'L79*|v5|YQ~4cnk'/A0YklLչ~[s[e,* ~D3>ŽUKpF/50REѕf,q+~n{33[P8"DzMYx'_3>$Nd^J wN¢"rnvYz&(3M ie;%d DRi~p?܏.It>}\h#4j2cVP p^B=h'oE o/ V8*ezi*ǂ|hʕFy&$#{qV9;n\eO* P!Bu rچ S2dD]TO~Ṳj`Y<{ R1o5&QQ:NX.+ TPq{U 9?7v.<8I915J\4_D$ "cb؉`5D6|bFo1JǸ}| 6w L$82lgӵ6% ׿ n.o0u0A&=~W VOl88 W x )L]"Ě1SТr`yy˶UaI/H+$9t⇕<̱&UYRe|Uҿ1EKۜҭKSb+ +~ughUOlnaӌ9>WRHU]Şx M?xٔl a 'vOg_qU"ZOt[yURg{=l:(d;fL2tQ@HjN0?KɀA^2Cxn1Lx]ss h]9rpX-%yZd+RuZx\.,fk~D+=GjM l+qY)Ks4DLX{ZRʆglFa#^,UK:e #Y8~&٪DEOFc-c 3GA !? 4A[~l~ʴʖO0٫w ]?k7Tj%;QaPkF5PI JCF9k&?sly,i <;(5 W-ӓ iHJ5z&i"*9d&\)&ʊXtڽLWoG8r bjAF}HRb0{B @1_c1lhQ߱Byʀ]S$kT&m 0Ug .M!W##X F E~:EP $Hqzn y[T㏍%q mz`0ҟ:njf,>evۅO5_Dymv,:13ʀqhiקLȅt.;Nba57=+q|sXņ\3_%X`vi{rh|w!cRbMPy+C(VJiLQ*01Y(j\6q eU$VSz:o˓.%s9 0wA3w>/<2  iUan\zwe*IP~=55.; D3JiyKZwm$&Gqh?5 a=ƒӛ #+>ɢPhjwy|ˋ5O ӕ ոͣoR z?1Ը DHKt7>[7J69;{ESec Ɔ(E84 .7K_[UbI!twEʢ=n(tG2bN/7 }VMjWccڐNڞ7 ƛ`Io6R_w~TQ8>kzO^욌ͱr&Pk)e )xނϝ[>WiI&ŦckՄͨE_ny|R5xsRF_Fg)bJpI_,cܙJU]NA܋#p]d_")ʜYz\u V_0GĴh`)u!e*r7=kr$ٔA[mXJm" [3 sXɧCuJD!9K"kqX3%=5=eoQ{XcjmlkP&}17Pz5׵^](rix*JR?Ơl2P5lyS7FV#& lBN|H]L? !=K :]@ӓ2 9-tb!)Ѻ]qGvJu4\}P6[#ofӴe3%B N1\{)ذYYw~vK238R?2nmƜTI][w@5֐{n\2ׇ׋l5>s07{,TY=!Mæj/[K{Ċ-\3re,>sCd '&GNP & d]tv)g+a[{8[g}oe$(vsVhP`E(FXd5v25"Mdɓ6笠WSh'݊j+/\5x׋ҤU,fM.=::ޝэ˗aX7-.-R)'i!y+ rHã/YڋN#$~1=Ӎĩ* CYIBM 9 %LfQU-kVgmώ_B&u JmRƎFaio@0(~k\0]FOwFǭEV~.a4a M>d^ظQ8W!$ /íN 'e7W==\W rF8d'(ʑ쌯Vsr2ĊY2fH]ȜIlO7mAO3R2fּE"?>Ԛ?U2)- n$%>3=\dU/[ ; # , ĴBrčB7YeY#*xm`ffEZ{7 ICi0pИ = uY KMG w!| zwvÓa?}@{db}msOI/6i%h<8p2N(:U{0y٠,?CO bOvr= i0#ݭg3-Ǣ9m}2qohYg*h+dlw5Z01R.d'J;tgn-H+۞p+0ն|T&%?o#sq*+wK^Yʰ7_x_4q4Nd{_n@K⻺H4{b2֛#d8-}Z' (u "R\mSf'&e./U*nKVB2,.v&׃K!wKle5l e._Ztb".z)Eq zy-5{QAz8T=ZPy znN " O3ା!}>xLJ)sۿʹY:W$1WbBSJªB ij_Kq%dlk\f$$*F\~p K3AzDGq`ʟ۵T?tbrwvB,Z?{Vl~w26RE&SOۡ%iICY^J`ei~t$<n_@qr,8c6j ro U"ċOۜSRp#g< c2m'C̎sc<+iC3߅$fh/ |LE Ezh 8T;LVIG|\"sm:e']=q(.7;pyt(qTV] ıSN^6|< :iw'6AyB%(W(.[1YlvsED MAuAUzN.15m"̐F$ϱd{{^z “3{gCNI~?* 6 ,Hy,5UǙ4O``SH[L%}5#dV )$q3.H>I nևi$;mng?g %}Vm&b0bN#؟lG40G5D2Yi ;rNIN)\ӪIYi=EP-gkkWRҬ#6߀.CD5lBBq\m}ܗ$px:Խn SpD̋ .ɅG4bO3(g="AV%L}ZGsJU5p_RW_vkH*J> cX4`ƞQZV2?Z!$`QAXh }lī]Q+j+# UiQ&HΚO7o&w}ǀAwփ}p1+OVo6-fm^nia? /RꕫgU,g(USe_.NE׽AŻu85?hg1gE&63%hL)?8O]5*1i֤/[f#* YppsXI+N X=RSP5myYlǜqw+Dɍ?Imc o_&rlWy/'$l ,+xtK9)k(H((\?]z^BMJ7Oǰ5tF$4^.Mv*I\GMM qU`"ș䒔(HG$NɉIkIH%lHG0jH|gU<Rj@z8MG Ú*S ñ%_hY[k̴BΚu*%m%=Y\?'-}iXUlz`kJO8 N)Y+\ I3"GjZ,8X]gmٍJ1XVP%8+b%$:잎iMhR`HݘT~kGp0Y/V{~nZ3cBSdEi8,*,{m1y}uWL|$Q]OAB*4YV!bnyJiݏ '{OpTg#e7*{lGܮ~joJ oCt]M8Vqv߆9tN~C49(JDg͝aCٍx@%g,ub#-"M|KvY -j2̌+"F6 m HcEp7\gN HFY;r<^RE%p);ϒ 6kT3YUܴ;uTZ} "QNjS!QB@_c]uvcYl <N2WFKoSrj]O(,)^`0PvʇJ-e)=I9M#Z-QQ@BW շcyAeYdcڴuCڦS%s6SzڶX׍Uj0$y*Gu?xTNbE|xz!AS|m9ZSWrkzi V9/Dq)Xq&3æA'J ?!"ceBnTaÃبl״iZN  yO,:,M")#%U]X1"$ovH]8Ilhh̹RJgdI?(~r_CjU¢px0.+|2?詟l"pD+tAPd5LX62~+ó%0+:46o|]IJ\qJb8-g#qOPaK2bh{?T3;$)S8Amg+"ފ}!=y@MkDVH?4E[?'vՀm9 <~ <0VZM)_5u0'3xw>{? Dk|լ1 ~e%?t +%\* 5e[,~l-y̼Cv# z@r5hqM=89H1wڭNw݆tĢ-vkpQ1k8O\B{I++5߭帐?Q[@EqPk0(ɣ]>Paca;~{iuy)ONž|~v|+s׵݄j5xyEau'63)Z-r")Aj=ã(A U;+C4-+'tമ *$}}d [hBsL\!Qr&jyVkd+b`P!%E*S/.]2K[͉8gP΂mܻp݇£^9Z[>DJ dΓ0%}EߌyY{t E~\]\N $@R}ؗ2 a}>b6<ׯ ,ر*;Ȝ}T,W?mūD J4QR{.8NK"VQdHC%+J02bRdW e[Ld߲iكC~;JEAWKF?bg_UK֯\0"wu9OmRvn*"5M*ereT+0rT__"_Q*VTPdJmM8FSF ԋnbu**LCbc6oA1=CU> stream xڭveX5RJ )^][<`ܽE[qJqbŋ|}̙|\Ͻ׽ז0jpJ[C-AP'8'7KqtAT9A`7 K bd| CNpd YxxXWPg/W`6`eg?'O`zzp9@AN'ۂ6EA]rZ84ݞJB@N0+ p:YC>qI3 98 WG `W 'SPOOv_ 9Bn8>aOdPf qj''6 6O7VnJ {yB'e XC`^OȜ]!8pv`O4O:z gg p  qzgXlnnA5̰>%aa urXl^CO!,;9G_5/}Wjy7u ǧ{  g,\vsp8xh;WX ni'0<@<d [l,z]q=iW[ӵX;od?W/u݆$uA c'S+qspfwxL\\܀|yz/4rNVP?p~6\]4*YaBDC2d&ݝaŵЎwUa1f}MeNRw~]KL[/Mq b| pojiݡQb_һ3\:['i{V@Xa)y꒹whk='QԂ?u6ez^kz.&2 )oNsl']"6X1}R+ ^K31?fVu+]5QcK,i\I#< lb^ !G{PxXy*HMD<8ThR)NV A9Gi`Z!2?UL wkw?"F,"+C[Dj] lBheQ-.EW*o*8JK8q4"ڦ4R!E7Ԓ,vuu7ͨJÊ %^h{0 GXxE߼\sOʹc,/ZŬ Zi"\I]<, cuss%WWQQ&Nm?)}F3I^lluiayFohWz1R `4׸fߓuq|҇(ey$0r\uQRS5PɢhR0U7,}"FESW;jHM+SzIkz5z!)XrAB0eԁ &pR+4|SvF*ڲGgtL|DX⓻΢\Fk'IC.NTgyVׂqP tӰfZc#]T$qqr{E#hޝSbg Jwz?pؐ;DݐP-F./PKwIڽ1Ztv{Xa">VS C$~6uv:z =ʘF:¯W~(#p\65Wu CF%֘=Bd[tS۫ݥ}*9tk5îK$k9qܖuJT,~cj&Z*|T$:,TI4\JL-ʱ,g= *3V|: F[ Q/Ħ<׍PW8ܡONV%uoKBaZi$,>uѐ-'QMS?  nw% {NN@鏗5b!(jITC׀DB:ce/Űeg>usW*@1Tv[v0Sd$_GbK% (StH{xHQ%KFbǒ6975蔇kL`wEywNi1('+c?]'Q> K2FX.ռ+%4F`;>_XXx!ܭ(} xCH.<'EۂyM*MiٽՎU3l)Et]HwmDE6?Ă##3m5Lįnj?ًk? X^}qEZG2DE+ޡd7xPsV"yLJNyLfh@c/S~JZ?#\^3҄gA9{5mbTJ*tvKءL?>p)UĿ&/Eۆ0WM^e" $iyʒ)Ȑݡk&)%̴ei|B3mQ]#yZUE`_VrޝY y'fc(کO_iL:PP ۯ>ZC@)fDiy&tw_9ZCc!Ƈ|tX}uBu̦RkMM "e8uWֹ+RflF!)N7R-{fd ႚ>srOjyoCd a%`va܆BXϘ rfݰ>BJF&_jCk&Y]8uɕ֒@ ZfG6yYPJ!A B@db?ݚzXwgIT4ոCԍ@fY '],|XE?(A?7FtQ&|i+Pg]a/Y~s]^D]ewˊ}=7HDljNӡ;/'d:C[_ g|%UplIy=|&|~%#Mb[+̜#x4Oσ2Z Q䧠ު`T9QFq iF~ye i˄B|1D,ԳHwlXV`X6޲Œ"rwwܣxvq;@3c0(sڸώ_IUUy\_9AO:+W`'Y8QIdCH鷷g.*Ҿ%ѠYZ˹>mU Rs;dbpBHwG˾:]ߠ(uS*m\2΃dS;"Lٚ!}Y~53EK(;HW%I[y4Yݍ0[od~o#jTMscٵڿ .g=&H^KZ'2_lm(,`va?gks~%.#YCYu+>[awk`E4l/3MxH{JL_'Db(~xS/,s<%n-D-g43;1;E'LQ v"k2狽LnNJAt|Öp?pm)(wv #zakUk0<+43g@}u€ r/HoM\ 5D:\,!]?$~id]!懁g,[׿n֧3ԕl2Dֲ[Ͽ?ͅaIJ\mE"0EUSZ?`&-3 jjGRmMlV7Xۃc~:0~tߊ?ihAL &? uhLuK8;HM#mJFnzs#Vc*A",N1R%c}:Í!ͽ.{^`R2J15qd݉$JTȕ7NKEEat oa;h]ߣd*SRF M-YZ3ye&X!gXV~_Ag O|&ؠ(ZRl\Q;5.O{u %"h#~ r"S9Jx.HfY{F 4n#:'<Cqb r|bf:Kp 廓ٻL8lՄgDxDdL*G.@D t[&Hr1P, KiW.76Aqȧn":4SG$EEqQMlV Q]$6"B~^ۓKd[v}xFa_S0R8VY_aW߈_=erPcV4[ceciOfDiJiYXbMnsR:?a_CA#VDO7[4VE ~pJ wn7j/чPįf2/{yN :\&WL>9y{fʌ.5 \L"ρh y ${&`F3J_.';0B<">[62 J<3i}pѾÇD5c 襫u}Y6E?xHt&֛&ÕȔK!5:&׹L͒~{_JtqnSaCRKL)f`yZM^Ђs(o\V\L5/i8zqkaH/<ÊMZ`cx7%o ^M:S¸äa0ttDtSachN(z甼ca]IBA uJLOa[}oZx"9^6IkMNTJI!TYN=0zɄDDifD8n啬bk 7=hoo=,lG:E֡8qi (PA fֈT+`=љ6 $\,n[!o*_9>>B.뫷ϬTb6BOT` ^O،Vz6T"Z5Di4ehͅ'Ѧʣ-ٝg>_34܍61 >Ql7JNzFE:5mSgIOnK98YH!tS~m7lCҡͳ* ډ(`tn+8أqQæ.IQL3w*+ %BeB!Sя*c1ݭӐyfu_̧Na&oY p³D*GZZ+0pSoo׺XRw7f* *Ï4jOɻ4ʏ. z Vip/~s[h=ҟ?6KZFePֿ-TG5PU˃9ee6n-hmfv ,EN5L8ЬK\ą~Ü( &0@;S^ &?ico}.If!3|ғm}TTn>83=u:p(7tcp_f,YV1'|OsMx187p SqͺvH~SpG}ܷgekrortd:w_݉DݱY9%/DsGp۵'ٶ!ל0-ĨL"2~!mYrFGe%txXEOR#Bcg嶕8 [iNYͬ^mrD(F`&koo^ \q[gJJ5XD̲^Y2gt3j^?ڲN*(̆׷:dv LyE?>w~8v[|cnt3vg yW¾X?plGN:Bc׎'0(4VNcn(wd:F`a=wC:6SD~s6Nh4?YDc + wÐ֎ ѭThP4ufQy>3nu6_st {^ZU}<Esg%iqajH+13\lTn{ъ Au6xRC-$~l+Or=ޗۘ!@{1Jl{`th&-/3E$T{GcDEBΗno) +J0Ck?^Gl` ݑqqNhc2~ejYr^XJbdRa%-yt]ᄃ3eH8GTx]L^Qpm;]s!cVUOlڤ=;U-c!dcFeS3z_`%cs2st`ے 6*Ĕ/#$[hxWe* Ԣ;1(ԠǵkV1O< Bp퀌+.Koq,AmsfmȘjv&dO}5fW*|0;^__}~מ/B䣏N@0&l!U$Yaâjrotbiƍxh+'⣮oJ>XN#Fr[xJ|]0:ƕYO)RiW}*:! 6e ,^)!>v;>xli #pP5,gWNEdE-X3 Jշ5.kc(L. 3ehZvݦ# ]Gn^q0qim&ZL$ <3s8Q)rros4sio4 cbO9v} L ,3=G¿L5WɛDWMð*v٭GX/Yw DZEt"1)ICI!8_9i,{@F?-Q OI)v'gp#Xd4|P@JPlHՒ EBExQdi@@ȘMpF,LIR4ͨ|Vӡ1mHvcC\:+^͗(#Ŵܱ ~yV>;+,12 2 endstream endobj 221 0 obj << /Length1 1614 /Length2 18861 /Length3 0 /Length 19694 /Filter /FlateDecode >> stream xڬeTdK%[.CPCݸ4и[yf_͏ZdD3Y(IEA@I+#+ /@CUK$( 35s"PR9M\A&@^ 4Xyxx(b G/gkK+W_ Zzz0Oߙ.֖@;=/D5 jXXbJ:2R)E lbPv36[\ 3?3?0q\f=̀@g{kkfvnkK7/27t2q'_7d7dOIX;\2̭]L l/ 7kbpZ8]\;U'٠'kW+ߜfs[Z; 0Td,@V9ohY3I@ fEߔ;߉@'?]eZN$1y?lbom ZBq5˿b0Ehljf0ۥ@g;k_5m$ԭli;_%ά-$'K)UU/QAy|Y9,7_><~X3)kd`$@5Wq9;UЁ@O2Ȍ/&#;ӵK^/+p%E5J0iޏ63Y^;4e!9m_&UW`fșZ1>WP\,*eo0DpWOEX(f ؝h`ugT'Oԃc#C=7}y|&_SHS\}@qL,W$$➤RU =?? 0"<)'G1={Bc*Xy͸"(-T/7;>W _|2 񑥸n"SHHKKg<5 )(aGbO^J(rsz*x@Ox茂<,gr pEk[8POA+Rvvg<mЮѨw:׊qِ Pf)XMF:ǎ0jYrf8+p;W(Շ 8jQ@qj-7]4A%D5to6Nwbڠ sf5[9nd Æ9"^8+GIUW9 @Od2o1x.JbgX6ב\ E9Lw`Va&:Z,0pDYcap{Ro#$jZͶ]efS[,P?" md1~ڎY/? /\ EMC#x׬j"y8T*\ g3WOU4..7f>Ǭ-U@W)lsxTNg) VL8]Ȳ@3о_XuYA|`CR{HČ_ vyV\5 [6^}ƅJ;uiTR *G ?9|Rtx>]bb|~9$|C)x}+yM.9"I0ҳ^_z]Ml>x-TX'uw:i.+qRɹw0fy'1NHI?T$+YJ | b֡'Y|ZO5 ǺmEɭ?EojGhoҞ ~}a*̆Ww$N73'P P3ƴ8! Z3ZKGm_~atH}rIs%[]*|q@En>@Z f'Ap:|2(fO'Mlbhz A1V!}qgR(=nhq"&kM0s2dj}ym)Iݘu,`Aю\eNBQu- ^<~ ׀^2j^lL'9\x(ֱ9@0w8o Q;,N?f#*A9T;Z >$#P$@:?40EOyLN ]Q /%+h)).XHsOŝY?a a .*q( 0#95Xu]֊W%yE.5kӒQtkOY,j1;n;:wE@5ִ%lnH!IsF8=zL!L-n~Ky K qhڈEHD@Z,\$CНjx>oBPϮlݥiGF2}ڧAhsW&~9[8P16an:"ɪ}JH 43Bƾ`hZL5R`` .aH L6}y%ڃ+Q.1yng}ļ0αq{vEfLOl^&^lV/$6Lu_5QbO56<6`6mvCp>`HCRkcA[#slǮJҨ? :)ATp>,א0GKʋ66-?"{/a>i}fŋ4ϑi/XREcWWSh@ J,Hed!-x"a.lQ])eb!8qU3?HiGZ;pi aT "*8ɯtqK /s"5TiL(JfhS-+?]weDz䐿L,=w?f ["--(~ܻ\3lrgE'y0].7LaΘ; JO/ DW3U6앿|H-lu[׉5ܤ|%ć- * W2H;}J n1"bhlÄR!a)^*b]RYt@7y,FD |9Asתʒ3bw%G5mk!ahd_@ς):WYfo~flٗ,fHJ5H7?;2E`_#Zc;H'kE&߬m ijhMQLiW܂2k0ڳW(!-| ?NMbmnE51U5 Z/*ٙxnPUfk<< ~$kJSURcY%P UKGطƞ%E<ЏK5]ǔDzFɼRuF[Z i~{u#nڜ,BEF\Wr`2]Aw}Y߽4Ni1ȓ#͔Uc/ mK}nhuYV&AHL7v6&Ws ;&Q)%NU> Os^]੮oƨ3} 1ͺمST&d%x4x쳣^n]ې /$X}B^Q.r^z׫$HD-Ot)52gixL8ߍΨTn 4#nY#yTUU4Bў%t B/Nu=HւK+,٩/h`Mh °{ko$jc5 u3G@| $fui]-q|SU퓭P1XgL/'6N+Ա̴*g[n we(-Ajd+] k~.>"w~%y\Y .16?h fx?9r.s4$k usr9MϣKR 5@Dԃ\-D}uޙZ#^܍`~%aAU7^ƑgkDA^GY>6fwC@$zn1;w)%mPYň캉 MG MD` }B_cMO?१ &] &'VE,&!MGzZgO)X5[B:rܳR}ѧbƄȀbNZwm@:X <>=Nm:)PC/dF`h]6> ikfu<3`lBϷ3mٻ(>nF7/8-u_O]/Hi(S\PE1e2$N4'GUΫ>g=Qc;圐ޫk uNg9E*oXMVfsՕy_j&s` i=$/8ہ)ж\(@y#O V$cbZ%XqiY%Cݰ[Fz᷹̪.%VNC0NZ OThg}%齐/91JSt߃y7>8pW\e+ G>Joiǖ4r貒UkaҎ|¿ 9mTzh$(%~yp )e#R]%fHq^y&_.HU"S`d͂j1V5 c֛Q)6hq{ۨKKE_dA7pm{٭g?ek}*ܜouӃ2v1d! QH=̓.|XTtӚYrLid?!+~1li@% kn+@&y>V"ݾɸ1̱̱2 }\Y:'w^ bw{+ڠ.&@$'eˈhҞY<"%mY]㒹oO۹&Riu, v禜yFݾ{cֺTމyC_erW٣Dc~l M=T5y"a C*xk1kX,85^˶6j:&L->e 5iWXq61!d/Qfo6'p5WDy]X42rc^ܣm8ix3qDumSf8_lTh97D_BYN۪(IfP0pk8 oQ3* o*;ENa4q+`7lprc\j?_l}Dkv+pZzH#"3x +ts&ԧIU}oa\*O>)hd?ژp-mm0[gmc4G C *@j##(um:0c $npP87'Ezޙv.3ޟUy$q},(b(6FS9Yn"j9;*4TVPRhMl$G,$nYs#iܕW3e!\]s)]٣_!r[B19ֆ6zT"ȹg \ﰩorr9׾pϞ avoEHUk\){U)') ߮(, E8*l7܃(Jv^7Ā{aՅQ_S? ԛ!VAW7Ҧ$֠>&s(9o!^Օ3p.ZN"}Ufdw WdWN4f x2`iۢ&!ԇRuz}'L{ ^rY!74SF=L~d\ yN.`C.kMN+χuFy R0$7@U5$+jf#g"dcn~-fbX?X:MBD.њ;|sabP8JH 8H ȩK=RZcf{S#l =37u5NnEQ)󨇫B)v߲:joEW4`q*1d հ/2gn Z)BJCieJEssU$VJlSv>Bj&cBIFt|g^3!v10} 3XrlD"]&}w8"{!l{R" q"*͚t<"gf"-3a=b(%Ȗ" N 68`Z08A[_)@Ȏ(O-O,IgLv:9VU Q|R}YݲOG0޼eǜWQȢ<׆e?T&ŌWqZ loR|fм}ΏʟA{ld(~+54AvƸVT0hi>̨oQʹ$3~@%T$0˴G؝nQqb#Qwvw\!ue +'N00 ug4J= \xa> ݼ*o$yҼb+;j$ 7g w-^lA!7-L<4Eŀdz`ߧdhe! EOhM \䳕a%ɼGv_o¦{_N.+ܵkʓ=X-~o+`~;~AЖ$^zCZhR;|at!ӮѱL/3} #?A9.U &= m7$ғ);ڐ!~mO t82G;d=NNPq߽) d|qsWR h\{hāC.秚z;Hg$)ꍒPűѕ (#}"GkV.pI&@X~P OXqBi;l׺5.an1'`-DBLt DPI CA䝓rRC8_} R7ȜRTMXk Yr(1<ūUx?X=-|OY 'RD\6\(aoYÎū!A>&+I_&㽄cU,ݞ^ E0٠bw8ҥFPR4{UnǼz%r!^㴳&q)P٬TurԨJ߼ ˂}fTbn4w[C66(uR?NrJ6uƅ2ٔ7`q/pvJ@^B):D9%5=L0C,wWrMr2',ƺvt2wmn"C vF4ۚ?czOcDN\*]$㏼mfE 0ehFv>IOL<-UkJW'y Έ.T$^p_{|r>{ §cOqfT=ﳝc4X}gI{S6bc ݤt/&usI A"&`NinDA:Uyce>?2Afu#uXb'i g E݆g+ރ=t zA䪅 ľZ}O(i2 I>|+O(ܷyH%qgL~〯aytmuPg,N,_D#?a4uix~΁xe2 "ηE/dMrdcv [hf#;%kafޟ⼟rƨB]٧ݶA=J~q[mNتGOoutN}ڍ権XW"S[L#br?~5$)`8*%V:/ڷQn&ZB!a=һ ׸.i0dI, /l۵DADm{_ڞ/axKѪUŽ? X :3#|.?յ5!i_v ~7SG ܹgC8|$wnhJ5?/s}3j9`m΅D;~ճ@xv 1YD"+8GLm۞6*_oBU8IڤdD|&1gAhbQgo]SJB8OY ;kd,MnoYS:6v^?XӅ+*ThNŨDfL%#΍mJkxqrHݻ>rk'OOh:t,\~hU}(x Cv 2[nQ{g}Hc}蛻ϻ*g!:8u+v(s aξF/\ȀjSd 3MgP GiBAr@!z y"WJ1xS&r6P;Xܜ;9i gTa^3B8J^ N. n7zw}&?B_s#Ѱ3K0ht'Kf}G$y3?YҟWtE,{_0f rvsoX8d =l% ˵c2Mm!qˊd !ƹ.q?k6h}Cf{hXs􍇷v"Ah$}f3?FO϶p-9\6,_S"^ |LMw? vW?.b8z,9"w&@$>a4r?pFy~\䔈#ZNkdsKOe^R8`*(T0\~8Mn,ltO5?8MiiqߌsloISE09\T7E)HŅ] f $.r,jA9$%Σ[y|YӃ1C*9z?SG[d 9]3*BӋO? ed$ujۭ:`Vs\(9#Ds3sCs >W dLvcyi^ژYxm ">XYOA=IҒ0`5k.Y3,>N_\-~zb~[ضOua[ Gsn:]`(yҔKbkc#K O CcuUFV8N-{_G(ˣ¼g\!HHS>IPd?O uxzy,|ۑrd(s .67[NiѡF0/Cy@e )IY$9m0!o 2e~D,;x#w;$6@jQ$Y^ 42I,$oif 8Ue}ex[Ba 1((`tַP\W~Aa<_Di ZT$3ςkFHƜܝur?KQ^ G*Sbh"Tr߲x uXYr]cdkTnQu4es=AGV[j$+025@-e=ePٴq:<"7"?y%tIf;rïmv qa2%gj ^ @:ׇV}Ѣ_ч*4hͭsZin@+UyMXBz.rX+"v^Ϣ .A'g4@,mkfP"6ΩT"lb"hƑ(θǛ ?džᒥf駉CL36ClAX-{Xa^X\)79 9+5:^0*TDh8BTf _Kª?\bùS*ŀwE]ޝ&G%o(Z{|1f?Z;vR( sbeT^\܎ w!c>NWjm>N[֊i/-U#G6FXE%lك澤_uzޝ]9#uܡD{+yJ͐Tε>Ȉ 5 `9> 1qRvcၒݏn=CJ4Cs qHYײStWs/GѱR.\dU]ՃZ*Dp(~a3bkEPSI*M84DUeY &1V !*^Q.ՙ|-_-0ZA2K˧c篅hX[z$c/e"Jq!N}ԚeVc w !ыa2g뺥S˗k>=/k'd`uF "46OSlWP6> ؤ]+J (3|Q@[}=B1v 9nUSYT^>>*b<[ 3ށ'JeXK9z^uCifo0Ti'`s+Ss[rjpy2F|oN@bC{sTQzOWˊȵWs߰W9_ѠF6ZS k7iI;z"Ė˷bGui^X,ҽ5B1Mh*熛&\]4?ExtG*\'nͦQ AuGݒ[0H]":h\b6ml A7b)g&HY%a1h#z*ȧ[xrtGڼ6 ~Ֆ3)h)A^9I3a"ӎ>BT&5JD$Dw@r%6?R⧫b'b4:L3-њyeg;p %߸RyK%/!e?}geTGti_:!< 1GUp@9vScBCMGm+vGkCޅ_;.5Gn;Ajw2 ol7^?r.̧eyWm}"iI,zx{N~fOs( ! wu\vPg aŀ@F,8 Cz`̞2Z%x&0[0I5P%"^>/ ܣ^`X1ߢ;N1GZķ~ r=|^!:))48.̵ςUu=2CYx#-vILXdt2{R)=ⅻt+Ơt\ >_ka=7GHnz &M[_Q]'L34 V][K_u?VML],M]^3m~XJQM䴽e'Η+ZFJ׶!!LWg'H2cqʋC=*EQ0ZdyCCqwO$ ĺHL;sF |:cR9e,ܑ*dK"{7+ISŷX6COAAߐŮOq( XYh}_; @c\:lX>FxhYlRrvao|#aI?˭s)# tzᶓ#;21­9M8w]cξ /2?؃^g (J7٩ۈoeJ'$j* ur6.VqǦ#q 40B;l}&twxHTF".FskϹ~5a΍|ncˈ7"y<hEocf-_#@rlN 5iRrm9G jEE_l[M<`7n UQ#XMZ5L"±Z.KK_.Yb)xY2؞V0z;] hÉyG )R!fchcLJdGA,dXi̶]^={!;-YHx pmCdYvTC'S8jVH )*D?3=8'fyc(D$3̶6+WE`,sANqo}4kh]٢}_rQ#89<@TZ.Wq6g JD`O^8@b$"ӒBKyPS5W؅̶9Q~jXX9*o QƂo[? ˤ'ehqfjoǼk@:!Kj[k-HS7x%#~܁t[k%RPBVKA@o]Nu4$Şs =|H}wb/lh.dp<3p{kcЩ{Eٕqˁ^Z-vϑ ᧾>3!4J>ũP&pS j3sl^2[MɻiA48gvX]%1ht շ\-rq;~ 2׍5SIv.A(ZW5@!?ϥF{/MU魇0'" <,frk$U WQ>VjF⒍|z,ENd "ܣpuWt)=y\FF@ki_>`AqLF[-Z|{oKcyaˎD:s'N!%ҽF71@$aRbCnMz b+r} /FaJc`n3d9**Z|9Q^$jW񫢍kcgɺ UKdOrCN `܁I퇷DBW( <j1 '#? endstream endobj 223 0 obj << /Length1 1630 /Length2 9917 /Length3 0 /Length 10747 /Filter /FlateDecode >> stream xڭweX۶.Nq+Z$ww(P4@`SݡZܡh" uY:wHoww_BC"n1@\X8Xj@;;"w^ TIg q  @HB=V.&&k./"@gϿ%H;C,썦 eK6wuv~_-=2G] |LwB;0*e?X\ 1|C:~\sP]g*8ԇgi'͸#nɬ:{^vQu G$6.W'7 Tn1}j۱ap|:EwsM7<8yؽ)'FHr@i|YgxG"=":C5L㢰څBS$-T`^8;r䞳U@M?f2S ٮ v1~)K2Y0[eXPPMc9w5Q#,toԚ*^v23V{j({N܆>M{5̭˚΀&p:IrǼ`O<iJ `gD7bsOg0eBoC8 RO#3׻{ZtbY%bԯQL]0?Q! `]O-%ODV{ZYJV}W|Y=vx9_l{Y|N .4t]/4-9SvN 3T߄?ҿl BsgɧsHS+ph$DoۊDPjQ&|O}؊RTo,O#TV|ys0bKW&D W}|~ Sc`!ipv\Q"xW^cU{!ÊF,fiд[Ӝղ\(`2c+]&U+2pϫkc2sz&z7Y2=])GɃDw0Ma{0Kg%`[]SCfuKZ}shZs52h=FYնLoa`WT|϶^U)5noКe{5^v!L 2zzLOX%C{.8G^͛:Bp}*ݱ3Y-0!v,QůLXzϽ J(P(ߋRt*Lĥ/hN9$̻vNy vq0b\Gy%O,RUuqݠ&-Q, /uHYޚm=W[H@9\<~鋎 *1MPk6ҵ:4Y`F%r;[TG`kbufT Џ>=(pJ,}@4 RhkCz]8+hH]ߖ=xCϨADr"5[} ]qtQR)}c7*G*6f9U1Z߮,C!#HiNK].%5 Pް%e~T9$$\Ӝۖ)V..s 4p{Nk`Ȗ*7-G0ӭ}J*oZ吒ag-i{(.)Z/XTBݡOgOxQu+R @,s);(HcNM"Jr>4y 6\c\V$,*F<a*X"^w#=^Ej`Qi٧Xb<pkBޘJ([͊nK~`j YjX:H /_Er%wMTSZ_W/݂B2mۀLN;Wmi{uZ[ŢғzPMw,%y^Uy̴&rwb`(G~-!ܐɼ}cTMg5Wr4Fc=ĂBFG` 2EO3Gײ)Zk#k(EH Wbl5UuFf24T2{qS`T~B1t5VEjK.S}K:*4˹qnWin.&ad\;Bj&[qx,3]~4]CI 6w 1YCR3סXl'D`r v"Tqѥ0u:Zk^|6_3C.7%-5KdҊIyk(d7L-CqprvC>D=\*y[fs>{ 0_Ym¢1@tz83dͲlic|Eη@d1d6eI4އc11x(!g~E4hV5YU-}L0c@x,ZkNǢYV:}u4C<=j._pD,#M&G9$ قÊ(3t5e"ŵ#`ǩD3wqmWg=%gX}dGbŘ\"Jb׭4 k:V0mza6pڍtf2,S|c%d4&\q6!vrЙDVO'_]qz |5P=|y'+$aP3B) Sc WQ(<$:*8Xl °ƨ -ͯV76q Kb1K# YT'8 -mIK qD:uWjG_J$S#G?|#&uϲV/&1% ڜ>GHv?j{JHV׭՝NZT,*˒twK&Ĥ:Ց%Cv C闯Gd#;Z ^O$ݡ|{ ]2͚K m1;!PE{߽]=w!"TK8="qYLBK F8Z(p8OeBݷN.!0w1f4E5# LݗChybb)~DN#L~X9GAq 㒴ӭ1&I*ly85-HfAŹ}/u8[u &.k^H(E'k0xхbՁ ?^.棰M :_jHȊ 35(؛UwT,h:MnAj9"; Vd_Kfƒjxuhx0Ļz;Tdb8DLFӸU'>巯ʡRG^,9w2 <'_E`:?RWU {8|OV vI}؍`=BOirlFbxvLxhjg`&x4!9DG͝*@Zo?M.+6EM-`Ý>^]e!Dӛ0t&FI@td<uM·c;C&hOso>-' SR|ҐA975v]^:23)EpX8#Nf5PRl#16z)."*PiRtUĤ)cT4E 20ZM+$3L4 гු^K\ξ28a;r<qHwĖ UUb{IHkfl<6iC9lwtmLs:BtKOSh*,T fPyS@ENt@ DGu%N ٝ@xSe̥!Zu{v0nN(6uw{6M쵽ņ-(6%_e>:)k-Ӷ%$H P]} \.q 8']dl^*Cez4Lݒ'DF31Ʃu-ͯqi)EH'QE^2s{n!C.Eo<(¿2xT3IAϚX1&D.ÒIs`B#+Z*5'g>9 K}:!" &(AP_lUYdé1"hjGD_^'1*VfczNflJAW$/QW1E}o4}[*am6@)xbo0"NJE*4_aYTxH+,3#E>(?&;Ҝ(%QS!0i e1lQĨښu*85w7 Ě4rȴ-:9#ڏFS6C0{IYiP9gI)636 R'\O!ڑ _\V!3,k̓aM) FkDv.#GZN`ԓ$XL&ݗOtcd6~.#g9q0^a,C]*ϽUiȖA?gH{9qg\^!nqG6;ج&*1SY?'ۦ7ݕf S2:Rh1&Ԓi2?iG>}G@!/۟T\R-iN* *)*?i 8zDS.UuvP#= L+fW'9 [KƚV&Sgg1fk6ȯ#3!w^O{ p@uE CEɢ e^V\O4JJnY+B}e-TU(·Xy>eZQRH+Ko#lc?ˋ*_}\<"(E;Y9_u!5;Xb4{lU3WJM,d'g0Ìv+9$坕cg9 ff>̴Orslkm½BYϳč=g)]m&1}->A%Q}lj.g `6vvkZQ>SO8թ3K6riQk%BkЭ8uw$~\{Нf|xi]L!U8Ys&@Pћ̤&k32u%of򉴶H5&OGdߝ~m ޓiqb/ #\ޙx(sL:3ݦx7wϊ*Oj@ 9>O`CknM[&& tс}ag5wb+=Ucc`$PJGޟ~Oq H5s":QoXz N6ehM-[MmQ.ڲ؂׉X 9G.|΁)fHr˭K8X^!jU#Rߘݪ߸ FjX&),<'_c0XI]vo'̄)|䁳7Z)71XFL`bjy%@jITX # /S ]e#<0*.cbƞ~6Ggݰ'X FaȻm Xy1n-DDdCHu _4JW%єHѪZfQ73mU!dkgB<Рf<|f­GxTa>(CTa-Wnv+V)LKc@XJ 2)dox<@a,ٜͤxMqi*A&Gy.cn>"ICdGWqWS ežrPU[vًOt ")Kord HTKf^^XE ;rz<-l:-I9s4pta'ȳ GW/= O xb_u>݋Yc^pjG@ęۏe?gLVnyTeT}icA#ʒ(VzKw%vѼ,`JB9&O-5M0Eˌ*<$yfh{k8i 7](+^蔬J)Whӡ+١xXjK;s[篧+|&B'I|TjkJkZ @۰i:gڋ%3-$@l II =Xcǵm ZUT:ҙez1!V=b"*c&q+do`Wtt 7Ŭ36us c04T8V`nNTl}"2<'ېvRA@wLb=1wl:ehK!ư K;- D;Kh#{Wy0W0УhHt/N7w 5-g$57uq_T;2rL|MrnEP0csؑχP xʫbt ij,Zbc/&e^% R`FWSTDR0[C̾ .~M';~Du}s^ ދ\R,*wJAҊ֋ r)=M4f^i?gg[K0;4l۳qM\әAR=L~}vQˁ?&YV21u >uə^?TލU9~dN>lX^wT xّN(c[Yμ+o[hR8;!oqb*Իxko̖5wNRYduLޠf*'P2L+ ņ}SN Ky1qcG|J@{7 -|g,foQuZb跔oo zkJqiӐ)9j<szdb=$d\ovKS"T-jY<> Ңv{lJkX*yߎwϓ5Ⱥ/T`mYbYcďTRˢPgtE̼}p}ZB_'%!a(b=}Ҝ_F ky  f̀gS?_#QT`ޥ(CM|@]m2"_V)vPxoQqjW[]3;͗ /XdVr.?wgt$rA_k!NQXtUS Ƚ)(=ϥ(#.7#3ѧ 1F#8[†8;!5sfJ8AHqgOs'eڠg4UȾ^Τ7 Oxc+QEc[sG 1Woe%"@I@ͧkC]Oq5ӑ\(3zկ|C!o7ݶeDz3ەvItR_ ,J]H"=n{d2\{0o*jR"<&c *ԅ#Xй BI<Ԁ\Eݺ9tqcn{]9M˒$bf#(mtBv,F]ļ aw=>ю6Ǹ7j7|完 ҷC%@h!=ֺ,_}v.htf={q~e#χTpKJ: efM@!Đ 1/9ׁ̩QeHq1&^d{(E{(urvk]:SPuGQ\@huc6ʼbZy/q ;X#bVfs n(rR ԫϭ7F:4t[t;-A>آ"eWIG,[abNp`vU/UhҶ+72Қ߷EJ}jprYȊs*"WQ endstream endobj 225 0 obj << /Length1 1616 /Length2 22914 /Length3 0 /Length 23755 /Filter /FlateDecode >> stream xڬeT][%9[4wwΗ{_~=^cZfլ$UQgp4r124մULM- jfNJJqKS7#H͒mi4Xyyy(N.@k7_ Zzz0Oߝ@k%/FuKK% ho WVѕUH+i-A.w3{9@hn rX9c0wY)͕/+ditXۻ[C_BN.#8HHO7SrV#-)__^7S fO.3Ko`N.iAŀbimbao/?:KNNv7rZ[1!i75ϨȂ,apwO˿ gfh0p{,,ߩN?/yRJnPsɀhS)Gj[#VFBfn2ۧ K{ |6@s;?%s+ѿ̙Eeu4;8ڻix;?JQtP\\F6G/M\^e[xke`$AL)O?nsw{Gauќ?6#;ӭ'odRBr$ܩQGaPco`F6o[m8S4GҩX=uoe?9m!U'7AQ)rW߫E-(=.IU57Nv?AA_(PК0NϨ%1wig\5[oYAnG"TWbWVS$scO|"^H޵z3t ޓGIRz^'IH;zp^eqm:+AF]tN~ڐ 9NBw#)zZCkwQ=3o xVhqZ0,-odƉ̞%X[Y](rG"#a*tbV =t>(~Er"_a\~ق4.Є<ZgdOp_.׎Y(Cq@p>EŒBM“pB[Ѕ1>pXcfz^(Ayl#81`ToR<{b2ٞv~>D)k\E=NHS^J[׼ͥ!ğ*Bh71T:.-yo5M$(F=eB ܶqKtȺZ$Iӿ ݆8\qML]i%4Hl '/]ڞX* hڻ˩0ZlSFl᳊…HId=stlaK8qae@Kc=,"2 m,' KPk}3t8|Xw{6,pAN>Ntn€1 ߦ6 zV*^zX䷁s`W;jHXVhodW  ٍ4ko9[KL$=ylUBOW\F314d>2dƟT>}EvW#M2 ': '0FpK<#e{!toJjJ*P#u|=RGʠb>cbɽwG y\pxU@E5[ ,uטh.LѾ6MzOZ>9QQ2=q.+&Ť+s4>H&fQ>C;q~,lϜ 32Q8M#'hCjm_9%O{.ygy]7($^iz]ʃWގͰSI~t唊nH]Ie\(g+\lʆj5T5Qcf%nSj@GO{F55:gSLN*KiYPL yT~oeH_+#ApP5-SrNmÃƚ{/9a01[&m sO$B t+RmJ|^wB#T_ؔ_^Mq^5lmt6#XO;TdJDq%WV²^gy8&`:.N7vѻsID۽Xbԉ2E$7gOFdcTɰdAU׈^)I7֮Z+Ó+DD \R0xڴQ6PΓq88qI14Y6cʢ9i^Dg0\xW sk9j^5@aUY~y=V{wvnܑYτ TaYhC!I&Y t5lIaы V+-ӉhM){,=IN5s 81,f2(lO;gnÔl /Dd)PD(Q.5Kn5){\0AH,x[{ @&]/9H>T9,p'g1E=X/,g1A8Mzv!mk6d@.EH9eIS^\L!sj9?!j9U$]dZ}qUլzA.6 yժ| WettXv*az`W}6$h|y ҦQH-JV +^)z)T묐*v\0x+ǸD#pmpV8]p>v䈖( !8[^&BNH :8C8}H9MGv,]UWjYYeуDNWe[)hzVtK5B#Dgb9sX|FsC86'`fx9#: 3Q$@,@#w@#RSiu'F @2)q6p:uO8ۣf4Xc *,Vf}ą[E_MNm*D0iӻ xUկ?ÏǎR"0M I}4`~ô}6eqTMMgV5Vx,Ә&''0Ӟo aXb]$~EOϥ;(Kׄh呁y6 kQb oxcmxȁm&mOV}y=>;/6l^MU֝k"[m^.+ LKO6:li |/DvIeZCf%vf뉛zWw$s.wܔ5I%ō{eR ləR/ueck>ajVѮ#3NOJцawEPM_#6Tj"þt6 \2lt.ndFkӘz5Jmg~"m(3YWuѝL#diwrXb;3RAzG`ņU&k tkіW.4>Ƀ3T:TawͱڿYABflJLnF>zY)s!Y8Yu?|[FmS]H3~c6la@b i$͗1awdSkU;yA'G:(k?^u[:Ԩw_qܣ\?eI[T,gFwX-?~jKxܗ{zBk{4tPÂC[bX/ I+!o޳V%fz>쏞<#gff~VLBU"ɞ}~L'Y\i2I<qSj3G!9\p" B ey+\ZL#h5ZltEvwrED7_-၉ mbXz ۬mV&~ Tό|#yL2]G7,M0&qF[y9'̟8괜ٌzNq)to[y([Ɂ:ϕm"Znxh4S'@$7u18|>LA9*0V?54IF 5hW%ie :/(Oi{B4"4C=J?.HaLX=z,c?&Uh_~QNWR;ȧ4k$oFR1ުe\nӷ!ǾwEc Mg@{t3 X=ޅ_H]G&ukŸOIUG.Ƈ-9K겪 @C|B=v=wwpqVqҞ4\0.-}La3zKpe4%K"Qt4w,xh)̔*z=J5RŀG&6O{Hz[К&o HKt (ߖr`?éb,d57Vі%ba1+qHdaji;2fxnP4lY\xWAs蠅 ? R]>@7JCuz!:kjM~x,T|V8AHnڡ^5uSFczF1eyF ZZϬ%V4Xy')q2@7Q= /H-GՌ0cqrC{żF]a\je#)d|] /8x$ D0'` d׫o!dui -iBto52JEjz9((v9&9!Mm]z_sq]q{sϸf 7B.nKQg%F)!ovPMvU^_ccc /pĮ{3K #Ѷg-S_ m, InҺIݍex 8d@] *gD$/5YyGmuW\,_h`XCTFŒkA -,G'+a<^@E ªdEoEO'ֳ!2﷎PP"OE ׹b W! Csոw+M4SQ*$a]8̿L}zKd$HsOnk[?Bji+,whI96DL/%Dlk{']E\P,"BVnEs3hzQk!*!8jmiA[H'wD(5,ZDY,x `<2yy7uc)#|h%5$]6.v:9B0 iQPS5g- b{Nk?6JŘu{Q$5mM3F!OT4Fkeer &E_Q̽1+qMEj|.\g%!,οMHg1}CmW 1޺] { Eᭀ3oe8ty YVQ,*9!vW=XTaA=[tn}GS}e= 7E]#T{HLg69{T3.L=\…/UEerRv1uk{7Obq\@7ه+:m^|VtJW[5 Ė!#@DоqzֽHf[dy[e֨Z<1g&[ރ,g1Det{*zՍ#󦏳l(3(]nx?stT.)1^͊?9-V bw(S㰉}Gy V桼Xh?GMRc!V 'R?t-&{?`qJKx+VM,iAnmjtyG6`B+5F͈Yy-{ɠ ȴfwl:YP?xxi0Otȶ& D<:.f GTn b0_e*1poiޜ uLG` ods㡔n7QLHE0\Vx@<ېs3vpRR3N~JTnA暀!Sy8h7s%??"ǫ(2>#7.>[WJ2Zѧ&" ކHG|<="w-8bI 슬π;mʒn6a-5ܜe}fXP%_6 ^o:e:g~2l! Wnz0:lάHa>e0oN#XJ4Ucf .Qߥ ͵!ْ0"_1HG8XGO'?"ҽ Q6#}h f4R]ʥ:0;5Yu" {ҥ"#cw߮r-e!€v3oAg 䴥2BC^PuwA%(q*Eי|=ݾ0tK.0‰j6V4\h"ŹJ+PtxZy㬱ǽ[/>58 E .~?s Ϙik7VfQGavNiч]IeH5k,k藧hܦ!WZ_)V7gn#y3|$$dw5ۗoH&J˺A#sPV  gD"lȫьZJҼBnJ`,ykH ,z!_;X!_!4uN NJ(h#ECt\rF{glo`Stz#_8 kkթTͼ_ۍl6[K_[>h;m8F4Qpc β#3`(Kp:2@iR+8A^Pv 64WQ&.;An5>}j?gGTV̮D BC- kЧ1" w=5* k6A;:Ef!Ϭ%(,yiP)Ы6;^*õ!L *Nq~Cj2AYU`.̐gW$l&u}yכ߁ROoHv_6)d2MISn|_׻k~E:h8VhmqJoF pWYE"\>P]Z "ôʛ0d1Y+)*S3grdnKT?v ax`2읊ÏS&2X./t/J7?dLūqW#^XGbjzXFTW~G^`Ӧ9qZIBK §-E3&OUDQ(Jfsͦr^B&UZN ,w 86G 1{G07EL@*^?ef۹N/qݻW8[b8#U RBvXYO.]-F0쐾dV/KE ,=#l!/Y! 88Ѻt.OQQ& ݬY~qVMUM=Z$[]: Y \;QIn.a"7ZuC*4?G OUG!,+;jҏ$"55K=*+D%*00dմ9_4@>3*QJ <Qr p4?(VQ*"Hj&]e;c1}>>>G/ \~ W Qb_3CBѠ\@07<+2 fSĩ474`.N$-W@cSU2{6 %۴ә8QXHC/juYJ%uQ*c&j<DžzTb^eOM5]W5SXڹ0]O6];AlM~d_cm4F#I(_{Q_V:[QO\>)G&{rdgDFY=ZGr]{bqӤMHw^wlB?zJۼZVe0|㗖<:leNT[i$ =Ժ/6Ud옗 X3DT5gyw/ŮQz&4FF{S4P Q JhOjsM^wubk^T죞QG -}C=.T5f0@t?kDW uuv3xvA7>dvMBy6яPpNLя*.[6媛c7MXKa73]}m G"unjL䆰2ً{_&Cչeݶ)Kс\RMa ݆;L09!)9UңYrF)P\)*u@1gzY24goBdח]HK8oT- j:RG9ȏ9pbeր"e~-KX_('oQ^ZܨԀLŗTPOGL#X(Id@v"Jn2Op;T=!U #oeu8&q*C`C娆;ab խDsp bo\"cNkϓ/BΒU,s6˨ x<+JtIQ?@1Q zqNOH?ofbCbђbnjm=˜pf3vτi=];.{ DVڣ$R}K sob?ȭnaNKz_mjDh-UԉB-A6s[+K4'wbSn\4l:]h5Zyt9!B!孼* (mҩӤL7h[JVo+0}@iG1P܁]-O@W:%|B+ y0j>/%'VeZr\'&SPRuyL5DGA:eot#weO:{Yh1B=uB+M#!Z- f̗7s)ONV B>9ޓXAϔ<髈@yu6uijI5.DQ/#O!,57_]%k_uvvdfi;J@;h&i,Aڈ}.bUyE |b|$aVni'4eP͹v2,S5,cāBLW ȓ;-&{!dҗp tN/sdJÛA4U'O]S*@|ގHx2Z)Rǹ:n!卫Vk o&#>oM-تI7=Ւ(7R'(I'ɢ_h컛l !I5b s$=WS6!%ܘ mIK*3!ڤJKeuBkq7uksȸ`4>~9<ѩv")L>B~eqO.q߉2Tc讲uU&X~39Ѹ? =,sߨq,Aw"|-5C2 ڢQbG_NGf0IC@ \ }%xCPՠ MqsIbo!!7#tںEyh$]d,o:0>*~ԺY3%Y~M̞n&>C]yEե~$x6_W=O%s /͙^Yԗ|:~ĤJ nv␸T0h"`Y]7˔\/ן GN^P9EiL\Re.W]dJ^1Rj]8K'rn>>C>ߙ#qT_A,;Bv.X[ '&u ce/b([˞aV[*~~'L5{_Hf 4]Fe' G^" ku)SDLЦ*<]g/͏j=r脲lh$Z?ryMkBj y;2/I O`}o!e:QZQ҆ )}@GܺzJhAjG/*oްayjk1Ԗj꩚5wrn ~2C^TΜ<*NeM~ctI>Kp^Y]x??Vh{+\#9~ <)-Vif;bf߷h 1*#z49iq+N= p^98p>QqӉI[~)b_>[D4XAp|ZvU}a\LȾe_FS_gЋ:_ׅ)^J{[/CyuZ.B?xbGޢC֘Cx'*8cT.RF(ց0szw(ou4պtS`"t_.kL~g\Q*h^v˜&|W@ QMꋏiC3Ygg>+ ~0r2.*c2ZjE\% F԰undӄzwc%M2M<ۥiA8Q.C-_1 ˍa:Kt\(xc@L;1׋H/.l"N5`[|%7b٫厒y9$*r?:5cȚsa`S8VH^$lb Ī.xDuܲv2OV FJJ:"-tiǁCDOX֔ žPSjݬV^KxڋJuRLITO#|kcEڽkwYYq?PLB_@fCeT=U'5!JR!&RnTk`iۮd :?)SG龳QWpcل&p]$(7 ƅm4!m74*h53FJwt^ʪ_JxRVy-Cv9.B0ZğB th~g|0^*U·KahNQ\g5(׌ɰcs-I=bHif< a\=a&RXZEbY&VCiE!2 n%dT#I>sʰ$[8m+K֠R){ #+tG" I4vMo-j zW@w֓o^Ƭ]kCC.&X_9/cv \izHʃ/jDx6eÚp5̉tCߒ1G:Y{DYTS=R@EEtAϽswr}g+BL֕\XNXnffnP#߫EO؆vIf $:{TSu{c+!fx/#AgMrK V>ӌQՔ0W B{X\MQ$UAG@,(%F"Mi} D :Qa#۳jġdv]8 hDjn]|0~UhdWAoyED2|1ZrJ>(oiӎPLK,~P#H#eOPA]iy/LT&n$0=GͅvXPIҙ4I,3%6щ( 6x#cUH5ҝ@8 ? n8'L'X0x`ߩDq[/-yzpwc?`?[n?"̙il/.{%"({ExQߒٌR.ʊldOH9bgꬭ|4_ a*PUٷH{h|niq_Z"!Ɛ5*bh,Yzc$4d.yPu( / z>$PC Xws٧laKnc0m6AS84䏊8*:i4ug|p1:"5OIJC{SzDQ_&<6uJup#)Wuԩ@iù7( 0d,]"a)Hu TFksH`pP$H'wk< A}9ߎ̩/;P, 1QgT:aQM<fԮ"pM=\=aI1zDXJ]SoF܄jgęҜ_ (u!l:WFt_yևPR }lS}7 wl? E 7Aľū|O۹p N}js]ߎ"-Ab#rGv۞uN]WN; UӅiudN i넰~vCx~^Ob|FTq`|rgMuwE_U*l:L^搝%9q*̟ ,w ?` z9['/+@o')~]s!t\Ɛ}}-,")|*6jm?0K< h_&H{ةa+9XYS} }2Z˯1oݟ'wͿ'*ΰnQ1lE ȯEpT*S\A_NS<#7ohLVweXle|숧`Y7VV냦jojjm}'x "TY,{o6FkGa) 9l\XP*sS$ ,t7Fbsy+ =yIK(QxU%$.DT`jYSa6~3jz[jUN|k')W6ݾj cAQ.0T-(yu_%Y}STۣ^*(Ê*KW-],nT2J (@^BΪڼ>H OWNZ]x)tE rY#aPOҠ 5K!~ژYmC:oǷw 6B^ÍIw6]9%ٱ֓U;qA&sQ8̗</X Ͻw0RL  H$U?ֆkkNȠv&D=UXǻƦ fH;AdPfhˊ>%YA:aw0jxQVv=c`qV;X|6Q ȄRV"j ڕw n~RS0r}&]f(k L^ݾaf-Fs6dOR#3xa>\ɬAFћhTt/&}Ӕj8{A)0F&CwU&Mᅪo>nm`zz ûnjx͡Y@Xl@(_lHD+JKYJ~fH `\=1 ю.hoj V 44 ~Ӳtq_v%3&TWs-=b"AW5cLѽSr>vk==52gNs\Z:Ny%7]ճ@b<B p:3"/ &ճI!ogt!c_w.*bAy+'feDz2 6q͍O򊲨͠R@N1{u=E1o3EU Ëp~PS~LYDMYd `u55&e0[,1a'F4nycؙ1O=aÑbŕv' M\v(166y'ʂ8Q9瞚0G,yU>(]qC#n,"֐a[\]dDG),=~p @}*9*/w*0Tl! 1GW䢾썍'ꋁ4x7xZt]Cga<,]Rh0ʪ9s,%U1#\?4G@1\.:@aA{">!l aobalUns;ub~;;X:7:oUBGJX]`'r5aS|$u>%\ҡq+±s:K=DzR⩡ ^ؾ|P^(O h1C$r.[Q!4hHs=EDse"L01?F¿aP`/ײ*~Yj琓WN Tj0ݽR{ط:ZŽrLT^!bВ؈0p-xa)zzYGXӑM;uֱq5ܰ]P)MתӂL{^bʀFn;\[. yʵ1.= /XzUt%;k[!}vAm΋?#؛Y 2FD>"]r=F:E_w1G!dM^^Lv]WscM#dqki]!,H 'uBwQ, qئG(^r=KI)iq8v潥ng4͹ v u:^IYV]T[{C݇٥sCsi#&:"G389o9vRݯ3\m@ 31ȂȲ\/GB #qE֘@+q7z{z@#>$I+d(OdS_`A~ʹbdyܥ{"ͤ]3ga~[O<>ʠꢻ'4Gy/V5%)G$bCH$OQX CX<>,(A-E~6P;x7'vBq:zT ⰭўN([Rk=ya1JqI+}(p$k׊DPx_~]tA4;{ &-#X dF*Yķrd 'x[%Gjwn~u;C膺jR)42e |3Bt &a!hQx7|r[{;^, g(@nT Cg./Ao+O&CҎ@{~a?/PBR/E]a+q"= Gb9ǶwDs^)GW8uQl+>A#+1,6Ef0:{]".k gU#Rz!m%ҧG4Mm}{z^%A޷{9:04sfqA%(Z)"H֣ھ<|*"݌u2e/$MNVq#b1 =ItJ7Vݿ.x9ӂu;_d(VZ}|Vѡ%+9=KϛU#=f^O֣I#zT#LX}e;.Ev@xW ;/㟮m|j f gTh({vM)`AH zKxxthP-QK֬Uw,#:I] S>¾=k,<܏<T|~g%"HB Iby6ݾF䶾i8 *ܽlw҂uoRE| hAG@gCN0)Ca-"Vjɴe ʨwQ9K >Y;/(&#]nj&v=0hJE m3^b=ޙnOUJ] #6e NK c0KԽVZn"--zEud)ޓL< iFc1f4,mDOTn$h<>vh zbk@*L# B$E3ο}u[p`-c,RuVÖԞ72*~Ӈ%_ SrWROOsyﰦ\wuPއi8pTƚXN .m,r@XϦ]T/藡' -OɓJCV'cȔO @)81J(+ŕ5uwf\((a_ZCcXXdO{$9R-7 ^Hf*zPY/4ϩ?n3]:B aQ8 bl֡PC;3JY|i(+XZ(mzJs< ms&AŘ. !Ʃ j}}&{xj|ȑi[oKe3QsH_Jwl1.)D~ \4|KԳ?݊Nn+ʞ,gVsB|ҢA$kC|pE0Z<,$3e BԿ 1'V /JwAҴvoRT}jaqvgxDL6%򖼨4wYfxSGd2݂vv"A`au7%ʩ?!w5 _ZAP j=8 O%>R 6)t@'M`B5JQKOqҔ0HpE`XT_P(w)8*x_84eKCd_jV5} n0`L4r\|%sl&}cu˖J^a*p@FPx ;`fVE:TKn#Ѐ{+UwjuPl='VZ璾f[,׷ߑ{E8jR&K/>ƌ׬F>*u(wPwr܋<=|틫Ɍ!,Alrrv<떅77Dj_f9ެΖ?` >DX%9OL]4y]؏F g9> stream xڭcxm.۶m۩ضmض:m|73=?{\8uU ʴ&vF@1;[gZF:. 5௚Thlag+b M"@c lghaf AIMM_\Fadaf :T@5 ,))'SmPp10XmS;G?9tÀ@L4{g .&WojzSsrv2vwͪ ": d 3ibgOKku6u8ݝeX8[z_e8YؚW4G5/__} =m/ hmJ7fpI[S;#ÿ&.as:k@ʿEZ{LprvS(X#G#s,>wh1kk9C࿂qd\2){] /hkZN:k-,܁& SC뿳^hma ed`o6s c+o俗O/*+"H߫S˿='Q3O!!;w-#;]862<!bnj.2JBP!GEYy^(`s*[+r6k&8 JM UX2^tV 2[Z+[Y,>膄0TxԽB>>]!~$R#awmR*Ѳ _c@Ojzg=dߠ ;!o.+57. ɎH y}_H*ʏ)n{~5y]Փ$ sZT,f׼Եzy&BwҮR cpc%oC=Ѵc:x"뿭h2ĥF,ͯq{Rۢ9w: 9%5ڭU. h[M3v~b5 dTv{&>W:Dj${'3wB¥F~Sq|FRۇ/):*?2~'x<\OˮVq즁J Rt_١}xӬvГgM+5KLk:&Q5y-H0d0),$|CGnY~ Ԧ/U1jih}b8Y{v GG<lU.>LgDIˈT睞ýURX(0n ݘ3vc_hN%&[-\A-Bx UrjVYBѮ|ʏљTj֋ђ3w. s`t1kN§c0V6BN9ʻ( onߌ%P;r}!l Bmg/:ipRO7dn$c&hjlz&O 4,Nm4a)0eU TۼaܢNՅoZ2 &Q/.(8zDmB55w2(Yv5̣cΜo`m1csV1]KʕLn>zHy-t6ji~Gw'F]U)e2$;:Xz)Y1;;mJ)ryZ9 Z~.tHOak}/[x1e*/mH2V]FVjJkJu#O qJzM$iu4?r=-Eȋ̽+_m16|? 1F?dʚ̜mx[5 cϝeW†p*b5"2^ms N 3)@(B5RYD0t0]QQtF1 C],>;rn uKy(d:KVV!ŷz Y^"2uo* BAT/XV?BP~ dC!+#6N-W>2fa?M d?Ja< 6}U=+Kd)XsztlםKu2X4DΦ0)>@LE^[ >GNAo|~,=gѬs!C8_ uT\Լ2JuSJDLOL-Pv)Qru)4 ^=5F( 15@EE[q)^<-)#rHx*@/" ymeC a3FZ5Tщ־Bo| ).5ʪv߄;`8P.R9S3: H%GڣDp&Y;j >jk?#ڰ3YFn;ؑ8W ۚ+0z)߆_QvAgŠ/͕N)W+"{W&qB0DHc'H,:O<'kE0eo?KS//QMY$;ZV ]BfMvF~9U|'k, oȓ5 O܈Z#}hz83~53717R'q=$Bnހc`A 7Hnblv^Fb:UߖMrLcl yQ!BJN.^E$Jż5 (a>3KRl|Τ%SF,C8N!wʗYX 4MVu9H l#mMMu+6^28BmvSʞ- 6yYdI]*ѡAva JRx-&?5 {RO䤻*4f m'яVjc p-f`Y8Y:'}4wLOHmZtfVweJ^1J+/kla 4TSP;;/[l5 _6hWZMO^)ToyKzŰ K".V4UǾU7k/H;Fvվp(lK/v,"l}QRx]F [T} wFk+DpyK s ]5ePQz6Y2Q,gSi `޽a!1#ʷFc~ev .g wG)Ai1CM]1:bv KwF]!N!(6IJ|Wo!JE  7b]u=2EvXAR7D.M@,.ƕmzy3q\Gu{Cbpֳj-(/1goxV s1I0s֦1 fC3X ̛iZ׶B-`-QIqjq4gYVt3 [&Du%鳝ږp*|:9bg^2'qcN4{J}^8saUSk[ik{4wu\-IQ4 s>ܖAxh"tzL"~s4+%gXa@ަHϬL}y+,gC5b+_2;}39-]FeԽme<KΐɲK΁uKv`m{oTb6AhV@_`(ǵ(w텼OH#͞/Q$LghfF~|rw xĠ‘.WsB8uG-&3>LӝKgçpt=uoTznb5{cB#+67xi((`aPaook :LdP }vW`bB+bMA WL}xSvz֮ԏoK0a,c|S,&tUUC8%i_H&4^0TVE22j qJ 6hJ!iXsEmǴWo9JOr.EO>OĦYxQ ӽ؞BiZMhF! XVxgTYU"^.\;ҦGװ[-l^9"I){󞃎f-ѡG9ɜ KYwKS@WQ,% W&EXRi9؁åEq̆dڟGSmk2kYZ+Dيs$- ~[7QWjhtL1Į%#f ⱒ4] _~rwp>°vXoؙ%CU!톩If lgSf|W I54T1Q4>@秽\eYs>giS&qNP >:,J0   /=9'7\ww.^E;61D^<< r|w #8AK oxd?, p 72-Lv"A%Irݎk {(~Б`0N L#Jsۏ’PB)4_};{qE69&6`8gA ׆~6v%m.NŃ#@G1$I>%-J\04ݛT}4ӎ2nGqlND`&(5 -}O#'{|I䓻mbyp/"qztٲ֙S(w*jœ`ͱWM$),PA N1kb[[aSWYE:ۤ{:UZ׽5 Vşjgց}!~?3]y=vW!kӁV 2 Nc_`mQ8G9j%U:RRe2e(W*i1H$>%&@<>1ree7S mϞKDo&&)=[& d?m=vH|[O># Wubq$*|U pAAas}]4{8oB> SSK w5t[]b<[~ U2 W3u^+~gLQ~qNgc0-~!:Q+uuLKӉ)êiMvzO|Q8q8 KEL9ŴfN+b]ͿpEGNtrj8U`Nձkŕ>g]&/R+޾gKK HIX(ZCV%IgAHWaxJrIeH`=|sT~t+Gg-t5ZmwL Olg4ՅtKwEQù>+G]Uae0[EJWGxn`p9dތ\ М J<: !VWnŵ-^ _e+l(iکKa}פUUeA<9eס ڦW-)uFIa'W5d= KVr4hRF{'| .6KE1ba'yU5 #_:5y5/M2wgl =5svS*K/?S3zڔo Uf~T Ynakx(ZxՂ^:HN$* daS$V_ =דݾNQ jLd8 r#Hj^QƕL ./Ÿإ VGK'OI8]#=_'dN| *u?Z޶oΏo`LpdR̉iѾ +o +܉ac\< 7.ӚW~i9Ϋ 'dG_JnTٺ SkLjQl 441CqAΌ ;Ico .e5/=nh+|in~,48HpRÏKc>R|;NY6LhE$m3F w`+hav94O"awaS TOty-[yOߔ!l w/s @B:eJ檰XUQ FCVNQ}peF 5xÚRzE/ޤsX((R',=ӽ*"@ K o]zCimH6#բҝ%Qo) \qswy]޷* 1QEnebYGiGly@G5 hva"ʨ/"%l2tx(5ژ3eAak#=˅ x=2E{{ Y%zTcGq7%gA^Bl*1fgKUQ1Xs(evܶG뻺Uqvt< D⡉5 IQ ]cZR*ѣr|ѤtεzF- ; 4:-`c {Lԅ,sBoFȤ%<ܽ;Ҫ")6Sq }>ع#C-z]-J'`_T6#N˟]Dy5[DKܝ HU:uעd.BH"a]6CNWԭ,0Z\^mi֑ :"ng i_/+avpdD(hCOCٓtV,]y3gރ[5wɸ-%O ޜO$NífPs U!LxsdwWnw*ZXS" ahfo rEɻQsdg9s_Ly x i+W-i)Ψj&9 YrS>يF%PSz{TᵚڛG^Qo8m"#zwqN$401 2CΘb:@:ܶpH& &Z"y^70{x? Qp"Qh!lݕSSzWٯ '?fܵj-`n1;VuYAA #IH49)!]9E[ZAQDpZR\񰐖*>͏y7GgH&P$l j *r"9/%c*BUMSOKQ1jl)2s?t nޅh禕zY*v2Pu .LpQ0 &Bw27>q-&&Xv\F4IUuC~E\J6L{{k նkS E5Bw<֑3MYlb }o3T$_g~R: \6|Cʙ R+~#s> @K3Y~]X܉n{o QrV1ى !9kKUPt4ϙ`a+n毌f=5gTxt s;'`u+@V}[)}N~k8Gk{tϧ~X NL#~u]QĥM2jtʎR`Lܰ5xdGXNl8q/ a.u~Ha}TD3農0h( q5TF3xgVޑNܺk | =h/` ZhBA T"85:|s'uQۚwklE鼀mƀs{/j,bf4&.HX1[9CNHF& d>7zp"h-y dl,ؼ&wN>kxMyI:Lru:Qm"y {bMClFsRAФ8s!LC{z^m>'lCwǦy_{z:vP()n< lT2#>괉=N@Ű+#鄙A=$;F\vz= ;a3;4Lę)3wEߣmQCM姚=7ԋ2똑&"X"B69 ukc,sE)k@7&5K<0"5y3;juhK G͍y=JXv16n- lgi>=}wc=sy .C{š`FCPk$uA.$NUk={4y󹸭ΆzǞcޟeRE8W֔$yeL𻴅|-d:Y(rsfQ$-@>CgSyηaae'f=`q& ҼEscVs~f! hSldiB:>[6y5$/iM.GAme70\ QHd n}߄67WTM=]Va[Q%Ư7pWey0UP:/} ѽ)4;Dp~zjjr'lgaDc3 l^0^嘰BLP;0juP4l)_V'#hϴo/w7gUߎ-VF(牅[7;ZJ fަ4N¯eF 19"2+wu IDn3QWw3^0IL ؀tZsǨO_k^N4.p-^QUdrT=)a=BD~OAW4n}j˃bFJq{+o=B7x\U,N^l+NYR`[NMl q\@Q7WV>Az!±nT’Pv ځ=j&:7-֓&⏈DVgl#!-xpTIJjdDҋp| 5X\'EZfr9of6oxilso$ɖ}na?y+~X Pt`ska̲|Ư5IVAV"oټ4t']gW-`T{8о`*1" KN{o",~/&{#xAB9kq=MލnbKr7b ;r%oUz;PV26[O?͠n /&—5۷`^]DQRha=St6b׻ fWJex$ 7o1&J/_}z˰}UQ>ח8`uaAHc,5 dؗj)'`ckjtQW%lylcĕNM2C6zaFmȕět16Ls3/m?T8TWVA ݶ[)뚸h-hg}5 1ǓF4sswVh(?z%#K' A|ɢX-qYoC V[=ۨ;/N*=gFaa!(I%鯿Аw8"ġwf4#ܽ F?Wr_"uNQw-YhrE}p/v.Ij3i/Omب4|ƎV$N<`'5potB7V|. 'Z~"@}*e}B!94J]3;R{\zul!=L$='bel0lE ·~8!l* $'E4=eᛌ3Ka:䎟ί!6)S$]4syů{KL,>{7gl,6CݝK5)]i-h{ +i k3q!-GWVb;;jˠ^z⌵n :jIw {HfMy F),wh! vv ii{^toI׈yAeՓJ}ZK}ިEЗ6~o?(ȇc@v0D}0b򎾃E?xh; @>]@C8+=R~hej<%pyu6z#E]iQ\EC@8 baJ d0p.5y0I#{ U*h\d˻H8&$c(2>JE^q$܂f \tRR(猈i w[8$-N \#3FWysi|x'MirFNWŻ ӖSQ>KjpS0XgP%>ǧsw;: oDo$gb; JEH|zo 5_ójt!t˓\Ä8tWW :+*7N;#j[+SxjB'#1? DrckٻJaȡ*eO@>84LEC oHI[_ƒcS@M5TqP+3-3'/8^Sp(7qTRx6/r(A%}icxci|Ʌ'olTPO߭WԴiZ-Q$9sG864*-U(>tO? yP>s%,н(RZC5+ cow˾I2υir'0j D|sտk<%u&$C'μPu/!A+p[~ǎȞ5rqBZLco>Wx#r@3hqc9·6H ǘJHOv  [.{{I޸U}K"3 2]J/fQ ;tWL?k]OմFX_nju^+m=Ya@l&{O@>FNe?Egtgāmd图L%eO#NElݠ;",)rd:>A\!xHaS >ob<̆), $< zs}uep"@Z2X\ER;Rub\eԸu{!+C6.{o>D52o"rnJx%n?ZwA֗~SիMYyCS˙ mB,풁abU[p5<#}>%WS+Jt(m-OŢ`Ya\?Y endstream endobj 165 0 obj << /Type /ObjStm /N 100 /First 868 /Length 3351 /Filter /FlateDecode >> stream xZrF}W1{{ʕ*Ɏb'JcgTzDH"e.^9B))/3S2L,=܋nY!a|\"loo%N%DD+,љNHpecabmbMDL(LћB02 "CgRQh Fc 2GCȑpRN 0)X_ B)99_ԇC]{Ĩ]Qԣ8i;[lF!^Ɗ08s@܄Rv8(CrE(f*s*((6a~ʞ9&TK3TK j߻:;%cphgQ>v*/R귍m5r%,% OT3 9?Pnƍ,3% +#$hߩ5BkDTDUKb) +x_zbJ}Bb#҃0~)\Ѕ"pE"⅘r)nE4aٓJCzQ[JȏT9^SKF/ʤ-$p;G$NYhPgQU7_"K.} 97e2=U$f7MY"ۛY(b#0w]IXZS+zA#' ?<`,TVtulpIW:n&fMՅ-H ոw뚂-3 P6ʟx#+[GiJ|q>,gbzx+Gώz|}ZM_&#XLDaղUhƒ9Y||y3k'd|? Br_A/cH+>sZalX;clrv.|l®ٔ lllžo?^1&^NLJg/b8U7XIhBcN40M8 h쳧_p^ {ˎ1c5\dp #6M&9P j8Xy>Dj '@<tu}K|6 vZNe7F\,,}c_|>kB_MЛɸ$+ Bߟ$]ӤziHzQTPt^*@oMH.~z$Ƴ$UQze֐dŐ,NcioMc#>}L޳ acWl)2q n#ϫ|M}^͖l쪃4H5 իy7۠E]h9x&--diZ&5Ԙ5{F4Y+(0 /~|hv=%xkɿyT;y..~oյD "=[A=˺=|/d4ZWHȓ-jJh}>bm]#F|/Ƌ-wի +FE!Jܖ@z> iPD5,<(H l4^"ңT4IoŽNT1KɖN*@ -zTI*L9E5Ŋ)uBvȹ4&&Ft-asn+s4+,L_PO0d:fXlunf@NBE>ndN108K*rXal쁏v JD`5Yn#@[mmOn[meg7e5b0XY&Ԝ&'.Iu&*VOj2tk|&ӛl:)ZvYЩdF%Y`+~P"v2Y/1Y7 endstream endobj 244 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.16)/Keywords() /CreationDate (D:20150903092155+09'00') /ModDate (D:20150903092155+09'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1) >> endobj 231 0 obj << /Type /ObjStm /N 18 /First 141 /Length 686 /Filter /FlateDecode >> stream xڭMk0+ dm}[BB)4ݔ==85lZ[ߑQIvJ=Ify46A e 5)p!pd 研QdI^pK.%SQ c8*P -g8ar^//>/kr~:ud~8nؘheڐ6]&f5f(~>vD-ipŒRl,ϕ=p<Q<0y8{D!#DWݣoWm|`]AƚYoSWGkN+"Eb.!<[3կMs*b[Kj14%H!N.:MȼZ" :d)Q(H ('L :OzC <713A92F12668CBEDB01EFCE96321FB5C>] /Length 584 /Filter /FlateDecode >> stream x%RA AAp76QYȢ]x;422ʜ"0Lg_2KɈW9HYljƈ2+R : (0ɯɊXGփCHmdl Y`: !8("xl)(!Ud;8$'Scd'8< !@7XAr,#& !( ^p9e4fjUǼ;`O4 { a0Җ6nk:`Lmf9g$M:w,`n;4UWeW/W oP5cn?4&+5mj >2=~k *%I] 2XpL> nSߕœDmdH!ӨӲ@, 4>hr1޾ӘzNgN 44hrqأ:oQ4qMOw*tK>Z}C s3=S)lSyj۱]hdm endstream endobj startxref 138965 %%EOF tex-common-6.04ubuntu1/doc/TeX-on-Debian.sgml0000664000000000000000000011052612607350221015673 0ustar Debian-specific information about TeX packages The Debian TeX mailing list debian-tex-maint@lists.debian.org 2015-09-03 (incomplete) This document covers Debian-specific information for users of the Debian TeX Live packages (all packages named texlive-something). Further information, especially for developers, can be found in the Debian TeX Policy draft in /usr/share/doc/tex-common/. Copyright © 2004-2015 Frank Kster, Florent Rougon, Norbert Preining

This document is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

A copy of the GNU General Public License is available as in the Debian distribution or on the World Wide Web at . You can also obtain it by writing to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.

Overview of the packages

The Debian TeX Live packages are comprised of (currently) 80 packages in total. The most important are: texlive-binaries provides the basic binaries and scripts, but is practically useless by itself texlive-base provides a minimal system texlive-latex-base provides the most basic LaTeX input files, and will be sufficient for some simple documents texlive-latex-recommended a recommended set of LaTeX packages which are sufficient for most typesetting purposes if you don't have any special requirements texlive-fonts-recommended a recommended set of fonts which are sufficient for most typesetting purposes if you don't have any special requirements texlive a meta-package depending on a decent selection of packages, comprising all of the above texlive-full a meta-package depending on all packages from the TeX Live group and on some other packages to create something similar to a full TeX Live installation texlive-doc-* packages like texlive-doc-en and texlive-doc-de provide documentation in the respective language texlive-lang-* packages like texlive-lang-dutch and texlive-lang-spanish provide language-specific support, like hyphenation patterns There are many more packages, providing extra functionality and extra fonts. Please see the respective descriptions of these packages.

Changing your configuration, file placement Available TEXMF trees for users and system administrators

The following TEXMF trees are available. They are displayed below in the order they are searched, where earlier ones override later ones. TEXMFCONFIG

Default location: $HOME/.texmf-config/

Contains user-specific configuration

TEXMFVAR

Default location: $HOME/.texmf-var/

Contains user-specific generated files

TEXMFHOME

Default location: $HOME/texmf/

Contains user-specific static input files, e.g. new LaTeX packages.

TEXMFSYSCONFIG

Default location: /etc/texmf

Contains system-wide configuration

TEXMFSYSVAR

Default location: /var/lib/texmf/

Contains system-wide generated files

TEXMFDEBIAN

Default location: /usr/share/texmf/

Contains files shipped by Debian packages other than the main texlive packages. This tree contains system-wide, dpkg-managed input files.

TEXMFMAIN

Default location: /usr/share/texlive/texmf/

Contains files that are closely related to the binaries and the specific version, thus this tree has higher priority then TEXMFLOCAL below. It contains only few system-wide, dpkg-managed input files.

TEXMFLOCAL

Default location: /usr/local/share/texmf/

Contains system-wide input files, used for configuration on specific systems.

TEXMFDIST

Default location: /usr/share/texlive/texmf-dist

Contains the binary-independent files that are distributed with TeX Live, comprising most of the input files, font files etc.

If you want to add files, you should usually use TEXMFLOCAL or TEXMFHOME, depending on whether you are the system administrator or a user. If needed, a system administrator can add additional trees to the TEXMF variable by copying the definition of TEXMF from /usr/share/texmf/web2c/texmf.cnf into one file in /etc/texmf/texmf.d/, for example /etc/texmf/texmf.d/00local.cnf (earlier entries take precedence). TEXMFCONFIG and TEXMFVAR are used by the user-specific texconfig, updmap, and fmtutil commands. Note that texconfig creates a copy of configuration files from TEXMFMAIN (or /etc/texmf) at the time it is first invoked to handle a particular file, and does not track later system-wide changes, and it does not know about update-* programs (see below ).

General hints System-wide versus user-specific configuration

TeX Live supports a complete user-specific configuration setup in the user's home directory. System administrators must use the commands texconfig-sys, fmtutil-sys and updmap-sys which act on the system-wide configuration files. Users can invoke their user counterparts texconfig, fmtutil and updmap. This will put copies of the system-wide configuration files into the user's TEXMFCONFIG directory (by default, $HOME/.texmf-config), modify them and generate according formats, if applicable.

There is no such mechanism for texmf.cnf. For a way to customize texmf.cnf as a user, see .

Configuration file placement

On a TeX system, in principle every TeX input file can be used to change the behavior of the system and hence could be treated as a configuration file. To avoid an inflation of configuration files, those that are used to control the typeset output - the appearance of documents - are not installed as configuration files. It makes more sense to keep changed versions in the current directory for a certain project, or in TEXMFHOME or TEXMFCONFIG of a particular user. However, local admins can take any file they want from the TEXMFDIST (/usr/share/texlive/texmf-dist) or TEXMFDEBIAN (/usr/share/texmf) trees and put changed copies into the respective directories below /etc/texmf (TEXMFSYSCONFIG which sorts before all other trees) or /usr/local/share/texmf (TEXMFLOCAL which sorts before the above two trees).

Since the package management system does not know whether a file is treated as a configuration file on a specific system, it is up to the site admin or local user to check whether one of their changed files has changed in TEXMFDIST or TEXMFDEBIAN.

What is configured where?

The central system-wide configuration files texmf.cnf (which controls the basic operation and file search paths for the included programs), fmtutil.cnf (which specifies the available TeX formats), (several) updmap.cfg (font configuration) and language.dat, language.def, language.dat.lua (hyphenation patterns for latex, etex, lualatex, resp.) are handled through a Debian-specific mechanism that allows the basic TeX packages, add-on packages and local administrators to combine their changes (see below).

Hyphenation

Hyphenation should pretty much work out of the box. Please note that in Debian, language.dat, language.def, language.dat.lua are generated files (see ).

The files texmf.cnf, fmtutil.cnf, updmap.cfg and language.* group

In the following we will refer to the three files language.dat, language.def, language.dat.lua, as language.*.

In the following we describe ways to configure these files for the system administrator, i.e. one that has write access to the /etc/texmf hierachy. In we describe a per-user configuration.

The files texmf.cnf, fmtutil.cnf, updmap.cfg and language.dat contain configuration options from TeX Live, possibly from you, and from other TeX-related packages. They are generated by scripts and may not be edited directly. Rather, you should work with the source files in the respective directories below /etc/texmf/.

In order to make updates smooth, you should avoid editing system-wide files as far as possible, and instead add new files to change settings. For texmf.cnf snippets, this is particularly easy, since earlier entries override any later entries. Only for removing settings from fmtutil.cnf, or language.* it is necessary to edit existing files.

texmf.cnf and update-texmf

The TeX binaries are built to look for and merge texmf.cnf files in various trees. That means that it is easy to override the default settings as shipped in /usr/share/texmf/web2c/texmf.cnf by adding entries in /etc/texmf/web2c/texmf.cnf. The Debian packaging includes a mechanism for constructing texmf.cnf from a collection of files under /etc/texmf/texmf.d/. To customize texmf.cnf while retaining the Debian-supplied configuration, create an appropriate file (or files) in /etc/texmf/texmf.d/, or change existing files, and then run update-texmf. This will generate the desired texmf.cnf for you. By default nothing is shipped in /etc/texmf/texmf.d/ since no adaptions are necessary, but further addon packages might ship parts.

You may not edit the file /etc/texmf/web2c/texmf.cnf directly, any local changes will be overwritten the next time this file is generated.

Instead, please edit the files in /etc/texmf/texmf.d, or create an additional one, and invoke update-texmf. This will write your changes into /etc/texmf/web2c/texmf.cnf.

You should name your customization file something like 40macros.cnf; the leading numerals will decide the order in which configuration fragments will be assembled by update-texmf, so it might be important to place your customizations in an appropriate place in the sequence — earlier definitions take precedence over later ones. In previous versions the extension .cnf was not necessary, and all files in the directory were used. If you had teTeX installed in woody, you might still have private files which need the extension to be added.

fmtutil.cnf and update-fmtutil, language.* and update-language

These files are also generated files, just as it has been explained above for texmf.cnf. The difference to texmf.cnf is that the system-wide files will be put into /var/lib/texmf/web2c, and any change made in these files will be unconditionally overwritten by update-fmtutil and update-language, respectively. Only the files in /etc/texmf/fmt.d/ and /etc/texmf/hyphen.d/ will be treated as configuration files. Furthermore, the files fmtutil.cnf and language.* are used on a first-found-first-used basis, if there are more than one in the search path, whereas if there are several texmf.cnf files in the search path, their settings are combined as described in .

Just as for texmf.cnf, the right way to change settings is to edit or add files in /etc/texmf/fmt.d/ or /etc/texmf/language.d/. The details have been described above (see ).

updmap.cfg and fmtutil.cnf

updmap-sys(8) and fmtutil-sys(8) read all available updmap.cfg and fmtutil.cnf files found, stacking them on top of each other. That means that local configurations can be done by editing/adding a file in /etc/texmf/web2c/updmap.cfg or /etc/texmf/web2c/fmtutil.cnf.

Both updmap-sys(8) and fmtutil-sys(8) provide options for enabling or disabling font map files or formats. When enabling a new map file, or a new format, that is not mentioned, updmap-sys and fmtutil-sys will create or edit /etc/texmf/web2c/updmap.cfg or /etc/texmf/web2c/fmtutil.cnf. Note that updmap-sys and fmtutil-sys's --edit and --syncwithtrees options cannot be used on a Debian system.

For more details on how to disable map files or formats that are enabled on a higher level, please see the man pages and help output of updmap and fmtutil.

Per user configuration changes

update-texmf is only available for root; if a user wants to maintain their own texmf.cnf, they can put it into TEXMFCONFIG/web2c and must manually edit it. However, in order for it to be found, they need to set an environment variable The reason for this is that the search path for texmf.cnf, which is the file that defines all search paths for later use, naturally cannot be specified in the file, but is fixed at compile time. : export TEXMFCNF=$HOME/.texmf-config/web2c: The final colon includes the system wide default. Since all texmf.cnf files are read, with earlier definitions taking precedence over later ones, it is best to keep only a minimal set of definitions in the user-specific file.

In contrast to the above—TeX reading and merging all texmf.cnf files—the first found occurrence of one of the file language.dat is used. Thus, when called by a user, the other configuration update programs also work with files in TEXMFCONFIG/language.d, where TEXMFCONFIG is usually HOME/.texmf-config. They combine files in these directories with the files in the system-wide directories—naturally the user-specific ones take precedence if the names are equal (see ) —and drop the respective generated file into the user's TEXMFVAR, effectively overriding the system-wide config files. Note that changes to existing configuration file snippets made by package updates will not be propagated to the user's files.

updmap(1) and fmtutil(1) provide the same options for enabling and disabling map files and formats as updmap-sys(8) and fmtutil-sys(8), see above. updmap.cfg and fmtutil.cnf is created or edited in TEXMFCONFIG/web2c/.

Font caching

A TeX system needs to generate new font data (pixel data, metric, sources) on the fly. These files can be saved into the TeX font cache and later be reused. By default, a separate font cache is created for each user in their own TEXMFVAR directory ($HOME/.texmf-var/). If this directory is not writable, e.g. during automated package building, a directory called VARTEXFONTS, /tmp/texfonts/, is used instead, but this directory is cleaned up regularly.

On multi-user machines, it might be advisable that the local administrator enables a site-wide font cache and sets VARTEXFONTS to a persistent directory, e.g. /var/cache/fonts. The variable can be changed by adding an entry via /etc/texmf/texmf.d, e.g. /etc/texmf/texmf.d/00local.cnf. Do not forget to run update-texmf after making the change. To enable a side-wide font caching the admin should edit /etc/texmf/web2c/mktex.cnf and use 'varfonts' instead of 'texmfvar' in MT_FEATURES. Care should be taken to specifiy appropriate permissions for the directory containing the font cache. Either the local admin should create all available font data and not allow write access, or else write access should be limited to trusted users. Yet an other alternative is to bind-mount /var/cache/fonts from a separate partition, so that users are not able to fill up the /var partition with font data.

Usage hints, Debian-specific adaptations Note on dvips

Per default, dvips is in secure mode and won't execute shell commands in \special commands, like backticks in \DeclareGraphicsRule, etc. To enable this, change z1 to z0 in /etc/texmf/dvips/config.ps (second entry).

Note on dvipdfmx

The Debian TeX Live packages do evaluate the settings of /etc/papersize, please configure your preferred paper size with paperconfig. Alternatively, and more portable, thus recommended, set the paper geometry explicitly in the (La)TeX source, e.g. using the packages geometry or hyperref.

“TeX capacity exceeded” and similar errors

In most cases, this error is the symptom of a syntax error in the document—TeX is getting into an infinite loop, and after some time all its internal registers have been used. Sometimes, however, a large document that loads a package that uses a lot of TeX's registers leads to that error, or to a similar error message. The package documentation, the Google archive, or TeX-related mailing-lists or newsgroups will be helpful to find out which parameter needs to be changed in /etc/texmf/texmf.cnf (or rather in one of the files under /etc/texmf/texmf.d/, (see )).

How to install additional or updated (La)TeX packages or fonts

If you want to install additional (La)TeX stuff, you have to: install it at a place where TeX can find it; register it properly.

This can generally be done site-wide (by an administrator who has write access to at least /usr/local/share/texmf and /etc/texmf), or on a per-user basis. This can be done by any user on the system, without requiring write access to system directories. Some people might also find it more convenient in case they share their home directory between a couple of machines, even if they do have administrator rights.

In the following, we first explain the principles by describing a site-wide setup; then we explain the details for user-specific setup.

(La)TeX input files

This is usually quite easy. Put the files in an appropriate directory below TEXMFLOCAL, which is the directory tree rooted at /usr/local/share/texmf.

For LaTeX packages, create the directory tex/latex/packagename within that tree (or use tex/latex/misc) and put the files there; the documentation should be put into doc/latex/packagename. If the package comes as a pair of .dtx and .ins files, you need to run latex over the .ins file in order to produce the package files, and over the .dtx file to produce the documentation. After that, the .dtx and .ins files are no longer needed. Please refer to the README file of the package if there is one.

After that, registering is easy: just run the command mktexlsr (also called texhash). This will regenerate the ls-R file for all TEXMF trees you have write access to.

Complex installations

With some packages, e.g. when they contain fonts, the procedure is more complicated. Please follow the instructions given in the package. The Debian-specific part comes in when the configuration files texmf.cnf, fmtutil.cnf, updmap.cfg, or language.dat need to be changed. See the description above (), the manual pages for update-updmap, update-texmf, update-fmtutil, update-language and .

Font installation

If you wish to install a font package in a system-wide manner, please follow the instructions in this section. If you are preparing a Debian package containing fonts, you should refer to the Debian TeX policy instead, which is shipped in the tex-common package.

Generally, you should first have a look at the installation instructions that come with the font package, in case there is something specific to that package with respect to installation. But you should make sure that you install most files in a subdirectory of TEXMFLOCAL (see ). This is because we are describing here a system-wide installation that is not done by Debian packages.

For instance, AFM files should be stored into TEXMFLOCAL/fonts/afm/supplier/typeface/ where supplier identifies the supplier of the fonts (for instance, adobe, urw or public) and typeface refers to the name of the font family (e.g., marvosym or lm). If in doubt, you should have a look at the system trees managed by Debian packages, /usr/share/texmf and /usr/share/texlive/texmf-dist; they follow the same layout, called the TeX Directory Structure (which is documented at ).

In order for the various TeX-related programs to be able to use a font, you need to somehow register its map files (simply copying the files to TEXMFLOCAL is not enough). You can do this with the following steps, performed as root, where foo stands for the name of the font package you are installing:

Make sure you have stored all the relevant files shipped in the package (.afm, .tfm, .pfb, .pfa, .mf, .fd, .enc, .map, .sty are all relevant in this context) in the appropriate subdirectories of TEXMFLOCAL, as explained above.

List the map files you stored in step 1 under TEXMFLOCAL, with one line per file, as in: # This is a comment line Map foo.map Map other-map-file-from-package-foo.map in the file /usr/local/share/texmf/web2c/updmap.cfg.

If a font is available both as bitmap and outline, you should use MixedMap instead of Map. Please refer to the manual pages for updmap for details.

(not recommended, but possible) You can also use updmap-sys --enable Map foo.map; this will create/edit the /etc/texmf/web2c/updmap.cfg file for you. But since the real files are stored in TEXMFLOCAL it is better to add the map directives to the updmap.cfg in the same tree.

Run the program mktexlsr. This will record all the newly created files in ls-R files (these are used by TeX-related programs as indices to find the files they need when operating).

Run the program updmap-sys. This will use your updated updmap.cfg to generate files that are needed by dvips, pdflatex, dvipdfm, etc., such as psfonts.map and pdftex.map.

At this point, the font package should be properly installed for all users on the system.

User-specific installation

Instead of a system-wide installation, one can also install input files and fonts in the private TEXMFHOME, which is set to $HOME/texmf by default. For fonts, compared to the system-wide installation explained above, the following changes have to be made: In step 1, copy all relevant files to the appropriate subdirectories in TEXMFHOME.

In step 2, edit TEXMFHOME/web2c/updmap.cfg instead.

As for the site-wide installation, you can also use updmap --enable Map foo.map.

In step 3 run updmap instead of updmap-sys. The generated files are created in directories below TEXMFVAR.

Problems, bug reports

If the installation failed, please check the following points: Is there enough room on your hard disk? Is there any privately-compiled TeX system besides the Debian packages? Does the command: kpsewhich --format=cnf texmf return /usr/share/texmf/web2c/texmf.cnf? Is texmf.cnf modified a lot? Please check /etc/texmf/web2c/texmf.d/. Did you set any TeX-related environment variable? Try again. This might work in some cases. Is your language.dat correct?

How to report a bug: Please calm down anyway. ;) Please check the Debian Bug Tracking System first. Please read carefully the error messages, if any. It will help both you and us. Please use reportbug and include all information it gathers Please attach a simple and short sample file which causes the problem you want to report. Be prepared that we will have to ask more questions: You should have time to exchange a couple of e-mails with us It will be helpful to show us the output of the command: ls /etc/texmf/texmf.d/*

tex-common-6.04ubuntu1/doc/obsolete-tex-files.txt0000664000000000000000000002517412607350221016774 0ustar The following files have been installed with older versions of teTeX and are not longer per default installed by any TeX package into /etc/texmf. If you did NOT install them you can remove them without any problems. As usual in a TEXMF tree, empty directories can safely be removed. /etc/texdoctk/texdocrc /etc/texmf/dvips/builtin35.map /etc/texmf/dvips/config/antp.cfg /etc/texmf/dvips/config/antp.map /etc/texmf/dvips/config/antt.cfg /etc/texmf/dvips/config/antt.map /etc/texmf/dvips/config/ar-ext-adobe-bi.map /etc/texmf/dvips/config/ar-ext-adobe-kb.map /etc/texmf/dvips/config/ar-ext-urw-kb.map /etc/texmf/dvips/config/ar-ext-urw-urw.map /etc/texmf/dvips/config/ar-std-adobe-bi.map /etc/texmf/dvips/config/ar-std-adobe-kb.map /etc/texmf/dvips/config/ar-std-urw-kb.map /etc/texmf/dvips/config/ar-std-urw-urw.map /etc/texmf/dvips/config/bakoma-extra.map /etc/texmf/dvips/config/bsr-interpolated.map /etc/texmf/dvips/config/bsr.map /etc/texmf/dvips/config/charter.map /etc/texmf/dvips/config/cmcyr.map /etc/texmf/dvips/config/config.antp /etc/texmf/dvips/config/config.antt /etc/texmf/dvips/config/config.builtin35 /etc/texmf/dvips/config/config.dfaxhigh /etc/texmf/dvips/config/config.dfaxlo /etc/texmf/dvips/config/config.download35 /etc/texmf/dvips/config/config.gsftopk /etc/texmf/dvips/config/config.mirr /etc/texmf/dvips/config/config.omega /etc/texmf/dvips/config/config.outline /etc/texmf/dvips/config/config.pdf /etc/texmf/dvips/config/config.pk /etc/texmf/dvips/config/config.pl /etc/texmf/dvips/config/config.qbk /etc/texmf/dvips/config/config.qcr /etc/texmf/dvips/config/config.qf /etc/texmf/dvips/config/config.qhv /etc/texmf/dvips/config/config.qpl /etc/texmf/dvips/config/config.qtm /etc/texmf/dvips/config/config.qzc /etc/texmf/dvips/config/config.www /etc/texmf/dvips/config/context.map /etc/texmf/dvips/config/cs.map /etc/texmf/dvips/config/hoekwater.map /etc/texmf/dvips/config/lucidabr.map /etc/texmf/dvips/config/lw35extra-adobe-bi.map /etc/texmf/dvips/config/lw35extra-adobe-kb.map /etc/texmf/dvips/config/lw35extra-urw-kb.map /etc/texmf/dvips/config/lw35extra-urw-urw.map /etc/texmf/dvips/config/marvosym.map /etc/texmf/dvips/config/mathpi.map /etc/texmf/dvips/config/mathpple-ext.map /etc/texmf/dvips/config/mt-belleek.map /etc/texmf/dvips/config/mt-plus.map /etc/texmf/dvips/config/mtsupp-ext-adobe-bi.map /etc/texmf/dvips/config/mtsupp-ext-adobe-kb.map /etc/texmf/dvips/config/mtsupp-ext-urw-kb.map /etc/texmf/dvips/config/mtsupp-ext-urw-urw.map /etc/texmf/dvips/config/mtsupp-std-adobe-bi.map /etc/texmf/dvips/config/mtsupp-std-adobe-kb.map /etc/texmf/dvips/config/mtsupp-std-urw-kb.map /etc/texmf/dvips/config/mtsupp-std-urw-urw.map /etc/texmf/dvips/config/mt-yy.map /etc/texmf/dvips/config/omega.cfg /etc/texmf/dvips/config/omega.map /etc/texmf/dvips/config/pazo.map /etc/texmf/dvips/config/pl.cfg /etc/texmf/dvips/config/pl.map /etc/texmf/dvips/config/ps2pk.map /etc/texmf/dvips/config/psnfss.map /etc/texmf/dvips/config/qpl.map /etc/texmf/dvips/config/qtm.map /etc/texmf/dvips/config/raw-ar-ext-adobe-bi.map /etc/texmf/dvips/config/raw-ar-ext-adobe-kb.map /etc/texmf/dvips/config/raw-ar-ext-urw-kb.map /etc/texmf/dvips/config/raw-ar-ext-urw-urw.map /etc/texmf/dvips/config/raw-ar-std-adobe-bi.map /etc/texmf/dvips/config/raw-ar-std-adobe-kb.map /etc/texmf/dvips/config/raw-ar-std-urw-kb.map /etc/texmf/dvips/config/raw-ar-std-urw-urw.map /etc/texmf/dvips/config/raw-lw35extra-adobe-bi.map /etc/texmf/dvips/config/raw-lw35extra-adobe-kb.map /etc/texmf/dvips/config/raw-lw35extra-urw-kb.map /etc/texmf/dvips/config/raw-lw35extra-urw-urw.map /etc/texmf/dvips/config/utopia.map /etc/texmf/dvips/config/xypic.map /etc/texmf/dvips/download35.map /etc/texmf/dvips/dvipdfm_dl14.map /etc/texmf/dvips/dvipdfm.map /etc/texmf/dvips/dvipdfm_ndl14.map /etc/texmf/dvips/pdftex_dl14.map /etc/texmf/dvips/pdftex.map /etc/texmf/dvips/pdftex_ndl14.map /etc/texmf/dvips/ps2pk.map /etc/texmf/dvips/psfonts.map /etc/texmf/dvips/psfonts_pk.map /etc/texmf/dvips/psfonts_t1.map /etc/texmf/fonts/map/dvipdfm/tetex/cm-dvipdfm-fix.map /etc/texmf/fonts/map/dvips/antp/antp.map /etc/texmf/fonts/map/dvips/antt/cork-antt.map /etc/texmf/fonts/map/dvips/antt/cs-antt.map /etc/texmf/fonts/map/dvips/antt/exp-antt.map /etc/texmf/fonts/map/dvips/antt/greek-antt.map /etc/texmf/fonts/map/dvips/antt/qx-antt.map /etc/texmf/fonts/map/dvips/antt/t2a-antt.map /etc/texmf/fonts/map/dvips/antt/t2b-antt.map /etc/texmf/fonts/map/dvips/antt/t2c-antt.map /etc/texmf/fonts/map/dvips/antt/t5-antt.map /etc/texmf/fonts/map/dvips/antt/texnansi-antt.map /etc/texmf/fonts/map/dvips/antt/wncy-antt.map /etc/texmf/fonts/map/dvips/cc-pl/ccpl.map /etc/texmf/fonts/map/dvips/context/8r-base.map /etc/texmf/fonts/map/dvips/context/context-base.map /etc/texmf/fonts/map/dvips/context/cork-public-lm.map /etc/texmf/fonts/map/dvips/context/cork-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/cork-var-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-base.map /etc/texmf/fonts/map/dvips/context/ec-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/ec-var-public-lm.map /etc/texmf/fonts/map/dvips/context/il2-ams-cmr.map /etc/texmf/fonts/map/dvips/context/original-adobe-euro.map /etc/texmf/fonts/map/dvips/context/original-adobe-euro.map /etc/texmf/fonts/map/dvips/context/original-ams-cmr.map /etc/texmf/fonts/map/dvips/context/original-ams-euler.map /etc/texmf/fonts/map/dvips/context/original-base.map /etc/texmf/fonts/map/dvips/context/original-context-symbol.map /etc/texmf/fonts/map/dvips/context/original-context-symbol.map /etc/texmf/fonts/map/dvips/context/original-dummy.map /etc/texmf/fonts/map/dvips/context/original-empty.map /etc/texmf/fonts/map/dvips/context/original-micropress-informal.map /etc/texmf/fonts/map/dvips/context/original-public-csr.map /etc/texmf/fonts/map/dvips/context/original-public-lm.map /etc/texmf/fonts/map/dvips/context/original-public-plr.map /etc/texmf/fonts/map/dvips/context/original-public-vnr.map /etc/texmf/fonts/map/dvips/context/original-vogel-symbol.map /etc/texmf/fonts/map/dvips/context/original-vogel-symbol.map /etc/texmf/fonts/map/dvips/context/original-youngryu-px.map /etc/texmf/fonts/map/dvips/context/original-youngryu-tx.map /etc/texmf/fonts/map/dvips/context/pl0-ams-cmr.map /etc/texmf/fonts/map/dvips/context/psclean.map /etc/texmf/fonts/map/dvips/context/qx-base.map /etc/texmf/fonts/map/dvips/context/qx-public-lm.map /etc/texmf/fonts/map/dvips/context/t5-base.map /etc/texmf/fonts/map/dvips/context/t5-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-base.map /etc/texmf/fonts/map/dvips/context/texnansi-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-var-exclusive-public-lm.map /etc/texmf/fonts/map/dvips/context/texnansi-var-public-lm.map /etc/texmf/fonts/map/dvips/lucida/lucidabr-k.map /etc/texmf/fonts/map/dvips/lucida/lucidabr.map /etc/texmf/fonts/map/dvips/lucida/lumath-k.map /etc/texmf/fonts/map/dvips/lucida/lumath.map /etc/texmf/fonts/map/dvips/misc/cmcyr.map /etc/texmf/fonts/map/dvips/misc/cs.map /etc/texmf/fonts/map/dvips/misc/dstroke.map /etc/texmf/fonts/map/dvips/misc/marvosym.map /etc/texmf/fonts/map/dvips/misc/pcrr8rn.map /etc/texmf/fonts/map/dvips/pl/pl.map /etc/texmf/fonts/map/dvips/psnfss/charter.map /etc/texmf/fonts/map/dvips/psnfss/fpls.map /etc/texmf/fonts/map/dvips/psnfss/pazo.map /etc/texmf/fonts/map/dvips/psnfss/psnfss.map /etc/texmf/fonts/map/dvips/psnfssx/pcr8y.map /etc/texmf/fonts/map/dvips/psnfssx/phv8y.map /etc/texmf/fonts/map/dvips/psnfssx/ptm8y.map /etc/texmf/fonts/map/dvips/psnfssx/README.mapfiles /etc/texmf/fonts/map/dvips/qfonts/qbk.map /etc/texmf/fonts/map/dvips/qfonts/qcr.map /etc/texmf/fonts/map/dvips/qfonts/qhv.map /etc/texmf/fonts/map/dvips/qfonts/qpl.map /etc/texmf/fonts/map/dvips/qfonts/qtm.map /etc/texmf/fonts/map/dvips/qfonts/qzc.map /etc/texmf/fonts/map/dvips/tetex/contnav.map /etc/texmf/fonts/map/dvips/tetex/dvipdfm35.map /etc/texmf/fonts/map/dvips/tetex/dvips35.map /etc/texmf/fonts/map/dvips/tetex/hoekwater.map /etc/texmf/fonts/map/dvips/tetex/lucidabr-o.map /etc/texmf/fonts/map/dvips/tetex/lumath-o.map /etc/texmf/fonts/map/dvips/tetex/mathpple.map /etc/texmf/fonts/map/dvips/tetex/mt-belleek.map /etc/texmf/fonts/map/dvips/tetex/mt-plus.map /etc/texmf/fonts/map/dvips/tetex/mt-yy.map /etc/texmf/fonts/map/dvips/tetex/pdftex35.map /etc/texmf/fonts/map/dvips/tetex/ps2pk35.map /etc/texmf/fonts/map/dvips/tetex/pxfonts.map /etc/texmf/fonts/map/dvips/tetex/ttcmex.map /etc/texmf/fonts/map/dvips/tetex/txfonts.map /etc/texmf/fonts/map/dvips/urwvn/urwvn.map /etc/texmf/fonts/map/dvips/vntex/vnr.map /etc/texmf/fonts/map/pdftex/cmttf/cmttf.map /etc/texmf/language.dat /etc/texmf/pdftex/pdftex.cfg /etc/texmf/tex/context/config/cont-cz.ini /etc/texmf/tex/context/config/cont-de.ini /etc/texmf/tex/context/config/cont-en.ini /etc/texmf/tex/context/config/cont-it.ini /etc/texmf/tex/context/config/cont-nl.ini /etc/texmf/tex/context/config/cont-ro.ini /etc/texmf/tex/context/config/cont-uk.ini /etc/texmf/tex/context/config/cont-usr.tex /etc/texmf/tex/context/config/texexec.ini /etc/texmf/tex/context/config/texexec.rme /etc/texmf/tex/cslatex/config/fonttext.cfg /etc/texmf/tex/cslatex/config/hyphen.cfg /etc/texmf/tex/cyrplain/config/cyramstx.ini /etc/texmf/tex/cyrplain/config/cyrtex.cfg /etc/texmf/tex/cyrplain/config/cyrtex.ini /etc/texmf/tex/cyrplain/config/cyrtxinf.ini /etc/texmf/texdoc-100.dat /etc/texmf/texdoc-102.dat /etc/texmf/texdoc-103.dat /etc/texmf/tex/dvipdfm/config/config /etc/texmf/tex/dvipdfm/config/README.config /etc/texmf/tex/etex/config/etex.ini /etc/texmf/tex/etex/config/language.def /etc/texmf/tex/generic/config/fontmath.cfg /etc/texmf/tex/generic/config/fonttext.cfg /etc/texmf/tex/generic/config/preload.cfg /etc/texmf/tex/language.d/config/00tetex.cnf /etc/texmf/tex/latex/config/fontmath.cfg /etc/texmf/tex/latex/config/fonttext.cfg /etc/texmf/tex/latex/config/latex209.cfg /etc/texmf/tex/latex/config/latex.ini /etc/texmf/tex/latex/config/ltxdoc.cfg /etc/texmf/tex/latex/config/ltxguide.cfg /etc/texmf/tex/latex/config/preload.cfg /etc/texmf/tex/latex/config/texsys.cfg /etc/texmf/tex/pdftex/config/cmttf.map /etc/texmf/tex/pdftex/config/context/il2-ams-cmr.map /etc/texmf/tex/pdftex/config/context/original-adobe-euro.map /etc/texmf/tex/pdftex/config/context/original-ams-cmr.map /etc/texmf/tex/pdftex/config/context/original-ams-euler.map /etc/texmf/tex/pdftex/config/context/original-context-symbol.map /etc/texmf/tex/pdftex/config/context/original-vogel-symbol.map /etc/texmf/tex/pdftex/config/context/original-youngryu-px.map /etc/texmf/tex/pdftex/config/context/original-youngryu-tx.map /etc/texmf/tex/pdftex/config/context/pl0-ams-cmr.map /etc/texmf/tex/plain/config/language.def /etc/texmf/tex/platex/config/hyphen.cfg /etc/texmf/tex/platex/config/language.dat /etc/texmf/tex/platex/config/platex.ini /etc/X11/app-defaults/XDvi tex-common-6.04ubuntu1/doc/tds-1.1/0000775000000000000000000000000012607350221013577 5ustar tex-common-6.04ubuntu1/doc/tds-1.1/ChangeLog0000664000000000000000000002251012607350221015351 0ustar 2004-06-23 Karl Berry * tds.tex: version 1.1. * tds.tex: make that june 2004. 2004-06-08 Karl Berry * tds.tex: type3, version 1.096. 2004-06-06 Karl Berry * tds.tex: 1.095 (still draft). 2004-06-04 Karl Berry * tds2texi.el [ ] doesn't make sense; changed to "\s ". * tds.tex: use \TeX{} uniformly, not \TeX\ , since that's what tds2texi.el handles. We ended up with "Inputs for, TeX". Report from: Hans Fredrik Nordhaug, 2 Jun 2004 23:01:15 +0200. * tds2texi.el (tds2texi-fixup-texinfo): fix the reference to the "Non-font Metafont" node here instead. * tds.sed: no non-font special case. * tds.tex: specify opentype and truetype under fonts. 2004-06-03 Karl Berry * tds2texi.el (tds2texi-logos-alist): Metafont instead of METAFONT. 2004-05-15 Karl Berry * tds.tex: doc/ subtree improvements from Chris Rowley, and more. 2004-05-14 Karl Berry * 1.094. * tds.tex: clarify description of enc & map, maybe. 2004-05-08 Karl Berry * tds.tex: fixes from Staszek. * tds.tex: check in. 2004-04-03 Karl Berry * Makefile (packages.zip): new target. (dist): depend on it, and include it in distribution tar file. * tds.tex: wording improvement from vojta, 1.093. 2004-03-28 Karl Berry * tdsguide.cls (\tdsSummary): \let\obeylines=\relax after we set it, so url.sty v3.0's usage of \obeylines does not cause errors. * tds.tex (etex): fix in tds example. 2004-03-27 Karl Berry * tds.tex: 1.092, move extension input files within tex. also check in from previous changes, notably new scripts/ dir. 2004-02-11 Karl Berry * tds.tex: pfm text, etc., from feb03. 2003-02-02 * tds.tex: 1.0 2003-01-18 * Version 0.9998. * tds.tex: force line breaks in references, add Downs reference. * tds2texi.el: handle \\ in references section. * Makefile (tds.texi.tmp): don't read emacs init files. 2003-01-17 * tds2texi.el: doc fixes, @tie. * tds.tex: enc/maps vs fontname clarification, removal of some history. 2003-01-12 * tds.tex: first cut at fonts/enc and fonts/map, version 0.9997. * Makefile: clean up directory for dist, and remake everything. * Makefile: use makeinfo --no-split. Mon Jul 19 16:54:37 1999 Karl Berry * tds2texi.el (tds2texi-fixup-texinfo): Don't need to do this with Emacs 20.4, at least. Sun Jul 11 12:55:53 1999 Karl Berry * tds.tex: I have a new address. Wed Apr 21 15:30:34 1999 Karl Berry * version 0.9996. * tds2texi.el: @ifnottex, not @ifinfo. * Grammar fixes (Demitrios Athens). Non-font METAFONT section title (Reinhard Kotucha). Mention Kpathsea as a sample implementation (Paul Abrahams). Allow discretion for single-file packages of all kinds (Matthew Swift). * fancyhdr.sty: get latest version. 1998-01-26 Karl Berry * tds.tex: Version 0.9995: add extension section. * tdsguide.cls (\TeXinfo): Remove unused and incorrect name. (\parsep): Decrease slightly. (\l@section): Decrease section spacing for toc slightly. (\@maketitle): Remove word `draft'. Fri Jan 23 17:14:01 1998 Karl Berry * tds.tex: checkin 0.9994. Sun Jul 20 16:29:37 1997 Karl Berry * Version 0.9994. * tds2texi.el: We can do @ss. * tds2texi.el: Texinfo @url is now @uref. Fri Feb 7 15:47:17 1997 Karl Berry * tds2texi.el: @detailmenu, other fixes, from Ulrik. * tdsguide.cls: Fix : in tdsSummary, more doc. Tue Feb 4 16:27:56 1997 Karl Berry * Version 0.9992. * tds.tex: Replace gsftopk/ps2pk/etc. with just `modeless'. Tue Nov 19 01:24:46 1996 Ulrik Vieth * tds.tex: Fix up indentation in `tdsSummary' environments for the sake of Texinfo, should be consistent everywhere now. * tds2texi.el: Fix bug when combining multiple @file tags. Added some missing functionality from tds.sed and tds.awk. * tds.sed: Handle a few translations in Elisp where possible. Only leave those that are specific to document context. * tds.awk: File made redundant. * Makefile: Eliminate unnecessary gawk translation step. Sat Nov 16 07:16:03 1996 Karl Berry * tds.tex: Version 0.991. * tds2texi.el: More logos; no extra blank lines after sections; handle \url and \email like \path. * tds.awk, tds.sed: New files. * url.sty, mflogo.sty, Ulogo.fd: Get latest versions. * tdsguide.cls: Changes for 0.9991. Tue Nov 12 17:16:54 1996 Karl Berry * tdsguide.cls: Saving version as of 0.999. Sun Nov 10 17:36:36 1996 Karl Berry * Mention texmf/ini loses. * Say that the mode/ level is not optional. * Mention the possibility of doc/. From Sebastian. * Include AmiWeb2c 2.0 summary. From: * Allow distribution of modified versions as long they don't pretend to be the TDS. * tds.tex: 0.999. Thu Nov 30 11:41:58 1995 Karl Berry * tds.tex: pnr10.tfm should be pnr10.mf. From Pierre. Wed Nov 22 11:46:51 1995 Karl Berry * tds.tex: Some periods after capital letters end sentences, and some periods after lowercase don't. From bb. Remove make uninstall text. Tue Nov 21 19:56:35 1995 Karl Berry * Version 0.999 sent to TUGboat (well, not really). Wed Nov 15 19:50:37 1995 Karl Berry * Version 0.104. Public release. * tds.tex: Add tex/generic/images to the figure. Sat Nov 11 11:47:16 1995 Karl Berry * tds.tex: Mention the possibility of multiple texmf's. Fix non-sentence. From Paul Abrahams. * Version 0.103. * Move filename constraints to an appendix; we don't require this. Fri Oct 27 14:04:09 1995 Karl Berry * Version 0.102. * Include package subdirectories under bibtex. * Version 0.101. Tue Oct 17 13:22:08 1995 Karl Berry - Mention what `texmf' stands for. - Info documents might be stored outside the tree. - Recommend PK specials, rather require them. - Try to define format and package a bit more clearly. - Explicitly unspecify when something is local. These things from Paul Abrahams. Sat Oct 14 16:07:16 1995 Karl Berry * Version 0.100. Fri Oct 13 16:23:34 1995 Karl Berry * tdsguide.cls (\textwidth): Make a little larger. Don't bother reading tdsguide.cfg just to get mflogo. - Mention that a format author doesn't have to have a directory. - Don't use makeindx as an example. Thu Oct 12 14:19:25 1995 Karl Berry - Add Christian Spieler to the author list. - Reserve tex/images for eps files etc. - Remove implication the texmf/tex/plain has no subdirectories. - More implementation-specific stuff, this time under `program'. From Alex Kok et al. - Expound on texmf/source a bit. From Alex Kok. - Tell people to go read if we're talking about mysteries - Remove all instances of the confusing word `application'. - Mention that examples are documentation, and move discussion of the alternative to an appendix. Tue Oct 10 15:45:32 1995 Karl Berry - New section on duplicate filenames. - Image files are likely to go under texmf/tex. - Printers can have multiple resolutions. From Bernard Gaulle. - Reference the level 0 DVI standard. - Define `dpi' better. From Nelson Beebe, David Kastrup. - Document the reasons for not using modeless/. From David Kastrup. - Mention the (presently impractical) possibility of \input latex2e/file.tex. From Paul Vojta. - make uninstall or an equivalent is desirable. From Alan Dunwell. - Remove `files are...' text. From Doug Waud. - /opt is another likely root. From Jeff Gealow. - Use dpiNNN, not just dpi. From Bart Childs. - Slightly improved description of MP. From Bart. - Recommend . at beginning of search paths. From DEK via Sebastian. - Include musictex as an example generic/ directory. Mon Oct 9 17:36:27 1995 Karl Berry - mft/ is no longer a special case under tex/. - Move `package distribution' to an appendix section. Fri Oct 6 17:23:15 1995 Karl Berry - Remove \protect. From Ulrik. Wed Oct 4 15:08:01 1995 Karl Berry * Version 0.99. - Don't hardwire version number in more than place. - Use TUG instead of O'Reilly for postal mail. - texmf/tex// does not suffice in general. - Incorporate `subdirectory searching syntax' section into main subdir searching section, and `Expeding the Process' into `Adoption of the TDS'. - Move bin/ out of the main text. - Reserve `local' at every level. - Top-level directories should be a chapter, and implementation-specific files need more discussion. - Make macros, fonts, etc. sections under the top-level directories chapter. tex-common-6.04ubuntu1/doc/tds-1.1/Makefile0000664000000000000000000000227112607350221015241 0ustar # $Id: Makefile,v 1.5 2004/04/04 00:14:59 karl Exp karl $ # Makefile for tds, by Karl Berry. # Public domain. default all: tds.info tds.html tds.dvi tds.pdf tds.dvi: tds.tex tdsguide.cls latex '\nonstopmode \input tds' tds.pdf: tds.tex tdsguide.cls pdflatex '\nonstopmode \input tds' tds.texi: tds.texi.tmp tds.sed sed -f tds.sed $< >$@ tds.texi.tmp: tds.tex tds2texi.el emacs -q --no-site -batch -l tds2texi.el -f tds2texi-convert --eval '(write-file "$@")' tds.info: tds.texi makeinfo --no-split $< tds_toc.html: tds.texi /usr/local/gnu/bin/texi2html texi2html -split_node -menu $< tds.html: tds.texi makeinfo --number-sections --html --no-split $< check: dw /tmp/diff rm -f tds.texi* *~ rm -f tds.cp tds.fn tds.ky tds.pg tds.tp tds.vr tds.log tds.toc tar cvvzf /tmp/tds.tar.gz C* M* tds* index.html packages.zip # shar -z tds.dvi >/tmp/shar # @echo "Now ci -l -m'version' tds.tex and increment the tdsVersion." tex-common-6.04ubuntu1/doc/tds-1.1/index.html0000777000000000000000000000000012607350221017247 2tds.htmlustar tex-common-6.04ubuntu1/doc/tds-1.1/packages.zip0000664000000000000000000003446612607350221016116 0ustar PK DУDUlogo.fdUT y1fo@UxTk0⾄#u~Ц@a[ K`LΉ,IN;qJBaXH޻w[-Z-.3!~Ϥ8'mBrX @:Έ%NH6us biaXNCUtB+{%?9kz gf҈'.R=FJ( -^E5ѺdƁB :J#td1<Ʌԗ S>4u:0E8QF2C?7d-cRZ'6(-v.!i5/i#q/U,ߺ=>터eTOհwXa @~3Dn |LN! Ccp'\M9Jj'm̫RU%ih'Bm# AUϟPu ZY*]5 |ҹ.צNg??ADY~Jйj۠ȱ@\V/VIۨҁiTV'154l >NC2UVm ϮGj3ژ$K3MgO&Fg`00Lqȯo|fN먢"+u"bEx7ITݮ YX. @ZTM'j)[Vee6YFyDbU@dJaI,yui?)(nT$)TWXn&iLt,Xv XvՑ !r\J,8̶5JtO{o>^}uf_Nh41i$YVaixS $ra4D0,M/,x2Z6p8g@y~Ug (Z/QOَSbZz W*^G ; s݄5v ~a~}Bh69;ЋvVfdپӱz~ !6Ҙ/oT5 8*\2*K lS&>eVyL0Z&hZOZP;Xur@aҵP$Xud'اxl.'1҅ЅDD6Kn(/A@RD`B%&JTauk=B$U Ӂ8|C Vr&d|"N.4 E]De<#=q؇2rx@ ϴ5PB 3,PuzBAP8%SJrX]Jv)(Q߷+T2^b5:h$+@xc@I<$cg22ٝc !% `hpD2X L{oZg+%k8ĕ h IS4"?ZrFLk… ?ኍGny\6RܨM~YmX AE,H&ޢU@Aӂ쐢x?; 1P?S6S8I0.Ϛ&GB{c~,B!SC6- Djo G0j5pH),G xmXݣHacĆE pVYN O{戦nXC.Hr6%KG`:,I#q,`f֥#*Y#t;[DI6k2/lƔ5$)f.?ZºT. ~ DF:eR!c<ޑ<+8On3܄WuR!fгB $6Sy2Yց*6|PPylZ8ⷝoa fZb f3Ɓu X$d6naȂԂl> Ńh*⛴@밾+y9œB8oIH3MP@ÂeB1w&h**Ñ*('BKS6P#=IlJs-Ɣ>؝}uP^лǢ4L? %@tǵ\GCqy7 +91O&g9g-mvA(ntݺUqe~XAʨ6s "rHR%{9֊.EqF;^!d.0 NoՔ" Tѯu6Ӹ%!sIZx!֖%7Xk*[9I/Eq%SwP[Ï ! O̞;s &[qzَlq. 6mAEqAcȱ:m )$t9tؘg9M8c-ov9dqy\Rw_00NH#B+g4o#d YieWHȣ S ?(Z[Ҵ 6V4uU~Ӯܞ_m9;Oؚ*ѕqDOq#Nwyl atA+&|rPfMf;| VyZON4_k`}*VMTuNj9Vl;Ԕ4gEk9=-LK-niplݡ U<̆od&@92?fǑB'B\X=Z|'3B<9dѢnr^?,_01$[0^牓"W4(MD>L$`0+ܝB)cf(knL9O"d.Ѿm*ם v]TZcgADKL["X@XɨjlV9!X Mf& Fp/ֽE]YNF8&wE8>|-d!K 7ѣVfn^GիT1ݼz@X:x C]N C^ʷmwH9yގ(r6k,zp+%5\ V=dX. _LmAv Eb̜ vu(8}TlI}y?^ +[Km _^quE`\ָuz챥z2̯`NPdwڀu:}׿|vWŝ歷:9aT,m["N?GWI{z%)N~ ItYĤ!]0tԲo˦=[FNi Xn-Tt3iG26Yc3a֩E{U >Vkґ;wO%t

(-NB JHm<<~0xLy,? -PǷ՘1ʫè1C?Sd4}:=߳lCa cA5&%OoOݥ`fՉT$fuO%߶fh%)!_H)˩7.C޿=ak2NCrA/"J)؟OϞՋTrOR{"L[ K*D I]SW6Ζ_?e:6w#ılUt=Z ]#5& h Fd5]{w#$ETA)8se|3ҟւ9 S G/aMk$K]E?@ytc:K2 h0j|97ef$Iuo?~|0Ksd#I_Fwr3Ŝݍ9q=u(x\9띻eBwZ.se;6ar2Pk)@9yܯ)E=i#5T.р~c(OTUZ%>]L>Dz\ Zp#=>iTW`ty\`~55.-jĚ[%663EfPZrt|LUӗF>)| lp`<̣)%f8t?jd^.+H$p3V|aI 5c ]Q(ݳ٤E 7||pccoIENGDlQ5Ij% š̸' LBO٧~4et.8 FwaFxC~ԃ{p#x&KT) ֙UG'X,9mzQJDRT܇B(nom-pz?(W k$'r}ɦǧ}-)'gnd67#DqHTryUZYڷkRֈA'v[ ar<ߍv-kd?On0w8vG|epִ% o(^dq\'WЉfQ_][- =U0=B:uB\GQSo𷔄9"t'X#[v)bQnQa<%l֯ mCG- 3{(;BPR}bQ(lnԟFzab ,P{ho rApr_Ұxxmio{ݺS>5 tB_Q;0$aIg|VxrqOKb `awu1jnRy#[jodJ)U;rj,ix{\_@ y袖]p̭rC)RehlW +w 5aD*bҨPKs hZPG[M/>׳`>$֥=&u!Ӹ![4R̎48JlM%ׅi߇y+1MDmۿYԴ&3]Gr! aI9wr-Y+7qzʹ_:)ݩAS7V)wSJ4-Cl+g~aa2qFG>\z|r7 b@vLFahGvdh"#߇q! Ql(Rj-xb4^AK5W\.-6ya1YOVԡh܈fO7ШOع"Uzx"H!@,[/[R9A陲5N勜߽1]ΥU@wP,xnZ$#?PK ^G) mflogo.styUT y1fo@UxSao0ί/$hFIˤXuv,$iTd {ݻd8p\X RRg: ^\ub%TNHZ&mD&`ue hu..KɒWU^& &l ҈W.=^J( -NdƁN 4ۆNE"X)4g)_s:]\xdS辷L0O*Dn%uL՚Cs :~{!y.4 *ő(ٷ*Vti Goi?5_Oh<5FGnn&7-&4Rm`_>=n)+tl`S-EASVY7CRvsϙ,sEw JvTSF*HT<%-JL> otI7oD1WSs9#2?T{Y?}zPr@FyPKh0Q#Z;Purl.styUT Tfo@fo@Ux[vFϧѱS)9XkN39A2&pР$f`a_c[ 4H)Ndm -UUjU'^+u+uvr_훲T}Y]x')q]e${,WUV28Fe@y|BڹV^:UqeYr||WP#.*k5zebR\:.4>̨eUΪxPVFCfNV5Ef LZպZP)iZzQI^&yY ~eL0+UQyVI 0UC&< UVIVuVt2I6WRlde[[&NjZVu%U\i'J=UF;OqN6Fcz u͝\JeisosJ+B7$-n6* ^ĚiMpZv?P{EN7|oW1^Cx6w,q}_?ZU$+*j''躆Q9h^Sb)ҰU%ͺZyAMJ?drU1㱟xʚ{lL6+(*Ӌ(M ?qoxǏO9?~:){ď!?~c~ J,Xczm`г2sȏ!_?A]r˸Z<[7dW%?Kn_LZ$s;Cmh,v. G?}8 QJ%z:m^^SrI5SEx$ˎkq#6$Hgn2\6LqNYϾUѿF_g>{#EBRO+>Ǥvg b\y6@n oDo cx:_-%^"5!ՓQT-KďI;Ńlհ֒ƨhf 0gQ g!rI\' b0f1(9xHL}}<~dU6j?WPߺ?ppV hI&\-7Q9kCOr#y֍kv#f@g8Ub;@wC cQkim=z0ڴF7"ǵ^,`D Bu/E0a쭶UE a b _+ D˒^Ydu-y 3ހHpD^͵}m{}9V`0AlBj?Ip! ڱZ MkM+D`KFW4~DOHt0]Rdйbes Y ;/$}D>6k`[ $b' 2ZL(JhкM7|z*Ɂwr`-2ڬQ]JÇG r[ d,$6(wGhz Y }7 Z.u\B"Nvf2rLCdTŲ (*ʯ"FV#lljI,Lrqi`1`R M!"9HWBSP΋ Cc~}~aߕ>d'bV4혌KݠK@،-g荻B5E*=JOuYh}Fɿ̺HgʈYݫ5a Fe>;J{xkȪEv": |/fof)[״_\ :A-  0be.%ٿ{SBm Ѓa:X @-uv$eւ.`dt>)[+%@&N/YOiWPZ#PuM`_ V v5OXnɘHzɈGqBXL* rU7QNaҪ+HFj1(Ǫ/-.:@&O?VbēX@ !WYwofp*`"^-µ>.ޅ t MtouŖ8JCln ^m|~aS]ʜL9qe:u^]0^{vfcR,u؜ɟv˥=so΁~^ mL&ZەUY# iaȶEٖMշUUVɝ=eȱ0|;)j4nrp9 {R^36r6JP H@M'd}-¼ ZדТjH!4 ˍn f]7]:uu_39%u_tlcu%Dm+Ո6r,w_l`TjGXzʍ;]vˎ- sUFgG"ff.׭.`{c% U]RN7J\Y^¯z8-] Qatpf*^K}I̪2и% ˕+̀z2oUcɰAi/rypσ3 z+6Գߎn`z%G2CD&ꜵd kN_0u1b'Mxf:9 VmSrNqY.Rکa3zbB!&g`γXhswoH7ep?,mk#;UTyd.d_̋'i^=rqEjĨmHr:>>u1n˅`Kv+DnR^1RjiĖ7b/8~ Q /;39lxR, <ߓbuS r3զfx?snf¦a!岰?dv]w})odru5MvIlNFR4Jv^c{ΒbnU1l2輻ѮFgnh77#L{MR{'P~+g ϋ;.o{2 S[ȿTPC[[{nocR*evG6>2#Z.1IEx^ ip-@@vA( a-6w+鬐T#óayƶy.²GU4w{WW rf}eHVdd[+UhȮ_ϩUΠ {$`;5»K˽xSoqˣuN-_W9>E.3Ѷewd5IL>h Cb(z~8ײ8QO,ZLw'\7bGvwZ ?:v{wYHDay+qynι#x[ynv_U%XRm ?yٽ[4lLlo @ߨׅ̒k'`8aP.i}Kf߹!Wu%D@XՂfڸ>9!_h!NfÍ45IGUie$fźNu~I{8Cz_$]f`G^j.+U^~gLvxWJ[>) 9cƛOlg߈k6(n>6祿̙yMCxx& B }̾CJqX%Sz@2W{ C_UM gSMlָZ:ۼ\mBMa.j??:_16Ǒ}HbOc:E N$r7 :Z0!XSf ~+DV¤eNLhQ.hvfa z 8(_*yǷoS>IaTY2z$ֿ%EL=eShI=B|zxK,>Vn<_ٞP&|7W Ŭͼ֔㗙ղ J :xh\h y QJ Lb]c+p@r5;HKم* ggqu[*㥃XqlK#oZlҭAh#?rrak Fh:~yZi-)WpDÇfe@7"¿\jZڒneHkΠLVx%jPݝ}0vo/u"" q_LVu"?O-n쳾[uu*G!,vt޳C7(^"V_{༩A 4r'7CGYdJYR[hۧĤꃜY^f,gRp|ɿ{?~:Rui6rC#r9}[s1 "1]T>6{{+DT`f!J]JwtɱM-c>ƾQXɯ O'!|AGy$B9Vr'$ 9l:i 7g"kj" + D&&A&kU\_bI2Y'I, }VU?pbU]uv0 EsaƝi`\䋝WnE`5y=B,7:NMK"v`2{} Kx %SfAv9g3VTB^0,k0Nk|M< D'? o>I<(l ©6q ''Bܺ'ycQ\M` F>?'aE4)یD?B~(kϣh\txG2rȿ>?]pnI N#߻tx2[m,ZɧLk,#Nf5ÅG!'4 i/!Spo-4aJN{Sq Eh4k_6YU%Z#:Cц6I` 798 AK>O44|*NLI o`IQٞ &6@ 21I[^bWEfǔiSgWf.ZxFX¾,9D1cۃxET@.-J'?A`z +;vI&G&wpC8 ,fXd, 6/vLH,\CDp4Fs3Miރ<0-IɄ+ʅ y˃דl4n~ac0 bF{HEwm9`=b lMBތ>[m),R՘ijE`lt^.z);PY0 !&&4}w+e1RS )cgrJC倾`} =|ȓܻ!,Sf*\0.F^hqf16-f3ڴq{)_-'n8BlOWW޻*ğRIdM9!J{Io؊K#C8ݕb7 "I9xɟ^OX0HyYVNYLi(dkQS좰.IKuQޡZ}=l1?DŽ\ ̣}`|8%i肕`I]ھj\4PG:Q,c/.0LLH,ey K#'08SψT̚pqĨY-"F 'zlQ/a|aosU˜[6, 2̷2|4GM.Edoō|uj/ )`w|Twl$~ C1iWacp~L5yA~aZۅ_ ܀ek'f]soVV>FOW ӟҗkV(9 q  }yAW~)TTcNJ1-OxUh*x\ZETkN5D{_O>:fq=2o*RatSPyP6M}A);cU\<0Xž2oFxP*gl1$E7n׬54[{+ڃl?~\jwvv~x_t_Go~yק0pr5KPK DУD Ulogo.fdUTy1UxPK^&k9 Sfancyhdr.styUT7UxPK ^G) )mflogo.styUTy1UxPKh0Q#Z;P {url.styUTTfo@UxPK8tex-common-6.04ubuntu1/doc/tds-1.1/tds.aux0000664000000000000000000001077712607350221015124 0ustar \relax \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}History}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}The role of the {\tds@reduced@size \uppercase {TDS}}}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Conventions}{3}} \@writefile{toc}{\contentsline {section}{\numberline {2}General}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Subdirectory searching}{3}} \newlabel{sec:Subdirectory searching}{{2.1}{3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Rooting the tree}{4}} \newlabel{sec:Rooting the tree}{{2.2}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Local additions}{4}} \newlabel{sec:Local additions}{{2.3}{4}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Duplicate filenames}{5}} \newlabel{sec:Duplicate filenames}{{2.4}{5}} \@writefile{toc}{\contentsline {section}{\numberline {3}Top-level directories}{5}} \newlabel{sec:Top-level directories}{{3}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Macros}{6}} \newlabel{sec:Macros}{{3.1}{6}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Extensions}{7}} \newlabel{sec:Extensions}{{3.1.1}{7}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Fonts}{8}} \newlabel{sec:Fonts}{{3.2}{8}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Font bitmaps}{9}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Valid font bitmaps}{10}} \newlabel{sec:Valid font bitmaps}{{3.2.2}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Non-font \textlogo {META}\discretionary {-}{}{}\textlogo {FONT}\spacefactor \@m {} files}{10}} \newlabel{sec:Non-font MF files}{{3.3}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\textlogo {META}\discretionary {-}{}{}\textlogo {POST}\spacefactor \@m {}}{10}} \newlabel{sec:MetaPost}{{3.4}{10}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.5}B\kern -.05em{\tds@smsize IB}\kern -.08emT\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m {}}{11}} \newlabel{sec:BibTeX}{{3.5}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Scripts}{11}} \newlabel{sec:Scripts}{{3.6}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Documentation}{12}} \newlabel{sec:Documentation}{{3.7}{12}} \@writefile{toc}{\contentsline {section}{\numberline {4}Summary}{13}} \newlabel{sec:Summary}{{4}{13}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Documentation tree summary}{14}} \newlabel{sec:Documentation tree summary}{{4.1}{14}} \@writefile{toc}{\contentsline {section}{\numberline {A}Unspecified pieces}{15}} \@writefile{toc}{\contentsline {subsection}{\numberline {A.1}Portable filenames}{15}} \newlabel{sec:Portable filenames}{{A.1}{15}} \@writefile{toc}{\contentsline {section}{\numberline {B}Implementation issues}{16}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.1}Adoption of the {\tds@reduced@size \uppercase {TDS}}}{16}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.2}More on subdirectory searching}{17}} \newlabel{sec:More on subdirectory searching}{{B.2}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {B.3}Example implementation-specific trees}{17}} \newlabel{sec:Example implementation-specific trees}{{B.3}{17}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.1}AmiWeb2c 2.0}{18}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.2}Public {\tds@reduced@size \uppercase {DECUS}} T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\spacefactor \@m {}}{18}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {B.3.3}Web2c 7}{18}} \@writefile{toc}{\contentsline {section}{\numberline {C}Is there a better way?}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Macro structure}{19}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Font structure}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.1}Font file type location}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.2}Mode and resolution location}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {C.2.3}Modeless bitmaps}{21}} \@writefile{toc}{\contentsline {subsection}{\numberline {C.3}Documentation structure}{21}} \@writefile{toc}{\contentsline {section}{\numberline {D}Related references}{21}} \newlabel{sec:Related references}{{D}{21}} \@writefile{toc}{\contentsline {section}{\numberline {E}Contributors}{22}} tex-common-6.04ubuntu1/doc/tds-1.1/tds.dvi0000664000000000000000000025617412607350221015114 0ustar ; TeX output 2004.06.23:1025y?|FnQDtGGcmr17A7tDirectoryStructureforT[-E;gXFiles|FB0XQ cmr12TUGWVorkingGrouponaT UE!XDirectoryStructure(TWrG-TDS)Ⰽ9.vrersion1.1 June23,2004|GK`y cmr10CopyrightrcUU !", cmsy10 1994,UU1995,1996,1997,1998,1999,2003,2004TU>'ExXUsersGroup.|FPermissiondDtouse,hcopy*,anddDdistributethisdoGcument': cmti10withoutmo}'di cation(fordDanypurpGoseand withoutufeeisherebygranted,}providedthatthisnoticeappGearsinallcopies.Itisprovided\asis"UUwithoutexpressedorimpliedwarranty*.PermissionisgrantedtocopyanddistributemoGdi edversionsofthisdoGcumentunderthecondi-tionsforverbatimcopying,providedthatthemoGdi cationsareclearlymarkedandthedoGcumentisUUnotrepresentedastheocialone.ThisdoGcumentisavqailableonanyo cmr9CT:ANલhost(seeAppGendixD). PleasesendquestionsorsuggestionsUUbyemailtoHistoryx..........................................V2'1.2>TheUUroleoftheTDSX...................................V2'1.3>Conventionsb........................................V3b92'Generalp3'ॲ2.1>SubGdirectoryUUsearching"..................................V3'2.2>RoGotingUUthetree.....................................V4'2.3>LoGcalUUadditions......................................V4'2.4>DuplicateUU lenames]....................................V53'T*op-levelUUdirectories<5'ॲ3.1>Macrosэ...........................................V6'3.2>F*ontsjg............................................V8'3.3>Non-fontUUo> logo10METAF9ONT8 lesm................................ V10'3.4>METAPqOST鍍........................................ V10'3.5>BٓRcmr7IB32TU>'ExX;.......................................... V11'3.6>Scripts_........................................... V11'3.7>DoGcumentation...................................... V124'SummarycL13'ॲ4.1>DoGcumentationUUtreesummaryM~.............................. V14A'UnspGeci edUUpieces?_15'ॲA.1>PortableUU lenamesA.................................... V15B'ImplementationUUissues/N116'ॲB.1>AdoptionUUoftheTDSō................................... V16'B.2>MoreUUonsubGdirectorysearching΍............................. V17'B.3>ExampleUUimplementation-spGeci ctreesȍ......................... V17C'IsUUthereabGetterway?/19'ॲC.1>MacroUUstructurexo...................................... V19'C.2>F*ontUUstructure\....................................... V20'C.3>DoGcumentationUUstructure................................ V21D'RelatedUUreferences?'ExXisapGowerful, exibletypesettingsystemusedbymanypGeoplearoundtheworld.07Itis extremelypGortableandrunsonvirtuallyalloperatingsystems.Oneunfortunatesidee ectofTU>'ExX's- exibility*,chowever,is-thattherehasbGeennosingle\right"waytoinstallit.ThishasresultedUUinmanysiteshavingdi erentinstalledarrangements.N8TheprimarypurpGoseofthisdocumentistodescribeastandardTU>'ExXDirectoryStructure(TDS):adirectoryhierarchyformacros,fonts,andtheotherimplementation-indepGendentTU>'ExXsystem les.dAs.Ramatterofpracticality*,6thisdoGcumentalsosuggestswaystoincorpGoratetherestoftheTU>'ExX- lesintoasinglestructure.PTheTDShasbGeendesignedtoworkonallmoGdernsystems.InCparticular,G3theT*echnicalWorkingGroup(TW9G)CbGelievesitisusableunderMacOS,MS-DOS,OS/2,Unix,VMS,9andWindowsNT.rW*ehopGethatadministratorsanddevelopGersofbothfreeandUUcommercialTU>'ExXimplementationswilladoptthisstandard.ThisdoGcumentisintendedbGothfortheTU>'ExXsystemadministratoratasiteandforpeoplepreparingTU>'ExXdistributions|everythingfromacompleterunnablesystemtoasinglemacroorstyle le.&ItmayalsohelpTU>'ExXusers ndtheirwayaroundsystemsorganizedthisway*.&Itisnotlatutorial:-wenecessarilyassumeknowledgeofthemanypartsofaworkingTU>'ExXsystem.`Ifyou'ExXextensionsincludedundertex,Tqinsteadofintheirowntop-leveldirectories1(SectionUU3.1.1)!࠸1লNewUUtop-leveldirectoryscripts(Section3.6).!࠸1লNewUUsubGdirectorieslig,opentype,truetype,andtype3underfonts(Section3.2).!࠸1enc,UUlig,andmapallusehsyntax4Di/hp}'ackage[isubGdirectories(Section3.2).!࠸1pfmUU lesspGeci edtogoundertype1,andinf lesunderafm(Section3.2).č1.23 Theroleofthe m#R 3 cmss10TDSpलThe]roleoftheTDS+istostabilizetheorganizationofTU>'ExX-relatedsoftware]packqagesthatareinstalledUUandinuse,pGossiblyonmultipleplatformssimultaneously*.At. rstglance,ditmayseemthattheComprehensiveTU>'ExXArchiveNetwork(CT:AN).aful llsatleastfpartofthisrole,butthisisnotthecase.HTheroleofCT:AN=istosimplifyarchivinganddistribution,UUnotinstallationanduse.InΔfact,therolesoftheTDSuandCT:ANarefrequentlyincon ict,aswewillsee.݄F*ordistribu-tion,>manydi erenttypGesof lesmustbGecombinedintoasingleunit;mforuse,>itistraditionaltoFsegregate les(evensimilar les)fromasinglepackqageintoseparate,3oGccasionallydistant,directories.`2+ˠyfdǠTDSUUversion1.1टff?1.33 ConventionshलInthisdoGcument,g\/"isusedtoseparate lenamecomponents;'forexample,gtexmf/fonts.ZThis isUUtheUnixconventionUUbuttheideasareinnowayUUUnix-spGeci c.GInMthisdoGcument,Ӌ\TU>'ExX"generallymeanstheTU>'EXsystem,ӋincludingMETAF9ONT8,D9VI3drivers,utilities,UUetc.,notjusttheTU>'ExXprogramitself.Theword\packqage"inthisdoGcumenthasitsusualmeaning:asetofrelated lesdistributed,installed,zandsBmaintainedasaunit.ˏThisisnotfaL5ffA͉TU>'ExX2 b> cmmi10",:.packqage,zwhichisastyle lesupple-mentingUUadoGcumentclass.W*eUUusethefollowingtypGographicconventions:literalHLiteralUUtextsuchasfilenameistypGesetintypGewritertypGe.सhr}'eplaceable[iZReplaceabletextsuchashp}'ackage[i,identifyingaclassofthings,istypGesetin1italicsUUinsideanglebrackets. 2.General)लThisUUsectiondescribGescommonpropertiesthroughouttheTDStree.ڍ2.13 SubSdirectorrysearchinghलOlderlTU>'ExXinstallationsstorelargenumbGerslofrelated lesinsingledirectories,rforexample,allTFMUU lesand/orallTU>'ExXinput les.ThismonolithicarrangementhindersmaintenanceofaTU>'ExXsystem:8itisdiculttodeterminewhat lesareusedbywhatpackqages, Cwhat lesneedtobGeupdatedwhenanewversionisinstalled,orwhat lesshouldbGedeletedifapackqageisremoved.+ItisalsoasourceoferroriftwoUUormorepackqageshappGentohaveinput leswiththesamename.Therefore,AMthe'ExX,METAF9ONT8,andtheircompanionutilitiessearchinbothaspeci eddirectory%andrecursivelythroughallsubGdirectoriesofthatdirectorywhenlookingforaninput le.bOther(7formsofsubGdirectorysearching,1=forexamplerecursive-to-one-levelsearches,1=mayalsobGeXprovided.{W*eencourageimplementorstoprovidesubGdirectorysearchingattheoptionoftheinstallerUUanduserforallpaths.TheɮTDSɐdoGesnotspecifyasyntaxforspecifyingrecursivesearching,butweencourageimple-mentorsUUtoprovideinteropGerability(seeSectionB.2).`3;fyfdǠTDSUUversion1.1टff?2.23 RoSotingthetreepलInthisdoGcument,weshalldesignatetherootTDSdirectoryby`texmf'(for\TU>'ExXandMETA- F9ONT8").O:W*erecommendusingthatnamewherepGossible,hbuttheactualnameofthedirectoryisupUtotheinstaller.rOnPCnetworks,UforUexample,thiscouldmaptoalogicaldrivespGeci cationsuchUUasT:.N8Similarly*,- the#loGcationofthisdirectoryonthesystemissite-dependent.aItmaybGeattherootofthe; lesystem;ѮonUnixsystems,/usr/local/share,/usr/local,/usr/local/lib,and;/optलareUUcommonchoices.Theunametexmfwaschosenforseveralreasons:itre ectsthefactthatthedirectorycontains lespGertainingcRtoanentireTU>'ExXsystem(includingMETAF9ONT8,fMETAPqOST,fBIB32TU>'ExX,etc.),notcRjustTU>'ExXitself;-anditisdescriptiveofagenericinstallationratherthanaparticularimplementation.AysiteymaychoGosetohavemorethanoneTDSyhierarchyinstalled(forexample,wheninstallinganUUupgrade).qThisispGerfectlylegitimate.č2.33 LoScaladditionspलThe@TDS@ cannotspGecifypreciselywhenapackqageisorisnota\localaddition".jEachsitemustdeterminegthisaccordingtoitsownconventions.rAtthetwoextremes,++onesitemightwishtoconsider\nonloGcal"all lesnotacquiredaspartoftheinstalledTU>'ExXdistribution;anothersitemighthHconsider\loGcal"onlythose lesthatwereactuallydevelopGedatthelocalsiteandnotdistributedUUelsewhere.W*e7recognizetwo7commonmethoGdsforlocaladditionstoadistributedtexmftree.lBothhavetheirUUplace;infact,somesitesemploybGothsimultaneously:1.1AYrcompletelyYseparatetreewhichisaTDSstructureitself;forexample,/usr/local/umbtex1লatktheUniversitykofMassachusettskatBoston.#Thisisanotherexampleofthemultipletexmf1লhierarchiesUUmentionedintheprevioussection.2.1Atdirectorytnamed`local'atanyappropriatelevel,forexample,inthehformatظi,hp}'ackage[i,1andNhsupplieridirectoriesdiscussedinthefollowingsections.2TheTDSNQreservesthedirectory1nameUUlocalforthispurpGose.1W*eW'ExXinput lesmustbGeuniquewithineach rst-levelsubGdirectoryoftexmf/tex1লandCtexmf/tex/generic,G6butnotwithinalloftexmf/tex;Ii.e.,di erentTU>'ExXformatsmay1have lesbythesamename.B(Section3.1discussesthisfurther.)Thus,nosingleformat-1indepGendent'ExXsystem(seeSec-tionUU4forasummary).qAsitemayomitanyunneededdirectories.AlthoughatheTDSabyitsnaturecanspGecifypreciselocationsonlyforimplementation-independent les,cwerecognizethatinstallersmaywellwishtoplaceother lesundertexmftosimplifyadministrationoftheTU>'ExXtree,espGeciallyifitismaintainedbysomeoneotherthanthesystemadministrator.qTherefore,UUadditionaltop-leveldirectoriesmaybGepresent.TheUUtop-leveldirectoriesspGeci edbytheTDSare:tex3forUUTU>'ExX les(Section3.1).fonts> forUUfont-related les(Section3.2).metafontMforUUMETAF9ONT8 leswhicharenotfonts(Section3.3).metapostMforUUMETAPqOST8 les(Section3.4).bibtexC`forUUBIB32TU>'ExX les(Section3.5).scriptsHforUUplatform-indepGendentexecutables(Section3.6).doc3forUUuserdoGcumentation(Section3.7).sourceC`for sources. FThisincludesbGothtraditionalprogramsources(forexample,IW*eb2C 1sourcesFgointexmf/source/web2c)and,4e.g.,L5ffA͉TU>'ExXFdtxsources(whichgointexmf/1source/latex).qTheUUTDSleavesUUunspGeci edanystructureundersource.`5[РyfdǠTDSUUversion1.1टff?1sourceisintendedfor leswhicharenotneededatruntimebyanyTU>'ExXprogram;7it 1shouldnotbGeincludedinanysearchpath.WF*orexample,plain.texdoGesnotbelongunder1texmf/source,eventhoughitisa\source le"inthesenseofnotbGeingderivedfrom1anotherUU le.q(ItgoGesintexmf/tex/plain/base,asexplainedinSection3.1).सhimplementationcioㆲforwimplementations(examples:emtex,vtex,web2c),towbGeusedforwhatever1purpGose5deemedsuitablebytheimplementororTU>'ExXadministrator.(gThatis,l lesthat1cannottbGesharedbetweentimplementations,suchaspGool les(tex.pool)andmemory1dump les(plain.fmt)gohere,inadditiontoimplementation-widecon guration les.1SeeUUSectionB.3forexamplesofrealhimplementationcitrees.1Such5implementation-spGeci ccon guration lesshouldnot(ebelocatedusingthemainTU>'ExX1inputsearchpath(e.g.,qTEXINPUTS).PThismustbGereservedfor lesactuallyreadbyaTU>'ExX1engine.qSeeUUSection3.1.1.सhpr}'ogramciOnfor$program-spGeci cinputandcon guration lesforanyTU>'ExX-relatedprograms(ex-1amples:zmft,_%dvips).SIn].fact,thetex,metafont,metapost,andbibtexitemsabGovemay1allUUbGeseenasinstancesofthiscase.č3.13 MacrospलTU>'ExXmacro lesshallbGestoredinseparatedirectories,segregatedbyTU>'EXformatandpackqagenameUU(weuse`format'initstraditionalTU>'ExXsensetomeanausefullyndump-ablepackqage):1texmf/tex/hformatظi/hp}'ackage[i/N8सhformatظiIisUUaformatname(examples:qamstex,latex,plain,texinfo).1TheTDSallowsdistributionsthatcanbGeusedaseitherformatsorpackqages(e.g.,$T*exinfo,1Eplain)tobGestoredateitherlevel,attheoptionoftheformatauthororTU>'ExXadministrator.1W*e'ExXinputssearchpath,4itwillbGestraightforwardtousethemas1macro>packqagesunderanotherformat,xwhereasplacingtheminanothertreecompletely1obscuresUUtheiruseasaformat.1TheUUTDSreservesthefollowinghformatظinames:7࠸Ggeneric,forxinput lesthatareusefulacrossawiderangeofformats(examples:Gnull.tex,=path.sty).gGenerally*,this7meansanyformatthatusesthecategorycoGdesGofX}PlainTU>'ExXanddoGesnotrelyonanyparticularformat.{>ThisisincontrasttothoseG leswhichareusefulonlywithPlainTU>'ExX(whichgoundertexmf/tex/plain),e.g.,Gtestfont.texUUandplain.texitself.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.1Thus,:Nfor3almosteveryformat,:Nitisnecessarytosearchatleastthehformatظidirectoryand1thenpthegenericdirectory(inthatorder).#OtherdirectoriesmayneedtobGesearchedas1well,depGendingOontheformat.0WhenusingAU>'M S-TU>'ExX,forexample,theamstex,plain,1andUUgenericdirectoriesshouldbGesearched,becauseAU>'M S-TU>'ExXiscompatiblewithPlain.सhp}'ackage[iMisUUaTU>'ExXpackqagename(examples:qbabel,texdraw).1In{thecasewhereaformatconsistsofonlyasingle leandhasnoauxiliarypackqages,1thatb lecansimplybGeplacedinthehformatظidirectory*,?insteadofhformati/base.F*or`6jyfdǠTDSUUversion1.1टff?1example,RT*exinfoR,maygointexmf/tex/texinfo/texinfo.tex,nottexmf/tex/texinfo/ 1base/texinfo.tex.1TheUUTDSreservesthefollowinghp}'ackage[inames:7࠸Gbase,6for zthebasedistributionofeachformat,including lesusedby-INITEXwhenGdumpingformat les.zF*orexample,ûinthestandardL5ffA͉TU>'ExXdistribution,theltx lesGcreatedduringthebuildproGcess.$Anotherexample::the.inidriver lesforformatsGusedUUbyTU>'ExXLiveandotherdistributions.7࠸Ghyphen,!Nforhyphenationpatterns,includingtheoriginalAmericanEnglishhyphen.Gtex.fThese4varetypicallyusedonlybyXINITEX.fInmostsituations,; thisdirectoryneedGexistUUonlyunderthegenericformat.7࠸Gimages,;for )imageinput les,suchasEncapsulatedPostScript gures.CAlthoughitGisjCsomewhatnon-intuitivejCforthesetobGeunderadirectorynamed\tex",o~TU>'ExXneedsGtoreadthese lestogleanbGoundingboxorotherinformation.AbmechanismforGsharingimageinputsbGetweenTU>'ExXandothertypesettingprograms(e.g.,ΎInterleaf,GF*rameMaker)MisbGeyondthescopGeoftheTDS.oCInmostsituations,OLthisdirectoryneedGexistUUonlyunderthegenericformat.7࠸Glocal,UUforloGcaladditionsandcon guration les.qSeeSection2.3.7࠸Gmisc,Bforpackqagesthatconsistofasingle le.6AnadministratororpackqagemaintainerGmaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,insteadofusingmisc.č3.1.17nExtensionspलTU>'ExXHhasspawnedmanycompanionandsuccessorprograms(\engines"),}suchasPDFTU>'ExX,}Omega,andothers.ITheTDSܵspGeci esthattheinput lesforsuchprograms(usingaTU>'ExX-likesyntax)bGeplaced'2withinthetop-leveltexdirectory*,0leitheratthetoplevelorwithinaformatsubGdirectory*,evenUUthoughtheoriginalTU>'ExXprogrammaynotbGeabletoreadthem.qF*orexample:1texmf/tex/aleph1texmf/tex/enctexलThisGisachangefromTDS1.0,rwhichspGeci edtop-levelhextensioncidirectoriesforeachsuchprogram.qW*eUUfeltthenewapproachispreferable,bGecause:N8!࠸1লAuthorsuofrelevqantpackqagestypicallymaketheircoGdedetecttheenginebeingused,νand1issueerrormessagesoradapttocircumstancesappropriately*.Furthermore,\asapackqage1matures,\it(3maysuppGortmultipleengines.bThus,\apackqagecouldconceivablybGeplaced1inanyofseveraltop-leveldirectories,Qatdi erenttimes.Puttingallpackqagesunderthe1top-levelUUtexdirectoryprovidesastableloGcationovertime.!࠸1লUsers-needtobGeabletoswitchbetween-engines,5andcon guringdi erentsearchpathsfor1eachUUengineisdicultanderror-prone.N8Thus,in!practice,having!di erenttop-leveldirectoriescauseddicultiesforeveryoneinvolved|users,UUpackqageauthors,siteadministrators,andsystemdistributors.Pleaseacontrastthisapproachwiththehimplementationcitop-levelsubGdirectory(Section3),whichistobGeusedforcon guration lesthat(presumably)donotuseTU>'ExXsyntaxandinanycaseshouldUUnotbGefoundalongthemainTU>'ExXinputsearchpath.`7{ϠyfdǠTDSUUversion1.1टff?3.23 FrontspलF*ont lesarestoredinseparatedirectories,!segregatedby letypGe,!andthen(inmostcases)font supplier EandtypGeface.YPK 3andGF lesneedadditionalstructure,asdetailedinthenextsection.1texmf/fonts/htyp}'e[i/hsupplieri/htypefacei/1texmf/fonts/enc,lig,map/hsubp}'athci/N8सhtyp}'e[i=βisthetypGeoffont le.TheTDS͡reservesthefollowinghtyp}'e[inamesforcommonTU>'ExX1 leUUtypGes:7࠸Gafm,UUforAdobGefontmetrics,andinf les.7࠸Ggf,UUforgenericfontbitmap les.7࠸Gopentype,UUforOpGenTypeUUfonts.7࠸Gpk,UUforpackedUUbitmap les.7࠸Gsource,UUforfontsources(METAF9ONT8 les,propGertylists,etc.).7࠸Gtfm,UUforTU>'ExXfontmetric les.7࠸Gtruetype,UUforT*rueTypGefonts.7࠸Gtype1,UUforPostScriptTypGe1fonts(inpfa,pfb,oranyotherformat),andpfm les.7࠸Gtype3,UUforPostScriptTypGe3fonts.7࠸Gvf,UUforvirtualfonts.1TherTDSrXalsoreservesthenamesenc,lig,andrmapforfontencoGding,ligature,andrmapping1 les,`respGectively*. YAllofthesedirectoriesarestructuredthesameway*,`withhsyntax4Di1লsubGdirectories,andthenhp}'ackage[isubsubdirectories.6Eachofthese letypGesisintended1to;bGesearchedalongitsownrecursively-searchedpath.i>Thenamesoftheactual lesmust1bGeUUuniquewithintheirsubtree,asusual.qExamples:Gfonts/map/dvipdfm/updmap/dvipdfm.mapGfonts/map/dvips/lm/lm.mapGfonts/enc/dvips/base/8r.enc1লThe27F*ontnameandDvipspackqageshavemoreexamplesoftheencandmaptypGes.mThe1afm2plUUprogramuseslig les.1pfm lesareincludedinthetype1directory*,SinsteadofbGeinggiventheirowndirectory*,1fortworeasons:M1)a.pfm leisalwaysanadjuncttoagiven.pfb le;2)theymustbGe1installedUUfromthesamedirectoryforWindowsprogramsotherthanTU>'ExXtousethem.1infL lesareincludedintheafmdirectory*,sinceaninfandafm lecanbGeusedtogenerate1a5bpfm.g!(Unfortunately*,;AdobGeTypeManagerandperhapsothersoftware5brequiresthatthe1pfbUUbGeinthesamedirectoryasafmandinfforinstallation.)1Asqusual,kasitemayomitanyofthesedirectoriesthatareunnecessary*.W&gfisaparticularly1likelyUUcandidateforomission.सhsupplieriN$isanameidentifyingfontsource(examples::adobe,!ams,public).MTheTDSreserves1theUUfollowinghsupplierinames:7࠸Gams,UUfortheAmericanMathematicalSoGciety'sAU>'M S-fontscollection.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.7࠸Gpublic,\fory[freelyredistributablefontswherethesupplierneither(1)requestedtheirGowndirectory(e.g.,ams),nor(2)alsomadeproprietaryfonts(e.g.,adobe).ItdoGes`8 yfdǠTDSUUversion1.1टff?Gnot[containallextantfreelydistributablefonts,Lnorareall lesthereinnecessarily GstrictlyUUpublicdomain.7࠸Gtmp,efor/dynamically-generatedfonts,asistraditionalonsomesystems.ItmaybGeGomittedUUifunnecessary*,asusual.सhtyp}'eface[iNis[thenameofatypGefacefamily(examples:ycm,\euler,times).The[TDS9reserves1theUUfollowinghtyp}'eface[iUUnames:7࠸Gcm\(withinpublic),[forthe75fontsde nedinComputers.andT;yp}'esetting,BVolume.E.7࠸Glatex(withinpublic),forthosefontsdistributedwithL5ffA͉TU>'ExXinthebasedistribution.7࠸Glocal,UUforloGcaladditions.qSeeSection2.3.N8SomeUUconcreteexamples:1texmf/fonts/source/public/pandora/pnr10.mf1texmf/fonts/tfm/public/cm/cmr10.tfm1texmf/fonts/type1/adobe/utopia/putr.pfaलF*or`completesupplierandtypGefacenamelists,consultFilenamesforTKß'E-Xfonts2߲(see`AppendixD).č3.2.17nFontUUbitmapspलF*ont4Mbitmap lesrequiretwocharacteristicsinadditiontotheabGovetobGeuniquelyidenti able:(1)zthetypGeofdevice(i.e.,@mode)forwhichthefontwascreated;n(2)theresolutionofthebitmap.F*ollowingcommonpractice,!XtheTDSasegregatesfontswithdi erentdevicetypGesintoseparatedirectories.qSeeUUmodes.mfinAppGendixDforrecommendedmodenames.SomeprintersopGerateatmorethanoneresolution(e.g.,at300dpiand600dpi),buteachsuchresolution\Pwillnecessarilyhave\Padi erentmoGdename.Nothingfurtherisneeded,^sinceimplicitinUUtheTU>'ExXsystemistheassumptionofasingletargetresolution.Two6namingstrategiesarecommonlyusedtoidentifytheresolutionofbitmapfont les.Onsystemsthatallowlong lenames(andintheoriginalMETAF9ONT/IJprogramitself), theresolutionisincludedinthe lename(e.g.,.cmr10.300pk).>OnsystemswhichdonotsuppGortlong lenames,fontsUUaregenerallysegregatedintodirectoriesbyresolution(e.g.,dpi300/cmr10.pk).Because.{theTDS.qcannotrequirelong lenames,6@wemustusethelatterschemefornamingfonts.SoUUwehavetwomoresubGdirectorylevelsunderpkandgf:1texmf/fonts/pk/hmo}'de[i/hsupplieri/htypefacei/dpihnnnci/1texmf/fonts/gf/hmo}'de[i/hsupplieri/htypefacei/dpihnnnci/सhmo}'de[iB@isDanamewhichidenti esthedevicetypGe(examples:iacx,Gljfour,modeless).l.Usually*,1this;risthenameoftheMETAF9ONTtUmoGdeusedtobuildthePK;7 le.$F*orfontsrendered1asbitmapsbyaprogramthatdoGesnotdistinguishbetweendi erentoutputdevices, the1সhmo}'de[iݲnameshallbGesimplymodeless.EThehmode[ilevelshallnotbGeomitted,(evenifonly1aUUsinglemoGdehappenstobeinuse.dpihnnnciM spGeci estheresolutionofthefont(examples:@dpi300,dpi329).P`dpi'standsfordots1pGerinch,:i.e.,pixelspGerinch.MW*erecognizethatpixelspermillimeterisusedinmanyparts1ofUUtheworld,butdpiistoGotraditionalintheTU>'ExXworldtoconsiderchangingnow.`9 ՠyfdǠTDSUUversion1.1टff?1The/SintegerhnnnciistobGecalculatedasifusingRMETAF9ONTh6arithmeticandthenrounded; 1i.e.,pitk.istheintegerMETAF9ONTusesinitsoutputgf lename.QW*erecognizesmalldi er-1encesxintheresolutionareacommoncauseoffrustrationamongusers,however,andxrec-1ommend`Cimplementorsfollowthelevel0D9VI`@driverstandard(seeAppGendixD)inbitmap1fontUUsearchesbyallowingafuzzof0:2%(withaminimumof1)inthehdpiڸi.DYImplementations:mayprovideextensionstothebasicnamingscheme,?suchaslong lenames(asinbtheoriginalMETAF9ONT8)andfontlibrary les(asinemTU>'ExX's.fli les),providedthatthebasicUUschemeisalsosuppGorted.󍍑3.2.27nValidUUfontbitmapsलTheTW9GԲrecognizesthattheuseofshort lenameshasmanydisadvqantages.nThemostvexingismthatitresultsinthecreationofdozensofdi erent leswiththesamename.]zAtatypicalsite,cmr10.pkKwillbGethe lenameforComputerModernRoman10ptat5{10magni cationsfor2{3moGdes.q(SectionUU2.4discussesduplicate lenamesingeneral.)T*ominimizethisproblem,westronglyrecommendthatPK lescontainenoughinformationtoidentifypreciselyhowtheywerecreated:*&atleastthemoGde,ȑbaseresolution,andmagni cationusedUUtocreatethefont.Thisinformationiseasytosupply:asimpleadditiontotheloGcalmodesusedforbuildingthefontswithMETAF9ONTwillautomaticallyprovidetherequiredinformation.IfyouhavebGeenusingalocalmodes lederivedfrom(orthatissimply)modes.mf(seeAppendixD),ͫtherequiredinformationisalreadyinyourPK les.;Ifnot,`asimpleadditionbasedonthecoGdefoundinUUmodes.mfcanbGemadetoyourlocalmodes leandthePK lesrebuilt.󍍑3.33 Non-font!o> logo10METAFwwONT. lesलMostMETAF9ONT$input lesarefontprogramsorpartsoffontprogramsandarethuscoveredbytheUUprevioussection.qHowever,UUafewnon-fontinput lesdoexist.Such lesshallbGestoredin:1texmf/metafont/hp}'ackage[i/सhp}'ackage[iUUisthenameofaMETAF9ONT8packqage(forexample,mfpic).TheUUTDSreservesthefollowinghp}'ackage[inames:!࠸1base,forthestandardMETAF9ONTnmacro lesasdescribGedinThe"o> logosl10METAF9ONTb}'ook,such1asUUplain.mfandexpr.mf.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,(forRMETAF9ONTV5packqagesconsistingofonlyasingle le(forexample,modes.mf)._An 1administratorJSorpackqagemaintainermaycreatedirectoriesforsingle- lepackqagesattheir1discretion,UUinsteadofusingmisc.󍍑3.43 METAPOSTMETAPqOSTzϲisAapicture-drawinglanguagedevelopGedbyJohnHobby*,yderivedfromKnuth'sMETA-F9ONT8.qItsUUprimarypurpGoseistooutputEncapsulated#- cmcsc10PostScriptinsteadofbitmaps.METAPqOST8inputUU lesandthesuppGort lesforMETAPqOST8-relatedutilitiesshallbGestoredin:10 {yfdǠTDSUUversion1.1टff?1texmf/metapost/hp}'ackage[i/ सhp}'ackage[iisthenameofaMETAPqOST5packqage.T]Atthepresentwritingnoneexist,buttheTW9GलthoughtUUitprudenttoleaveroGomforcontributedpackqagesthatmightbGewritteninthefuture.N8TheUUTDSreservesthefollowinghp}'ackage[inames:!࠸1base,Bfor>\thestandardMETAPqOSTw?macro les,suchasplain.mp,mfplain.mp,boxes.mp, 1andYgraph.mp.Thisincludes lesusedbyINIMPwhendumpingmem lescontaining1preloadedUUmacrode nitions.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,forMETAPqOST#packqagesconsistingofonlyasingle le.N9Anadministratororpackqage 1maintainermaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,Yinsteadofusing1misc.!࠸1support,U-for"additionalinput lesrequiredbyEMETAPqOSTZutility"programs,includinga1fontomap,acharacteradjustmenttable,andasubGdirectorycontaininglow-levelMETAPqOST1লprogramsUUforrenderingsomespGecialcharacters.č3.53 Bi$s6cmss8IB\T EXpलBIB32TU>'ExX-relatedUU lesshallbGestoredin:1texmf/bibtex/bib/hp}'ackage[i/1texmf/bibtex/bst/hp}'ackage[i/लTheUUbibdirectoryisforBIB32TU>'ExXdatabase(.bib) les,thebstdirectoryforstyle(.bst) les.N8सhp}'ackage[iisthenameofaBIB32TU>'ExXpackqage.TheTDSreservesthefollowinghp}'ackage[inames(theUUsamenamesarereservedunderbGothbibandbst):!࠸1base,UUforthestandardBIB32TU>'ExXdatabasesandstyles,suchasxampl.bib,plain.bst.!࠸1local,UUforloGcaladditions.qSeeSection2.3.!࠸1misc,|forABIB32TU>'ExXpackqagesconsistingofonlyasingle le.6cAnadministratororpackqage 1maintainerpmaycreatedirectoriesforsingle- lepackqagesattheirdiscretion,Ivinsteadof1usingUUmisc.č3.63 ScriptspलThe^top-levelscriptsdirectoryisforplatform-indepGendentexecutables,ĠsuchasPerl,ĠPython,and@shellscripts,xandJavqaclass les.SubGdirectoriesunderscriptsarepackqagenames.ThiseasescreatingUUdistributions,byprovidingacommonplaceforsuchplatform-indepGendentprograms.TheintentisnotforallsuchdirectoriestobGeaddedtoauser'scommandsearchpath,*#whichwouldԟbGequiteimpractical.Rather,qtheseexecutablesareprimarilyforthebene tofwrapperscriptsrinwhateverexecutabledirectoryadistributionmayprovide(whichisnotspGeci edbytheTDS).T*rulyauxiliaryscriptswhichareinvokeddirectlybyotherprograms,ratherthanwrappGerscripts,mayalsobGeplacedhere.wThatis,’scriptsalsoservesasaplatform-indepGendentanalogofthestandardUUUnixlibexecdirectory*.11 yfdǠTDSUUversion1.1टff?W*e}recommendusingextensionsspGecifyingthelanguage(suchas.pl,.py,.sh)}onthese les, tozhelpuniquelyidentifythename.:SincetheintentoftheTDSzDzisforprogramsinscriptsnottoUUbGeinvokedUUdirectlybyusers,thisposesnoinconvenience.F*orexample,+intheTU>'ExXLivedistribution,theConTU>'ExXtuser-levelprogramtexexeccanexistasasmallwrappGerscriptineachbin/hplatformci/texexec(whichisoutsidethetexmftree),#3whichmerelyUU ndsandcallstexmf/scripts/context/perl/texexec.pl.Examples:1scripts/context/perl/texexec.pl1scripts/context/ruby/examplex.rb1scripts/thumbpdf/thumbpdf.plलThecTDScdoGesnotspecifyalocationforplatform-dependentbinaryexecutables,whetherauxiliaryorUUuser-level.03.73 DoScumentationH.लMost^packqagescomewithsomeformofdoGcumentation: usermanuals,}example les,programmingguides,?etc.Inaddition,manyindepGendent lesnotpartofanymacroorotherpackqagehavebGeenUUcreatedtodescribevqariousaspectsoftheTU>'ExXsystem.TheTDSܲspGeci esthattheseadditionaldocumentation lesshallbestoredinastructurethatparallelsUUtosomeextentthefontsandtexdirectories,asfollows:1texmf/doc/hc}'ategory}i/...सhc}'ategory}iidenti esthegeneraltopicofdoGcumentationthatresidesbGelowit;0forexample,)aTU>'ExXformatlname(latex),programname(bibtex,tex),language(french,german),a leformat(info,UUman),orothersystemcompGonents(web,fonts).OnepGossiblearrangementistoorganizedocbylanguage,withalltheothercategorytypGesbelowthat.~Thishelpsusers nddoGcumentationinthelanguage(s)inwhichtheyare uent.~NeitherthisUUnoranyotherparticulararrangementisrequired,however.Withins(eachhc}'ategory}is(treeforaTU>'ExXformat,zthedirectorybaseisreservedforbasedoGcumen-tationUUdistributedbytheformat'smaintainers.TheUUTDSreservesthefollowingcategorynames:!࠸1general,Vfor"standalonedoGcumentsnotspeci ctoanyparticularprogram(forexample,1JoachimUUSchroGd'sComp}'onentsofTKß'E-X).!࠸1help,UUformeta-information,suchasFA9Q's,theTU>'ExXCatalogue,etc.!࠸1info,forproGcessedT*exinfodocuments.Q(Info les,likeanythingelse,mayalsobGestored 1outsideUUtheTDS,attheinstaller'soption.)!࠸1local,UUforloGcaladditions.qSeeSection2.3.The@docdirectoryisintendedforimplementation-indepGendentandopGeratingsystem-independent doGcumentation les.Implementation-dependent lesarebeststoredelsewhere,!asprovidedforby^theimplementationand/orTU>'ExXadministrator(forexample, VMS^ohelp lesundertexmf/vms/help).TheQdoGcumentationdirectoriesmaycontainTU>'ExXsources,RD9VIQ les,PostScriptQ les,text les,exampleUUinput les,oranyotherusefuldoGcumentationformat(s).SeeUUSection4.1forasummary*.12 !yfdǠTDSUUversion1.1टff?4.Summary:लAskeletonofaTDStexmfdirectorytree.PThisisnottoimplythesearetheonlyentriesallowed. F*orUUexample,localmayoGccuratanylevel.Vbibtex/ϲBIB32TU>'ExXUUinput les#`bib/ϲBIB32TU>'ExXUUdatabases-base/ϲbaseUUdistribution(e.g.,xampl.bib)-misc/ϲsingle- leUUdatabases#`hp}'ackage[i/ϲnameUUofapackqage#`bst/ϲBIB32TU>'ExXUUstyle les-base/ϲbaseUUdistribution(e.g.,plain.bst,acm.bst)-misc/ϲsingle- leUUstyles#`hp}'ackage[i/ϲnameUUofapackqagedoc/ϲseeUUSection3.7andthesummarybGelowfonts/ϲfont-relatedUU les#`htyp}'e[i/ϲ leUUtypGe(e.g.,pk)-hmo}'de[i/ϲtypGeUUofoutputdevice(forpkandgfonly)8`hsupplieri/ϲnameUUofafontsupplier(e.g.,public)Bhtyp}'eface[i/ϲnameUUofatypGeface(e.g.,cm)M`dpihnnnci/ϲfontUUresolution(forpkandgfonly)सhimplementationci/ϲTU>'ExXUUimplementations,byname(e.g.,emtex)local/ϲ lesUUcreatedormoGdi edatthelocalsitemetafont/METAF9ONT8(non-font)UUinput les#`base/ϲbaseUUdistribution(e.g.,plain.mf)#`misc/ϲsingle- leUUpackqages(e.g.,modes.mf)#`hp}'ackage[i/ϲnameUUofapackqage(e.g.,mfpic)metapost/METAPqOST8inputUUandsuppGort les#`base/ϲbaseUUdistribution(e.g.,plain.mp)#`misc/ϲsingle- leUUpackqages#`hp}'ackage[i/ϲnameUUofapackqage#`support/ϲsuppGortUU lesforMETAPqOST8-relatedutilitiesmft/MFTUUinputs(e.g.,plain.mft)सhpr}'ogramci/ϲTU>'ExX-relatedUUprograms,byname(e.g.,dvips)source/ϲprogramUUsourcecoGdebyname(e.g.,latex,web2c)tex/ϲTU>'ExXUUinput les#`hengine[i/ϲnameUUofanengine(e.g.,aleph);canalsobGelower#`hformatظi/ϲnameUUofaformat(e.g.,plain)-base/ϲbaseUUdistributionforformat(e.g.,plain.tex)-misc/ϲsingle- leUUpackqages(e.g.,webmac.tex)-local/ϲloGcalUUadditionstoorlocalcon guration lesforhformatظi-hp}'ackage[i/ϲnameUUofapackqage(e.g.,graphics,mfnfss)#`generic/ϲformat-indepGendentUUpackqages-hyphen/ϲhyphenationUUpatterns(e.g.,hyphen.tex)-images/ϲimageUUinput les(e.g.,EncapsulatedPostScript)-misc/ϲsingle- leUUformat-indepGendentpackqages(e.g.,null.tex).-hp}'ackage[i/ϲnameUUofapackqage(e.g.,babel)13oyfdǠTDSUUversion1.1टff?4.13 DoScumentationtreesummarrypलAn=exampleskeletonofaTDSdirectorytreeundertexmf/doc.Thisisnottoimplytheseare theUUonlyentriesallowed,orthatthisstructuremustbGefollowedpreciselyfortheentrieslisted.N8Asmentioned,xthetexmf/doctreemaybGeorganizedbylanguage,xsothatalldoGcumentationinF*rench,esay,eisainafrenchsubGdirectory.Inthatcase,etheexamplestructureherewouldbGeinagivenUUlanguagedirectory*.ams/#`amsfonts/\amsfonts.faq,UUamfndoc#`amslatex/\amslatex.faq,UUamsldoc#`amstex/\amsguide,UUjoyerrbibtex/\BIB32TU>'ExX#`base/\btxdoc.texfonts/#`fontname/\FilenamesforTKß'E-Xfonts#`oldgerm/\corkpaprसhformatظi/\nameUUofaTU>'ExXformat(e.g.,generic,latex)#`base/\forUUthebasedistribution#`misc/\forUUcontributedsingle- lepackqagedoGcumentation#`hp}'ackage[i/\forUUp}'ackagegeneral/\acrossUUprograms,generalities#`errata/\errata,UUerrata[1-8]#`texcomp/\Comp}'onentsofTKß'E-Xhelp/\meta-information#`ctan/\infoUUabGoutCT:ANmirrorsites#`faq/\FA9QsUUofcomp.text.tex,etc.info/\GNUUUInfo les,madefromT*exinfosourceslatex/\exampleUUofhformatظi#`base/\ltnews*,UU*guide,etc.#`graphics/\grfguidelocal/\site-spGeci cUUdocumentationman/\UnixUUmanpagesसhpr}'ogramci/\TU>'ExX-relatedUUprograms,byname(examplesfollow)metafont/\mfbook.tex,UUmetafont-for-beginners,etc.metapost/\mpman,UUmanfig,etc.tex/\texbook.tex,UUAGentleIntr}'oductiontoTKß'E-X,etc.web/\webman,UUcwebmanࣲ14yfdǠTDSUUversion1.1टff?A0K'ExXsystem:Hۍ1.1The{loGcationofexecutableprograms:OZthisistoosite-dependenteventorecommendaloGca- 1tion,]let[alonerequireone.tA[sitemayplaceexecutablesoutsidethetexmftreealtogether1(e.g.,UU/usr/local/bin),inaplatform-depGendentdirectorywithintexmf,orelsewhere.2.1UpgradingRpackqageswhennewreleasesaremade:wecould ndnowayofintroGducing1version~spGeci ersintotexmfthatwoulddomoregoGod~thanharm,orthatwouldbGepractical1forUUevenapluralityofinstallations.3.1The@loGcationofimplementation-speci c les(e.g.,{TU>'ExX.fmt les):3bytheirnature,these1mustUUbGelefttotheimplementororTU>'ExXmaintainer.qSeeSectionB.3.4.1Preciselylwhenapackqageor leshouldbGeconsidered\local",andwheresuchlocal lesare1installed.qSeeUUSection2.3formorediscussion.܍A.15Prortable lenamesलTheTDS|cannotrequireanyparticularrestrictionon lenamesinthetree,3sincethenamesofmany]existingTU>'ExX lesconformtonostandardscheme.F*orthebGene tofpeoplewhowishtoHmakeapGortableTU>'ExXdistributionorinstallation,@however,weHoutlineherethenecessaryrestrictions.qTheUUTDSspGeci cationsthemselvesarecompatiblewiththese.HۍISO-9660istheonlyuniversallyacceptable lesystemformatforCD-R9OMs.tAsubsetthereofmeetsUUthestringentlimitationsofallopGeratingsystemsinusetoday*.qItspeci esthefollowing:!࠸1লFileanddirectorynames,notincludinganydirectorypathorextensionpart,maynot1exceedUUeightcharacters.!࠸1লFilenamesmayhaveasingleextension.Extensionsmaynotexceedthreecharacters.Di-1rectoryUUnamesmaynothaveanextension.!࠸1লNamesandextensionsmayconsistofonlyrthecharactersA{Z,0{9,andunderscore.!Low-1ercaseUUlettersareexcluded.!࠸1লApGeriodseparatesthe lenamefromtheextensionandisalwayspresent,! evenifthename1orUUextensionismissing(e.g.,FILENAME.or.EXT).!࠸1লA3version3numbGer,:rangingfrom1{32767,isappGendedtothe leextension,separatedbya1semicolonUU(e.g.,FILENAME.EXT;1).!࠸1লOnly_neightdirectorylevelsareallowed,includingthetop-level(mounted)directory(see1SectionUU2.2).qThus,thedeepGestvqalidISO-9660pathis:Gtexmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1G1?2 3456781লTheUUdeepGestTDSpathneedsonlysevenlevels:Gtexmf/fonts/pk/cx/public/cm/dpi300/cmr10.pkG1?23 4567लSomesystemsdisplayamoGdi edformatofISO-9660names,mappingalphabeticcharacterstolowercase,UUremovingversionnumbGersandtrailingperiods,etc.BeforetheDecembGer1996release, >L5ffA͉TU>'ExXusedmixed-casenamesforfontdescriptor les.&\F*or-tunately*,EitRneverreliedoncasealonetodistinguishamongthe les.joNowadays,EitusesonlymonoGcaseUUnames.15UyfdǠTDSUUversion1.1टff?B0UImplementation/issuesÌलW*egbGelievethattheTDSKcanbringagreatdealofordertothecurrentanarchicstateofmany TU>'ExXinstallations.OInaddition,Bbyprovidingacommonframeofreference,BitwilleasetheburdenofedoGcumentingadministrativetasks.Finally*,itisanecessarypartofanyreasonablesystemoftrueUU\drop-in"distributionpackqagesforTU>'ExX.čB.15AdoptionoftheTDSpल[Thisb=sectionisretainedforhistoricalpurpGoses;htheTDSb:isnowquite rmlyentrenchedinmostTU>'ExXUUdistributions.]N8W*erecognizethatadoptionoftheTDSDzwillnotbGeimmediateoruniversal.BMostTU>'ExXadminis-tratorsUUwillnotbGeinclinedtomakethe nalswitchuntil:!࠸1লClearUUanddemonstrablebGene tscanbeshownfortheTDS.!࠸1TDS-compliantUUversionsofallkeyprogramsareavqailableinpGorted,well-testedforms.!࠸1লA\settling"pGeriodhastakenplace,to ushoutproblems.'ExX-relatedsoftware.\Thishasalreadytakenplaceduringthecourseofour delibGerations(seeAppendixDforasampletreeavqailableelectronically).Y]TheywillcertainlyresultbintheproGductionofasubstantialnumbGerofTDS-compliantpackqages.Indeed,fQtheteTU>'ExXandUUTU>'ExXLivedistributionsareTDS-compliantandinusenowatmanysites.OnceinstallableformsofkeyTDS-compliantpackqagesaremorewidespread,+someTU>'ExXadmin-istratorswillsetupTDS-complianttrees,pGossiblyinparalleltoexistingproductiondirectories.Thistestingwilllikely ushoutproblemsthatwerenotobviousinthecon nedsettingsofthedevelopGers'sites;,forexample,itshouldhelptoresolvesystemandpackqagedepGendencies,packqageinterdepGendencies,UUandotherdetailsnotaddressedbythisTDSversion.AfterFmostofthedusthassettled,IhopGefullyevenconservqativeTU>'ExXadministratorswillbGegintoadopt?theTDS.Eventually*,ymost?TU>'ExXsiteswillhave?adoptedthecommonstructure,andmostpackqagesUUwillbGereadilyavqailableinTDS-compliantform.W*eȂbGelievethatthisprocesswilloccurrelativelyquickly*.BTheTDS^committeespansawiderangeof6interestsintheTU>'ExXcommunity*.QConsequently,we6bGelievethatmostofthekeyissuesinvolvedinade ningaworkqableTDS:de nitionhavebGeencovered,$oftenindetail.6TU>'ExXdevelopGershavebGeen1oconsultedaboutimplementationissues,huandhavebGeentryingouttheTDS16arrangement.Thus,UUwehopGeforfewsurprisesasimplementationsmature.Finally*,)qtherexareseveral(currentorprospGective)publishersofTU>'ExXCD-R9OMs._}Thesepublishersare highlymotivqatedtoworkoutdetailsofTDS implementation,andtheirproGductswillprovideinexpGensiveandconvenientwaysforexpGerimentally-mindedTU>'ExXadministratorstoexpGerimentwithUUtheTDS.16yfdǠTDSUUversion1.1टff?B.25MorreonsubSdirectorysearchingpलRecursivesubGdirectorysearchingistheabilitytospGecifyasearchnotonlyofaspGeci eddirectory सhdi,UUbutrecursivelyofalldirectoriesbGelowhdi.N8SinceRtheTDSspGeci espreciselocationsformost les,Qwithnoextralevelsofsubdirectoriesallowed,truerecursivesearchingisnotactuallyrequiredforaTDS-compliantimplementation.W*edo,bhowever,stronglyrecommendrecursivesearchingasthemostuser-friendlyandnaturalapproachUUtotheproblem,ratherthanconvolutedmethoGdstospecifypathswithoutrecursion.This]featureisalreadysuppGortedbymanyimplementationsofTU>'ExXandcompanionutilities,`forexampleDECUSTU>'ExXforVMS,Dvips(k),җemTU>'EX(anditsdrivers),җPubliCTU>'EX,W*eb2C,Xdvi(k),andaY&YTU>'ExX.TheKpathsealibraryisareusableimplementationofsubGdirectorysearchingforTU>'ExX,UUusedinanumbGerUUoftheaboveUUprograms.Even6ifyourTU>'ExXimplementationdoGesnotdirectlysupportsubdirectorysearching,pyou6may nditusefultoadoptthestructureifyoudonotusemanyfontsorpackqages.}F*orinstance,Lifyouonly*useComputerMoGdernandAMS*fonts,37itwouldbGefeasibletostorethemintheTDS*layoutandUUlistthedirectoriesindividuallyincon guration lesorenvironmentUUvqariables.The!#TW9G!recognizesthatsubGdirectorysearchingplacesanextraburdenonthesystemandmaybGethesourceofperformancebottlenecks,particularlyonslowermachines.VNevertheless,wefeel%DthatsubGdirectorysearchingisimperativeforawell-organizedTDS,forthereasonsstatedingSection2.1.ImplementorsareencouragedtoprovideenhancementstothebasicprincipleofsubGdirectorysearchingtoavoidpGerformanceproblems,$e.g.,theuseofa lenamecache(thiscanbGeOassimpleasarecursivedirectorylisting)thatisconsultedbeforedisksearchingbegins.IfamatchmYisfoundinthedatabase,s[subGdirectorysearchingisnotrequired,s[andpGerformanceisthusindepGendentUUofthenumbGerofsubdirectoriespresentonthesystem.Di erentimplementationsspGecifysubdirectorysearchingdi erently*.IntheinterestoftypGo-graphicUUclarity*,theexamplesheredonotusethehr}'eplaceable[iUUfont.Dvips:?ّviaUUaseparateTEXFONTS_SUBDIRenvironmentUUvqariable.emTU>'ExX:F At:nsubdir!!;UUt:nsubdir!forasinglelevelofsearching.Kpathsea:Owtexmf/subdir//VMS:;5>texmf:[subdir...]लXdviUU(patchlevel20):}texmf/subdir/**;߆texmf/subdir/*uforasinglelevelofsearching.(V*er-1sionUU20.50andabGoveUUsupportthe//notation.Y&YUUTU>'ExX:S`t:/subdir//UUort:nsubdirnn.čB.35Exampleimplementation-spSeci ctreespलThe`TDSQcannotspGecifyapreciselocationforimplementation-speci c les,suchastexmf/ini,bGecauseUUasitemayhavemultipleTU>'ExXimplementations.Nevertheless,'forinformativepurpGoses,'weprovideherethedefaultloGcationsforsomeimplemen-tations.cPlease+contactuswithadditionsorcorrections.Thesepathsarenotde nitive,4may+notmatchUUanythingatyoursite,andmaychangewithoutwarning.W*eFrecommendallimplementationshavedefaultsearchpathsthatstartwiththecurrentdirectory(e.g.,UU`.').qAllowinguserstoincludetheparentdirectory(e.g.,`..')isalsohelpful.17 ֠yfdǠTDSUUversion1.1टff?B.3.19AmiWeb2cUU2.0pल(EmailUUscherer@physik.rwth-aachen.detocontactthemaintainerofthisimplementation.)N8AmiW*eb2c2iscompatiblewithWeb2c7tothegreatestpGossibleextent,&soonlytheveryfew di erencesaredescribGedinthissection.&]DetailedinformationaboutthebasicconceptsisgiveninUUthesectionforW*eb2c7bGelow.ThanksȠtotheSELFAUTOmechanismofKpathsea3.0nospGeci clocationfortheinstallationofAmiW*eb2cUUisrequiredaslongasthegeneralstructureofthedistributionispreserved.InadditiontoKpathsea's//notationrecursivepathsearchmayalsobGestartedbyhDEVICE3i:/,e.g.,UUTeXMF:/willscanthisspGeci cdevicecompletely*.BinariescomingwiththeAmiW*eb2cdistributionareinstalledinthedirectorybin/amiweb2c/लoutsidethecommonTDStreeshare/texmf/.$InadditiontothesetofAmiW*eb2cbinariesyouwillUU ndtwoUUsubGdirectorieslocal/andpastex/withauxiliaryprograms.AstrippGed versionofthePasTU>'ExXsystem(usedbykindpGermissionofGeorgHemann)iscomingwithAmiW*eb2c,pre-installedinitsownshare/texmf/amiweb2c/pastex/directory.8IfyouwanttoUUusePasTU>'ExXyouhavetoassignthenameTeX:tothisplace.DoGcumentationb lesinAmigaGuideformatshouldbestoredatdoc/guide/similartodoc/info/.čB.3.29PublicUU%ow cmss9DECUSTU>8E"XpलIfpanotherVMSpimplementationbGesidesPublicDECUSTU>'ExXappGears,thetoplevelimplementationdirectoryUUnamewillbGemodi edtosomethingmorespeci c(e.g.,vmsEff&fǫdecus).texmf/#`vms/g {VMSUUimplementationspGeci c les-exe/g {end-userUUcommands8`common/g {commandUUproGcedures,commandde nition les,etc.8`axp/g {binaryUUexecutablesforAlphaAXP8`vax/g {binaryUUexecutablesforVAX-formats/g {pGoolUU les,formats,bases-help/g {VMSUUhelplibrary*,andmiscellaneoushelpsources-mgr/g {commandUUproGcedures,programs,docs,etc.,forsystemmanagementčB.3.39Web2cUU7pलAllimplementation-depGendentTU>'ExXsystem les(.pool,.fmt,.base,.mem)arestoredbydefaultdirectlyintexmf/web2c.ÝThecon guration letexmf.cnfandvqarioussubsidiaryMakeTeX...लscriptsUUusedassubroutinesarealsostoredthere.Non-TU>'ExXspGeci c lesarestoredfollowingtheGNUcodingstandards.HGivenarootdirectoryसhpr}'e x4DiUU(/usr/localbydefault),wehavedefaultloGcationsasfollows:18&yfdǠTDSUUversion1.1टff?सhpr}'e x4Di/a~installationUUroGot(/usr/localbydefault) #`bin/a~executables#`man/a~manUUpages#`info/a~infoUU les#`lib/a~librariesUU(libkpathsea.*)#`share/a~architecture-indepGendentUU les-texmf/a~TDSUUroGot8`web2c/a~implementation-depGendentUU les(.pool,.fmt,texmf.cnf,etc.)N8Seehttp://www.gnu.org/prep/standardsEff&fǫtoc.htmlfortherationalebGehindanddescriptionsofωthisarrangement.bA'sitemayofcourseoverridethesedefaults;forexample,.itmayputeverythingUUunderasingledirectorysuchas/usr/local/texmf.#8C/NIs/thereabdCetterway?ÌलDe ningtheTDS\requiredmanycompromises.BoththeoverallstructureandthedetailsoftheZindividualdirectorieswerearrivedatby ndingcommongroundamongmanyopinions.Thedrivingforceswerefeasibility(intermsofwhatcouldtechnicallybGedoneandwhatcouldreasonablybGeexpectedfromdevelopers)andregularity( lesgroupedtogetherinanarrangementthatUU\madesense").SomeainterestingideascouldnotbGeappliedduetoimplementationslackingthenecessarysuppGort:!࠸1লPathsearchingcontrolattheTU>'ExXlevel.QIfdoGcumentscouldrestrictsubGdirectorysearching1toasubGdirectoryviasomeportablesyntaxin lenames,restrictionsonuniquenessof1 lenamesՌcouldbGerelaxedconsiderably(withthecooperationoftheformats),andtheTU>'ExX1searchUUpathwouldnotneedtodepGendontheformat.!࠸1লMultiple)logicaltexmftrees.BF*orexample,asitemighthaveone(read-only)loGcationfor1stable les,andadi erent(writable)loGcationfordynamically-createdfontsorother les..It1wouldcbGereasonablefortwosuchtreestobGelogicallymergedwhensearching._vSeeMichael1Downes'UUarticleinthereferencesforhowthiscanworkinpracticewithW*eb2C.čC.15EMacrostructurepलTheyTW9Gesettledonthehformatظi/hp}'ackage[iarrangementafterlongdiscussionabGouthowbGesttoUUarrangethe les.Thehprimaryalternativetothisarrangementwasaschemewhichreversedtheorderofthesedirectories:hp}'ackage[i/hformatظi.GThisreversedarrangementhasastrongappGeal:itkeepsalloftheB lesrelatedtoaparticularpackqageinasingleplace.4lThearrangementactuallyadoptedtendstospread lesoutintotwoorthreeplaces(macros,doGcumentation,andfonts,forexample,arespreadUUintodi erentsectionsofthetreerightatthetoplevel).Nevertheless,UUthehformatظi/hp}'ackage[istructurewonforacoupleofreasons:!࠸1লItjisclosertocurrentpractice;'tinfact,oseveralmembGersoftheTW9GEhavealreadyimple-1mentedvtheTDSvhierarchy*.Thealternativeisnotinuseatanyknownsite,iandtheTW9G1লfeltUUitwrongtomandatesomethingwithwhichthereisnopracticalexpGerience.19+ϠyfdǠTDSUUversion1.1टff?!࠸1লTheQalternativearrangementincreasesthenumbGeroftop-leveldirectories,Qsothe lesthat 1must|bGefoundusingsubdirectorysearchingarespreadoutinawide,shallowtree.='ExXiswhatmadethepreviousarrangementwithall lesinasingledirectoryuntenable,andthereforewhatinitiatedtheUUTDSe ort.čC.2.18pFontUU letypGelocationलW*eUUconsideredthesupplier- rstarrangementinuseatmanysites:1texmf/fonts/hsupplieri/htyp}'eface[i/htypei/लThisSfimprovesthemaintainabilityofthefonttree,Ssinceall lescomprisingagiventypGefaceareineoneplace,butunlessalltheprogramsthatsearchthistreeemploysomeformofcaching,there areseriouspGerformanceconcerns.F*orexample,Rinorderto ndaTFM le,thesimplestimplementationu wouldrequireTU>'ExXtosearchthroughallthedirectoriesthatcontainPKu lesinallUUmoGdesandatallresolutions.N8Intheend,apGollofdevelopersrevealedconsiderableresistancetoimplementingsucientcachingmechanisms,FsoIthisarrangementwasabandoned.%TheTDS:arrangementallowsthesearchtreetozbGerestrictedtothecorrecttypeof le,atleast.Concernsabouteciencyremain,butthereseemsUUtobGenomorewecandowithoutabandoningsubdirectorysearchingentirely*.W*e alsoconsideredsegregatingallfont-related lesstrictlyby letypGe,sothatMETAF9ONTलsourceswouldbGeinadirectorytexmf/fonts/mf,propertylist lesintexmf/fonts/pl,thevqarious[formsofTypGe1fontsseparated,andsoon.Althoughmoreblindlyconsistent,wefeltthat$thedrawback$ofmorecomplicatedpathconstructionsoutweighed$this.߼TheTDS$qmerges letypGes(mfandplundersource,pfaandpfbandgsfundertype1)wherewefeltthiswasbGene cial.čC.2.28pMoGdeUUandresolutionlocationpलW*eUUconsideredhavingthemodeatthebGottomofthefonttree:1texmf/fonts/pk/hsupplieri/htyp}'eface[i/hmodei/hdpiڸi/लInthiscase,I\however,itisdiculttolimitsubGdirectorysearchingtothemoderequiredforaparticularUUdevice.W*eUUthenconsideredmovingthedpihnnnciuptobGelowthemoGde:1texmf/fonts/pk/hmo}'de[i/hdpiڸi/hsupplieri/htypefacei/लButthenitisnotfeasibletoomitthedpihnnncilevelaltogetheronsystemswhichcananddochoGoseUUtouselong lenames.20:VyfdǠTDSUUversion1.1टff?C.2.38pMoGdelessUUbitmaps[]लThe"5TDS"(spGeci esusingasingledirectorymodeless/asthemodenameforthoseutilitieswhich generate.bitmaps,6e.g.,texmf/fonts/modeless/times/.dThishastheconsiderableadvqantageofnotUUrequiringeachsuchdirectorynametobGelistedinasearchpath.-AnalternativewastousetheutilitynamebGelowwhichallsuchdirectoriescouldbGegathered.Thatkhastheadvqantageofseparating,ksay*,gsftopk-generatedkbitmapsfromps2pk-generatedones. However,EweHdecidedthiswasnotnecessary;BmostsiteswilluseonlyoneprogramforthepurpGose.ڐAlso,PKyand͘GFfontsgenerallyidentifytheircreatorinthefontcommentfollowingtheUUPKEff&fǫIDbyte.W*e4aremakinganimplicitassumptionthatMETAF9ONT$istheonlyprogramproGducingmode-depGendentbitmaps.IfthisbecomesfalsewecouldaddanabbreviationfortheprogramtomoGde0Znames,gasinmfcxvs.xyzcxforahypotheticalprogramXyz,gorwecouldatthattimeaddRanadditionalprogramnameleveluniformlytothetree. ItseemedmoreimpGortanttoconcisely>representthecurrentsituationthantoworryabGouthypGotheticalpossibilitiesthatmayneverUUhappGen.7C.35EDoScumentationstructure[]लW*e!consideredplacingadditionaldoGcumentation lesinthesamedirectoryasthesource lesforthepackqages,AbutwefeltthatusersshouldbGeableto nddocumentationseparatelyfromsources,UUsincemostusershaveUUnointerestinsources.W*eFhopGethataseparate,Pbutparallel,structurefordoGcumentationwould(1)keepthedoGcu-mentationtogetherand(2)makeitasstraightforwardaspGossibleforusersto ndtheparticulardoGcumentationUUtheywereafter.# SD1oRelated/referencesलThis_appGendixgivespointerstorelated lesandotherdocuments.F*orCT:AN_references,aweusehttp://www.ctan.orgpBasthetop-leveldomainonlytomakethelinksbGeliveinthisdoGcument.See http://www.ctan.org/tex-archive/CTAN.sitesforacompletelistofCT:AN `sites;fthereareUUmirrorsworldwide.!࠸1লThisUUdoGcument,inmanyformats(tex,dvi,info,pGdf):?5http://tug.org/tds/!࠸1লTheUUTDSmailinglistarchives:?5http://tug.org/mail-archives/twg-tds/!࠸1লTheUUlevel0D9VIdriverstandard:?5http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/!࠸1FilenamesforTKß'E-Xfonts,UUwithlistsofrecommendedsupplierandtypGefacenames:?5http://tug.org/fontname/!࠸1ISO-9660UUCD-R9OM lesystemstandard:?5http://www.iso.ch/cate/cat.html!࠸1Comp}'onentsofTKß'E-X,UUapapGerbyJoachimSchroGd:?5http://www.ctan.org/tex-archive/documentation/components-of-TeX/ࣲ21GyfdǠTDSUUversion1.1टff?!࠸1ManagingMultipleTDStr}'ees,UUanarticlebyMichaelDownes: ?5http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf!࠸1লAUUcompletesetofrMETAF9ONT8moGdes:?5http://www.ctan.org/tex-archive/fonts/modes/modes.mf!࠸1লAUUlargecollectionofBIB32TU>'ExXdatabasesandstyles:?5ftp://ftp.math.utah.edu/pub/tex/bib/#8E/`ContributorsÌलTheUUTW9Ghashadnophysicalmeetings;electronicmailwasthecommunicationmedium.N8SebastianERahtzistheTU>'ExXUsersGroupT*echnicalCouncilliaison.yNormanW*alshwastheoriginalUUcommitteechair.qKarlBerryisthecurrenteditor.The::listofcontributorshasgrowntoGolargetofairlyinclude,rassomewouldsurelybGeinadvertentlyomitted.ZPleaseconsiderthearchivesofthetds@tug.organdtex-live@tug.orgmailinglistsasUUtherecordofcontributions.22U;| %ow cmss9$s6cmss8#- cmcsc10"o> logosl10!o> logo10 m#R 3 cmss10R6 cmss12o> logo10m#R cmss10R6ff cmss12 cmmi10K`y cmr10ٓRcmr7Ztex-common-6.04ubuntu1/doc/tds-1.1/tds.html0000664000000000000000000027654712607350221015304 0ustar A Directory Structure for TeX Files

A Directory Structure for TeX Files


Next: , Up: (dir)

A Directory Structure for TeX Files

Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 TeX Users Group.

Permission to use, copy, and distribute this document without modification for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided “as is” without expressed or implied warranty.

Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one.

This document is available on any CTAN host (see Appendix Related references). Please send questions or suggestions by email to tds@tug.org. We welcome all comments. This is version 1.1.

--- The Detailed Node Listing ---

Introduction

General

Top-level directories

Macros

Fonts

Summary

Unspecified pieces

Implementation issues

Example implementation-specific trees

Is there a better way?

Font structure


Next: , Previous: Top, Up: Top

1 Introduction

TeX is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of TeX's flexibility, however, is that there has been no single “right” way to install it. This has resulted in many sites having different installed arrangements.

The primary purpose of this document is to describe a standard TeX Directory Structure (TDS): a directory hierarchy for macros, fonts, and the other implementation-independent TeX system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the TeX files into a single structure. The TDS has been designed to work on all modern systems. In particular, the Technical Working Group (TWG) believes it is usable under MacOS, MS-DOS, OS/2, Unix, VMS, and Windows NT. We hope that administrators and developers of both free and commercial TeX implementations will adopt this standard.

This document is intended both for the TeX system administrator at a site and for people preparing TeX distributions—everything from a complete runnable system to a single macro or style file. It may also help TeX users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working TeX system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix Related references.

1.1 History

Version 1.0 of the TDS was released in February 2003.

Version 1.1 was released in June 2004, with the following non-editorial changes:

  • Inputs for TeX extensions included under tex, instead of in their own top-level directories (Section Extensions)
  • New top-level directory scripts (Section Scripts).
  • New subdirectories lig, opentype, truetype, and type3 under fonts (Section Fonts).
  • `enc', lig, and map all use syntax/package subdirectories (Section Fonts).
  • `pfm' files specified to go under type1, and inf files under afm (Section Fonts).


Next: , Previous: History, Up: Introduction

1.2 The role of the TDS

The role of the TDS is to stabilize the organization of TeX-related software packages that are installed and in use, possibly on multiple platforms simultaneously.

At first glance, it may seem that the Comprehensive TeX Archive Network (CTAN) fulfills at least part of this role, but this is not the case. The role of CTAN is to simplify archiving and distribution, not installation and use.

In fact, the roles of the TDS and CTAN are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories.

1.3 Conventions

In this document, / is used to separate filename components; for example, texmf/fonts. This is the Unix convention but the ideas are in no way Unix-specific.

In this document, “TeX” generally means the TeX system, including Metafont, DVI drivers, utilities, etc., not just the TeX program itself.

The word “package” in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is not a LaTeX2e package, which is a style file supplementing a document class.

We use the following typographic conventions:

  • `literal' Literal text such as filename is typeset in typewriter type.
  • `replaceable' Replaceable text such as package, identifying a class of things, is typeset in italics inside angle brackets.


Next: , Previous: Introduction, Up: Top

2 General

This section describes common properties throughout the TDS tree.


Next: , Up: General

2.1 Subdirectory searching

Older TeX installations store large numbers of related files in single directories, for example, all TFM files and/or all TeX input files.

This monolithic arrangement hinders maintenance of a TeX system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name.

Therefore, the TWG felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems.

Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden.

As a result, the TWG concluded that a comprehensive TDS requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that TeX, Metafont, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths.

The TDS does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section More on subdirectory searching).

2.2 Rooting the tree

In this document, we shall designate the root TDS directory by texmf (for “TeX and Metafont”). We recommend using that name where possible, but the actual name of the directory is up to the installer. On PC networks, for example, this could map to a logical drive specification such as T:.

Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, /usr/local/share, /usr/local, /usr/local/lib, and /opt are common choices.

The name texmf was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire TeX system (including Metafont, MetaPost, BibTeX, etc.), not just TeX itself; and it is descriptive of a generic installation rather than a particular implementation.

A site may choose to have more than one TDS hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate.


Next: , Previous: Rooting the tree, Up: General

2.3 Local additions

The TDS cannot specify precisely when a package is or is not a “local addition”. Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider “nonlocal” all files not acquired as part of the installed TeX distribution; another site might consider “local” only those files that were actually developed at the local site and not distributed elsewhere.

We recognize two common methods for local additions to a distributed texmf tree. Both have their place; in fact, some sites employ both simultaneously:

  1. A completely separate tree which is a TDS structure itself; for example, /usr/local/umbtex at the University of Massachusetts at Boston. This is another example of the multiple texmf hierarchies mentioned in the previous section.
  2. A directory named local at any appropriate level, for example, in the format, package, and supplier directories discussed in the following sections. The TDS reserves the directory name local for this purpose.

    We recommend using local for site-adapted configuration files, such as language.dat for the Babel package or graphics.cfg for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases.

One common case of local additions is dynamically generated files, e.g., PK fonts by the mktexpk script (which originated in Dvips as MakeTeXPK). A site may store the generated files directly in any of:

  • their standard location in the main TDS tree (if it can be made globally writable);
  • an alternative location in the main TDS tree (for example, under texmf/fonts/tmp);
  • a second complete TDS tree (as outlined above);
  • any other convenient directory (perhaps under /var, for example /var/spool/fonts).

No one solution will be appropriate for all sites.


Previous: Local additions, Up: General

2.4 Duplicate filenames

Different files by the same name may exist in a TDS tree. The TDS generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the TDS requires implementations to support the following exceptions:

  • Names of TeX input files must be unique within each first-level subdirectory of texmf/tex and texmf/tex/generic, but not within all of texmf/tex; i.e., different TeX formats may have files by the same name. (Section Macros discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at texmf/tex specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files.
  • Many font files will have the same name (e.g., cmr10.pk), as discussed in Section Valid font bitmaps. Implementations must distinguish these files by mode and resolution.

All implementations we know of already have these capabilities.

One place where duplicate names are likely to occur is not an exception:

  • Names of Metafont input files (as opposed to bitmaps) must be unique within all of texmf/fonts. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named punct.mf, romanl.mf, and so on. We believe the only feasible solution is to rename the derivative files to be unique.


Next: , Previous: General, Up: Top

3 Top-level directories

The directories under the texmf root identify the major components of a TeX system (see Section Summary for a summary). A site may omit any unneeded directories.

Although the TDS by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under texmf to simplify administration of the TeX tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present.

The top-level directories specified by the TDS are:

  • `tex' for TeX files (Section Macros).
  • `fonts' for font-related files (Section Fonts).
  • `metafont' for Metafont files which are not fonts (Section Non-font Metafont files).
  • `metapost' for MetaPost files (Section MetaPost).
  • `bibtex' for BibTeX files (Section BibTeX).
  • `scripts' for platform-independent executables (Section Scripts).
  • `doc' for user documentation (Section Documentation).
  • `source' for sources. This includes both traditional program sources (for example, Web2C sources go in texmf/source/web2c) and, e.g., LaTeX dtx sources (which go in texmf/source/latex). The TDS leaves unspecified any structure under source.

    source is intended for files which are not needed at runtime by any TeX program; it should not be included in any search path. For example, plain.tex does not belong under texmf/source, even though it is a “source file” in the sense of not being derived from another file. (It goes in texmf/tex/plain/base, as explained in Section Macros).

  • `implementation' for implementations (examples: emtex, vtex, web2c), to be used for whatever purpose deemed suitable by the implementor or TeX administrator. That is, files that cannot be shared between implementations, such as pool files (tex.pool) and memory dump files (plain.fmt) go here, in addition to implementation-wide configuration files. See Section Example implementation-specific trees for examples of real implementation trees.

    Such implementation-specific configuration files should not be located using the main TeX input search path (e.g., TEXINPUTS). This must be reserved for files actually read by a TeX engine. See Section Extensions.

  • `program' for program-specific input and configuration files for any TeX-related programs (examples: mft, dvips). In fact, the tex, metafont, metapost, and bibtex items above may all be seen as instances of this case.

3.1 Macros

TeX macro files shall be stored in separate directories, segregated by TeX format and package name (we use `format' in its traditional TeX sense to mean a usefully \dump-able package):

     texmf/tex/format/package/
  • `format' is a format name (examples: amstex, latex, plain, texinfo).

    The TDS allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or TeX administrator. We recommend that packages used as formats at a particular site be stored at the format level: by adjusting the TeX inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format.

    The TDS reserves the following format names:

    • `generic', for input files that are useful across a wide range of formats (examples: null.tex, path.sty). Generally, this means any format that uses the category codes of Plain TeX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TeX (which go under texmf/tex/plain), e.g., testfont.tex and plain.tex itself.
    • `local', for local additions. See Section Local additions.

    Thus, for almost every format, it is necessary to search at least the format directory and then the generic directory (in that order). Other directories may need to be searched as well, depending on the format. When using AMS-TeX, for example, the amstex, plain, and generic directories should be searched, because AMS-TeX is compatible with Plain.

  • `package' is a TeX package name (examples: babel, texdraw).

    In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the format directory, instead of format/base. For example, Texinfo may go in texmf/tex/texinfo/texinfo.tex, not texmf/tex/texinfo/base/texinfo.tex.

    The TDS reserves the following package names:

    • `base', for the base distribution of each format, including files used by INITEX when dumping format files. For example, in the standard LaTeX distribution, the ltx files created during the build process. Another example: the .ini driver files for formats used by TeX Live and other distributions.
    • `hyphen', for hyphenation patterns, including the original American English hyphen.tex. These are typically used only by INITEX. In most situations, this directory need exist only under the generic format.
    • `images', for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named tex, TeX needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between TeX and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the TDS. In most situations, this directory need exist only under the generic format.
    • `local', for local additions and configuration files. See Section Local additions.
    • `misc', for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.


Up: Macros

3.1.1 Extensions

TeX has spawned many companion and successor programs (“engines”), such as PDFTeX, Omega, and others. The TDS specifies that the input files for such programs (using a TeX-like syntax) be placed within the top-level tex directory, either at the top level or within a format subdirectory, even though the original TeX program may not be able to read them. For example:

     texmf/tex/aleph
     texmf/tex/enctex

This is a change from TDS 1.0, which specified top-level extension directories for each such program. We felt the new approach is preferable, because:

  • Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level tex directory provides a stable location over time.
  • Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone.

Thus, in practice, having different top-level directories caused difficulties for everyone involved—users, package authors, site administrators, and system distributors.

Please contrast this approach with the implementation top-level subdirectory (Section Top-level directories), which is to be used for configuration files that (presumably) do not use TeX syntax and in any case should not be found along the main TeX input search path.

3.2 Fonts

Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. PK and GF files need additional structure, as detailed in the next section.

     texmf/fonts/type/supplier/typeface/
     texmf/fonts/enc,lig,map/subpath/
  • `type' is the type of font file. The TDS reserves the following type names for common TeX file types:
    • `afm', for Adobe font metrics, and inf files.
    • `gf', for generic font bitmap files.
    • `opentype', for OpenType fonts.
    • `pk', for packed bitmap files.
    • `source', for font sources (Metafont files, property lists, etc.).
    • `tfm', for TeX font metric files.
    • `truetype', for TrueType fonts.
    • `type1', for PostScript Type 1 fonts (in pfa, pfb, or any other format), and pfm files.
    • `type3', for PostScript Type 3 fonts.
    • `vf', for virtual fonts.

    The TDS also reserves the names enc, lig, and map for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with syntax subdirectories, and then package subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples:

              fonts/map/dvipdfm/updmap/dvipdfm.map
              fonts/map/dvips/lm/lm.map
              fonts/enc/dvips/base/8r.enc
         

    The Fontname and Dvips packages have more examples of the enc and map types. The afm2pl program uses lig files.

    pfm files are included in the type1 directory, instead of being given their own directory, for two reasons: 1) a .pfm file is always an adjunct to a given .pfb file; 2) they must be installed from the same directory for Windows programs other than TeX to use them.

    inf files are included in the afm directory, since an inf and afm file can be used to generate a pfm. (Unfortunately, Adobe Type Manager and perhaps other software requires that the pfb be in the same directory as afm and inf for installation.)

    As usual, a site may omit any of these directories that are unnecessary. gf is a particularly likely candidate for omission.

  • `supplier' is a name identifying font source (examples: adobe, ams, public). The TDS reserves the following supplier names:
    • `ams', for the American Mathematical Society's AMS-fonts collection.
    • `local', for local additions. See Section Local additions.
    • `public', for freely redistributable fonts where the supplier neither (1) requested their own directory (e.g., ams), nor (2) also made proprietary fonts (e.g., adobe). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain.
    • `tmp', for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual.
  • `typeface' is the name of a typeface family (examples: cm, euler, times). The TDS reserves the following typeface names:
    • `cm' (within public), for the 75 fonts defined in Computers and Typesetting, Volume E.
    • `latex' (within public), for those fonts distributed with LaTeX in the base distribution.
    • `local', for local additions. See Section Local additions.

Some concrete examples:

     texmf/fonts/source/public/pandora/pnr10.mf
     texmf/fonts/tfm/public/cm/cmr10.tfm
     texmf/fonts/type1/adobe/utopia/putr.pfa

For complete supplier and typeface name lists, consult Filenames for TeX fonts (see Appendix Related references).


Next: , Up: Fonts

3.2.1 Font bitmaps

Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1) the type of device (i.e., mode) for which the font was created; (2) the resolution of the bitmap.

Following common practice, the TDS segregates fonts with different device types into separate directories. See modes.mf in Appendix Related references for recommended mode names.

Some printers operate at more than one resolution (e.g., at 300dpi and 600dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the TeX system is the assumption of a single target resolution.

Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original Metafont program itself), the resolution is included in the filename (e.g., cmr10.300pk). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., dpi300/cmr10.pk).

Because the TDS cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under pk and gf:

     texmf/fonts/pk/mode/supplier/typeface/dpinnn/
     texmf/fonts/gf/mode/supplier/typeface/dpinnn/
  • `mode' is a name which identifies the device type (examples: cx, ljfour, modeless). Usually, this is the name of the Metafont mode used to build the PK file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the mode name shall be simply modeless. The mode level shall not be omitted, even if only a single mode happens to be in use.
  • `dpinnn' specifies the resolution of the font (examples: dpi300, dpi329). dpi stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the TeX world to consider changing now.

    The integer nnn is to be calculated as if using Metafont arithmetic and then rounded; i.e., it is the integer Metafont uses in its output gf filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level 0 DVI driver standard (see Appendix Related references) in bitmap font searches by allowing a fuzz of +-0.2% (with a minimum of 1) in the dpi.

Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original Metafont) and font library files (as in emTeX's .fli files), provided that the basic scheme is also supported.


Previous: Font bitmaps, Up: Fonts

3.2.2 Valid font bitmaps

The TWG recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, cmr10.pk will be the filename for Computer Modern Roman 10pt at 5–10 magnifications for 2–3 modes. (Section Duplicate filenames discusses duplicate filenames in general.)

To minimize this problem, we strongly recommend that PK files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font.

This information is easy to supply: a simple addition to the local modes used for building the fonts with Metafont will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) modes.mf (see Appendix Related references), the required information is already in your PK files. If not, a simple addition based on the code found in modes.mf can be made to your local modes file and the PK files rebuilt.


Next: , Previous: Fonts, Up: Top-level directories

3.3 Non-font Metafont files

Most Metafont input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in:

     texmf/metafont/package/

package is the name of a Metafont package (for example, mfpic).

The TDS reserves the following package names:

  • `base', for the standard Metafont macro files as described in The Metafontbook, such as plain.mf and expr.mf.
  • `local', for local additions. See Section Local additions.
  • `misc', for Metafont packages consisting of only a single file (for example, modes.mf). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.

3.4 MetaPost

MetaPost is a picture-drawing language developed by John Hobby, derived from Knuth's Metafont. Its primary purpose is to output Encapsulated PostScript instead of bitmaps.

MetaPost input files and the support files for MetaPost-related utilities shall be stored in:

     texmf/metapost/package/

package is the name of a MetaPost package. At the present writing none exist, but the TWG thought it prudent to leave room for contributed packages that might be written in the future.

The TDS reserves the following package names:

  • `base', for the standard MetaPost macro files, such as plain.mp, mfplain.mp, boxes.mp, and graph.mp. This includes files used by INIMP when dumping mem files containing preloaded macro definitions.
  • `local', for local additions. See Section Local additions.
  • `misc', for MetaPost packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.
  • `support', for additional input files required by MetaPost utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level MetaPost programs for rendering some special characters.


Next: , Previous: MetaPost, Up: Top-level directories

3.5 BibTeX

BibTeX-related files shall be stored in:

     texmf/bibtex/bib/package/
     texmf/bibtex/bst/package/

The bib directory is for BibTeX database (.bib) files, the bst directory for style (.bst) files.

package is the name of a BibTeX package. The TDS reserves the following package names (the same names are reserved under both bib and bst):

  • `base', for the standard BibTeX databases and styles, such as xampl.bib, plain.bst.
  • `local', for local additions. See Section Local additions.
  • `misc', for BibTeX packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using misc.


Next: , Previous: BibTeX, Up: Top-level directories

3.6 Scripts

The top-level scripts directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under scripts are package names. This eases creating distributions, by providing a common place for such platform-independent programs.

The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the TDS).

Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, scripts also serves as a platform-independent analog of the standard Unix libexec directory.

We recommend using extensions specifying the language (such as .pl, .py, .sh) on these files, to help uniquely identify the name. Since the intent of the TDS is for programs in scripts not to be invoked directly by users, this poses no inconvenience.

For example, in the TeX Live distribution, the ConTeXt user-level program texexec can exist as a small wrapper script in each bin/platform/texexec (which is outside the texmf tree), which merely finds and calls texmf/scripts/context/perl/texexec.pl.

Examples:

     scripts/context/perl/texexec.pl
     scripts/context/ruby/examplex.rb
     scripts/thumbpdf/thumbpdf.pl

The TDS does not specify a location for platform-dependent binary executables, whether auxiliary or user-level.


Previous: Scripts, Up: Top-level directories

3.7 Documentation

Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the TeX system.

The TDS specifies that these additional documentation files shall be stored in a structure that parallels to some extent the fonts and tex directories, as follows:

     texmf/doc/category/...

category identifies the general topic of documentation that resides below it; for example, a TeX format name (latex), program name (bibtex, tex), language (french, german), a file format (info, man), or other system components (web, fonts).

One possible arrangement is to organize doc by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however.

Within each category tree for a TeX format, the directory base is reserved for base documentation distributed by the format's maintainers.

The TDS reserves the following category names:

  • `general', for standalone documents not specific to any particular program (for example, Joachim Schrod's Components of TeX).
  • `help', for meta-information, such as FAQ's, the TeX Catalogue, etc.
  • `info', for processed Texinfo documents. (Info files, like anything else, may also be stored outside the TDS, at the installer's option.)
  • `local', for local additions. See Section Local additions.

The doc directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or TeX administrator (for example, VMS help files under texmf/vms/help).

The documentation directories may contain TeX sources, DVI files, PostScript files, text files, example input files, or any other useful documentation format(s).

See Section Documentation tree summary for a summary.


Next: , Previous: Top-level directories, Up: Top

4 Summary

A skeleton of a TDS texmf directory tree. This is not to imply these are the only entries allowed. For example, local may occur at any level.

       bibtex/           BibTeX input files
         bib/            BibTeX databases
           base/         base distribution (e.g., xampl.bib)
           misc/         single-file databases
         <package>/      name of a package
         bst/            BibTeX style files
           base/         base distribution (e.g., plain.bst, acm.bst)
           misc/         single-file styles
         <package>/      name of a package
       doc/              see Section Documentation and the summary below
       fonts/            font-related files
         <type>/         file type (e.g., pk)
           <mode>/       type of output device (for pk and gf only)
             <supplier>/     name of a font supplier (e.g., public)
               <typeface>/   name of a typeface (e.g., cm)
                 dpi<nnn>/   font resolution (for pk and gf only)
       <implementation>/ TeX implementations, by name (e.g., emtex)
       local/            files created or modified at the local site
       metafont/         Metafont (non-font) input files
         base/           base distribution (e.g., plain.mf)
         misc/           single-file packages (e.g., modes.mf)
         <package>/      name of a package (e.g., mfpic)
       metapost/         MetaPost input and support files
         base/           base distribution (e.g., plain.mp)
         misc/           single-file packages
         <package>/      name of a package
         support/        support files for MetaPost-related utilities
       mft/              MFT inputs (e.g., plain.mft)
       <program>/        TeX-related programs, by name (e.g., dvips)
       source/           program source code by name (e.g., latex, web2c)
       tex/              TeX input files
         <engine>/       name of an engine (e.g., aleph); can also be lower
         <format>/       name of a format (e.g., plain)
           base/         base distribution for format (e.g., plain.tex)
           misc/         single-file packages (e.g., webmac.tex)
           local/        local additions to or local configuration files for format
           <package>/    name of a package (e.g., graphics, mfnfss)
         generic/        format-independent packages
           hyphen/       hyphenation patterns (e.g., hyphen.tex)
           images/       image input files (e.g., Encapsulated PostScript)
           misc/         single-file format-independent packages (e.g., null.tex).
           <package>/    name of a package (e.g., babel)


Up: Summary

4.1 Documentation tree summary

An example skeleton of a TDS directory tree under texmf/doc. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed.

As mentioned, the texmf/doc tree may be organized by language, so that all documentation in French, say, is in a french subdirectory. In that case, the example structure here would be in a given language directory.

       ams/
         amsfonts/       amsfonts.faq, amfndoc
         amslatex/       amslatex.faq, amsldoc
         amstex/         amsguide, joyerr
       bibtex/           BibTeX
         base/           btxdoc.tex
       fonts/
         fontname/       Filenames for TeX fonts
         oldgerm/        corkpapr
       <format>/         name of a TeX format (e.g., generic, latex)
         base/           for the base distribution
         misc/           for contributed single-file package documentation
         <package>/      for package
       general/          across programs, generalities
         errata/         errata, errata[1-8]
         texcomp/        Components of TeX
       help/             meta-information
         ctan/           info about CTAN mirror sites
         faq/            FAQs of comp.text.tex, etc.
       info/             GNU Info files, made from Texinfo sources
       latex/            example of format
         base/           ltnews*, *guide, etc.
         graphics/       grfguide
       local/            site-specific documentation
       man/              Unix man pages
       <program>/        TeX-related programs, by name (examples follow)
       metafont/         mfbook.tex, metafont-for-beginners, etc.
       metapost/         mpman, manfig, etc.
       tex/              texbook.tex, A Gentle Introduction to TeX, etc.
       web/              webman, cwebman


Next: , Previous: Summary, Up: Top

Appendix A Unspecified pieces

The TDS cannot address the following aspects of a functioning TeX system:

  1. The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the texmf tree altogether (e.g., /usr/local/bin), in a platform-dependent directory within texmf, or elsewhere.
  2. Upgrading packages when new releases are made: we could find no way of introducing version specifiers into texmf that would do more good than harm, or that would be practical for even a plurality of installations.
  3. The location of implementation-specific files (e.g., TeX .fmt files): by their nature, these must be left to the implementor or TeX maintainer. See Section Example implementation-specific trees.
  4. Precisely when a package or file should be considered “local”, and where such local files are installed. See Section Local additions for more discussion.

A.1 Portable filenames

The TDS cannot require any particular restriction on filenames in the tree, since the names of many existing TeX files conform to no standard scheme. For the benefit of people who wish to make a portable TeX distribution or installation, however, we outline here the necessary restrictions. The TDS specifications themselves are compatible with these.

ISO-9660 is the only universally acceptable file system format for CD-ROMs. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following:

  • File and directory names, not including any directory path or extension part, may not exceed eight characters.
  • Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension.
  • Names and extensions may consist of only the characters AZ, 09, and underscore. Lowercase letters are excluded.
  • A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., FILENAME. or .EXT).
  • A version number, ranging from 1–32767, is appended to the file extension, separated by a semicolon (e.g., FILENAME.EXT;1).
  • Only eight directory levels are allowed, including the top-level (mounted) directory (see Section Rooting the tree). Thus, the deepest valid ISO-9660 path is:
              texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1
              1     2  3  4  5  6  7  8
         

    The deepest TDS path needs only seven levels:

              texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk
              1     2     3  4  5      6  7
         

Some systems display a modified format of ISO-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc.

Before the December 1996 release, LaTeX used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names.


Next: , Previous: Unspecified pieces, Up: Top

Appendix B Implementation issues

We believe that the TDS can bring a great deal of order to the current anarchic state of many TeX installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true “drop-in” distribution packages for TeX.

B.1 Adoption of the TDS

[This section is retained for historical purposes; the TDS is now quite firmly entrenched in most TeX distributions.]

We recognize that adoption of the TDS will not be immediate or universal. Most TeX administrators will not be inclined to make the final switch until:

  • Clear and demonstrable benefits can be shown for the TDS.
  • TDS-compliant versions of all key programs are available in ported, well-tested forms.
  • A “settling” period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process.

Consequently, most of the first trials of the TDS will be made by members of the TDS committee and/or developers of TeX-related software. This has already taken place during the course of our deliberations (see Appendix Related references for a sample tree available electronically). They will certainly result in the production of a substantial number of TDS-compliant packages. Indeed, the teTeX and TeX Live distributions are TDS-compliant and in use now at many sites.

Once installable forms of key TDS-compliant packages are more widespread, some TeX administrators will set up TDS-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this TDS version.

After most of the dust has settled, hopefully even conservative TeX administrators will begin to adopt the TDS. Eventually, most TeX sites will have adopted the common structure, and most packages will be readily available in TDS-compliant form.

We believe that this process will occur relatively quickly. The TDS committee spans a wide range of interests in the TeX community. Consequently, we believe that most of the key issues involved in defining a workable TDS definition have been covered, often in detail. TeX developers have been consulted about implementation issues, and have been trying out the TDS arrangement. Thus, we hope for few surprises as implementations mature.

Finally, there are several (current or prospective) publishers of TeX CD-ROMs. These publishers are highly motivated to work out details of TDS implementation, and their products will provide inexpensive and convenient ways for experimentally-minded TeX administrators to experiment with the TDS.

B.2 More on subdirectory searching

Recursive subdirectory searching is the ability to specify a search not only of a specified directory d, but recursively of all directories below d.

Since the TDS specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a TDS-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion.

This feature is already supported by many implementations of TeX and companion utilities, for example DECUS TeX for VMS, Dvips(k), emTeX (and its drivers), PubliC TeX, Web2C, Xdvi(k), and Y&YTeX. The Kpathsea library is a reusable implementation of subdirectory searching for TeX, used in a number of the above programs.

Even if your TeX implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and AMS fonts, it would be feasible to store them in the TDS layout and list the directories individually in configuration files or environment variables.

The TWG recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized TDS, for the reasons stated in Section Subdirectory searching. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system.

Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the replaceable font.

  • Dvips: via a separate TEXFONTS_SUBDIR environment variable.
  • emTeX: t:\subdir!!; t:\subdir! for a single level of searching.
  • Kpathsea: texmf/subdir//
  • VMS: texmf:[subdir...]
  • Xdvi (patchlevel 20): texmf/subdir/**; texmf/subdir/* for a single level of searching. Version 20.50 and above support the // notation.
  • Y&Y TeX: t:/subdir// or t:\subdir\\.

B.3 Example implementation-specific trees

The TDS cannot specify a precise location for implementation-specific files, such as texmf/ini, because a site may have multiple TeX implementations.

Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning.

We recommend all implementations have default search paths that start with the current directory (e.g., .). Allowing users to include the parent directory (e.g., ..) is also helpful.

B.3.1 AmiWeb2c 2.0

(Email scherer@physik.rwth-aachen.de to contact the maintainer of this implementation.)

AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below.

Thanks to the SELFAUTO mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved.

In addition to Kpathsea's // notation recursive path search may also be started by DEVICE:/, e.g., TeXMF:/ will scan this specific device completely.

Binaries coming with the AmiWeb2c distribution are installed in the directory bin/amiweb2c/ outside the common TDS tree share/texmf/. In addition to the set of AmiWeb2c binaries you will find two subdirectories local/ and pastex/ with auxiliary programs.

A stripped version of the PasTeX system (used by kind permission of Georg Heßmann) is coming with AmiWeb2c, pre-installed in its own share/texmf/amiweb2c/pastex/ directory. If you want to use PasTeX you have to assign the name TeX: to this place.

Documentation files in AmigaGuide format should be stored at doc/guide/ similar to doc/info/.

B.3.2 Public DECUS TeX

If another VMS implementation besides Public DECUS TeX appears, the top level implementation directory name will be modified to something more specific (e.g., vms_decus).

       texmf/
         vms/            VMS implementation specific files
           exe/          end-user commands
             common/     command procedures, command definition files, etc.
             axp/        binary executables for Alpha AXP
             vax/        binary executables for VAX
           formats/      pool files, formats, bases
           help/         VMS help library, and miscellaneous help sources
           mgr/          command procedures, programs, docs, etc., for system management

B.3.3 Web2c 7

All implementation-dependent TeX system files (.pool, .fmt, .base, .mem) are stored by default directly in texmf/web2c. The configuration file texmf.cnf and various subsidiary MakeTeX... scripts used as subroutines are also stored there.

Non-TeX specific files are stored following the GNU coding standards. Given a root directory prefix (/usr/local by default), we have default locations as follows:

       <prefix>/         installation root (/usr/local by default)
         bin/            executables
         man/            man pages
         info/           info files
         lib/            libraries (libkpathsea.*)
         share/          architecture-independent files
           texmf/        TDS root
             web2c/      implementation-dependent files (.pool, .fmt, texmf.cnf, etc.)

See http://www.gnu.org/prep/standards_toc.html for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as /usr/local/texmf.


Next: , Previous: Implementation issues, Up: Top

Appendix C Is there a better way?

Defining the TDS required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that “made sense”).

Some interesting ideas could not be applied due to implementations lacking the necessary support:

  • Path searching control at the TeX level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the TeX search path would not need to depend on the format.
  • Multiple logical texmf trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C.

C.1 Macro structure

The TWG settled on the format/package arrangement after long discussion about how best to arrange the files.

The primary alternative to this arrangement was a scheme which reversed the order of these directories: package/format. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level).

Nevertheless, the format/package structure won for a couple of reasons:

  • It is closer to current practice; in fact, several members of the TWG have already implemented the TDS hierarchy. The alternative is not in use at any known site, and the TWG felt it wrong to mandate something with which there is no practical experience.
  • The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching.

C.2 Font structure

The TWG struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with TeX is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the TDS effort.

C.2.1 Font file type location

We considered the supplier-first arrangement in use at many sites:

     texmf/fonts/supplier/typeface/type/

This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a TFM file, the simplest implementation would require TeX to search through all the directories that contain PK files in all modes and at all resolutions.

In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The TDS arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely.

We also considered segregating all font-related files strictly by file type, so that Metafont sources would be in a directory texmf/fonts/mf, property list files in texmf/fonts/pl, the various forms of Type 1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The TDS merges file types (mf and pl under source, pfa and pfb and gsf under type1) where we felt this was beneficial.

C.2.2 Mode and resolution location

We considered having the mode at the bottom of the font tree:

     texmf/fonts/pk/supplier/typeface/mode/dpi/

In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device.

We then considered moving the dpinnn up to below the mode:

     texmf/fonts/pk/mode/dpi/supplier/typeface/

But then it is not feasible to omit the dpinnn level altogether on systems which can and do choose to use long filenames.

C.2.3 Modeless bitmaps

The TDS specifies using a single directory modeless/ as the mode name for those utilities which generate bitmaps, e.g., texmf/fonts/modeless/times/. This has the considerable advantage of not requiring each such directory name to be listed in a search path.

An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, gsftopk-generated bitmaps from ps2pk-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, PK and GF fonts generally identify their creator in the font comment following the PK_ID byte.

We are making an implicit assumption that Metafont is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in mfcx vs. xyzcx for a hypothetical program Xyz, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never happen.

C.3 Documentation structure

We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources.

We hope that a separate, but parallel, structure for documentation would (1) keep the documentation together and (2) make it as straightforward as possible for users to find the particular documentation they were after.


Next: , Previous: Is there a better way?, Up: Top

Appendix D Related references

This appendix gives pointers to related files and other documents. For CTAN references, we use http://www.ctan.org as the top-level domain only to make the links be live in this document. See http://www.ctan.org/tex-archive/CTAN.sites for a complete list of CTAN sites; there are mirrors worldwide.


Previous: Related references, Up: Top

Appendix E Contributors

The TWG has had no physical meetings; electronic mail was the communication medium.

Sebastian Rahtz is the TeX Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor.

The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the tds@tug.org and tex-live@tug.org mailing lists as the record of contributions. tex-common-6.04ubuntu1/doc/tds-1.1/tds.info0000664000000000000000000020425012607350221015251 0ustar This is tds.info, produced by makeinfo version 4.7 from tds.texi. INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY * TeX Directories: (tds). A directory structure for TeX files. END-INFO-DIR-ENTRY  File: tds.info, Node: Top, Next: Introduction, Up: (dir) A Directory Structure for TeX Files *********************************** Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 TeX Users Group. Permission to use, copy, and distribute this document _without modification_ for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided "as is" without expressed or implied warranty. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one. This document is available on any CTAN host (see Appendix *Note Related references::). Please send questions or suggestions by email to . We welcome all comments. This is version 1.1. * Menu: * Introduction:: * General:: * Top-level directories:: * Summary:: * Unspecified pieces:: * Implementation issues:: * Is there a better way?:: * Related references:: * Contributors:: --- The Detailed Node Listing --- Introduction * History:: * The role of the TDS:: * Conventions:: General * Subdirectory searching:: * Rooting the tree:: * Local additions:: * Duplicate filenames:: Top-level directories * Macros:: * Fonts:: * Non-font Metafont files:: * MetaPost:: * BibTeX:: * Scripts:: * Documentation:: Macros * Extensions:: Fonts * Font bitmaps:: * Valid font bitmaps:: Summary * Documentation tree summary:: Unspecified pieces * Portable filenames:: Implementation issues * Adoption of the TDS:: * More on subdirectory searching:: * Example implementation-specific trees:: Example implementation-specific trees * AmiWeb2c 2.0:: * Public DECUS TeX:: * Web2c 7:: Is there a better way? * Macro structure:: * Font structure:: * Documentation structure:: Font structure * Font file type location:: * Mode and resolution location:: * Modeless bitmaps::  File: tds.info, Node: Introduction, Next: General, Prev: Top, Up: Top 1 Introduction ************** TeX is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of TeX's flexibility, however, is that there has been no single "right" way to install it. This has resulted in many sites having different installed arrangements. The primary purpose of this document is to describe a standard TeX Directory Structure (TDS): a directory hierarchy for macros, fonts, and the other implementation-independent TeX system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the TeX files into a single structure. The TDS has been designed to work on all modern systems. In particular, the Technical Working Group (TWG) believes it is usable under MacOS, MS-DOS, OS/2, Unix, VMS, and Windows NT. We hope that administrators and developers of both free and commercial TeX implementations will adopt this standard. This document is intended both for the TeX system administrator at a site and for people preparing TeX distributions--everything from a complete runnable system to a single macro or style file. It may also help TeX users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working TeX system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix *Note Related references::. * Menu: * History:: * The role of the TDS:: * Conventions::  File: tds.info, Node: History, Next: The role of the TDS, Up: Introduction 1.1 History =========== Version 1.0 of the TDS was released in February 2003. Version 1.1 was released in June 2004, with the following non-editorial changes: * Inputs for TeX extensions included under `tex', instead of in their own top-level directories (Section *Note Extensions::) * New top-level directory `scripts' (Section *Note Scripts::). * New subdirectories `lig', `opentype', `truetype', and `type3' under `fonts' (Section *Note Fonts::). * `enc', `lig', and `map' all use `SYNTAX/PACKAGE' subdirectories (Section *Note Fonts::). * `pfm' files specified to go under `type1', and `inf' files under `afm' (Section *Note Fonts::).  File: tds.info, Node: The role of the TDS, Next: Conventions, Prev: History, Up: Introduction 1.2 The role of the TDS ======================= The role of the TDS is to stabilize the organization of TeX-related software packages that are installed and in use, possibly on multiple platforms simultaneously. At first glance, it may seem that the Comprehensive TeX Archive Network (CTAN) fulfills at least part of this role, but this is not the case. The role of CTAN is to simplify archiving and distribution, not installation and use. In fact, the roles of the TDS and CTAN are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories.  File: tds.info, Node: Conventions, Prev: The role of the TDS, Up: Introduction 1.3 Conventions =============== In this document, `/' is used to separate filename components; for example, `texmf/fonts'. This is the Unix convention but the ideas are in no way Unix-specific. In this document, "TeX" generally means the TeX system, including Metafont, DVI drivers, utilities, etc., not just the TeX program itself. The word "package" in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is _not_ a LaTeX2e package, which is a style file supplementing a document class. We use the following typographic conventions: * `literal' Literal text such as `filename' is typeset in typewriter type. * `REPLACEABLE' Replaceable text such as `PACKAGE', identifying a class of things, is typeset in italics inside angle brackets.  File: tds.info, Node: General, Next: Top-level directories, Prev: Introduction, Up: Top 2 General ********* This section describes common properties throughout the TDS tree. * Menu: * Subdirectory searching:: * Rooting the tree:: * Local additions:: * Duplicate filenames::  File: tds.info, Node: Subdirectory searching, Next: Rooting the tree, Up: General 2.1 Subdirectory searching ========================== Older TeX installations store large numbers of related files in single directories, for example, all `TFM' files and/or all TeX input files. This monolithic arrangement hinders maintenance of a TeX system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name. Therefore, the TWG felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems. Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden. As a result, the TWG concluded that a comprehensive TDS requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that TeX, Metafont, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths. The TDS does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section *Note More on subdirectory searching::).  File: tds.info, Node: Rooting the tree, Next: Local additions, Prev: Subdirectory searching, Up: General 2.2 Rooting the tree ==================== In this document, we shall designate the root TDS directory by `texmf' (for "TeX and Metafont"). We recommend using that name where possible, but the actual name of the directory is up to the installer. On PC networks, for example, this could map to a logical drive specification such as `T:'. Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, `/usr/local/share', `/usr/local', `/usr/local/lib', and `/opt' are common choices. The name `texmf' was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire TeX system (including Metafont, MetaPost, BibTeX, etc.), not just TeX itself; and it is descriptive of a generic installation rather than a particular implementation. A site may choose to have more than one TDS hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate.  File: tds.info, Node: Local additions, Next: Duplicate filenames, Prev: Rooting the tree, Up: General 2.3 Local additions =================== The TDS cannot specify precisely when a package is or is not a "local addition". Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider "nonlocal" all files not acquired as part of the installed TeX distribution; another site might consider "local" only those files that were actually developed at the local site and not distributed elsewhere. We recognize two common methods for local additions to a distributed `texmf' tree. Both have their place; in fact, some sites employ both simultaneously: 1. A completely separate tree which is a TDS structure itself; for example, `/usr/local/umbtex' at the University of Massachusetts at Boston. This is another example of the multiple `texmf' hierarchies mentioned in the previous section. 2. A directory named `local' at any appropriate level, for example, in the `FORMAT', `PACKAGE', and `SUPPLIER' directories discussed in the following sections. The TDS reserves the directory name `local' for this purpose. We recommend using `local' for site-adapted configuration files, such as `language.dat' for the Babel package or `graphics.cfg' for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases. One common case of local additions is dynamically generated files, e.g., PK fonts by the `mktexpk' script (which originated in Dvips as `MakeTeXPK'). A site may store the generated files directly in any of: * their standard location in the main TDS tree (if it can be made globally writable); * an alternative location in the main TDS tree (for example, under `texmf/fonts/tmp'); * a second complete TDS tree (as outlined above); * any other convenient directory (perhaps under `/var', for example `/var/spool/fonts'). No one solution will be appropriate for all sites.  File: tds.info, Node: Duplicate filenames, Prev: Local additions, Up: General 2.4 Duplicate filenames ======================= Different files by the same name may exist in a TDS tree. The TDS generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the TDS requires implementations to support the following exceptions: * Names of TeX input files must be unique within each first-level subdirectory of `texmf/tex' and `texmf/tex/generic', but not within all of `texmf/tex'; i.e., different TeX formats may have files by the same name. (Section *Note Macros:: discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at `texmf/tex' specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files. * Many font files will have the same name (e.g., `cmr10.pk'), as discussed in Section *Note Valid font bitmaps::. Implementations must distinguish these files by mode and resolution. All implementations we know of already have these capabilities. One place where duplicate names are likely to occur is not an exception: * Names of Metafont input files (as opposed to bitmaps) must be unique within all of `texmf/fonts'. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named `punct.mf', `romanl.mf', and so on. We believe the only feasible solution is to rename the derivative files to be unique.  File: tds.info, Node: Top-level directories, Next: Summary, Prev: General, Up: Top 3 Top-level directories *********************** The directories under the `texmf' root identify the major components of a TeX system (see Section *Note Summary:: for a summary). A site may omit any unneeded directories. Although the TDS by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under `texmf' to simplify administration of the TeX tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present. The top-level directories specified by the TDS are: * `tex' for TeX files (Section *Note Macros::). * `fonts' for font-related files (Section *Note Fonts::). * `metafont' for Metafont files which are not fonts (Section *Note Non-font Metafont files::). * `metapost' for MetaPost files (Section *Note MetaPost::). * `bibtex' for BibTeX files (Section *Note BibTeX::). * `scripts' for platform-independent executables (Section *Note Scripts::). * `doc' for user documentation (Section *Note Documentation::). * `source' for sources. This includes both traditional program sources (for example, Web2C sources go in `texmf/source/web2c') and, e.g., LaTeX `dtx' sources (which go in `texmf/source/latex'). The TDS leaves unspecified any structure under `source'. `source' is intended for files which are not needed at runtime by any TeX program; it should not be included in any search path. For example, `plain.tex' does not belong under `texmf/source', even though it is a "source file" in the sense of not being derived from another file. (It goes in `texmf/tex/plain/base', as explained in Section *Note Macros::). * `IMPLEMENTATION' for implementations (examples: `emtex', `vtex', `web2c'), to be used for whatever purpose deemed suitable by the implementor or TeX administrator. That is, files that cannot be shared between implementations, such as pool files (`tex.pool') and memory dump files (`plain.fmt') go here, in addition to implementation-wide configuration files. See Section *Note Example implementation-specific trees:: for examples of real `IMPLEMENTATION' trees. Such implementation-specific configuration files should _not_ be located using the main TeX input search path (e.g., `TEXINPUTS'). This must be reserved for files actually read by a TeX engine. See Section *Note Extensions::. * `PROGRAM' for program-specific input and configuration files for any TeX-related programs (examples: `mft', `dvips'). In fact, the `tex', `metafont', `metapost', and `bibtex' items above may all be seen as instances of this case. * Menu: * Macros:: * Fonts:: * Non-font Metafont files:: * MetaPost:: * BibTeX:: * Scripts:: * Documentation::  File: tds.info, Node: Macros, Next: Fonts, Up: Top-level directories 3.1 Macros ========== TeX macro files shall be stored in separate directories, segregated by TeX format and package name (we use `format' in its traditional TeX sense to mean a usefully `\dump'-able package): texmf/tex/FORMAT/PACKAGE/ * `FORMAT' is a format name (examples: `amstex', `latex', `plain', `texinfo'). The TDS allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or TeX administrator. We recommend that packages used as formats at a particular site be stored at the `FORMAT' level: by adjusting the TeX inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format. The TDS reserves the following `FORMAT' names: * `generic', for input files that are useful across a wide range of formats (examples: `null.tex', `path.sty'). Generally, this means any format that uses the category codes of Plain TeX and does not rely on any particular format. This is in contrast to those files which are useful only with Plain TeX (which go under `texmf/tex/plain'), e.g., `testfont.tex' and `plain.tex' itself. * `local', for local additions. See Section *Note Local additions::. Thus, for almost every format, it is necessary to search at least the `FORMAT' directory and then the `generic' directory (in that order). Other directories may need to be searched as well, depending on the format. When using AMS-TeX, for example, the `amstex', `plain', and `generic' directories should be searched, because AMS-TeX is compatible with Plain. * `PACKAGE' is a TeX package name (examples: `babel', `texdraw'). In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the `FORMAT' directory, instead of `FORMAT/base'. For example, Texinfo may go in `texmf/tex/texinfo/texinfo.tex', not `texmf/tex/texinfo/base/texinfo.tex'. The TDS reserves the following `PACKAGE' names: * `base', for the base distribution of each format, including files used by INITEX when dumping format files. For example, in the standard LaTeX distribution, the `ltx' files created during the build process. Another example: the `.ini' driver files for formats used by TeX Live and other distributions. * `hyphen', for hyphenation patterns, including the original American English `hyphen.tex'. These are typically used only by INITEX. In most situations, this directory need exist only under the `generic' format. * `images', for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named `tex', TeX needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between TeX and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the TDS. In most situations, this directory need exist only under the `generic' format. * `local', for local additions and configuration files. See Section *Note Local additions::. * `misc', for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'. * Menu: * Extensions::  File: tds.info, Node: Extensions, Up: Macros 3.1.1 Extensions ---------------- TeX has spawned many companion and successor programs ("engines"), such as PDFTeX, Omega, and others. The TDS specifies that the input files for such programs (using a TeX-like syntax) be placed within the top-level `tex' directory, either at the top level or within a format subdirectory, even though the original TeX program may not be able to read them. For example: texmf/tex/aleph texmf/tex/enctex This is a change from TDS 1.0, which specified top-level `EXTENSION' directories for each such program. We felt the new approach is preferable, because: * Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level `tex' directory provides a stable location over time. * Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone. Thus, in practice, having different top-level directories caused difficulties for everyone involved--users, package authors, site administrators, and system distributors. Please contrast this approach with the `IMPLEMENTATION' top-level subdirectory (Section *Note Top-level directories::), which is to be used for configuration files that (presumably) do not use TeX syntax and in any case should not be found along the main TeX input search path.  File: tds.info, Node: Fonts, Next: Non-font Metafont files, Prev: Macros, Up: Top-level directories 3.2 Fonts ========= Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. PK and GF files need additional structure, as detailed in the next section. texmf/fonts/TYPE/SUPPLIER/TYPEFACE/ texmf/fonts/enc,lig,map/SUBPATH/ * `TYPE' is the type of font file. The TDS reserves the following `TYPE' names for common TeX file types: * `afm', for Adobe font metrics, and `inf' files. * `gf', for generic font bitmap files. * `opentype', for OpenType fonts. * `pk', for packed bitmap files. * `source', for font sources (Metafont files, property lists, etc.). * `tfm', for TeX font metric files. * `truetype', for TrueType fonts. * `type1', for PostScript Type 1 fonts (in `pfa', `pfb', or any other format), and `pfm' files. * `type3', for PostScript Type 3 fonts. * `vf', for virtual fonts. The TDS also reserves the names `enc', `lig', and `map' for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with `SYNTAX' subdirectories, and then `PACKAGE' subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples: fonts/map/dvipdfm/updmap/dvipdfm.map fonts/map/dvips/lm/lm.map fonts/enc/dvips/base/8r.enc The Fontname and Dvips packages have more examples of the `enc' and `map' types. The `afm2pl' program uses `lig' files. `pfm' files are included in the `type1' directory, instead of being given their own directory, for two reasons: 1) a `.pfm' file is always an adjunct to a given `.pfb' file; 2) they must be installed from the same directory for Windows programs other than TeX to use them. `inf' files are included in the `afm' directory, since an `inf' and `afm' file can be used to generate a `pfm'. (Unfortunately, Adobe Type Manager and perhaps other software requires that the `pfb' be in the same directory as `afm' and `inf' for installation.) As usual, a site may omit any of these directories that are unnecessary. `gf' is a particularly likely candidate for omission. * `SUPPLIER' is a name identifying font source (examples: `adobe', `ams', `public'). The TDS reserves the following `SUPPLIER' names: * `ams', for the American Mathematical Society's AMS-fonts collection. * `local', for local additions. See Section *Note Local additions::. * `public', for freely redistributable fonts where the supplier neither (1) requested their own directory (e.g., `ams'), nor (2) also made proprietary fonts (e.g., `adobe'). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain. * `tmp', for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual. * `TYPEFACE' is the name of a typeface family (examples: `cm', `euler', `times'). The TDS reserves the following `TYPEFACE' names: * `cm' (within `public'), for the 75 fonts defined in `Computers and Typesetting, Volume E'. * `latex' (within `public'), for those fonts distributed with LaTeX in the base distribution. * `local', for local additions. See Section *Note Local additions::. Some concrete examples: texmf/fonts/source/public/pandora/pnr10.mf texmf/fonts/tfm/public/cm/cmr10.tfm texmf/fonts/type1/adobe/utopia/putr.pfa For complete supplier and typeface name lists, consult `Filenames for TeX fonts' (see Appendix *Note Related references::). * Menu: * Font bitmaps:: * Valid font bitmaps::  File: tds.info, Node: Font bitmaps, Next: Valid font bitmaps, Up: Fonts 3.2.1 Font bitmaps ------------------ Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1) the type of device (i.e., mode) for which the font was created; (2) the resolution of the bitmap. Following common practice, the TDS segregates fonts with different device types into separate directories. See `modes.mf' in Appendix *Note Related references:: for recommended mode names. Some printers operate at more than one resolution (e.g., at 300dpi and 600dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the TeX system is the assumption of a single target resolution. Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original Metafont program itself), the resolution is included in the filename (e.g., `cmr10.300pk'). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., `dpi300/cmr10.pk'). Because the TDS cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under `pk' and `gf': texmf/fonts/pk/MODE/SUPPLIER/TYPEFACE/dpiNNN/ texmf/fonts/gf/MODE/SUPPLIER/TYPEFACE/dpiNNN/ * `MODE' is a name which identifies the device type (examples: `cx', `ljfour', `modeless'). Usually, this is the name of the Metafont mode used to build the PK file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the `MODE' name shall be simply `modeless'. The `MODE' level shall not be omitted, even if only a single mode happens to be in use. * `dpiNNN' specifies the resolution of the font (examples: `dpi300', `dpi329'). `dpi' stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the TeX world to consider changing now. The integer `NNN' is to be calculated as if using Metafont arithmetic and then rounded; i.e., it is the integer Metafont uses in its output `gf' filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level 0 DVI driver standard (see Appendix *Note Related references::) in bitmap font searches by allowing a fuzz of +-0.2% (with a minimum of 1) in the `DPI'. Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original Metafont) and font library files (as in emTeX's `.fli' files), provided that the basic scheme is also supported.  File: tds.info, Node: Valid font bitmaps, Prev: Font bitmaps, Up: Fonts 3.2.2 Valid font bitmaps ------------------------ The TWG recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, `cmr10.pk' will be the filename for Computer Modern Roman 10pt at 5-10 magnifications for 2-3 modes. (Section *Note Duplicate filenames:: discusses duplicate filenames in general.) To minimize this problem, we strongly recommend that PK files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font. This information is easy to supply: a simple addition to the local modes used for building the fonts with Metafont will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) `modes.mf' (see Appendix *Note Related references::), the required information is already in your PK files. If not, a simple addition based on the code found in `modes.mf' can be made to your local modes file and the PK files rebuilt.  File: tds.info, Node: Non-font Metafont files, Next: MetaPost, Prev: Fonts, Up: Top-level directories 3.3 Non-font Metafont files =========================== Most Metafont input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in: texmf/metafont/PACKAGE/ `PACKAGE' is the name of a Metafont package (for example, `mfpic'). The TDS reserves the following `PACKAGE' names: * `base', for the standard Metafont macro files as described in `The Metafontbook', such as `plain.mf' and `expr.mf'. * `local', for local additions. See Section *Note Local additions::. * `misc', for Metafont packages consisting of only a single file (for example, `modes.mf'). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'.  File: tds.info, Node: MetaPost, Next: BibTeX, Prev: Non-font Metafont files, Up: Top-level directories 3.4 MetaPost ============ MetaPost is a picture-drawing language developed by John Hobby, derived from Knuth's Metafont. Its primary purpose is to output Encapsulated PostScript instead of bitmaps. MetaPost input files and the support files for MetaPost-related utilities shall be stored in: texmf/metapost/PACKAGE/ `PACKAGE' is the name of a MetaPost package. At the present writing none exist, but the TWG thought it prudent to leave room for contributed packages that might be written in the future. The TDS reserves the following `PACKAGE' names: * `base', for the standard MetaPost macro files, such as `plain.mp', `mfplain.mp', `boxes.mp', and `graph.mp'. This includes files used by INIMP when dumping mem files containing preloaded macro definitions. * `local', for local additions. See Section *Note Local additions::. * `misc', for MetaPost packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'. * `support', for additional input files required by MetaPost utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level MetaPost programs for rendering some special characters.  File: tds.info, Node: BibTeX, Next: Scripts, Prev: MetaPost, Up: Top-level directories 3.5 BibTeX ========== BibTeX-related files shall be stored in: texmf/bibtex/bib/PACKAGE/ texmf/bibtex/bst/PACKAGE/ The `bib' directory is for BibTeX database (`.bib') files, the `bst' directory for style (`.bst') files. `PACKAGE' is the name of a BibTeX package. The TDS reserves the following `PACKAGE' names (the same names are reserved under both `bib' and `bst'): * `base', for the standard BibTeX databases and styles, such as `xampl.bib', `plain.bst'. * `local', for local additions. See Section *Note Local additions::. * `misc', for BibTeX packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using `misc'.  File: tds.info, Node: Scripts, Next: Documentation, Prev: BibTeX, Up: Top-level directories 3.6 Scripts =========== The top-level `scripts' directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under `scripts' are package names. This eases creating distributions, by providing a common place for such platform-independent programs. The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the TDS). Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, `scripts' also serves as a platform-independent analog of the standard Unix `libexec' directory. We recommend using extensions specifying the language (such as `.pl', `.py', `.sh') on these files, to help uniquely identify the name. Since the intent of the TDS is for programs in `scripts' not to be invoked directly by users, this poses no inconvenience. For example, in the TeX Live distribution, the ConTeXt user-level program `texexec' can exist as a small wrapper script in each `bin/PLATFORM/texexec' (which is outside the `texmf' tree), which merely finds and calls `texmf/scripts/context/perl/texexec.pl'. Examples: scripts/context/perl/texexec.pl scripts/context/ruby/examplex.rb scripts/thumbpdf/thumbpdf.pl The TDS does not specify a location for platform-dependent binary executables, whether auxiliary or user-level.  File: tds.info, Node: Documentation, Prev: Scripts, Up: Top-level directories 3.7 Documentation ================= Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the TeX system. The TDS specifies that these additional documentation files shall be stored in a structure that parallels to some extent the `fonts' and `tex' directories, as follows: texmf/doc/CATEGORY/... `CATEGORY' identifies the general topic of documentation that resides below it; for example, a TeX format name (`latex'), program name (`bibtex', `tex'), language (`french', `german'), a file format (`info', `man'), or other system components (`web', `fonts'). One possible arrangement is to organize `doc' by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however. Within each `CATEGORY' tree for a TeX format, the directory `base' is reserved for base documentation distributed by the format's maintainers. The TDS reserves the following category names: * `general', for standalone documents not specific to any particular program (for example, Joachim Schrod's `Components of TeX'). * `help', for meta-information, such as FAQ's, the TeX Catalogue, etc. * `info', for processed Texinfo documents. (Info files, like anything else, may also be stored outside the TDS, at the installer's option.) * `local', for local additions. See Section *Note Local additions::. The `doc' directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or TeX administrator (for example, VMS help files under `texmf/vms/help'). The documentation directories may contain TeX sources, DVI files, PostScript files, text files, example input files, or any other useful documentation format(s). See Section *Note Documentation tree summary:: for a summary.  File: tds.info, Node: Summary, Next: Unspecified pieces, Prev: Top-level directories, Up: Top 4 Summary ********* A skeleton of a TDS `texmf' directory tree. This is not to imply these are the only entries allowed. For example, `local' may occur at any level. bibtex/ BibTeX input files bib/ BibTeX databases base/ base distribution (e.g., `xampl.bib') misc/ single-file databases / name of a package bst/ BibTeX style files base/ base distribution (e.g., `plain.bst', `acm.bst') misc/ single-file styles / name of a package doc/ see Section *Note Documentation:: and the summary below fonts/ font-related files / file type (e.g., `pk') / type of output device (for `pk' and `gf' only) / name of a font supplier (e.g., `public') / name of a typeface (e.g., `cm') dpi/ font resolution (for `pk' and `gf' only) / TeX implementations, by name (e.g., `emtex') local/ files created or modified at the local site metafont/ Metafont (non-font) input files base/ base distribution (e.g., `plain.mf') misc/ single-file packages (e.g., `modes.mf') / name of a package (e.g., `mfpic') metapost/ MetaPost input and support files base/ base distribution (e.g., `plain.mp') misc/ single-file packages / name of a package support/ support files for MetaPost-related utilities mft/ `MFT' inputs (e.g., `plain.mft') / TeX-related programs, by name (e.g., `dvips') source/ program source code by name (e.g., `latex', `web2c') tex/ TeX input files / name of an engine (e.g., `aleph'); can also be lower / name of a format (e.g., `plain') base/ base distribution for format (e.g., `plain.tex') misc/ single-file packages (e.g., `webmac.tex') local/ local additions to or local configuration files for `FORMAT' / name of a package (e.g., `graphics', `mfnfss') generic/ format-independent packages hyphen/ hyphenation patterns (e.g., `hyphen.tex') images/ image input files (e.g., Encapsulated PostScript) misc/ single-file format-independent packages (e.g., `null.tex'). / name of a package (e.g., `babel') * Menu: * Documentation tree summary::  File: tds.info, Node: Documentation tree summary, Up: Summary 4.1 Documentation tree summary ============================== An example skeleton of a TDS directory tree under `texmf/doc'. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed. As mentioned, the `texmf/doc' tree may be organized by language, so that all documentation in French, say, is in a `french' subdirectory. In that case, the example structure here would be in a given language directory. ams/ amsfonts/ `amsfonts.faq', `amfndoc' amslatex/ `amslatex.faq', `amsldoc' amstex/ `amsguide', `joyerr' bibtex/ BibTeX base/ `btxdoc.tex' fonts/ fontname/ `Filenames for TeX fonts' oldgerm/ `corkpapr' / name of a TeX format (e.g., `generic', `latex') base/ for the base distribution misc/ for contributed single-file package documentation / for _package_ general/ across programs, generalities errata/ `errata', `errata[1-8]' texcomp/ `Components of TeX' help/ meta-information ctan/ info about CTAN mirror sites faq/ FAQs of `comp.text.tex', etc. info/ GNU Info files, made from Texinfo sources latex/ example of `FORMAT' base/ `ltnews*', `*guide', etc. graphics/ `grfguide' local/ site-specific documentation man/ Unix man pages / TeX-related programs, by name (examples follow) metafont/ `mfbook.tex', `metafont-for-beginners', etc. metapost/ `mpman', `manfig', etc. tex/ `texbook.tex', `A Gentle Introduction to TeX', etc. web/ `webman', `cwebman'  File: tds.info, Node: Unspecified pieces, Next: Implementation issues, Prev: Summary, Up: Top Appendix A Unspecified pieces ***************************** The TDS cannot address the following aspects of a functioning TeX system: 1. The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the `texmf' tree altogether (e.g., `/usr/local/bin'), in a platform-dependent directory within `texmf', or elsewhere. 2. Upgrading packages when new releases are made: we could find no way of introducing version specifiers into `texmf' that would do more good than harm, or that would be practical for even a plurality of installations. 3. The location of implementation-specific files (e.g., TeX `.fmt' files): by their nature, these must be left to the implementor or TeX maintainer. See Section *Note Example implementation-specific trees::. 4. Precisely when a package or file should be considered "local", and where such local files are installed. See Section *Note Local additions:: for more discussion. * Menu: * Portable filenames::  File: tds.info, Node: Portable filenames, Up: Unspecified pieces A.1 Portable filenames ====================== The TDS cannot require any particular restriction on filenames in the tree, since the names of many existing TeX files conform to no standard scheme. For the benefit of people who wish to make a portable TeX distribution or installation, however, we outline here the necessary restrictions. The TDS specifications themselves are compatible with these. ISO-9660 is the only universally acceptable file system format for CD-ROMs. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following: * File and directory names, not including any directory path or extension part, may not exceed eight characters. * Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension. * Names and extensions may consist of _only_ the characters `A'-`Z', `0'-`9', and underscore. Lowercase letters are excluded. * A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., `FILENAME.' or `.EXT'). * A version number, ranging from 1-32767, is appended to the file extension, separated by a semicolon (e.g., `FILENAME.EXT;1'). * Only eight directory levels are allowed, including the top-level (mounted) directory (see Section *Note Rooting the tree::). Thus, the deepest valid ISO-9660 path is: texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1 1 2 3 4 5 6 7 8 The deepest TDS path needs only seven levels: texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk 1 2 3 4 5 6 7 Some systems display a modified format of ISO-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc. Before the December 1996 release, LaTeX used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names.  File: tds.info, Node: Implementation issues, Next: Is there a better way?, Prev: Unspecified pieces, Up: Top Appendix B Implementation issues ******************************** We believe that the TDS can bring a great deal of order to the current anarchic state of many TeX installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true "drop-in" distribution packages for TeX. * Menu: * Adoption of the TDS:: * More on subdirectory searching:: * Example implementation-specific trees::  File: tds.info, Node: Adoption of the TDS, Next: More on subdirectory searching, Up: Implementation issues B.1 Adoption of the TDS ======================= [This section is retained for historical purposes; the TDS is now quite firmly entrenched in most TeX distributions.] We recognize that adoption of the TDS will not be immediate or universal. Most TeX administrators will not be inclined to make the final switch until: * Clear and demonstrable benefits can be shown for the TDS. * TDS-compliant versions of all key programs are available in ported, well-tested forms. * A "settling" period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process. Consequently, most of the first trials of the TDS will be made by members of the TDS committee and/or developers of TeX-related software. This has already taken place during the course of our deliberations (see Appendix *Note Related references:: for a sample tree available electronically). They will certainly result in the production of a substantial number of TDS-compliant packages. Indeed, the teTeX and TeX Live distributions are TDS-compliant and in use now at many sites. Once installable forms of key TDS-compliant packages are more widespread, some TeX administrators will set up TDS-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this TDS version. After most of the dust has settled, hopefully even conservative TeX administrators will begin to adopt the TDS. Eventually, most TeX sites will have adopted the common structure, and most packages will be readily available in TDS-compliant form. We believe that this process will occur relatively quickly. The TDS committee spans a wide range of interests in the TeX community. Consequently, we believe that most of the key issues involved in defining a workable TDS definition have been covered, often in detail. TeX developers have been consulted about implementation issues, and have been trying out the TDS arrangement. Thus, we hope for few surprises as implementations mature. Finally, there are several (current or prospective) publishers of TeX CD-ROMs. These publishers are highly motivated to work out details of TDS implementation, and their products will provide inexpensive and convenient ways for experimentally-minded TeX administrators to experiment with the TDS.  File: tds.info, Node: More on subdirectory searching, Next: Example implementation-specific trees, Prev: Adoption of the TDS, Up: Implementation issues B.2 More on subdirectory searching ================================== Recursive subdirectory searching is the ability to specify a search not only of a specified directory `D', but recursively of all directories below `D'. Since the TDS specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a TDS-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion. This feature is already supported by many implementations of TeX and companion utilities, for example DECUS TeX for VMS, Dvips(k), emTeX (and its drivers), PubliC TeX, Web2C, Xdvi(k), and Y&YTeX. The Kpathsea library is a reusable implementation of subdirectory searching for TeX, used in a number of the above programs. Even if your TeX implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and AMS fonts, it would be feasible to store them in the TDS layout and list the directories individually in configuration files or environment variables. The TWG recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized TDS, for the reasons stated in Section *Note Subdirectory searching::. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system. Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the `REPLACEABLE' font. * Dvips: via a separate `TEXFONTS_SUBDIR' environment variable. * emTeX: `t:\subdir!!'; `t:\subdir!' for a single level of searching. * Kpathsea: `texmf/subdir//' * VMS: `texmf:[subdir...]' * Xdvi (patchlevel 20): `texmf/subdir/**'; `texmf/subdir/*' for a single level of searching. Version 20.50 and above support the `//' notation. * Y&Y TeX: `t:/subdir//' or `t:\subdir\\'.  File: tds.info, Node: Example implementation-specific trees, Prev: More on subdirectory searching, Up: Implementation issues B.3 Example implementation-specific trees ========================================= The TDS cannot specify a precise location for implementation-specific files, such as `texmf/ini', because a site may have multiple TeX implementations. Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning. We recommend all implementations have default search paths that start with the current directory (e.g., `.'). Allowing users to include the parent directory (e.g., `..') is also helpful. * Menu: * AmiWeb2c 2.0:: * Public DECUS TeX:: * Web2c 7::  File: tds.info, Node: AmiWeb2c 2.0, Next: Public DECUS TeX, Up: Example implementation-specific trees B.3.1 AmiWeb2c 2.0 ------------------ (Email to contact the maintainer of this implementation.) AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below. Thanks to the `SELFAUTO' mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved. In addition to Kpathsea's `//' notation recursive path search may also be started by `DEVICE:/', e.g., `TeXMF:/' will scan this specific device completely. Binaries coming with the AmiWeb2c distribution are installed in the directory `bin/amiweb2c/' outside the common TDS tree `share/texmf/'. In addition to the set of AmiWeb2c binaries you will find two subdirectories `local/' and `pastex/' with auxiliary programs. A stripped version of the PasTeX system (used by kind permission of Georg Hessmann) is coming with AmiWeb2c, pre-installed in its own `share/texmf/amiweb2c/pastex/' directory. If you want to use PasTeX you have to `assign' the name `TeX:' to this place. Documentation files in AmigaGuide format should be stored at `doc/guide/' similar to `doc/info/'.  File: tds.info, Node: Public DECUS TeX, Next: Web2c 7, Prev: AmiWeb2c 2.0, Up: Example implementation-specific trees B.3.2 Public DECUS TeX ---------------------- If another VMS implementation besides Public DECUS TeX appears, the top level implementation directory name will be modified to something more specific (e.g., `vms_decus'). texmf/ vms/ VMS implementation specific files exe/ end-user commands common/ command procedures, command definition files, etc. axp/ binary executables for Alpha AXP vax/ binary executables for VAX formats/ pool files, formats, bases help/ VMS help library, and miscellaneous help sources mgr/ command procedures, programs, docs, etc., for system management  File: tds.info, Node: Web2c 7, Prev: Public DECUS TeX, Up: Example implementation-specific trees B.3.3 Web2c 7 ------------- All implementation-dependent TeX system files (`.pool', `.fmt', `.base', `.mem') are stored by default directly in `texmf/web2c'. The configuration file `texmf.cnf' and various subsidiary `MakeTeX...' scripts used as subroutines are also stored there. Non-TeX specific files are stored following the GNU coding standards. Given a root directory `PREFIX' (`/usr/local' by default), we have default locations as follows: / installation root (`/usr/local' by default) bin/ executables man/ man pages info/ info files lib/ libraries (`libkpathsea.*') share/ architecture-independent files texmf/ TDS root web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) See `http://www.gnu.org/prep/standards_toc.html' for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as `/usr/local/texmf'.  File: tds.info, Node: Is there a better way?, Next: Related references, Prev: Implementation issues, Up: Top Appendix C Is there a better way? ********************************* Defining the TDS required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that "made sense"). Some interesting ideas could not be applied due to implementations lacking the necessary support: * Path searching control at the TeX level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the TeX search path would not need to depend on the format. * Multiple logical `texmf' trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C. * Menu: * Macro structure:: * Font structure:: * Documentation structure::  File: tds.info, Node: Macro structure, Next: Font structure, Up: Is there a better way? C.1 Macro structure =================== The TWG settled on the `FORMAT/PACKAGE' arrangement after long discussion about how best to arrange the files. The primary alternative to this arrangement was a scheme which reversed the order of these directories: `PACKAGE/FORMAT'. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level). Nevertheless, the `FORMAT/PACKAGE' structure won for a couple of reasons: * It is closer to current practice; in fact, several members of the TWG have already implemented the TDS hierarchy. The alternative is not in use at any known site, and the TWG felt it wrong to mandate something with which there is no practical experience. * The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching.  File: tds.info, Node: Font structure, Next: Documentation structure, Prev: Macro structure, Up: Is there a better way? C.2 Font structure ================== The TWG struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with TeX is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the TDS effort. * Menu: * Font file type location:: * Mode and resolution location:: * Modeless bitmaps::  File: tds.info, Node: Font file type location, Next: Mode and resolution location, Up: Font structure C.2.1 Font file type location ----------------------------- We considered the supplier-first arrangement in use at many sites: texmf/fonts/SUPPLIER/TYPEFACE/TYPE/ This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a `TFM' file, the simplest implementation would require TeX to search through all the directories that contain PK files in all modes and at all resolutions. In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The TDS arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely. We also considered segregating all font-related files strictly by file type, so that Metafont sources would be in a directory `texmf/fonts/mf', property list files in `texmf/fonts/pl', the various forms of Type 1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The TDS merges file types (`mf' and `pl' under `source', `pfa' and `pfb' and `gsf' under `type1') where we felt this was beneficial.  File: tds.info, Node: Mode and resolution location, Next: Modeless bitmaps, Prev: Font file type location, Up: Font structure C.2.2 Mode and resolution location ---------------------------------- We considered having the `mode' at the bottom of the font tree: texmf/fonts/pk/SUPPLIER/TYPEFACE/MODE/DPI/ In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device. We then considered moving the `dpiNNN' up to below the mode: texmf/fonts/pk/MODE/DPI/SUPPLIER/TYPEFACE/ But then it is not feasible to omit the `dpiNNN' level altogether on systems which can and do choose to use long filenames.  File: tds.info, Node: Modeless bitmaps, Prev: Mode and resolution location, Up: Font structure C.2.3 Modeless bitmaps ---------------------- The TDS specifies using a single directory `modeless/' as the mode name for those utilities which generate bitmaps, e.g., `texmf/fonts/modeless/times/'. This has the considerable advantage of not requiring each such directory name to be listed in a search path. An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, `gsftopk'-generated bitmaps from `ps2pk'-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, PK and GF fonts generally identify their creator in the font comment following the `PK_ID' byte. We are making an implicit assumption that Metafont is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in `mfcx' vs. `xyzcx' for a hypothetical program Xyz, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never happen.  File: tds.info, Node: Documentation structure, Prev: Font structure, Up: Is there a better way? C.3 Documentation structure =========================== We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources. We hope that a separate, but parallel, structure for documentation would (1) keep the documentation together and (2) make it as straightforward as possible for users to find the particular documentation they were after.  File: tds.info, Node: Related references, Next: Contributors, Prev: Is there a better way?, Up: Top Appendix D Related references ***************************** This appendix gives pointers to related files and other documents. For CTAN references, we use `http://www.ctan.org' as the top-level domain only to make the links be live in this document. See `http://www.ctan.org/tex-archive/CTAN.sites' for a complete list of CTAN sites; there are mirrors worldwide. * This document, in many formats (tex, dvi, info, pdf): `http://tug.org/tds/' * The TDS mailing list archives: `http://tug.org/mail-archives/twg-tds/' * The level 0 DVI driver standard: `http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/' * `Filenames for TeX fonts', with lists of recommended supplier and typeface names: `http://tug.org/fontname/' * ISO-9660 CD-ROM file system standard: `http://www.iso.ch/cate/cat.html' * `Components of TeX', a paper by Joachim Schrod: `http://www.ctan.org/tex-archive/documentation/components-of-TeX/' * `Managing Multiple TDS trees', an article by Michael Downes: `http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf' * A complete set of Metafont modes: `http://www.ctan.org/tex-archive/fonts/modes/modes.mf' * A large collection of BibTeX databases and styles: `ftp://ftp.math.utah.edu/pub/tex/bib/'  File: tds.info, Node: Contributors, Prev: Related references, Up: Top Appendix E Contributors *********************** The TWG has had no physical meetings; electronic mail was the communication medium. Sebastian Rahtz is the TeX Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor. The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the and mailing lists as the record of contributions.  Tag Table: Node: Top198 Node: Introduction2185 Node: History3846 Node: The role of the TDS4648 Node: Conventions5508 Node: General6429 Node: Subdirectory searching6714 Node: Rooting the tree8968 Node: Local additions10080 Node: Duplicate filenames12293 Node: Top-level directories14054 Node: Macros17062 Node: Extensions20919 Node: Fonts22645 Node: Font bitmaps26786 Node: Valid font bitmaps29674 Node: Non-font Metafont files30882 Node: MetaPost31842 Node: BibTeX33286 Node: Scripts34155 Node: Documentation35872 Node: Summary38145 Node: Documentation tree summary41031 Node: Unspecified pieces43056 Node: Portable filenames44267 Node: Implementation issues46409 Node: Adoption of the TDS47041 Node: More on subdirectory searching49753 Node: Example implementation-specific trees52568 Node: AmiWeb2c 2.053447 Node: Public DECUS TeX54889 Node: Web2c 755752 Node: Is there a better way?56974 Node: Macro structure58480 Node: Font structure59816 Node: Font file type location60369 Node: Mode and resolution location61946 Node: Modeless bitmaps62625 Node: Documentation structure63915 Node: Related references64543 Node: Contributors65959  End Tag Table tex-common-6.04ubuntu1/doc/tds-1.1/tds.pdf0000664000000000000000000057543512607350221015107 0ustar %PDF-1.4 3 0 obj << /Length 2310 /Filter /FlateDecode >> stream xZ[s۸~ϯYa A%Nd3klf>msVUm3"B|/d6P^§(WJd)d':Uy5I3Ȥu=^vfmX4kHT֏&ZT3r4~VբlhGH2J܌& ZU@AW8Tj07[MpI 's 3gGP[Lw$"f ,oS"n4U>2TjtC5ِC2nHTi+MI+MmDѐ[ܒ6-5Yߵ`KM-lUK ȂO"Ҥ,;v:f+h5s쁺HW(@WrZ3ǡkY/T6@1n 8:Y Ʈ@Ufɢ@]yJsW;fBQn89Cu*A<uɇEhCӈ)!b{,б邅J`:k777mPW`[ wjDǕ67nnPrX`#*Ȓ`hezc&CCF4)1.ZAH!z@X%4,~Ux&:`RE-u:L M 0d[I 1ļ ;wIoJ ^@CB)BB.h;BjdSv~I3=W{RGo }„\MA>GsvE1W/ⅉrmZvG5t0Bh0J}1yD22?BbN@'Ve/&yNj6ELrU,KӺUdG, +֓EyG,!I֚IY`P]1kTVPg8{=Q_8Biy$C?v='+\)S-a;vv^óo`ST&9kuXCl;ؙ0KgZL?`laGn7mQ:U '*QR>XOqÇؽ9.1*. X"~pFOLw6bY8;#JцP?}QdsѡK~*Ecͦ.ro*: out|;^z40HEM|^PGThz\^^@WCjendstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 1 0 obj << /Font << /F15 6 0 R /F16 9 0 R /F8 12 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F27 24 0 R /F29 27 0 R /F30 30 0 R /F31 33 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 40 0 obj << /Length 3483 /Filter /FlateDecode >> stream xڥ]}їYE+}M$:[$Gv): XIp8/EXzq]YyH$L ܿy\iO8~TZDEfyUEb~obs-B](͝Qyhy\+A` 26)vL0 Q"+*Nr"@ba|X_$a 'q$yP,q-Cf}&v +ʋH%CF.,Џ< WU-@3=jx ngAe;aªdȞe!v v_1&< ۄUEf g0W 20~l'K[vLp:Xat*8.~ Ep'y#Xe5">f%'UܱX(ㄞ$. PnUS B|l[&Gdž?g#2b,bϰxHEea qnUfN ѼAY#OdkKg=k.rpUh#%ktGnQc(F0_8k\3tX  +͋x*QaVqJSq8o9%ea P=k4E*dZ:fT.sGˋzʃ3nǺkxK$3(!쬁/x 1诺m`bG΢WL@1N1@ɏKDh6a)xTO ʟ1H\rXaswk ɻcIb {3V7FP<|aXߢSDHt(%8 c~'a:wٝ*Pg 2:T"F).PK t->+]FG z\_!Da +.2;RrjBMNA"pSk6`9<7x.[r ~P1QΣϩ)4DOn=a2  CL1?r8'I0`  ]! Gj +}=MRp`_Du! +*z.bQ3kG8\"Jtа.Kxzޞ8hJg9SpyUy|Wjq[ed2; KT G)/. 9.l~,wN&1aQFQݒyScI]SOq`9J](GtPOyQkߋ\z6Ե;r~@*mӒсPÞ_ki^hG>$ή9(sW)WrI:1PZ ]rάGӎ? ;<ŶPoDUjV #WDy|$Ō/7`n=ܻe؁9ɠw߂GbW;͊ +1Ig,;ՠrt8-BljI!\6(xw}m$\4p=Fp0&1j'uѥ%Klp8}58o_]aĆq" .# (`u+#Kbgendstream endobj 39 0 obj << /Type /Page /Contents 40 0 R /Resources 38 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 38 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F14 15 0 R /F27 24 0 R /F25 18 0 R /F30 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 43 0 obj << /Length 3497 /Filter /FlateDecode >> stream xڥZY6~_aI@g@%ёtw~EJܓY,hIk-L>oEc+x%~OXg /H4V5jQ"'>pZwp*Vk-jk_+ Xilɪ[I?؏K <oVdt'%SAWE*]nfjX3@r|1'A5LD |La#rڝz9RKdh p`;c? i,`zĉ4%uz[(S4 oŤ |&I_K^sLX>(ۡnf_huG~e hUO] a [qY;(7kxHɤb"+UN/6O~\h#S1_`aMkך(ѳdsS>ˎ;p#8IʱZBWKyx^$r2zZ2%) 3p{|QV3S)i !Tym&60BZ:/5}1c`'Vkc &NEFbOQ&N*Mb,WcA?|@[Q a_\.`Q/y_O.P'8-0DSZЫ,j4Xv)|kOP Wc)Z@b =(4f5GQ mm SY:=tM#=\7 %{ @po]NPvtd gz*(=r&$?Kj!(,$H(zywQ  mT9}4=E#gA``lb 'V ;]r0v}ɯI9^G!)h1zA8hI)2?-[>ob@i4 {2?P)n}kA(7/P5O>,Z$_A{Hk5(Mv5ř2!y=,hj0مzp*c}tHQNNa >C^n*kavf;~%jKnWڞ-{sN$b}]}A@nxYhZ2d /$p_=;؅o1GN^TGKi4}Rx0q֏}NRH12bQݗ !o"J#q9*nFX.\c56-f0?kِXR`*o] j y2PU/KM>:KUR_G/:;ܡs竒If$җgxr9B +@ԖM<)m5;goU0*%_.໼x% Qe zkRXi O;" (w=ےix)CuM+lsBTy8dFxHR7]4ɉ+s>$"yM׀X@\Rf M;>@/55:*q/}e2|9ZP?^sq2,#tS~ъQMގ| orKNh=&Y7+%{:K·?wBD6K֞cQ$ ?RhO30vWM4q rTB&Na$Jwc߽t^NA"q8Mqg9o<2cmR4y Vj S]N6V8$7rQ8-mx:$/0{E\ (|`Z 0a ^"d=1ypY>^R,Z0AK$I a?_Vd\:,E v"kNR{6t.tu%DP8=p zrujB?-u6])-ڪJ˪q$DkTދ:E1x(OXn@_i5 Yendstream endobj 42 0 obj << /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 41 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F27 24 0 R /F31 33 0 R /F26 21 0 R /F25 18 0 R /F7 36 0 R /F11 46 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj << /Length 3659 /Filter /FlateDecode >> stream xڥZ[~_!\pxMZA$)5E*$e{{n3$Ez0%ggΜwt,6a$J`g3x/o1޻ ʮچ{M${?w)7w2YyϾY9߅:U^߽b WpmVY!v(Q@,Iook{U{N%>$teG l_E&$_㡳V_ $z+ x٠ϼ$1\y)aU-=.`C)O!&xW1ȏTS* PdAQv[<"o/&ľ rX(%aB=`#~& QCk@f?̛7p;Lʎ߽r/Ʋj u4!X}z?"D}' k4Dnl HW=NqYy?4K~*ǿ.cr@J<2 0G~pr//& ˾>t K^iŊ:Uκ7,y˳!,#~۰`5TuG:1/yHB4?_Wo$ß=yW?lt"HÁ9͙#D04$\ŸjiR끿;6xGgf1ZQ2L΄#dΖ0|8~j b9B:̔}P`QeIWU(P,b-Ĩ -bd198˰a>Q4 wB qhSh; aaoZbdd2᠗DO;٨=)_`E`y }#*j] IjyEgI<;݋u5ː( ֢%؃ryN3$$l 3&л f8k?Qq&W )h}}ŰPQ h%O54$K?!Y%S }JZ3mW}jf*G&c$[i^Vd C$`4Un'a6vu8Sd^ڨ=B6r+S2?Dz); Dr@WvfF뒓mW+BTdK]N|NC(KpJ)G;r<h;0~vvMR^ĆSeEN$Ax'u];a{XR~EVF*VM%^00s8Kt'Xyrgh#jMedq0X *%X֡Ԋkoă Т?(1jPϫw5>oIpNt "2J\?{/B^G@Zoˏ%$I$_068XR`,3R^ړA=#'^O*r(sNr8 cJ S=ʪ&WYRmFD:CcH/i*2!, {b$P` jPZ2;5  #ј_b{;H髀JoB(߹uu+]0|ʞsxrnHUSL!g9Yh/819昚r4#tbcrrطS# 2"qBWRi[1H# Qk:\ gRGC 2 #&K6b(o6KRzDi 1ʞƾࡪbMhVA`!ُC` ck`f?8֔›u ԢN H0&0 P ;gԩA >ŐQ16q&_+I<GV+{T'RxA%e@gˊz~[X)SJy,Tk #OnF]GԈ}o3%*ˮ/.+~@ i@d%58(K=2iaµb[8Q]4G&pn-6Lm)u/b X (X]X ^tAa[?5Xv 5 GRzg0xc>kj sVK1:*,zkDMYiibmX Ψ|ōAZpL5d (WXlvXxۭH4Qil}Sp\/Keqc+#R[Om![/G I),Xdl}%)lQP%z o ʼF4 FS%.sS`RQ6(5^RkeLGP~Z)^x+E#j%weyеC)Anur('z6$>bm]Y9G~ S̵7#罻7I| *,#"y&q ił9ꢲunt GWGb ll9 Bx;MeQ8緀7/oW&DT/rPPr^PxWIubEMW22&Xm+^C(%"_04vMcbP2Do|NԶoHVl2nZc9bIҠ[߰}T?¢;xwAatHm; Z@2=Vm"W[vJ)v HKa>0b,Iuz>}WQlxKK9nu0Ko3v[8#8q9~/0w%ZY̦uďΗMY(ךM,^TBh'gV@s(7!撿+naLY.ȲYja3O;K87C 7fC饷@b2uwy*TOYA6ntCiۚ-`p2OP}Ezi%6vBI f+ P^ [Џ㐝*"XSendstream endobj 48 0 obj << /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 47 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R /F14 15 0 R /F25 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 52 0 obj << /Length 3284 /Filter /FlateDecode >> stream xڭZn6}WHsDR%`b@2þd> ."҈"g*Ŗ9{̢#) )ڄk}Kc Mwۛ<㱮Ľ[!oHv䱙,B0/=ӡgsl5qjWS?<$8!IXBOwJq~K(UV+BX?_!@< ;(OF]jp[+2=}\qo߈ZXI89rvGV@Hf3]?icmxcSPilM0R27/ݷ[{MV  ZGOp>6%?xJ.egk^ȑa̭DԸ=N9 t^T*8LO.ӷEKRe5iZF@)Z~'0Na{ #H-4.#OVY,È_X6fL5Y<]#(;2Z"=u}М 33n081V]CHjF:Yb5ޓ1jb 0c^@(bGq8 {,elwV PYi=3pXގTĸݴ ]?'gbs7[YyiLqqꉨd  88;f91{@q&Zu^Oj:T5ghh}sPLTv G~ n?Ae} re  oIkAs7;ȱ= ">Zr\ &<0j82ݴFJ|jHFw(P]ohSSb0*+?mx]*gx8qoMi/ӿ΄|G񡱔\,CeѽDUN\ rI^)}ٟˮ\%$xeEPsA"fOƧK8 ۄ|A.,wu96'M[@ϕŌ9j[% <khB  ՜9B'X򀥾D@F~"6"I"W*x>ԧD\P3cekdyruբr&ެ̀x9am-oo3[RK{ 8ۓU$%^=c+[OBg^wkq? )lm-b(k'PtlɆO",ܕ.,C#*Sg5+S@曼V`{R: ~sE+tjg^4#p82jV _} VE>1 RK|-:`J&tI̱;OG3.'n5<_pp Z:~׌v G nRT W7/^.T:Me䦓Vq,ͦH F:t=<еdMS'޲[cWpc%ƸOצ i=?;+2g+}+Ҡ3:g5H>L%;VFMsY:]"`vj€ZI|f-o[ 6"gEzTǶNNYM Z%cBsV/0xRb (l*YVӴe naeCؐ(hf6` nni99ayeT/ ||s=(:Q"CWsd}'@t  -:/DEfZ/n rǿR+D16]u7|(-d.und0oEyjKEd L;RD3쁈sp?aˆBvfR-'[ݠ<WXN*zoÑSX;՛:i2A% R9"o,H(_~ ?|A` \)p#]Dr]t{De ?TႨ`?aO#^iYH!G?X1"o(VHҠ̫d(#kS+6PJ#ƉDg}cB]MY9u%+|8MA=fDoen+jЧe)6.ݵL0?{ E i)Xsto:#gTV! YyMS$ܾIqmD<֧ۍgendstream endobj 51 0 obj << /Type /Page /Contents 52 0 R /Resources 50 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 50 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F14 15 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 55 0 obj << /Length 3798 /Filter /FlateDecode >> stream x[/g+ԠIm- Pؒ+"%ڵBqZp8 y?ܽ2[*OiaHeY$y\/6-~e]toevUSsVxӋE4aVi,և}CE"el ϑy89)g>3Z ՈȰIiؘ8S.l4eUey ~p˧G}I#I;Q<^BpJ Η}uʋtK|,L$Q9Z!V1|hGf?ݯD/Ub*Ef洿'md5FxZBK~jZ9,6j LKʢ]cێ aX0}f(fNt$MoqrZ6EUtq,n/C#_Ȋߨ"yaM ^229p;%psxz&FF u.Ͳ9aC`1m5vYu$ymioJ <}Tw%nk@oiSOms`%ER>ʖ=/Q 8ۆeI.#GVߓ:,KӐ($ -OGxL*ͳGgViY+C>XLUk'#W+Au)P}A\MR^˥9YOq Х5(69O;"LeTaLt/hr,H /ѬY0 $n7,Gd(C& glݑ*Y׃@T͏dG& TR(8AK|T6\rYX,X.$KےT仸WM>1H88D`4t!f=38=MnGr~NOxiд/C%I޽ZKIT|:*J픵. NhmfG N epwhMƫ[Zj{5(N֫X<:*v}GV?I}+dP~*FI`HmY/}$'r+_u)_mY2+oeJ%|5By!Uwd[W(5G{[r]6` q"m.b@/TF; F]#qU#Ȍ:ua2LT 1C LdC,QlA?fbY|qC0Uj*DƇ/\0iyé΂$M ;B׆9G,O=R+c 7y87Ceg.-\DH0n1z͢1(C)FU?[x4.ژ"p Xլ.-$dl o{O4j<'FrvC@ OhUS3v b_ a 2F<<M!rVZ"ӌ߈G`Ʈgz?U: Th"%ZO)A@`XeB>9[/v"ǦJUԔ_Blc82iRU}I45Y``]p){ѿA poUjCw1$s7a+' G@:wjb64۹"/#=m`n P?n% j|vz=x_xIBTRQsy,Hgh+B9˔۶R@{vϫ8y}O4A75\=gT~ؖvdupx5fAUw< 0Egz:HVa1 QnX@_f0܇nsL8>?QJ沜ՕKclnȲEEIÐ0U3aDf e#Fb(Y\.ltUBKMmr2쨚(Ɓ@lQ#kt*$%!H.FA hࠪ͜ $z|&1=<0H>19-\p 8 Q|&@\ɧKOEj~bYq~˪e4"ti9׋|FcfZ=Hic9tzs9ě%D{ Q'r3oIIJG5*vU_rxͰ@el2,LŹ|vm6@2< 4 @YRFXo0褰1%D8ՙxIԀX] >T*v ۉԥ]8*p ܁ʏMΑ#Aݒ_X:__2B>ZbحOm`LtY`=*$\( kcˏS|&kc'0m\c!NE:b Jg8 ض˶Z!( i0=HM8j#ct> endobj 53 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F29 27 0 R /F26 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 58 0 obj << /Length 3562 /Filter /FlateDecode >> stream xڵZIFrRZ 6 3{0En`~% bW|SDEj6wQMZ$QZݏnwƘ[oa;Tnݍi WQ}{7xM"ط򡏠CZ5B]Os,^<lv("囝RQ˱rVI Po$};DJYJJ79M8Y!kQ)7:R 0T#1}`v;?IMS=~meãP&3+çd|iݵ(J iVTG2fV4& G! gɳ8( -[^ d{@5yBCI/΀eɝ ZrL3|}Sv>D=Ro %S_76Iʜcձ :3i~uʘjnwͷnsOpaE+nӽ%n}_lF%nt[M[F-irGK勽_hˋXtxg/n*Ax0Nԝ1FOv@@ _ǓIk6<''B:$oCvymB ~`b:M.9q 8u'Ix91af&ppՠoIeCnK3^SՍGbL.qA`G[ ?^H\e'vS[vd?8;;p$Kv€+[:P85a|@96$;\ظ?V3o]hRt\(fur&׻ u@2k5G*j#;|?mRYN.ƉӄuS7ڠf6J l![wM2>w #R+ȨTH)gT}TO](Q^1loV8Wt8K߂M ܩY&SDRjuB4xeGՋj]A"@H´Y` N/8.AVq (ܖA \h f@098}K_/+a~(t\ۯ/΁D A?KѩRx +6֑Nk̹o?0?^!BqCb&޸׽nT.-*ҹ}m#qXazY^I5cp$ Fj&wžDWOt g`DCC5Rx,o+6;۵ݙ> endobj 56 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F26 21 0 R /F14 15 0 R /F25 18 0 R /F7 36 0 R /F30 30 0 R >> /ProcSet [ /PDF /Text ] >> endobj 62 0 obj << /Length 3266 /Filter /FlateDecode >> stream xڽَ6}V 9">9H,d^ll8j::cVH- 5bm߫U’H}XEIȢ߼)y-5m^W4__*~Jˇ?~_Տ>Z·xʇ+HnX`a8gI"0fBcz{WW]hN.6g ̆k:_W}?>5{-&qF$Wv:;Fw4+}^d- 78ɞu7}E3SX,`ts{*13Xք:ͤna # i 4j{(;N".1 ^#haT"_1Xy=%"vF Yl]J4v] s hu:/2 XB_: J;T9."hB.R(ÖH8ry a^2va @?vY>G CAenCaÑu4h܆0Ȁ(` X~Y)7FEZ! - 擹6p T vׇ Ԭ XyAQ4|;{v_ZF}V'֛7 K`R@|H/!X;6d\ŚzxnQ+ER=ɑ@5uĞ!8KԘEýҥCx_7D.KD8t5puef<4r^*a(&r?b) ]`p%d ϥ$2z_%BZ"1|C_?Rс_e5y{gآ`>{o#pX\Q%uSn:%BZv9%׵$ M$2$jZa2o*L8MvyǴ;W]f9M^M5xHnO0~pkUKGL2<@(<)UQ+]m!H\dpY\D㔉R5V4էONMO"]Jm tc 5$7 f/DVYbGēBZ3A nRbaE jb>soE i3&F6<#8 Ul~  P*0ÁF(i_7ZAYr^W>:57嶮>-Ģk2SF03 |o#`ħjS`wn_>ҏ0kFO4>%gr0vnGƉ-9[c?׏XH6_<񾇣/8sF ?=/PHY7+鉿]|ǴUk:WU1S\Ab_qYB.)r%q( cEst&?k9#RN<05n}KI䙤 ~ qqQ1ۚB0GS &pt}7$vљ$Xb0|gL0D`Yg؀$ڗ8$9z52oUq! =LAwdQ2玌cr5d[aZWv=fViGC]P2*-1x`@fW bO 4W(ckrbw_L$3%_ޙRM]:71bMzYۄ҉|,Z7mBf;РCAoi8a*/YR(^,*^ P^B{Zw㮬"*XhA᥂Z-yZ|*I-T1+UlGCRm#lgIU_S*Ɩ43q5klXuRrsQցֻݨv/8m=\1Uc,{/OqZLmlK L@dҜя%gaX$< qlHpf.ׂV :I샓->ξ#-B^)ZǕ(&e21Zzzp'K0!q>*cѲR/)ePH==ڑN MRVE;`{AhU[B'+[(A0ؑ,=R<ќ_xo :g](ke䩶W 4uu叵FƿK =f "32z Cd`. ±g3ol!=yubY4\NڢF Y(LЌDꚵ[1,|,'>)]GLnQ`Lm yj]vO]~eܕeu},FS0fW_>LŠK FJ q5֣قqT SC+VZ3tK .kNտsНv̎.Ј[D'&n-ְG $]l+9KRy#!=UZQendstream endobj 61 0 obj << /Type /Page /Contents 62 0 R /Resources 60 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 60 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 65 0 obj << /Length 3511 /Filter /FlateDecode >> stream xn]_1oy;Ov Im gĘ$gWקnCj 꺫}n21l,Rq7w[mwAx&/3wh?}}Fo|ӛ,VIz?뛟nn7 tھYoB0ywk'vh_^!@~D "Ͱ݅A;&'q2 B rxڝsCq%aiP ]~3 (|pQqo{'35}'~?<&2;;;9ÔM](R<9[͘6 8AKK^?Uj,x~4N T8?>"\ BƑ(܂ Èc, !'[!LTG5%,ޏᵤ@DWd,cYm_9![{aWLtd>0]`4HXv \0&1q40 ,A(E*YE@%?6Uk>zRR$1<KQg*eJ'L^Ak GJ"(= -[0`3ZtbM`#˪а[`  \0A@;=pe 2hmCa('=&MbY-USY(a8GT`Ȥfß4dcizPL Yd& bZ&`Ubd &KCzQش:e4CыұͬyGʽR#)YH2Ij׋[}mfR3!T0:AH=ߺgxp+4Ny"2oGiTv⡰ HR̴@ O,r׹&\@P%s1I zTUܚTRw%?PAVRpl,ti$d>0*ӥ#):W"N44Gj db %0A=28@.ED' EͰJ) x>RFHtS%Õ'xY?mfgchD_$1ei]ܖPJzkJ*(-ixdI)>G8u03D2/6* MVTT,%(SsM}0k$(|JlެWy%a !H0}VN /_|.DvK|Opzs6`x%}, i%~\yE!ca!ae{ * mǟqvycs>~ ,TE,xZap+ޜsJMJM67"r1,%8I[tBݍk Hs5wBeEr=Z~:1ÒwfL :f^uCRtPt11sGO/2=Yo3FřOzS)#wLB3!N68*v*u#!AŦ9sU~4@̯y~UgNu&vq=I%EndT,P%G Igur%E*; A\Y⤖87ufPY\A؛h^~T/JV;Iˍժ$pJ&q!Bo|5g~-S^*{Yf2{5Yj&cی߱MW8b_ V#wA1e]J6# iendstream endobj 64 0 obj << /Type /Page /Contents 65 0 R /Resources 63 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 63 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F27 24 0 R /F25 18 0 R /F26 21 0 R /F7 36 0 R /F30 30 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 68 0 obj << /Length 3566 /Filter /FlateDecode >> stream xڭZYo~ׯ #`zzUITXOűDIDonowo?]x]\Wz$q^WW]ɮWxeO$TWUky/n5vѾX6V?>lkq}~*mqo8@+0&*|z9*biQvgqi K e7MkqsW'I)p{m:*@~$}W$ŞgOkYNy͵-3.'˳؛BzpvZ$s)T@XMEB'e {3 &Mư=(>.d.R^ U4(n-Î#sEq1apNeA-*Φ\3KN{p6AD߰cC x a!".}VJSkFAiQ@~=e`Wf\NVS򨞨HA"{BW bt9<]קd[i+[ .w†p/'&cYȭCs-{yGtbUа2ɼw'.Nr;a? o߹9 jhE+j"{=@%K8|4Ld\_& 7tt7[$ &Ѥ[ bWT snf_@*/H#eV2DIPSs4JA jUKGz?S@#()b#rq;ޥ9(i5hvT24pgqPiB\JCK"tӴw'Ƃ{^2;&4`dz|NPi{1iF)9Mo܆4(z@ E&Eg$8Y'R.8 ]x%)R_mN\n$FR΅sG *|ȋ%K62']}#F80Pk!Ј{'^ȧX@w=Eb"m ^GߝKѰ꾗bg@5I| ZzN?ȡZ!·bs)$괒 G2j*ݱ Uا%1fisWׅtP a4I8B2d\},B;=sۆ7U*E -=$sUXVc-|n$h,d_45A a!$g/wQs5xK(j>j,!jEԘehrRjnR'~a9ZW"F80%8'sB5FA\TQq*PobK.ΈMpv#m3Xp;>R50q@8Y$]ӿ1/7~gӷC,*6g'}͐!씔.0K3&\'6;ͱ%,MiۻZ4DsxL&t yA_`ڳ o&M/$FFdPY1S$nQ&"JXts|-;C3I@_  z@D'mϮ+Ώ3`Fӗ}`.?W[*<(2rC5x "+(q<,a]\sI2ܧE ?L}hwUwxc7)!ńg S.*Dnx;Ff;AuyпeIƅ/3raNt Z(;]=iQ?򜝦u2NAS6H{K t B`ٯUв0EGzh^= ?b$5_H`HI?4=떔 g{ ^*%0"b 0\#Ay-W˔ ·QbP=5Wt#G'Q+Z~>рs |}W;S53gfrHW E,i$܈vr'?*犠4Jg̐Ae"يB\tPPW+ipل}O2bt\qֱs7x9Rx3Ou{iT2< V Vp7KIYllϹ xaQL ?Ǻ c gذ$?w<`nJik |,\'%[㙙M~TCJ_`L8N篆A>+X[vХK30wK='#^EmEh>s7+ Q^ 'b~9]o ~)P{1\yͩ7 ]]vjMQXY¤NSAƮq$F0E4Mo8@7_XfoP6w?C鋒$TrWZG;@L׋6z&A[OT4#Vendstream endobj 67 0 obj << /Type /Page /Contents 68 0 R /Resources 66 0 R /MediaBox [0 0 612 792] /Parent 59 0 R >> endobj 66 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R /F27 24 0 R /F26 21 0 R /F11 46 0 R /F30 30 0 R /F29 27 0 R /F35 71 0 R /F36 74 0 R >> /ProcSet [ /PDF /Text ] >> endobj 77 0 obj << /Length 3046 /Filter /FlateDecode >> stream xZmܶ~bU di"))b4) ۢ|jFBRIw>ZJ|p83{y]En~Xdsv$IVeQU{)7o&r[fKvshn~xs7?"ɳwH{vǪ:lm@NKNbF^v xHkO8e`ˎ]C:}gٸ7m[:9-U>[p{^aq‰T3[%jy|~iv9rR@u;iҬiMDZi TJ xʞc-x *0kTYKɼaɿ^ԈȺ4߱L("ȽhwE_.\+;C2Q?Ǣ;xt.RG*,+~ vf8+%+vTʯz,Z1{^bҋv2F$//},geI @"5CK]^}G(&ڣVu;%Ax,];C@v#Ê%.~|*KpBYFKLD1@6xSc k`#^еיE{ŚgO&+nEtL+:&rNtj.P#7T$Nkݖnq+wT,!?`OeRFT.zGwX _ gTJ6VoHm3,6T xlŜBQJͬAKeE*q S/,UWqw }*#J2u-,▣CLXBI{CZL0!J҂soOiW^cqAs єg w((2`ؕ%iNGA򔯗貋Eν+w`O\/q;Ɩ%I km6f+՘xI^dil5KB(C,eYD_ ^>6Iu9ʘ O+K}(AQ*PΗ>dRnB{3dZUI(w9WG[Q) #c=Kը(2'bHdg y d0n`#n b=ͥ^}8M^QB |:+yo|‡֙K+YH\Wv%'R.2K LX/QPJRűZ{N6FW Y])< & &UHP,wۧnRZϖO' -HߞM hcAc$XAߌ߂淚.Rd EU,$Y"'0l{4R@_zeX. $|D ѻq.豜dK8|:`nrݐ0):~hn;*dqŠ' !^G^'' !Kơ̒n*p)mpF\"Nl5sDW{µV*`k&O-"7=M@p텫J3-W50J0e?&5&ơ#0CWV6އ+S=vʵ|\0;GwtKӽZk;'|#gn C`ѭ8z4.N2Sl'A{|^#|1ZM%ԓDF8mdpkW82YT\Ыs-O[|<ʛ82;/P4f?! gMǽjTibnxIY_ ^Gkar!i4=3Bۏv#Q<\ REH]oYF0,,^,`sQN 4+񤂼^IqKa w^WwT O"FL$]Km> endobj 75 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R /F26 21 0 R /F29 27 0 R /F37 80 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 83 0 obj << /Length 3394 /Filter /FlateDecode >> stream xڵZ[F~_`MSTEis&[ԭd$ntOOs *i)ps]a~gQhmJ$Lsz<|shU͉Tֿ>|ÍZEO4lUE<~jwB Nb8: wbuxc6 c >˅ igNф;Ȣs}Q{޾U~էNVU}VKo}XC Y۷B jsJ=JF9?<,z}tYޏ]%gFo:BFZgNR )/4O(f~BRa}_,e13 8Ł&$-%c zn!9x`b#, >M@ #^ynl ;p'wpE+O(7[:XmÏh54obwLsAyWR3mU4"46]Bs=mnΣ܉1bx+*~`08F?,ۀmC0ɋ ϯWr@5JѦM8&2;eHht(I=D"eݓG46?MK ֲE>\塔΄4'AFBF~׭@{E(%J-L]Qo!cM W#Zf`Zި4 NB\ ȼuSǦ}]@)8~'2 pFaIlSZzT,;ԧW|~NU[P֠m%Q#\#q . bҲ txTcϤKwAX5Ax'b˻ZZ?:+JbțɃT!Ǥ y$Ba~JƟ|(Ԗz&,Nq'ukO$+9nC.u4b!(Nmg⛑ d;LH`:نbqYHWMH-po];5 #!HX]5?&I>#{ޞ~fDo2U̳`fs5 qC[\G~Kf|!'Z>yZ f2v KBr%z eTAw }5DԖD3I*[w^é3PΡXPoiV~uIbF?s0iI,y"&;-b =Vx Y&=J疘M!]p~e^/yȠX˝fѦC"WaI&^0zrj;݀%K$pY*Yτ Sim $wiXs3J=zuz]FGr%@E#_t]w+x¢\ݎ:?,ε6}hݱhP, G,-Z8}K>7fM.N_J8 C' ]̺.~Ť|jw;go~ԒŠScbh 6ϒB_si?j\nv?LLھ^D`U@++J|7Y:z ybH#j KͨqF|ݒnьrKK*XqPvlp TOLs&<{©4L5 6,ϐ!x}k\?DnP#V? a`Bv 5rR^tetv]j%o;:iSY Ƣw[^dsl_%l}L*'r3o;w,'b{6 #c'Ucw Y=ڐ4s\LH;jv3@leb]sn/J1 ㇥$MBg2C OLu,P]N/93=Oe\?[Ynfl{3x T. 6J<&A5.˄#^mCSȄ@F`1FC> endobj 81 0 obj << /Font << /F8 12 0 R /F27 24 0 R /F26 21 0 R /F14 15 0 R /F25 18 0 R /F29 27 0 R /F36 74 0 R >> /ProcSet [ /PDF /Text ] >> endobj 86 0 obj << /Length 2289 /Filter /FlateDecode >> stream xZK6Wh1#R)bO ɢ}X ,赖z&﷊YڙYƲIUUW~׊(5c*"Bf. ͧ-7ٹ@ ~~ѵDO :-W]K>*^PӘa~]l7X Ԛrr"#IXiv<VXw|-l39sC Y(uϾV5|A< wJ"m 9~MJ-H!E&F.RKw@Fc>]~j"3^XJЃiHBDAheygZ%6En$7F1"Qn f뿍yX>[ PCz,$!clIVܫjuL$&XБ6KXp -XAQ9@CHGQP!:EѢ 8NR&,$ǚyhcȋ5(lfuד)L I,6VL?&tfrC>UvxO$Ҟ ^b')m$6#=zj UK=>K}zS$yEmݳZ;$-k+:/2>0a8zNrPc%pу.z-I3 G9 5U  cfDcܧ9aҖM-{gť藱Eۃk !xKE_c֍C}W'^@  * NP9q9zB#|D8a|"_/2N@^1F^ X1TG w_ו&7g"R%&0k%Ξ[et 7J KSd 1Elir dnPT*J[82IBq퓉~/Dbœq7rϑt):C$-8K9&:mfUU >Su B}hBG>iG3a|Y:C]ty~t9}SKt"+K֓e2;0"hyq[jplD 8p)5><`m6($9J( R@ˆ%"Z\NZӢcnɉO:ɪ 6< :TVޒ-c`[7?ӌ!# n]USݟFVMI_"02&F+FfR 0RS4c'CȎYK ybzWX3GkM~vǣ͏rC;,̀⨎]zJ|';pXd.ҴNoS+86t(~)Uo0mw笸$Y0>]ttPٽ> endobj 84 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F7 36 0 R /F14 15 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 90 0 obj << /Length 1997 /Filter /FlateDecode >> stream xڵYIDW Rc0h8 !4qĴ`;t7jqؙiR*{fZj#,RliI"Mݧ`ϫ5%q-rp[!Z-_`\ϋzZkGl=fzI)RȞ H,@UjMzfQ\fv+$κ&쪵JIP 5(\YH$P,^T]x>k!" 'ReRR &Ffuv9j2VW7y2 V;+u, AH+K^]NFVki9ݼP`YwN`/ыfM qLxv]2뜋 $ ϐgEO_z_ۗJ;&_y-ݶkb֢gc]{P"s@g< ,8{rprr/(RmOw4"LXN ry{V[ A 鞴@Kh2{hcuNssuw P-}rq&jnDhA qLymmpuH.6Ćc'ep!cѾ:8_0 ='L2+gL#*ʅcʡf\$.f=Ɩ- a{8lR+b뷬i_į|kX^ Uk:(XXOOގIdcxKPש2kb,4DXwm 6%SrƩ`)2ڤ'zX[%#MBо P)$|$f]YS""%AZ7ϧ >XgDT5>T^BcmSY>uHf !x[~h8Wv&v |\[d#ɑf Eh/!&@c1eT݈>8tƵ d& P[,;h(TGweަ փN1( l[HE$=?dj+CK.=紒YNq)n̥3n0nIrb1qIq'3'iS `]A(7 ^#f]~[$a6(mMmv+9V}1$ξLFt٩n/*1a_"%.#L=&IȯĖb?پ{hLc]"fwNo3e^ `fi4PcF!bdl-YǏޢ 353”]!,endstream endobj 89 0 obj << /Type /Page /Contents 90 0 R /Resources 88 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 88 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F7 36 0 R /F25 18 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 93 0 obj << /Length 3387 /Filter /FlateDecode >> stream xڭZێF}IX-v'{m &v6yaTHc#?u&)0`}:Uu8/ooU6 W+**J^o_ބatmuUpV^^U&*bU$ϫVU*PVvutPտZYl3Y%ؕT%xdc*tMwF?:* 8IǪĮ] f2VU%0*! Tf0| c]4^(h.:=m ?*<{f) Co{!S \m*쐕n+ZH7p^*;,K?l< eѱ2&Z$M$x#.CEggrBAw8v*@ ˪[^Ǡ(h4qwW%{RK|;Llvx=6Sr044||Vlpډe8䔁Dv#LЖlTT`L%a↠P&yQ|'ɯC[ <>s-`$ ai/h@ɶk~0kZyͨ8Ipc,![ͺƘC, GcdEpH^<EasqBfhe wδ QM\y/uTYp*OЃA&dS &H SJ$N k3rby~^)sG&d9$Bd>CfWf1F+yrj ="% tϣwqe{y GN)vSɲ Gadh7ΐμa#ܔ~*',c -q_ɸa/ D yK7ű -S(TsOy:u6# S~6]8Nw7\gg؍ R]g*%uƶ wsW$s1A$khL%$Gx= .MˍN esHʱhSFO54(W: l=% DGT084>qND+Y(t P,o<˩+%z6çٞI<ѻV8V,ɽN{G/X뱢jy؍͔6,řuⳄ Lx=7YP-M/Y]<;4a' IVYj w?-f &`iӝu9tsH3 4Hن |:Td_`"@_QJDrd"reaT$BI䫩ȈF7ka|$^T:^–uzS gDaZ)YQ p_$Qsc oIKffu3$yF{A9-,?eE>BdG8Z"GT䅄/I>"ްxoʘ# W\qwpq;s~@~D/ڳ_X(ST,r?M⢆_M%g\,' "k v& :I>A{? zd:),~N8z*.{JMēM2W8 }!XIzs/$VA;hr2\}aj }l  M Ƣ787ZMiEt 4 .TKxT9nVu̅:R$ d5TJa}jO|+Xs5իkREhKryFzCd|ir.9P}>r|RMR_Jy/~z¯MNR&pQviFO ͗P`ڿ8&XI?e&\wd),6<# Ab@O*I"G/*/A|H%dƼIhm`, YjA ʍs -[;wxkba:}d.,\YKl?\k.耞=P GI8e4'C{ԓvy(c/ nR/4baQKvGHvpy,1zg>B?Q(",*I>n6QAϗL*WloM7ml{m߼{^1.Ac!m1CyF3gdFyyEy}bS뙨eW |3[zK†#E vy{cCD_ ,w#.g_/^+4?4igsFt,]N_8RJr1tH4$|=2h 5El^ &_YIɶiJ +t|G*̨N O9 "0UZg9uQ0kuUܸix{cWޮ!FdCW\ }e74NS .7T^'#/J vrٮԃNXj\L5.@Gzvce?;%~s+`K-U$v4AD2eQ/4*CZendstream endobj 92 0 obj << /Type /Page /Contents 93 0 R /Resources 91 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 91 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F7 36 0 R >> /ProcSet [ /PDF /Text ] >> endobj 96 0 obj << /Length 3427 /Filter /FlateDecode >> stream xڭZ[6~_QRR`>L)FnZHVE#SQOC&VbH64vٖYTGEmwi65KGhTni)a;&1M®^σL^Ȃ}u]ܡ9AG1$+_,M ;g_17݄BPt(?&:~UlLD[6FsyX|FȽ"62:8c[@Bœ7EIJE!! tIl[Ʀ,^_Kr(\(1ӥLjNY&%ЙlLP;TLIE\eS_E͒>xr3[2k0q>FXzq4!F/q\3wT> GQd墫{}J8bʋ|#%1%Mב5(dt"}ԯZ;˻P$]XK\2œ3~!YAw54}K!`?#HЃڑhH23wf[zR&][WP F9SVhj$ztYZu%Rxܑ]L="@]KWR] &)[<h9 amϳ>{Ԏ;duju2cɡV(xa` |R UTEPPi9L0(ԢYm0b" ^'hdWx',e8H8IN<~n=}\9!t6w#(=XlsB ȞNps6dNV(6V~'W2!ǽۀfwoD<>Z^s*Xg4oX|ۂEdkxL ܈mԐ9AYJZdBrZv%K^tTQŵ 1xH<+ZA5ba'Ie E扇,ǺqYY =o3UӇh KR"IKB]~2톺p׃yR⃖6!Po¦Ll9(LǏ e'B(g?B%L(S~ \8I$k!D,둀$l59sfLBGdv |;jU32.3LX*G\MJltI%xb!1coP (ؐrTx,q|} xUD~}&.ZrAU*T?ԫh% hR<$OҚd}D^qe19?ZYzA%%$E%/HV$ǛCERbE's( IHL\|[2{MJ +aCCQ/yq1 w%짙F5y1# /)iIGNh_} 9禒^"R` g׌rI˹G _㗙o~j#5Vb.SS\zDBcp.>ɬeP_JBM.#ka0H'*~ R& P[:"qW/o>>@/nT|)PPZ{onb9HtL"TjUOl|{;zJ?Fp7p6Fbmj=*NWk̈*Uf!F(gعZyן>YA "kҊeYP`YHB}#R7LF 0C\ QL X,\WB: 4߉YuiZIn>LJ ufΌaE#}7-21oh-,%"mЃD? )gTC.]nwh{M buDJ˥ u)MDsuyHd$L$v\S+  RUޣ2_yhTIQA8r7CU\EK#7]6_(ٮ[3B>fF":D?`ѡI(R=s KȮ`N+xؕGřu:(>(,ngjY8/S` ^%c%g7{d 2>%XZ˔(scߛ8T)׾n12Ũ3kfirp'":5|@k_ֽ>թc @ T*N(H鳇}k?ƽfyI//W $%mv Q/I\F j^Z`R{_VU*}$'e>Lb_k^O qG6\iYвt ^qbSxx߈N?ta`<6YˍzH\Y{VvY mcp6H7 A hH{$ffk\θ1!4᎛ qݚm^'Ǻ"1XR";ҧ +) >܂2Ƙ$d[Nͅ2 ]\x?͊{p7XTH,u^Y!/bV+K }Wd []ù@!:ɄQendstream endobj 95 0 obj << /Type /Page /Contents 96 0 R /Resources 94 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 94 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F26 21 0 R /F30 30 0 R /F14 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 99 0 obj << /Length 3618 /Filter /FlateDecode >> stream xڵZ۶~%2> )~dI3-N8Hl_ )יtnb|~u|Q"5"""-zqmyevUS o/^]]EzQ*U⏋~hEL/>B;R( se߻.sd8.Z"Ieb$s.XYee f͚qu׫KhoYopI]ZVMO-.H%?kwڎBKwҕ:g9*]ƉU Cnx: Iw /va!h5fH+*F[7=7dawǃQ[YZ@'-79"IPۉoy@ 3 ð{3*kf}{}$YQX vB2 hqdW ,)9:# l?u(tb˒~zSoX'f#]@)EJ6QI )Dӥb`2tLXŎ,'x#;M-QI빅QYp67 _YQGz<%'ӕ-?G'` $鉶B| ԑGޣhHև{i(2m }iqd7bÆ)%l~ElP!W~u:scJx A/1;6SFGJoW:~ Z?ع̞?p sO 1J1}i "J U_p'8l= 9XLsӺ=;;J `ڒa O*jN~!dANzp =Fc8C{hLG9'y&D(' ~8_0(͠H^i N X9JU@X;z.Qk;~K Yj4ֻPx=DG - ̍  5Î6V:JP9cJ l);0 zq8mj=7!cFg#iz-MöY5@ZQ,~#ю9&X9M04-]W1lSjZyA*a] s"t>ډy @< @g׳#ފ0,%@}a'tmFzXBZ2Pd َPlغ?58qVI@[!wC"Tq~U6"^榮_-zقkHs1y s ȤP^n2Gz-;0yT"u)āv AmjQlw͑);|]q Ĺnˈ[@WZRRnwD~e0ߗ Nrl,7ǢmY[ n=&/C'Ɲ;ya =~TlxqX(A SFơҞ@pR*NfOx_7,K \Rܜщ (Ҕ*lqȫ"3w>4ZƤ ~.bE0!ZY1pu0,:z=Kd ?? }w;skP=hi96<^m@ vW7J\DA!F+ @O' F}ȁ5l g.W&*1.$ΚNAo ~x^2/mp߸rǿPo *{0 rg$w/\s>c rB NFl\OsT lJa RAZv6Z3TJJWtےҎ -#ۃ`"CeG)5YMz7Itʳiަ#XD:*~ڲӨiUw=FsKș)5%;GS^z·B44;7R6t(5pŐKtuCCI@dK*tч.Ϝ+xk״][||&7֣S`GR jD>v_Ipf!hW FHbQaFB,^vdJIJ ۩:}@ggEܤ68QiF6rQrҌW~O_q]UJ`c TxZBTr)9+yK#x O ŏI飐k)s#6H]x1S1dNjr_ݻ|U`/V ݳy1\Q%ݞ) /Y@{EբK `vߖ|o*2`-V`lC%p: T-aN/xyl(5Ϟit햎 S!q@FfT9TEZzLE u.AzBӿSÏJʷ>}Nas6VF.L04D#B.JL(ws&Jەc OR$ ߖ E x)ÿƁp'vM3}N5XXX+r-߻ɏ+p[tw/a%1ubz>:zΦVkO)U?E)Hdù69,Gy&aHU}dX"7eB5v.aqiùm-q{T_ Y 7h|> endobj 97 0 obj << /Font << /F8 12 0 R /F29 27 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F27 24 0 R >> /ProcSet [ /PDF /Text ] >> endobj 102 0 obj << /Length 2971 /Filter /FlateDecode >> stream xڵYK6ϯm5U WN;ou6[g]@2 Iyf!3=l x}wuCIDaGc&޽pSJm^mx@ yOWoƃ$Ky&o_y%g%5nv2 _$Hz=L'!&翲@&쫂K/LdoWGǮHdžY0}y`wKm :嶻dͬ+s'eZQ" qyv|Eǐd&:Pަ8!G2I}Z~M/_e*mrsҠDM'.ٱG@KN#|а2=U9,DTM$g t']I9Ɉ!3G֖޼ IĿ=(+r%2)+V Z)QZRVPlp/+ \6Ʃ[+ ϣkvkHC`L Xw&1)WYfP?CĈK' ClFOK)+ά,\IUY΄#+* @i*4ݗMZR;;y̖xdm货PֵVy`HI8=MGBCW dli'P<ԇ%!u/fMކnN1(l;[&1V#5 }DE+f b ~N@v5y?ix`e=򕚚D|g"uiMjuJ߄$Ǘ{)PE2\N:64kz!j 0ҫj)Iq:+,D-EJ(O,MK6]Ԭ&}Ru_D_% O\1} !~OZ׍I2u cI@+nr @0-MTvUȞNB1.ir!>O&=X!>o^N+(xy

wZp~=_eάtk܃VA~~ȆO0~)u{ L ȯ%hɜe dܳk'+!3o7/1b3N^4c$bzxLkƝPR02fu#ty^$\ܤOKzL=Ithޘ?Id1s%ӜKkv}篕n1wKA]^ʵ'w O' 4JSo{୶=維u+a\+cġUcBBf/m.ܚ=!AYo/sYJ JT!J`)41Ѷ硟TK;e$n#i;GxK 6j͖ 0R>:kO4Ȝ?s^ѕI;ΝݵM(*LtdԱsc'8,`:߹kHL`hf0ף^K@~a]p^ʥ q27!Mͥn4pJc[P_G+Oۢ4qD掏æ2& *HWߙ#Ŋ: Ȧm _{eendstream endobj 101 0 obj << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [0 0 612 792] /Parent 87 0 R >> endobj 100 0 obj << /Font << /F8 12 0 R /F30 30 0 R /F27 24 0 R /F14 15 0 R /F25 18 0 R /F26 21 0 R /F38 105 0 R >> /ProcSet [ /PDF /Text ] >> endobj 108 0 obj << /Length 3265 /Filter /FlateDecode >> stream xZKoWT*pHoE*n-b ,hS$KRy͈4kB<Μ9oQ|6?jY7ȒNyh*'wQo+fK! 4}hTe[S xNhiʻ nVs*'p/Z2٢VUot& 6$N4EušA<P<–NV&d˼4q "܂(E7Z_X݂߆*2bynUGda@KOEbH$oAh"pڦNTkYaN"Q< *$@Q0U4TNt?>(gmB$JVOEp}0 ah?>>>c}QMwmE8zwe(yPv98Z1 3X-4_,]ߑn@JCMM*: SFk"t齯twN󈨋qc+//iu@$CB>dtjI2 & L}.s~? uKOԞCS:g15".ld3e&%DZD|),OJ^ܒ2P 8v{Ǜ*{[/~:<cIj} qc>v>*PѼO6U+_ªu)\lBTI 3hj uuzU̻fy)5-0~HLe+X^Ӥ) u ģ @p>,|=?`=V:z-~wq24ɔRbO\ЪuDv[ :yQ+kL%ecD/Dlt9ǎ1\D\GI7Ō$\:HH:"){a !Z $EUi@+4'S6yZ22-VIw[_|>6e*0@ MW+(Y4)<PcIE#x5+q˃?h{9QIa0JZQ.]6qy wC邎xM ?l 7@ 5$W5{8H (Sf4$!|p WcZ_/(IҞAXK<|3tE|6-}̀W}#mObPO4f*8٫kB 4)S2+XZ< v?/c9rw@R{,VqVݰ@=?E%U5G\?s J h8oRkՃ1odSS'O@9K}4SpDkza澛\Fendstream endobj 107 0 obj << /Type /Page /Contents 108 0 R /Resources 106 0 R /MediaBox [0 0 612 792] /Parent 109 0 R >> endobj 106 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F27 24 0 R /F26 21 0 R /F29 27 0 R >> /ProcSet [ /PDF /Text ] >> endobj 112 0 obj << /Length 3019 /Filter /FlateDecode >> stream xZێ}#Xf7/ɓx88DI)R&)Sn#z5 X}:u8=>yo U1Yl©Л߾$~ٚ91.{`A^𺟹-x\(5Eљ.0l"/B~g~:Oj=0 M D}ؐ]練v f{Zҍ6­1G :pzC\q*!y}{YٜEϒR7"r~,l/͇q0 a/0b9\mxo=Z!~DK*-,TҶLHS0!gݲl(xًs#43cE7՛xU 䱊]hYp ÔzZ< &Ӝ/ o#8کwTa| 3碐`LZ a;F{B 1B5u8eePā=SG<੩yPcI()`Jc ki3&^(#Oȉ*J1Ѿ/)xIas>"(qqC@&g)p=o OhMjRX(rY_)= ,LCg)@(/-qwsr a}ޑi(9hBҝu$J-DO[^DHe;ߧ}[r8i/}rtOJÇi,} 'BHx¬?s$ɽ-Wyzo `|`3a'IV ũl t(x-)y% ƾޏ3yGe}ާ#/vYN3eB/D[k} O$ZFw,;k^px&Q n(hx19x'^(c*= E\` wK%Z% tFlzIZ$K@JK3;ytQGZX5#?M)iD$_d= 8}T. ^V3RJx[!~Ya:ޙ9Ko=*,@BnrkP=T9M}>_qgœ9b4,؂Ux> endobj 110 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F29 27 0 R /F26 21 0 R /F30 30 0 R /F27 24 0 R /F25 18 0 R /F31 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 115 0 obj << /Length 3061 /Filter /FlateDecode >> stream xڭZے}߯#X%1~%+Sk+q, (Z}6pKv*%f1ӧn.[*OaePeY%y\o?7QkeW;_NBWy,Jdks˯j Ug'xUsgul]}k#m&}qn8U&ioQkD0]o`.{ zC54ťܨ \mLL&?,aU" i $z^aʣD _p 6P[Jmp3tUON|KWK m,J55*dͦbt,bb88u碑C B;+)a 'vk'5櫍lcy.b zpP8C9lyC~4VF;F9عmgOW{w2V`:N2Girn0Mho\QجG);=Ut -3E%w -/Mӂ֚6{ĵ Y%E'Eщ:s ,(hCāyϤbhЮ@pTP\oϕj_Lt=)TR6H}-PYxT A eWGE?`^k5#Zem;A)@ `0?D_:k!L ah/g>%*6GÛF{>藼:RijdKo6Xy4RNotz7-U:lH#q&lؘ7a㈍C$B#Jq&?3*ag0 k'"NZ$n\ɶH!Cc͎Ps^ ae'FEeqWd*.,os҄j|83\eVni0rkN^%ԨgAKvC䇪]WC+ -(B gnA8@p2/OkE OY61^b+_N"l9)rsm&QVt)~Asf[Vh66R*984sS|y ~ͥfBF`6"8(l oFZKU~ژ5H[[IK'R}{\*oי[ec6Le0*G3q@ 栀oqOP"u= aW$8+Sl߂n#/D5nr"%za9QtO*A;8'i2 9p89—߾6Eup[kLwBWXV>6c }P2*J -k`D$Cj0qa42΍d4Aơ?I]._kJ=QG!}e~„*z3 >襂 15tEuI->K$2Z(8 I }QmwVQYh7 񡽐 O"{{&X_ٰwXh$qg'6GtWX'h;P~ )GH:UwZ9S֩eAۡĚ!vܾaXe|ImØ;xl QlPsj_?.ְ݁p2O*VcE'7#kEVB@! snIQ= N0 xݕ\Gԫ|ua)'C82PW P  #en߀.n4~SEU[8#Ër(c_T{/ RItVc\e"S\m4Nfߍ*&YpR~IMqKļ%wt' > endobj 113 0 obj << /Font << /F8 12 0 R /F30 30 0 R /F26 21 0 R /F27 24 0 R /F31 33 0 R /F29 27 0 R /F14 15 0 R /F25 18 0 R >> /ProcSet [ /PDF /Text ] >> endobj 118 0 obj << /Length 1202 /Filter /FlateDecode >> stream xڭV[6~_#H`c0/IΉꤗCJiYl& G}Vb/|͘r=^A,g9"%YAo0IkrQs7v|)bQȈS8O3v>z{w1I;8&(aiNxB{{a,@C)?{L㔈zY*KR_1Xҋ))8G9C7 4/=B{dv MoN498$FC Q% *r :DwIbtkoH 0Ƃ!ڸd8da쥉3m_Lpt1]05ھL*`c&lM}08ʁ,Oܙa B n曼1t:JѐikYk=Oah$L[/աdV~@H!8B$p?]$K[64z) 2Bu~Nb-܃GҦqjSȯ6\Q$Xy6y'nɢeK^㲏t-wȡPKrh$𗒸pq(73%m K]Wq 0 {lg$rblpy ]ᰌpʷedjckXJ 4hƁP ?=!tӸBp}mq y@AT0'Ջt}gChjt0 l+aEoSg{h䎡 jQfZ5dt0=egb0 ̹?LjX#ಟ[z- 'J,IgV M ~krDd4]P֪-g4Iإo'W0L[jl7vu3^T2Zmd\CãM=4z1VR|uV\Cb`4ά/rw':̯7v|֕sN릆4߶3r4uVt0 Vg;kvfSx)~mrUkހ^^.zz7$W\,B,}'^VRM5uCaݙVZs0]hDendstream endobj 117 0 obj << /Type /Page /Contents 118 0 R /Resources 116 0 R /MediaBox [0 0 612 792] /Parent 109 0 R >> endobj 116 0 obj << /Font << /F8 12 0 R /F14 15 0 R /F25 18 0 R /F27 24 0 R /F31 33 0 R /F7 36 0 R /F29 27 0 R /F26 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 119 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/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/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/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/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 104 0 obj << /Length1 814 /Length2 1482 /Length3 532 /Length 2071 /Filter /FlateDecode >> stream x{<GK.Q۱=&M5Ca""c1ph D33"@C@$Q)譀 `?0پTDAfCAr E8f@pQ^(?},[a01@7CLp"sPɁ8—D~NSY }Td9gemPd#YϿnm25vY$dJ8X9@&.G/|,_A @0?USi[]UfJqqUtrS0Vzk1-6$4s{xqLxt삸ng ޯj5(/M?XԖ}ՀR.ꎏN)S70FuqƱáDGĪz4\:ݯ]qIfCamp}a;wd[,[i}ɦv\}0 ]0\˿%[=jnQ,yf<"5tshڨnj TqtB`.`d`{>K̼[7*Qj:S SENyy1VvNaǷxܦ:d #Ëg[^Υj$m@t;b~a5 =ײo&3uު"N?@7RbK2Í&n.ygur6q4́7#)Q59,mԢX6`!;5"g=ShٻdTqڪ@Aۤ Q9(<H1ma!F.(Qm|OjӫKRnױܶu\) ݖXfEBV(s~(SPᵠՖKoNW:,TH<2ԉt候-]Uo74en9+̃p@W$ .P,99@SUF?>1Gaj7:[.Nyj  >TBNT6$;cp.jAv3V=xW4'$:zFܪjޡ=',dWOhWGSI_ z+4&Q:EUC<̶,-ߜ"ӵ%xs}AǨֹ_VIʈnEac)**5%G}0aXu~EccUcSSM:Y[5B(ǰ>ĕ94'/n%('ʌuS%ZDNMX_$Gjcy vu[tBUSo׋=+!5]씴[>` KHoD/~P ղ'5c2,ohK.~0qp[37` I, 1G6hٜ2/H蜰hhez w+An=堰x&`3ex_ßϘ,ԟ48|QM}&Wg82h𣏕SV[{˟ٷ)wұԢ)(y7q=J'E4|@ʋd8=qV{0ȉX*-t]Td^C f,s[=dImJ@DJA]w+FvTh_Ôof8[MF,02\*W[- <>ѿNPjendstream endobj 105 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 67 /LastChar 85 /Widths 120 0 R /BaseFont /DGQRJK+CMSS9 /FontDescriptor 103 0 R >> endobj 103 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /DGQRJK+CMSS9 /ItalicAngle 0 /StemV 83 /XHeight 444 /FontBBox [-63 -250 1027 760] /Flags 4 /CharSet (/C/D/E/S/U) /FontFile 104 0 R >> endobj 120 0 obj [657 743 617 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 707 ] endobj 79 0 obj << /Length1 772 /Length2 1128 /Length3 532 /Length 1693 /Filter /FlateDecode >> stream xRkTSW%U " DTJ b$'q/`bAQ." ?BB!F 9OP`D8l A$23 bRgMܻV$Ԕ)`OP%8 ҙ85 RN~ S}4Je WmD*u!8 K ͦn3ըfw}ID=0L UZ( DIq,"J5CL2۴G$:t/A12TyT:,GM/j֬M <S/B\g@-Z0Ij 2IRO]'Si4<=q9>0 @_oeXkY3Gkbz(-Z(Ů{9ITpRz-R2hʯ<(-1YsJYUb-ӏݝIUn%z뎳WjIsi7(Wu}'CοҠ:2y{y|O2,m_gecg8s̹?6&9tUӑ'&6GZIxC~8%%vl C,enE'̭iy -X]r\W:Ƶs~t7^^\:۲\HŵQzieMzvvw9wr VP˶Js,'DM(noJ /-c#GSVfnqqooLt9om19i[jm\{Tq*6&-2;q\a#5 gXɦBW [ZK#_XShuG3ĥ=LP02*Am s V9fngnkI^RkQn3Bw0c2pxGiYb#{kvQ&rK땟Jrو\s{hݚA<\VoNnCY+ۃKy޺nIT#x;{18Qv#|r;- nd7+Lږ=wv7 KFӫB6j!_ в!c}a3AM%)xdE˳F+_T΋f" EĊ)>~Tkay}ݡɎB^.(-pOo{9[Ya;Svt{qӖ^et޳W-1 !/i~s=ɮŠ,VenK^t@髑z0FPQbeB|r-B xZD3I~ݶ|K]!H\ iendstream endobj 80 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 66 /LastChar 73 /Widths 121 0 R /BaseFont /XFXOKO+CMSS8 /FontDescriptor 78 0 R >> endobj 78 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /XFXOKO+CMSS8 /ItalicAngle 0 /StemV 87 /XHeight 444 /FontBBox [-65 -250 1062 761] /Flags 4 /CharSet (/B/I) /FontFile 79 0 R >> endobj 121 0 obj [708 0 0 0 0 0 0 295 ] endobj 122 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/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/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/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/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 73 0 obj << /Length1 881 /Length2 2417 /Length3 532 /Length 3036 /Filter /FlateDecode >> stream xy<Ǔ BɒGc1 aDc8BTb0˜2ʾD*YB҄"$KTLM)89ZNu;޿~y<_-W#kӘF(8 p8@$0t b9 f(3nŚCt=8A`8 2@*A$PW: 25R CAFHCP(D&2_ПL X̷0=2B}I H( vхgB' S?7eQ(/oL N f1AD' Rw;'DfQ3 2њO9ԖI.d&1#PBqFلpr_- p<|׬ Lc WF 1lDB4"D CGHh i$ leFg KT?:efH%Ldn  Px_@ kC>;a1Z#H QG#@{D _DҘ_op+ُ,!A"D-bkʢE}ajKcWO?XϨ j$3zX:N+c;2 3kfooKhn}PXx+LX#BtgX C<ƅx;fnC'>%JϼYAРi|'с>I"al=tꓘz̥Kn.9F9{C;Wض݇!7=5*D:lmYᮄ$݈5tlrIMC6]ϤSu*֣ nZԒQNWpiG"ReqؖVDP E)D(˼hOn݁yvmhJ9U&f{XnqjOΔ+Gd ^W87{Sbvb{ N.Fin} D==r#P Rq30>Ի/׬׶"Qr( PQs eYn{dL.'}uR+.n@Ǎ:κSpJ!9Ō#7'C]ϘiL|rDϕ{1)y&Q됭@ލ`d`_ Eaf'NKKV]d kXnqRƹ0b^'-Yeh:IJc|d(O"&SXY XOȝ^zՠ^^Հdv"zD lnZh)[ 'vJ7+.WG7$S5ݭzVhajERK _Xr';TrS:w GT* R?¹pe܆6fǒ20iLqKՕ.d7CRҘ=V e3KE*wKnDji3%,\ ̰#y3"\VU}>m_io3#VWt)qEf㬨FMyvYcH"oQx nhS {˝o;w|Ev/d?,ս#d/bh+wcsuVK_YaX\l;\)#Smַz7~YU{7WFE=sgIƘ?zɚi5,NTkR"\PG|L#8ٸc->.:U~5['=)^|'*)6"iEC874]Rt(飓cҞro{Q%W(Rc_ 0zCv>A|4lrUyfwGͫ͊8#K Wя5MQ st"E i~RN1!I~r /r)~TJsC]PykK>Xx4vG̅U 9~YS%wgs&U eŘŗ}:+8̪ZG96/Թ*r}3he.a`tu/6Js`8şu<+g>DŽ7q8UqR75&ek߿x>%+M6mĕWܔM0/4z9kTƇ^BecjOmήRlr+5 :vQNtMU )e)42Ӌb>~3[|hE'ACƴz"·*-=+ z^ʊ M )A*998r?s-VS ҚqtE9TN`%Djhl6Zg;,򹓄E>dIz$x.'l,n߂':yԳk#kuɾ$G<)l;b\0p>##C55XkR? >ݽ~`˟tN2݊)Yй7["GkRPbr+]Jz hl0o|q uf+Z 7W$[Vh͈^!{x03Å+N'JϷQ~/ApZ(){C\g%ʮytM^5:!vMtnX؜]JW˔z5@$Q/椊j6 I,+R,&vb4pRɌ%FjoG ') S ?#Bendstream endobj 74 0 obj << /Type /Font /Subtype /Type1 /Encoding 122 0 R /FirstChar 80 /LastChar 116 /Widths 123 0 R /BaseFont /CWZIGY+CMCSC10 /FontDescriptor 72 0 R >> endobj 72 0 obj << /Ascent 514 /CapHeight 683 /Descent 0 /FontName /CWZIGY+CMCSC10 /ItalicAngle 0 /StemV 72 /XHeight 431 /FontBBox [14 -250 1077 750] /Flags 4 /CharSet (/P/S/c/i/o/p/r/s/t) /FontFile 73 0 R >> endobj 123 0 obj [742 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 591 0 0 0 0 0 302 0 0 0 0 0 636 558 0 602 458 591 ] endobj 70 0 obj << /Length1 830 /Length2 2089 /Length3 532 /Length 2706 /Filter /FlateDecode >> stream xRk8G7g"[1.풻Q1#w1f^yyg\&$(ZR*[BV KB{b=i}so9[kZՉT4,uXٚ[ah4BAd bY 5Mixd_E֗ Tx490ovjPw_03yoձ6bAl J$( |%2@@j_hD:a0A8j=InCe04:?sYd:BdA@f1Mh ՎƢ|t&~Aa:ALڗBxL@.'[ 7 wټ!7w"TW1Qi _ aFCZ@d`(O8Jx!@@+`ėmik(7 D:he(lDxrډ`9@[Y0-pC G}hz 9ƲOͯۅ䩚ji~ڶ=cAQhKֆ{TCH6z눚\5kB [Ɲ+*g7zwIV/I'/MIk%x$].-Cj 㞘7 PN}k@N((7v[îbC T TVlӨ]|h( 4Dj@>r3JF+^&ǔ/Fj׽Mأ 6YǮik5ؒ+{ڮ߉豯>po7KEoU 9!_u !$Fg }il 3]N[Om|TLo]sǔvTέ, $loCrbiz֯˿\<2}gBa\Z\<7/1KM"jM)73VA@j.$'깥pNFRE];a{|RF󻭹f]Kf]x#ЮFvބ2Žvlٌ|)"3{6֛U ֆ]Rjѥ>I1,${&`ikŠbG]uZPG5 KlS?]t~Ulrv4kI{6!IJ_9ekmP<ɿCs)w4>k&|mx=sV~6 :sw6ę8<|Y t /u(6kTLZP6@{?MoJ"8 cゔ~5=yM\TET-%%FG*"qMVƞm84㌧ImŜ[n^1h6t,á=3ΗBS>aQ`u FQUI53{|6vʹ1kv:YH_~M8i; M >/ᖉx2NH) {9'rᩝ{/q,STje& BճS5vMH6eؤH\6镙K$"oяbO\ƽ5K @?8~cXHc?:Ե&3WU9h@kZ#qO O :MNlVQxI1tAc݉5`4, Ku"c  ~`ENVժgtꂁ,?y]oܷQ#85HzS\+Py^hmWUn<79U1׸o=ު1Vf6)ی\B2gƅrUfsv9d!ﶁ'=]Ə边[B:* |}y05ޒ8pA40#/ 'P fAd3endstream endobj 71 0 obj << /Type /Font /Subtype /Type1 /Encoding 124 0 R /FirstChar 65 /LastChar 84 /Widths 125 0 R /BaseFont /NSIWCC+LOGOSL10 /FontDescriptor 69 0 R >> endobj 69 0 obj << /Ascent 0 /CapHeight 0 /Descent 0 /FontName /NSIWCC+LOGOSL10 /ItalicAngle -12 /StemV 66 /XHeight 0 /FontBBox [80 -11 867 611] /Flags 4 /CharSet (/A/E/F/M/N/O/T) /FontFile 70 0 R >> endobj 125 0 obj [667 0 0 0 622 622 0 0 0 0 0 0 800 667 667 0 0 0 0 578 ] endobj 124 0 obj << /Type /Encoding /Differences [ 0 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/A/.notdef/.notdef/.notdef/E/F/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/M/N/O/.notdef/.notdef/.notdef/.notdef/T/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 126 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/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/flat/natural/sharp/slurbelow/slurabove/lscript/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/dotlessi/dotlessj/weierstrass/vector/tie/psi/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 45 0 obj << /Length1 795 /Length2 1199 /Length3 532 /Length 1785 /Filter /FlateDecode >> stream xRkXSWEֆ%C!G I @! /%&7p%7s@xPc A c-By)**8RPd s|=k:k W8(;ҩt6t 4B !؀b@0͍tf3HS08.~v $7+0X$D_C2H(*JAD%BX$t E8iA5,Vߤ ,lu2!R" $$QDh_Z\J?]^()2P\CbCS#VgP |8).TkNJH,qQ<b%:N[A\ï%BRb$ V(FDb9,jP11LB">1`D )$;Q'™t A1\]$OPc'91.T~ PљL1iI G( ?`ݜݙ:T0uߊ0M, !H Hۨ#{ѺݕWgw9WA}a|;- Z>m?;$0XiTN{zɚv' C=޶x{{φ;ݵԲ&h1s{eFBfbAy}?t#Zj:̢ 'L~ZI[Q=׿UR2E%r^Ӫ`WC=lu;֠Uz7Ep'-+O*,,@m[[e^}CjGy9 1?ZTVzK#܋lu,Tc)bo.{ ane>AaOˎ|p^s8:@NJP˭Emئ;U\(7gpJmꗣ̬LV{7z( ^Qzߜf̜^sZpr5L8@}fr«MvZuGaiGNW*RɫdD/Ik"95 {vUqCYu,njmC0dzZhd;#:ec︬l;m8;ȲggOnT;pe' k-g>jO#, SѤ9Kf(ʔ"6 ՚k&戦AS4SP9W+4&oJNN}Feru4럍| >*4/L^\Q6Sײ|"=f{u[}9g^[{ln{g53`6E؇,K!_SUh)iVd }nse} <ԞYӦk{;?c|Gz{`=J lsSm5xr@>]``ݽ;$eWZ*]c5*f}jrϬ`feC牙eWGNi g#Nj1cJ.Oja%m&̐o-{svfWyު™oz3I}7]Q=#a %i> endobj 44 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /UZPLIK+CMMI10 /ItalicAngle -14 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/epsilon/period) /FontFile 45 0 R >> endobj 127 0 obj [466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 ] endobj 35 0 obj << /Length1 783 /Length2 1384 /Length3 532 /Length 1961 /Filter /FlateDecode >> stream xRiXSWarRvHI,KB#EY {Cd)HQ-F!lBiDDPA 8 ;П3s~ygd҉A , V{Ç8##>b0dT$x@ 8#pD$.Q'.ćY xX$ĕs@e&8gF @Xm#6€0(FpzH8 P>ާT,ďL"MD6pD YA .=C?(' >!>4(b,90 @caBcH @+qa!mEu{o@|EIkW0_X x+< /OZʆ8"|."0†$뵶BPL~[|gIr#"ο# `\A|3*pX3 !n.ʢGhʨH%Ygq!OMiC8ݣUhHI|sw/c2%:Eil$oLLi+G=AWO2q}ƶɔ@F /H6>j'+l3G +%Ee*]40,И;TVyΕⴭ,t1qYTW'V\-'TQ]Ίm׾V؍9m-`T^&!+9uᮚˉGl9-}-iCI-?}e-fJ|I0ΤP OJ9&vLg«tɎ5$烑Eډp!#O?NwVyN$~;M̹pm#v|mߕ77xo'v_~qxb~ HU¢<:K~i/$[HQf>^Rj=,*#[ڊ7^.JbRU{ɮVǔNS E[u_鶣'h3gt) 3/$(#ݷof%E?Xn98 K gIFصVܡU*}B'(:ևU)Wd {/өLtDhFE޾Ix:ggU7TX*qrYL͌88u*u߅hg?n-VYWsҋr=E[eA a`rǮC6nFqͽnffscǪgL*S;Áa˪'f~EW;[J2jE/A,^D&s|.&mW.US ڢj̿zRaä|ikО:8t`(!Q׵w~@gwhqtf͸(eq_cuj Ԍ iV7VͳMN|[FUͯ_m+ޣβ|󌩒1u¦hr[9ʒ9Wi{O1JoF^2: <:X0Ѭe 5]˫_Vc M.c4ŏgm=!3ژ-$qڝip3>mL@ϮfZT8 ULT;}JWԪs瀑P; "t?9vUOc v VX֨w+VTV0i^T+asVƵF hzt٠`Tf~Pj]6HEv7fR O]<,QFG5r hE:3:gP=nkr. 'Xc(Wsendstream endobj 36 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 65 /LastChar 73 /Widths 128 0 R /BaseFont /XRVBKY+CMR7 /FontDescriptor 34 0 R >> endobj 34 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /XRVBKY+CMR7 /ItalicAngle 0 /StemV 79 /XHeight 431 /FontBBox [-27 -250 1122 750] /Flags 4 /CharSet (/A/B/I) /FontFile 35 0 R >> endobj 128 0 obj [843 799 0 0 0 0 0 0 413 ] endobj 32 0 obj << /Length1 847 /Length2 2260 /Length3 532 /Length 2885 /Filter /FlateDecode >> stream xy<MrIEfLvB4h̛1BPS qKl!rmYZn,)Kr:9>ˣ䢋'ɖ C;G+G$@ @@͘d"2̉l2= F5T %DHH4_6pL1l@IAGqL0{v Mt.@"SpM%\&jD_G +d|+G70Iz?dz ˆ߻=1F' 6N3t2.,idPt|?Dfi Ȣ}(D ~ҹ|0,`ʝQ{2S~2s~+fii`$ 0$r5 E4a9XX6\. v@Я[pWwp-!AF "#.? ]{t"lWѿFoD6 x! )4~Pp'H0Hd|L2 'ShՓd_hswi+|uM^wˠP˕6J(5 1բۖ=<MGtxZ¡(˯ڵÇ SMcfl3={SkJ޲tgXvgWj66&rMl%f6!7WĞOdbh=uk sI59Hkc*FmߣS;K@J' }%ɏ,w6wỞ}]x k3[r bMoQ>"JӺaxn+ E?s)KFfq^]V}K GJf!A2cBڢp J#U8O^y0rW*f/g{K4` se [:b伜b>{ʑz5,o uӎZ۩?*czemtې`[99:mXռ(qcY6PpnrkD֡sRCo_D%lWj˖ҒCBNQU** LJMטcD얏1/yXM6cZkZudpact%fPRS _HH`c_$8ϩe063ts$G^[^sgf Y/k:yƓN\ΜYќVE%R\57&J|`fؓAl+ ¢u~@>{!0 fTBksEbNqINw%8l715%DmҨϳNݥdq֝{ -!ܑ *G5bxŕucw5#'k?d7+$.j\h=Q/w1͆-D{@^4gZr?i0 Q&j^ &LײKB>Ž f7\`jXcnT2zi]hM ?mRu59/**cd, h-N߼P+Y1yW~"P)`͍J~}Ae=0%06>c᧥GIBϹͤ(JK9h_/ :/N^/VJk5WWS6ۣXqkJ2RѼj|a5F>L5 pͶwn e"l6٣׵T4VrY&_I*ƫh6(_^kbjXdL]ϙ,(2KJֶky*a(igB_yV]ӉJ˛j4,Ku,n^1klzEcJF<ظ07\]y[VU*v,ӱ{`,ξK9&fG Q0,n'Avy2қ4Rr|d1|HjSc> endobj 31 0 obj << /Ascent 0 /CapHeight 0 /Descent 0 /FontName /VFCKOP+LOGO10 /ItalicAngle 0 /StemV 66 /XHeight 0 /FontBBox [0 -11 722 611] /Flags 4 /CharSet (/A/E/F/M/N/O/P/S/T) /FontFile 32 0 R >> endobj 130 0 obj [667 0 0 0 622 622 0 0 0 0 0 0 800 667 667 622 0 0 622 578 ] endobj 129 0 obj << /Type /Encoding /Differences [ 0 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/A/.notdef/.notdef/.notdef/E/F/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/M/N/O/P/.notdef/.notdef/S/T/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 29 0 obj << /Length1 1522 /Length2 6412 /Length3 532 /Length 7301 /Filter /FlateDecode >> stream xWXjҤ#zW Bҫ4қ "u;g/w&yg3oyfh"A9@QH/ HgbH99UPT{A ))@ c"""sp(ApG0ras8#'PB ƿWxP7"H  pG/G+B:2C0vyCўXQnHV"D P'R> [ U!1>w`78?#Pn/(@C%N c#JH  B ^'0SvpI()4Ñ^~;4`%$($bebjHG 1qb  X@A$  M{CA/ܝ+87$ CѨ+BBf1!/²3G( ['v3V'eb GYql 2b)]+fP"l[WIov~E~4[V늰9&I:+vm|Eu&W􊰪ͮa+_V߄e@a}Wo aA@lO?Xu VABnW=@-@l!{@ @l?+B 2~{Q 0(Ka'!&ƙ!س=BBB"Y1h4{}Np3BIgQ2\Қ˃ԊF+yqa dgq%tumz So՝-p S,rlr_ĆcГH\B=a1UGyhļUJA.-|s Iq~OxjΑk Rs oһ%׎O$|LҘը6T-~"J/.ąYLcZ3pW*dPd~QG(xiv&Fz0S)tJ:n=o0QpVk #?:gyd/3+f괨OҌ}<ƾ/Q0U,Qx7c6Zװ%?J75Io}$戡m+ڶ꛷},1lHi<]5zET]*_] ~H?AoAnF<@zK؟2U v{}DThaY΄v }o,7:?;I€-T(lN)Ol1ŸC(MdB%8ZBRMlif9=-mj;nQw#ɈS<,vOo褀0gi1]­ /ɞԪ=#rF zgc!޺(TA~!@{rAJӫv ʎ#Y1Tdn)It:~fM:S^tH xrS8kƁ'祽AU9dފc֢Qx+ ?{^qXS\اԜ7J'8Ɔ`qIi 3է̹J+}0/v6|m7ꌒL7xXDbH qN19x .HwF[U9mcƿ+_%y#.b9.ga~`W O#t7S $HQ;txJBS\}.BxK5*ՄǠw-^*9"'6RmKyũ|l^ɹliIאHdEu/'_ )vΓʦ-t 2Mh;NN)PV iIXἿk6I]t}GsTMc8O7prow`QGqZ 쇒_Zc9v:+bۮ5 " 5>~v[D:yŋv$U1i͍.Uo]0bY>3_nv`iMXT}Ni!t"A ջ3Iyش>%й1#Lk [uˏ@ݗ3,D܏i(Xc.y{{ nK2Qܸbw-sCj v7RX$>ׯy} 4U /uG컎t3'Ա=_y&㽗>ignu8werGo'FUZ#U;QH|K$ynmj/nf0.e{yLQcX_,މ!֎"} KޛRnnK=w̺z%Lp0"=C{#fƢ{5 `rXBtthTXmY'Mv`Z0t$`* {TpC89/(TNHƟy29.Ƒ;*TsCvs9q]?Ҹ 2F-m#N_]A<ɜrmӫwX1Ê숚H[,z"yw:u=lg$Yͳ)q.SW#g=87 N)jYK9*e:Hf!~ . %n?L>yh<ߴ_ep:\Z"+p{y#BQh-ado86oCz7lF阡7A31fsf馦lo;y/SZ:γЦ#-ƘOENV'hrW#/1{/i3㭈=cݰ>pUC7Ć вE&W#NQI)^q-Mn Ŕ^0pI?y@jbq &@ CtNVPwpZ>WDNr8ۓ5Aq -lſ|}5 DahOoDjCg D*h4-Ci`Α(a-;{{9JP>7-a ~^\0YYaJH01x̔$RE*Q^Cz~<EŚS v\6Dm 1YM"c{/qt'mO[ "O|^Yռ-VOkZ%sƢ}8)۴\pMOt\J"яߴɯɻ ͠q5׍?|KW'P3Y{Iq[?ƪSsBG}{RV7|ѕ^T7?C kvr`QbA+(a XȬʸB+1u#s8GOm嬤ִ,=PpMJ"-oy,U.AUPa'AwKD̻ԫ asmeGt Ư~w4w o]L^xL3sV ?Fzr yU,rX~GAj1e4>@ Cc}m it-?]dgkKL SG}}Lil@U9:C)Kn>,FWE1(YLoOD~陋=C. N^2ȮBWpj[.q;*B4G;ϰ;'9ef)~/_{B9*ƓR/5*~~k"@=GM#ՙ$C8'a-I?썏b-y0!_?|UUrʟq? \EZS}*~Ĝucckqh)f'CQpcdUBdB~^ KÆ}τr Pu^v[x-B*_BR۽Ma lOڸwjt- H$`$ը}(|1/ͽ6q,'Q9 y2ូ"]=[z,GT~XV*2bHa fLM޲zJt[2Tb %_l-,yD2+IC}ֵYTx:$RuiSCgQ:X '^ShIB:Dŕ` T 46AYDN)[!T>Y$2v:6,]"?ְy̧h*zvj`0KrlRN˦N. f/?Uwq[]"iQELRT9w3p73rǥHLJiˎ^dVH= eW䄆V&:|KDFeܽltiiRSIcY?~t2wNAR@díK-Ff4QYlMee 7hVʫ%x}~վ/^f0f VW`d*bUY& 'VbM(7?FEvܵ>uVr7lX,2ERJ٦\(Pnwִv ]5xsq|KZnC JQAҫ/g15#r&:K*'/B 9>8w zϱg-5H:ɔ໮m$}Y[97M&לF}vM# rSL[j:6p1mEW+U~i5[#VBa5[ komDhJnɷ|9 5AwZf1fU5JYƿcS nJˉ,f4O: ZԪW,N $}ʴnjuGȨWxIN՘gJkP0i)}7lړYžr"O:0SYto$>Z1@-oSM%SJfK}M̬6}Nr((>TT˴Lg +=bF߅:%!@A[=:,UL@ ޮ`P{V2u%^wTԨ'Hvem1AvqOCVoq5Nz_^bO")ʨ~ѓEG燸Щw0%7悽):Wy$<"qޏg׷%K٠D ^q"Kp2 IP ˬh&M酧dOo9waq3~WjKLkx`BL׺j8n)p( C:1y{y*[[&̋vU$_ Jp" Y( Nk\V<;oHR7kVy[PQƬd̶=O2֖u6o tmW6Fky|i{\^BjEP.ASߺS̡>KΑSAU~iЬtkNAʬЩQS8^31 V@wͼeZ.EWi5y?45h'&NO(=+ 쇠qlf52eyS.7#vi'wCSsZzJiU]M8wl-(HFtGO c!*3h!j2HJ ՆJ2deTb VU Ũ+ԩ]EΥ|N{bp}DTZ݌|E)"?FZJשX+ҝ䢤- ?kmS﮽u4|L>0x'gF0x{:ۭ<,s&1 .ɧ=jNjkbbjq^v5[Wsw4-n4Sӗ z h.e/\Ǎ%BQRC0NձN`~mycz=KUf"?Qҡ|Ŏ 31YEpX!Ji)Tlް .wͥ!WW+bͣM5."evнI#zBC8J@d`gqwHJ*)K"Ŧ/6w+)l3,e5Jٜ>|V>b}LWFyY2 Gq35lh29sBi-i$uRX4zlAbDr2NdL "Z2Sx=HM1Q NH9H^(70ڕ?endstream endobj 30 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 12 /LastChar 121 /Widths 131 0 R /BaseFont /KRSBEA+CMSS10 /FontDescriptor 28 0 R >> endobj 28 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /KRSBEA+CMSS10 /ItalicAngle 0 /StemV 78 /XHeight 444 /FontBBox [-61 -250 999 759] /Flags 4 /CharSet (/fi/hyphen/period/zero/one/two/three/four/five/six/seven/nine/question/A/B/C/D/E/F/G/I/M/P/R/S/T/U/V/W/X/a/b/c/d/e/f/h/i/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 29 0 R >> endobj 131 0 obj [536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 278 0 500 500 500 500 500 500 500 500 0 500 0 0 0 0 0 472 0 667 667 639 722 597 569 667 0 278 0 0 0 875 0 0 639 0 646 556 681 687 667 944 667 0 0 0 0 0 0 0 0 481 517 444 517 444 306 0 517 239 0 0 239 794 517 500 517 0 342 383 361 517 461 683 461 461 ] endobj 26 0 obj << /Length1 1517 /Length2 6350 /Length3 532 /Length 7231 /Filter /FlateDecode >> stream xe\]FTrADaFK$iDi{s>_uipK[ 0(O 13f *gDE.~ OX c=kMw0@ XAjf=@f#d"?C-`(H p3<@ Z`wc^( | H[V߱P@khޅ}YޅD0(oxn;C Go .Gߌt vÈ'.L#W;ޑW-Mi_֕iBzwS#$Tм#dM;BԹ# t߳;B_!ٟD[~@!?"e@!u R"u@}@ y?iDpCu"mxÕ{q X‚">5]gYo; .)liӖ55svMvGpK?ZIN|lUs:+׭&/%HHɏifTKݚWJHJU?ϩrē.E\&uE_x,IP!0vEUiywMAǤ9H{Gm͎VݑQ>`o/zO!n1Kn (g 6MXqXu\Q Cr2 ቀ!F|*83mXgP1zrB+(:yL08|JM {omnTyC*CyN%s&:U1Y TIF||",/6ZcB\*G%fL0*-]G.#S+UZSj]w\0y~V_6&4P0>2rH$lĈ{b/ʵUqd9 ~K5h96l-6Ve C#Z 7/k.]ҕ [\V!#darqRYռcy.ΒRGýV,3 '-Qs*=;PȠV؉cSr\^"\2~ zE-:R҇OB/6^%tBQ_0N^AZ> ak[A0nGo%w2j>hfnzyK&qeL7wZ8LcrP4&뚯с8 oQ"'罪{=JM"  րKofW%e4ы%KCX:(_/xiU<'!ilk1}2hWXG44:bql VK/@r+:aRefUۯi6  'Ixzx/ +B?/|s{D޲sT[5&%x_`MWcJD[b8") h{%6%$$k1[M[{$u% gm+u#T?Wc (T t !"sE!vV`>Zi |Zܳ +sMNFaqN!l]igU^g|&IU"ܬ<xbN/.UbT$?c't.9eM+{8N2#=iܳ3攖Sj4ixCd:GEFݢhA/,Mع'YK${HwDY̵LM9h̗b^PRRG;~ٗ#.el{f8򆵱OJ  >(~# fHVH\b,kM3E)F t;ʪx*f+0_Ɏʘ[ugIie T5;";Nm>On2oVqZءLd)aiJ<)\covm nU1M1}*hˁYyFUbcmǵ あdhn:UntEi]ts8՞n%գ#ɹc(Y1kkIan)4oB{X^ঢp4p6FX7Wf˳04zHa-!mp244D/ݠo沿9l<|cqV EHj:͈׸wO:+S $y-ʁ&I^np,Zy|NkT)O隉Į{ժwD 8C7HqNjyoȁ0Kբ4,C^:\WSkUu|%zjIA3z%\1{i)|T1Q'q>*ypܳ\= 9cz@_֚@xI?mDqTU0ղT= W"xqd{l}ۡ7er2T_Ѳ>N U7]s7h*x 4g"Ҿ;,خϦyE:'Z m< 𛂰OYS+&ᾗŕyֵr%M/YԎ UH3RW2ŕ5Tv d}:'We`h2NdŐ )+D\H)˺٥Io ʊIw7I6VMEp|ӱeh?moBWٿ{n(&7e+.Ʉq UuN_U*[Sw8$B7Yd5:P3ўҪ[/xq XbsPH2ݖH'V={^b_ȉ[7]VK>Ց}c7?`e4c(_z\H~ n^\YaJDӭwLot5>={ 5dtvE 4=خ:AX "or# h(*R+_k0xynW^͕=aE,I ?5wPr=!|?TUX 4H8X.>0DuYݔYyߒ!؋)6hDM4uonG:TuhU/`, 7!ܺ]M<10mAgө\V+W$o#0(yÉ-oj\HjXد IA.I:3 ӞZEOmzB{Pޕچ! E}ɍ|Yx0#uժ`N_%+:'FPHgf[Ef CFQcnŬI+O)-9=I١kU?3[( ѡՆAJM sQ:֋[ ZQ211_9?$s Sѧ~0IctBg(&p^RmYWkĮ`ZەxHsf^ aݎJNrh@'(eCuj뤞(RiԉGm~|2cfeC؀305b N_Y2fI StI/`>g"@sW2aliZ̬y6#J,Sи_Hxl/#@,Clp5lhAqshe[e+M/#V/ )b+Sֻ>6L5&\'s:>1HW0pfb@i=]晵x@_A4 8klwK:i{ڃᴞkkS |rK V(6k I|l4RT; }uc+Cx/~{ϙmXγ[',TN΂ |\“*l`}o~/ ²):Bt=bwRc2v܆v3d6c 4@pT:9,`K`raR6.R ޾<8,9&*\AT$=0}.U7n'ؼSw/9j 9"YS>.7D1dn lro#'QgtY(J,@t В?/= 9_~endstream endobj 27 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 12 /LastChar 121 /Widths 132 0 R /BaseFont /MTPEYT+CMSS12 /FontDescriptor 25 0 R >> endobj 25 0 obj << /Ascent 694 /CapHeight 694 /Descent -194 /FontName /MTPEYT+CMSS12 /ItalicAngle 0 /StemV 76 /XHeight 444 /FontBBox [-62 -251 978 758] /Flags 4 /CharSet (/fi/hyphen/period/one/two/three/four/five/six/seven/question/A/B/C/D/E/F/G/H/I/L/M/N/P/R/S/T/U/X/a/b/c/d/e/f/g/h/i/l/m/n/o/p/r/s/t/u/v/w/x/y) /FontFile 26 0 R >> endobj 132 0 obj [523 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 326 272 0 0 490 490 490 490 490 490 490 0 0 0 0 0 0 0 462 0 647 650 626 704 583 556 653 686 266 0 0 529 850 686 0 623 0 630 544 668 667 0 0 647 0 0 0 0 0 0 0 0 469 502 435 502 435 299 490 502 230 0 0 230 774 502 490 502 0 333 375 354 502 448 666 448 448 ] endobj 133 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/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/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/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/braceleft/bar/braceright/asciitilde/dieresis/visiblespace/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 23 0 obj << /Length1 1826 /Length2 11421 /Length3 532 /Length 12463 /Filter /FlateDecode >> stream xUX\Ͷ %kC% Npw nAs[u. obzb5 % 'Y_3 .!.@\!b Dol"8(7<ܐZbRGAjH!H?I.otAAzA+ SCzJRO VCz\? tM|z3h_| ფvl`9@?ېRAdobcX_6 !V!d!D//8)bb,! BB_bBB_+ϿbBY'.a0spA&d/i6n@YI ttׯ o@'\ 69_pZܪ%Aw %d)˘3zcE&63KTysB랻^wU׮}1zG xYnC*P}}Y<:ҙa4jek)IkBm#[V.AnXyɯP9K-l"2y $b P _zXͲ2t/LoyA=o!O+"Lh"THU=jTİs ce/OR>2/mM*?Bքi&0.rM*JOMWn]/NqWDߘpN viwzi'>ߑ٢WO-)?DaNOq`@U9 -fGbR0ؾ|jq ICU"qk@8f.~w:aymC=-хQ)_{m}p+,r~OŠpcne@V6TEytqo%5mlGLӰƨqJ\3Q\.r8f}sr…ڻM(2vʕY4܇vVR/>柝_\,RI2$t%/~P#OALO)Fym+_<溇]ݾPh@ج+)jcOs81h0:S$~]jT2Eי#d"JҤv'akHݭR{6ROMjdw^=I TP`:>Z.Uet)8 IEeV$PҴ,}ԎBwY+S$Db[Qk3A`kB3;n;Ee1vɬǪﵕLU8LU;Obt;bܩt/Z_ k@e@k{_Kʚt.lB-T18!jO=Pd\)U9;0}OJ8D=1"e;GtSń=4%ӓ*Ђ8cˆȮEvJ#24Eu bhbyԄ$uvAԙ/Wcp:ճV :RXWG S7x*L5ˆfNeMbݹ*fjpGTxzو8zapn>CϿeWĮ9*,efxJBa,ID5y>ܦT^&H5HW=bwVM7RO\`5^ⶨ'M3S+X@i:5Ih28Kc- 23QR:P3Nbb`YNXCX O@hQ=vY =w"ΜFA?sl.gz4XT#0?%b?YM6ʪfWQFp#먇t< /M8=4yR[b Qw=vv#Ѥ&vjx4>լ,yhGl(El4s.'X0Ɣ~]oCp.(x]ڌ˵A7Uo{ Hֺ gB㾒U(GLT"MPt°wIqTemIgT0.*)2ٙ%ŷ6b[g7tK?7Vw(4NZW>Dʉ\}AiOj.,$fY0%']74uz,h4l,uCQO[=ϴ ljdמv$!cahce /K;{V.F#`7/N6+zoL|D •ӎEMU"YW ]{حi/swLy;dM?H..@RúXW[Uܧm>7 Q!R'}w ay+uR#>+Ȳg:PbkPe|ɊTH_`R *|=oQn"@c-t@\+V7S=(}`=GXE`z(u۫UґYҥ/B5=t?`h8+iy ĝz(^{viyKƦw cxјȍN1-( Q ?XISe Ɩh- ozkj"'p,qc?xn<GX]we W=ėԢzD}48t  pW̑~\ (M=Z,Ρy/=X2`ѥ !C5?x{K6?O1dOdw%8O?dH~;X@YQ[6x)M=Y(4C&zHQdyzW*5.wbٚIa8fk, Wdp ^!/ 7e{aɷЀze.hpwPۘBmy?gٜKӎ%@ͺڐi7,Iğ P7^6%%?I Hrm.iIMv6R"*ހo#Ek5Z[(o+7V,he'ˑH&A>œ 'En=V<exfݭ\ܤxM}~k*#Nq8Dz *BE.>Duh\4t^Q09d1@+>)|V+wӺЇDeozs'ޞa#Cꊿa!2}^j]xE^]_5V7tbQStMQ4( _n  wmTw² {JM5q0n Ue%6EgNIJzD@\3;Xg׫r48ٞXncwS!ɒ<<ڌisfM NM5؛M[wrPהd/#2o1Q.VjㆇyaH0_u17wau\))5%Z?쓘h%FP=sm&sf_V$N_̄@?lPq)='mSclp!ӺRjnD++-h " Ue /!-mࣜ863W8 ?̀"QT߳/xG\Jew\WVSŦ~AJd8Yŕ|m*$+7#L@q{ yZ:@˫<tGǾH0Pnva4n520ӂyBDlršyQr^[(y(2@>UnOkj5c'\Ĕ}Cъ'DoB96RX?]e+}u{ݍ{Sөss5<}>i eBy`ةPFoM8*D:ou3jcux/e8c5}+wX<ظP+?*eDJ닖?@{>j2xJ%W/Q*?H\}EMRF?Gcƈ!_Ǻ".ۜLR)-w%Mc2ߏWK4DIWW=dU:ʑ&r< T4W9ѩpH[M<*z:sV;z 3^(qxEdZfjT@4_}W'n^O0jx8!*d_擄cqbI_=!9;itr)]~6>C^BPg4C m ]h'7O Sks`y~Ac/<-X+YIݜiم(wvͿ5GYu׃J>v>̽=<&rDR<>,g) A4 A(kQlE<,|&vCA&<χIpBDhX>=JPCttcZH cDhf';ꋾ ~ {lz'-Dl|C>Qzv)38*.Lq6 h?KMݍښ).3nkmս>ȁ'-0JB6x)'Z(ƫ*%eQꃅ6{y򼓁{E$j=2| .` 3և3 \*-$)Hr~aŃIx^Λ &J'&z1*!:{I4iּTJ4{yF-<[+O-+P~3Ys0X .<iHuD bj?=,]ǥPi92V&[sU༊ǃ2{M&)w 6d uyr3ԺDa,4AXCVOLk ^4gn}vO*d[ֽQ*Vmdg! =5$ B>-Y*4K_~myFv?v\OossgM;\g`BAyRw])#P@S>-lw2~;\PoV!̲6k/'DIld4?@gR=fMB"wjXdRx۟:_~q0v,0(|φOƕOQF,O\kac&q7T\&7KBfq]`Z+򃇅hZTmdKMFe'?RVPkj,%ZzAԂZH3<<|MG_|y7̓PeS*IgM[pٚ01zB2Fz*ԬiSºGGkп+@9KnLBWjZ:$f"ܧ,^_$Rd֡壗UTm>xTA;hd(8HlA%ueKAAgY9sB0nv[1`Ua.p˸61Ճ1K0`+F"ǎWѽ.y)ngs풍n5J2PL/ŘY>,BIԣYр t݋Xo/gqپ|TXfU]G:][וu@~\'`둅Q V~7~nWtzmln(4gZ75[]&Rsé'Cʙ J^e_~~d)\^a8% Rw#OMF ~Gʛ68@5r\}2=&J0pf6S2eYc 'gbSD] NY%x0I %$K7&AńYG,b O(qkQnyZNrn9xkx7;*'`|"]*n*C T,rV8cN9+2e(zUk+o>Ҙh.Dv>cʡ3=bl](%Zǥ&= gɆ[Zg'.\즃w35w>) gI:uBgd1\~\99Wy4[%WƁGQՅI+ ]V)Iv"dKzp ZU)ܼ"uñE@Sv]1&ຏiUX*oΞ{N\ęt '񱞫bXqؐ~=i}~ L Mh[ovgGlwgH(5q˃%CL9Hg`N;tG pV\8kX҂,dǣ4,ȓ#o$9&z䔜//U #<|#sA< "練Zry2kDs BF3~U-q ڜ7]P|Xs>M5>_?.>iP~h{c=ޠU9I&׋cYcUdiDCC쮘r/Avޙ |gVH?@ˡ_.,jyɸd|ЉsBuAhdyF4JL%g6<3D"iAeK|ZI<6{t|Xi։+(yܳ'EsSOD<$t3(T!U=|7H&K$y>sGVИnR =| I| /L {BOW= HFF6Tk,zE*BMFZy:QKTh1-иBKy@7q^֋JUƷ>aHb?lQxW+5T( 3z3 -PC OJ*9Vr@Ďf専hj{v\&tz'!k P>9Za8cteS%j́)BOA$Y =.hQ2i6ҷ]㳐 OǓijuUw31\;h+5H;LHHFEgE_ެG1ÕIeaSgkjW3zYU*3n iš&M;͡bdK/23X f(?g@aRTx ܺhpxS؟_iYFb2sol0edYbK8#4&HhmtR2] fB- Ih6tƻ,^3_I̺a 5_@Yh"zV꣈2ZRZ`By7}W7PPZ(Ż#Hj3wE) Tdp1mEW)ͼ޺(1c͏\a0,nsD`3mKuQ00^"(bc8TSO!q?(;p]k=L/ۨb/q|jݦ;ͦR{<-Ο<5p{3im2dt"Я ])º55:m9m`Զѣ֝7&=qqi~Gyi$GŽ+TVQcVMv+^ؠdPfY#Dn}JX ཎ̐ ( W8uF</%Yvn\ m-[p%շr!;mϫ.bPQDYf?&VNJj:)ٽPe)ʶ&ڪd"$3?O 0*k5۷ʸ{xaQVgi}|5/E9<< q~v!6TQ'PHo8 _OM(݇극:V:bo$ğli r-<0D@^8ZW|ꜽh{z12Q\xqSFlr~ FĴCPm%-mC_.={&{.%+3n9#\;kUۯ#mMKZz/Jn^VйUF8ٺqKRix؊򝪙IN(d<ȎĈ*=B`;IүuLͧmoynRdWӂ^ٚɿL"bmV1 2l)D&:ÛPN>{sopK}EFbB{M0 Em=1?^G|nS9LykFG!AFZe WS1So8>fA%}{;}cƙ^3\0.|_N8<_;*Gqvr8(K3oS{|!W$0]A`;endstream endobj 24 0 obj << /Type /Font /Subtype /Type1 /Encoding 133 0 R /FirstChar 33 /LastChar 122 /Widths 134 0 R /BaseFont /ZAHUPU+CMTT10 /FontDescriptor 22 0 R >> endobj 22 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 /FontName /ZAHUPU+CMTT10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-4 -235 731 800] /Flags 4 /CharSet (/exclam/asterisk/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/at/A/B/C/D/E/F/G/I/K/L/M/N/O/P/R/S/T/U/X/Z/bracketleft/bracketright/underscore/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) /FontFile 23 0 R >> endobj 134 0 obj [525 0 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 525 525 525 525 525 525 525 525 0 525 0 525 525 525 525 525 525 0 525 525 525 525 0 0 525 0 525 525 0 525 0 525 0 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 20 0 obj << /Length1 1074 /Length2 4761 /Length3 532 /Length 5480 /Filter /FlateDecode >> stream xy9_>eb.ti#hqQq@Lxy5P0(DhB0@\^^Pu$<@zaPpW74pCC"Y@ w"C( v #04FP:|`(?(H\p;G+ˏ + 7O s!Z0 SliW{[zI.34GR34ɉ3GF6&0>uj&i(`zs cWj&jVH&z<drbzd)du+s{蛃[D!x+1YQiL]yw]aϲXbp`Z-M}6(H'2Y4.J︚\0=KS(D9xWTvJJwKlz >(i3zl+?%kQR;uЛ^ȴ$_!}wS>{ t*ֲ^lf.Рg ch9R[vAN3SX$˵j#%tO2ŲBHa (U+.#EyJoU ( odd~G.[L/Li59Xi͵T5x\ #PUv3HtL_.t]ŷϺ\}[֬YE9,W;[*/j`{K@+qƙ7XpkUJj~vXJLe=;Z,dUyr@Շ`NݕO<9aK&hWL{c43DbtHǪ5tn-L۲3I]s ՐJ:7,ol2Οq ?~c^~Ru9zv߇QzF(V2=a{ӟs?Ȟ^?6Q )a{;ggtBrъ&}$6c<۷P|qlkIe'AtI懋52GCUȢBfA.̰yL~XS1F+#Zs&[* )_$wف@iʍ:G V|p/Niu3Nxu-a{t`a޿P'-?)OA:װƭ_t44R&sIIW,ugJl6[e#FfOΩ YqHǛJ;cAD tdzXM o h[aro|s9NI pp)n>JG~^~?]N8RoG+[+̻4 M>)̖1."[j?ݯ.>5m\s/g_VE֬Q{'\T%>S|uc`,y>F _-~X#<%Z63ߧ?W25Yqa}wR^%9ߓۦUWj,CGŷ)>8p |TLζu9j(q;NKLpw)ljMN,O10&lbexnE)\Ip2{e 1O,%L 3輭oEvurj ?)Un@ _|A:[xKDNm0#a|PЌ";?.Lsϟ2fvSvME=SH چkH^5+$9+XN{+o&j$ImM R-w+gE UAIZ_rl E^f)Clѹd%K,GU{(FSzV4_ xRjaîԿCfIT{ApW2ﴶu۱ ƘVjy>/Qɽxa ba.|`Ɉئe6懔ju•\P8VCƛHI~K7^6eZx!7C;iTU V=͔݅@/^"XM±d]t Kn{9Ky d}Řñk'C.SfPϽ+Fzb&|8#,)YX+D#bsEȭ"]qfTܒlKʕd]^"kӟ^t^rbyWMk5Tb7i.vf<zktlP)_=H]rϿ$8e3<ةFkv#_/q\m,z$DzD9@}]٨jɅgpw>ڮ[7m^d%NXl#_8qO==[K_a[yAuyVwxy_T,8Ӓh7ϻMt\;sȓS3CQTKpT|=jxxWDfOw7$C;e$Xx`΍c-Y΍TΛϽf;~Qk8{M`>|}j( o}X0~"a&`ݜ@Io]r)N>P\2C&I-#\s{_"# Fd> 6/ܭi{hҀ6 EMT*@x% Rɚᇐp9{RQZPVH"zZdӘ[V T2> -:X*ABkڿSvݙΔNˣï2Y_Ny'(2LnLr4L{hTF)(sk֦z~[wLoOL Z9ϑ68~2aܱ{F~ np׳]f]/SΣǮ"+y B%$If:\,+] B;Ez+f M{lU]#̰ô ֕_6KjW_1 "ȿ-٫ac=HjU\?G[Cnb?Ɋt3s,KPH[xͺ,'ҿ$`R^tS?5*__7~g̜ Ni0e}&MZm˪6z9ջUiS)DT7IT&bfMZ DwŸM.5{QpIYK Eiәv&"+s/ϱgMeJZ:b8lDKՒ=F?Dyߚhu|ܰ[l"\n훽צHgpH`d߆ 9'l-K: LVS"mT&wfcArݥGͿuzN:4pf]_(o :lI.ׄ}W|wτ߸wǼ)PY4ݸF^WW>C:F&m H̓T6uHj;, ?%'(|V m-lPz \x9AsWhdPtN`]:岮Oꊑa~ u'8y (4:Sendstream endobj 21 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 45 /LastChar 88 /Widths 135 0 R /BaseFont /LJHZWM+CMR9 /FontDescriptor 19 0 R >> endobj 19 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LJHZWM+CMR9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-39 -250 1036 750] /Flags 4 /CharSet (/hyphen/slash/two/A/C/D/E/F/G/I/K/M/N/O/P/Q/R/S/T/U/V/W/X) /FontFile 20 0 R >> endobj 135 0 obj [343 0 514 0 0 514 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 0 742 785 699 671 807 0 371 0 799 0 942 771 799 699 799 757 571 742 771 771 1056 771 ] endobj 136 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/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/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/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/endash/emdash/hungarumlaut/tilde/dieresis/suppress/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/.notdef/.notdef/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 17 0 obj << /Length1 1285 /Length2 8814 /Length3 532 /Length 9618 /Filter /FlateDecode >> stream xeX[붨)wkq)ViݡxZ(^Zx)^x\ջ{&11}f5$-fP9 $VR@< Yہࣅa>5ǹ?q?Q|>zKI=@|.^,`A^sr*xxxy"P@_fK[z@ͱf!6) a%~h4iE!cui{ˢDӈ/ZP_6ʁ >ޚyA<G{F&C9=Y GW:*wABy%sw~ 8~$c*'AuvVލ^ CF =ߧlQ9*(3iX<kؠ [lCU6۬zڼ*PQSSZ)4b8}Ai2:wn㑠OgRN%Y0qG( q8i|'/ڵA.1F_7 "˝:6<&;#~|$l\BSI!-[|\{$[7VɄ|ǿ$4iJM7*ek_>Յ$u^PKar^ZfdwJL~ ZHc8ɌA9Rm"!J(h]B.|tB-bk u-*R ΩH 0'<-奼7_&omozXB dWr2'ѼES)>BdtdU[&]nSz'`)7{՚ew UJO`5wpM VKVS/D[oШ}`,[tk9'DgUc;e3eKCV(o!QCcx%[ˁz<+XZ)T\޵76&/1=kDm:J9$%zbdxQ,tkvo⓰5VJUjVq$S;+sb׌Z,B^o|j5 Eܨx/{ K>e6Sգ.9e5!}Ez܅ZFbq~i8=YuCVMvL0cY(GdpXnFaKU><@{F@a76|iv(V!sI67 Zl9$6sr &)9:n61ɒKheiUaM?sO}[H_e*0_q)ӯ6e]ͶqcԘ6ZXzHl>m{{LDEO%CmHM#SǾ[t\Ō ɏH?>ΐThģ(xX,nA K鶯3;A{`ec^+>#a.s Ѯ%c"JO_Ssm &0-y HEgJ5a:pԧ7CPO;\;.ЄA=$YFXǀD/yfp9}@Gm!7߱̃~K[tuTMѺdO~hD&\*` wuN 9SRSe9U8'bO CY0g~__N6)r3 oU̔& ի&% R/@*]Ԩb""K2,\z*WZĐsJ%(bX`@lJ}(%I* U (4mgpbtn کf4>X?^zW>r6%kIgly 0垢7~5Ľ^e<KҨ(a 7TZ;ePW9gcYR}7\%1c<\q2ޚ ,'[GVJW74fO%RD47Ionl*Ak︹Rۼx}vX*,דT(iҜڨtCRe$c_N}qɑMVwK #*tJ Uk2A::M)&2zֵb%bS5A{'ؔLШ]~%u &GffEu9[>V--nb=D+{6ub64N9OS90NDdZb*m11x A9 NQ6:ET:B:aWNXWdÉ}}s1KXp'f( 2o2$"j`O_~T#LWpNۑ侼S8܇ .kꑪ'ol T4UGb^ҮQM|Prd}{u2Ჽב!6]~)2t 0OͽuԍKy5kb6tIu[ku'*F϶,;] ('tDvίs;ʶ6,5t6lw̶U6>ioQcRN+vXةMZБE[y|x^}T5\ ,nS;g݋kʋ{¸p"Q[域!)Ͻʾ#OuRt[nZ򗌍T ksí4 g)7LϾ4G` cPkGM8NtN4"1in]B(H|JpyjIs@\ҳVHtK{p${,~R eS8ۚbŪ*òm"j\ PMWX4F7^Z/2F*W% 'dCߞ{6)Eky y}6dxι- 7r/FrY7a\ޜ|YzsxAu=5yuwyTYgy?iF_fʹWF4lʕֈwe6r|Ok 4Mx:a$WM*T7Bd^,aM Tpo6ZaKpw\(8urNzh qldo ȊZ-4]~Uƀn#aW"MH&ꝷ^8ॺLy7RSmȥ1EfNȣP`Y"TND\DBg$ʭBhTƭiBLGQ$Ն/F>h?k_c3)}|UU5x|i.ǥz׌0mU+ -QIm &}{Unj0%hRB/?v7i~ }Q8]]uǯ;)2IcW3Rl=SCp`ٶ] ZB#M/5(<4E0+Z=AO%U`J|.w( &} S,VQ,(t\@)ICõ [,[ќ7YYJUd/*̌o4(,>6CM4sTNG'q:o鐺52:f~EG5}eSUB%dH ]"]qf;;28oK2dQibSӒڇ6e)]ƴ9mj[ZY\"6g%K}ڡsBH7 po]Pۼ Hs]jM\c|JtvQ]-UlbӟN&?WJRBWj̋YǾHt Kh<-.zb.7ȫDeܹL eVW~7U84QeYKI6η!q@WQ݀a kGotuIxMz.kF9r0 ]+k~3ߤL^:s7M[ a4&y'Cm>=Q!N6BwFJ6$,%gr6a Zxoh"LF>Uۣv<qucɋuyW?pk[ hJNhM'X(?l{:U2?^2ʆÝckU;asIO&fVO&zww{hSnByʸts.g}-]ǣy?}z0R$$+.m譙XLμG1I˘ô߆Gٶu:7(\wE|2Toݺd@ScV2}\9`6~+Eœ+fV~wW:wZ#N,(lLBi*j&W} 9[T?RMza'Fǭ;c߬+Kϡl~F@aKO$Ap a-i,2F3X(^u;'˸s\bv>/|5\l\*&یy 48p"qLR@qɺpEDՒ5_A16ILin18D9A~YVXF5>g\ 0>]-TYZR~vZOȯUSkswdeq1Ɓ"ӸBX*ʹ?`U)ɝ bD>HX!+K  A=MAi7BO*:*v! jH p<ޒ5m`Jjߔ$Sw$\4<㴦7"p!c\>HÓL PE麟RbA z>'I7N1#%^jKֳB(pdj-WlYU %/UJZQ/btP~P4 na.lO\'}OsnF1;ϞO&-4"I`FO|o;|9:}Gǩtd!%!(y2fzҮmSWU#3yKG}dYȽ) SΫ~H!, #7@i;|:[>Z]h)}nK_鸙D| &uW]+@Q|'-aoPFJ8Gh `7j SU똥b"|=|uFLNc_ǿjSy h;84li~\qeIYÝ>a601;zz]ҞORZ*jYgOeq6n\y90 Irvd|Pъ:anmXKhq|O8rZfH5`m/H =kۈ'(S&t&oY0{bTJpn]rt)'D BG]^" 2Ck]U%+C\zw[l hRyI}ZO{>cyr ꊰYKOqXMTfWDgE;r3؛%RlMA.%֐Rw㛘::J%#%^%ӕWR5>x[gIOGX]뀂>6nj;oޯVt?OkӞmf v=6)\A_N zҚrYBp2yI_|k&8ba*іcAyDpYh'/^T&}NjɳsY/$vli2SوKv^7II 5V͝o?VX ?>iƠc[zxq7Q$F][:(4 ti˜t?1MgVf/S*9Jz|rZJҽ>y"bY_9r=ʓ9!=5DmE2lh}œ8CF^aYzU_N -02[m}Kѓk-yI^"XlK{4hD*?/u%ʜ's.IV^G|)"/um'C\bz{r\j&.'%͵z&*XEL9f^)sL:L[4C#k"jnW1gՈ`'iVseG_ Fd.>dmp#< FJU |Z=ǼTnJ}~-6Z*o&xtH Gkg]hcZ@Ro5MS;1=]d-^BCAj|@#spj7f!{M=q+/"s7r@@,-GBE9cHeVT$kmw1Å6:hoq}J_*C0/ЯH?UVnQQ\`a r`("AT`MuQ72"ooF*NSIVtf'6) Yn} MPfAvS+Y*EWk UTg{ɮ́e!1i:`McqLp4$L 6x§N{M=j@` KJz / 9[ P}(.n I5_@E'`.9]SRr m2U'`Wزf=FqޛO,/)>]tU`YnzV1ec:<`L)t9By=i4BYOdxju[d\.Gb3CT9#˜[&cr) %n.+3!py*CE3 [/Ѝv~> U64{Ȭ+A<"yMkzh9bnAX v/Em¶ iK>]f94S3+g(Sz vյpg|hK"<JW"mw"X^N/Q1CLjjPG*7$8 zass{Х I1>tݕ~'A!=aendstream endobj 18 0 obj << /Type /Font /Subtype /Type1 /Encoding 136 0 R /FirstChar 12 /LastChar 121 /Widths 137 0 R /BaseFont /RNEUNU+CMTI10 /FontDescriptor 16 0 R >> endobj 16 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /RNEUNU+CMTI10 /ItalicAngle -14 /StemV 68 /XHeight 431 /FontBBox [-163 -250 1146 969] /Flags 4 /CharSet (/fi/comma/A/C/D/E/F/G/I/M/S/T/V/X/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/w/x/y) /FontFile 17 0 R >> endobj 137 0 obj [562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 743 0 716 755 678 653 774 0 386 0 0 0 897 0 0 0 0 0 562 716 0 743 0 743 0 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 0 460 256 818 562 511 511 0 422 409 332 537 0 664 464 486 ] endobj 138 0 obj << /Type /Encoding /Differences [ 0 /minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/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/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/.notdef/.notdef/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef] >> endobj 14 0 obj << /Length1 940 /Length2 1917 /Length3 532 /Length 2583 /Filter /FlateDecode >> stream xVk3`sL2HasH"""J9mrHݐ6-Mڶ}ۏ_wGM׵ -E#& LM͊,2f ml,&z( XC r@ дZmTA&4dBTx: B\VO0 1C$ Hd" @d ȎO$v0` LZ"NpC:wA' Sߊ۲)G*?xJpSC,8ImٜD"߲v,B&Z(6@1 2Ӗ́H82&Vho[3tsk$$X@}^X|P -h_|̆Fȴ@c ȅ 6H0@8 H8HDtlu2fR46sY+$ R (Y_ $}- J!,@::Q 1bQ 0>o_ ;$A@0) 3p--p]=c@Pm(0F79 Y eyD6Xk.O,q "ldNs<(Fl ϦT)YbDųM&E1*6?meT'9&Zd^gJ1ƜLQGc֮- &͌gY?YP%Xz4Gķhц\}NVuẅ=1mOj',&au-Zg&¶vJl)o8'y ᏺBD_&/u5+Y?k;~gy*j_b3:2Q*仃&ݮ_C}q >_d=w$ь&8pomC[:tA̱G䤞]z]`K+}ϢB9G}kaING֩фw7#xoLfM5GAiW"9ZRۣ2RfpVfBU. kC4cMϼNVMDTUy>e|:N[?5PҬ݂pƚnYϯv/{o7oa=S=F!k1b]9RW FXk$E3e͑hNm\tTD-cK"";{; %(%0b^?[myn|JqH`tmRb^*D?Ŕ񋻊*Wv4nUIXfx) }{h""(1O ƍ/>-Cg <$ZeLK {lMW9XmܲFUeKT&.G"lRVk מo`tz~`'wj߬wIM\E!3wyѕ+7.^+7bLFM&)VuxWׇ" 9̛v5U(8oWmRɞwQ=3}kR!t2{yv@$(>4NҮ~ᐍ(>?1rpekY=9껄;-oZ7W_'f]sme.,>;W*odpфCUub}9~k$_E8}myW\c`’a9f ɦNw=oP0:""w8=bx qO#v{LAg^wȍ~ڙsȏ1byI1]јRCa)oҡi<!z< T;t%}d&l]qw(>gkqYy# ! AkcLHqEE~y>U4XZ+% GОjkZKL5|5URn~~߲Tng`i9&w m>7+<@Kj7dwaeH+TWz-az0Kopdp(X y3"˳Z.Ѻձ<駆E6 ٰWS=49{kTK >\Tضsfol 5RoFscjۜ?)ZuyN= [ϟi%1Jة܎F#F F$7:h>uR]m@kzչg耙hl[k &^[0hvhx_^3 ,ax1\:@ܝ̖0 W(K^:Q}\: h97{l9_%dTeZ4]ݦd32jh1$Zʉg).(vWbϛ ߏT }xy斒҃4aYZ./w\sfoH3yj_Tj(Ͽϒ> endobj 13 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 /FontName /TCLAXD+CMSY10 /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/plusminus/circlecopyrt/bullet/A/M/S/angbracketleft/angbracketright/backslash) /FontFile 14 0 R >> endobj 139 0 obj [778 0 0 0 0 0 0 1000 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 0 0 0 0 0 0 0 0 0 0 0 1201 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389 389 0 0 0 0 500 ] endobj 11 0 obj << /Length1 2112 /Length2 15506 /Length3 532 /Length 16654 /Filter /FlateDecode >> stream xeT]ͶhwwXCp{pw %Xpw osvޯV[}ԘcfXI^(aoBWaf0301:\,Č\<fnn;; ,9@@%JO'@dibd7r~01ڛX]<66pNn@SXff hni=¦3trPK!ijog 02*t~K(Sl-m<;7:T M-]m _!Kg K8K|ܿ$>kמkL峧ÿ/fdaX^ďzۙ؛ZڙX9FNNFwv@Cǚ`Џ=g4W쿐- A ́NFv6~9ڻ?0:LvŸFQ2]? 1}0r2w%x|[x:X8di7ۇşȇOCofrq3ab+㟕wugm-u3/׏f?T,g6]O[r|CEGQ?QQ}T7q~L[}LZ}LX}V}LU}?">\Ї⿉E}tWCUG裻>k裻ֿcNF&@5?? 9 +3}ab>LLԬ'C꯳~vᇕ_a~X9VN?_a~XVnᇕ_݇_a~XyV3ˇ߱= "bMq ||0;[jv@i'jqzM`WMxCҚ + h@E[z@mJFei6i>Uf!IƾNMLo*lɉ6¡[i׮;]Q t1PL:XUviUOˊ‘FjN*ha9^3Xntmįz%E2LU1^o_;eɶ.|\ bu!ڬH3ѽop`I߽]2}Ka-D_srdT cvDb=juUP_f?n2R)Vm2n'!X Km QA gG#M&YU@ݨ[goiP9j6dY A8_g؇u^S53 œ^a۲Mju3)+çB<GֻpK \&@bvp'f6^_uoټqvNP!e')-pOc4[Yww![mC[k 劍ΉE)+#'Iki/"{ɟ-@ɐYw eY1VzUݸSg) v!u:P{j +d : m}^in&CN;#/},:ϝZ36MyQ28KgPqw&t,oBb?<ϸWX\ ~Y}ۛkvͿH)sSa㥧ՔŞE߳:sHرytMo܁BfyfL¶ypXl (;qxXHK?"D`zVtO~b, + -E1.H14qᅉfYl>ڃãۂ0kVK{!,qﳾtc:(X U#硌Bdԯ6xMt@c_NkK] CgYSrr7bkg*]\V EΡv/ٷє'YѰ%5$KkQE`XGT<9 zosZYQü!B[h4{w]yR8Uta1ڎgO!`=y.''9eǍUObP:_o@Xpvf/tayt~s:%Οiz&؃Ox eii|OPR&)fw0BU5[w,3J9ڜot-c!O8|Rً\6tlʾz_S-F7\>=hQhx", yjh>V1z7inȝGQmgI$\?֬k/Tt;fqԢQ9Ȣ_Ŧpvoͣ l,uFUeV,/t1Xc|"=x8yގ=icw$ UƵ13Qք&[!Dꡦ#1oM/e|W/&?ӛ`aOxE DĜ5)g^9 ot,y< @:Ǜd"z,~_3^*U%F0{) bF" }I2Y9.["GΤ0 ]U a[iܚ > b|PD"2둬|M_A|c`Vk}P:Ff@ʰA/61b*/ =ذ-s30>Zd%Nv<.*))Fz]*<6e2pl{X+˗C; 10Ѥ~hJ;uVN`!OFݳF`~ B}KI1ITnp2;ɀ"!^ŒP F/wx&jgQo3[D,F1KaU#sju4fRbXi*"`>¦$~N)T2wurN`0]Z]M" w>C3\"b`>ő. #tƳHuUqq!I_4D,>;<@硫L{f5gĦlq?aV-W%8#vf@K,bP ϟ\ٝbT xiw"6l<9U8!՜qIK {-Mq+F9I_t 9QY0[^;jsn*~M_2)gPdX8#~f K?TxP2U ' rP2#j)uUg89$_)+l}1(*aeo }TX4BشtO('ֹCgs6|wPp@-[{!cd#^Q }P/a@ql$|Y~^tV%w[Awr=n@[WB`{by)-N@u>B׿J?6j0j6#P|<D~=b{+m*畜[<4h]6!p}=^N ,!E}&0Te bOaM5L"qFiJA^M:JD.3NȘMҌfԡ> a'ڶ^ꚾZ|0I`ǣ]8^-Pw:ZB_5pgc f}w#KO!cJ)nzhcG?0j `puF=9~@s!K4{ &>W1Ku'fSrf͆ x,rtNI3çNe|۴'&c[?Uz%oA[I}#dAak:zkGMxwWr*T[RJVMqq8um Vpe7`0ۚ,+T qF ւ8C" BaFjfuF?kf^FB HBHI ٣*MUZ1e^a?Je'HW@ )gQLcwL\D(9G\[G W߈vPߖf\-G<^p@A498Qzx+>68>oerjSj g Dz%[ˊ1RWNj?$j͢5Ψ/F^<$nv %ȋGXy J=xeR5ìԍhi L|S"B+E19&\kHмP6V@!E@Z)MY ;嘪^PV$g}8+88zT?*Fܳ)9LȊ䄏 5cE\]&]и*eF1OW!.n=Jk{ӟBqGwPg3MD0k_bwƗn ʺ_UA}Č[G]3|; >KQI}L*qjW,[|?N~g@E$AWu)a;f|3D: ?&2;wx_(֐Ѣ#!&$DcV- -6`m5,5nX*xi˸b-":9Dhw앐PNe@`8r/ȉkO2N/%CUjbzB9sr I'!-U|Hk"bӅ$#f^wV`9oXc .YBI'A ~jl]wc[eF.Z·)UcMhWi}ƫ@۽-XWm2(eTtdD;Jd-u%E՗jvvœ X~DXSynP?We;052m"|p+ _0nZOK׌c.|<, L&,NV&?1k V}MG\x@ VvĘV{R˭/"ȭy^A2HciX{%NU>w7:M( 8JZjA3e_e>j`S.G:U_fN̾S~zP;CfWnʆ@|1mw s6`\4ߥ1#fƚ PR0-;[rLB3[8Y;NMb,AI߸ ta$I'pՇj̧cl-݇jZZ~ )`IistWpLBSZc_K\!QtѴOQ9nh\TF(}A鹗*$b&} j1v(Sf52klS9 [*X?A+/ XywJf/zs"WhWI |-!aZCYOİddgG7H"*m,0Y*Bp^PϖF-R"l`3O.o*S LӻN/m}ck= ,ǂiKs,~*u1 |@JG oESPiƙ"3t*"YȊq\?7y wq U#Jt&f!aMZӢ6ծfm]]" $C|V9M8q|6; gBe".>17Tc%5$l'!3(d=D9qj啹@9=i:,NaŚOzdW,.|<nya1A|׾NeҥM|@yR$ 2ݭu 7l|xYap.%()*kv/}JE_wX^b?ئjG2%h -ˁ z7B1ROjг7 hΓ Z9Br4?:P>HcV)yGԠEe=wwd.`Na⊣n}`8nŋVeN'AZƦ=*:_Zt她>謴qlM6ZWV(*pj_Ky&c4t2c'٨AHHɜeFxb'[[s=OI}diKqxӨEM7Fϵİd2͙YF]ErbjҒߡ1(͙ u064;w7_#3cWE#ΫK WӒS .O`} fc=:Y+vPy{"*Y8 P ,aI.?}G=SMLq[UOR NĒ$_CDk.3xlz7r-ъ$ b\eI_YN <?AjHvB-˗Z#}e9S:a)#%نd3d-p=;Vɟ. ʍG"ϵ8I>\ჵW]H]Pljýi\=7Qt9265܌3K|WIh63!*cā3$ԲL~ouLO?&'0:I1Y;AZЗ{u/æ{)7yGD&]-s$^1ʄ}'Gc7H{\&5 j !'ʚ)` Y )[{vlzKHKlEեI-35}TWz?t@vf9XGl NҜڅ.L7h鹱9w*bl ™hyD,j}na8/xa])EGX%QjƗwV~_@&/iD888 Щp4 ȭ4DA`&gRmXa}yd_.2*)Q A0ԯ4Ddl~ F:3i *UD*ٖ?W?[G-a3En*Ӑ Nڵe4i+mr\14 W S"Q2B}KnySݒΗmߣֹѱRN +N֧vP$zu8#^Y-{fo5pzJZhD8el72{~҃LEW61E*-)Nj-ȂL-2E_B@2 k8&ʠ7{tķ DBAͷY/ Ɠes4p/Ef7 D'E^}q%ע<}n]]_XA9QFz%ғ;%&gpa,]c w.O('0hT^P}'3e¦H_<S"LSٷHLD}$V{ 2*l ī=k YDزv 8TMXe"1hl[Kw`4 A}Q;6(8gx5)!"r=p rRp )V[;wFCW<-%pp|֍`W}!X[h6#fS\D8ą+Γ1oc} u 2eU`3(GnQ@UiNqp8&UdKoH G~^utڻk\4j&Ԅd.=HY "{ۆ<s/T|X 3HBCYNcN[wq\ϡ&x]*#_oVڡN;1. 8w(oVbZ^umIX9|Kx (~bMݳӕNXP,K?2~pg. Rn,;VnfCA'Ct eh̪<uGmӾ }TȪ6Ҷݩ zRmZ7'm2J³ZK7"oPBܛ8f3U'JUF8Qbp;>=oմl8\JO[DQަ% &@e/^6XhH[ +FrVL,/.sִY QE/{6ɽPMR|vRt^.T¾.v&[L#JFKCG(ڦ&)Im},A$mxHd9a Dp7͵B7T5UefQyjleJ'- Jd5p>fC.rAC]H->F4=m/on:\\%GoAtQvy< qϸrnp88FhMnE&IJi\Q%W:0M''‘Kk|HbxjEnMD5]3~4 ݚ~N: +%^O_V$ZZ2x;ܹ{-ӴQg΅PzZ'$1u%_1=!=$}jttHA漿ex/G^*Ӗ67Re2ؐWwO/DJܗ팑(5sE&iWzY:ܹ}hǕ:rkp 0p@p)/ &_WVUJ&ŜwUwjN87_-fXŸ~'KG\x@d(%CO'﯑s-!@V;@r<ٺ$˺gEG:eMQ86`3{;N ֦-䅕4Q+fl&aFz|8Ըi Y !lU{qNgXs3̈́ZK9AL̺4H߳X߬8C2 s_4,5i1Z-NS\``˫MNNB8YM>2őV>=4Vi3TrDZju&W᚝mt x@,wk>;tqͯ:t$(y+pigJ*/d+4;')qՌ*hCїD7"Iݢ._Z#{@{"m̘GjrPJ9A^<_>Ƥ B!HiV(7\Q^n{wEJZ!;Ǔ9,CF"o܁u\/o_`H)m#ֹ!'O<%'F jg&-bxV‘uډ{.ͅB~;U@Fh-dշkuϟ=>;bv{sU#|e.ϛF"aPhyz˂uj"Xrz"[Q1͊e2<ޢ/T/MXJΨĜZ Ռ)NG$@Wy0 kJkaPŎQ:sI&$7@ ®[HU0H3Er'G Kv餬{#h/ :^Z5H1+CY$ɬA%47vx*fDy#i+iS᱗ƚs~F5W^}k!ԛ+y3%K$7&4߻ԩC躗֋2;VZ=j^ba ؖ5Pݘ@fkѮrńQNwSn<:ޡ|:`2v,{I$'͠ 1E-\~kyC*1TKM-^jBiC٣ump5-^D|Jҋ_mSٔ] 'Rd[Z-7áK0ڲ/y jCyM_oD4R@WtT FG"E6KhWTv PT2Ĵ߫U$vӣz BET',cZInx鴁}iD^ڔƽX*c$yhl<P©dx([P,v878yFU[@9!WtR\7L[NRc(Z+D+wߌDWe6[1ϴƏGWBSs5ܚ?Q/NXB,BqvZUY*S-Z&k޴Q wwz@Z~X6[R.v w4Qiv[;hfﳘN2F0Bx wf౛E2+ZJԬMRcx7,D2VzPc$AG\ 0AÙx AXte UIL UDzݹt"y2Hb;BO]qz u=m;6!.|#@{`:/G7kwr T'WF.sbBoHI$Ϧڭ6Cdۥ+7cv+:SSNU5˩<+޺9}G0 g 'ܧ }<mTj/Oٛ=1fD10+ޥMZ4GݔBfyrz|>nOH1 Cp%!F) z/>Tە1$~@[sz놱~J9K#a38<8ewGql E&@D.Ep n,+#p/gwxfa̮ƩS)u> yzpON|vGg-yPLht.}d"8'">Oh8B|Y3Ir+@مM:FYtu`pt&2x O8sIe"ߙi|u9W? mCS]= BBsn^z+*9^05?! vܛ~͑y= E@6޳h&Z=Xs9CDpLulygvIDԚT67OIilgP(lyzfbXbO黃/mOc?&qj|1e<__|XW Y0/;#T ;f5j1ܨKZ(XIEYR$~XS$Mбah/xah3+ս&jÃ8K2#aP(-q)izC^Eͷj*W+-8!JA#h,Vl= "+" ),4@ixIx5:)Rot?m@(?~7F{!9ikjҔvZۅxxE!{́@TuZ/-j$gCT8OWCcirL~Нv8;0a356dzXuK$Q,>l_wfL,:_U ܜq6$p@= Hij׶&52Vn"o⪼N7]Us_\e748m +;Awr6\+ăi:p\2DLH__Rl~xyEW0XW(ru"i ?D< #miZ0Ǚc]2Dt]2BgKh*GF 3QkugbrA V9 hWO| tEUnտwu*60m5l_122:w3glҷ{'_bLJO,1u]ՠa^8=F2.EqxsdV[1HŽFGKA/Y)Sm`̘lT8en6Kv?,A>'Uf_-r^Rx.Z-š$WT  URi0s68Y[+2^vf88ΤvMFF]BoHi0Xri7.!NC\7Vq`z 5M*qU4E((I ƺ2j$g)`Ůlg,5hWm BƜ+V6Y xO/'Mc8'8AOu(~~mj>VQhk;%| WI,w+ΑT?l)k}):ŰvS2Xd.>CWyb. Tp> l*\ͬztƋ8]_)g"jqe4W+'̨D[5cBy9 \g6z.ܿ( Gs\æ׾#{X b|RXF#Dݱܐ 笚iG4/6`^ fܓOn@c!%+r)U=N/&6@#'{[#'k[endstream endobj 12 0 obj << /Type /Font /Subtype /Type1 /Encoding 119 0 R /FirstChar 11 /LastChar 124 /Widths 140 0 R /BaseFont /LGLTZE+CMR10 /FontDescriptor 10 0 R >> endobj 10 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /LGLTZE+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/ff/fi/fl/ffi/germandbls/quotedblright/percent/ampersand/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/quotedblleft/bracketright/quoteleft/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/endash/emdash) /FontFile 11 0 R >> endobj 140 0 obj [583 556 556 833 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 500 0 0 833 778 278 389 389 0 0 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 0 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 0 736 556 722 750 750 1028 750 750 0 278 500 278 0 0 278 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 1000 ] endobj 8 0 obj << /Length1 1277 /Length2 6195 /Length3 532 /Length 7005 /Filter /FlateDecode >> stream xgXkADz" `{wPzC@H ^I/wi@A^%Uz~?i_;=ܙy΢gȯh VÐema!;2 DB0 , (z8DҢ pW R3IF@@@@t`jP!#}P(;  A@HSF(!M= l'1˜`,aP؞PP8aP/WYI /*,F 3 Iq;qk`V)$$)% @`S`)0 "9ׅ`+9|@TO$bC_KD &}NǼP8ה}*w`m4 ~;+ZY?̥YSם}YZmRp x?!Cζ,tZ嵐kCSIݽ7tgS󉀧/vz q7 -e&*#SdϽmP)9|MNzF2LӆFܧmN\4ٻ+k\3G>捹pxj%!妍H&/\+ mP,q^ܱq?ۛ[bzׯwOQwյPᰜH5D1Dvvrԙ6uAw^@EIqshճK4[n[ԉI2@XHVo IQ.d~7-$'@-^zțKm?CT39%U>&*Cd$AH1uZp,_sX]eǾ`52}O*7="єL9_x38:/>8W ry|TY36f0gXX9g#A/=)5 ETXdb_z<-ɼ&} '3 7';"6PݘbwN ^ =uDO%q6T\:~AD2LL[|%@Qn=qb2! Aki.nG* 1f$ٹkkq@f"1ܪ1k9H- Bwۮa_7F'l{ijMx)uYw,f)J ZV&FVȢ\)<+GĦ](X)>ud;4_õ:am5}d2TS&"tS8iɛk[%$F"t&IsLK23G9Ŕݷq@0U Kz&r"fNa)f{f>O' зL_cq_: 萤h#N?>EthT]\婍R\c4gUUń3q'zC7!)4&~AtyIBҶS.v}'qpOai }%並/cq/ߘ9/ݵ=fiБStI'ÃGhuZn0؃Ew])\)euƛK pOd_?&/U=yG*nUAw;av&l¹%oFGݖv'@,,&[J"GT~~ylېUrߎg: в%ڌ1vYUGG,rDC(4^ÈpI-Em<4z{ `bOqA i%)q)/3\ :$?ECL$](Ƿ7 ]zK% j>`'i_-TK ݙso|ى`+fԾA-{{f+6ՎD;7.Gm ߅e3fǤC<% wqD?L+&oGl.F۵ otUo] 8CxeTˆy_fk&W1R|t_ȿG}(vXt'-[ɺY74=T'a>S2ZUޢڽW[2B>=ցChv^wݗ6 be(0{3&{Wz87;J+CAZ=)wK,H=~At'"0ҍn‘'2[:O 9)kU&K~P{7nw_$|h)qA~ >VeN"IC^BojQ~/Ǝ8EVi9 n=!d M ?F|^ȏ+k50-8~007֑ 5#mG':؄e=兹!|+‚Xt|.OUGcޣ R5~"3+*GWC_TV VVnCF$gQ7 ĠJ;|'mzLLm~4YZ/W64a7bQY3*&p!ӿIǡ0~`*oϚ&ʊ91R fAԹ˰"k ksPdžVA'up5BI2xܣ8?Z zrI~Yuo(|+N9l|k@E7J"%i gWyv]ڶ$cy5]Ӷ, hy~pŰ^\j8d݃93qUPpj\^dp+˰ 7~uwLiYb8G<ؿce&鸮|p$D# ~$?f!'OÇjyV|=.o&`dt0e3oFe e,1dR})uI]w}'`';V=h'[_&QW":Sgs (CǜZ]E0['! ۼJ & ft/QinruXb9I^ ˓[LFdv|B,_Ⓒ)"Iy&s=nm<\;@_ Sh# *6N^ZRY g6/_׷*o-5WBVrƦ#3}3H.͕<&NvyX8h$j]_1"%K~gl]V~Sò> cã7R##]_귃aH~ X~6եžx$y/5W9zլalM(2^ v ̈1yI.(٦]zHpUZ0ܞꭌ0׎{ F=E4qoSgr'ȃ] O^;=:id//9xE8{pmA",SAMb0o7eGۄ}-r=:mHkZyH˘WUUHm*xep=XK [%b{X suNӛzшB˝$+Zi oy.{=-giȖIڇWEf2O|hm'N&'MW jK"bNTkr1$akoaslU¯&>F38{riZن ?^)4k3[М>Y;`]YFxR{{*q/Ж5 hA+mҞCw|];v]Ge…rkdzG4}GX}j=%ڗoq gJjh-x|1vF%%.a$gc^ pB.ꅝhʦ 2]R+dM6DjxI &t H㥥+A{[9qkekeI9OR7w ԵURͲnww0t0*^%NQm|5;͕avWYd 4줰it=A{ *XEfbiZ1f?Z\Ym{p.]'&8VB{-솻I0xMX6SRRzScۧ(QBL-}-;RA-랮E$lz b#-Nܭ._6%yrkt4l`1%d#xH(g;7P~*0fɝ0 }Yhlˆ)=q S`퐄߱fc wCrVPD㉏6d$Mqeq?(Ȅ5v wp1g\D蝄 r1ҏl֎HXQisn$nd}uߝo]١ ($p&?[> endobj 7 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 /FontName /AURUUV+CMR12 /ItalicAngle 0 /StemV 65 /XHeight 431 /FontBBox [-34 -251 988 750] /Flags 4 /CharSet (/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/D/E/G/J/S/T/U/W/X/a/c/e/g/i/k/n/o/p/r/s/t/u/v/y) /FontFile 8 0 R >> endobj 141 0 obj [381 381 0 0 272 326 272 0 490 490 490 490 490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 748 666 0 768 0 0 503 0 0 0 0 0 0 0 0 544 707 734 0 1006 734 0 0 0 0 0 0 0 0 490 0 435 0 435 0 490 0 272 0 517 0 0 544 490 544 0 381 386 381 544 517 0 0 517 ] endobj 5 0 obj << /Length1 1005 /Length2 3637 /Length3 532 /Length 4315 /Filter /FlateDecode >> stream xi@AUEp@ IG95l"xʎ!wCيPcCQv,ӐmNdS ٤@h:z(4#";0Oq .&Gq3- g)/o-Ϭ鈱Q9BW VCHGWԯ8 kOQj|_+` ƞ,LXCɅOKk`!% x'<dkPd1,@^{ qx㔖"do \hM27IDV1d*6 ?l#y2y{;U7aA?^=ֹ]R^})F!fǓg4ZDl}̺ziQu\%?$5]zכ5yBGxb)^/, ?L;$/e]5-WpfELpۼb3ݥ3k#3:0CTg1b##|tZ1ͪw!2x0/Lv$اtkCA# .1@f3wS/ni0}~XTt||x+gIcH _'c/.$V=|5{,EF::/G:Jȼ\j!ԔĿ/o?==nPؼ<]F.dT&BsLIƫS\HEz P)EaQG4Vio7vni䩦o?(Oh8^#ՁzwTh'Kg?\j#喹Ftq_Y+a~GoT t[{$֚SS5cm|aeF!3+ጢ`6|#2j,w8fn/}M~46o!#/PHV[c]}| =[}Qqnv&˷g dr)=-4P߭/XHC7+HOv6>$q M;XdiBVX;,|2b03~IwHK&;Go2PVs%d5H >TOu뀧tF gYOu@ A5e);S]HFp|D2%7OK[{˫ň?W<>?a3溚¦,#GΜUt"$j\yѽ )))7Bfgb1u'@}r.jsNƍkHbgH|Ddl1 b٠QwiZT4,&zHqx292߽J*^%l (=}.y SͺjB܃m͚{MSbaRrpi"ВZq_䬖청Hx'*훆9v IjHxi^{GQw&nyAbC%zyY-&%l#Z1VVe^5_>" %Qns?]ƞN_$wP ި1UBgs :f,4̼+(8{0 OcѺOzPIr.o Ǯ .BľkNxNp\c@~"AAM5HiOElSfyKc-Eɽ(KRUCZ)gyE>:F/gcMsϊBCf^WKT[+\ i :gǽMYcl> endobj 4 0 obj << /Ascent 694 /CapHeight 683 /Descent -195 /FontName /AHTLTV+CMR17 /ItalicAngle 0 /StemV 53 /XHeight 431 /FontBBox [-33 -250 945 749] /Flags 4 /CharSet (/A/D/E/F/S/T/X/c/e/f/i/l/o/r/s/t/u/y) /FontFile 5 0 R >> endobj 142 0 obj [693 0 0 707 628 602 0 0 0 0 0 0 0 0 0 0 0 0 511 668 0 0 0 693 0 0 0 0 0 0 0 0 0 0 406 0 406 276 0 0 250 0 0 250 0 0 459 0 0 354 359 354 511 0 0 0 485 ] endobj 37 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [2 0 R 39 0 R 42 0 R 48 0 R 51 0 R 54 0 R] >> endobj 59 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [57 0 R 61 0 R 64 0 R 67 0 R 76 0 R 82 0 R] >> endobj 87 0 obj << /Type /Pages /Count 6 /Parent 143 0 R /Kids [85 0 R 89 0 R 92 0 R 95 0 R 98 0 R 101 0 R] >> endobj 109 0 obj << /Type /Pages /Count 4 /Parent 143 0 R /Kids [107 0 R 111 0 R 114 0 R 117 0 R] >> endobj 143 0 obj << /Type /Pages /Count 22 /Kids [37 0 R 59 0 R 87 0 R 109 0 R] >> endobj 144 0 obj << /Type /Catalog /Pages 143 0 R /PTEX.Fullbanner (This is pdfTeX, Version 3.141592-1.11a) >> endobj 145 0 obj << /Producer (pdfTeX-1.11a) /Creator (TeX) /CreationDate (D:20040623102456-07'00') >> endobj xref 0 146 0000000000 65535 f 0000002502 00000 n 0000002397 00000 n 0000000009 00000 n 0000191151 00000 n 0000186560 00000 n 0000190994 00000 n 0000186004 00000 n 0000178723 00000 n 0000185847 00000 n 0000177771 00000 n 0000160837 00000 n 0000177612 00000 n 0000160314 00000 n 0000157453 00000 n 0000160155 00000 n 0000154510 00000 n 0000144612 00000 n 0000154350 00000 n 0000142568 00000 n 0000136811 00000 n 0000142411 00000 n 0000136044 00000 n 0000123300 00000 n 0000135884 00000 n 0000120915 00000 n 0000113404 00000 n 0000120755 00000 n 0000112723 00000 n 0000105142 00000 n 0000112563 00000 n 0000102813 00000 n 0000099650 00000 n 0000102654 00000 n 0000099408 00000 n 0000097171 00000 n 0000099251 00000 n 0000191547 00000 n 0000006357 00000 n 0000006249 00000 n 0000002687 00000 n 0000010182 00000 n 0000010074 00000 n 0000006498 00000 n 0000096886 00000 n 0000094823 00000 n 0000096727 00000 n 0000014192 00000 n 0000014084 00000 n 0000010346 00000 n 0000017815 00000 n 0000017707 00000 n 0000014344 00000 n 0000021940 00000 n 0000021832 00000 n 0000017955 00000 n 0000025818 00000 n 0000025710 00000 n 0000022069 00000 n 0000191656 00000 n 0000029411 00000 n 0000029303 00000 n 0000025958 00000 n 0000033250 00000 n 0000033142 00000 n 0000029552 00000 n 0000037155 00000 n 0000037047 00000 n 0000033402 00000 n 0000090798 00000 n 0000087812 00000 n 0000090637 00000 n 0000087491 00000 n 0000084175 00000 n 0000087330 00000 n 0000040577 00000 n 0000040469 00000 n 0000037344 00000 n 0000082237 00000 n 0000080267 00000 n 0000082079 00000 n 0000044322 00000 n 0000044214 00000 n 0000040741 00000 n 0000046939 00000 n 0000046831 00000 n 0000044463 00000 n 0000191766 00000 n 0000049275 00000 n 0000049167 00000 n 0000047091 00000 n 0000052989 00000 n 0000052881 00000 n 0000049415 00000 n 0000056743 00000 n 0000056635 00000 n 0000053129 00000 n 0000060665 00000 n 0000060557 00000 n 0000056860 00000 n 0000063956 00000 n 0000063845 00000 n 0000060794 00000 n 0000079994 00000 n 0000077643 00000 n 0000079834 00000 n 0000067556 00000 n 0000067444 00000 n 0000064099 00000 n 0000191877 00000 n 0000070897 00000 n 0000070785 00000 n 0000067686 00000 n 0000074304 00000 n 0000074192 00000 n 0000071051 00000 n 0000075852 00000 n 0000075740 00000 n 0000074458 00000 n 0000076005 00000 n 0000080199 00000 n 0000082434 00000 n 0000082474 00000 n 0000087700 00000 n 0000091072 00000 n 0000090998 00000 n 0000093136 00000 n 0000097097 00000 n 0000099606 00000 n 0000103090 00000 n 0000103012 00000 n 0000113062 00000 n 0000121248 00000 n 0000121590 00000 n 0000136475 00000 n 0000142817 00000 n 0000142972 00000 n 0000154784 00000 n 0000155096 00000 n 0000160587 00000 n 0000178307 00000 n 0000186307 00000 n 0000191377 00000 n 0000191978 00000 n 0000192061 00000 n 0000192172 00000 n trailer << /Size 146 /Root 144 0 R /Info 145 0 R /ID [<3756089C72F9951B769F90D099E1CF20> <3756089C72F9951B769F90D099E1CF20>] >> startxref 192275 %%EOF tex-common-6.04ubuntu1/doc/tds-1.1/tds.sed0000664000000000000000000000062412607350221015070 0ustar # $Id: tds.sed,v 1.2 2004/06/04 17:11:34 karl Exp $ # Written by Ulrik Vieth and Karl Berry. # Public domain. # # Things that are too hard to do in Elisp. Run after tds2texi-convert. # Indentation blocks in tdsSummary environments. s/ \./ /g # References that are too hard to convert automatically. s/Table, ref{tab:summary}/@pxref{Summary},/ /^Copyright.*Group/a\ This is version @value{version}. tex-common-6.04ubuntu1/doc/tds-1.1/tds.tex0000664000000000000000000017761212607350221015131 0ustar %&latex % $Id: tds.tex,v 1.43 2004/06/23 17:24:42 karl Exp $ \NeedsTeXFormat{LaTeX2e} % compatibility with 2.09 is too painful \documentclass{tdsguide} \tdsVersion{1.1} \title{A Directory Structure for \TeX{} Files} \author{TUG Working Group on a \TeX{} Directory Structure (TWG-TDS)} \begin{document} \maketitle \begin{legalnotice} Copyright {\copyright} 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 \TeX{} Users Group. Permission to use, copy, and distribute this document \emphasis{without modification} for any purpose and without fee is hereby granted, provided that this notice appears in all copies. It is provided ``as is'' without expressed or implied warranty. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the modifications are clearly marked and the document is not represented as the official one. This document is available on any \abbr{ctan} host (see Appendix~\ref{sec:Related references}). Please send questions or suggestions by email to \email|tds@tug.org|. We welcome all comments. This is version \the\tdsVersion. \end{legalnotice} \tableofcontents \newpage \section{Introduction} \TeX{} is a powerful, flexible typesetting system used by many people around the world. It is extremely portable and runs on virtually all operating systems. One unfortunate side effect of \TeX{}'s flexibility, however, is that there has been no single ``right'' way to install it. This has resulted in many sites having different installed arrangements. The primary purpose of this document is to describe a standard \TeX{} Directory Structure (\abbr{TDS}): a directory hierarchy for macros, fonts, and the other implementation-independent \TeX{} system files. As a matter of practicality, this document also suggests ways to incorporate the rest of the \TeX{} files into a single structure. The \abbr{TDS} has been designed to work on all modern systems. In particular, the Technical Working Group (\abbr{TWG}) believes it is usable under Mac\abbr{OS}, \abbr{ms-dos}, \abbr{os/2}, Unix, \abbr{vms}, and Windows \abbr{nt}\@. We hope that administrators and developers of both free and commercial \TeX{} implementations will adopt this standard. This document is intended both for the \TeX{} system administrator at a site and for people preparing \TeX{} distributions---everything from a complete runnable system to a single macro or style file. It may also help \TeX{} users find their way around systems organized this way. It is not a tutorial: we necessarily assume knowledge of the many parts of a working \TeX{} system. If you are unfamiliar with any of the programs or file formats we refer to, consult the references in Appendix~\ref{sec:Related references}. \subsection{History} Version 1.0 of the \abbr{TDS} was released in February 2003. Version 1.1 was released in June 2004, with the following non-editorial changes: \begin{itemize-squeeze} \item Inputs for \TeX{} extensions included under \path|tex|, instead of in their own top-level directories (Section~\ref{sec:Extensions}) \item New top-level directory \path|scripts| (Section~\ref{sec:Scripts}). \item New subdirectories \path|lig|, \path|opentype|, \path|truetype|, and \path|type3| under \path|fonts| (Section~\ref{sec:Fonts}). \item \path|enc|, \path|lig|, and \path|map| all use \replaceable{syntax}\path|/|\replaceable{package} subdirectories (Section~\ref{sec:Fonts}). \item \path|pfm| files specified to go under \path|type1|, and \path|inf| files under \path|afm| (Section~\ref{sec:Fonts}). \end{itemize-squeeze} \subsection{The role of the \abbr{TDS}} The role of the \abbr{TDS} is to stabilize the organization of \TeX{}-related software packages that are installed and in use, possibly on multiple platforms simultaneously. At first glance, it may seem that the Comprehensive \TeX{} Archive Network (\abbr{ctan}) fulfills at least part of this role, but this is not the case. The role of \abbr{ctan} is to simplify archiving and distribution, not installation and use. In fact, the roles of the \abbr{TDS} and \abbr{ctan} are frequently in conflict, as we will see. For distribution, many different types of files must be combined into a single unit; for use, it is traditional to segregate files (even similar files) from a single package into separate, occasionally distant, directories. \subsection{Conventions} In this document, ``\path|/|'' is used to separate filename components; for example, \path|texmf/fonts|. This is the Unix convention but the ideas are in no way Unix-specific. In this document, ``\TeX{}'' generally means the \TeX{} system, including \MF{}, \abbr{DVI} drivers, utilities, etc., not just the \TeX{} program itself. The word ``package'' in this document has its usual meaning: a set of related files distributed, installed, and maintained as a unit. This is \emphasis{not} a \LaTeXe{} package, which is a style file supplementing a document class. We use the following typographic conventions: \begin{description} \item[\literal{literal}] Literal text such as \literal{filename} is typeset in typewriter type. \item[\replaceable{replaceable}] Replaceable text such as \replaceable{package}, identifying a class of things, is typeset in italics inside angle brackets. \end{description} \section{General} This section describes common properties throughout the \abbr{TDS} tree. \subsection{Subdirectory searching} \label{sec:Subdirectory searching} Older \TeX{} installations store large numbers of related files in single directories, for example, all \path|TFM| files and\slash or all \TeX{} input files. This monolithic arrangement hinders maintenance of a \TeX{} system: it is difficult to determine what files are used by what packages, what files need to be updated when a new version is installed, or what files should be deleted if a package is removed. It is also a source of error if two or more packages happen to have input files with the same name. Therefore, the \abbr{TWG} felt each package should be in a separate directory. But we recognized that explicitly listing all directories to be searched would be unbearable. A site may wish to install dozens of packages. Aside from anything else, listing that many directories would produce search paths many thousands of characters long, overflowing the available space on some systems. Also, if all directories are explicitly listed, installing or removing a new package would mean changing a path as well as installing or removing the actual files. This would be a time-consuming and error-prone operation, even with implementations that provide some way to specify the directories to search at runtime. On systems without runtime configuration, it would require recompiling software, an intolerable burden. As a result, the \abbr{TWG} concluded that a comprehensive \abbr{TDS} requires implementations to support some form of implicit subdirectory searching. More precisely, implementations must make it possible to specify that \TeX{}, \MF{}, and their companion utilities search in both a specified directory and recursively through all subdirectories of that directory when looking for an input file. Other forms of subdirectory searching, for example recursive-to-one-level searches, may also be provided. We encourage implementors to provide subdirectory searching at the option of the installer and user for all paths. The \abbr{TDS} does not specify a syntax for specifying recursive searching, but we encourage implementors to provide interoperability (see Section~\ref{sec:More on subdirectory searching}). \subsection{Rooting the tree} \label{sec:Rooting the tree} In this document, we shall designate the root \abbr{TDS} directory by `\texmf{}' (for ``\TeX{} and \MF{}''). We recommend using that name where possible, but the actual name of the directory is up to the installer. On \abbr{pc} networks, for example, this could map to a logical drive specification such as \path|T:|. Similarly, the location of this directory on the system is site-dependent. It may be at the root of the file system; on Unix systems, \path|/usr/local/share|, \path|/usr/local|, \path|/usr/local/lib|, and \path|/opt| are common choices. The name \texmf{} was chosen for several reasons: it reflects the fact that the directory contains files pertaining to an entire \TeX{} system (including \MF{}, \MP{}, \BibTeX{}, etc.), not just \TeX{} itself; and it is descriptive of a generic installation rather than a particular implementation. A site may choose to have more than one \abbr{TDS} hierarchy installed (for example, when installing an upgrade). This is perfectly legitimate. \subsection{Local additions} \label{sec:Local additions} The \abbr{TDS} cannot specify precisely when a package is or is not a ``local addition''. Each site must determine this according to its own conventions. At the two extremes, one site might wish to consider ``nonlocal'' all files not acquired as part of the installed \TeX{} distribution; another site might consider ``local'' only those files that were actually developed at the local site and not distributed elsewhere. We recognize two common methods for local additions to a distributed \texmf{} tree. Both have their place; in fact, some sites employ both simultaneously: \begin{enumerate} \item A completely separate tree which is a \abbr{TDS} structure itself; for example, \path|/usr/local/umbtex| at the University of Massachusetts at Boston. This is another example of the multiple \texmf{} hierarchies mentioned in the previous section. \item A directory named `\path|local|' at any appropriate level, for example, in the \replaceable{format}, \replaceable{package}, and \replaceable{supplier} directories discussed in the following sections. The \abbr{TDS} reserves the directory name \path|local| for this purpose. We recommend using \path|local| for site-adapted configuration files, such as \path|language.dat| for the Babel package or \path|graphics.cfg| for the graphics package. Unmodified configuration files from a package should remain in the package directory. The intent is to separate locally modified or created files from distribution files, to ease installing new releases. \end{enumerate} One common case of local additions is dynamically generated files, e.g., \abbr{PK} fonts by the \path|mktexpk| script (which originated in \application{Dvips} as \path|MakeTeXPK|). A site may store the generated files directly in any of: \begin{itemize-squeeze} \item their standard location in the main \abbr{TDS} tree (if it can be made globally writable); \item an alternative location in the main \abbr{TDS} tree (for example, under \path|texmf/fonts/tmp|); \item a second complete \abbr{TDS} tree (as outlined above); \item any other convenient directory (perhaps under \path|/var|, for example \path|/var/spool/fonts|). \end{itemize-squeeze} No one solution will be appropriate for all sites. \subsection{Duplicate filenames} \label{sec:Duplicate filenames} Different files by the same name may exist in a \abbr{TDS} tree. The \abbr{TDS} generally leaves unspecified which of two files by the same name in a search path will be found, so generally the only way to reliably find a given file is for it to have a unique name. However, the \abbr{TDS} requires implementations to support the following exceptions: \begin{itemize} \item Names of \TeX{} input files must be unique within each first-level subdirectory of \path|texmf/tex| and \path|texmf/tex/generic|, but not within all of \path|texmf/tex|; i.e., different \TeX{} formats may have files by the same name. (Section~\ref{sec:Macros} discusses this further.) Thus, no single format-independent path specification, such as a recursive search beginning at \path|texmf/tex| specifying no other directories, suffices. So implementations must provide format-dependent path specifications, for example via wrapper scripts or configuration files. \item Many font files will have the same name (e.g., \path|cmr10.pk|), as discussed in Section~\ref{sec:Valid font bitmaps}. Implementations must distinguish these files by mode and resolution. \end{itemize} All implementations we know of already have these capabilities. One place where duplicate names are likely to occur is not an exception: \begin{itemize} \item Names of \MF{} input files (as opposed to bitmaps) must be unique within all of \path|texmf/fonts|. In practice, this is a problem with some variants of Computer Modern which contain slightly modified files named \path|punct.mf|, \path|romanl.mf|, and so on. We believe the only feasible solution is to rename the derivative files to be unique. \end{itemize} \section{Top-level directories} \label{sec:Top-level directories} The directories under the \texmf{} root identify the major components of a \TeX{} system (see Section~\ref{sec:Summary} for a summary). A site may omit any unneeded directories. Although the \abbr{TDS} by its nature can specify precise locations only for implementation-independent files, we recognize that installers may well wish to place other files under \texmf{} to simplify administration of the \TeX{} tree, especially if it is maintained by someone other than the system administrator. Therefore, additional top-level directories may be present. The top-level directories specified by the \abbr{TDS} are: \begin{description} \item[\path|tex|] for \TeX{} files (Section~\ref{sec:Macros}). \item[\path|fonts|] for font-related files (Section~\ref{sec:Fonts}). \item[\path|metafont|] for \MF{} files which are not fonts (Section~\ref{sec:Non-font MF files}). \item[\path|metapost|] for \MP{} files (Section~\ref{sec:MetaPost}). \item[\path|bibtex|] for \BibTeX{} files (Section~\ref{sec:BibTeX}). \item[\path|scripts|] for platform-independent executables (Section~\ref{sec:Scripts}). \item[\path|doc|] for user documentation (Section~\ref{sec:Documentation}). \item[\path|source|] for sources. This includes both traditional program sources (for example, \application{Web2C} sources go in \path|texmf/source/web2c|) and, e.g., \LaTeX{} \path|dtx| sources (which go in \path|texmf/source/latex|). The \abbr{TDS} leaves unspecified any structure under \path|source|. \path|source| is intended for files which are not needed at runtime by any \TeX{} program; it should not be included in any search path. For example, \path|plain.tex| does not belong under \path|texmf/source|, even though it is a ``source file'' in the sense of not being derived from another file. (It goes in \path|texmf/tex/plain/base|, as explained in Section~\ref{sec:Macros}). \item[\replaceable{implementation}] for implementations (examples: \path|emtex|, \path|vtex|, \path|web2c|), to be used for whatever purpose deemed suitable by the implementor or \TeX{} administrator. That is, files that cannot be shared between implementations, such as pool files (\path|tex.pool|) and memory dump files (\path|plain.fmt|) go here, in addition to implementation-wide configuration files. See Section~\ref{sec:Example implementation-specific trees} for examples of real \replaceable{implementation} trees. Such implementation-specific configuration files should \emphasis{not} be located using the main \TeX{} input search path (e.g., \path|TEXINPUTS|). This must be reserved for files actually read by a \TeX{} engine. See Section~\ref{sec:Extensions}. \item[\replaceable{program}] for program-specific input and configuration files for any \TeX{}-related programs (examples: \path|mft|, \path|dvips|). In fact, the \path|tex|, \path|metafont|, \path|metapost|, and \path|bibtex| items above may all be seen as instances of this case. \end{description} \subsection{Macros} \label{sec:Macros} \TeX{} macro files shall be stored in separate directories, segregated by \TeX{} format and package name (we use `format' in its traditional \TeX{} sense to mean a usefully \path|\dump|-able package): \begin{ttdisplay} texmf/tex/\replaceable{format}/\replaceable{package}/ \end{ttdisplay} \begin{description} \item[\replaceable{format}] is a format name (examples: \path|amstex|, \path|latex|, \path|plain|, \path|texinfo|). The \abbr{TDS} allows distributions that can be used as either formats or packages (e.g., Texinfo, Eplain) to be stored at either level, at the option of the format author or \TeX{} administrator. We recommend that packages used as formats at a particular site be stored at the \replaceable{format} level: by adjusting the \TeX{} inputs search path, it will be straightforward to use them as macro packages under another format, whereas placing them in another tree completely obscures their use as a format. The \abbr{TDS} reserves the following \replaceable{format} names: \begin{itemize} \item \path|generic|, for input files that are useful across a wide range of formats (examples: \path|null.tex|, \path|path.sty|). Generally, this means any format that uses the category codes of Plain \TeX{} and does not rely on any particular format. This is in contrast to those files which are useful only with Plain \TeX{} (which go under \path|texmf/tex/plain|), e.g., \path|testfont.tex| and \path|plain.tex| itself. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} Thus, for almost every format, it is necessary to search at least the \replaceable{format} directory and then the \path|generic| directory (in that order). Other directories may need to be searched as well, depending on the format. When using \AMSTeX{}, for example, the \path|amstex|, \path|plain|, and \path|generic| directories should be searched, because \AMSTeX{} is compatible with Plain. \item[\replaceable{package}] is a \TeX{} package name (examples: \path|babel|, \path|texdraw|). In the case where a format consists of only a single file and has no auxiliary packages, that file can simply be placed in the \replaceable{format} directory, instead of \replaceable{format}\path|/base|. For example, Texinfo may go in \path|texmf/tex/texinfo/texinfo.tex|, not \path|texmf/tex/texinfo/base/texinfo.tex|. The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the base distribution of each format, including files used by \iniTeX{} when dumping format files. For example, in the standard \LaTeX{} distribution, the \path|ltx| files created during the build process. Another example: the \path|.ini| driver files for formats used by \TeX{} Live and other distributions. \item \path|hyphen|, for hyphenation patterns, including the original American English \path|hyphen.tex|. These are typically used only by \iniTeX{}. In most situations, this directory need exist only under the \literal{generic} format. \item \path|images|, for image input files, such as Encapsulated PostScript figures. Although it is somewhat non-intuitive for these to be under a directory named ``\path|tex|'', \TeX{} needs to read these files to glean bounding box or other information. A mechanism for sharing image inputs between \TeX{} and other typesetting programs (e.g., Interleaf, FrameMaker) is beyond the scope of the \abbr{TDS}\@. In most situations, this directory need exist only under the \literal{generic} format. \item \path|local|, for local additions and configuration files. See Section~\ref{sec:Local additions}. \item \path|misc|, for packages that consist of a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \end{description} \subsubsection{Extensions} \label{sec:Extensions} \TeX{} has spawned many companion and successor programs (``engines''), such as \abbr{PDF}\TeX{}, Omega, and others. The \abbr{TDS} specifies that the input files for such programs (using a \TeX{}-like syntax) be placed within the top-level \path|tex| directory, either at the top level or within a format subdirectory, even though the original \TeX{} program may not be able to read them. For example: \begin{ttdisplay} texmf/tex/aleph texmf/tex/enctex \end{ttdisplay} This is a change from \abbr{TDS}~1.0, which specified top-level \replaceable{extension} directories for each such program. We felt the new approach is preferable, because: \begin{itemize} \item Authors of relevant packages typically make their code detect the engine being used, and issue error messages or adapt to circumstances appropriately. Furthermore, as a package matures, it may support multiple engines. Thus, a package could conceivably be placed in any of several top-level directories, at different times. Putting all packages under the top-level \path|tex| directory provides a stable location over time. \item Users need to be able to switch between engines, and configuring different search paths for each engine is difficult and error-prone. \end{itemize} Thus, in practice, having different top-level directories caused difficulties for everyone involved---users, package authors, site administrators, and system distributors. Please contrast this approach with the \replaceable{implementation} top-level subdirectory (Section~\ref{sec:Top-level directories}), which is to be used for configuration files that (presumably) do not use \TeX{} syntax and in any case should not be found along the main \TeX{} input search path. \subsection{Fonts} \label{sec:Fonts} Font files are stored in separate directories, segregated by file type, and then (in most cases) font supplier and typeface. \abbr{PK} and \abbr{GF} files need additional structure, as detailed in the next section. \begin{ttdisplay} texmf/fonts/\replaceable{type}/\replaceable{supplier}/\replaceable{typeface}/ texmf/fonts/enc,lig,map/\replaceable{subpath}/ \end{ttdisplay} \begin{description} \item[\replaceable{type}] is the type of font file. The \abbr{TDS} reserves the following \replaceable{type} names for common \TeX{} file types: \begin{itemize-squeeze} \item \path|afm|, for Adobe font metrics, and \path|inf| files. \item \path|gf|, for generic font bitmap files. \item \path|opentype|, for OpenType fonts. \item \path|pk|, for packed bitmap files. \item \path|source|, for font sources (\MF{} files, property lists, etc.). \item \path|tfm|, for \TeX{} font metric files. \item \path|truetype|, for TrueType fonts. \item \path|type1|, for PostScript Type 1 fonts (in \path|pfa|, \path|pfb|, or any other format), and \path|pfm| files. \item \path|type3|, for PostScript Type 3 fonts. \item \path|vf|, for virtual fonts. \end{itemize-squeeze} The \abbr{TDS} also reserves the names \path|enc|, \path|lig|, and \path|map| for font encoding, ligature, and mapping files, respectively. All of these directories are structured the same way, with \replaceable{syntax} subdirectories, and then \replaceable{package} subsubdirectories. Each of these file types is intended to be searched along its own recursively-searched path. The names of the actual files must be unique within their subtree, as usual. Examples: \begin{ttdisplay} fonts/map/dvipdfm/updmap/dvipdfm.map fonts/map/dvips/lm/lm.map fonts/enc/dvips/base/8r.enc \end{ttdisplay} The Fontname and Dvips packages have more examples of the \path|enc| and \path|map| types. The \path|afm2pl| program uses \path|lig| files. \path|pfm| files are included in the \path|type1| directory, instead of being given their own directory, for two reasons: 1)~a \path|.pfm| file is always an adjunct to a given \path|.pfb| file; 2)~they must be installed from the same directory for Windows programs other than \TeX{} to use them. \path|inf| files are included in the \path|afm| directory, since an \path|inf| and \path|afm| file can be used to generate a \path|pfm|. (Unfortunately, Adobe Type Manager and perhaps other software requires that the \path|pfb| be in the same directory as \path|afm| and \path|inf| for installation.) As usual, a site may omit any of these directories that are unnecessary. \path|gf| is a particularly likely candidate for omission. \item[\replaceable{supplier}] is a name identifying font source (examples: \path|adobe|, \path|ams|, \path|public|). The \abbr{TDS} reserves the following \replaceable{supplier} names: \begin{itemize} \item \path|ams|, for the American Mathematical Society's \AmS{}-fonts collection. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|public|, for freely redistributable fonts where the supplier neither (1)~requested their own directory (e.g., \path|ams|), nor (2)~also made proprietary fonts (e.g., \path|adobe|). It does not contain all extant freely distributable fonts, nor are all files therein necessarily strictly public domain. \item \path|tmp|, for dynamically-generated fonts, as is traditional on some systems. It may be omitted if unnecessary, as usual. \end{itemize} \item[\replaceable{typeface}] is the name of a typeface family (examples: \path|cm|, \path|euler|, \path|times|). The \abbr{TDS} reserves the following \replaceable{typeface} names: \begin{itemize} \item \path|cm| (within \path|public|), for the 75 fonts defined in \citetitle{Computers and Typesetting, Volume~E}. \item \path|latex| (within \path|public|), for those fonts distributed with \LaTeX{} in the base distribution. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} \end{description} Some concrete examples: \begin{ttdisplay} texmf/fonts/source/public/pandora/pnr10.mf texmf/fonts/tfm/public/cm/cmr10.tfm texmf/fonts/type1/adobe/utopia/putr.pfa \end{ttdisplay} For complete supplier and typeface name lists, consult \citetitle{Filenames for \TeX{} fonts} (see Appendix~\ref{sec:Related references}). \subsubsection{Font bitmaps} Font bitmap files require two characteristics in addition to the above to be uniquely identifiable: (1)~the type of device (i.e., mode) for which the font was created; (2)~the resolution of the bitmap. Following common practice, the \abbr{TDS} segregates fonts with different device types into separate directories. See \path|modes.mf| in Appendix~\ref{sec:Related references} for recommended mode names. Some printers operate at more than one resolution (e.g., at 300\,dpi and 600\,dpi), but each such resolution will necessarily have a different mode name. Nothing further is needed, since implicit in the \TeX{} system is the assumption of a single target resolution. Two naming strategies are commonly used to identify the resolution of bitmap font files. On systems that allow long filenames (and in the original \MF{} program itself), the resolution is included in the filename (e.g., \path|cmr10.300pk|). On systems which do not support long filenames, fonts are generally segregated into directories by resolution (e.g., \path|dpi300/cmr10.pk|). Because the \abbr{TDS} cannot require long filenames, we must use the latter scheme for naming fonts. So we have two more subdirectory levels under \path|pk| and \path|gf|: \begin{ttdisplay} texmf/fonts/pk/\replaceable{mode}/\replaceable{supplier}/\replaceable{typeface}/dpi\replaceable{nnn}/ texmf/fonts/gf/\replaceable{mode}/\replaceable{supplier}/\replaceable{typeface}/dpi\replaceable{nnn}/ \end{ttdisplay} \begin{description} \item[\replaceable{mode}] is a name which identifies the device type (examples: \path|cx|, \path|ljfour|, \path|modeless|). Usually, this is the name of the \MF{} mode used to build the \abbr{PK} file. For fonts rendered as bitmaps by a program that does not distinguish between different output devices, the \replaceable{mode} name shall be simply \path|modeless|. The \replaceable{mode} level shall not be omitted, even if only a single mode happens to be in use. \item[\path|dpi|\replaceable{nnn}] specifies the resolution of the font (examples: \path|dpi300|, \path|dpi329|). `\literal{dpi}' stands for dots per inch, i.e., pixels per inch. We recognize that pixels per millimeter is used in many parts of the world, but dpi is too traditional in the \TeX{} world to consider changing now. The integer \replaceable{nnn} is to be calculated as if using \MF{} arithmetic and then rounded; i.e., it is the integer \MF{} uses in its output \path|gf| filename. We recognize small differences in the resolution are a common cause of frustration among users, however, and recommend implementors follow the level~0 \abbr{DVI} driver standard (see Appendix~\ref{sec:Related references}) in bitmap font searches by allowing a fuzz of $\pm0.2$\% (with a minimum of $1$) in the \replaceable{dpi}. \end{description} Implementations may provide extensions to the basic naming scheme, such as long filenames (as in the original \MF{}) and font library files (as in em\TeX{}'s \path|.fli| files), provided that the basic scheme is also supported. \subsubsection{Valid font bitmaps} \label{sec:Valid font bitmaps} The \abbr{TWG} recognizes that the use of short filenames has many disadvantages. The most vexing is that it results in the creation of dozens of different files with the same name. At a typical site, \path|cmr10.pk| will be the filename for Computer Modern Roman 10\,pt at 5--10 magnifications for 2--3 modes. (Section~\ref{sec:Duplicate filenames} discusses duplicate filenames in general.) To minimize this problem, we strongly recommend that \abbr{PK} files contain enough information to identify precisely how they were created: at least the mode, base resolution, and magnification used to create the font. This information is easy to supply: a simple addition to the local modes used for building the fonts with \MF{} will automatically provide the required information. If you have been using a local modes file derived from (or that is simply) \path|modes.mf| (see Appendix~\ref{sec:Related references}), the required information is already in your \abbr{PK} files. If not, a simple addition based on the code found in \path|modes.mf| can be made to your local modes file and the \abbr{PK} files rebuilt. \subsection{Non-font \MF{} files} \label{sec:Non-font MF files} Most \MF{} input files are font programs or parts of font programs and are thus covered by the previous section. However, a few non-font input files do exist. Such files shall be stored in: \begin{ttdisplay} texmf/metafont/\replaceable{package}/ \end{ttdisplay} \replaceable{package} is the name of a \MF{} package (for example, \path|mfpic|). The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the standard \MF{} macro files as described in \citetitle{The \MF{}book}, such as \path|plain.mf| and \path|expr.mf|. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \MF{} packages consisting of only a single file (for example, \path|modes.mf|). An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \subsection{\MP{}} \label{sec:MetaPost} \MP{} is a picture-drawing language developed by John Hobby, derived from Knuth's \MF{}. Its primary purpose is to output Encapsulated \PS{} instead of bitmaps. \MP{} input files and the support files for \MP{}-related utilities shall be stored in: \begin{ttdisplay} texmf/metapost/\replaceable{package}/ \end{ttdisplay} \replaceable{package} is the name of a \MP{} package. At the present writing none exist, but the \abbr{TWG} thought it prudent to leave room for contributed packages that might be written in the future. The \abbr{TDS} reserves the following \replaceable{package} names: \begin{itemize} \item \path|base|, for the standard \MP{} macro files, such as \path|plain.mp|, \path|mfplain.mp|, \path|boxes.mp|, and \path|graph.mp|. This includes files used by \iniMP{} when dumping mem files containing preloaded macro definitions. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \MP{} packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \item \path|support|, for additional input files required by \MP{} utility programs, including a font map, a character adjustment table, and a subdirectory containing low-level \MP{} programs for rendering some special characters. \end{itemize} \subsection{\BibTeX{}} \label{sec:BibTeX} \BibTeX{}-related files shall be stored in: \begin{ttdisplay} texmf/bibtex/bib/\replaceable{package}/ texmf/bibtex/bst/\replaceable{package}/ \end{ttdisplay} The \path|bib| directory is for \BibTeX{} database (\path|.bib|) files, the \path|bst| directory for style (\path|.bst|) files. \replaceable{package} is the name of a \BibTeX{} package. The \abbr{TDS} reserves the following \replaceable{package} names (the same names are reserved under both \path|bib| and \path|bst|): \begin{itemize} \item \path|base|, for the standard \BibTeX{} databases and styles, such as \path|xampl.bib|, \path|plain.bst|. \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \item \path|misc|, for \BibTeX{} packages consisting of only a single file. An administrator or package maintainer may create directories for single-file packages at their discretion, instead of using \path|misc|. \end{itemize} \subsection{Scripts} \label{sec:Scripts} The top-level \path|scripts| directory is for platform-independent executables, such as Perl, Python, and shell scripts, and Java class files. Subdirectories under \path|scripts| are package names. This eases creating distributions, by providing a common place for such platform-independent programs. The intent is not for all such directories to be added to a user's command search path, which would be quite impractical. Rather, these executables are primarily for the benefit of wrapper scripts in whatever executable directory a distribution may provide (which is not specified by the \abbr{TDS}). Truly auxiliary scripts which are invoked directly by other programs, rather than wrapper scripts, may also be placed here. That is, \path|scripts| also serves as a platform-independent analog of the standard Unix \path|libexec| directory. We recommend using extensions specifying the language (such as \path|.pl|, \path|.py|, \path|.sh|) on these files, to help uniquely identify the name. Since the intent of the \abbr{TDS} is for programs in \path|scripts| not to be invoked directly by users, this poses no inconvenience. For example, in the \TeX{} Live distribution, the Con\TeX{}t user-level program \path|texexec| can exist as a small wrapper script in each \path|bin/|\replaceable{platform}\path|/texexec| (which is outside the \path|texmf| tree), which merely finds and calls \path|texmf/scripts/context/perl/texexec.pl|. Examples: \begin{ttdisplay} scripts/context/perl/texexec.pl scripts/context/ruby/examplex.rb scripts/thumbpdf/thumbpdf.pl \end{ttdisplay} The \abbr{TDS} does not specify a location for platform-dependent binary executables, whether auxiliary or user-level. \subsection{Documentation} \label{sec:Documentation} Most packages come with some form of documentation: user manuals, example files, programming guides, etc. In addition, many independent files not part of any macro or other package have been created to describe various aspects of the \TeX{} system. The \abbr{TDS} specifies that these additional documentation files shall be stored in a structure that parallels to some extent the \path|fonts| and \path|tex| directories, as follows: \begin{ttdisplay} texmf/doc/\replaceable{category}/... \end{ttdisplay} \replaceable{category} identifies the general topic of documentation that resides below it; for example, a \TeX{} format name (\path|latex|), program name (\path|bibtex|, \path|tex|), language (\path|french|, \path|german|), a file format (\path|info|, \path|man|), or other system components (\path|web|, \path|fonts|). One possible arrangement is to organize \path|doc| by language, with all the other category types below that. This helps users find documentation in the language(s) in which they are fluent. Neither this nor any other particular arrangement is required, however. Within each \replaceable{category} tree for a \TeX{} format, the directory \path|base| is reserved for base documentation distributed by the format's maintainers. The \abbr{TDS} reserves the following category names: \begin{itemize} \item \path|general|, for standalone documents not specific to any particular program (for example, Joachim Schrod's \citetitle{Components of \TeX{}}). \item \path|help|, for meta-information, such as \abbr{faq}'s, the \TeX{} Catalogue, etc. \item \path|info|, for processed Texinfo documents. (Info files, like anything else, may also be stored outside the \abbr{TDS}, at the installer's option.) \item \path|local|, for local additions. See Section~\ref{sec:Local additions}. \end{itemize} The \path|doc| directory is intended for implementation-independent and operating system-independent documentation files. Implementation-dependent files are best stored elsewhere, as provided for by the implementation and/or \TeX{} administrator (for example, \abbr{VMS} help files under \path|texmf/vms/help|). The documentation directories may contain \TeX{} sources, \abbr{DVI} files, \PS{} files, text files, example input files, or any other useful documentation format(s). See Section~\ref{sec:Documentation tree summary} for a summary. \newpage \section{Summary} \label{sec:Summary} A skeleton of a \abbr{TDS} \texmf{} directory tree. This is not to imply these are the only entries allowed. For example, \path|local| may occur at any level. \begin{tdsSummary} bibtex/ \BibTeX{} input files . bib/ \BibTeX{} databases . . base/ base distribution (e.g., \path|xampl.bib|) . . misc/ single-file databases . / name of a package . bst/ \BibTeX{} style files . . base/ base distribution (e.g., \path|plain.bst|, \path|acm.bst|) . . misc/ single-file styles . / name of a package doc/ see Section~\ref{sec:Documentation} and the summary below fonts/ font-related files . / file type (e.g., \path|pk|) . . / type of output device (for \path|pk| and \path|gf| only) . . . / name of a font supplier (e.g., \path|public|) . . . . / name of a typeface (e.g., \path|cm|) . . . . . dpi/ font resolution (for \path|pk| and \path|gf| only) / \TeX{} implementations, by name (e.g., \path|emtex|) local/ files created or modified at the local site metafont/ \MF{} (non-font) input files . base/ base distribution (e.g., \path|plain.mf|) . misc/ single-file packages (e.g., \path|modes.mf|) . / name of a package (e.g., \path|mfpic|) metapost/ \MP{} input and support files . base/ base distribution (e.g., \path|plain.mp|) . misc/ single-file packages . / name of a package . support/ support files for \MP{}-related utilities mft/ \path|MFT| inputs (e.g., \path|plain.mft|) / \TeX{}-related programs, by name (e.g., \path|dvips|) source/ program source code by name (e.g., \path|latex|, \path|web2c|) tex/ \TeX{} input files . / name of an engine (e.g., \path|aleph|); can also be lower . / name of a format (e.g., \path|plain|) . . base/ base distribution for format (e.g., \path|plain.tex|) . . misc/ single-file packages (e.g., \path|webmac.tex|) . . local/ local additions to or local configuration files for \replaceable{format} . . / name of a package (e.g., \path|graphics|, \path|mfnfss|) . generic/ format-independent packages . . hyphen/ hyphenation patterns (e.g., \path|hyphen.tex|) . . images/ image input files (e.g., Encapsulated PostScript) . . misc/ single-file format-independent packages (e.g., \path|null.tex|). . . / name of a package (e.g., \path|babel|) \end{tdsSummary} \newpage \subsection{Documentation tree summary} \label{sec:Documentation tree summary} An example skeleton of a \abbr{TDS} directory tree under \path|texmf/doc|. This is not to imply these are the only entries allowed, or that this structure must be followed precisely for the entries listed. As mentioned, the \path|texmf/doc| tree may be organized by language, so that all documentation in French, say, is in a \path|french| subdirectory. In that case, the example structure here would be in a given language directory. \begin{tdsSummary} ams/ . amsfonts/ \path|amsfonts.faq|, \path|amfndoc| . amslatex/ \path|amslatex.faq|, \path|amsldoc| . amstex/ \path|amsguide|, \path|joyerr| bibtex/ \BibTeX{} . base/ \path|btxdoc.tex| fonts/ . fontname/ \citetitle{Filenames for \TeX{} fonts} . oldgerm/ \path|corkpapr| / name of a \TeX{} format (e.g., \path|generic|, \path|latex|) . base/ for the base distribution . misc/ for contributed single-file package documentation . / for \emphasis{package} general/ across programs, generalities . errata/ \path|errata|, \path|errata[1-8]| . texcomp/ \citetitle{Components of \TeX{}} help/ meta-information . ctan/ info about \abbr{ctan} mirror sites . faq/ \abbr{faq}s of \path|comp.text.tex|, etc. info/ \abbr{gnu} Info files, made from Texinfo sources latex/ example of \replaceable{format} . base/ \path|ltnews*|, \path|*guide|, etc. . graphics/ \path|grfguide| local/ site-specific documentation man/ Unix man pages / \TeX{}-related programs, by name (examples follow) metafont/ \path|mfbook.tex|, \path|metafont-for-beginners|, etc. metapost/ \path|mpman|, \path|manfig|, etc. tex/ \path|texbook.tex|, \citetitle{A Gentle Introduction to \TeX{}}, etc. web/ \path|webman|, \path|cwebman| \end{tdsSummary} \newpage \appendix \section{Unspecified pieces} The \abbr{TDS} cannot address the following aspects of a functioning \TeX{} system: \begin{enumerate} \item The location of executable programs: this is too site-dependent even to recommend a location, let alone require one. A site may place executables outside the \texmf{} tree altogether (e.g., \path|/usr/local/bin|), in a platform-dependent directory within \texmf{}, or elsewhere. \item Upgrading packages when new releases are made: we could find no way of introducing version specifiers into \texmf{} that would do more good than harm, or that would be practical for even a plurality of installations. \item The location of implementation-specific files (e.g., \TeX{} \path|.fmt| files): by their nature, these must be left to the implementor or \TeX{} maintainer. See Section~\ref{sec:Example implementation-specific trees}. \item Precisely when a package or file should be considered ``local'', and where such local files are installed. See Section~\ref{sec:Local additions} for more discussion. \end{enumerate} \subsection{Portable filenames} \label{sec:Portable filenames} The \abbr{TDS} cannot require any particular restriction on filenames in the tree, since the names of many existing \TeX{} files conform to no standard scheme. For the benefit of people who wish to make a portable \TeX{} distribution or installation, however, we outline here the necessary restrictions. The \abbr{TDS} specifications themselves are compatible with these. \abbr{ISO}-9660 is the only universally acceptable file system format for \abbr{CD-ROM}s. A subset thereof meets the stringent limitations of all operating systems in use today. It specifies the following: \begin{itemize-squeeze} \item File and directory names, not including any directory path or extension part, may not exceed eight characters. \item Filenames may have a single extension. Extensions may not exceed three characters. Directory names may not have an extension. \item Names and extensions may consist of \emphasis{only} the characters \literal{A}--\literal{Z}, \literal{0}--\literal{9}, and underscore. Lowercase letters are excluded. \item A period separates the filename from the extension and is always present, even if the name or extension is missing (e.g., \path|FILENAME.| or \path|.EXT|). \item A version number, ranging from 1--32767, is appended to the file extension, separated by a semicolon (e.g., \path|FILENAME.EXT;1|). \item Only eight directory levels are allowed, including the top-level (mounted) directory (see Section~\ref{sec:Rooting the tree}). Thus, the deepest valid \abbr{ISO}-9660 path is: \begin{ttdisplay} texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1 1 2 3 4 5 6 7 8 \end{ttdisplay} The deepest \abbr{TDS} path needs only seven levels: \begin{ttdisplay} texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk 1 2 3 4 5 6 7 \end{ttdisplay} \end{itemize-squeeze} Some systems display a modified format of \abbr{ISO}-9660 names, mapping alphabetic characters to lowercase, removing version numbers and trailing periods, etc. Before the December 1996 release, \LaTeX{} used mixed-case names for font descriptor files. Fortunately, it never relied on case alone to distinguish among the files. Nowadays, it uses only monocase names. \section{Implementation issues} We believe that the \abbr{TDS} can bring a great deal of order to the current anarchic state of many \TeX{} installations. In addition, by providing a common frame of reference, it will ease the burden of documenting administrative tasks. Finally, it is a necessary part of any reasonable system of true ``drop-in'' distribution packages for \TeX{}. \subsection{Adoption of the \abbr{TDS}} [This section is retained for historical purposes; the \abbr{TDS} is now quite firmly entrenched in most \TeX{} distributions.] We recognize that adoption of the \abbr{TDS} will not be immediate or universal. Most \TeX{} administrators will not be inclined to make the final switch until: \begin{itemize-squeeze} \item Clear and demonstrable benefits can be shown for the \abbr{TDS}. \item \abbr{TDS}-compliant versions of all key programs are available in ported, well-tested forms. \item A ``settling'' period has taken place, to flush out problems. The public release of the first draft of this document was the first step in this process. \end{itemize-squeeze} Consequently, most of the first trials of the \abbr{TDS} will be made by members of the \abbr{TDS} committee and/or developers of \TeX{}-related software. This has already taken place during the course of our deliberations (see Appendix~\ref{sec:Related references} for a sample tree available electronically). They will certainly result in the production of a substantial number of \abbr{TDS}-compliant packages. Indeed, the \application{te\TeX{}} and \application{\TeX{} Live} distributions are \abbr{TDS}-compliant and in use now at many sites. Once installable forms of key \abbr{TDS}-compliant packages are more widespread, some \TeX{} administrators will set up \abbr{TDS}-compliant trees, possibly in parallel to existing production directories. This testing will likely flush out problems that were not obvious in the confined settings of the developers' sites; for example, it should help to resolve system and package dependencies, package interdependencies, and other details not addressed by this \abbr{TDS} version. After most of the dust has settled, hopefully even conservative \TeX{} administrators will begin to adopt the \abbr{TDS}. Eventually, most \TeX{} sites will have adopted the common structure, and most packages will be readily available in \abbr{TDS}-compliant form. We believe that this process will occur relatively quickly. The \abbr{TDS} committee spans a wide range of interests in the \TeX{} community. Consequently, we believe that most of the key issues involved in defining a workable \abbr{TDS} definition have been covered, often in detail. \TeX{} developers have been consulted about implementation issues, and have been trying out the \abbr{TDS} arrangement. Thus, we hope for few surprises as implementations mature. Finally, there are several (current or prospective) publishers of \TeX{} \abbr{CD-ROM}s. These publishers are highly motivated to work out details of \abbr{TDS} implementation, and their products will provide inexpensive and convenient ways for experimentally-minded \TeX{} administrators to experiment with the \abbr{TDS}. \subsection{More on subdirectory searching} \label{sec:More on subdirectory searching} Recursive subdirectory searching is the ability to specify a search not only of a specified directory \replaceable{d}, but recursively of all directories below \replaceable{d}. Since the \abbr{TDS} specifies precise locations for most files, with no extra levels of subdirectories allowed, true recursive searching is not actually required for a \abbr{TDS}-compliant implementation. We do, however, strongly recommend recursive searching as the most user-friendly and natural approach to the problem, rather than convoluted methods to specify paths without recursion. This feature is already supported by many implementations of \TeX{} and companion utilities, for example \abbr{DECUS} \TeX{} for \abbr{VMS}, \application{Dvips(k)}, \application{em\TeX{}} (and its drivers), \application{PubliC \TeX{}}, \application{Web2C}, \application{Xdvi(k)}, and \application{Y\&Y\TeX{}}. The Kpathsea library is a reusable implementation of subdirectory searching for \TeX{}, used in a number of the above programs. Even if your \TeX{} implementation does not directly support subdirectory searching, you may find it useful to adopt the structure if you do not use many fonts or packages. For instance, if you only use Computer Modern and \abbr{ams} fonts, it would be feasible to store them in the \abbr{TDS} layout and list the directories individually in configuration files or environment variables. The \abbr{TWG} recognizes that subdirectory searching places an extra burden on the system and may be the source of performance bottlenecks, particularly on slower machines. Nevertheless, we feel that subdirectory searching is imperative for a well-organized \abbr{TDS}, for the reasons stated in Section~\ref{sec:Subdirectory searching}. Implementors are encouraged to provide enhancements to the basic principle of subdirectory searching to avoid performance problems, e.g., the use of a filename cache (this can be as simple as a recursive directory listing) that is consulted before disk searching begins. If a match is found in the database, subdirectory searching is not required, and performance is thus independent of the number of subdirectories present on the system. Different implementations specify subdirectory searching differently. In the interest of typographic clarity, the examples here do not use the \replaceable{replaceable} font. \begin{description-squeeze} \item[\application{Dvips}:] via a separate \systemitem{ENVIRONVAR}{TEXFONTS\_SUBDIR} environment variable. \item[\application{em\TeX{}}:] \path|t:\subdir!!|; \path|t:\subdir!| for a single level of searching. \item[\application{Kpathsea}:] \path|texmf/subdir//| \item[\abbr{VMS}:] \path|texmf:[subdir...]| \item[\application{Xdvi} (patchlevel 20):] \path|texmf/subdir/**|; \path|texmf/subdir/*| for a single level of searching. Version 20.50 and above support the \path|//| notation. \item[\application{Y\&Y \TeX{}}:] \path|t:/subdir//| or \path|t:\subdir\\|. \end{description-squeeze} \subsection{Example implementation-specific trees} \label{sec:Example implementation-specific trees} The \abbr{TDS} cannot specify a precise location for implementation-specific files, such as \path|texmf/ini|, because a site may have multiple \TeX{} implementations. Nevertheless, for informative purposes, we provide here the default locations for some implementations. Please contact us with additions or corrections. These paths are not definitive, may not match anything at your site, and may change without warning. We recommend all implementations have default search paths that start with the current directory (e.g., `\path|.|'). Allowing users to include the parent directory (e.g., `\path|..|') is also helpful. \subsubsection{AmiWeb2c 2.0} (Email \email|scherer@physik.rwth-aachen.de| to contact the maintainer of this implementation.) AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible extent, so only the very few differences are described in this section. Detailed information about the basic concepts is given in the section for Web2c 7 below. Thanks to the \path|SELFAUTO| mechanism of Kpathsea 3.0 no specific location for the installation of AmiWeb2c is required as long as the general structure of the distribution is preserved. In addition to Kpathsea's \path|//| notation recursive path search may also be started by \replaceable{DEVICE}\path|:/|, e.g., \path|TeXMF:/| will scan this specific device completely. Binaries coming with the AmiWeb2c distribution are installed in the directory \path|bin/amiweb2c/| outside the common \abbr{TDS} tree \path|share/texmf/|. In addition to the set of AmiWeb2c binaries you will find two subdirectories \path|local/| and \path|pastex/| with auxiliary programs. A stripped version of the Pas\TeX{} system (used by kind permission of Georg He\ss{}mann) is coming with AmiWeb2c, pre-installed in its own \path|share/texmf/amiweb2c/pastex/| directory. If you want to use Pas\TeX{} you have to \path|assign| the name \path|TeX:| to this place. Documentation files in AmigaGuide format should be stored at \path|doc/guide/| similar to \path|doc/info/|. \subsubsection{Public \abbr{DECUS} \TeX{}} If another \abbr{VMS} implementation besides Public \abbr{DECUS} \TeX{} appears, the top level implementation directory name will be modified to something more specific (e.g., \path|vms_decus|). \begin{tdsSummary} texmf/ . vms/ \abbr{VMS} implementation specific files . . exe/ end-user commands . . . common/ command procedures, command definition files, etc. . . . axp/ binary executables for Alpha \abbr{AXP} . . . vax/ binary executables for \abbr{VAX} . . formats/ pool files, formats, bases . . help/ \abbr{VMS} help library, and miscellaneous help sources . . mgr/ command procedures, programs, docs, etc., for system management \end{tdsSummary} \subsubsection{Web2c 7} All implementation-dependent \TeX{} system files (\path|.pool|, \path|.fmt|, \path|.base|, \path|.mem|) are stored by default directly in \path|texmf/web2c|. The configuration file \path|texmf.cnf| and various subsidiary \path|MakeTeX...| scripts used as subroutines are also stored there. Non-\TeX{} specific files are stored following the \abbr{GNU} coding standards. Given a root directory \replaceable{prefix} (\path|/usr/local| by default), we have default locations as follows: \begin{tdsSummary} / installation root (\path|/usr/local| by default) . bin/ executables . man/ man pages . info/ info files . lib/ libraries (\path|libkpathsea.*|) . share/ architecture-independent files . . texmf/ \abbr{TDS} root . . . web2c/ implementation-dependent files (\path|.pool|, \path|.fmt|, \path|texmf.cnf|, etc.) \end{tdsSummary} See \url|http://www.gnu.org/prep/standards_toc.html| for the rationale behind and descriptions of this arrangement. A site may of course override these defaults; for example, it may put everything under a single directory such as \path|/usr/local/texmf|. \section{Is there a better way?} Defining the \abbr{TDS} required many compromises. Both the overall structure and the details of the individual directories were arrived at by finding common ground among many opinions. The driving forces were feasibility (in terms of what could technically be done and what could reasonably be expected from developers) and regularity (files grouped together in an arrangement that ``made sense''). Some interesting ideas could not be applied due to implementations lacking the necessary support: \begin{itemize} \item Path searching control at the \TeX{} level. If documents could restrict subdirectory searching to a subdirectory via some portable syntax in file names, restrictions on uniqueness of filenames could be relaxed considerably (with the cooperation of the formats), and the \TeX{} search path would not need to depend on the format. \item Multiple logical \texmf{} trees. For example, a site might have one (read-only) location for stable files, and a different (writable) location for dynamically-created fonts or other files. It would be reasonable for two such trees to be logically merged when searching. See Michael Downes' article in the references for how this can work in practice with Web2C. \end{itemize} \subsection{Macro structure} The \abbr{TWG} settled on the \replaceable{format}\path|/|\replaceable{package} arrangement after long discussion about how best to arrange the files. The primary alternative to this arrangement was a scheme which reversed the order of these directories: \replaceable{package}\path|/|\replaceable{format}. This reversed arrangement has a strong appeal: it keeps all of the files related to a particular package in a single place. The arrangement actually adopted tends to spread files out into two or three places (macros, documentation, and fonts, for example, are spread into different sections of the tree right at the top level). Nevertheless, the \replaceable{format}\path|/|\replaceable{package} structure won for a couple of reasons: \begin{itemize-squeeze} \item It is closer to current practice; in fact, several members of the \abbr{TWG} have already implemented the \abbr{TDS} hierarchy. The alternative is not in use at any known site, and the \abbr{TWG} felt it wrong to mandate something with which there is no practical experience. \item The alternative arrangement increases the number of top-level directories, so the files that must be found using subdirectory searching are spread out in a wide, shallow tree. This could have a profound impact on the efficiency of subdirectory searching. \end{itemize-squeeze} \subsection{Font structure} The \abbr{TWG} struggled more with the font directory structure than anything else. This is not surprising; the need to use the proliferation of PostScript fonts with \TeX{} is what made the previous arrangement with all files in a single directory untenable, and therefore what initiated the \abbr{TDS} effort. \subsubsection{Font file type location} We considered the supplier-first arrangement in use at many sites: \begin{ttdisplay} texmf/fonts/\replaceable{supplier}/\replaceable{typeface}/\replaceable{type}/ \end{ttdisplay} This improves the maintainability of the font tree, since all files comprising a given typeface are in one place, but unless all the programs that search this tree employ some form of caching, there are serious performance concerns. For example, in order to find a \path|TFM| file, the simplest implementation would require \TeX{} to search through all the directories that contain \abbr{PK} files in all modes and at all resolutions. In the end, a poll of developers revealed considerable resistance to implementing sufficient caching mechanisms, so this arrangement was abandoned. The \abbr{TDS} arrangement allows the search tree to be restricted to the correct type of file, at least. Concerns about efficiency remain, but there seems to be no more we can do without abandoning subdirectory searching entirely. We also considered segregating all font-related files strictly by file type, so that \MF{} sources would be in a directory \path|texmf/fonts/mf|, property list files in \path|texmf/fonts/pl|, the various forms of Type~1 fonts separated, and so on. Although more blindly consistent, we felt that the drawback of more complicated path constructions outweighed this. The \abbr{TDS} merges file types (\path|mf| and \path|pl| under \path|source|, \path|pfa| and \path|pfb| and \path|gsf| under \path|type1|) where we felt this was beneficial. \subsubsection{Mode and resolution location} We considered having the \path|mode| at the bottom of the font tree: \begin{ttdisplay} texmf/fonts/pk/\replaceable{supplier}/\replaceable{typeface}/\replaceable{mode}/\replaceable{dpi}/ \end{ttdisplay} In this case, however, it is difficult to limit subdirectory searching to the mode required for a particular device. We then considered moving the \path|dpi|\replaceable{nnn} up to below the mode: \begin{ttdisplay} texmf/fonts/pk/\replaceable{mode}/\replaceable{dpi}/\replaceable{supplier}/\replaceable{typeface}/ \end{ttdisplay} But then it is not feasible to omit the \path|dpi|\replaceable{nnn} level altogether on systems which can and do choose to use long filenames. \subsubsection{Modeless bitmaps} The \abbr{TDS} specifies using a single directory \path|modeless/| as the mode name for those utilities which generate bitmaps, e.g., \path|texmf/fonts/modeless/times/|. This has the considerable advantage of not requiring each such directory name to be listed in a search path. An alternative was to use the utility name below which all such directories could be gathered. That has the advantage of separating, say, \path|gsftopk|-generated bitmaps from \path|ps2pk|-generated ones. However, we decided this was not necessary; most sites will use only one program for the purpose. Also, \abbr{PK} and \abbr{GF} fonts generally identify their creator in the font comment following the \path|PK_ID| byte. We are making an implicit assumption that \MF{} is the only program producing mode-dependent bitmaps. If this becomes false we could add an abbreviation for the program to mode names, as in \path|mfcx| vs.\ \path|xyzcx| for a hypothetical program \application{Xyz}, or we could at that time add an additional program name level uniformly to the tree. It seemed more important to concisely represent the current situation than to worry about hypothetical possibilities that may never~happen. \subsection{Documentation structure} We considered placing additional documentation files in the same directory as the source files for the packages, but we felt that users should be able to find documentation separately from sources, since most users have no interest in sources. We hope that a separate, but parallel, structure for documentation would (1)~keep the documentation together and (2)~make it as straightforward as possible for users to find the particular documentation they were after. \section{Related references} \label{sec:Related references} This appendix gives pointers to related files and other documents. For \abbr{CTAN} references, we use \path|http://www.ctan.org| as the top-level domain only to make the links be live in this document. See \url|http://www.ctan.org/tex-archive/CTAN.sites| for a complete list of \abbr{ctan} sites; there are mirrors worldwide. \begin{itemize-squeeze} \item This document, in many formats (tex, dvi, info, pdf):\\ \hspace*{1em} \url|http://tug.org/tds/| \item The \abbr{TDS} mailing list archives:\\ \hspace*{1em} \url|http://tug.org/mail-archives/twg-tds/| \item The level~0 \abbr{DVI} driver standard:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/| \item \citetitle{Filenames for \TeX{} fonts}, with lists of recommended supplier and typeface names:\\ \hspace*{1em} \url|http://tug.org/fontname/| \item \abbr{ISO}-9660 \abbr{CD-ROM} file system standard:\\ \hspace*{1em} \url|http://www.iso.ch/cate/cat.html| \item \citetitle{Components of \TeX{}}, a paper by Joachim Schrod:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/documentation/components-of-TeX/| \item \citetitle{Managing Multiple TDS trees}, an article by Michael Downes:\\ \hspace*{1em} \url|http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf| \item A complete set of \MF{} modes:\\ \hspace*{1em} \url|http://www.ctan.org/tex-archive/fonts/modes/modes.mf| \item A large collection of \BibTeX{} databases and styles:\\ \hspace*{1em} \url|ftp://ftp.math.utah.edu/pub/tex/bib/| \end{itemize-squeeze} \section{Contributors} The \abbr{TWG} has had no physical meetings; electronic mail was the communication medium. Sebastian Rahtz is the \TeX{} Users Group Technical Council liaison. Norman Walsh was the original committee chair. Karl Berry is the current editor. The list of contributors has grown too large to fairly include, as some would surely be inadvertently omitted. Please consider the archives of the \email|tds@tug.org| and \email|tex-live@tug.org| mailing lists as the record of contributions. \end{document} tex-common-6.04ubuntu1/doc/tds-1.1/tds2texi.el0000664000000000000000000005216212607350221015675 0ustar ;;; tds2texi.el --- convert TDS draft from LaTeX to Texinfo ;; Copyright (C) 1996, 1999, 2003, 2004 Ulrik Vieth and the TeX Users Group. ;; This programm is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have a copy of the GNU General Public License; see the ;; file COPYING. If not, write to the Free Software Foundation, Inc., ;; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ;; Author: Ulrik Vieth ;; Maintainer: karl@mail.tug.org ;; Version: $Id: tds2texi.el,v 1.12 2004/06/04 17:25:49 karl Exp $ ;; Keywords: TDS, LaTeX, Texinfo, Info, HTML, tex, maint ;;; Commentary: ;; Description: ;; ;; This file provides a limited LaTeX-to-Texinfo conversion function ;; `tds2texi-convert' which is intended to convert the LaTeX ;; source of the TDS draft document `tds.tex', using a couple of ;; special markup tags defined in the document class `tdsguide.cls'. ;; It is definitely *not* suitable to be used as a general-purpose ;; LaTeX-to-Texinfo converter and is not intended to be used as such. ;; ;; Usage (also see the Makefile): ;; ;; 0. load or autoload this file, e.g: (load-library "tds2texi") ;; ;; 1. go to a directory containing `tds.tex', e.g. in dired mode ;; ;; 2. run M-x tds2texi-convert -- this does all the conversion and ;; leaves you in a buffer `tds.texi' containing the converted file ;; ;; 3. edit the buffer if necessary and save it -- you will be asked ;; for a file name (which should be `tds.texi', of course) ;; ;; 4. run M-x makeinfo-buffer or invoke makeinfo and/or texi2html ;; from the shell -- don't try texi2dvi, it may work all right, ;; but it's not recommended since it will only cause confusion ;; with the DVI file created from the original LaTeX source! ;; ;; Bugs: ;; ;; * whitespace (esp. blank lines) before and after environments ;; will be inconsistent (should be fixed in the LaTeX version!) ;; ;; * whitespace (esp. indentation) in tdsSummary environments ;; will be inconsistent (should be fixed in the LaTeX version!) ;; ;; * labels are references are assumed to coincide with names ;; of @nodes -- this is not always true, e.g. for MF vs. \MF{} ;; ;; * the last comma in the list of contributors should be a period ;; ;; * the list of contributors should be handled in a better way ;; (currently: LaTeX tabbing -> @quotation -> HTML

) ;; ;; * the contents of the top node may get lost in the texi2html ;; conversion under some circumstances, or else it may end up ;; in the wrong split file -- this seems to be a texi2html bug ;; ;; History: ;; ;; v 0.0 -- 1996/01/23 UV created ;; v 0.1 -- 1996/01/24 UV first rough version, posted to twg-tds ;; v 0.2 -- 1996/01/24 UV added some commentary and doc strings ;; v 0.3 -- 1996/01/25 UV modularized code, handle header and trailer, ;; call texinfo routines for @nodes and @menus ;; v 0.4 -- 1996/01/27 UV slightly touched-up and some doc fixes, ;; improved handling of legalnotice header ;; v 0.5 -- 1996/01/28 UV more documentation added, code freeze ;; ;; v 1.0 -- 1996/02/20 UV renamed to tds2texi, bumped version number, ;; also fixed a minor typo in "@item samp" ;; v 1.1 -- 1996/11/12 KB no node pointers, no double blank line after ;; sections, allow braces after abbrevs. ;; v 1.2 -- 1996/11/16 KB ??? (see ChangeLog) ;; v 1.3 -- 1996/11/18 UV added translation for umlaut accents, ;; added tds2texi-direntry header lines, ;; added function tds2texi-fixup-texinfo, ;; fixed bug when combining multiple "@file"s. ;;; Code: (require 'texinfo) ; needed to update @nodes and @menus ;; file name variables (defvar tds2texi-source-file "tds.tex" "File name of TDS LaTeX source to be converted.") (defvar tds2texi-target-file "tds.texi" "File name of TDS Texinfo source to be created.") (defvar tds2texi-filename "tds.info" "File name of Info file to be inserted in Texinfo header.") (defvar tds2texi-direntry (concat "@dircategory TeX\n" "@direntry\n" "* TeX Directories: (tds). A directory structure for TeX files.\n" "@end direntry\n")) ;; translation tables (defvar tds2texi-logos-alist '(("{\\TeX}" . "TeX") ; when only doing Info ("\\TeX{}" . "TeX") ; no need to use "@TeX{}" ("{\\LaTeX}" . "LaTeX") ("\\LaTeX{}" . "LaTeX") ("{\\LaTeXe}" . "LaTeX2e") ("\\LaTeXe{}" . "LaTeX2e") ("{\\AmS}" . "AMS") ("\\AmS{}" . "AMS") ("{\\AMSTeX}" . "AMS-TeX") ("\\AMSTeX{}" . "AMS-TeX") ("\\MF{}" . "Metafont") ("\\MP{}" . "MetaPost") ("\\BibTeX{}" . "BibTeX") ("{\\iniTeX}" . "INITEX") ("\\iniTeX{}" . "INITEX") ("{\\iniMF}" . "INIMF") ("\\iniMF{}" . "INIMF") ("{\\iniMP}" . "INIMP") ("\\iniMP{}" . "INIMP") ("{\\PS}" . "PostScript") ("\\PS{}" . "PostScript") ("{\\copyright}" . "@copyright{}") ) "List of TeX logos and their replacement text after conversion.") (defvar tds2texi-logos-regexp-1 "\\(\\\\[A-Za-z]+{}\\)" "Regexp for TeX logos to be converted using `tds2texi-logos-alist'.") (defvar tds2texi-logos-regexp-2 "\\({\\\\[^}]+}\\)" "Regexp for TeX logos to be converted using `tds2texi-logos-alist'.") ;; (defvar tds2texi-tags-alist '(("\\emphasis" . "@emph") ("\\citetitle" . "@cite") ("\\literal" . "@file") ("\\replaceable" . "@var") ("\\command" . "@code") ; defined, but not used ;; ("\\application" . "@r") ; unnecessary, but ... ;; ("\\abbr" . "@sc") ; unnecessary, but ... ) "List of markup tags and their replacement text after conversion.") (defvar tds2texi-tags-regexp "\\(\\\\[a-z]+\\)" "Regexp for markup tags to be converted using `tds2texi-tags-alist'.") ;; (defvar tds2texi-env-alist '(("\\begin{ttdisplay}" . "@example") ("\\end{ttdisplay}" . "@end example") ("\\begin{tdsSummary}" . "@example") ("\\end{tdsSummary}" . "@end example") ("\\begin{enumerate}" . "@enumerate") ("\\end{enumerate}" . "@end enumerate") ("\\begin{enumerate-squeeze}" . "@enumerate") ("\\end{enumerate-squeeze}" . "@end enumerate") ("\\begin{itemize}" . "@itemize @bullet") ("\\end{itemize}" . "@end itemize") ("\\begin{itemize-squeeze}" . "@itemize @bullet") ("\\end{itemize-squeeze}" . "@end itemize") ("\\begin{description}" . "@itemize @bullet") ("\\end{description}" . "@end itemize") ("\\begin{description-squeeze}" . "@itemize @bullet") ("\\end{description-squeeze}" . "@end itemize") ("\\begin{legalnotice}" . "@titlepage") ; special hack ("\\end{legalnotice}" . "@end titlepage") ("\\begin{tabbing}" . "@quotation") ; special hack ("\\end{tabbing}" . "@end quotation") ) "List of environments and their replacement text after conversion.") (defvar tds2texi-env-regexp "\\(\\\\\\(begin\\|end\\){[^}]+}\\)" "Regexp for environments to be converted using `tds2texi-env-alist'.") ;;; some utility functions (defun tds2texi-string-replace (x-string x-replace) "Searches for occurences of X-STRING, replacing them by X-REPLACE." (save-excursion (while (search-forward x-string nil t) (replace-match x-replace t t)))) ; use fixed case! (defun tds2texi-regexp-replace (x-regexp x-replace) "Searches for occurences of X-REGEXP, replacing them by X-REPLACE." (save-excursion (while (re-search-forward x-regexp nil t) (replace-match x-replace t nil)))) ; use fixed case! (defun tds2texi-alist-replace (x-regexp x-alist) "Searches for ocurrences of X-REGEXP, replacing them using X-ALIST. If no match is found in X-ALIST, leaves the original text unchanged." (save-excursion (let (x-match x-replace) (while (re-search-forward x-regexp nil t) (setq x-match (match-string 1)) (setq x-replace (or (cdr (assoc x-match x-alist)) x-match)) (replace-match x-replace t t))))) ; use fixed case! ;;; the main conversion function (defun tds2texi-convert () "Have a try at converting LaTeX to Texinfo. Good luck!" (interactive) ;; get a buffer to operate on and insert the LaTeX source (set-buffer (get-buffer-create tds2texi-target-file)) (erase-buffer) (insert-file-contents-literally tds2texi-source-file) ;; tab characters can mess up tds-summary envrionments, ;; so get rid of them as soon as possible (untabify (point-min) (point-max)) (goto-char (point-min)) ;; do the conversion steps for the text body (tds2texi-do-simple-tags) ; mostly general (tds2texi-do-fancy-logos) ; mostly specific to TDS (tds2texi-do-sectioning) ; mostly general (tds2texi-do-markup-tags) ; mostly specific to TDS (tds2texi-do-environments) ; partly specific to TDS ;; do the conversion for header and trailer (tds2texi-do-header) ; partly specific to TDS (tds2texi-do-trailer) ; partly specific to TDS ;; standard Texinfo functions ; (texinfo-every-node-update) ; I don't like the extra node pointers. (texinfo-all-menus-update) (texinfo-master-menu nil) (tds2texi-fixup-texinfo) ;; all that's left to do is saving the buffer to a file ;; -- we simply select the buffer and leave saving it to ;; the user in case some manual intervention is needed (switch-to-buffer tds2texi-target-file) ) ;;; various steps of the conversion process (defun tds2texi-do-simple-tags () "First step of \\[tds2texi-convert]. Not useable by itself." ;; literal `@' -- should come before anything else, since it's ;; the Texinfo control character. (tds2texi-regexp-replace "\\([^\\\\]\\)@" "\\1@@") ;; fancy spacing -- should come early before we have many `@' ;; "\@" -- space factor corrections before sentence end `.' (tds2texi-regexp-replace "\\\\@\\." "@.") ;; "\ " -- control space after `.' in the middle of sentences. Also ;; converts \\ to \. (tds2texi-regexp-replace "\\.\\\\\\([ \n]+\\)" ".@:\\1") ;; "\ " -- control space used otherwise (tds2texi-regexp-replace "\\\\\\([ \n]+\\)" "\\1") ;; "\," -- thin space used with dimensions like "dpi" or "pt" (tds2texi-regexp-replace "\\\\,\\([a-z]+\\)" "@dmn{\\1}") ;; "\\" -- forced line breaks in references, where it's always ;; preceded by a :. Previous "\ " conversion reduced \\ to \. (tds2texi-string-replace ":\\ " ":@*\n") ;; "\"" -- accents etc.: (tds2texi-string-replace "\\\"" "@\"") (tds2texi-string-replace "\\ss" "@ss") ;; special TeX characters that needn't be quoted in Texinfo: (tds2texi-string-replace "\\_" "_") (tds2texi-string-replace "\\&" "&") (tds2texi-string-replace "\\%" "%") ;; special TeX characters that we prefer to transliterate: (tds2texi-regexp-replace "\\\\slash[ ]*" "/") ;; we could translate $...$ into @math{...}, but why bother ;; when we can transliterate it easily? (tds2texi-string-replace "$" "") (tds2texi-string-replace "\\pm" "+-") ) (defun tds2texi-do-fancy-logos () "Second step of \\[tds2texi-convert]. Not useable by itself." ;; fancy TeX logos -- these are used in arguments of sections, ;; so we have to do them early before doing sectioning commands. (tds2texi-alist-replace tds2texi-logos-regexp-1 tds2texi-logos-alist) (tds2texi-alist-replace tds2texi-logos-regexp-2 tds2texi-logos-alist) ;; acronyms -- these are also used in arguments of sections. ;; There's no need to use @sc markup, just upcase the argument. (save-excursion (while (re-search-forward "\\\\abbr{\\([^}]+\\)}" nil t) (replace-match (upcase (match-string 1)) nil t))) ;; applications -- similar to acronyms, so done here as well. ;; There's no need to use @r markup either, it's the default! (tds2texi-regexp-replace "\\\\application{\\([^}]+\\)}" "\\1") ) (defun tds2texi-do-sectioning () "Third step of \\[tds2texi-convert]. Not useable by itself." ;; first do @chapter and @appendix by narrowing (save-excursion (save-restriction (narrow-to-region (point-min) (search-forward "\\appendix" nil t)) (goto-char (point-min)) (tds2texi-regexp-replace "\\\\section{\\([^}]+\\)}[ ]*" "@node \\1\n@chapter \\1") )) (save-excursion (save-restriction (narrow-to-region (search-forward "\\appendix" nil t) (point-max)) (tds2texi-regexp-replace "\\\\section{\\([^}]+\\)}[ ]*" "@node \\1\n@appendix \\1") )) ;; @section and @subsection are just shifted a level up (tds2texi-regexp-replace "\\\\subsection{\\([^}]+\\)}[ ]*" "@node \\1\n@section \\1") (tds2texi-regexp-replace "\\\\subsubsection{\\([^}]+\\)}[ ]*" "@node \\1\n@subsection \\1") ;; now we no longer need \appendix as a marker (tds2texi-regexp-replace "\\\\appendix[ ]*\n" "") ;; \newpage can go as well (tds2texi-regexp-replace "%?\\\\newpage[ ]*\n" "") ;; \labels are redundant since we have @nodes (tds2texi-regexp-replace "\\\\label{sec:\\([^}]+\\)}[ ]*\n" "") ;; \refs now refer to @nodes instead of \labels (tds2texi-regexp-replace "\\\\ref{sec:\\([^}]+\\)}" "@ref{\\1}") ) (defun tds2texi-do-markup-tags () "Fourth step of \\[tds2texi-convert]. Not usable by itself." ;; special tags -- for \CTAN, we must used fixed-case replace! (tds2texi-string-replace "\\the\\tdsVersion" "@value{version}") (tds2texi-string-replace "\\texmf{}" "@file{texmf}") (tds2texi-string-replace "\\CTAN:" "@file{@var{CTAN}:}") ;; convert simple tags without expanding their arguments: ;; \emphasis, \citetitle, \literal, \replaceable (tds2texi-alist-replace tds2texi-tags-regexp tds2texi-tags-alist) ;; \\systemitem -- a silly tag with an extra argument that ;; isn't printed. It is used exactly once! (tds2texi-regexp-replace "\\\\systemitem{\\([^}]+\\)}{\\([^}]+\\)}" "@file{\\2}") ;; \path, \url -- here we can't avoid shuffling the argument (tds2texi-regexp-replace "\\\\path|\\([^|]+\\)|" "@file{\\1}") (tds2texi-regexp-replace "\\\\url|\\([^|]+\\)|" "@uref{\\1}") (tds2texi-regexp-replace "\\\\email|\\([^|]+\\)|" "@email{\\1}") ;; After turning \replaceable into @var above we now have to ;; turn @var{...} into @file{@var{...}} to get quotation marks ;; around file names consistent. (Read: those extra quotation ;; marks inserted automatically by makeinfo in the @file tag.) ;; For simplicity we first do the change everywhere and then ;; undo it again inside `ttdisplay' environments, where we ;; can leave @var by itself as @file isn't used there anyway. (tds2texi-regexp-replace "@var{\\([^}]+\\)}" "@file{@var{\\1}}") (save-excursion (while (search-forward "\\begin{ttdisplay}" nil t) (save-restriction (narrow-to-region (point) (search-forward "\\end{ttdisplay}" nil t)) (goto-char (point-min)) (tds2texi-regexp-replace "@file{@var{\\([^}]+\\)}}" "@var{\\1}") ))) ;; eliminate redundant quotation marks around @file (tds2texi-regexp-replace "``\\(@file{[^}]+}\\)''" "\\1") (tds2texi-regexp-replace "`\\(@file{[^}]+}\\)'" "\\1") ;; ... and combine multiple @file{}s in one line (tds2texi-regexp-replace "@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}" "@file{\\1\\2\\3}") (tds2texi-regexp-replace "@file{\\([^ ]+\\)}@file{\\([^ ]+\\)}" "@file{\\1\\2}") ;; ... also simplify cases of nested @file{}s (tds2texi-regexp-replace "@file{@file{\\([^ ]+\\)}\\([^ ]+\\)}" "@file{\\1\\2}") ;; literal `~' -- if it hasn't been converted to space earlier, ;; we can now do the conversion to @w{word1 word2} without ;; running the risk of confusion the regexp matcher somewhere. ;; Unfortunately @w will get lost again in the HTML conversion ;; because   or   are not yet standard HTML tags. (tds2texi-string-replace "~" "@tie{}") ) (defun tds2texi-do-environments () "Fifth step of \\[tds2texi-convert]. Not useable by itself." ;; convert \begin and \end of environments (tds2texi-alist-replace tds2texi-env-regexp tds2texi-env-alist) ;; convert \items (tds2texi-string-replace "\\item" "@item") ;; insert newlines after description items where appropriate (tds2texi-regexp-replace "@item\\[\\([^]]+\\)\\][ ]*\n" "@item \\1\n") (tds2texi-regexp-replace "@item\\[\\([^]]+\\)\\][ ]*" "@item \\1\n") ;; insert newlines after @item @file, also replace @item @file ;; by @item @samp -- this is done because it may look nicer ;; in the HTML version, but it depends on the style sheet used (tds2texi-regexp-replace "@item @file\\([^,\n]*\\),[ ]*" "@item @samp\\1,\n") (tds2texi-regexp-replace "@item @file" "@item @samp") ) ;;; handling the header and trailer (defun tds2texi-do-header () "Convert LaTeX header to Texinfo. Used in \\[tds2texi-convert]." (let (title-string author-string version-string) ;; collect information (save-excursion (re-search-forward "\\\\tdsVersion{\\(.*\\)}" nil t) (setq version-string (match-string 1)) (re-search-forward "\\\\title{\\(.*\\)}" nil t) (setq title-string (match-string 1)) (re-search-forward "\\\\author{\\(.*\\)}" nil t) (setq author-string (match-string 1)) ) ;; discard information lines (tds2texi-regexp-replace "\\\\title{.*}[ ]*\n" "") (tds2texi-regexp-replace "\\\\author{.*}[ ]*\n" "") (tds2texi-regexp-replace "\\\\tdsVersion{.*}[ ]*\n\n" "") ;; discard pre-title lines (tds2texi-regexp-replace "%&latex[ ]*\n" "") (tds2texi-regexp-replace "\\\\NeedsTeXFormat.*\n" "") ;; convert \documentclass to \input texinfo (tds2texi-regexp-replace "\\\\documentclass.*\n\n" "\\\\input texinfo\n") ;; insert Texinfo header lines (save-excursion (goto-char (search-forward "texinfo\n" nil t)) (insert "@setfilename " tds2texi-filename "\n") (insert "@settitle " title-string "\n\n") (insert "@set version " version-string "\n\n") (insert tds2texi-direntry "\n") ) ;; discard \begin{document} and \maketitle (tds2texi-regexp-replace "\\\\begin{document}[ ]*\n\n" "") (tds2texi-regexp-replace "\\\\maketitle[ ]*\n\n" "") ;; copy contents of `legalnotice' environments (save-excursion (let ((begin (search-forward "@titlepage\n\n" nil t)) (end (progn (search-forward "@end titlepage" nil t) (match-beginning 0)))) (copy-region-as-kill begin end) )) ;; insert stuff for title page before `legalnotice' environment ;; -- \begin{legalnotice} has been converted to @titlepage (save-excursion (goto-char (search-forward "@titlepage\n" nil t)) (insert "@title " title-string "\n") (insert "@subtitle Version @value{version}\n") (insert "@author " author-string "\n\n") (insert "@page\n@vskip 0pt plus 1filll\n") ) ;; insert stuff for @node Top and master menu after `legalnotice' ;; -- \end{legalnotice} has been converted to @end titlepage (save-excursion (goto-char (search-forward "@end titlepage\n\n" nil t)) (insert "@ifnottex\n") (insert "@node Top\n@top " title-string "\n\n") ;; insert contents of `legalnotice' copied above (yank) ; should include a "\n\n" at the end (insert "@menu\n@end menu\n") (insert "@end ifnottex\n\n") ) ;; discard \tableofcontents -- @contents belongs in the trailer (tds2texi-regexp-replace "\\\\tableofcontents[ ]*\n\n" "") )) (defun tds2texi-do-trailer () "Convert LaTeX trailer to Texinfo. Used in \\[tds2texi-convert]." ;; The list of contributors is a LaTeX tabbing environment, which ;; is difficult to convert -- we convert it to a normal paragraph ;; inside a @quotation environment, so it gets indented a little. ;; Conversion of the tabbing environment is already done elsewhere, ;; so we just have to remove some redundant tags. ;; discard alignment preamble consisting of lines starting with ;; \hspace{0.25\linewidth}. We use \hspace in other places too. (tds2texi-regexp-replace "\\\\hspace.*\n" "") ;; convert "\>" and "\\" in tabbing environment to comma (tds2texi-regexp-replace " +\\\\>[ ]*" ", ") ;; In the earlier conversion of "\ ", "\\" followed by newline ;; was already converted to "\", so we just have to convert ;; the remaining instances of "\" followed by space or newline. (tds2texi-regexp-replace "\\s +\\\\\\s +" ", ") ;; convert \end{document} to @contents and @bye (tds2texi-string-replace "\\end{document}" "@iftex\n@contents\n@end iftex\n@bye") ) (defun tds2texi-fixup-texinfo () "Fix up a few last-minute items. Used in \\[tds2texi-convert]." ;; Fix the reference to the node name with the logo. (tds2texi-string-replace "Non-font MF" "Non-font Metafont") ) ;;; tds2texi.el ends here tex-common-6.04ubuntu1/doc/tds-1.1/tdsguide.cls0000664000000000000000000006073712607350221016127 0ustar % $Id: tdsguide.cls,v 1.19 2004/03/28 14:21:10 karl Exp $ % LaTeX document class tdsguide % (history at end) % % This class provides markup & layout for the TDS report. % \NeedsTeXFormat{LaTeX2e}[1994/12/01] % star-form of \CheckCommand, etc. % The code below is explained in the implementation documentation of the % rcs package. \begingroup \def\RCSClass#1#2 $#3: #4 #5\endRCS $#6: #7 #8\endRCS{% \def\date{#4}\def\id{v#7}% \ProvidesClass{#1}[\date\space\id\space #2]% } \RCSClass{tdsguide}{markup and layout for TDS document} $Date: 2004/03/28 14:21:10 $: 9999/00/00 \endRCS $Revision: 1.19 $: 0.0 \endRCS \endgroup % default setup \ifx \CatEscape\undefined \chardef\CatEscape=0 \chardef\CatOpen=1 \chardef\CatClose=2 \chardef\CatIgnore=9 \chardef\CatLetter=11 \chardef\CatOther=12 \chardef\CatActive=13 \chardef\CatUsCode=\catcode`\_ \fi %%% ====================================================================== % % OPTIONS % \catcode`\_=\CatLetter % We can select to use Roman for METAFONT/METAPOST logos by the % nomflogo option. That should be done if no current logo fonts (with % `P' & `S') are available. Of course, it would be best to install % current fonts. % The mflogo options is provided for upward compatibility. \let\tds_mflogo\relax \DeclareOption{nomflogo}{% \def\tds_mflogo{\let\textlogo\tds@transfer@logo} % gimme refinements! :( } \DeclareOption{mflogo}{} \newif\ifTdsDraft \TdsDraftfalse \DeclareOption{draft}{% \TdsDrafttrue \PassOptionsToClass{\CurrentOption}{article}% } \DeclareOption{final}{% \TdsDraftfalse \PassOptionsToClass{\CurrentOption}{article}% } \catcode`\_=\CatUsCode %%% ------------------------------------------------------------ % % CONFIGURATION, INHERITANCE, AND OTHER MODULES % % configure this class \InputIfFileExists{tdsguide.cfg}{% \typeout{*************************************^^J% *^^J% * Local config file tdsguide.cfg used^^J% *^^J% *************************************% }% }{} % inherit article class \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions \LoadClass{article} % add more modules \RequirePackage{url} % file names & email addresses \RequirePackage{mflogo} % MF & MP logos (but see below) %\RequirePackage{hyperref} % navigation specials in .dvi \RequirePackage{fancyhdr} % rev. no & draft notice in headers % Put hypertext links in the DVI file on the URL's: % \def\UrlLeft#1\UrlRight{\special{html:}#1\special{html:}} % Don't do this because xdvi doesn't know what do with ftp url's, which % is the vast majority of links; also because we use the url package for % mere directory names. %%% ============================================================ % % NEW MARKUP % \catcode`\_=\CatLetter % info about original SGML files \def\sourcefile#1{} \def\formatterfile#1{} % revision number (should use rcs package) \newtoks\tdsVersion % % RENDER DOCUMENT-SPECIFIC MARKUP % % categories for terms % typewriter type. % `_', `\_', and `\\' produce respective chars. \def\tds_tt{% \begingroup \catcode`\_=\CatOther \chardef\_=`\_ \chardef\\=`\\ \tds_tt_set } \def\tds_tt_set#1{% \ttfamily #1% \endgroup } \def\systemitem#1{\tds_tt} \def\replaceable#1{{\rmfamily $\langle$\textit{#1}$\rangle$}} \let\command=\tds_tt \def\application#1{\textrm{#1}} \let\literal=\tds_tt \let\email=\url % \abbr may be called with lowercase & uppercase letters, actually all % abbreviations are to be typeset with reduced-size uppercase letters. % (That lowercase letters are used as arguments was a half-hearted % attempt by Norm who did use small caps at this time.) `Reduced size' % means one point smaller than the current size. If the reduced size % is larger than 12pt, we issue a warning; if no font-generating % driver is used, this situation will lead to character replacements % most probably. % % This macro may be written to an auxilliary file, we must not use % underscores in its name. \DeclareRobustCommand\tds@reduced@size{% \dimen@\f@size\p@ \advance \dimen@ -\p@ % dimen@ = font_size - 1 \ifdim \dimen@ >12\p@ \@font@warning{% Using font size `\the\dimen@' for abbreviations. That might lead% \MessageBreak to character replacements if you don't use a driver that\MessageBreak generates fonts.}% \fi \math@fontsfalse \fontsize{\the\dimen@}\z@ \selectfont } \def\abbr#1{{\tds@reduced@size \uppercase{#1}}} % references \let\xref\relax \let\citetitle=\textit % aliases for LaTeX markup \let\emphasis=\emph % environment `legalnotice', part of front matter \let\legalnotice=\par \let\endlegalnotice=\par % environment `ttdisplay', used to explicate some fact. Basically, % it's the alltt environment without parskip and with an additional % level of indentation. \def\ttdisplay{% \begingroup \list{}{% \parsep\z@skip % no skip before env \parskip\z@skip \relax }% \item\relax \parshape\z@ %% code below is copied from alltt.dtx. \leftskip\@totalleftmargin \@tempswafalse \def\par{% \if@tempswa \leavevmode\null\@@par\penalty\interlinepenalty \else \@tempswatrue \ifhmode \@@par \penalty\interlinepenalty \fi \fi }% \obeylines \verbatim@font \let\org@prime~% \@noligs \everymath \expandafter{\the\everymath \let~\org@prime}% \everydisplay \expandafter{\the\everydisplay \let~\org@prime}% \let\org@dospecials\dospecials \g@remfrom@specials{\\}% \g@remfrom@specials{\{}% \g@remfrom@specials{\}}% \let\do\@makeother \dospecials \let\dospecials\org@dospecials \frenchspacing\@vobeyspaces \everypar \expandafter{\the\everypar \unpenalty}% %} } \def\endttdisplay{% \endlist \endgroup \vskip -\parskip % undo skip after env } % Code below is from alltt.dtx. I don't understand why it's not part % of the LaTeX kernel. \def\g@remfrom@specials#1{% \def\@new@specials{}% \def\@remove##1{% \ifx ##1#1% \else \g@addto@macro\@new@specials{\do ##1}% \fi }% \let\do\@remove \dospecials \let\dospecials\@new@specials } %%% ------------------------------------------------------------ % % LOGOS % % Some of them are rather document-specific. \def\texmf{\path|texmf|} \def\CTAN:{\replaceable{\abbr{CTAN}:}} % Actually, I should use my logos package for the rest... [-js] % The AmS definition is from AmS-LaTeX, that's more stable in this % document's context than the one from AmS-TeX. \def\AmS{% \begingroup \protect\usefont{OMS}{cmsy}{m}{n}% A\kern-.1667em \lower.5ex\hbox{M}\kern-.125em S% \endgroup } \def\AMSTeX{\AmS-\TeX} \def\iniTeX{\texttt{INITEX}\@} \def\iniMF{\texttt{INIMF}\@} \def\iniMP{\texttt{INIMP}\@} \def\PS{\textsc{PostScript}} % If we don't use logo fonts, both the Metafont and the MetaPost logo % is typeset in the current font, as shown in this comment. The macros % `\MF' & `\MP' expand to two \textfont macros, with uppercase % syllables as arguments. We check for the syllable `FONT', this has % to be typeset in lowercase. All other syllables are capitalized. \def\tds_logo_fontarg{FONT} \DeclareRobustCommand\tds@transfer@logo[1]{% \def\tds_arg{#1}% \ifx \tds_arg\tds_logo_fontarg font% \else \tds_capitalize#1\tds_argend \fi } \def\tds_capitalize#1#2\tds_argend{% \uppercase{#1}\lowercase{#2}% } \tds_mflogo % Use a small caps fake for BibTeX's `ib'. This way we can typeset it % in bold face or sans-serif, too. The code is copied from the LaTeX % logo definition, from ltlogos.dtx. \DeclareRobustCommand\tds@smsize{% $\m@th$% % force math size calculation \csname S@\f@size\endcsname \fontsize\sf@size\z@ \math@fontsfalse \selectfont } \def\BibTeX{B\kern-.05em{\tds@smsize IB}\kern-.08em\TeX} %%% ============================================================ % % TDS SUMMARIES % % Typeset a figure that shows the TeX directory layout. The layout is % input with optical markup: % % \begin{tdsSummary} % dir/ explanation of dir % . subdir/ explanation of subdir % . . subsubdir/ next subdir level % . dir/dir/ more than one dir in one line % . / explanation of category % \end{tdsSummary} % % Directories and category names don't have dots. % We transform that input into a table. The first table column (the % directory spec) is terminated by a slash that's followed by white % space. Directory names are typeset in monocase. are % tagged with \replaceable. Subdirectory levels are indented by one % quad. A quad is placed between columns. The explanation text % is typeset in one line. % As this is a special implementation for a special document, these % design decisions are hardwired, no protected interface is available. % Design changes will be realized by changes to the macro code. % The environment is realized as a trivlist to behave correctly in list % environments. I don't use a tabular environment, since I don't know % exactly how the first column is tokenized. Instead a halign is used. % IMO it does not matter, as tdsSummary does not use table markup % anyhow. If somebody wants to use longer explanations and if they must % be broken then, I have to use one of the tabulars of the tools bundle. % The first column (the directory names) is typeset in typewriter type. The % font chosen hereby must have the underscore at its ASCII position. If % that is not the case, one has to generalize \tds_dir_tags below. % Namely, this macro sets up the special lexical convention for this % column. As TeX will look at the first token of the column to check for % the table end, \cr, or \omit before \tds_dir_tags is evaluated, the % redefinition of the lexical analysis will not have happened for that % token. So we have to check this token specially if it's one of the % special optical markup chars. % After we started the trivlist, we need to supply the item (as this % macro really adds the vertical space). But it does not actually % start an item, it sets up the everypar register to do so. We fake % the item start as we don't want to go in horizontal mode, \halign % needs to be evaluated in vertical mode. % % \par is not evaluated by \endtrivlist and \end, so we don't need % another group around its redefinition. \def\tdsSummary{% \trivlist \item\relax \vskip\parskip \global\@inlabelfalse \global\@newlistfalse \global\everypar{}% \tabskip 0pt \let\par\crcr \obeylines % can't use \obeycr, redefined by LaTeX % redefine \obeylines to do nothing; url.sty v3.0 calls it, and the % ^^M character therein causes a `Missing \endgroup inserted' error % at a \path|...| within a tdsSummary, if it's already defined as \par. \let\obeylines=\relax \halign\bgroup \ttfamily \tds_dir_tags \tds_first_token ##\unskip\hfil &% \quad ##\unskip\hfil \cr } \def\endtdsSummary{% \crcr \egroup \endtrivlist } % Our special lexical conventions are: `.' denotes the next directory % level, `<...>' denotes a directory category, and `/' is a column % separator if it is followed by space or tab, a typeset slash % otherwise. Underscores don't have any special meaning. \begingroup \catcode`\.=\CatActive \catcode`\<=\CatActive \catcode`\/=\CatActive \catcode`\:=\CatActive \gdef\tds_dir_tags{% \catcode`\.=\CatActive \let.=\tds_next_dir_level \catcode`\<=\CatActive \let<=\tds_dir_category \catcode`\/=\CatActive \let/=\tds_slash \catcode`\:=\CatActive \let:=\tds_colon \catcode`\_=\CatOther \tt } \endgroup % There are spaces between the dots, ignore them. \def\tds_next_dir_level{\quad \ignorespaces} \def\tds_dir_category#1>{\replaceable{#1}} \chardef\tds_dir_sep=`\/ % typeset a directory separator % The slash has to check the stuff behind. If it's a space or a tab, % \next is bound to the action `blank-space' (the binding of all % '(space . #\Space) tokens). A tab is usually tokenized to the same % token, but we care for redefinitions below. % \def\tds_slash{% \futurelet\next \tds_check_dir_end } % For colons in the examples. % \def\tds_colon{:&} % We need two control sequencess that are bound to the actions currently % bound to '(space . #\Space) and (tex:parse "\t"). A direct \let % evaluation is difficult as the lexical analysis collapses subsequent % spaces to one token. But we need one space token behind the equal % sign, to be able to \let our cseq to the next space token. The first % token is stored in the replacement list of a macro, the second token % comes as its argument. \def\tds_let#1#2{\let#1= #2} \tds_let\tds_space{ } \tds_let\tds_tab{^^I} \def\TdsColSep{/&} % use trailing slashes for dir names \def\tds_check_dir_end{% \ifx \next\tds_space \let\next\TdsColSep \else \ifx \next\tds_tab \let\next\TdsColSep \else \let\next\tds_dir_sep \fi \fi \next } % We're almost finished with the tdsSummary setup. The stuff above is % not used for the first column token, as it's already tokenized when % the catcode changes take effect. So let's check and remap this token % by hand. Actually, I'm sloppy here; I assume that `/' won't be a % used as a directory name and that no directory name starts with an % underscore. But then, I know that this won't happen in TDS... :-) \def\tds_first_token{% \futurelet\next \tds_check_special } \def\tds_check_special{% \ifx \next.% \def\next{\afterassignment\tds_next_dir_level \let\next}% \else \ifx \next<% \def\next{\afterassignment\tds_dir_category \let\next}% \else \let\next\relax \fi \fi \next } %%% ============================================================ % % LAYOUT % % text area size % We use the same height as article's default, but increase the width. \textwidth=35pc \oddsidemargin = \paperwidth \advance\oddsidemargin by -\textwidth \divide\oddsidemargin by 2 \evensidemargin = \oddsidemargin \hoffset = -1in % spacing \parindent=0pt % no paragraph indentation \emergencystretch=2em % fewer overfull hboxes, only a memo \parskip=1ex plus 1ex minus .5ex % between paragraphs; if you change it, % change the spacing in section headers % below, too! % Our spacing for lists is very simplistic, but uniform: We use (almost) % parskip everywhere, and don't distinguish vertical spacing for % different list levels. Actually, the latter is the thing we might want % to introduce later again. \labelsep=1.1em % increase distance between item & text \topsep=0pt % no extra skip above list in paragraph \partopsep=0pt % no extra skip above list starting par. \itemsep=0pt % no extra space between items \parsep=.9\parskip % between paragraphs in items \def\@listI{% \leftmargin\leftmargini } \let\@listi\@listI \@listi \def\@listii{% \leftmargin\leftmarginii \labelwidth\leftmarginii \advance \labelwidth-\labelsep } \def\@listiii{% \leftmargin\leftmarginiii \labelwidth\leftmarginiii \advance \labelwidth-\labelsep } % Like itemize, but squeeze the items. \newenvironment{itemize-squeeze} {% \parsep\z@skip \itemize }{% \enditemize } % Ditto, for description. \newenvironment{description-squeeze} {% \parsep\z@skip \description }{% \enddescription } % Redefine section headers, different spacing and other fonts. \newskip\TdsPreSubSectionSkip \TdsPreSubSectionSkip = 2.5ex plus 0.5ex minus 0.2ex \def\section{% \@startsection{section}{1}% % name and level {\z@}% % indentation {-3ex plus-.75ex minus-.2ex}% % skip above and don't indent next par {1.5ex plus.2ex}% % skip below {\reset@font \Large \sffamily}% % type } \def\subsection{% \@startsection{subsection}{2}% % name and level {\z@}% % indentation {-\TdsPreSubSectionSkip}% % skip above and don't indent next par \parskip % skip below {\reset@font \large \sffamily}% % type } \def\subsubsection{% \@startsection{subsubsection}{3}% % name and level {\z@}% % indentation {-\TdsPreSubSectionSkip}% % skip above and don't indent next par \parskip % skip below {\reset@font \normalsize \sffamily}% % type } \def\paragraph{% \@startsection{paragraph}{4}% % name and level {\z@}% % indentation \TdsPreSubSectionSkip % skip above and indent next par {-1.5em}% % skip after, run in text {\reset@font \normalsize \scshape}% % type } % Table of contents \setcounter{tocdepth}{2} % only sections on first two levels % Less space between TOC entries, discard the parskip. For that, we % have to redefine \@starttoc, since no hook is available. \let\tds_orig_starttoc=\@starttoc \def\@starttoc#1{% \begingroup \parskip\z@skip \tds_orig_starttoc{#1}% \endgroup } % Section TOC entries in sans serif, and less space above. The code % below is copied from the article view on classes.dtx, I have changed % space and font. But let's first assure that we shouldn't use a newer % version of this code. \CheckCommand*\l@section[2]{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \addvspace{1.0em \@plus\p@}% \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup \fi} \def\l@section#1#2{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \addvspace{.75ex \@plus\p@ \@minus\p@}% % was: 1em plus 1pt \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \sffamily % was: \bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak \hfil \nobreak \hbox to\@pnumwidth{\hss #2}% \par \endgroup \fi} % Not so spacey a title, please. \def\@maketitle{% \null \kern-90pt \relax \kern0pt \begin{center}% {\LARGE \@title \par}% %\vskip 1.5em% {\large \lineskip .5em% \begin{tabular}[t]{c}% \@author \end{tabular}\par}% \vskip 1em% {\large version \the\tdsVersion \quad \@date}% \end{center}% \par \vskip 1.5em} % Make labels in the description environment come out in the % requested type rather than bold. \def\descriptionlabel#1{\hspace\labelsep #1} % Headline & footline \pagestyle{fancy} \lhead{} \chead{% \ifTdsDraft draft \fi % <-- space! TDS version \the\tdsVersion } \rhead{} \renewcommand{\headrulewidth}{0.4pt} \lfoot{} \cfoot{\thepage} \rfoot{} \renewcommand{\footrulewidth}{0pt} %%% ============================================================ \catcode`\_=\CatUsCode \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % $Log: tdsguide.cls,v $ % Revision 1.19 2004/03/28 14:21:10 karl % (\tdsSummary): \let\obeylines=\relax after we set % it, so url.sty v3.0's usage of \obeylines does not % cause errors. % % Revision 1.18 1998/01/26 21:26:10 karl % (\TeXinfo): Remove unused and incorrect name. % (\parsep): Decrease slightly. % (\l@section): Decrease section spacing for toc slightly. % (\@maketitle): Remove word `draft'. % % Revision 1.17 1997/02/07 20:47:16 karl % Fix : in tdsSummary, more doc. % % Revision 1.16 1996/11/16 14:23:58 karl % fancyhdr requires different commands. % % Revision 1.13 1995/11/21 18:57:35 schrod % Add description-squeeze environment. % % Revision 1.12 1995/11/14 18:33:18 schrod % Drop draft hint in legalnotice environment, make title more % squeezed. Changes by Karl, to make title & toc fit on one page. % % Revision 1.11 1995/11/14 12:36:54 schrod % Use url.sty instead of path.sty. (On request of Karl, better input % syntax and different line breaks [0.103].) % Rename environment explicate to ttdisplay. (Proposal of Karl.) % % Revision 1.10 1995/11/11 16:29:01 schrod % Identify version of class in log file. % Change layout of table of contents. Implementation of a discussion % between Karl Berry and myself. % % Revision 1.9 1995/11/11 15:43:34 schrod % Replace alltt environment by explicate environment. Change % requested by Karl at 09 Nov 95. % % Revision 1.8 1995/11/02 10:52:29 schrod % Add option nomflogo, mflogo is default now. % Don't need provision for slanted typewriter type any more, % replacable texts are set in italics now. % Add logos \texmf and \CTAN:. [kb] % Set margins in addition to \textwidth. It's a bit wider, too. [kb] % Wider distance between item label and item text. [kb] % New environment itemize-squeeze, without space between items. [kb] % % Revision 1.7 1995/05/18 09:06:39 schrod % Don't parse arguments unnecessarily early, one might change % catcodes in them. % Use \tds_tt to switch to typewriter, also typesets backslashs and % underscores [kb]. % Increase width to 33pc [kb]. % % Revision 1.6 1995/05/12 23:19:07 schrod % \f@size may be a fraction, so use dimension register to compute % the reduced size for abbreviations [dc]. % In summary tables, terminate the directory names with slashes [kb, nw]. % % Revision 1.5 1995/05/09 01:46:24 schrod % Typeset abbreviation one point smaller than surrounding font [uv, % kb, bb], use always uppercase letters for them. Rename the tag from % \acronym to \abbr [kb, nw]. % % Revision 1.4 1995/05/09 00:39:57 schrod % Repair vertical spacing around tdsSummary environment. % % Revision 1.3 1995/05/08 17:14:52 schrod % For TDS 0.72 Norm changed the document to use \abbr (argument with % lowercase letters) instead of \acronym. It's not looking better, of % course; small caps is not really a good font for abbreviations. This % revision just tracks his change, I'll look later if I can improve the % rendering. % % Revision 1.2 1995/05/07 18:22:53 schrod % In environment tdsSummary: Next directory level indented by one % quad, without dots for indentation [kb, !uv, js]. % Renamed Draft flag to TdsDraft, to keep namespace clean. % Headline now features a centered short title [kb, uv, nw]. It's % still ruled. % \replaceable used spurious \selectfont [uv]. \dir & \ext are not % used [uv]. % Subsubsections are also numbered and not indented [uv]. But they % are still not added to the table of contents. Actually, we have only % _one_ subsubsection... % Set erroneously counter `secnumdepth' when I wanted fewer section % headings in the table of contents. That's controlled by counter % `tocdepth' [uv]. % Inherit tdsguide from article class, not from ltxguide. The tags % of the latter class are not appropriate and we define our layout % ourselves. % % % pre-CVS Log: % % 19 Apr 95 js Made a LaTeX2e class. % Use mflogo option to select MF/MP logo typesetting, % support configuration file. % 1994-1995 nw Initial revision. %%%------------------------------------------------------------ % mode: LaTeX % Local Variables: % TeX-brace-indent-level: 4 % indent-tabs-mode: t % TeX-auto-untabify: nil % TeX-auto-regexp-list: LaTeX-auto-regexp-list % page-delimiter: "^%%%" % End: tex-common-6.04ubuntu1/doc/texify-tex-output0000775000000000000000000004066712607350221016117 0ustar #! /usr/bin/python # # texify-tex-output --- Enhance the LaTeX output of DebianDoc tools # Copyright (c) 2007 Florent Rougon # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 dated June, 1991. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. # # $Id$ import sys, os, re, getopt # Call with option --algorithm for a precise explanation of how the script # works (or look for the definition of 'algorithm_doc' below). # # # **************************************************************************** # * Simple customization starts here * # **************************************************************************** # Document preamble # ~~~~~~~~~~~~~~~~~ # List of (regexp, replacement text) tuples describing customize the preamble. # # For the regexp syntax, see: # # file:///usr/share/doc/python2.5-doc/html/lib/re-syntax.html # # The replacement text is expanded by match_object.expand(), therefore you can # reference groups from the matching regexp with backreferences such as \1, # \2, etc. (even by group name with the \g syntax). Similarly, escape # sequences such as \n are processed in the replacement text, therefore we # have to use two backslashes there to insert one backslash, even when using # raw strings (cf. # file:///usr/share/doc/python2.5-doc/html/lib/match-objects.html). # # For a substitution to happen on a given line, the regexp must match at # the beginning of that line. The replacement text can generate several lines # if needed, include the original line (using a group), etc. preamble_substitutions = [ (r"^(?P\s*\\usepackage(\[[^][]*\])?\{fontenc\}.*)$", r"\g\n\\usepackage{mflogo}\n")] # How to recognize the end of the preamble begin_doc_re = r"^\s*\\begin\{document\}" # Document body # ~~~~~~~~~~~~~ # List of (regexp, replacement text) tuples describing which substitutions are # to be performed on each chunk of the body text. # # The same comments as for 'preamble_substitutions' apply here (in particular, # a replacement text can make use of groups from the corresponding regexp), # except that here, we don't check if given regexp *matches* at the beginning # of a chunk; instead, we *search* (using regexp.search()) for the first match # of that regexp in the chunk. body_substitutions = [(r"\bTeX\b", r"\\TeX{}"), (r"\bpdfTeX\b", r"pdf\\TeX{}"), (r"\bMetafont\b", r"\\MF{}"), (r"\bLaTeX\b", r"\\LaTeX{}"), (r"\bConTeXt\b", r"Con\\TeX{}t"), (r"\bteTeX\b", r"te\\TeX{}"), (r"\bMiKTeX\b", r"MiK\\TeX{}")] # List of (command_name, number_of_args) tuples for LaTeX commands which # should not be subject to the regexp substitution (neither the command name, # nor its arguments) . # # If the LaTeX output from DebianDoc tools starts using an \envvar command for # typesetting the names of environment variables (that would be nice), it # should be added to this list. skipped_commands = [("file", 1)] # When processing the body of the document, if a line matches one of the # regexps in 'no_subst', it will not be suject to substitution at all. no_subst = [r"^.*\bgenerated from \\\$Id:[ \t]+.+[ \t]+\\\$"] # **************************************************************************** # * Simple customization ends here * # **************************************************************************** progname = os.path.basename(sys.argv[0]) progversion_base = "0.2" # Append an SVN revision part to the program version svn_revision_string = "$LastChangedRevision$" svn_revision_rec = re.compile(r"^\$LastChangedRevision: ([0-9]+) \$$") svn_revision_mo = svn_revision_rec.match(svn_revision_string) if svn_revision_mo is not None: svn_revision = svn_revision_mo.group(1) else: svn_revision = "unknown.svn.revision" del svn_revision_string, svn_revision_rec, svn_revision_mo progversion = "%s.%s" % (progversion_base, svn_revision) usage = """Usage: %(progname)s [option ...] input_file output_file Enhance the LaTeX output of DebianDoc tools. The document preamble is customized; in the document body, TeX is replaced with \\TeX{}, LaTeX with \\LaTeX{}, etc., except where it doesn't make sense (as in the argument of \\file, and in the SVN Id). The calling syntax allows this script to be specified as the argument to the -s option of commands such as debiandoc2latexpdf. Options: --algorithm explain the algorithm used --help display this message and exit --version output version information and exit""" \ % {"progname": progname} algorithm_doc = """\ The algorithm used in %(progname)s is the following. First, read the preamble and customize it (e.g., to add '\\usepackage{mflogo}' after the line loading 'fontenc'). This is done the following way: Each line of the preamble is read separately. If it matches one of the regular expressions in 'preamble_substitutions', the corresponding replacement text is substituted, and no other substitution is done on that line (i.e., the first regexp that matches 'wins'). Lines that don't match any regexp in 'preamble_substitutions' are output verbatim. Note: 'preamble_substitutions' is a list of tuples; the first element of each tuple is a regexp, and the second element is its corresponding replacement text. The end of the preamble is detected when a line matches the regexp in 'begin_doc_re'. Then, process the body of the document line by line. If a line matches at least one of the regular expressions in 'no_subst', it is dumped verbatim. Currently, this is used to avoid changing 'Debian-TeX-Policy.sgml' into 'Debian-\\TeX{}-Policy.sgml' in the Id generated by subversion: $Id$ Other lines in the document body go through the following filter: 1. Split the line into chunks separated by LaTeX commands listed in 'skipped_commands' (currently, only \\file). 2. Such commands and their arguments are dumped verbatim. This avoids mangling file names that contain the string 'TeX', such as '/etc/texmf/texmf.d/05TeXMF.cnf'. For each of these commands, the number of arguments is supposed to be fixed, as specified in %(progname)s. But it is possible to specify that e.g., \\file takes one argument, and \\othercommand takes two arguments. 3. The remaining chunks of text each go through the substitution process, which works as follows: Initialisation: index = 0 --- which means, start at the beginning of the chunk Loop: (a) Look for the first match of each regular expression in 'body_substitutions' (the regexp is the first element of each tuple), starting at 'index' in the chunk. If no regexp matches, it means there is nothing left to replace in the chunk, therefore we break the loop. (b) Choose the regexp that matched earliest in the chunk, dump the text from 'index' to the beginning of the regexp match, and write the replacement text for the regexp (which is given in the second element of the tuple in 'body_substitutions' that contains the regexp, and can make use of groups that matched in the regexp---specified as \\1, \\2, or even by group name). (c) Let 'index' point right after the end of the regexp match and start a new loop iteration, provided 'index' doesn't point to the end of the chunk yet. The idea behind this loop is to proceed as a human would do, instead of the simpler way, which would be: successively replace all occurrences of each regexp in 'body_substitutions' in the chunk. This simpler way would cause problems, because a replacement text for a given regexp could be later matched by another regexp, and be subject to a second (recursive) replacement, which is generally not wanted and forces one to be very careful about the order in which the regexps are listed. Currently, the arguments of LaTeX commands in step 2 are supposed to all fit on the same line as the command, and they are recognized based on brace matching, with escaped braces \\{ and \\} properly handled (they are not confused with braces which delimit arguments). Due to this single-line limitation, the arguments cannot contain TeX comments. Currently, this is sufficient for the \\file commmand calls produced by DebianDoc, which is why this relatively simple design was chosen.""" \ % {"progname": progname} class error(Exception): pass class ParseError(error): pass class ProgramError(error): "Exception raised for obvious bugs (when an assertion is false)." def compile_regexps(seq): res = [] for e in seq: res.append((re.compile(e[0]), e[1])) return res def process_preamble(input_stream, output_stream, preamble_substitutions, begin_doc_re, lineno): begin_doc_rec = re.compile(begin_doc_re) subs = compile_regexps(preamble_substitutions) for line in input_stream: obuf = [line] # output buffer for regexp, repl in subs: mo = regexp.match(line) if mo is not None: # Replacement text obuf = [mo.expand(repl)] break output_stream.write(''.join(obuf)) lineno += 1 if begin_doc_rec.match(line): break return lineno def find_earliest_match(l): """Return the index in sequence l of the smallest element that is not -1. If all elements are equal to -1, return None.""" # Smallest number found so far, among those that are different from -1 min_so_far = None # Index of this number in 'l' index_of_min_so_far = None for i in range(len(l)): if l[i] != -1: if (min_so_far is None) or (l[i] < min_so_far): index_of_min_so_far = i min_so_far = l[i] return index_of_min_so_far def skip_cmd_and_args(obuf, line, cmd_start, command, nargs, lineno): """Skip a LaTeX command and its arguments. The command 'command' is supposed to start at position 'cmd_start' in 'line', and accept 'nargs' mandatory arguments. """ start_of_cmd_call_rec = re.compile(r"\\%s[ \t]*\{" % command) mo = start_of_cmd_call_rec.match(line, pos=cmd_start) if mo is None: raise ParseError("Parse error at line %u: cannot find the command " "\\%s followed by an opening brace, starting at " "column %u (column counted from 0)." % (lineno, command, cmd_start)) # Start parsing after the opening brace following the command name index = mo.end(0) # Nesting level of the braces parsed so far brace_level = 1 args_to_gobble = nargs while args_to_gobble > 0: while brace_level > 0: if index >= len(line): raise ParseError("""\ Runaway argument in line %u (unmatched braces), or too few arguments for command \\%s. Maybe the arguments end on the next lines, but this case is not handled currently.""" % (lineno, command)) if line[index] == '\\': index += 2 else: if line[index] == '{': brace_level += 1 elif line[index] == '}': brace_level -= 1 index += 1 args_to_gobble -= 1 obuf.append(line[cmd_start:index]) return index def match_object_start_as_number(mo): if mo is not None: res = mo.start(0) else: res = -1 return res def process_chunk(obuf, str, subs): """Perform the substitutions in 'subs' on string 's'.""" index = 0 while index < len(str): match_objects = [] for regexp, repl in subs: match_objects.append(regexp.search(str, pos=index)) match_indices = map(match_object_start_as_number, match_objects) # Did any of the regexps in subs match? no_match = True for i in match_indices: if i != -1: no_match = False break if no_match: break else: i = find_earliest_match(match_indices) mo = match_objects[i] match_start, match_end = mo.span(0) obuf.append(str[index:match_start]) # Replacement text obuf.append(mo.expand(subs[i][1])) # Continue searching and replacing after the match in the next # loop iteration index = match_end obuf.append(str[index:]) def process_body_line(output_stream, line, subs, lineno): """Perform replacement on a body line. 'subs' should be a list of tuples (compiled regexp, replacement string). """ index = 0 obuf = [] while True: cmd_starts_at = [] for cmd, nargs in skipped_commands: cmd_starts_at.append(line.find("\\" + cmd, index)) # Did we find at least one of the skipped_commands in 'line'? no_match = True for i in cmd_starts_at: if i != -1: no_match = False break if no_match: process_chunk(obuf, line[index:len(line)], subs) break else: # Find the command that matches first in 'line' i = find_earliest_match(cmd_starts_at) process_chunk(obuf, line[index:cmd_starts_at[i]], subs) index = skip_cmd_and_args(obuf, line, cmd_starts_at[i], command=skipped_commands[i][0], nargs=skipped_commands[i][1], lineno=lineno) output_stream.write(''.join(obuf)) def process_body(input_stream, output_stream, substitutions, no_subst, lineno): subs = compile_regexps(substitutions) no_subs = map(re.compile, no_subst) for line in input_stream: # print "Processing line %u..." % lineno no_processing_on_this_line = False for regexp in no_subs: if regexp.match(line): no_processing_on_this_line = True break if not no_processing_on_this_line: process_body_line(output_stream, line, subs, lineno) else: output_stream.write(line) lineno += 1 def process_command_line(): try: opts, args = getopt.getopt(sys.argv[1:], "", ["algorithm", "help", "version"]) except getopt.GetoptError, message: sys.stderr.write(usage + "\n") return ("exit", 1) params = {} for option, value in opts: if option == "--algorithm": print algorithm_doc return ("exit", 0) elif option == "--help": print usage return ("exit", 0) elif option == "--version": print "%s version %s" % (progname, progversion) return ("exit", 0) else: raise ProgramError("unexpected option received from the " "getopt module: '%s'" % option) if len(args) != 2: sys.stderr.write(usage + '\n') return ("exit", 1) params["input file"] = args[0] params["output file"] = args[1] return ("continue", params) def main(): action, p = process_command_line() if action == "exit": sys.exit(p) input_stream = file(p["input file"], "rb") output_stream = file(p["output file"], "wb") # Number of the input line that will be read next, starting from 1 lineno = 1 lineno = process_preamble(input_stream, output_stream, preamble_substitutions, begin_doc_re, lineno) process_body(input_stream, output_stream, body_substitutions, no_subst, lineno) sys.exit(0) if __name__ == "__main__": main() tex-common-6.04ubuntu1/doc/version.ent0000664000000000000000000000006712607350221014710 0ustar tex-common-6.04ubuntu1/scripts/0000775000000000000000000000000012607350221013432 5ustar tex-common-6.04ubuntu1/scripts/dh_installtex0000775000000000000000000004376412607350221016240 0ustar #!/usr/bin/perl -w # dh_installtex --- register Type 1 fonts, languages, or formats with TeX # Copyright (C) 2006, 2007 Florent Rougon # Copyright (C) 2006, 2007 Frank Küster # Copyright (C) 2006-2015 Norbert Preining # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 dated June, 1991. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA. # =head1 NAME dh_installtex - register Type 1 fonts, hyphenation patterns, or formats with TeX =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] [B<-n>] [B<--priority=>I] [B<--flavor=>I[,I]] [BI] [BI] [BI] [BI] [BI,I[,lhm=I][,rhm=I][,synonym=I,...]] [BI] [BI,I,I,I] [BI] =head1 DESCRIPTION dh_installtex is a debhelper program that is responsible for updating the ls-R databases, registering map files, new formats, and new hyphenation patterns with TeX. Your package should depend on an appropriate version of tex-common so that the update-* commands are available. (This program adds that dependency to ${misc:Depends}.) B This program does B check for the actual existence of any input files in TEXMF trees. If you call it without any further specification on which packages to work on (using C<-p> or C<-N>) it will add calls to management functions to B packages. In this case don't forget to add ${misc:Depends} to all packages' dependencies. =head1 SIMPLE USAGE: Registering Files If you only install files into /usr/share/texmf, nothing has to be done, tex-common will automatically detect changes and run mktexlsr. =head1 COMPLEX USAGE: Registering fonts, hyphenation patterns and formats If in addition, you have to install map files, hyphenation patterns for additional languages, or format definitions you can use three different methods to specify what should be installed: 1) B
 These files can be specified with the
different Ifile= options.
I can be one of map, format and hyphen, and these files will be
installed into /var/lib/tex-common/I/ for the respective type 
(fontmap-cfg for map files, hyphen-cnf for hyphenation patterns,
and fmtutil-cnf for format definitions).

Example:

        dh_installtex mapfile=foo.cfg formatfile=debian/bar.cnf

would install foo.cfg as /var/lib/tex-common/fontmap-cfg/texmf/foo.cfg, 
and debian/bar.cnf as /var/lib/tex-common/fmtutil-cnf/texmf/bar.cnf.


2) B
You can specify maps, formats, and hyphenations on the cmd line. The items
are stored in the respective config file 20package

Example:

        dh_installtex map=Map,foo.map hyphen=ngerman-x-2011-07-01,dehyphn-x-2011-07-01.tex,hyph-de-1996.pat.txt,lhm=2,rhm=2,synonym=ngerman-x-latest,exceptions=hyph-de-1996.hyp.txt

would install a file /var/lib/tex-common/fontmap-cfg/texmf/package.cfg containing the line

        Map foo.map

and a file /var/lib/tex-common/hyphen-cnf/texmf/package.cnf containing the lines

    name=ngerman-x-2011-07-01 file=dehyphn-x-2011-07-01.tex file_patterns=hyph-de-1996.pat.txt lefthyphenmin=2 righthyphenmin=2 synonym=ngerman-x-latest file_exceptions=hyph-de-1996.hyp.txt

3) B
You create a file debian/package.maps or debian/maps,
debian/package.hyphens or debian/hyphens, 
debian/package.formats or debian/formats. These files are
installed with the name of the package. Each of these
files will be installed into the first package dh_installtex
is told to act on. By default this is the first binary package in
debian/control, but if you use -p, -i, or -a flags, it will be the first
package specified by those flags.

Example:

        dh_installtex

would install a present debian/package.formats file as
/var/lib/tex-common/fmtutil-cnf/texmf/package.cnf.


=head2 Mixing the different variants

The command line items (Variant 2) are merged into the debian/package.maps 
(debian/package.hyphens, debian/package.formats) file. If you specify
an additional package.cfg/cnf (Variant 1) this will raise an error since
both files would be installed as package.cfg/cnf.

=head1 OPTIONS

=over 4

=item B<-n>, B<--noscripts>

Do not modify postinst/prerm scripts.

=item B<--flavor=>I[,I]

This option is used to select a different tree then the default
/usr/share/texmf, and to switch on additional options. The argument
specify a list from flavors to be selected.
At the moment you can select from the following list of flavors:
B,
B, B, 
B>.

B will select the tree /usr/share/texlive/texmf-dist and
should only be used for files installed into this tree.

B will create a file I for each active
(i.e. uncommented) map in each of the cfg file generated by one of the
three methods described above. These files are installed in
/usr/share/texmf/dvips/config/.

If you select B the script will generate I
even for those map files which are present in a cfg file, but deactivated by a comment.

The file I is used when called by `dvips -Pbar ...'. Thus it
allows the activation of single map files even if they are not automatically
activated via the updmap(-sys) mechanism.

Default is I to generate any config files.

B> allows to add the generation of a specific
format without actually providing it (in a cnf file).  This is useful if a 
package adds hyphenation patterns to an existing formats.

B:
Usually, for every format that is specified in a configuration file,
dh_installtex will create a symlink
/usr/bin/I that points to the corresponding engine.  For
example, /usr/bin/latex would be created as a symlink to pdftex.  

The flavor B inhibits this. If a link already
exists, dh_installtex will skip this format with an informational
message, even if this option is not given.

=back

=head1 NOTES

"dh_installtex" adds a dependency relation onto tex-common to misc:Depends.

Note that this command is not idempotent. "dh_clean -k" should be called
between invocations of this command, unless using the B<-n> option.
Otherwise, it may cause multiple instances of the same text to be added
to maintainer scripts.

Please refer to the Debian TeX policy for details about fonts configuration
for TeX by Debian packages.


=cut

init(options => { "flavor=s" => \$dh{FLAVOR} });




#
# GLOBAL VARIABLES
#
my $flavor;		
my $mapdoconfig =  0;	  # doconfig depending map/subflavor
my $doallformats = 0;	  # depending on flavor format:build_all
my $dofulllsr = 0;        # do include texmf-texlive in lsr making
my @addbuildformats = (); # additional formats to be build
my $doformatlinks = 1;
my $texmftree = "texmf";
my %cmdlineargs;
my %cmdlinefiles;

#
# definitions for the different flavors
#
# extension of package files debian/$package.formats and/or debian/formats etc
my %pkgfileext = ( 
	hyphen 		=> "hyphens", 
	format 		=> "formats", 
	map 		=> "maps" );
# extension of the config files
my %configfileext = ( 
	hyphen	 	=> "cnf", 
	format 		=> "cnf", 
	map 		=> "cfg" );
# comment char for magic header
my %commentchar = ( 
	hyphen	 	=> '%', 
	format 		=> '#', 
	map 		=> '#' );
# directory under /etc/texmf/ where files are installed
my %configdir = ( 
	hyphen	 	=> "hyphen.d", 
	format 		=> "fmt.d", 
	map 		=> "updmap.d" );
# directory under /var/lib/tex-common where list files are installed
my %managedir = ( 
	hyphen	 	=> "hyphen-cnf", 
	format 		=> "fmtutil-cnf", 
	map 		=> "fontmap-cfg" );
#
# dummy loop variables
my $i;
my $bn;
my $pr;
my $dofilen;

#
# collect data
# This function is used to extract certain information from the respective
# config files. Up to now we have to do the following:
# for config file for maps
# 	if we select to generate all dvips config files
# 	(with map:config_for_active_maps or map:config_for_all_maps)
# 	we collect the map files
# for config file for formats
# 	we extract format\tengine for
# 		- generation with fmtutil-sys --byfmt
# 		- creation of links /usr/bin/format -> /usr/bin/engine
sub collect_data {
	my ($type,$dataref,$entry) = @_;
	my $m;

	if ($type eq "map") {
		if ($m = extract_map($entry, $mapdoconfig)) { push @$dataref, $m; }
	} elsif ($type eq "format") {
		if ($m = extract_format($entry)) { push @$dataref, $m; }
	} 
	# TODO should we do something with hypehn here!????
}

sub extract_format {
	my ($line) = @_;
	if ($line =~ m/^([^#\s]\S+)\s*(\S*)\s+/) {
		return "$1\t$2";
	}
}

sub extract_map {
	my ($line,$mapdoconfig) = @_;
	if ($mapdoconfig == 0) { return ""; }
	if ($line =~ m/^[[:space:]]*([#[:space:]]*)[[:space:]]*(Mixed|Kanji)?Map[[:space:]]*(.*\.map)[[:space:]]*(#.*)?$/) {
		my $comment = $1;
		my $map = $3;
		if (($comment eq "") || ($mapdoconfig == 2)) {
			return $map;
		}
	}
	return "";
}

#
# build_line
# used to create a correct config file entry from a cmd-line specification
sub build_line {
	my ($type,$line) = @_;
	if ($type eq "map") {
		if ($line =~ m/^(Map|MixedMap|KanjiMap),(.*)$/) {
			return("$1 $2");
		} else {
			error("$line is neither of the form Map filename.map, nor MixedMap filename.map.");
		}
	} elsif ($type eq "format") {
		my ($format,$engine,$pat,@rest) = split(",",$line);
		my $ret = "$format\t$engine\t$pat\t" . join(",",@rest);
		return($ret);
	} elsif ($type eq "hyphen") {
		my ($lang,$loader,$pat,@rest) = split(",",$line);
		my $ret="name=$lang file=$loader file_patterns=$pat";
		my @synonyms = ();
		my $lhm;
		my $rhm;
		my $exceptions;
		foreach (@rest) {
			my ($a,$b) = split("=", $_, 2);
			if ($a eq "lhm") {
				$lhm = $b;
			} elsif ($a eq "rhm") {
				$rhm = $b;
			} elsif ($a eq "synonym") {
				push @synonyms, $b;
			} elsif ($a eq "exceptions") {
				$exceptions = $b;
			} else {
				error("$line is not well formed.");
			}
		}
		$ret .= " lefthyphenmin=$lhm" if defined($lhm);
		$ret .= " righthyphenmin=$rhm" if defined($rhm);
		$ret .= " file_exceptions=$exceptions" if defined($exceptions);
		if ($#synonyms >= 0) {
			$ret .= " synonyms=" . join(",",@synonyms);
		}
		$ret .= "\n";
		return($ret);
	}
}

#
#
# START OF THE MAIN PROGRAM
#
#

#
# parse the cmd line and fill in the various hashes
#
foreach (@ARGV) {
	if ((m/^(map)file=(.*\.cfg)$/) ||
		(m/^(hyphen)file=(.*\.cnf)$/) ||
		(m/^(format)file=(.*\.cnf)$/)) {
		my $type=$1;
		my $fn=$2;
		$cmdlinefiles{$type}{$fn} = 1;
	} elsif (m/^(map|hyphen|format)=(.*)$/) {
		push @{$cmdlineargs{$1}}, $2;
	} else {
		error("Unrecognized argument: $_\n");
	}
}

#
#
if (defined($dh{FLAVOR})) {
	foreach my $fl (split (/,/,$dh{FLAVOR})) {
		if ($fl eq "map:config_for_active_maps") {
			$mapdoconfig = 1;
		} elsif ($fl eq "map:config_for_all_maps") {
			$mapdoconfig = 2;
		} elsif ($fl eq "format:build_all") {
			$doallformats = 1;
		} elsif ($fl =~ /^format:add_one:(.*)$/) {
			push @addbuildformats , $1;
		} elsif ($fl eq "format:no_links") {
			$doformatlinks = 0;
		} elsif ($fl eq "lsr:full") {
			$dofulllsr = 1;
		} elsif ($fl eq "tree:texlive") {
			$texmftree = "texlive";
		} else {
			error("Specified flavor $fl not supported.\nPlease see man page for supported flavors!\n");
		}
	}
}



foreach my $package (@{$dh{DOPACKAGES}}) {
	# these variables should be local to the loop over packages
	# as they vary with package
	my $tmp=tmpdir($package);
	my %pkgprovidedfilecontents;
	my %data;
	my @whattodo = ();

	if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
		# we do nothing here
	} else {
		# we have to clear all the cmd line arguments!
		%cmdlinefiles = ();
		%cmdlineargs = ();
	}

	foreach my $type ("map", "hyphen", "format") {
		my @cmdlineconfigfiles = ();
		my @cmdlinearguments = ();
		my $pkgprovidedfile = 0;
		my $pkgfileoncmdline = 0;
		my @listlines;
		my $pkgfilename = pkgfile($package,$pkgfileext{$type});
		if ($pkgfilename) {
			open(FOO, "<$pkgfilename") || error("$pkgfilename cannot be opened.");
			my @bar = ;
			close(FOO);
			$pkgprovidedfilecontents{$type} = \@bar;
			$pkgprovidedfile = 1;
		}
		if (defined($cmdlinefiles{$type})) {
			@cmdlineconfigfiles = keys(%{$cmdlinefiles{$type}});
		}

		if (defined($cmdlineargs{$type})) {
			@cmdlinearguments = @{$cmdlineargs{$type}};
		}
		foreach my $foo (@cmdlineconfigfiles) {
			my $bn=basename($foo);
			if ($bn eq "$package.$configfileext{$type}") {
				$pkgfileoncmdline = 1;
			}
		}
		if (!$pkgprovidedfile && ($#cmdlineconfigfiles < 0) && ($#cmdlinearguments < 0)) {
			# we have nothing to do here, skip to the next one!
			next;
		}
		# we got something, either a cmd line are for one of the
		# config files, or a package (e.g., debian/pkg.maps) file 
		# do the full maintainer stuff!
		push @whattodo, $type;
		if ($pkgfileoncmdline && ($pkgprovidedfile || ($#cmdlinearguments >= 0))) {
			error("This call would create multiple copies of $package.$configfileext{$_}.\nPlease read the man page on how this should be fixed!\n");
		}

		my $target = "/var/lib/tex-common/$managedir{$type}/$texmftree";
		if ( ! $dh{ONLYSCRIPTS} && ! -d "$tmp$target") {
			doit("install", "-d", "$tmp$target");
		};
		#
		# the cmd line cfg files
		#
		foreach (@cmdlineconfigfiles) {
			$bn=basename($_);
			$dofilen = "$tmp$target/$bn";
			WRITECMDLINECFGFILE: do {
				-r $dofilen &&
					error("The config file $dofilen already exists! Cannot recreate it, please call dh_clean -k!");
				open(CFGFILE, ">$dofilen") ||
					error("Cannot open $dofilen for writing!");
				verbose_print("Writing $dofilen");
				open(FOO,"<$_") || error("Cannot open $_ for reading!");
				while () { 
					print CFGFILE $_; 
					collect_data($type,\@{$data{$type}},$_);
				}
				close(FOO);
				close(CFGFILE);
				$bn =~ s/\.$configfileext{$type}$//;
			} unless ($dh{ONLYSCRIPTS});
		}
		#
		# now debian/package.maps and/or debian/maps formats languages
		# merge in the cmd line arguments
		#
		if ( ! $dh{ONLYSCRIPTS} && ( $pkgprovidedfile || ($#cmdlinearguments >= 0) )) {
			my $basefile = "$package.$configfileext{$type}";
			$dofilen = "$tmp$target/$basefile";
			-r $dofilen && 
				error("The config file $dofilen already exists! Cannot recreate it, please call dh_clean -k!");
			open(CFGFILE, ">$dofilen") || 
				error("Cannot open $dofilen for writing!");
			verbose_print("Writing $dofilen");
			foreach (@{$pkgprovidedfilecontents{$type}}) {
				print CFGFILE "$_";
				collect_data($type,\@{$data{$type}},$_);
			}
			foreach (@cmdlinearguments) {
				my $foo =  build_line($type,$_);
				print CFGFILE $foo,"\n";
				collect_data($type,\@{$data{$type}},$foo);
			}
			close(CFGFILE);
		};

	}
	
	my @mapdata = ();
	if (defined($data{"map"})) {
		@mapdata = @{$data{"map"}};
	}
	if ( ! $dh{ONLYSCRIPTS} && ($#mapdata >= 0) ) {
		doit("install","-d","$tmp/usr/share/texmf/dvips/config/");
	};
	INSTALLDVIPSCONF: do {
		foreach $i (@mapdata) {
			my $font = $i;
			$font =~ s/\.map$//;
			$dofilen = "$tmp/usr/share/texmf/dvips/config/config.$font";
			-r $dofilen &&
				error("The dvips config file $dofilen already exists!\nYou may have to call dh_clean -k!\n");
			open(CNFFILE, ">$dofilen") ||
				error("Cannot open $dofilen for writing!");
			verbose_print("Writing $dofilen");
			print CNFFILE "p +$i\n";
			close(CNFFILE);
		} 
	} unless ($dh{ONLYSCRIPTS});

	my @fmtpairs = ();
	my @fmtdata = ();
	my @postrmfmtdata = ();
	if (defined($data{"format"})) {
		@fmtpairs = @{$data{"format"}};
	}
 	installformatlink: do {
		foreach my $pair (@fmtpairs) {
			my ($format,$engine) = $pair =~ m/^(.*)\t(.*)$/;
			if ($engine =~ m/^(mf|mf-nowin)$/) {
				push @postrmfmtdata, "metafont/$format";
			} elsif ($engine eq "mpost") {
				push @postrmfmtdata, "metapost/$format";
			} else {
				push @postrmfmtdata, "$engine/$format";
			}
			push @postrmfmtdata, "$format";
			push @fmtdata, "$format";
			if ($doformatlinks && ($format ne $engine)) {
				my $formatlink = "$tmp/usr/bin/$format";
				if ( -l $formatlink ) {
					if (readlink($formatlink) eq $engine) {
						# correct link generated, only give message
						warning ("/usr/bin/$format link already correctly created, skipping recreation");
					} else {
						# it is a link but pointing to something different
						# error out
						error ("/usr/bin/$format link points to something different but $engine!");
					}
				} elsif ( -e $formatlink ) {
					error ("/usr/bin/$format already exists and not a link, exiting");
				} else {
					doit("mkdir","-p","$tmp/usr/bin");
					doit("ln","-s","$engine","$formatlink");
		  		};
			}
		} 
	} unless ($dh{ONLYSCRIPTS});

	if ($#addbuildformats >= 0) {
		push @fmtdata, @addbuildformats;
		push @postrmfmtdata, @addbuildformats;
	}
	if (! $dh{NOSCRIPTS}) {
		# reproducible builds: sort the two arrays!
		@whattodo = sort @whattodo;
		@postrmfmtdata = sort @postrmfmtdata;
		my $whattodoinst = "update-texmf-config @whattodo";
		my $whattodorem  = "dhit_call_update_texmf_config @whattodo";
		autoscript($package, "postinst", "postinst-tex", "s|#WHATTODO#|$whattodoinst|");
		# map entries have already been filtered out
		autoscript($package, "postrm",   "postrm-tex", "s|#FORMATS#|@postrmfmtdata|; s|#WHATTODO#|$whattodorem|");
	}

	addsubstvar($package, "misc:Depends", "tex-common", ">= 6");
}

=head1 SEE ALSO

L

=head1 AUTHOR

This program and its documentation was written by
Norbert Preining > for the Debian Operating System
and both are licensed under the GNU General Public License Version 2 or later.

=cut

### Local Variables:
### perl-indent-level: 4
### tab-width: 4
### indent-tabs-mode: t
### End:
# vim:set tabstop=4 autoindent fileencoding=utf-8: #
tex-common-6.04ubuntu1/scripts/postinst-tex0000664000000000000000000000106212607350221016035 0ustar  ##
## postinst-tex
##
## postinst snippets for everything TeX related
## simply call update-texmf-config triggers
##
## Authors:
##       Norbert Preining 
##
# Please note that comments in this file are stripped before installation
# by calling a grep -v '^[ \t]*# '
# Thus, first lines containing ## are preserved!
# So please be careful if you add stuff here!
#

case "$1" in
    configure|abort-upgrade|abort-remove|abort-deconfigure)
        #WHATTODO#
    ;;
esac

# Let vim know that we don't want tabs
# vim:set expandtab tabstop=4: #
tex-common-6.04ubuntu1/scripts/postrm-tex0000664000000000000000000000255012607350221015501 0ustar  ##
## postrm-tex
##
## postrm snippets for unregistering maps, formats, hyphens
## and removing format dumps
##
## Authors:
##       Norbert Preining 
##
# Please note that comments in this file are stripped before installation
# by calling a grep -v '^[ \t]*# '
# Thus, first lines containing ## are preserved!
# So please be careful if you add stuff here!
#

# it might happen that tex-common is not installed and
# still the postrm of a package is tried to be uninstalled
# so don't call update-texmf-config if not present
# See bug report #531581
dhit_call_update_texmf_config ()
{
    if which update-texmf-config >/dev/null; then
        update-texmf-config $*
    else
        echo "update-texmf-config not present: is tex-common installed?" >&2
    fi
}

case "$1" in
    remove|disappear)
        #WHATTODO#
        for fmt in #FORMATS# ; do
            rm -f /var/lib/texmf/web2c/$fmt.*
            # try to remove empty directories of format dumps
            dn=`dirname $fmt`
            if [ $dn != "." ] ; then
                if [ -d /var/lib/texmf/web2c/$dn ] ; then
                    rmdir --ignore-fail-on-non-empty /var/lib/texmf/web2c/$dn
                fi
            fi
        done
    ;;

    purge|upgrade|failed-upgrade|abort-upgrade|abort-install)
    ;;

esac

# Let vim know that we don't want tabs
# vim:set expandtab tabstop=4: #
tex-common-6.04ubuntu1/scripts/tex.pm0000664000000000000000000000025112607350221014566 0ustar  #!/usr/bin/perl
# debhelper sequence file for tex-common script

use warnings;
use strict;
use Debian::Debhelper::Dh_Lib;

insert_after("dh_link", "dh_installtex");

1;
tex-common-6.04ubuntu1/scripts/update-language0000775000000000000000000002257112607350221016432 0ustar  #!/usr/bin/perl
# update-language --- Generate language.dat* from a set of files
# Copyright (C) 2015 Norbert Preining
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 dated June, 1991.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301 USA.


$^W = 1;
use strict;

my $version = "0.1";

use File::Basename;
use Getopt::Long;
use Text::ParseWords;

my $mode = 'all';

# for each file in /var/lib/tex-common/hyphen-cnf/
# plus the config file /etc/texmf/web2c/local-hyphen.cnf

my $localconf = '/etc/texmf/web2c/local-hyphen.cnf';
my $default_output_dir = '/var/lib/texmf/tex/generic/config';
my %data;
my $progname = basename($0);

my $opt_conf_file = "";
my $opt_output    = "";
my $opt_outdir    = "";
my $opt_checks = 0;
my $opt_quiet  = 0;
my $opt_help   = 0;
my $opt_version = 0;

my %defaults = (
  'latex' => {
    'output' => 'language.dat',
    'func'   => \&make_latex_line,
    'head'   => '/usr/share/texlive/texmf-dist/tex/generic/config/language.us',
    'post'   => '',
  },
  'etex' => {
    'output' => 'language.def',
    'func'   => \&make_etex_line,
    'head'   => '/usr/share/texlive/texmf-dist/tex/generic/config/language.us.def',
    'post'   => "\n\\uselanguage \{USenglish\}  \%\%\% This MUST be the last line of the file.\n",
  },
  'luatex' => {
    'output' => 'language.dat.lua',
    'func'   => \&make_luatex_line,
    'head'   => '/usr/share/texlive/texmf-dist/tex/generic/config/language.us.lua',
    'post'   => "\}\n",
  }
);

&main();

# from here on only sub definitions!

sub main {
  GetOptions(
    "conf-file|c=s"     => \$opt_conf_file,
    "output-file|o=s"   => \$opt_output,
    "output-dir|d=s"    => \$opt_outdir,
    "checks"            => \$opt_checks,
    "quiet|q"           => \$opt_quiet,
    "help|h|?"          => \$opt_help,
    "version|v"         => \$opt_version) or usage();

  if ($progname eq "update-language") {
    $mode = "all";
  } elsif ($progname eq "update-language-dat") {
    $mode = "latex";
  } elsif ($progname eq "update-language-def") {
    $mode = "etex";
  } elsif ($progname eq "update-language-lua") {
    $mode = "luatex";
  } else {
    die "Please call me as update-language(-dat,-def,-lua).";
  }

  if ($opt_help) {
    usage();
    exit 0;
  }
  if ($opt_version) {
    version();
    exit 0;
  }

  # if texlive-base is not properly installed, we do nothing
  my $stat = `dpkg-query -W -f=\'\${Status}\' texlive-base 2>/dev/null`;
  if ($stat ne "install ok installed") {
    printf "$progname: texlive-base not installed and configured, doing nothing!\n";
    exit 0;
  }


  update_conffiles($mode);
}


sub update_conffiles {
  my $mode = shift;
  my @todo;

  if ($mode eq 'all') {
    push @todo, keys(%defaults);
  } else {
    push @todo, $mode;
  }

  read_data();

  for my $t (@todo) {
    my $of = ($opt_output ? $opt_output : 
      ( $opt_outdir ? "$opt_outdir/$defaults{$t}{'output'}" :
        "$default_output_dir/$defaults{$t}{'output'}"));
    open(FOO, ">$of") || die "Cannot open $of: $!";

    if (-r $defaults{$t}{'head'}) {
      open BAR, "<", $defaults{$t}{'head'} || die("Cannot open head file $defaults{$t}{'head'}: $!");

      for () { print FOO $_; }
      close BAR;
    } else {
      die("Missing head file $defaults{$t}{'head'}: $!");
    }
    for my $n (keys %data) {
      print FOO &{$defaults{$t}{'func'}}($n);
    }
    print FOO $defaults{$t}{'post'};
    close FOO;
  }
}

# should have been in TLUtils, but the actual code is hidden
# in TLPOBJ.pm, bad!
sub make_latex_line {
  my $n = shift;
  my $ret = "$n " . $data{$n}{'file'} . "\n";
  if ($data{$n}{'synonyms'}) {
    for my $s (@{$data{$n}{'synonyms'}}) {
      $ret .= "=$s\n";
    }
  }
  return $ret;
}
sub make_etex_line {
  my $n = shift;
  my $file = $data{$n}{'file'};
  my $lhm  = $data{$n}{'lefthyphenmin'};
  my $rhm  = $data{$n}{'righthyphenmin'};
  my $ret = "\\addlanguage\{$n\}\{$file\}\{\}\{$lhm\}\{$rhm\}\n";
  return $ret;
}
sub make_luatex_line {
  my $n = shift;
  my $file = $data{$n}{'file'};
  my $exc  = $data{$n}{'file_exceptions'};
  my $lhm  = $data{$n}{'lefthyphenmin'};
  my $rhm  = $data{$n}{'righthyphenmin'};
  my $patt = $data{$n}{'file_patterns'};
  my $special = $data{$n}{'luaspecial'};
  my $syns = '';
  if ($data{$n}{'synonyms'}) {
    my @syn = (@{$data{$n}{'synonyms'}});
    map { $_ = "'$_'" } @syn;
    $syns = join(', ', @syn);
  }
  my $ret = <<"EOF"
  [\'$n\'] = {
    loader = \'$file\',
    lefthyphenmin = $lhm,
    righthyphenmin = $rhm,
    synonyms = { $syns },
EOF
  ;
  $ret .= "    patterns = \'$patt\',\n" if defined $patt;
  $ret .= "    hyphenation = \'$exc\',\n" if defined $exc;
  $ret .= "    special = \'$special\',\n" if defined $special;
  $ret .= "  },\n";
  return $ret;
}

sub parse_hyphen_line {
  my $line = shift;
  my %ret;
  my $default_lefthyphenmin = 2;
  my $default_righthyphenmin = 3;
  $ret{"lefthyphenmin"} = $default_lefthyphenmin;
  $ret{"righthyphenmin"} = $default_righthyphenmin;
  $ret{"synonyms"} = [];
  my @parsed = Text::ParseWords::parse_line('\s+', 0, $line);
  for my $p (@parsed) {
    my ($a, $b) = split(/=/, $p);
    if ($a eq "name") {
      if (!$b) {
        $ret{"error"} = "AddHyphen line needs name=something";
        return %ret;
      }
      $ret{"name"} = $b;
      next;
    }
    if ($a eq "lefthyphenmin") {
      $ret{"lefthyphenmin"} = ( $b ? $b : $default_lefthyphenmin );
      next;
    }
    if ($a eq "righthyphenmin") {
      $ret{"righthyphenmin"} = ( $b ? $b : $default_righthyphenmin );
      next;
    }
    if ($a eq "file") {
      if (!$b) {
        $ret{"error"} = "AddHyphen line needs file=something";
        return %ret;
      }
      $ret{"file"} = $b;
      next;
    }
    if ($a eq "file_patterns") {
        $ret{"file_patterns"} = $b;
        next;
    }
    if ($a eq "file_exceptions") {
        $ret{"file_exceptions"} = $b;
        next;
    }
    if ($a eq "luaspecial") {
        $ret{"luaspecial"} = $b;
        next;
    }
    if ($a eq "databases") {
      @{$ret{"databases"}} = split /,/, $b;
      next;
    }
    if ($a eq "synonyms") {
      @{$ret{"synonyms"}} = split /,/, $b;
      next;
    }
    if ($a eq "comment") {
        $ret{"comment"} = $b;
        next;
    }
    # should not be reached at all
    $ret{"error"} = "Unknown language directive $a";
    return %ret;
  }
  # this default value couldn't be set earlier
  if (not defined($ret{"databases"})) {
    if (defined $ret{"file_patterns"} or defined $ret{"file_exceptions"}
        or defined $ret{"luaspecial"}) {
      @{$ret{"databases"}} = qw(dat def lua);
    } else {
      @{$ret{"databases"}} = qw(dat def);
    }
  }
  return %ret;
}


sub read_one_file {
  my $f = shift;
  my $do_warn = shift;
  open FOO, "<$f" || die ("Cannot read file $f: $!");
  while () {
    chomp;
    next if /^\s*%/;
    next if /^\s*$/;
    my %r = parse_hyphen_line($_);
    if (defined($r{"error"})) {
      die ("Cannot parse $_ in $f: $r{'error'}");
    }
    my $n = $r{'name'};
    if (defined($data{$n})) {
      if ($do_warn == 2) {
        printf STDERR "TeX Live internal double defined hyphenations pattern found: $n\n";
      } elsif ($do_warn == 1) {
        printf STDERR "double defined hyphenations pattern found: $n\n";
      } 
    }
    for my $k (keys %r) {
      next if ($k eq "name");
      $data{$n}{$k} = $r{$k};
    }
  }
  close FOO;
}

sub read_data {
  if (-d '/var/lib/tex-common/hyphen-cnf/texlive/') {
    for my $f () {
      read_one_file($f, 2);
    }
  }
  if (-d '/var/lib/tex-common/hyphen-cnf/texmf/') {
    for my $f () {
      read_one_file($f, 1);
    }
  }
  if (-r $localconf) {
    read_one_file($localconf, 0);
  }
}

sub version {
  print "$progname $version\n";
}

sub usage () {
  print <<"EOF"
Usage: $progname(-dat,-def,-lua) [OPTIONS ...]
Generate hyphenation configuration files language.dat, .def, .dat.lua

When called as update-language, all three configurations files are
generated. Otherwise only the selected one.

Options:
  -c, --conf-file=FILE   file giving additional hyphen specifications
  -o, --output-file=FILE file to write the output to
  -d, --output-dir=DIR   directory where files are written
      --checks           perform sanity checks on the generated config file
  -q, --quiet            don't write anything to the standard output during
                         normal operation
  -h, -?, --help         display this help message and exit
      --version          output version information and exit

Files:

The default output directory is
  $default_output_dir

The default output files are
  for update-language-dat  $defaults{'latex'}{'output'}
  for update-language-def  $defaults{'etex'}{'output'}
  for update-language-lua  $defaults{'luatex'}{'output'}

If -o/--output-file is given, it overrides all defaults.

EOF
;
}

### Local Variables:
### perl-indent-level: 2
### tab-width: 2
### indent-tabs-mode: nil
### End:
# vim:set tabstop=2 expandtab: #
tex-common-6.04ubuntu1/scripts/update-texmf0000664000000000000000000000477112607350221015771 0ustar  #!/bin/sh
# update-texmf
# License: GPL

set -e

TXMF=/etc/texmf
TXMF_CNF=$TXMF/web2c/texmf.cnf
CNFDIR=${TXMF}/texmf.d
TMPDIR=`mktemp -d`
TMPTXMF=`mktemp -p ${TMPDIR} texmfXXXXXXX`

VERBOSE=false
DEBUG=false
while [ $# -ne 0 ]; do
  case $1 in
    -v|--verbose)
      VERBOSE=true
      shift;;
    -d|--debug)
      DEBUG=true
      VERBOSE=true
      shift;;
    *)
      echo "unknown option: $1"
      exit 1
      ;;
  esac
done

# test wether /etc isn't mounted read-only
if touch /etc/texmf/is_rw 2>/dev/null; then
  rm -f /etc/texmf/is_rw
else
  echo "Directory /etc/texmf/ not writeable. Exiting."
  exit 1
fi

CNFFILES=`find ${CNFDIR} -name \*.cnf -print | sort`
if [ $DEBUG = true ]; then
  echo "Using the following files:"
  for file in $CNFFILES; do
    echo $file
  done
fi

if [ -z "$CNFFILES" ] ; then
  # no config files are found, remove texmf.cnf if it is there
  rm -rf /etc/texmf/web2c/texmf.cnf
  exit 0
fi

if [ "${VERBOSE}" = "true" ]; then
  if [ -f "${TXMF_CNF}" ]; then
    echo -n "Merging information from /etc/texmf/texmf.d/ into ${TXMF_CNF} ... " >&2
  else
    echo -n "Generating ${TXMF_CNF} ... " >&2
  fi
fi

cat > ${TMPTXMF} <&2
       echo "%%% IGNORED: $i" >> ${TMPTXMF}
       continue
    fi
    echo "%%% From file: $i" >> ${TMPTXMF}
    cat $i >> ${TMPTXMF}
    echo "%%% End of file: $i" >> ${TMPTXMF}
done

mkdir -p ${TXMF}/web2c
cp ${TMPTXMF} ${TXMF_CNF}
rm -r ${TMPDIR}
chmod 644 ${TXMF_CNF}

if [ "${VERBOSE}" = "true" ]; then
  echo "done"
fi

#
# Let vim know that we don't want tabs
# vim:set expandtab: #
tex-common-6.04ubuntu1/scripts/update-texmf-config0000664000000000000000000000300012607350221017214 0ustar  #!/bin/sh -e
#
# update-texmf-config
# script used in maintainer script for updating the config files
# updmap.cfg, language.dat, fmtutil.cnf, and calling the respective
# triggers to allow tex-common trigger action to be run.
#
# Copyright (C) 2009-2015 Norbert Preining
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 dated June, 1991.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301 USA.

# for upgrading purpose we accept language as synonym for hyphen, and
# updmap for map, we also keep lsr land fulllsr, although now triggered
# implicitly via file triggers
while [ $# -ne 0 ]; do
  case $1 in
    hyphen|language)
      dpkg-trigger texmf-hyphen
      shift;;
    format)
      dpkg-trigger texmf-format
      shift;;
    map|updmap)
      dpkg-trigger texmf-map
      shift;;
    lsr)
      # ignored
      shift;;
    lsrfull)
      # ignored
      shift;;
    *)
      echo "unknown option: $1"
      exit 1
      ;;
  esac
done

# vim:set expandtab tabstop=2: #
tex-common-6.04ubuntu1/scripts/update-texmf-config.80000664000000000000000000000246712607350221017402 0ustar  .TH UPDATE-TEXMF-CONFIG 8
.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
.\" other parms are allowed: see man(7), man(1)
.SH NAME
update-texmf-config \- script used in maintainer scripts to trigger tex-common actions
.SH SYNOPSIS
.B update-texmf-config
.I "[options]"
.br
.SH DESCRIPTION
This manual page documents briefly the
.BR update-texmf-config
command.
This manual page was written for the Debian GNU/Linux distribution
because the original script was designed for Debian packaging system.
.PP
.B update-texmf-config
is a shell script that is called from maintainer scripts shipping new
map files, hyphenation patterns, or any other TeX input
file.
.PP
The script simply activates the respective trigger, namely texmf-map
for font map files, texmf-hyphen for hyphenation patterns, and
texmf-format for format updates. All
the necessary action will then be carried out by the tex-common package.
.SH OPTIONS
.TP
.B map
Activate the texmf-map trigger.
.TP
.B hyphen
Activate the texmf-hyphen trigger.
.TP
.B format
Activate the texmf-format trigger.

.SH SEE ALSO
.PP
Further information can be found in
/usr/share/doc/tex-common/README.Debian.{txt,pdf.html}
.PP
.SH AUTHOR
This manual page was written by Norbert Preining ,
for the Debian GNU/Linux system (but may be used by others).
tex-common-6.04ubuntu1/scripts/update-texmf.80000664000000000000000000000217712607350221016135 0ustar  .TH UPDATE-TEXMF 8
.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
.\" other parms are allowed: see man(7), man(1)
.SH NAME
update-texmf \- shell script to generate /etc/texmf/texmf.cnf
.SH SYNOPSIS
.B update-texmf
.I "[options]"
.br
.SH DESCRIPTION
This manual page documents briefly the
.BR update-texmf
command.
This manual page was written for the Debian GNU/Linux distribution
because the original script was designed for Debian packaging system.
.PP
.B update-texmf
is a shell script to generate /etc/texmf/web2c/texmf.cnf from files in 
/etc/texmf/texmf.d/*.cnf
.PP
A user who wants to customize /etc/texmf/web2c/texmf.cnf should add, 
for example, 22mymacro.cnf in /etc/texmf/texmf.d/ and run 'update-texmf'.
.SH OPTIONS
.TP
.B \-v, --verbose
Show verbose messages.
.TP
.B \-d, --debug
Show debugging information, and don't delete temporary files. Implies
--verbose. 
.SH SEE ALSO
.PP
Further information can be found in
/usr/share/doc/tex-common/README.Debian.{txt,pdf.html}
.PP
.SH AUTHOR
This manual page was written by Atsuhito Kohda ,
for the Debian GNU/Linux system (but may be used by others).
tex-common-6.04ubuntu1/scripts/update-tl-stacked-conffile0000775000000000000000000002312512607350221020461 0ustar  #!/bin/bash -e
#
# update-tl-stacked-conffile --- Generate stacked conffiles of TL for all trees
# Copyright (C) 2012-2015 Norbert Preining
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 dated June, 1991.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA  02110-1301 USA.

version="1.0"
progname=$(basename "$0")



if [ "$progname" = "update-updmap" ] ; then
  SNIPPET_BASE=/var/lib/tex-common/fontmap-cfg
  SNIPPET_OLD_BASE=/etc/texmf/updmap.d
  NAME=updmap
  EXT=.cfg
elif [ "$progname" = "update-fmtutil" ] ; then
  SNIPPET_BASE=/var/lib/tex-common/fmtutil-cnf
  SNIPPET_OLD_BASE=/etc/texmf/fmt.d
  NAME=fmtutil
  EXT=.cnf
else
  echo "Please call me either as update-updmap or update-fmtutil!"
  exit 1
fi


# this needs to be kept in sync with dh_installtex
COMPONENTS="texmf texlive"


usage="Usage: $progname [OPTION...]
Generate $NAME configuration files.

Options:
      --checks           perform sanity checks on the generated config file
      --quiet            don't write anything to the standard output during
                         normal operation
      --help             display this help message and exit
      --version          output version information and exit"


# This ensures that if $tempfile is in the *environment*, we won't erase
# the file it could point to in case the script is killed by a signal before
# it has had a chance to even create its temporary file.
tempfile=""


cleanup()
{
    rc=$?
    [ -n "$tempfile" ] && rm -f "$tempfile"
    exit $rc
}

perform_contents_check ()
{
    if [ $NAME = fmtutil ] ; then
        # no checks at the moment
        return 0
    elif [ $NAME = updmap ] ; then
        fn="$1"
        grep -i '^\W*\(Mixed\|Kanji\)\?Map' "$fn" | while read foo map ; do
            # now check the existence of the hyphenation file
            if [ -z $(kpsewhich -format=map $map) ] ; then
                cat >&2 <
include_file()
{
    file="$1"
    printf "\n# ## From file: $file\n"
    cat "$file"
    echo "# End of file: $file"
}

# do_not_include_file 
do_not_include_file()
{
    file="$1"

    cat </dev/null; then
        # Is the package "$file" comes from still installed?
        if [ -d "$SNIPPET_BASE" ] \
            && find "$SNIPPET_BASE" -type f -name '*.list' -print0 \
            | xargs -0r cat \
            | grep -E "^$(basename "$file" $EXT)\$" >/dev/null;
        then
            include_file "$file"
        else
            do_not_include_file "$file"
        fi
      else
        include_file "$file"
      fi
    fi
}

#######################################################
#
# end of backward compatibility stuff
#
#######################################################


# The list of signals to trap is taken from teTeX 3's updmap script, but they
# have been converted to signal names because we can only rely on these on
# POSIX systems.
trap 'cleanup' HUP INT QUIT BUS PIPE TERM


# -v (verbose) is here for backward compatibility only.
TEMP=$(getopt -o +vc:o: --longoptions \
    check,quiet,help,version \
    -n "$progname" -- "$@")

case $? in
    0) : ;;
    1) echo "$usage" >&2; exit 1 ;;
    *) exit 1 ;;
esac

# Don't remove the quotes around $TEMP!
eval set -- "$TEMP"

# ****************************************************************************
# *                                 Defaults                                 *
# ****************************************************************************
quiet=0
dochecks=0

# ****************************************************************************
# *                             Options handling                             *
# ****************************************************************************
while true; do
    case "$1" in
        --quiet) quiet=1; shift ;;
        --check) dochecks=1; shift ;;
        -v) printf "\
${progname}'s -v option is deprecated. The default mode of operation will
be verbose as soon as enough packages use the --quiet option. Please update
your scripts accordingly.\n\n" >&2; quiet=0; shift ;;
        --help) echo "$usage"; exit 0 ;;
        --version) echo "$progname $version"; exit 0 ;;
        --) shift; break ;;
	*) echo "$progname: unexpected option '$1'; please report a bug." >&2
            exit 1 ;;
    esac
done

# Non-option arguments are not allowed.
if [ $# -ne 0 ]; then
    echo "$usage" >&2
    exit 1
fi

# ****************************************************************************
# *                               Actual work                                *
# ****************************************************************************

updated_files=""
for tree in $COMPONENTS ; do
    if [ $tree = "texmf" ] ; then
        # output_file=/usr/share/texmf/web2c/updmap.cfg
        if [ $NAME = "updmap" ] ; then
            output_file=/var/lib/texmf/updmap.cfg-DEBIAN
        else
            output_file=/var/lib/texmf/fmtutil.cnf-DEBIAN
        fi
    elif [ $tree = "texlive" ] ; then
        # output_file=/usr/share/texlive/texmf-dist/web2c/updmap.cfg
        if [ $NAME = "updmap" ] ; then
            output_file=/var/lib/texmf/updmap.cfg-TEXLIVEDIST
        else
            output_file=/var/lib/texmf/fmtutil.cnf-TEXLIVEDIST
        fi
    else
        echo "$progname: that cannot happen!" >&2
        exit 1
    fi

    # create output dir in any case ...
    destdir=$(dirname $output_file)
    mkdir -p "$destdir"
    cd "$destdir"

    #
    if [ $quiet = 0 ]; then
        if [ -f "$output_file" ]; then
	        printf "Regenerating '${output_file}'... "
        else
            printf "Generating '${output_file}'... "
        fi
    fi

    # Creating the temporary file in the output directory gives it 
    # automatically the default permissions appropriate for that 
    # directory, according to the user's umask. When it is complete, 
    # we'll be able to rename it atomically to the desired output 
    # file, which will therefore have the right permissions.
    tempfile="update-tl-conffile.$tree.new"

    if ! printf "" > "$tempfile" ; then
        echo "$progname: cannot write to the temporary file '$tempfile'" >&2
        exit 1
    fi

    printf "\
### This file was automatically generated by ${progname}.
#
# Any local change will be overwritten. Please see the documentation
# of updmap on how to override things from here.
#
###\n" >> "$tempfile"

    # From now on, $tempfile must be deleted on exit; therefore, cleanup() should
    # be used.

    if [ -d "$SNIPPET_BASE/$tree" ] ; then
        find "$SNIPPET_BASE/$tree"  -maxdepth 1 -type f -name '*'$EXT \
            -exec cat '{}' \; >> "$tempfile"
    fi

    if [ $tree = "texmf" ] ; then
        #
        # also include snippets in /etc/texmf/updmap.d but give
        # big fat warnings that this might create problems!!!
        if [ -d $SNIPPET_OLD_BASE ] ; then
            old_files=$(find $SNIPPET_OLD_BASE -maxdepth 1 -type f -name '*'$EXT | LC_COLLATE=C sort)
            if [ -n "$old_files" ] ; then
                cat >&2 <&2
                done
                echo "" >&2
            fi

            for file in $old_files  ; do
                handle_file $file >> "$tempfile"
            done
        fi
    fi

    # This is atomic.
    mv "$tempfile" "$output_file"
    updated_files="$updated_files\t$output_file\n";

    # Check wether the generated file is decent, if all necessary files are
    # installed, etc.
    if [ "$dochecks" = 1 ] ; then
        perform_contents_check "$output_file"
    fi
    if [ $quiet = 0 ]; then
        printf "done.\n"
    fi

done

if [ $quiet = 0 ] && [ -n "$updated_files" ] ; then
    echo "$progname has updated the following file(s):"
    printf "$updated_files"
    echo "If you want to activate the changes in the above file(s),"
    echo "you should run ${NAME}-sys or $NAME."
fi


# vim:set expandtab tabstop=4 autoindent: #
tex-common-6.04ubuntu1/scripts/update-tl-stacked-conffile.80000664000000000000000000000670112607350221020625 0ustar  .Dd Jul 17, 2013
.Os Debian
.Dt UPDATE-UPDMAP 8 SMM
.Sh NAME
.Nm update-updmap
.Nd generate
.Pa updmap.cfg
files for all the system trees
.Sh SYNOPSIS
.Nm
.Bk
.Op Ar option ...
.Ek
.Sh DESCRIPTION
This manual page documents
.Nm ,
a program that was written for the Debian distribution.
.Ss Overview
.Nm
is used to generate
.Xr updmap 1 Ns 's
and 
.Xr updmap-sys 8 Ns 's
configurations files
.Pa /var/lib/texmf/updmap.cfg-TEXLIVEDIST ,
which is the link target of
.Pa /usr/share/texlive/texmf-dist/web2c/updmap.cfg ,
and
.Pa /var/lib/texmf/updmap.cfg-DEBIAN
which is the link target of
.Pa /usr/share/texmf/web2c/updmap.cfg ,
from the files with names ending in
.Ql .cfg
located in
.Pa /var/lib/tex-common/fontmap-cfg/texlive/
and
.Pa /var/lib/tex-common/fontmap-cfg/texmf/ ,
respectively.
.Pp
Any TeX package shipping map files in one of the trees
.Pa /usr/share/texlive/texmf-dist
or
.Pa /usr/share/texmf
should also provide files in one of the above 
directories containing the respective lines for
.Pa updmap.cfg
file.
.Pp
In order to configure (enable additional entries, disable 
system provided entries, etc), the normal 
.Xr updmap 1 Ns 
mechanism should be used. Please see the man page details.
.Sh OPTIONS
.Bl -tag -width ".Fl -version"
.It Fl -check
Executes additional checks that all necessary files are present in the
kpathsea database. Don't use this in maintainer scripts.
.It Fl -quiet
don't write anything to the standard output during normal operation
.It Fl -help
print a summary of the command-line usage of
.Nm
and exit
.It Fl -version
output version information and exit
.El
.Pp
Note that the
.Fl v
option, which turns on verbose mode, is deprecated.  We are currently in a
transition phase where quiet mode is still the default (therefore,
.Fl -quiet
has no effect), but
.Nm
will be verbose by default as soon as enough packages use
.Fl -quiet
in their maintainer scripts.
.Sh "SYNTAX FOR THE .CFG FILES"
The
.Ql .cfg
files under
.Pa /var/lib/tex-common/fontmap-cfg/
should contain valid configuration lines for
.Xr updmap 1 .
Usually, they will consist of lines of following one of these forms:
.Bd -literal -offset indent
Map 
MixedMap 
KanjiMap 
.Ed
.Pp
The
.Li MixedMap
form should only be used if the font is available in both bitmap and scalable
formats (this way, it won't be declared in the default map file for Dvips that
is used
when
.Li dvipsPreferOutline
is set to
.Ql false
in
.Pa updmap.cfg ) .
.Pp
The KanjiMap form should only be used for map files defining Japanese
font maps.
.Sh FILES
.Bd -unfilled -offset left -compact
.Pa /var/lib/tex-common/fontmap-cfg/texlive/*.cfg
.Pa /var/lib/tex-common/fontmap-cfg/texmf/*.cfg
.Pa /var/lib/texmf/updmap.cfg-TEXLIVEDIST
.Pa /var/lib/texmf/updmap.cfg-DEBIAN
.Ed
.Sh DIAGNOSTICS
.Nm
returns 0 on success, or a strictly positive integer on error.
.Sh SEE ALSO
.Xr updmap 1
.Pp
.Bd -unfilled -offset left -compact
.Pa /usr/share/doc/tex-common/README.Debian.{txt,pdf,html}
.Pa /usr/share/doc/tex-common/Debian-TeX-Policy.{txt,pdf,html}
.Pa /usr/share/doc/tex-common/TeX-on-Debian.{txt,pdf,html}
.Ed
.Sh AUTHORS
This manual page was written by
.An -nosplit
.An Atsuhito Kohda Aq kohda@debian.org
and updated by
.An "Florent Rougon" Aq f.rougon@free.fr
and 
.An "Frank Kuester" Aq frank@debian.org
for the Debian distribution (and may be used by others).
.\" For Emacs:
.\" Local Variables:
.\" fill-column: 72
.\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\|	\\|  \\)[ 	\n]*"
.\" sentence-end-double-space: t
.\" End:
tex-common-6.04ubuntu1/texmf/0000775000000000000000000000000012607350221013066 5ustar  tex-common-6.04ubuntu1/texmf/web2c/0000775000000000000000000000000012607350221014070 5ustar  tex-common-6.04ubuntu1/texmf/web2c/mktex.cnf0000664000000000000000000000043312607350221015710 0ustar  # global font cache, also change VARTEXFONTS in 05TeXMF.cnf
#: ${MT_FEATURES=appendonlydir:varfonts}
# per user font cache 
: ${MT_FEATURES=appendonlydir:texmfvar}
#: ${MODE=ljfour}
#: ${BDPI=600}
# uncomment the following line to use ps2pk instead of gsftopk:
# : ${ps_to_pk=ps2pk}