summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-07-19 23:16:46 +0000
committerKarl Berry <karl@freefriends.org>2010-07-19 23:16:46 +0000
commit277ca449c86a187fe858defdcd6aa1830d3b2d0d (patch)
treea804dd4e397504655fc225e6f582554780c4115d
parentd515f1120311798486a522c56170bd519d9c6a7a (diff)
reinstate stex via new .tds.zip
git-svn-id: svn://tug.org/texlive/trunk@19538 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/stex/README12
-rw-r--r--Master/texmf-dist/doc/latex/stex/assignment/README10
-rw-r--r--Master/texmf-dist/doc/latex/stex/assignment/assignment.pdfbin0 -> 259072 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/cmathml/README13
-rw-r--r--Master/texmf-dist/doc/latex/stex/cmathml/cmathml.pdfbin0 -> 502405 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/cnx/README13
-rw-r--r--Master/texmf-dist/doc/latex/stex/cnx/cnx.pdfbin0 -> 336643 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/Makefile4
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/README18
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/Makefile8
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.aux28
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.idx3
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.ilg6
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.ind15
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.log309
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.omdoc155
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.out2
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.pdfbin0 -> 63185 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.tex12
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml240
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml.log49
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.thm3
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.xml285
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/all.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/auto/all.el12
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc85
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.sms5
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.tex15
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml138
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml.log27
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.xml165
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/functions.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/paper.tex.xml.log146
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/post.tex1
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/pre.tex6
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc74
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.sms5
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.tex20
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml104
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml.log12
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.xml122
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/background/reals.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/Makefile7
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/all.tex.xml.log133
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/auto/paper.el14
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc53
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.sms6
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex17
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml59
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml.log203
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml75
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc53
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.sms5
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex16
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml58
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml.log17
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml74
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.aux41
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.bbl35
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.blg47
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.idx6
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.ilg6
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.ind23
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.log376
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.omdoc399
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.out8
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.pdfbin0 -> 190417 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.tex132
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml423
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml.log146
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.thm2
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.xml455
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/paper/paper.xml.log0
-rw-r--r--Master/texmf-dist/doc/latex/stex/example/test/Makefile7
-rw-r--r--Master/texmf-dist/doc/latex/stex/mikoslides.pdfbin0 -> 248314 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/problem/README10
-rw-r--r--Master/texmf-dist/doc/latex/stex/problem/problem.pdfbin0 -> 271794 bytes
-rw-r--r--Master/texmf-dist/doc/latex/stex/stex.pdfbin0 -> 350237 bytes
-rw-r--r--Master/texmf-dist/source/latex/stex/assignment/assignment.dtx426
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/Makefile5
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/Modparse.pm189
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/README151
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/TexId.pm464
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/allgen30
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/bms340
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/checksum68
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/convert-paths56
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/filedate42
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/gen-symdef-table.pl85
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/idcheck29
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/msplit140
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/old/Makefile28
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/old/defcon.l91
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/old/idcheck.l130
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/old/modstr.l137
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/old/symdef46
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/rf63
-rw-r--r--Master/texmf-dist/source/latex/stex/bin/rng2dot/ModelRNC.pm770
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/rng2dot/rng2dot37
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/sgraph173
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/sms135
-rwxr-xr-xMaster/texmf-dist/source/latex/stex/bin/termin279
-rw-r--r--Master/texmf-dist/source/latex/stex/cmathml/cmathml.dtx2493
-rw-r--r--Master/texmf-dist/source/latex/stex/cnx/cnx.dtx1176
-rw-r--r--Master/texmf-dist/source/latex/stex/mikoslides.dtx503
-rw-r--r--Master/texmf-dist/source/latex/stex/problem/problem.dtx540
-rw-r--r--Master/texmf-dist/source/latex/stex/xsl/ltxml2cnx.xsl43
-rw-r--r--Master/texmf-dist/source/latex/stex/xsl/omdocpost.xsl441
-rw-r--r--Master/texmf-dist/source/latex/stex/xsl/owl2post.xsl62
-rw-r--r--Master/texmf-dist/tex/latex/stex/assignment/assignment.sty111
-rw-r--r--Master/texmf-dist/tex/latex/stex/assignment/assignment.sty.ltxml29
-rw-r--r--Master/texmf-dist/tex/latex/stex/beamerthemeJacobs.sty62
-rw-r--r--Master/texmf-dist/tex/latex/stex/cc-by-sa.eps506
-rw-r--r--Master/texmf-dist/tex/latex/stex/cc-by-sa.pngbin0 -> 5083 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/cc_somerights.eps506
-rw-r--r--Master/texmf-dist/tex/latex/stex/cc_somerights.jpgbin0 -> 2963 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/cc_somerights.pdfbin0 -> 4028 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty450
-rw-r--r--Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty.ltxml974
-rw-r--r--Master/texmf-dist/tex/latex/stex/cnx/cnx.cls142
-rw-r--r--Master/texmf-dist/tex/latex/stex/cnx/cnx.cls.ltxml280
-rw-r--r--Master/texmf-dist/tex/latex/stex/jacobs-logo.eps1
-rw-r--r--Master/texmf-dist/tex/latex/stex/jacobs-logo.pdfbin0 -> 5996 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/jacobs-logo.pngbin0 -> 6260 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty54
-rw-r--r--Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty.ltxml33
-rw-r--r--Master/texmf-dist/tex/latex/stex/mikoslides.cls100
-rw-r--r--Master/texmf-dist/tex/latex/stex/mikoslides.cls.ltxml96
-rw-r--r--Master/texmf-dist/tex/latex/stex/problem/problem.sty116
-rw-r--r--Master/texmf-dist/tex/latex/stex/problem/problem.sty.ltxml55
-rw-r--r--Master/texmf-dist/tex/latex/stex/shading-l2r.eps458
-rw-r--r--Master/texmf-dist/tex/latex/stex/shading-l2r.pngbin0 -> 1732 bytes
-rw-r--r--Master/texmf-dist/tex/latex/stex/stex-logo.sty5
-rw-r--r--Master/texmf-dist/tex/latex/stex/stex-logo.sty.ltxml18
-rw-r--r--Master/texmf-dist/tex/latex/stex/stex.sty22
-rw-r--r--Master/texmf-dist/tex/latex/stex/stex.sty.ltxml23
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/assignment.tlpsrc3
-rw-r--r--Master/tlpkg/tlpsrc/background.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/paper.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/stex.tlpsrc0
149 files changed, 18248 insertions, 2 deletions
diff --git a/Master/texmf-dist/doc/latex/stex/README b/Master/texmf-dist/doc/latex/stex/README
new file mode 100644
index 00000000000..6aa73d031a4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/README
@@ -0,0 +1,12 @@
+sTeX: An Infrastructure for Semantic Preloading of LaTeX Documents
+
+This directory contains the sTeX package collection, a version of TeX/LaTeX that allows
+to markup TeX/LaTeX documents semantically without leaving the document format,
+essentially turning it into a document format for mathematical knowledge management
+(MKM).
+
+Copyright (c) 2008 Michael Kohlhase
+The package is distributed under the terms of the LaTeX Project Public License (LPPL)
+
+The development version of this package can be found at
+https://svn.kwarc.info/repos/stex/sty/stex/
diff --git a/Master/texmf-dist/doc/latex/stex/assignment/README b/Master/texmf-dist/doc/latex/stex/assignment/README
new file mode 100644
index 00000000000..a62ceef0182
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/assignment/README
@@ -0,0 +1,10 @@
+assignment.sty: An Infrastructure for marking up Assignment Sheets
+
+The assignment packge allows individual course assignment sheets and compond
+assignment documents using problem files marked up with the problem package.
+
+Copyright (c) 2008 Michael Kohlhase
+The package is distributed under the terms of the LaTeX Project Public License (LPPL)
+
+The development version of this package can be found at
+https://svn.kwarc.info/repos/stex/sty/assignment/
diff --git a/Master/texmf-dist/doc/latex/stex/assignment/assignment.pdf b/Master/texmf-dist/doc/latex/stex/assignment/assignment.pdf
new file mode 100644
index 00000000000..f2d9cb1cb43
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/assignment/assignment.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/cmathml/README b/Master/texmf-dist/doc/latex/stex/cmathml/README
new file mode 100644
index 00000000000..3117561fabb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/cmathml/README
@@ -0,0 +1,13 @@
+cmathml.sty: Semantic Macros for Content MathML in LaTeX
+cmathmlx.sty: Semantic Macros for extended Content MathML
+
+This package provides a collection of semantic macros for Content MathML and their LateXML
+bindings. These macros form the basis of a naive translation from semantically preloaded
+LaTeX formulae into the Content MathML formulae via the LaTeXML system.
+
+Copyright (c) 2008 Michael Kohlhase
+The package is distributed under the terms of the LaTeX Project Public License (LPPL)
+
+The development version of this package can be found at
+$HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cmathml/README $
+
diff --git a/Master/texmf-dist/doc/latex/stex/cmathml/cmathml.pdf b/Master/texmf-dist/doc/latex/stex/cmathml/cmathml.pdf
new file mode 100644
index 00000000000..e625281a4a7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/cmathml/cmathml.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/cnx/README b/Master/texmf-dist/doc/latex/stex/cnx/README
new file mode 100644
index 00000000000..113b526364f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/cnx/README
@@ -0,0 +1,13 @@
+cnx.cls: A LaTeX-based Syntax for Connexions Modules
+
+The cnx class is a collection of TeX macros that allow to write Connexions modules in the
+CNXLaTeX format without leaving the LaTeX workflow. Modules are authored using cnx.cls
+using only a text editor, transformed to PDF and proofread as usual. For publication,
+CNXLaTeX modules are transformed to CNXML via the LaTeXML translator and can be uploaded
+to the Connexions system.
+
+Copyright (c) 2008 Michael Kohlhase
+The package is distributed under the terms of the LaTeX Project Public License (LPPL)
+
+The development version of this package can be found at
+$HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cnx/README $
diff --git a/Master/texmf-dist/doc/latex/stex/cnx/cnx.pdf b/Master/texmf-dist/doc/latex/stex/cnx/cnx.pdf
new file mode 100644
index 00000000000..9a56a09ba3e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/cnx/cnx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/example/Makefile b/Master/texmf-dist/doc/latex/stex/example/Makefile
new file mode 100644
index 00000000000..df87da1fbee
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/Makefile
@@ -0,0 +1,4 @@
+STEXDIR = ..
+MAKEDIRS = background paper
+CLEANDIRS = $(MAKEDIRS)
+include $(STEXDIR)/make/Makefile.subdirs
diff --git a/Master/texmf-dist/doc/latex/stex/example/README b/Master/texmf-dist/doc/latex/stex/example/README
new file mode 100644
index 00000000000..7424d68ebca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/README
@@ -0,0 +1,18 @@
+This directory contains a typical (if minimal) example of a sTeX
+collection, and a Makefile-based conversion workflow. It is intended
+to test the sTeX distribution and serve as an example for sTeX users
+to set up their system. It contains
+
+README: this file
+Makefile: this contains rules to automate the PDF formatting and
+ XML conversion process.
+background: a directory with background modules, this is assumed to
+ exist before starting work on the paper, in real life this
+ would probably be a subversion external.
+paper: a directory with a paper based on two modules and the
+ background modules.
+test: a directory that has the makefiles to accomodate your tests;
+ just copy your files there adjust TARGET and type make.
+
+For an explanation of the design of the example see paper/example.pdf or
+https://trac.kwarc.info/sTeX/wiki/sTeXCollections
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/Makefile b/Master/texmf-dist/doc/latex/stex/example/background/Makefile
new file mode 100644
index 00000000000..af7cc21e5eb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/Makefile
@@ -0,0 +1,8 @@
+STEXDIR = ../..
+TARGET = all.tex
+BUTFILES = pre.tex post.tex
+MODSLIBDIR = .
+
+include $(STEXDIR)/make/Makefile.vars
+all: omdoc mods pdf
+include $(STEXDIR)/make/Makefile.in
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.aux b/Master/texmf-dist/doc/latex/stex/example/background/all.aux
new file mode 100644
index 00000000000..dc50aac6bd6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.aux
@@ -0,0 +1,28 @@
+\relax
+\ifx\hyper@anchor\@undefined
+\global \let \oldcontentsline\contentsline
+\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global \let \oldnewlabel\newlabel
+\gdef \newlabel#1#2{\newlabelxx{#1}#2}
+\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\let \contentsline\oldcontentsline
+\let \newlabel\oldnewlabel}
+\else
+\global \let \hyper@last\relax
+\fi
+
+\@writefile{toc}{\contentsline {section}{\numberline {1}Functions}{1}{section.1}}
+\@sref@def{sec.functions}{page}{1}
+\@sref@def{sec.functions}{label}{Section 1}
+\@writefile{thm}{\contentsline {STdefinitionEnv}{{\st@definition@kw }{1}{}}{1}{STtheoremAssEnv.1}}
+\@sref@def{functions.def}{page}{1}
+\@sref@def{functions.def}{label}{Definition\nobreakspace {}1}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Real Numbers}{1}{section.2}}
+\@sref@def{sec.reals}{page}{1}
+\@sref@def{sec.reals}{label}{Section 2}
+\@writefile{thm}{\contentsline {STdefinitionEnv}{{\st@definition@kw }{2}{}}{1}{STtheoremAssEnv.2}}
+\@sref@def{reals.def}{page}{1}
+\@sref@def{reals.def}{label}{Definition\nobreakspace {}2}
+\@writefile{thm}{\contentsline {STdefinitionEnv}{{\st@definition@kw }{3}{}}{1}{STtheoremAssEnv.3}}
+\@sref@def{absval.def}{page}{1}
+\@sref@def{absval.def}{label}{Definition\nobreakspace {}3}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.idx b/Master/texmf-dist/doc/latex/stex/example/background/all.idx
new file mode 100644
index 00000000000..0189e693a90
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.idx
@@ -0,0 +1,3 @@
+\indexentry{function|hyperpage}{1}
+\indexentry{real!numbers|hyperpage}{1}
+\indexentry{numbers!real|hyperpage}{1}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.ilg b/Master/texmf-dist/doc/latex/stex/example/background/all.ilg
new file mode 100644
index 00000000000..9a97b1089c1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.ilg
@@ -0,0 +1,6 @@
+This is makeindex, version 2.15 [TeX Live 2009] (kpathsea + Thai support).
+Scanning input file all.idx....done (3 entries accepted, 0 rejected).
+Sorting entries....done (5 comparisons).
+Generating output file all.ind....done (15 lines written, 0 warnings).
+Output written in all.ind.
+Transcript written in all.ilg.
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.ind b/Master/texmf-dist/doc/latex/stex/example/background/all.ind
new file mode 100644
index 00000000000..b19d7a0f072
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.ind
@@ -0,0 +1,15 @@
+\begin{theindex}
+
+ \item function, \hyperpage{1}
+
+ \indexspace
+
+ \item numbers
+ \subitem real, \hyperpage{1}
+
+ \indexspace
+
+ \item real
+ \subitem numbers, \hyperpage{1}
+
+\end{theindex}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.log b/Master/texmf-dist/doc/latex/stex/example/background/all.log
new file mode 100644
index 00000000000..76f13f0dfac
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.log
@@ -0,0 +1,309 @@
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2009.11.16) 25 JUN 2010 12:12
+entering extended mode
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**all.tex
+(./all.tex
+LaTeX2e <2009/09/24>
+Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, german-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, ar
+abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc
+h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono
+greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, ku
+rmanji, latin, latvian, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, po
+lish, portuguese, romanian, russian, sanskrit, serbian, slovak, slovenian, span
+ish, swedish, turkish, ukenglish, ukrainian, uppersorbian, welsh, loaded.
+(/Users/kohlhase/stc/stex/sty/omdoc/omdoc.cls
+Document Class: omdoc 2010/06/25 v1.0 OMDoc Documents
+(/usr/local/texlive/2009/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+(/usr/local/texlive/2009/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/Users/kohlhase/stc/stex/sty/omdoc/omdoc.sty
+Package: omdoc 2010/06/25 v1.0 OMDoc document Structure
+\section@level=\count87
+
+(/Users/kohlhase/stc/stex/sty/sref/sref.sty
+Package: sref 2010/06/25 v0.9 Semantic Cross-References
+
+(/Users/kohlhase/stc/stex/sty/omd/omd.sty
+Package: omd 2010/06/25 v0.9 OMDoc Metadata Framework
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)))
+(/usr/local/texlive/2009/texmf-dist/tex/latex/comment/comment.sty
+\CommentStream=\write3
+
+Excluding comment 'comment') Excluding comment 'ignore'))
+(/Users/kohlhase/stc/stex/sty/stex.sty
+Package: stex 2010/02/04 v0.9b Semantic Markup
+
+(/Users/kohlhase/stc/stex/sty/stex-logo.sty
+Package: stex-logo 2009/08/07 v1.0 sTeX Logo
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2006/05/08 v1.12 Space after command names (DPC,MH)
+))
+(/Users/kohlhase/stc/stex/sty/modules/modules.sty
+Package: modules 2010/06/25 v1.0 Semantic Markup
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/seminar/xcomment.sty
+Style-Option: `xcomment' v1.2 <93/02/12> (tvz)
+\tokout=\write4
+\tokin=\read1
+)) (/Users/kohlhase/stc/stex/sty/omtext/omtext.sty
+Package: omtext 2010/06/25 v1.0 OMDoc Text Fragments
+\@indexfile=\write5
+\openout5 = `all.idx'.
+
+
+Writing index file all.idx
+) (/Users/kohlhase/stc/stex/sty/statements/statements.sty
+Package: statements 2010/06/25 v1.0 Semantic Markup for Statements
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/ntheorem/ntheorem.sty
+Style `ntheorem', Version 1.25 <2005/07/07>
+Package: ntheorem 2005/07/07 1.25
+\theorem@style=\toks15
+\theorem@@style=\toks16
+\theorembodyfont=\toks17
+\theoremnumbering=\toks18
+\theorempreskipamount=\skip43
+\theorempostskipamount=\skip44
+\theoremindent=\dimen103
+\theorem@indent=\dimen104
+\theoremheaderfont=\toks19
+\theoremseparator=\toks20
+\theoremprework=\toks21
+\theorempostwork=\toks22
+\theoremsymbol=\toks23
+\qedsymbol=\toks24
+\theoremkeyword=\toks25
+\qedsymbol=\toks26
+\thm@topsepadd=\skip45
+)
+\c@STtheoremAssEnv=\count88
+) (/Users/kohlhase/stc/stex/sty/sproof/sproof.sty
+Package: sproof 2010/06/25 v0.9f Semantic Markup for Proofs
+)
+(/Users/kohlhase/stc/stex/sty/presentation/presentation.sty
+Package: presentation 2010/06/25 v1.0 presentation for semantic macros
+)
+(/Users/kohlhase/stc/stex/sty/dcm/dcm.sty
+Package: dcm 2010/06/25 v0.3 Dublin Core Metadata
+))
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in pdf mode detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/hycolor.sty
+Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H
+O)
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty
+Package: xcolor-patch 2009/10/02 xcolor patch
+))
+\@linkdim=\dimen105
+\Hy@linkcounter=\count89
+\Hy@pagecounter=\count90
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO)
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO)
+)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor
+t (HO)
+))
+Package hyperref Info: Hyper figures OFF on input line 2975.
+Package hyperref Info: Link nesting OFF on input line 2980.
+Package hyperref Info: Hyper index ON on input line 2983.
+Package hyperref Info: Plain pages OFF on input line 2990.
+Package hyperref Info: Backreferencing OFF on input line 2995.
+
+Implicit mode ON; LaTeX internals redefined
+Package hyperref Info: Bookmarks ON on input line 3191.
+(/usr/local/texlive/2009/texmf-dist/tex/latex/ltxmisc/url.sty
+\Urlmuskip=\muskip10
+Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 3428.
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bitset.sty
+Package: bitset 2007/09/28 v1.0 Data type bit set (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/intcalc.sty
+Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO)
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bigintcalc.sty
+Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions
+ (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO
+)
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+)))
+\Fld@menulength=\count91
+\Field@Width=\dimen106
+\Fld@charsize=\dimen107
+\Field@toks=\toks27
+Package hyperref Info: Hyper figures OFF on input line 4377.
+Package hyperref Info: Link nesting OFF on input line 4382.
+Package hyperref Info: Hyper index ON on input line 4385.
+Package hyperref Info: backreferencing OFF on input line 4392.
+Package hyperref Info: Link coloring OFF on input line 4397.
+Package hyperref Info: Link coloring with OCG OFF on input line 4402.
+Package hyperref Info: PDF/A mode OFF on input line 4407.
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/atbegshi.sty
+Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO)
+)
+\Hy@abspage=\count92
+\c@Item=\count93
+\c@Hfootnote=\count94
+)
+*hyperref using default driver hpdftex*
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX
+\Fld@listcount=\count95
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
+\@emptytoks=\toks28
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 96.
+))
+(./all.aux)
+\openout1 = `all.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+Package hyperref Info: Link coloring OFF on input line 6.
+ (/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/refcount.sty
+Package: refcount 2008/08/11 v3.1 Data extraction from references (HO)
+)
+\c@section@level=\count96
+)
+LaTeX Info: Redefining \ref on input line 6.
+LaTeX Info: Redefining \pageref on input line 6.
+
+(./all.out) (./all.out)
+\@outlinefile=\write6
+\openout6 = `all.out'.
+
+\AtBeginShipoutBox=\box26
+ (./functions.tex
+LaTeX Font Info: Try loading font information for U+msa on input line 7.
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2009/06/22 v3.00 AMS symbols A
+)
+LaTeX Font Info: Try loading font information for U+msb on input line 7.
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2009/06/22 v3.00 AMS symbols B
+)
+Package hyperref Info: bookmark level for unknown STdefinitionEnv defaults to 0
+ on input line 7.
+) (./reals.tex)
+\tf@thm=\write7
+\openout7 = `all.thm'.
+
+
+[1
+
+{/usr/local/texlive/2009/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
+(./all.aux) )
+Here is how much of TeX's memory you used:
+ 5197 strings out of 493848
+ 77932 string characters out of 3149206
+ 138119 words of memory out of 3000000
+ 8372 multiletter control sequences out of 15000+200000
+ 6252 words of font info for 25 fonts, out of 3000000 for 9000
+ 714 hyphenation exceptions out of 8191
+ 43i,4n,40p,281b,320s stack positions out of 5000i,500n,10000p,200000b,50000s
+</usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm
+/cmbx10.pfb></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/
+cmbx12.pfb></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/c
+mmi10.pfb></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cm
+r10.pfb></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy
+10.pfb></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/symbols/
+msbm10.pfb>
+Output written on all.pdf (1 page, 63185 bytes).
+PDF statistics:
+ 57 PDF objects out of 1000 (max. 8388607)
+ 14 named destinations out of 1000 (max. 500000)
+ 17 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.omdoc b/Master/texmf-dist/doc/latex/stex/example/background/all.omdoc
new file mode 100644
index 00000000000..45c2c612b05
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.omdoc
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="all.tex#textrange(from=5;1,to=5;17)" xml:id="all.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <m:mo cr="fun">×</m:mo>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <render name="arg1" precedence="200"/>
+ <m:mo cr="fun">:</m:mo>
+ <render name="arg2" precedence="200"/>
+ <m:mo cr="fun">→</m:mo>
+ <render name="arg3" precedence="200"/>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <render name="arg1" precedence="650"/>
+ <m:mo cr="fun">∈</m:mo>
+ <render name="arg2" precedence="650"/>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><phrase>function</phrase></idp></ide></idx><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ> is a left-total, right-unique relation in <om:OMOBJ><om:OMA><om:OMS cd="functions" name="cart"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ></p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <m:mi mathvariant="double-struck">R</m:mi>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <m:mo cr="fun">|</m:mo>
+ <render name="arg1" precedence="2000"/>
+ <m:mo cr="fun">|</m:mo>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mfrac>
+ <render name="arg1"/>
+ <render name="arg2"/>
+ </m:mfrac>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><phrase>real</phrase></idp><idp><phrase>numbers</phrase></idp></ide></idx> we all know and love with
+<om:OMOBJ><om:OMS cd="reals" name="RealNumbers"/></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <om:OMOBJ><om:OMA><om:OMS cd="reals" name="absval"/><om:OMV name="r"/></om:OMA></om:OMOBJ> of a real number <om:OMOBJ><om:OMV name="r"/></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!--The data elements-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.out b/Master/texmf-dist/doc/latex/stex/example/background/all.out
new file mode 100644
index 00000000000..80902fd57c3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.out
@@ -0,0 +1,2 @@
+\BOOKMARK [1][-]{section.1}{Functions}{}
+\BOOKMARK [1][-]{section.2}{Real Numbers}{}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.pdf b/Master/texmf-dist/doc/latex/stex/example/background/all.pdf
new file mode 100644
index 00000000000..92075edc5ea
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.tex b/Master/texmf-dist/doc/latex/stex/example/background/all.tex
new file mode 100644
index 00000000000..27df61d1e61
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.tex
@@ -0,0 +1,12 @@
+\documentclass{omdoc}
+\usepackage{stex}
+\usepackage{hyperref,amssymb}
+\defpath{backmods}{../background}
+\begin{document}
+\input{functions}
+\input{reals}
+\end{document}
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: t
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml b/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml
new file mode 100644
index 00000000000..37ce2d0241e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml class="omdoc"?>
+<?latexml package="stex"?>
+<?latexml package="hyperref,amssymb"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="all.tex#textrange(from=5;1,to=5;17)" xml:id="all.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\times}" xml:id="functions.m2" text="CROSSREFOP@(*)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok meaning="times" role="MULOP">×</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m5" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\colon}" xml:id="functions.m6" text="CROSSREFOP@(colon)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok name="colon" role="METARELOP">:</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m7" text="arg:2">
+ <XMath>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\rightarrow}" xml:id="functions.m8" text="CROSSREFOP@(rightarrow)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok name="rightarrow" role="ARROW">→</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:3" xml:id="functions.m9" text="arg:3">
+ <XMath>
+ <XMTok role="ID">arg:3</XMTok>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m12" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\in}" xml:id="functions.m13" text="CROSSREFOP@(element-of)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok meaning="element-of" name="in" role="RELOP">∈</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m14" text="arg:2">
+ <XMath>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">function</text></idp></ide></idx> <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{A}{B}" xml:id="functions.def.p1.p1.m1" text="fun@(f, A, B)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok role="UNKNOWN" font="italic">A</XMTok><XMTok role="UNKNOWN" font="italic">B</XMTok></XMApp></XMath></Math> is a left-total, right-unique relation in <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\cart{A,B}" xml:id="functions.def.p1.p1.m2" text="cart@(list@(A, B))"><XMath><XMApp><XMTok meaning="cart" name="cart" omcd="functions"/><XMApp><XMTok meaning="list" role="FENCED" separators=","/><XMTok role="UNKNOWN" font="italic">A</XMTok><XMTok role="UNKNOWN" font="italic">B</XMTok></XMApp></XMApp></XMath></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m1" text="R">
+ <XMath>
+ <XMTok role="UNKNOWN" font="blackboard">R</XMTok>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m2" text="CROSSREFOP@(|)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok role="VERTBAR">|</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="reals.m3" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m4" text="CROSSREFOP@(|)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok role="VERTBAR">|</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m5" text="arg:1 / arg:2">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="divide" role="MULOP" style="text"/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">real</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">numbers</text></idp></ide></idx> we all know and love with
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\RealNumbers" xml:id="reals.def.p1.p1.m1" text="RealNumbers"><XMath><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{r}" xml:id="absval.def.p1.p1.m1" text="absval@(r)"><XMath><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMTok role="UNKNOWN" font="italic">r</XMTok></XMApp></XMath></Math> of a real number <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="r" xml:id="absval.def.p1.p1.m2" text="r"><XMath><XMTok role="UNKNOWN" font="italic">r</XMTok></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml.log
new file mode 100644
index 00000000000..416640aa334
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.tex.xml.log
@@ -0,0 +1,49 @@
+
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/TeX.pool.ltxml... 0.15 sec)
+
+(Digesting /Users/kohlhase/stc/stex/example/background/all...
+(Processing all.tex...
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml... 0.12 sec)
+(Loading ../../sty/omdoc/omdoc.cls.ltxml...
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/article.cls.ltxml... 0.02 sec)
+(Loading ../../sty/sref/sref.sty.ltxml...
+(Loading ../../sty/omd/omd.sty.ltxml... 0.10 sec) 0.14 sec)
+(Loading ../../sty/omdoc/omdoc.sty.ltxml...
+(Loading ../../sty/omtext/omtext.sty.ltxml... 0.06 sec) 0.11 sec) 0.37 sec)
+(Loading ../../sty/stex.sty.ltxml...
+(Loading ../../sty/stex-logo.sty.ltxml... 0.02 sec)
+(Loading ../../sty/modules/modules.sty.ltxml... 0.04 sec)
+(Loading ../../sty/statements/statements.sty.ltxml... 0.04 sec)
+(Loading ../../sty/sproof/sproof.sty.ltxml... 0.03 sec)
+(Loading ../../sty/presentation/presentation.sty.ltxml... 0.02 sec)
+(Loading ../../sty/dcm/dcm.sty.ltxml... 0.05 sec) 0.35 sec)
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/hyperref.sty.ltxml...
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/url.sty.ltxml... 0.01 sec) 0.03 sec)
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amssymb.sty.ltxml...
+(Loading ../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amsfonts.sty.ltxml... 0.01 sec) 0.05 sec)
+(Processing functions.tex... 0.49 sec)
+(Processing reals.tex... 0.03 sec) 1.60 sec) 1.64 sec)
+(Building...
+(Loading RelaxNG omdoc+ltxml...
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.openmath.org/OpenMath"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311. 1.70 sec)......... 1.96 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...19 formulae ...[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19]
+Math parsing succeeded:
+ ltx:XMArg: 7/7
+ ltx:XMath: 19/19
+Symbols assumed as simple identifiers (with # of occurences):
+ 'A{italic}' (1), 'B{italic}' (1)
+ 0.02 sec)
+(Finalizing... 0.01 sec)
+Conversion complete: 12 warnings.
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.thm b/Master/texmf-dist/doc/latex/stex/example/background/all.thm
new file mode 100644
index 00000000000..094040394df
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.thm
@@ -0,0 +1,3 @@
+\contentsline {STdefinitionEnv}{{\st@definition@kw }{1}{}}{1}{STtheoremAssEnv.1}
+\contentsline {STdefinitionEnv}{{\st@definition@kw }{2}{}}{1}{STtheoremAssEnv.2}
+\contentsline {STdefinitionEnv}{{\st@definition@kw }{3}{}}{1}{STtheoremAssEnv.3}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.xml b/Master/texmf-dist/doc/latex/stex/example/background/all.xml
new file mode 100644
index 00000000000..cd9d3e6ae76
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml class="omdoc"?>
+<?latexml package="stex"?>
+<?latexml package="hyperref,amssymb"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="all.tex#textrange(from=5;1,to=5;17)" xml:id="all.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\times}" xml:id="functions.m2" text="CROSSREFOP@(*)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMS cd="arith1" name="times"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">×</m:mo>
+ </m:math>
+ </Math>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m5" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\colon}" xml:id="functions.m6" text="CROSSREFOP@(colon)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name=":"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">:</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m7" text="arg:2">
+ <om:OMOBJ>
+ <om:OMV name="arg:2"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:2</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\rightarrow}" xml:id="functions.m8" text="CROSSREFOP@(rightarrow)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="rightarrow"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">→</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:3" xml:id="functions.m9" text="arg:3">
+ <om:OMOBJ>
+ <om:OMV name="arg:3"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:3</m:mi>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m12" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\in}" xml:id="functions.m13" text="CROSSREFOP@(element-of)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMS cd="latexml" name="element-of"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">∈</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m14" text="arg:2">
+ <om:OMOBJ>
+ <om:OMV name="arg:2"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:2</m:mi>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">function</text></idp></ide></idx> <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{A}{B}" xml:id="functions.def.p1.p1.m1" text="fun@(f, A, B)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi>A</m:mi><m:mo>, </m:mo><m:mi>B</m:mi></m:mrow></m:mrow></m:math></Math> is a left-total, right-unique relation in <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\cart{A,B}" xml:id="functions.def.p1.p1.m2" text="cart@(list@(A, B))"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="cart"/><om:OMA><om:OMS cd="latexml" name="list"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">cart</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>A</m:mi><m:mo>,</m:mo><m:mi>B</m:mi></m:mrow></m:mrow></m:math></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m1" text="R">
+ <om:OMOBJ>
+ <om:OMV name="R"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi mathvariant="double-struck">R</m:mi>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m2" text="CROSSREFOP@(|)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="|"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">|</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="reals.m3" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m4" text="CROSSREFOP@(|)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="|"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">|</m:mo>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m5" text="arg:1 / arg:2">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="latexml" name="divide"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mfrac>
+ <m:mi>arg:1</m:mi>
+ <m:mi>arg:2</m:mi>
+ </m:mfrac>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">real</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">numbers</text></idp></ide></idx> we all know and love with
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\RealNumbers" xml:id="reals.def.p1.p1.m1" text="RealNumbers"><om:OMOBJ><om:OMS cd="reals" name="RealNumbers"/></om:OMOBJ><m:math display="inline"><m:mi mathcolor="red">RealNumbers</m:mi></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{r}" xml:id="absval.def.p1.p1.m1" text="absval@(r)"><om:OMOBJ><om:OMA><om:OMS cd="reals" name="absval"/><om:OMV name="r"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mi>r</m:mi></m:mrow></m:math></Math> of a real number <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="r" xml:id="absval.def.p1.p1.m2" text="r"><om:OMOBJ><om:OMV name="r"/></om:OMOBJ><m:math display="inline"><m:mi>r</m:mi></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/all.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/all.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/all.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/auto/all.el b/Master/texmf-dist/doc/latex/stex/example/background/auto/all.el
new file mode 100644
index 00000000000..00c090b4ab9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/auto/all.el
@@ -0,0 +1,12 @@
+(TeX-add-style-hook "all"
+ (lambda ()
+ (TeX-run-style-hooks
+ "amssymb"
+ "hyperref"
+ "stex"
+ "latex2e"
+ "omdoc10"
+ "omdoc"
+ "functions"
+ "reals")))
+
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc b/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc
new file mode 100644
index 00000000000..819908cf05d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="functions.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <m:mo cr="fun">×</m:mo>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <render name="arg1" precedence="200"/>
+ <m:mo cr="fun">:</m:mo>
+ <render name="arg2" precedence="200"/>
+ <m:mo cr="fun">→</m:mo>
+ <render name="arg3" precedence="200"/>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <render name="arg1" precedence="650"/>
+ <m:mo cr="fun">∈</m:mo>
+ <render name="arg2" precedence="650"/>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><phrase>function</phrase></idp></ide></idx><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ> is a left-total, right-unique relation in <om:OMOBJ><om:OMA><om:OMS cd="functions" name="cart"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ></p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!--The data elements-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc.log b/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.omdoc.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.sms b/Master/texmf-dist/doc/latex/stex/example/background/functions.sms
new file mode 100644
index 00000000000..9c7f4c79211
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.sms
@@ -0,0 +1,5 @@
+\begin{module}[id=functions]%
+\symdef[assocarg=1]{cart}[1]{\assoc[p=500]{\times}{#1}}%
+\symdef{fun}[3]{\mixfixiii[p=200]{}{#1}{\colon}{#2}{\rightarrow}{#3}{}}%
+\symdef{inset}[2]{\infix[p=650]{\in}{#1}{#2}}%
+\end{module}%
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.tex b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex
new file mode 100644
index 00000000000..d71ee13a25b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex
@@ -0,0 +1,15 @@
+\begin{omgroup}[id=sec.functions,creators=miko]{Functions}
+\begin{module}[id=functions]
+\symdef[assocarg=1]{cart}[1]{\assoc[p=500]{\times}{#1}}
+\symdef{fun}[3]{\mixfixiii[p=200]{}{#1}{\colon}{#2}{\rightarrow}{#3}{}}
+\symdef{inset}[2]{\infix[p=650]{\in}{#1}{#2}}
+
+\begin{definition}[id=functions.def]
+ A {\defin{function}} $\fun{f}AB$ is a left-total, right-unique relation in $\cart{A,B}$
+\end{definition}
+\end{module}
+\end{omgroup}
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: "all"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml
new file mode 100644
index 00000000000..3c3dc0a3bbe
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="functions.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\times}" xml:id="functions.m2" text="CROSSREFOP@(*)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok meaning="times" role="MULOP">×</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m5" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\colon}" xml:id="functions.m6" text="CROSSREFOP@(colon)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok name="colon" role="METARELOP">:</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m7" text="arg:2">
+ <XMath>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\rightarrow}" xml:id="functions.m8" text="CROSSREFOP@(rightarrow)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok name="rightarrow" role="ARROW">→</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:3" xml:id="functions.m9" text="arg:3">
+ <XMath>
+ <XMTok role="ID">arg:3</XMTok>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m12" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\in}" xml:id="functions.m13" text="CROSSREFOP@(element-of)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok meaning="element-of" name="in" role="RELOP">∈</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m14" text="arg:2">
+ <XMath>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">function</text></idp></ide></idx> <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{A}{B}" xml:id="functions.def.p1.p1.m1" text="fun@(f, A, B)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok role="UNKNOWN" font="italic">A</XMTok><XMTok role="UNKNOWN" font="italic">B</XMTok></XMApp></XMath></Math> is a left-total, right-unique relation in <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\cart{A,B}" xml:id="functions.def.p1.p1.m2" text="cart@(list@(A, B))"><XMath><XMApp><XMTok meaning="cart" name="cart" omcd="functions"/><XMApp><XMTok meaning="list" role="FENCED" separators=","/><XMTok role="UNKNOWN" font="italic">A</XMTok><XMTok role="UNKNOWN" font="italic">B</XMTok></XMApp></XMApp></XMath></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml.log
new file mode 100644
index 00000000000..dd838c7b779
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.tex.xml.log
@@ -0,0 +1,27 @@
+
+(Digesting /Users/kohlhase/stc/stex/example/background/functions...
+(Processing functions.tex... 0.06 sec) 0.06 sec)
+(Building...
+(Loading RelaxNG omdoc+ltxml...
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.openmath.org/OpenMath"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311. 1.40 sec)...... 1.51 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...11 formulae ...[1][2][3][4][5][6][7][8][9][10][11]
+Math parsing succeeded:
+ ltx:XMArg: 4/4
+ ltx:XMath: 11/11
+Symbols assumed as simple identifiers (with # of occurences):
+ 'A{italic}' (1), 'B{italic}' (1)
+ 0.02 sec)
+(Finalizing... 0.01 sec)
+Conversion complete: 12 warnings.
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.xml b/Master/texmf-dist/doc/latex/stex/example/background/functions.xml
new file mode 100644
index 00000000000..631a76a0318
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="functions.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.functions" about="#sec.functions" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">
+ <metadata xml:id="sec.functions.p1" about="#sec.functions.p1" stex:srcref="functions.tex#textrange(from=1;0,to=10;12)">
+ <dc:title stex:srcref="functions.tex#textrange(from=1;0,to=11;13)" xml:id="sec.functions.p1.p1" about="#sec.functions.p1.p1">
+ <p xml:id="sec.functions.p1.p1.p1" about="#sec.functions.p1.p1.p1" stex:srcref="functions.tex#textrange(from=1;0,to=11;13)">Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="functions" about="#functions" stex:srcref="functions.tex#textrange(from=2;0,to=10;12)">
+ <symbol name="cart" xml:id="cart.sym" about="#cart.sym" stex:srcref="functions.tex#textrange(from=3;0,to=3;55)"/>
+ <notation cd="functions" name="cart">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="cart"/>
+ <exprlist name="args">
+ <expr name="arg"/>
+ </exprlist>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="500">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <iterate name="args">
+ <separator>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\times}" xml:id="functions.m2" text="CROSSREFOP@(*)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMS cd="arith1" name="times"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">×</m:mo>
+ </m:math>
+ </Math>
+ </separator>
+ <render name="arg"/>
+ </iterate>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="fun" xml:id="fun.sym" about="#fun.sym" stex:srcref="functions.tex#textrange(from=4;1,to=4;72)"/>
+ <notation cd="functions" name="fun">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="fun"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ <expr name="arg3"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="200">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m5" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\colon}" xml:id="functions.m6" text="CROSSREFOP@(colon)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name=":"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">:</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m7" text="arg:2">
+ <om:OMOBJ>
+ <om:OMV name="arg:2"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:2</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\rightarrow}" xml:id="functions.m8" text="CROSSREFOP@(rightarrow)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="rightarrow"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">→</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:3" xml:id="functions.m9" text="arg:3">
+ <om:OMOBJ>
+ <om:OMV name="arg:3"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:3</m:mi>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="inset" xml:id="inset.sym" about="#inset.sym" stex:srcref="functions.tex#textrange(from=5;1,to=5;46)"/>
+ <notation cd="functions" name="inset">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="functions" cr="fun" name="inset"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="650">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="functions.m12" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{\in}" xml:id="functions.m13" text="CROSSREFOP@(element-of)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMS cd="latexml" name="element-of"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">∈</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:2" xml:id="functions.m14" text="arg:2">
+ <om:OMOBJ>
+ <om:OMV name="arg:2"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:2</m:mi>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="function" xml:id="function.def.sym" about="#function.def.sym" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)"/>
+ <definition for="function" xml:id="functions.def" about="#functions.def" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <CMP xml:id="functions.def.p1" about="#functions.def.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+ <p xml:id="functions.def.p1.p1" about="#functions.def.p1.p1" stex:srcref="functions.tex#textrange(from=7;0,to=9;16)">
+A <idx xml:id="functions.def.p1.p1.p1" about="#functions.def.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)"><idt><term cd="functions" name="function" role="definiendum" xml:id="functions.def.p1.p1.p1.p1" about="#functions.def.p1.p1.p1.p1" stex:srcref="functions.tex#textrange(from=7;68,to=8;21)">function</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">function</text></idp></ide></idx> <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{A}{B}" xml:id="functions.def.p1.p1.m1" text="fun@(f, A, B)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi>A</m:mi><m:mo>, </m:mo><m:mi>B</m:mi></m:mrow></m:mrow></m:math></Math> is a left-total, right-unique relation in <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\cart{A,B}" xml:id="functions.def.p1.p1.m2" text="cart@(list@(A, B))"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="cart"/><om:OMA><om:OMS cd="latexml" name="list"/><om:OMV name="A"/><om:OMV name="B"/></om:OMA></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">cart</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>A</m:mi><m:mo>,</m:mo><m:mi>B</m:mi></m:mrow></m:mrow></m:math></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/functions.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/functions.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/functions.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/paper.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/paper.tex.xml.log
new file mode 100644
index 00000000000..8e6af5e626f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/paper.tex.xml.log
@@ -0,0 +1,146 @@
+
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/TeX.pool.ltxml... 0.17 sec)
+
+(Digesting /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/example/paper/paper...
+(Processing paper.tex...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml... 0.14 sec)
+(Loading ../../sty/omdoc/omdoc.cls.ltxml...
+Warning:perl:warn Subroutine xmlBase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/article.cls.ltxml... 0.06 sec)
+(Loading ../../sty/sref/sref.sty.ltxml...
+(Loading ../../sty/omd/omd.sty.ltxml... 0.00 sec) 0.03 sec)
+(Loading ../../sty/omdoc/omdoc.sty.ltxml...
+Warning:perl:warn Subroutine omdocColorMacro redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+(Loading ../../sty/omtext/omtext.sty.ltxml...
+Warning:perl:warn Subroutine useCMPItemizations redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+Warning:perl:warn Subroutine DefCMPEnvironment redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+Warning:perl:warn Subroutine DefCMPConstructor redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+Warning:perl:warn Subroutine numberIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+Warning:perl:warn Subroutine locateIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233 0.04 sec) 0.09 sec) 0.25 sec)
+(Loading ../../sty/stex.sty.ltxml...
+(Loading ../../sty/stex-logo.sty.ltxml... 0.01 sec)
+(Loading ../../sty/modules/modules.sty.ltxml...
+Warning:perl:warn Subroutine use_module redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+Warning:perl:warn Subroutine omext redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+Warning:perl:warn Subroutine importmoduleI redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+Warning:perl:warn Subroutine symdef_presentation_pmml redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+Warning:perl:warn Subroutine getSymmdefProperties redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+Warning:perl:warn Subroutine get_cd redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+Warning:perl:warn Subroutine symdef_presentation_TeX redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463 0.02 sec)
+(Loading ../../sty/statements/statements.sty.ltxml...
+Warning:perl:warn Subroutine lowcase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+Warning:perl:warn Subroutine dashed redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+Warning:perl:warn Subroutine makeNCName redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+Warning:perl:warn Subroutine simple_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+Warning:perl:warn Subroutine hash_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+Warning:perl:warn Subroutine declareFunctions redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+Warning:perl:warn Subroutine definitionBody redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75 0.05 sec)
+(Loading ../../sty/sproof/sproof.sty.ltxml...
+Warning:perl:warn Subroutine extractBodyText redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65 0.03 sec)
+(Loading ../../sty/presentation/presentation.sty.ltxml...
+Warning:perl:warn Subroutine argument_precedence redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+Warning:perl:warn Subroutine applyPrecedencePreferences redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+Warning:perl:warn Subroutine cvar_id redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303 0.02 sec)
+(Loading ../../sty/dcm/dcm.sty.ltxml...
+Warning:perl:warn Subroutine getKeyValue_noDelim redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+Warning:perl:warn Subroutine ExportMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+Warning:perl:warn Subroutine FishOutMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52.
+In Gullet[@0x102619a50] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52 0.03 sec) 0.34 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amssymb.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amsfonts.sty.ltxml... 0.01 sec) 0.07 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/alltt.sty.ltxml... 0.04 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/hyperref.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/url.sty.ltxml... 0.01 sec) 0.03 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml...
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/listings.cfg...[#25] 0.05 sec)
+Info: expected:lstlang0.sty Couldn't find config file lstlang0.sty
+In Gullet[@0x102619a50] /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml line 1178
+/opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml line 1178
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang1.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525] 1.34 sec)
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang2.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525] 1.29 sec)
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang3.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525][#1550] 1.25 sec) 5.31 sec)[#25][#50][#75][#100]
+(Processing continuous.tex...
+(Processing ../background/functions.sms... 0.01 sec)
+(Processing ../background/reals.sms... 0.01 sec) 0.10 sec)
+(Processing differentiable.tex... 0.04 sec) 7.08 sec) 7.10 sec)
+(Building...
+(Loading RelaxNG omdoc+ltxml...
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.openmath.org/OpenMath"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311. 2.51 sec)................. 3.12 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...14 formulae ...[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
+Math parsing succeeded:
+ ltx:XMArg: 19/19
+ ltx:XMath: 14/14
+Symbols assumed as simple identifiers (with # of occurences):
+ 'C{caligraphic}' (2), 'delta' (4), 'epsilon' (4), 'f{italic}' (4), 'x{italic}' (5), 'y{italic}' (5)
+Possibly used as functions?
+ 'C{caligraphic}' (2/2 usages), 'f{italic}' (4/4 usages)
+ 0.29 sec)
+(Finalizing... 0.02 sec)
+Conversion complete: 40 warnings.
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/post.tex b/Master/texmf-dist/doc/latex/stex/example/background/post.tex
new file mode 100644
index 00000000000..6b47932f52b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/post.tex
@@ -0,0 +1 @@
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/pre.tex b/Master/texmf-dist/doc/latex/stex/example/background/pre.tex
new file mode 100644
index 00000000000..38faacc82b0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/pre.tex
@@ -0,0 +1,6 @@
+\documentclass{omdoc}
+\usepackage{stex,amssymb}
+\usepackage{hyperref}
+\defpath{backmods}{../background}
+% \baseURI[\backmods{}]{http://linkeddata.tntbase.org/stex}
+% \coolurion
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc b/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc
new file mode 100644
index 00000000000..96455425373
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="reals.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <m:mi mathvariant="double-struck">R</m:mi>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <m:mo cr="fun">|</m:mo>
+ <render name="arg1" precedence="2000"/>
+ <m:mo cr="fun">|</m:mo>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mfrac>
+ <render name="arg1"/>
+ <render name="arg2"/>
+ </m:mfrac>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><phrase>real</phrase></idp><idp><phrase>numbers</phrase></idp></ide></idx> we all know and love with
+<om:OMOBJ><om:OMS cd="reals" name="RealNumbers"/></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <om:OMOBJ><om:OMA><om:OMS cd="reals" name="absval"/><om:OMV name="r"/></om:OMA></om:OMOBJ> of a real number <om:OMOBJ><om:OMV name="r"/></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!--The data elements-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc.log b/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.omdoc.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.sms b/Master/texmf-dist/doc/latex/stex/example/background/reals.sms
new file mode 100644
index 00000000000..437865ee78c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.sms
@@ -0,0 +1,5 @@
+\begin{module}[id=reals]%
+\symdef{RealNumbers}{\mathbb{R}}%
+\symdef{absval}[1]{\mixfixi[p=2000]|{#1}|}%
+\symdef{rfrac}[2]{\frac{#1}{#2}}%
+\end{module}%
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.tex b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex
new file mode 100644
index 00000000000..6acdee48cbe
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex
@@ -0,0 +1,20 @@
+\begin{omgroup}[id=sec.reals]{Real Numbers}
+\begin{module}[id=reals]
+\symdef{RealNumbers}{\mathbb{R}}
+\symdef{absval}[1]{\mixfixi[p=2000]|{#1}|}
+\symdef{rfrac}[2]{\frac{#1}{#2}}
+
+\begin{definition}[id=reals.def]
+ We denote the set of {\twindef{real}{numbers}} we all know and love with
+ $\RealNumbers$.
+\end{definition}
+
+\begin{definition}[id=absval.def]
+ The absolute value $\absval{r}$ of a real number $r$.
+\end{definition}
+\end{module}
+\end{omgroup}
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: "all"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml
new file mode 100644
index 00000000000..30fd3d46171
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="reals.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m1" text="R">
+ <XMath>
+ <XMTok role="UNKNOWN" font="blackboard">R</XMTok>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m2" text="CROSSREFOP@(|)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok role="VERTBAR">|</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="reals.m3" text="arg:1">
+ <XMath>
+ <XMTok role="ID">arg:1</XMTok>
+ </XMath>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m4" text="CROSSREFOP@(|)">
+ <XMath>
+ <XMApp role="CROSSREFOP">
+ <XMTok cr="fun" role="CROSSREFOP"/>
+ <XMTok role="VERTBAR">|</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m5" text="arg:1 / arg:2">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="divide" role="MULOP" style="text"/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">real</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">numbers</text></idp></ide></idx> we all know and love with
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\RealNumbers" xml:id="reals.def.p1.p1.m1" text="RealNumbers"><XMath><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{r}" xml:id="absval.def.p1.p1.m1" text="absval@(r)"><XMath><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMTok role="UNKNOWN" font="italic">r</XMTok></XMApp></XMath></Math> of a real number <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="r" xml:id="absval.def.p1.p1.m2" text="r"><XMath><XMTok role="UNKNOWN" font="italic">r</XMTok></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml.log
new file mode 100644
index 00000000000..aae799e00aa
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.tex.xml.log
@@ -0,0 +1,12 @@
+
+(Digesting /Users/kohlhase/stc/stex/example/background/reals...
+(Processing reals.tex... 0.03 sec) 0.04 sec)
+(Building....... 0.03 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...8 formulae ...[1][2][3][4][5][6][7][8]
+Math parsing succeeded:
+ ltx:XMArg: 3/3
+ ltx:XMath: 8/8
+ 0.00 sec)
+(Finalizing... 0.00 sec)
+Conversion complete: No obvious problems.
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.xml b/Master/texmf-dist/doc/latex/stex/example/background/reals.xml
new file mode 100644
index 00000000000..3e5069c314e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="reals.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.reals" about="#sec.reals" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">
+ <metadata xml:id="sec.reals.p1" about="#sec.reals.p1" stex:srcref="reals.tex#textrange(from=1;0,to=15;12)">
+ <dc:title stex:srcref="reals.tex#textrange(from=1;0,to=16;13)" xml:id="sec.reals.p1.p1" about="#sec.reals.p1.p1">
+ <p xml:id="sec.reals.p1.p1.p1" about="#sec.reals.p1.p1.p1" stex:srcref="reals.tex#textrange(from=1;0,to=16;13)">Real Numbers</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="reals" about="#reals" stex:srcref="reals.tex#textrange(from=2;0,to=15;12)">
+ <symbol name="RealNumbers" xml:id="RealNumbers.sym" about="#RealNumbers.sym" stex:srcref="reals.tex#textrange(from=3;1,to=3;33)"/>
+ <notation cd="reals" name="RealNumbers">
+ <prototype>
+ <om:OMS cd="reals" name="RealNumbers"/>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m1" text="R">
+ <om:OMOBJ>
+ <om:OMV name="R"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi mathvariant="double-struck">R</m:mi>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="absval" xml:id="absval.sym" about="#absval.sym" stex:srcref="reals.tex#textrange(from=4;1,to=4;43)"/>
+ <notation cd="reals" name="absval">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="absval"/>
+ <expr name="arg1"/>
+ </om:OMA>
+ </prototype>
+ <rendering argprec=" " precedence="2000">
+ <m:mrow>
+ <m:mo egroup="fence" fence="true">(</m:mo>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m2" text="CROSSREFOP@(|)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="|"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">|</m:mo>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="arg:1" xml:id="reals.m3" text="arg:1">
+ <om:OMOBJ>
+ <om:OMV name="arg:1"/>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mi>arg:1</m:mi>
+ </m:math>
+ </Math>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\crossrefOp[fun]{|}" xml:id="reals.m4" text="CROSSREFOP@(|)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMV name=""/>
+ <om:OMV name="|"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mo cr="fun">|</m:mo>
+ </m:math>
+ </Math>
+ <m:mo egroup="fence" fence="true">)</m:mo>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="rfrac" xml:id="rfrac.sym" about="#rfrac.sym" stex:srcref="reals.tex#textrange(from=5;1,to=5;33)"/>
+ <notation cd="reals" name="rfrac">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="reals" cr="fun" name="rfrac"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="reals.m5" text="arg:1 / arg:2">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="latexml" name="divide"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mfrac>
+ <m:mi>arg:1</m:mi>
+ <m:mi>arg:2</m:mi>
+ </m:mfrac>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="real-numbers" xml:id="real-numbers.def.sym" about="#real-numbers.def.sym" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)"/>
+ <definition for="real-numbers" xml:id="reals.def" about="#reals.def" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <CMP xml:id="reals.def.p1" about="#reals.def.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+ <p xml:id="reals.def.p1.p1" about="#reals.def.p1.p1" stex:srcref="reals.tex#textrange(from=7;0,to=10;16)">
+We denote the set of <idx xml:id="reals.def.p1.p1.p1" about="#reals.def.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)"><idt><term cd="reals" name="real-numbers" role="definiendum" xml:id="reals.def.p1.p1.p1.p1" about="#reals.def.p1.p1.p1.p1" stex:srcref="reals.tex#textrange(from=7;27,to=8;47)">real numbers</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">real</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">numbers</text></idp></ide></idx> we all know and love with
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\RealNumbers" xml:id="reals.def.p1.p1.m1" text="RealNumbers"><om:OMOBJ><om:OMS cd="reals" name="RealNumbers"/></om:OMOBJ><m:math display="inline"><m:mi mathcolor="red">RealNumbers</m:mi></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ <definition xml:id="absval.def" about="#absval.def" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <CMP xml:id="absval.def.p1" about="#absval.def.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+ <p xml:id="absval.def.p1.p1" about="#absval.def.p1.p1" stex:srcref="reals.tex#textrange(from=12;0,to=14;16)">
+The absolute value <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{r}" xml:id="absval.def.p1.p1.m1" text="absval@(r)"><om:OMOBJ><om:OMA><om:OMS cd="reals" name="absval"/><om:OMV name="r"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mi>r</m:mi></m:mrow></m:math></Math> of a real number <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="r" xml:id="absval.def.p1.p1.m2" text="r"><om:OMOBJ><om:OMV name="r"/></om:OMOBJ><m:math display="inline"><m:mi>r</m:mi></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "all"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/background/reals.xml.log b/Master/texmf-dist/doc/latex/stex/example/background/reals.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/background/reals.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/Makefile b/Master/texmf-dist/doc/latex/stex/example/paper/Makefile
new file mode 100644
index 00000000000..1b71727ec2f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/Makefile
@@ -0,0 +1,7 @@
+STEXDIR = ../..
+TARGET = paper.tex
+MODSLIBDIR = ../background
+
+include $(STEXDIR)/make/Makefile.vars
+all: omdoc mods pdf
+include $(STEXDIR)/make/Makefile.in
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/all.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/all.tex.xml.log
new file mode 100644
index 00000000000..5d8b6c3a0fe
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/all.tex.xml.log
@@ -0,0 +1,133 @@
+
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/TeX.pool.ltxml... 0.18 sec)
+
+(Digesting /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/example/background/all...
+(Processing all.tex...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml... 0.15 sec)
+(Loading ../../sty/omdoc/omdoc.cls.ltxml...
+Warning:perl:warn Subroutine xmlBase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/article.cls.ltxml... 0.03 sec)
+(Loading ../../sty/sref/sref.sty.ltxml...
+(Loading ../../sty/omd/omd.sty.ltxml... 0.00 sec) 0.05 sec)
+(Loading ../../sty/omdoc/omdoc.sty.ltxml...
+Warning:perl:warn Subroutine omdocColorMacro redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+(Loading ../../sty/omtext/omtext.sty.ltxml...
+Warning:perl:warn Subroutine useCMPItemizations redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+Warning:perl:warn Subroutine DefCMPEnvironment redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+Warning:perl:warn Subroutine DefCMPConstructor redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+Warning:perl:warn Subroutine numberIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+Warning:perl:warn Subroutine locateIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233 0.06 sec) 0.14 sec) 0.35 sec)
+(Loading ../../sty/stex.sty.ltxml...
+(Loading ../../sty/stex-logo.sty.ltxml... 0.01 sec)
+(Loading ../../sty/modules/modules.sty.ltxml...
+Warning:perl:warn Subroutine use_module redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+Warning:perl:warn Subroutine omext redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+Warning:perl:warn Subroutine importmoduleI redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+Warning:perl:warn Subroutine symdef_presentation_pmml redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+Warning:perl:warn Subroutine getSymmdefProperties redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+Warning:perl:warn Subroutine get_cd redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+Warning:perl:warn Subroutine symdef_presentation_TeX redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463 0.02 sec)
+(Loading ../../sty/statements/statements.sty.ltxml...
+Warning:perl:warn Subroutine lowcase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+Warning:perl:warn Subroutine dashed redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+Warning:perl:warn Subroutine makeNCName redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+Warning:perl:warn Subroutine simple_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+Warning:perl:warn Subroutine hash_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+Warning:perl:warn Subroutine declareFunctions redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+Warning:perl:warn Subroutine definitionBody redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75 0.06 sec)
+(Loading ../../sty/sproof/sproof.sty.ltxml...
+Warning:perl:warn Subroutine extractBodyText redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65 0.04 sec)
+(Loading ../../sty/presentation/presentation.sty.ltxml...
+Warning:perl:warn Subroutine argument_precedence redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+Warning:perl:warn Subroutine applyPrecedencePreferences redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+Warning:perl:warn Subroutine cvar_id redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303 0.03 sec)
+(Loading ../../sty/dcm/dcm.sty.ltxml...
+Warning:perl:warn Subroutine getKeyValue_noDelim redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+Warning:perl:warn Subroutine ExportMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+Warning:perl:warn Subroutine FishOutMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52.
+In Gullet[@0x103940350] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52 0.04 sec) 0.41 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/hyperref.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/url.sty.ltxml... 0.01 sec) 0.05 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amssymb.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amsfonts.sty.ltxml... 0.01 sec) 0.09 sec)
+(Processing functions.tex... 0.05 sec)
+(Processing reals.tex... 0.04 sec) 1.43 sec) 1.45 sec)
+(Building...
+(Loading RelaxNG omdoc+ltxml...
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.openmath.org/OpenMath"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311. 1.98 sec)......... 2.11 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...19 formulae ...[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19]
+Math parsing succeeded:
+ ltx:XMArg: 7/7
+ ltx:XMath: 19/19
+Symbols assumed as simple identifiers (with # of occurences):
+ 'A{italic}' (1), 'B{italic}' (1)
+ 0.02 sec)
+(Finalizing... 0.01 sec)
+Conversion complete: 40 warnings.
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/auto/paper.el b/Master/texmf-dist/doc/latex/stex/example/paper/auto/paper.el
new file mode 100644
index 00000000000..e98cfe03405
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/auto/paper.el
@@ -0,0 +1,14 @@
+(TeX-add-style-hook "paper"
+ (lambda ()
+ (LaTeX-add-bibliographies
+ "kwarc")
+ (TeX-run-style-hooks
+ "hyperref"
+ "alltt"
+ "amssymb"
+ "stex"
+ "latex2e"
+ "omdoc10"
+ "omdoc"
+ "Makefile")))
+
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc
new file mode 100644
index 00000000000..d02a6d216e7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="continuous.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>0</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <render name="arg1"/>
+ <m:mo>,</m:mo>
+ <render name="arg2"/>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><phrase>continuous</phrase></idp></ide></idx> at
+<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
+<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ></p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!--The data elements-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc.log b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.omdoc.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.sms b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.sms
new file mode 100644
index 00000000000..6d42d0f52a6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.sms
@@ -0,0 +1,6 @@
+\begin{module}[id=continuous]%
+\importmodule[\backmods{functions}]{functions}%
+\importmodule[\backmods{reals}]{reals}%
+\symdef{continuousfunctions}[2]{\mathcal{C}^0(#1,#2)}%
+\abbrdef{ContRR}[2]{\continuousfunctions\RealNumbers\RealNumbers}%
+\end{module}%
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex
new file mode 100644
index 00000000000..65b6f832eae
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex
@@ -0,0 +1,17 @@
+\begin{omgroup}[id=sec.contfuncs]{Continuous Functions}
+\begin{module}[id=continuous]
+\importmodule[\backmods{functions}]{functions}
+\importmodule[\backmods{reals}]{reals}
+\symdef{continuousfunctions}[2]{\mathcal{C}^0(#1,#2)}
+\abbrdef{ContRR}[2]{\continuousfunctions\RealNumbers\RealNumbers}
+\begin{definition}
+ A function $\fun{f}\RealNumbers\RealNumbers$ is called {\defin{continuous}} at
+ $\inset{x}\RealNumbers$, iff for all $\epsilon>0$ there is a $\delta>0$, such that
+ $\absval{f(x)-f(y)}<\epsilon$ for all $\absval{x-y}<\delta$
+\end{definition}
+\end{module}
+\end{omgroup}
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: "paper"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml
new file mode 100644
index 00000000000..1e8d3ae1c98
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="continuous.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="continuous.m1" text="C ^ 0 * open-interval@(arg:1, arg:2)">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="times" role="MULOP">⁢</XMTok>
+ <XMApp>
+ <XMTok role="SUPERSCRIPTOP" scriptpos="post4"/>
+ <XMTok role="UNKNOWN" possibleFunction="yes" font="caligraphic">C</XMTok>
+ <XMTok meaning="0" role="NUMBER">0</XMTok>
+ </XMApp>
+ <XMApp>
+ <XMTok meaning="open-interval" role="FENCED" argclose=")" argopen="(" separators=","/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">continuous</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m2" text="inset@(x, RealNumbers)"><XMath><XMApp><XMTok meaning="inset" name="inset" omcd="functions"/><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="continuous.p5.p1.p1.m3" text="epsilon &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="continuous.p5.p1.p1.m4" text="delta &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{f(x)-f(y)}&lt;\epsilon" xml:id="continuous.p5.p1.p1.m5" text="absval@(f * x - f * y) less epsilon"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">x</XMTok></XMApp><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok></XMApp></XMath></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="continuous.p5.p1.p1.m6" text="absval@(x - y) less delta"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok></XMApp></XMath></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml.log
new file mode 100644
index 00000000000..1c1ce813a58
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.tex.xml.log
@@ -0,0 +1,203 @@
+
+(Digesting ../background/pre...
+(Processing ../background/pre.tex...
+(Loading ../../sty/omdoc/omdoc.cls.ltxml...
+Warning:perl:warn Subroutine xmlBase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+(Loading ../../sty/sref/sref.sty.ltxml...
+(Loading ../../sty/omd/omd.sty.ltxml... 0.00 sec) 0.03 sec)
+(Loading ../../sty/omdoc/omdoc.sty.ltxml...
+Warning:perl:warn Subroutine omdocColorMacro redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+(Loading ../../sty/omtext/omtext.sty.ltxml...
+Warning:perl:warn Subroutine useCMPItemizations redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+Warning:perl:warn Subroutine DefCMPEnvironment redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+Warning:perl:warn Subroutine DefCMPConstructor redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+Warning:perl:warn Subroutine numberIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+Warning:perl:warn Subroutine locateIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233
+Error:unexpected:\newcommand T_CS[\mygraphics] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\documentclass OptionalSe... <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 96 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 12 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 32 ../background/pre.tex#textrange(from=1;14,to=2;11)
+ \usepackage
+ ^ {stex,amssymb}
+ To be read again \usepackage
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\mycgraphics] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\documentclass OptionalSe... <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 96 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 12 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 32 ../background/pre.tex#textrange(from=1;14,to=2;11)
+ \usepackage
+ ^ {stex,amssymb}
+ To be read again \usepackage
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\mybgraphics] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\documentclass OptionalSe... <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 96 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 12 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 32 ../background/pre.tex#textrange(from=1;14,to=2;11)
+ \usepackage
+ ^ {stex,amssymb}
+ To be read again \usepackage
+Continuing... Expect trouble. 0.04 sec) 0.08 sec) 0.16 sec)
+(Loading ../../sty/stex.sty.ltxml...
+(Loading ../../sty/stex-logo.sty.ltxml... 0.00 sec)
+(Loading ../../sty/modules/modules.sty.ltxml...
+Warning:perl:warn Subroutine use_module redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+Warning:perl:warn Subroutine omext redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+Warning:perl:warn Subroutine importmoduleI redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+Warning:perl:warn Subroutine symdef_presentation_pmml redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+Warning:perl:warn Subroutine getSymmdefProperties redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+Warning:perl:warn Subroutine get_cd redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+Warning:perl:warn Subroutine symdef_presentation_TeX redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463 0.02 sec)
+(Loading ../../sty/statements/statements.sty.ltxml...
+Warning:perl:warn Subroutine lowcase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+Warning:perl:warn Subroutine dashed redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+Warning:perl:warn Subroutine makeNCName redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+Warning:perl:warn Subroutine simple_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+Warning:perl:warn Subroutine hash_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+Warning:perl:warn Subroutine declareFunctions redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+Warning:perl:warn Subroutine definitionBody redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75 0.04 sec)
+(Loading ../../sty/sproof/sproof.sty.ltxml...
+Warning:perl:warn Subroutine extractBodyText redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65 0.02 sec)
+(Loading ../../sty/presentation/presentation.sty.ltxml...
+Warning:perl:warn Subroutine argument_precedence redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+Warning:perl:warn Subroutine applyPrecedencePreferences redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+Warning:perl:warn Subroutine cvar_id redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303
+Error:unexpected:\newcommand T_CS[\prefixa] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 297 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\postfixa] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 297 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\infix] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 297 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\assoc] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 297 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\primvar] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 323 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\pprimvar] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 323 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\uivar] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 323 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\livar] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 323 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble.
+Error:unexpected:\newcommand T_CS[\ulivar] is already defined
+In Primitive[\newcommand OptionalMatch:*... defined /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml line 1498
+ <= Gullet[@0x100dc9cf0] <= Constructor[\usepackage []Semiverbatim] <= ...
+ /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 323 /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/stex.sty.ltxml line 20 ../background/pre.tex#textrange(from=2;0,to=2;25)
+ \usepackage{stex,amssymb}
+ ^
+Continuing... Expect trouble. 0.03 sec)
+(Loading ../../sty/dcm/dcm.sty.ltxml...
+Warning:perl:warn Subroutine getKeyValue_noDelim redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+Warning:perl:warn Subroutine ExportMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+Warning:perl:warn Subroutine FishOutMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52.
+In Gullet[@0x100dc9cf0] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52 0.03 sec) 0.26 sec) 0.50 sec) 0.51 sec)
+(Digesting /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/example/paper/continuous...
+(Processing continuous.tex...
+(Processing ../background/functions.sms... 0.01 sec)
+(Processing ../background/reals.sms... 0.01 sec) 0.09 sec) 0.10 sec)
+(Building....... 0.08 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...7 formulae ...[1][2][3][4][5][6][7]
+Math parsing succeeded:
+ ltx:XMArg: 8/8
+ ltx:XMath: 7/7
+Symbols assumed as simple identifiers (with # of occurences):
+ 'C{caligraphic}' (1), 'delta' (2), 'epsilon' (2), 'f{italic}' (2), 'x{italic}' (2), 'y{italic}' (2)
+Possibly used as functions?
+ 'C{caligraphic}' (1/1 usages), 'f{italic}' (2/2 usages)
+ 0.13 sec)
+(Finalizing... 0.00 sec)
+Conversion complete: 28 warnings; 12 errors.
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml
new file mode 100644
index 00000000000..6b43f50d2d2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="continuous.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="continuous.m1" text="C ^ 0 * open-interval@(arg:1, arg:2)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="arith1" name="times"/>
+ <om:OMA>
+ <om:OMS cd="ambiguous" name="superscript"/>
+ <om:OMV name="C"/>
+ <om:OMI>0</om:OMI>
+ </om:OMA>
+ <om:OMA>
+ <om:OMS cd="latexml" name="open-interval"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>0</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <m:mi>arg:1</m:mi>
+ <m:mo>,</m:mo>
+ <m:mi>arg:2</m:mi>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">continuous</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m2" text="inset@(x, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">inset</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="continuous.p5.p1.p1.m3" text="epsilon &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="ϵ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>ϵ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="continuous.p5.p1.p1.m4" text="delta &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="δ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>δ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{f(x)-f(y)}&lt;\epsilon" xml:id="continuous.p5.p1.p1.m5" text="absval@(f * x - f * y) less epsilon"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="ϵ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>x</m:mi></m:mfenced></m:mrow><m:mo>-</m:mo><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>y</m:mi></m:mfenced></m:mrow></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>ϵ</m:mi></m:mrow></m:math></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="continuous.p5.p1.p1.m6" text="absval@(x - y) less delta"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="δ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>δ</m:mi></m:mrow></m:math></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/continuous.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc
new file mode 100644
index 00000000000..20c184eff4a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="differentiable.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>1</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <render name="arg1"/>
+ <m:mo>,</m:mo>
+ <render name="arg2"/>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><phrase>differentiable</phrase></idp></ide></idx> at
+<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
+<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="rfrac"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!--The data elements-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc.log b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.omdoc.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.sms b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.sms
new file mode 100644
index 00000000000..cb2122c1064
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.sms
@@ -0,0 +1,5 @@
+\begin{module}[id=differentiable]%
+\importmodule[continuous]{continuous}%
+\symdef{difffunctions}[2]{\mathcal{C}^1(#1,#2)}%
+\abbrdef{DiffRR}[2]{\difffunctions\RealNumbers\RealNumbers}%
+\end{module}%
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex
new file mode 100644
index 00000000000..ee9c66f9409
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex
@@ -0,0 +1,16 @@
+\begin{omgroup}[id=sec.differentiable]{Differentiable Functions}
+\begin{module}[id=differentiable]
+\importmodule[continuous]{continuous}
+\symdef{difffunctions}[2]{\mathcal{C}^1(#1,#2)}
+\abbrdef{DiffRR}[2]{\difffunctions\RealNumbers\RealNumbers}
+\begin{definition}
+ A function $\fun{f}\RealNumbers\RealNumbers$ is called {\defin{differentiable}} at
+ $\inset{x}\RealNumbers$, iff for all $\epsilon>0$ there is a $\delta>0$, such that
+ $\rfrac{\absval{f(x)-f(y)}}{\absval{x-y}}<\epsilon$ for all $\absval{x-y}<\delta$.
+\end{definition}
+\end{module}
+\end{omgroup}
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: "paper"
+%%% End:
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml
new file mode 100644
index 00000000000..774b767b4cc
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="differentiable.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="differentiable.m1" text="C ^ 1 * open-interval@(arg:1, arg:2)">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="times" role="MULOP">⁢</XMTok>
+ <XMApp>
+ <XMTok role="SUPERSCRIPTOP" scriptpos="post4"/>
+ <XMTok role="UNKNOWN" possibleFunction="yes" font="caligraphic">C</XMTok>
+ <XMTok meaning="1" role="NUMBER">1</XMTok>
+ </XMApp>
+ <XMApp>
+ <XMTok meaning="open-interval" role="FENCED" argclose=")" argopen="(" separators=","/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">differentiable</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m2" text="inset@(x, RealNumbers)"><XMath><XMApp><XMTok meaning="inset" name="inset" omcd="functions"/><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="differentiable.p4.p1.p1.m3" text="epsilon &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="differentiable.p4.p1.p1.m4" text="delta &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\rfrac{\absval{f(x)-f(y)}}{\absval{x-y}}&lt;\epsilon" xml:id="differentiable.p4.p1.p1.m5" text="rfrac@(absval@(f * x - f * y), absval@(x - y)) less epsilon"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="rfrac" name="rfrac" omcd="reals"/><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">x</XMTok></XMApp><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok></XMApp></XMath></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="differentiable.p4.p1.p1.m6" text="absval@(x - y) less delta"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok></XMApp></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml.log
new file mode 100644
index 00000000000..a0d99ecc131
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.tex.xml.log
@@ -0,0 +1,17 @@
+
+(Digesting /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/example/paper/differentiable...
+(Processing differentiable.tex...
+(Processing continuous.sms... 0.01 sec) 0.09 sec) 0.10 sec)
+(Building........ 0.06 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...7 formulae ...[1][2][3][4][5][6][7]
+Math parsing succeeded:
+ ltx:XMArg: 11/11
+ ltx:XMath: 7/7
+Symbols assumed as simple identifiers (with # of occurences):
+ 'C{caligraphic}' (1), 'delta' (2), 'epsilon' (2), 'f{italic}' (2), 'x{italic}' (3), 'y{italic}' (3)
+Possibly used as functions?
+ 'C{caligraphic}' (1/1 usages), 'f{italic}' (2/2 usages)
+ 0.15 sec)
+(Finalizing... 0.01 sec)
+Conversion complete: No obvious problems.
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml
new file mode 100644
index 00000000000..649b017e523
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background"?>
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="Anonymous String#textrange(from=1;1,to=1;17)" xml:id="differentiable.omdoc">
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="differentiable.m1" text="C ^ 1 * open-interval@(arg:1, arg:2)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="arith1" name="times"/>
+ <om:OMA>
+ <om:OMS cd="ambiguous" name="superscript"/>
+ <om:OMV name="C"/>
+ <om:OMI>1</om:OMI>
+ </om:OMA>
+ <om:OMA>
+ <om:OMS cd="latexml" name="open-interval"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>1</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <m:mi>arg:1</m:mi>
+ <m:mo>,</m:mo>
+ <m:mi>arg:2</m:mi>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">differentiable</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m2" text="inset@(x, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">inset</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="differentiable.p4.p1.p1.m3" text="epsilon &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="ϵ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>ϵ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="differentiable.p4.p1.p1.m4" text="delta &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="δ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>δ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\rfrac{\absval{f(x)-f(y)}}{\absval{x-y}}&lt;\epsilon" xml:id="differentiable.p4.p1.p1.m5" text="rfrac@(absval@(f * x - f * y), absval@(x - y)) less epsilon"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="rfrac"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="ϵ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">rfrac</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>x</m:mi></m:mfenced></m:mrow><m:mo>-</m:mo><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>y</m:mi></m:mfenced></m:mrow></m:mrow></m:mrow><m:mo>, </m:mo><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>ϵ</m:mi></m:mrow></m:math></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="differentiable.p4.p1.p1.m6" text="absval@(x - y) less delta"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="δ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>δ</m:mi></m:mrow></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/differentiable.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.aux b/Master/texmf-dist/doc/latex/stex/example/paper/paper.aux
new file mode 100644
index 00000000000..b6d2090b5cc
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.aux
@@ -0,0 +1,41 @@
+\relax
+\ifx\hyper@anchor\@undefined
+\global \let \oldcontentsline\contentsline
+\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global \let \oldnewlabel\newlabel
+\gdef \newlabel#1#2{\newlabelxx{#1}#2}
+\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\let \contentsline\oldcontentsline
+\let \newlabel\oldnewlabel}
+\else
+\global \let \hyper@last\relax
+\fi
+
+\citation{Kohlhase:ulsmf08}
+\citation{Kohlhase:OMDoc1.3}
+\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}}
+\@sref@def{intro}{page}{1}
+\@sref@def{intro}{label}{Section 1}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}The Setup}{1}{subsection.1.1}}
+\citation{Kohlhase:ssmtl*}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Formatting and {OMDoc} conversion}{2}{subsection.1.2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Makefile-based Automation}{2}{subsection.1.3}}
+\@writefile{lol}{\contentsline {lstlisting}{Makefile}{2}{lstlisting.-1}}
+\bibstyle{alpha}
+\bibdata{kwarc}
+\bibcite{Kohlhase:ulsmf08}{Koh08}
+\bibcite{Kohlhase:OMDoc1.3}{Koh10}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Mathematical Content}{3}{section.2}}
+\@sref@def{sec.math}{page}{3}
+\@sref@def{sec.math}{label}{Section 2}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Continuous Functions}{3}{subsection.2.1}}
+\@sref@def{sec.contfuncs}{page}{3}
+\@sref@def{sec.contfuncs}{label}{Subsection 2.1}
+\@writefile{thm}{\contentsline {STdefinitionEnv}{{\st@definition@kw }{1}{}}{3}{STtheoremAssEnv.1}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Differentiable Functions}{3}{subsection.2.2}}
+\@sref@def{sec.differentiable}{page}{3}
+\@sref@def{sec.differentiable}{label}{Subsection 2.2}
+\@writefile{thm}{\contentsline {STdefinitionEnv}{{\st@definition@kw }{2}{}}{3}{STtheoremAssEnv.2}}
+\@writefile{toc}{\contentsline {section}{\numberline {3}Conclusion}{3}{section.3}}
+\@sref@def{concl}{page}{3}
+\@sref@def{concl}{label}{Section 3}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.bbl b/Master/texmf-dist/doc/latex/stex/example/paper/paper.bbl
new file mode 100644
index 00000000000..42535bf2dd0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.bbl
@@ -0,0 +1,35 @@
+\providecommand\seen{seen } \providecommand\webpageat{web page at }
+ \providecommand\homepageat{home page at }
+ \providecommand\projectpageat{project page at }
+ \providecommand\systempageat{system home page at }
+ \providecommand\svnrepoat{Subversion repository at }
+ \providecommand\January{January} \providecommand\February{February}
+ \providecommand\March{March} \providecommand\April{April}
+ \providecommand\May{May} \providecommand\June{June}
+ \providecommand\July{July} \providecommand\August{August}
+ \providecommand\September{September} \providecommand\October{October}
+ \providecommand\November{November} \providecommand\December{December}
+ \providecommand\AUSTRALIA{Australia} \providecommand\ROMANIA{Romania}
+ \providecommand\MEXICO{Mexico} \providecommand\ITALY{Italy}
+ \providecommand\USA{USA} \providecommand\IRELAND{Ireland}
+ \providecommand\HUNGARY{Hungary} \providecommand\JAPAN{Japan}
+ \providecommand\CANADA{Canada} \providecommand\SPAIN{Spain}
+ \providecommand\NETHERLANDS{Netherlands} \providecommand\UK{UK}
+ \providecommand\SWEDEN{Sweden} \providecommand\GERMANY{Germany}
+ \providecommand\openmath{OpenMath} \providecommand\fc{forthcoming}
+ \providecommand\PROC{Proceedings} \providecommand\omdoc{OMDoc}
+ \providecommand\activemath{ActiveMath}
+\begin{thebibliography}{Koh10}
+
+\bibitem[Koh08]{Kohlhase:ulsmf08}
+Michael Kohlhase.
+\newblock Using {\LaTeX} as a semantic markup format.
+\newblock {\em Mathematics in Computer Science}, 2(2):279--304, 2008.
+
+\bibitem[Koh10]{Kohlhase:OMDoc1.3}
+Michael Kohlhase.
+\newblock An open markup format for mathematical documents {\omdoc} [version
+ 1.3].
+\newblock Draft Specification, 2010.
+
+\end{thebibliography}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.blg b/Master/texmf-dist/doc/latex/stex/example/paper/paper.blg
new file mode 100644
index 00000000000..a8a4318ab46
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.blg
@@ -0,0 +1,47 @@
+This is BibTeX, Version 0.99c (TeX Live 2009)
+The top-level auxiliary file: paper.aux
+The style file: alpha.bst
+Database file #1: kwarc.bib
+Warning--I didn't find a database entry for "Kohlhase:ssmtl*"
+You've used 2 entries,
+ 2543 wiz_defined-function locations,
+ 588 strings with 6180 characters,
+and the built_in function-call counts, 619 in all, are:
+= -- 63
+> -- 16
+< -- 2
++ -- 5
+- -- 4
+* -- 40
+:= -- 112
+add.period$ -- 6
+call.type$ -- 2
+change.case$ -- 10
+chr.to.int$ -- 2
+cite$ -- 2
+duplicate$ -- 25
+empty$ -- 45
+format.name$ -- 8
+if$ -- 118
+int.to.chr$ -- 1
+int.to.str$ -- 0
+missing$ -- 1
+newline$ -- 14
+num.names$ -- 6
+pop$ -- 5
+preamble$ -- 2
+purify$ -- 12
+quote$ -- 0
+skip$ -- 20
+stack$ -- 0
+substring$ -- 40
+swap$ -- 1
+text.length$ -- 2
+text.prefix$ -- 2
+top$ -- 0
+type$ -- 16
+warning$ -- 0
+while$ -- 6
+width$ -- 3
+write$ -- 28
+(There was 1 warning)
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.idx b/Master/texmf-dist/doc/latex/stex/example/paper/paper.idx
new file mode 100644
index 00000000000..9e9ab5e324e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.idx
@@ -0,0 +1,6 @@
+\indexentry{target|hyperpage}{1}
+\indexentry{module|hyperpage}{1}
+\indexentry{background!module|hyperpage}{1}
+\indexentry{module!background|hyperpage}{1}
+\indexentry{continuous|hyperpage}{3}
+\indexentry{differentiable|hyperpage}{3}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.ilg b/Master/texmf-dist/doc/latex/stex/example/paper/paper.ilg
new file mode 100644
index 00000000000..bf39bf695f8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.ilg
@@ -0,0 +1,6 @@
+This is makeindex, version 2.15 [TeX Live 2009] (kpathsea + Thai support).
+Scanning input file paper.idx....done (6 entries accepted, 0 rejected).
+Sorting entries....done (22 comparisons).
+Generating output file paper.ind....done (23 lines written, 0 warnings).
+Output written in paper.ind.
+Transcript written in paper.ilg.
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.ind b/Master/texmf-dist/doc/latex/stex/example/paper/paper.ind
new file mode 100644
index 00000000000..8b9a914f7cf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.ind
@@ -0,0 +1,23 @@
+\begin{theindex}
+
+ \item background
+ \subitem module, \hyperpage{1}
+
+ \indexspace
+
+ \item continuous, \hyperpage{3}
+
+ \indexspace
+
+ \item differentiable, \hyperpage{3}
+
+ \indexspace
+
+ \item module, \hyperpage{1}
+ \subitem background, \hyperpage{1}
+
+ \indexspace
+
+ \item target, \hyperpage{1}
+
+\end{theindex}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.log b/Master/texmf-dist/doc/latex/stex/example/paper/paper.log
new file mode 100644
index 00000000000..8dd02633640
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.log
@@ -0,0 +1,376 @@
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2009.11.16) 25 JUN 2010 12:13
+entering extended mode
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**paper.tex
+(./paper.tex
+LaTeX2e <2009/09/24>
+Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
+yphenation, german-x-2009-06-19, ngerman-x-2009-06-19, ancientgreek, ibycus, ar
+abic, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dutc
+h, esperanto, estonian, farsi, finnish, french, galician, german, ngerman, mono
+greek, greek, hungarian, icelandic, indonesian, interlingua, irish, italian, ku
+rmanji, latin, latvian, lithuanian, mongolian, mongolian2a, bokmal, nynorsk, po
+lish, portuguese, romanian, russian, sanskrit, serbian, slovak, slovenian, span
+ish, swedish, turkish, ukenglish, ukrainian, uppersorbian, welsh, loaded.
+(/Users/kohlhase/stc/stex/sty/omdoc/omdoc.cls
+Document Class: omdoc 2010/06/25 v1.0 OMDoc Documents
+(/usr/local/texlive/2009/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+(/usr/local/texlive/2009/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/Users/kohlhase/stc/stex/sty/omdoc/omdoc.sty
+Package: omdoc 2010/06/25 v1.0 OMDoc document Structure
+\section@level=\count87
+
+(/Users/kohlhase/stc/stex/sty/sref/sref.sty
+Package: sref 2010/06/25 v0.9 Semantic Cross-References
+
+(/Users/kohlhase/stc/stex/sty/omd/omd.sty
+Package: omd 2010/06/25 v0.9 OMDoc Metadata Framework
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)))
+(/usr/local/texlive/2009/texmf-dist/tex/latex/comment/comment.sty
+\CommentStream=\write3
+
+Excluding comment 'comment') Excluding comment 'ignore'))
+(/Users/kohlhase/stc/stex/sty/stex.sty
+Package: stex 2010/02/04 v0.9b Semantic Markup
+
+(/Users/kohlhase/stc/stex/sty/stex-logo.sty
+Package: stex-logo 2009/08/07 v1.0 sTeX Logo
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2006/05/08 v1.12 Space after command names (DPC,MH)
+))
+(/Users/kohlhase/stc/stex/sty/modules/modules.sty
+Package: modules 2010/06/25 v1.0 Semantic Markup
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/seminar/xcomment.sty
+Style-Option: `xcomment' v1.2 <93/02/12> (tvz)
+\tokout=\write4
+\tokin=\read1
+)) (/Users/kohlhase/stc/stex/sty/omtext/omtext.sty
+Package: omtext 2010/06/25 v1.0 OMDoc Text Fragments
+\@indexfile=\write5
+\openout5 = `paper.idx'.
+
+
+Writing index file paper.idx
+) (/Users/kohlhase/stc/stex/sty/statements/statements.sty
+Package: statements 2010/06/25 v1.0 Semantic Markup for Statements
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/ntheorem/ntheorem.sty
+Style `ntheorem', Version 1.25 <2005/07/07>
+Package: ntheorem 2005/07/07 1.25
+\theorem@style=\toks15
+\theorem@@style=\toks16
+\theorembodyfont=\toks17
+\theoremnumbering=\toks18
+\theorempreskipamount=\skip43
+\theorempostskipamount=\skip44
+\theoremindent=\dimen103
+\theorem@indent=\dimen104
+\theoremheaderfont=\toks19
+\theoremseparator=\toks20
+\theoremprework=\toks21
+\theorempostwork=\toks22
+\theoremsymbol=\toks23
+\qedsymbol=\toks24
+\theoremkeyword=\toks25
+\qedsymbol=\toks26
+\thm@topsepadd=\skip45
+)
+\c@STtheoremAssEnv=\count88
+) (/Users/kohlhase/stc/stex/sty/sproof/sproof.sty
+Package: sproof 2010/06/25 v0.9f Semantic Markup for Proofs
+)
+(/Users/kohlhase/stc/stex/sty/presentation/presentation.sty
+Package: presentation 2010/06/25 v1.0 presentation for semantic macros
+)
+(/Users/kohlhase/stc/stex/sty/dcm/dcm.sty
+Package: dcm 2010/06/25 v0.3 Dublin Core Metadata
+))
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
+\@emptytoks=\toks27
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 96.
+))
+(/usr/local/texlive/2009/texmf-dist/tex/latex/base/alltt.sty
+Package: alltt 1997/06/16 v2.0g defines alltt environment
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in pdf mode detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/hycolor.sty
+Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H
+O)
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty
+Package: xcolor-patch 2009/10/02 xcolor patch
+))
+\@linkdim=\dimen105
+\Hy@linkcounter=\count89
+\Hy@pagecounter=\count90
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO)
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO)
+)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor
+t (HO)
+))
+Package hyperref Info: Hyper figures OFF on input line 2975.
+Package hyperref Info: Link nesting OFF on input line 2980.
+Package hyperref Info: Hyper index ON on input line 2983.
+Package hyperref Info: Plain pages OFF on input line 2990.
+Package hyperref Info: Backreferencing OFF on input line 2995.
+
+Implicit mode ON; LaTeX internals redefined
+Package hyperref Info: Bookmarks ON on input line 3191.
+(/usr/local/texlive/2009/texmf-dist/tex/latex/ltxmisc/url.sty
+\Urlmuskip=\muskip10
+Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 3428.
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bitset.sty
+Package: bitset 2007/09/28 v1.0 Data type bit set (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/intcalc.sty
+Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO)
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/bigintcalc.sty
+Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions
+ (HO)
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO
+)
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+)))
+\Fld@menulength=\count91
+\Field@Width=\dimen106
+\Fld@charsize=\dimen107
+\Field@toks=\toks28
+Package hyperref Info: Hyper figures OFF on input line 4377.
+Package hyperref Info: Link nesting OFF on input line 4382.
+Package hyperref Info: Hyper index ON on input line 4385.
+Package hyperref Info: backreferencing OFF on input line 4392.
+Package hyperref Info: Link coloring OFF on input line 4397.
+Package hyperref Info: Link coloring with OCG OFF on input line 4402.
+Package hyperref Info: PDF/A mode OFF on input line 4407.
+
+(/usr/local/texlive/2009/texmf-dist/tex/generic/oberdiek/atbegshi.sty
+Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO)
+)
+\Hy@abspage=\count92
+\c@Item=\count93
+\c@Hfootnote=\count94
+)
+*hyperref using default driver hpdftex*
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX
+\Fld@listcount=\count95
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/listings.sty
+\lst@mode=\count96
+\lst@gtempboxa=\box26
+\lst@token=\toks29
+\lst@length=\count97
+\lst@currlwidth=\dimen108
+\lst@column=\count98
+\lst@pos=\count99
+\lst@lostspace=\dimen109
+\lst@width=\dimen110
+\lst@newlines=\count100
+\lst@lineno=\count101
+\lst@maxwidth=\dimen111
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
+\c@lstnumber=\count102
+\lst@skipnumbers=\count103
+\lst@framebox=\box27
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2007/02/22 1.4 listings configuration
+))
+Package: listings 2007/02/22 1.4 (Carsten Heinz)
+
+(./paper.aux)
+\openout1 = `paper.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 16.
+LaTeX Font Info: ... okay on input line 16.
+Package hyperref Info: Link coloring OFF on input line 16.
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/oberdiek/refcount.sty
+Package: refcount 2008/08/11 v3.1 Data extraction from references (HO)
+)
+\c@section@level=\count104
+)
+LaTeX Info: Redefining \ref on input line 16.
+LaTeX Info: Redefining \pageref on input line 16.
+
+(./paper.out) (./paper.out)
+\@outlinefile=\write6
+\openout6 = `paper.out'.
+
+\AtBeginShipoutBox=\box28
+\c@lstlisting=\count105
+LaTeX Font Info: Try loading font information for U+msa on input line 25.
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2009/06/22 v3.00 AMS symbols A
+)
+LaTeX Font Info: Try loading font information for U+msb on input line 25.
+
+(/usr/local/texlive/2009/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2009/06/22 v3.00 AMS symbols B
+)
+\c@authors=\count106
+
+authors: &Michael Kohlhase [1
+
+{/usr/local/texlive/2009/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
+
+LaTeX Warning: Citation `Kohlhase:ssmtl*' on page 2 undefined on input line 72.
+
+
+LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10> not available
+(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 80.
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang1.sty
+File: lstlang1.sty 2004/09/05 1.3 listings language file
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang2.sty
+File: lstlang2.sty 2004/09/05 1.3 listings language file
+)
+(/usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
+)
+Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i
+nput line 91.
+ (./Makefile) (./continuous.tex [2] (../background/functions.sms) (../backgroun
+d/reals.sms)
+Package hyperref Info: bookmark level for unknown STdefinitionEnv defaults to 0
+ on input line 8.
+) (./differentiable.tex) (./paper.bbl
+Overfull \hbox (69.37538pt too wide) in paragraph at lines 119--22
+\OT1/cmr/m/n/10 shown how a a []T[]X col-lec-tion can be set up for au-toma-tio
+n.
+ []
+
+)
+\tf@thm=\write7
+\openout7 = `paper.thm'.
+
+ [3] (./paper.aux)
+
+LaTeX Warning: There were undefined references.
+
+ )
+Here is how much of TeX's memory you used:
+ 6658 strings out of 493848
+ 99522 string characters out of 3149206
+ 189428 words of memory out of 3000000
+ 9759 multiletter control sequences out of 15000+200000
+ 12316 words of font info for 48 fonts, out of 3000000 for 9000
+ 714 hyphenation exceptions out of 8191
+ 43i,12n,52p,271b,1168s stack positions out of 5000i,500n,10000p,200000b,50000s
+</usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb
+></usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb>
+</usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><
+/usr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></u
+sr/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr
+/local/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/l
+ocal/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr17.pfb></usr/loc
+al/texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/local/
+texlive/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/local/tex
+live/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr/local/texliv
+e/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive
+/2009/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/local/texlive/2
+009/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/local/texlive/20
+09/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/local/texlive/200
+9/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>
+Output written on paper.pdf (3 pages, 190417 bytes).
+PDF statistics:
+ 154 PDF objects out of 1000 (max. 8388607)
+ 38 named destinations out of 1000 (max. 500000)
+ 65 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.omdoc b/Master/texmf-dist/doc/latex/stex/example/paper/paper.omdoc
new file mode 100644
index 00000000000..ca38d57bd73
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.omdoc
@@ -0,0 +1,399 @@
+<?xml version="1.0"?>
+<!--This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.-->
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="paper.tex#textrange(from=15;1,to=15;17)" xml:id="paper.omdoc">
+ <metadata xml:id="paper.omdoc.p1" about="#paper.omdoc.p1" stex:srcref="paper.tex#textrange(from=18;0,to=25;16)">
+ <dc:creator xml:id="paper.omdoc.p1.p1" about="#paper.omdoc.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">
+ <p xml:id="paper.omdoc.p1.p1.p1" about="#paper.omdoc.p1.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">Michael Kohlhase</p>
+ </dc:creator>
+ <dc:rights xml:id="paper.omdoc.p1.p2" about="#paper.omdoc.p1.p2" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">
+ <p xml:id="paper.omdoc.p1.p2.p1" about="#paper.omdoc.p1.p2.p1" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">Copyright (c) 2009 Michael Kohlhase</p>
+ </dc:rights>
+ <dc:title xml:id="paper.omdoc.p1.p3" about="#paper.omdoc.p1.p3" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">
+ <p xml:id="paper.omdoc.p1.p3.p1" about="#paper.omdoc.p1.p3.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">An example of semantic Markup in <phrase xml:id="paper.omdoc.p1.p3.p1.p1" about="#paper.omdoc.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">sTeX</phrase></p>
+ </dc:title>
+ <dc:description xml:id="paper.omdoc.p1.p4" about="#paper.omdoc.p1.p4" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">
+ <p xml:id="paper.omdoc.p1.p4.p1" about="#paper.omdoc.p1.p4.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">In this note we give an example of semantic markup in <phrase xml:id="paper.omdoc.p1.p4.p1.p1" about="#paper.omdoc.p1.p4.p1.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">sTeX</phrase>:
+Continuous and differentiable functions are introduced using real numbers, sets and
+functions as an assumed background.</p>
+ </dc:description>
+ </metadata>
+ <omgroup layout="sectioning" xml:id="intro" about="#intro" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">
+ <metadata xml:id="intro.p1" about="#intro.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">
+ <dc:title stex:srcref="paper.tex#textrange(from=27;0,to=110;13)" xml:id="intro.p1.p1" about="#intro.p1.p1">
+ <p xml:id="intro.p1.p1.p1" about="#intro.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">Introduction</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p2" about="#intro.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <CMP xml:id="intro.p2.p1" about="#intro.p2.p1" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <p xml:id="intro.p2.p1.p1" about="#intro.p2.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">We will show how to semantically mark up mathematics in the <phrase xml:id="intro.p2.p1.p1.p1" about="#intro.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;1,to=28;68)">sTeX</phrase>
+format <ref type="cite" xref="kohlhase:ulsmf08"/> and how to convert it into
+OMDoc <ref type="cite" xref="kohlhase:omdoc1.3"/>.
+</p>
+ <p xml:id="intro.p2.p1.p2" about="#intro.p2.p1.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">We have some mathematical material in Section <ref type="cite" xref="sec.math" xml:id="intro.p2.p1.p2.p1" about="#intro.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=31;29,to=32;56)"/> which will serve as example
+content. In the rest of this section we will explain the setup of the example and
+present an approach to automation of the OMDoc conversion via Unix Makefiles.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="intro.p3" about="#intro.p3" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">
+ <metadata xml:id="intro.p3.p1" about="#intro.p3.p1" stex:srcref="paper.tex#textrange(from=35;0,to=62;13)">
+ <dc:title stex:srcref="paper.tex#textrange(from=35;0,to=63;13)" xml:id="intro.p3.p1.p1" about="#intro.p3.p1.p1">
+ <p xml:id="intro.p3.p1.p1.p1" about="#intro.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">The Setup</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="setup" about="#setup" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
+ <symbol name="target" xml:id="target.def.sym" about="#target.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <symbol name="module" xml:id="module.def.sym" about="#module.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <definition for="target module" xml:id="setup.p3" about="#setup.p3" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <CMP xml:id="setup.p3.p1" about="#setup.p3.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <p xml:id="setup.p3.p1.p1" about="#setup.p3.p1.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+The source of this note is contained in the file <phrase class="code" xml:id="setup.p3.p1.p1.p1" about="#setup.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=37;13,to=38;74)">paper.tex</phrase>. We call it
+the <idx xml:id="setup.p3.p1.p1.p2" about="#setup.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)"><idt><term cd="setup" name="target" role="definiendum" xml:id="setup.p3.p1.p1.p2.p1" about="#setup.p3.p1.p1.p2.p1" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)">target</term></idt><ide index="default"><idp><phrase>target</phrase></idp></ide></idx>, since formatting it with LaTeX will generate the main
+document. The content in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p3.p1.p1.p3" about="#setup.p3.p1.p1.p3" stex:srcref="paper.tex#textrange(from=39;33,to=40;52)"/> and Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p3.p1.p1.p4" about="#setup.p3.p1.p1.p4" stex:srcref="paper.tex#textrange(from=39;1,to=40;84)"/>
+comes from included files <phrase class="code" xml:id="setup.p3.p1.p1.p5" about="#setup.p3.p1.p1.p5" stex:srcref="paper.tex#textrange(from=40;5,to=41;56)">continuous.tex</phrase> and
+<phrase class="code" xml:id="setup.p3.p1.p1.p6" about="#setup.p3.p1.p1.p6" stex:srcref="paper.tex#textrange(from=41;54,to=42;34)">differentiable.tex</phrase>, we will call them <idx xml:id="setup.p3.p1.p1.p7" about="#setup.p3.p1.p1.p7" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)"><idt><term cd="setup" name="module" role="definiendum" xml:id="setup.p3.p1.p1.p7.p1" about="#setup.p3.p1.p1.p7.p1" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)">module</term></idt><ide index="default"><idp><phrase>module</phrase></idp></ide></idx>s, since they may
+be used (i.e. included) by other target documents as well.
+</p>
+ </CMP>
+ </definition>
+ <omtext xml:id="setup.p4" about="#setup.p4" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <CMP xml:id="setup.p4.p1" about="#setup.p4.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <p xml:id="setup.p4.p1.p1" about="#setup.p4.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">As the modules are built for inclusion into other documents, they are not
+self-contained:
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="enumerate" xml:id="I1" about="#I1" stex:srcref="paper.tex#textrange(from=47;0,to=54;19)">
+ <omtext xml:id="I1.p1" about="#I1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <CMP xml:id="I1.p1.p1" about="#I1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <p xml:id="I1.p1.p1.p1" about="#I1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">they do not contain a LaTeX preamble and
+<omlet action="display" data="#id35821218" show="embed" style="" font="typewriter"/>/<omlet action="display" data="#id35821224" show="embed" style="" font="typewriter"/>, and
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p2" about="#I1.p2" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <CMP xml:id="I1.p2.p1" about="#I1.p2.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <p xml:id="I1.p2.p1.p1" about="#I1.p2.p1.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">they may depend on other modules, whose semantic macros they need to include,
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p3" about="#I1.p3" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <CMP xml:id="I1.p3.p1" about="#I1.p3.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <p xml:id="I1.p3.p1.p1" about="#I1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">to facilitate this a module file <phrase class="code" xml:id="I1.p3.p1.p1.p1" about="#I1.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=50;25,to=51;61)">modf.tex</phrase> comes with a “semantic
+macro short form” <phrase class="code" xml:id="I1.p3.p1.p1.p2" about="#I1.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=51;41,to=52;43)">modf.sms</phrase> that can be included without generating
+output in the PDF.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <symbol name="background-module" xml:id="background-module.def.sym"/>
+ <omtext xml:id="setup.p6" about="#setup.p6" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <CMP xml:id="setup.p6.p1" about="#setup.p6.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <p xml:id="setup.p6.p1.p1" about="#setup.p6.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">this will have consequences for the automation. Concretely, the module on
+differentiable functions in Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p6.p1.p1.p1" about="#setup.p6.p1.p1.p1" stex:srcref="paper.tex#textrange(from=55;32,to=56;58)"/> depends on that for continuous
+functions in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p6.p1.p1.p2" about="#setup.p6.p1.p1.p2" stex:srcref="paper.tex#textrange(from=56;51,to=57;38)"/>. Both of them depend on modules for real numbers,
+sets and functions that we do not want to cover in this note. <phrase for="background-module" type="inlinedef" xml:id="setup.p6.p1.p1.p3" about="#setup.p6.p1.p1.p3" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">We assume that
+they have already been marked up with the same methods as we describe here and are
+accessible to us and call them <idx xml:id="setup.p6.p1.p1.p3.p1" about="#setup.p6.p1.p1.p3.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)"><idt><term cd="setup" name="background-module" role="definiendum" xml:id="setup.p6.p1.p1.p3.p1.p1" about="#setup.p6.p1.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">background module</term></idt><ide index="default"><idp><phrase>background</phrase></idp><idp><phrase>module</phrase></idp></ide></idx>s</phrase>. In our setup we
+keep them in the subdirectory <phrase class="code" xml:id="setup.p6.p1.p1.p4" about="#setup.p6.p1.p1.p4" stex:srcref="paper.tex#textrange(from=60;2,to=61;54)">background</phrase>.
+</p>
+ </CMP>
+ </omtext>
+ </theory>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="intro.p4" about="#intro.p4" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <metadata xml:id="intro.p4.p1" about="#intro.p4.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">
+ <dc:title stex:srcref="paper.tex#textrange(from=65;0,to=73;13)" xml:id="intro.p4.p1.p1" about="#intro.p4.p1.p1">
+ <p xml:id="intro.p4.p1.p1.p1" about="#intro.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">Formatting and OMDoc conversion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p4.p2" about="#intro.p4.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <CMP xml:id="intro.p4.p2.p1" about="#intro.p4.p2.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <p xml:id="intro.p4.p2.p1.p1" about="#intro.p4.p2.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">To format an <phrase xml:id="intro.p4.p2.p1.p1.p1" about="#intro.p4.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;68,to=66;21)">sTeX</phrase> document — i.e. to produce a PDF file from the <phrase xml:id="intro.p4.p2.p1.p1.p2" about="#intro.p4.p2.p1.p1.p2" stex:srcref="paper.tex#textrange(from=65;11,to=66;78)">sTeX</phrase> marked-up
+sources — we only need to run the <phrase class="code" xml:id="intro.p4.p2.p1.p1.p3" about="#intro.p4.p2.p1.p1.p3" stex:srcref="paper.tex#textrange(from=66;34,to=67;56)">pdflatex</phrase> program over the target document
+— assuming that all modules (regular or background) have semantic macro short forms.
+</p>
+ <p xml:id="intro.p4.p2.p1.p2" about="#intro.p4.p2.p1.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">To convert an <phrase xml:id="intro.p4.p2.p1.p2.p1" about="#intro.p4.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=69;66,to=70;22)">sTeX</phrase> document to OMDoc, we need to run <phrase class="code" xml:id="intro.p4.p2.p1.p2.p2" about="#intro.p4.p2.p1.p2.p2" stex:srcref="paper.tex#textrange(from=69;10,to=70;78)">latexml</phrase> over it,
+post-process the result by <phrase class="code" xml:id="intro.p4.p2.p1.p2.p3" about="#intro.p4.p2.p1.p2.p3" stex:srcref="paper.tex#textrange(from=70;41,to=71;50)">latexmlpost</phrase>, and finally massage away all remaining
+LaTeXML islands with a stylesheet, see  <ref type="cite" xref="kohlhase:ssmtl*"/> for details.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="intro.p5" about="#intro.p5" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <metadata xml:id="intro.p5.p1" about="#intro.p5.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">
+ <dc:title stex:srcref="paper.tex#textrange(from=75;0,to=108;13)" xml:id="intro.p5.p1.p1" about="#intro.p5.p1.p1">
+ <p xml:id="intro.p5.p1.p1.p1" about="#intro.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Makefile-based Automation</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p5.p2" about="#intro.p5.p2" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <CMP xml:id="intro.p5.p2.p1" about="#intro.p5.p2.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <p xml:id="intro.p5.p2.p1.p1" about="#intro.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">As the conversion to OMDoc is rather complex (the programs in the three steps take a
+variety of options), we support an automation by Unix Makefiles. There are three main
+<phrase class="code" xml:id="intro.p5.p2.p1.p1.p1" about="#intro.p5.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=77;10,to=78;16)">make</phrase> targets.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="description" xml:id="I2" about="#I2" stex:srcref="paper.tex#textrange(from=79;0,to=87;19)">
+ <omtext xml:id="I2.p1" about="#I2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <metadata xml:id="I2.p1.p1" about="#I2.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <dc:title xml:id="I2.p1.p1.p1" about="#I2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <phrase class="code" xml:id="I2.p1.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">make omdoc</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p1.p2" about="#I2.p1.p2" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p2.p1" about="#I2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">will trigger the OMDoc transformation of the target
+document.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p2" about="#I2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <metadata xml:id="I2.p2.p1" about="#I2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <dc:title xml:id="I2.p2.p1.p1" about="#I2.p2.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p1.p1.p1" about="#I2.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <phrase class="code" xml:id="I2.p2.p1.p1.p1.p1" about="#I2.p2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">make mods</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p2.p2" about="#I2.p2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p2.p1" about="#I2.p2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">will trigger the OMDoc transformation of the modules.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p3" about="#I2.p3" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <metadata xml:id="I2.p3.p1" about="#I2.p3.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <dc:title xml:id="I2.p3.p1.p1" about="#I2.p3.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p1.p1.p1" about="#I2.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <phrase class="code" xml:id="I2.p3.p1.p1.p1.p1" about="#I2.p3.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">make pdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p3.p2" about="#I2.p3.p2" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p2.p1" about="#I2.p3.p2.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">will trigger the LaTeX formatting the target
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p4" about="#I2.p4" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <metadata xml:id="I2.p4.p1" about="#I2.p4.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <dc:title xml:id="I2.p4.p1.p1" about="#I2.p4.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p1.p1.p1" about="#I2.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <phrase class="code" xml:id="I2.p4.p1.p1.p1.p1" about="#I2.p4.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">make mpdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p4.p2" about="#I2.p4.p2" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p2.p1" about="#I2.p4.p2.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">will trigger the LaTeX formatting the modules
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p5" about="#I2.p5" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <metadata xml:id="I2.p5.p1" about="#I2.p5.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <dc:title xml:id="I2.p5.p1.p1" about="#I2.p5.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p1.p1.p1" about="#I2.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <phrase class="code" xml:id="I2.p5.p1.p1.p1.p1" about="#I2.p5.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">make sms</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p5.p2" about="#I2.p5.p2" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p2.p1" about="#I2.p5.p2.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">will trigger the re-generation of all semantic macro short
+forms of modules (this is implicitly called in all the other <phrase class="code" xml:id="I2.p5.p2.p1.p1" about="#I2.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=85;10,to=86;79)">make</phrase> targets)
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <omtext xml:id="intro.p5.p4" about="#intro.p5.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <CMP xml:id="intro.p5.p4.p1" about="#intro.p5.p4.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <p xml:id="intro.p5.p4.p1.p1" about="#intro.p5.p4.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">To use this, we need to set up a <phrase class="code" xml:id="intro.p5.p4.p1.p1.p1" about="#intro.p5.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=87;24,to=88;55)">Makefile</phrase> of the following form:
+</p>
+ <omlet xmlns:mcd="http://www.w3.org/ns/mathml-cd" action="display" show="embed" style="display:block" class="language_make" xml:id="LSTx1">
+ <code>
+ <data format="listingblock">
+ <table class="listing">
+ <tr>
+ <td/>
+ <td>STEXDIR = ../..</td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td>TARGET = paper.tex</td>
+ </tr>
+ <tr>
+ <td/>
+ <td>MODSLIBDIR = ../background</td>
+ </tr>
+ <tr>
+ <td>4</td>
+ <td/>
+ </tr>
+ <tr>
+ <td/>
+ <td>include $(STEXDIR)/make/Makefile.vars</td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td>all: omdoc mods pdf</td>
+ </tr>
+ <tr>
+ <td/>
+ <td>include $(STEXDIR)/make/Makefile.in</td>
+ </tr>
+ </table>
+ </data>
+ </code>
+ </omlet>
+ <p xml:id="intro.p5.p4.p1.p3" about="#intro.p5.p4.p1.p3" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">The variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">STEXDIR</phrase> has to be set to the main directory of the <phrase xml:id="intro.p5.p4.p1.p3.p1" about="#intro.p5.p4.p1.p3.p1" stex:srcref="paper.tex#textrange(from=92;1,to=93;86)">sTeX</phrase>
+distribution. The variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">TARGET</phrase> specifies the target document (all other
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p2" about="#intro.p5.p4.p1.p3.p2" stex:srcref="paper.tex#textrange(from=94;73,to=95;17)">*.tex</phrase> files that are not excluded in the <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">BUTFILES</phrase> variables are
+considered as modules). Here, the <phrase class="code" xml:id="intro.p5.p4.p1.p3.p3" about="#intro.p5.p4.p1.p3.p3" stex:srcref="paper.tex#textrange(from=95;32,to=96;56)">background</phrase> directory for convenience. The
+<phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">MODSLIBDIR</phrase> specifies the location of the prefix and postfix files
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p4" about="#intro.p5.p4.p1.p3.p4" stex:srcref="paper.tex#textrange(from=97;68,to=98;19)">pre.tex</phrase> and <phrase class="code" xml:id="intro.p5.p4.p1.p3.p5" about="#intro.p5.p4.p1.p3.p5" stex:srcref="paper.tex#textrange(from=97;44,to=98;43)">post.tex</phrase> that will be prepended and appended to the
+modules to make them into complete files TeX files that can be converted. The last
+three lines just include the Makefiles from the <phrase xml:id="intro.p5.p4.p1.p3.p6" about="#intro.p5.p4.p1.p3.p6" stex:srcref="paper.tex#textrange(from=99;32,to=100;56)">sTeX</phrase> distribution and configure the
+default make target (<phrase class="code" xml:id="intro.p5.p4.p1.p3.p7" about="#intro.p5.p4.p1.p3.p7" stex:srcref="paper.tex#textrange(from=100;31,to=101;40)">make all</phrase>) to be produce the pdf version
+</p>
+ <p xml:id="intro.p5.p4.p1.p4" about="#intro.p5.p4.p1.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Note that in the directory <phrase class="code" xml:id="intro.p5.p4.p1.p4.p1" about="#intro.p5.p4.p1.p4.p1" stex:srcref="paper.tex#textrange(from=102;36,to=103;49)">background</phrase> we have a very similar Makefile as
+above. The only differences are that the variable <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">STEXDIR</phrase> is adapted and
+that the <phrase xmlns:mcd="http://www.w3.org/ns/mathml-cd" class="listing ">BUTFILE</phrase> variable is set to <phrase class="code" xml:id="intro.p5.p4.p1.p4.p2" about="#intro.p5.p4.p1.p4.p2" stex:srcref="paper.tex#textrange(from=104;5,to=105;69)">pre.tex</phrase> and
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p3" about="#intro.p5.p4.p1.p4.p3" stex:srcref="paper.tex#textrange(from=105;51,to=106;20)">post.tex</phrase>, so that they are not converted. In the directory
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p4" about="#intro.p5.p4.p1.p4.p4" stex:srcref="paper.tex#textrange(from=106;56,to=107;22)">background</phrase> we have followed good practice by establishing a phony
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="sec.math" about="#sec.math" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">
+ <metadata xml:id="sec.math.p1" about="#sec.math.p1" stex:srcref="paper.tex#textrange(from=112;0,to=112;50)">
+ <dc:title stex:srcref="paper.tex#textrange(from=112;0,to=116;13)" xml:id="sec.math.p1.p1" about="#sec.math.p1.p1">
+ <p xml:id="sec.math.p1.p1.p1" about="#sec.math.p1.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">Mathematical Content</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="sec.math.p2" about="#sec.math.p2" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <CMP xml:id="sec.math.p2.p1" about="#sec.math.p2.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <p xml:id="sec.math.p2.p1.p1" about="#sec.math.p2.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">We present some standard mathematical definitions, here from calculus.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>0</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <render name="arg1"/>
+ <m:mo>,</m:mo>
+ <render name="arg2"/>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><phrase>continuous</phrase></idp></ide></idx> at
+<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
+<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ></p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="../../../slides/extcds/omstd/arith1.omdoc#arith1"/>
+ <imports from="../../../slides/extcds/omstd/relation1.omdoc#relation1"/>
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>1</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <render name="arg1"/>
+ <m:mo>,</m:mo>
+ <render name="arg2"/>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><phrase>differentiable</phrase></idp></ide></idx> at
+<om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ>, iff for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3F5;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ> there is a <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="gt"/><om:OMV name="&#x3B4;"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ>, such that
+<om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="rfrac"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="&#x3F5;"/></om:OMA></om:OMOBJ> for all <om:OMOBJ><om:OMA><om:OMS cd="relation1" name="lt"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="arith1" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="&#x3B4;"/></om:OMA></om:OMOBJ>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="concl" about="#concl" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <metadata xml:id="concl.p1" about="#concl.p1" stex:srcref="paper.tex#textrange(from=118;0,to=118;37)">
+ <dc:title stex:srcref="paper.tex#textrange(from=118;0,to=121;13)" xml:id="concl.p1.p1" about="#concl.p1.p1">
+ <p xml:id="concl.p1.p1.p1" about="#concl.p1.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">Conclusion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="concl.p2" about="#concl.p2" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <CMP xml:id="concl.p2.p1" about="#concl.p2.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <p xml:id="concl.p2.p1.p1" about="#concl.p2.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">In this note we have given an example of standard mathematical markup and shown how a a
+<phrase xml:id="concl.p2.p1.p1.p1" about="#concl.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=119;42,to=120;8)">sTeX</phrase> collection can be set up for automation.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <bibliography xmlns="http://dlmf.nist.gov/LaTeXML" files="kwarc" xml:id="bib"/>
+ <!--The data elements-->
+ <private xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="id35821218">
+ <data format="text"><![CDATA[\begin]]></data>
+ </private>
+ <private xmlns:mcd="http://www.w3.org/ns/mathml-cd" xml:id="id35821224">
+ <data format="text"><![CDATA[\end{document}]]></data>
+ </private>
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.out b/Master/texmf-dist/doc/latex/stex/example/paper/paper.out
new file mode 100644
index 00000000000..7c039ea6d4d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.out
@@ -0,0 +1,8 @@
+\BOOKMARK [1][-]{section.1}{Introduction}{}
+\BOOKMARK [2][-]{subsection.1.1}{The Setup}{section.1}
+\BOOKMARK [2][-]{subsection.1.2}{Formatting and OMDoc conversion}{section.1}
+\BOOKMARK [2][-]{subsection.1.3}{Makefile-based Automation}{section.1}
+\BOOKMARK [1][-]{section.2}{Mathematical Content}{}
+\BOOKMARK [2][-]{subsection.2.1}{Continuous Functions}{section.2}
+\BOOKMARK [2][-]{subsection.2.2}{Differentiable Functions}{section.2}
+\BOOKMARK [1][-]{section.3}{Conclusion}{}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf b/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf
new file mode 100644
index 00000000000..36705f2e2ba
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex
new file mode 100644
index 00000000000..2949019944d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex
@@ -0,0 +1,132 @@
+\documentclass{omdoc}
+\usepackage{stex,amssymb}
+\usepackage{alltt}
+\usepackage{hyperref}
+\usepackage{listings}
+\def\omdoc{OMDoc}
+\def\latexml{LaTeXML}
+\defpath{backmods}{../background}
+%% defining the author metadata
+\DCMperson[id=miko,
+ affiliation={Jacobs University, Bremen},
+ url=http://kwarc.info/kohlhase]
+ {Michael Kohlhase}
+
+\begin{document}
+
+% metadata and title page
+\begin{DCmetadata}[maketitle]
+ \DCMcreators{miko}
+ \DCMrights{Copyright (c) 2009 Michael Kohlhase}
+ \DCMtitle{An example of semantic Markup in {\sTeX}}
+ \DCMabstract{In this note we give an example of semantic markup in {\sTeX}:
+ Continuous and differentiable functions are introduced using real numbers, sets and
+ functions as an assumed background.}
+\end{DCmetadata}
+
+\begin{omgroup}[id=intro]{Introduction}
+ We will show how to semantically mark up mathematics in the {\sTeX}
+ format~\cite{Kohlhase:ulsmf08} and how to convert it into
+ {\omdoc}~\cite{Kohlhase:OMDoc1.3}.
+
+ We have some mathematical material in {\sref{sec.math}} which will serve as example
+ content. In the rest of this section we will explain the setup of the example and
+ present an approach to automation of the {\omdoc} conversion via Unix Makefiles.
+ \begin{omgroup}{The Setup}
+ \begin{module}[id=setup]
+ \begin{definition}[display=flow]
+ The source of this note is contained in the file {\texttt{paper.tex}}. We call it
+ the {\defin{target}}, since formatting it with {\LaTeX} will generate the main
+ document. The content in {\sref{sec.contfuncs}} and {\sref{sec.differentiable}}
+ comes from included files {\texttt{continuous.tex}} and
+ {\texttt{differentiable.tex}}, we will call them {\defin{module}s}, since they may
+ be used (i.e. included) by other target documents as well.
+ \end{definition}
+ As the modules are built for inclusion into other documents, they are not
+ self-contained:
+ \begin{enumerate}
+ \item they do not contain a {\LaTeX} preamble and
+ \verb|\begin|/\verb|\end{document}|, and
+ \item they may depend on other modules, whose semantic macros they need to include,
+ \item to facilitate this a module file {\texttt{modf.tex}} comes with a ``semantic
+ macro short form'' {\texttt{modf.sms}} that can be included without generating
+ output in the PDF.
+ \end{enumerate}
+ this will have consequences for the automation. Concretely, the module on
+ differentiable functions in {\sref{sec.differentiable}} depends on that for continuous
+ functions in {\sref{sec.contfuncs}}. Both of them depend on modules for real numbers,
+ sets and functions that we do not want to cover in this note. \inlinedef{We assume that
+ they have already been marked up with the same methods as we describe here and are
+ accessible to us and call them {\twindef{background}{module}s}}. In our setup we
+ keep them in the subdirectory {\texttt{background}}.
+ \end{module}
+\end{omgroup}
+
+\begin{omgroup}{Formatting and {\omdoc} conversion}
+ To format an {\sTeX} document --- i.e. to produce a PDF file from the {\sTeX} marked-up
+ sources --- we only need to run the {\texttt{pdflatex}} program over the target document
+ --- assuming that all modules (regular or background) have semantic macro short forms.
+
+ To convert an {\sTeX} document to {\omdoc}, we need to run {\texttt{latexml}} over it,
+ post-process the result by {\texttt{latexmlpost}}, and finally massage away all remaining
+ {\latexml} islands with a stylesheet, see ~\cite{Kohlhase:ssmtl*} for details.
+\end{omgroup}
+
+\begin{omgroup}{Makefile-based Automation}
+ As the conversion to {\omdoc} is rather complex (the programs in the three steps take a
+ variety of options), we support an automation by Unix Makefiles. There are three main
+ {\texttt{make}} targets.
+\begin{description}
+ \item[{\texttt{make omdoc}}] will trigger the {\omdoc} transformation of the target
+ document.
+ \item[{\texttt{make mods}}] will trigger the {\omdoc} transformation of the modules.
+ \item[{\texttt{make pdf}}] will trigger the {\LaTeX} formatting the target
+ \item[{\texttt{make mpdf}}] will trigger the {\LaTeX} formatting the modules
+ \item[{\texttt{make sms}}] will trigger the re-generation of all semantic macro short
+ forms of modules (this is implicitly called in all the other {\texttt{make}} targets)
+ \end{description}
+ To use this, we need to set up a {\texttt{{Makefile}}} of the following form:
+
+ \lstset{columns=flexible,frame=lines,numbers=left,stepnumber=2,numberstyle=\tiny,basicstyle=\small}
+ \lstinputlisting[language=make]{Makefile}
+
+ The variable {\lstinline{STEXDIR}} has to be set to the main directory of the {\sTeX}
+ distribution. The variable {\lstinline{TARGET}} specifies the target document (all other
+ {\texttt{*.tex}} files that are not excluded in the {\lstinline{BUTFILES}} variables are
+ considered as modules). Here, the {\texttt{background}} directory for convenience. The
+ {\lstinline{MODSLIBDIR}} specifies the location of the prefix and postfix files
+ {\texttt{pre.tex}} and {\texttt{post.tex}} that will be prepended and appended to the
+ modules to make them into complete files {\TeX} files that can be converted. The last
+ three lines just include the Makefiles from the {\sTeX} distribution and configure the
+ default make target (\texttt{make all}) to be produce the pdf version
+
+ Note that in the directory {\texttt{background}} we have a very similar Makefile as
+ above. The only differences are that the variable {\lstinline{STEXDIR}} is adapted and
+ that the {\lstinline{BUTFILE}} variable is set to {\texttt{pre.tex}} and
+ {\texttt{post.tex}}, so that they are not converted. In the directory
+ {\texttt{background}} we have followed good practice by establishing a phony
+\end{omgroup}
+
+\end{omgroup}
+
+\begin{omgroup}[id=sec.math]{Mathematical Content}
+ We present some standard mathematical definitions, here from calculus.
+ \sinput{continuous}
+ \sinput{differentiable}
+\end{omgroup}
+
+\begin{omgroup}[id=concl]{Conclusion}
+ In this note we have given an example of standard mathematical markup and shown how a a
+ {\sTeX} collection can be set up for automation.
+\end{omgroup}
+\bibliographystyle{alpha}
+\bibliography{kwarc}
+\end{document}
+
+%%% Local Variables:
+%%% mode: LaTeX
+%%% TeX-master: t
+%%% End:
+
+% LocalWords: miko Makefiles tex contfuncs modf sms pdflatex latexml Makefile
+% LocalWords: latexmlpost omdoc STEXDIR BUTFILES DIRS
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml
new file mode 100644
index 00000000000..d6ff5faabd9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc"?>
+<?latexml class="omdoc"?>
+<?latexml package="stex,amssymb"?>
+<?latexml package="alltt"?>
+<?latexml package="hyperref"?>
+<?latexml package="listings"?>
+<!-- %% defining the author metadata -->
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" stex:srcref="paper.tex#textrange(from=15;1,to=15;17)" xml:id="paper.omdoc">
+ <!-- %metadata and title page -->
+ <metadata xml:id="paper.omdoc.p1" about="#paper.omdoc.p1" stex:srcref="paper.tex#textrange(from=18;0,to=25;16)">
+ <dc:creator xml:id="paper.omdoc.p1.p1" about="#paper.omdoc.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">
+ <p xml:id="paper.omdoc.p1.p1.p1" about="#paper.omdoc.p1.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">Michael Kohlhase</p>
+ </dc:creator>
+ <dc:rights xml:id="paper.omdoc.p1.p2" about="#paper.omdoc.p1.p2" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">
+ <p xml:id="paper.omdoc.p1.p2.p1" about="#paper.omdoc.p1.p2.p1" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">Copyright (c) 2009 Michael Kohlhase</p>
+ </dc:rights>
+ <dc:title xml:id="paper.omdoc.p1.p3" about="#paper.omdoc.p1.p3" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">
+ <p xml:id="paper.omdoc.p1.p3.p1" about="#paper.omdoc.p1.p3.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">An example of semantic Markup in <phrase xml:id="paper.omdoc.p1.p3.p1.p1" about="#paper.omdoc.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">sTeX</phrase></p>
+ </dc:title>
+ <dc:description xml:id="paper.omdoc.p1.p4" about="#paper.omdoc.p1.p4" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">
+ <p xml:id="paper.omdoc.p1.p4.p1" about="#paper.omdoc.p1.p4.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">In this note we give an example of semantic markup in <phrase xml:id="paper.omdoc.p1.p4.p1.p1" about="#paper.omdoc.p1.p4.p1.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">sTeX</phrase>:
+Continuous and differentiable functions are introduced using real numbers, sets and
+functions as an assumed background.</p>
+ </dc:description>
+ <!-- %**** paper.tex Line 25 **** -->
+ </metadata>
+ <omgroup layout="sectioning" xml:id="intro" about="#intro" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">
+ <metadata xml:id="intro.p1" about="#intro.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">
+ <dc:title stex:srcref="paper.tex#textrange(from=27;0,to=110;13)" xml:id="intro.p1.p1" about="#intro.p1.p1">
+ <p xml:id="intro.p1.p1.p1" about="#intro.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">Introduction</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p2" about="#intro.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <CMP xml:id="intro.p2.p1" about="#intro.p2.p1" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <p xml:id="intro.p2.p1.p1" about="#intro.p2.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">We will show how to semantically mark up mathematics in the <phrase xml:id="intro.p2.p1.p1.p1" about="#intro.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;1,to=28;68)">sTeX</phrase>
+format <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:ulsmf08" separator="," show="Number" yyseparator=","/>]</cite> and how to convert it into
+OMDoc <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:omdoc1.3" separator="," show="Number" yyseparator=","/>]</cite>.
+</p>
+ <p xml:id="intro.p2.p1.p2" about="#intro.p2.p1.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">We have some mathematical material in Section <ref type="cite" xref="sec.math" xml:id="intro.p2.p1.p2.p1" about="#intro.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=31;29,to=32;56)"/> which will serve as example
+content. In the rest of this section we will explain the setup of the example and
+present an approach to automation of the OMDoc conversion via Unix Makefiles.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="intro.p3" about="#intro.p3" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">
+ <metadata xml:id="intro.p3.p1" about="#intro.p3.p1" stex:srcref="paper.tex#textrange(from=35;0,to=62;13)">
+ <dc:title stex:srcref="paper.tex#textrange(from=35;0,to=63;13)" xml:id="intro.p3.p1.p1" about="#intro.p3.p1.p1">
+ <p xml:id="intro.p3.p1.p1.p1" about="#intro.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">The Setup</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="setup" about="#setup" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <symbol name="target" xml:id="target.def.sym" about="#target.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <symbol name="module" xml:id="module.def.sym" about="#module.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <definition for="target module" xml:id="setup.p3" about="#setup.p3" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <CMP xml:id="setup.p3.p1" about="#setup.p3.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <p xml:id="setup.p3.p1.p1" about="#setup.p3.p1.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+The source of this note is contained in the file <phrase class="code" xml:id="setup.p3.p1.p1.p1" about="#setup.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=37;13,to=38;74)">paper.tex</phrase>. We call it
+the <idx xml:id="setup.p3.p1.p1.p2" about="#setup.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)"><idt><term cd="setup" name="target" role="definiendum" xml:id="setup.p3.p1.p1.p2.p1" about="#setup.p3.p1.p1.p2.p1" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)">target</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">target</text></idp></ide></idx>, since formatting it with LaTeX will generate the main
+document. The content in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p3.p1.p1.p3" about="#setup.p3.p1.p1.p3" stex:srcref="paper.tex#textrange(from=39;33,to=40;52)"/> and Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p3.p1.p1.p4" about="#setup.p3.p1.p1.p4" stex:srcref="paper.tex#textrange(from=39;1,to=40;84)"/>
+comes from included files <phrase class="code" xml:id="setup.p3.p1.p1.p5" about="#setup.p3.p1.p1.p5" stex:srcref="paper.tex#textrange(from=40;5,to=41;56)">continuous.tex</phrase> and
+<phrase class="code" xml:id="setup.p3.p1.p1.p6" about="#setup.p3.p1.p1.p6" stex:srcref="paper.tex#textrange(from=41;54,to=42;34)">differentiable.tex</phrase>, we will call them <idx xml:id="setup.p3.p1.p1.p7" about="#setup.p3.p1.p1.p7" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)"><idt><term cd="setup" name="module" role="definiendum" xml:id="setup.p3.p1.p1.p7.p1" about="#setup.p3.p1.p1.p7.p1" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)">module</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">module</text></idp></ide></idx>s, since they may
+be used (i.e. included) by other target documents as well.
+</p>
+ </CMP>
+ </definition>
+ <omtext xml:id="setup.p4" about="#setup.p4" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <CMP xml:id="setup.p4.p1" about="#setup.p4.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <p xml:id="setup.p4.p1.p1" about="#setup.p4.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">As the modules are built for inclusion into other documents, they are not
+self-contained:
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="enumerate" xml:id="I1" about="#I1" stex:srcref="paper.tex#textrange(from=47;0,to=54;19)">
+ <omtext xml:id="I1.p1" about="#I1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <CMP xml:id="I1.p1.p1" about="#I1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <p xml:id="I1.p1.p1.p1" about="#I1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">they do not contain a LaTeX preamble and
+<verbatim xmlns="http://dlmf.nist.gov/LaTeXML" font="typewriter">\begin</verbatim>/<verbatim xmlns="http://dlmf.nist.gov/LaTeXML" font="typewriter">\end{document}</verbatim>, and
+<!-- %**** paper.tex Line 50 **** --></p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p2" about="#I1.p2" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <CMP xml:id="I1.p2.p1" about="#I1.p2.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <p xml:id="I1.p2.p1.p1" about="#I1.p2.p1.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">they may depend on other modules, whose semantic macros they need to include,
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p3" about="#I1.p3" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <CMP xml:id="I1.p3.p1" about="#I1.p3.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <p xml:id="I1.p3.p1.p1" about="#I1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">to facilitate this a module file <phrase class="code" xml:id="I1.p3.p1.p1.p1" about="#I1.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=50;25,to=51;61)">modf.tex</phrase> comes with a “semantic
+macro short form” <phrase class="code" xml:id="I1.p3.p1.p1.p2" about="#I1.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=51;41,to=52;43)">modf.sms</phrase> that can be included without generating
+output in the PDF.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <symbol name="background-module" xml:id="background-module.def.sym"/>
+ <omtext xml:id="setup.p6" about="#setup.p6" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <CMP xml:id="setup.p6.p1" about="#setup.p6.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <p xml:id="setup.p6.p1.p1" about="#setup.p6.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">this will have consequences for the automation. Concretely, the module on
+differentiable functions in Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p6.p1.p1.p1" about="#setup.p6.p1.p1.p1" stex:srcref="paper.tex#textrange(from=55;32,to=56;58)"/> depends on that for continuous
+functions in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p6.p1.p1.p2" about="#setup.p6.p1.p1.p2" stex:srcref="paper.tex#textrange(from=56;51,to=57;38)"/>. Both of them depend on modules for real numbers,
+sets and functions that we do not want to cover in this note. <phrase for="background-module" type="inlinedef" xml:id="setup.p6.p1.p1.p3" about="#setup.p6.p1.p1.p3" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">We assume that
+they have already been marked up with the same methods as we describe here and are
+accessible to us and call them <idx xml:id="setup.p6.p1.p1.p3.p1" about="#setup.p6.p1.p1.p3.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)"><idt><term cd="setup" name="background-module" role="definiendum" xml:id="setup.p6.p1.p1.p3.p1.p1" about="#setup.p6.p1.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">background module</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">background</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">module</text></idp></ide></idx>s</phrase>. In our setup we
+keep them in the subdirectory <phrase class="code" xml:id="setup.p6.p1.p1.p4" about="#setup.p6.p1.p1.p4" stex:srcref="paper.tex#textrange(from=60;2,to=61;54)">background</phrase>.
+</p>
+ </CMP>
+ </omtext>
+ </theory>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="intro.p4" about="#intro.p4" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <metadata xml:id="intro.p4.p1" about="#intro.p4.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">
+ <dc:title stex:srcref="paper.tex#textrange(from=65;0,to=73;13)" xml:id="intro.p4.p1.p1" about="#intro.p4.p1.p1">
+ <p xml:id="intro.p4.p1.p1.p1" about="#intro.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">Formatting and OMDoc conversion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p4.p2" about="#intro.p4.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <CMP xml:id="intro.p4.p2.p1" about="#intro.p4.p2.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <p xml:id="intro.p4.p2.p1.p1" about="#intro.p4.p2.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">To format an <phrase xml:id="intro.p4.p2.p1.p1.p1" about="#intro.p4.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;68,to=66;21)">sTeX</phrase> document — i.e. to produce a PDF file from the <phrase xml:id="intro.p4.p2.p1.p1.p2" about="#intro.p4.p2.p1.p1.p2" stex:srcref="paper.tex#textrange(from=65;11,to=66;78)">sTeX</phrase> marked-up
+sources — we only need to run the <phrase class="code" xml:id="intro.p4.p2.p1.p1.p3" about="#intro.p4.p2.p1.p1.p3" stex:srcref="paper.tex#textrange(from=66;34,to=67;56)">pdflatex</phrase> program over the target document
+— assuming that all modules (regular or background) have semantic macro short forms.
+</p>
+ <p xml:id="intro.p4.p2.p1.p2" about="#intro.p4.p2.p1.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">To convert an <phrase xml:id="intro.p4.p2.p1.p2.p1" about="#intro.p4.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=69;66,to=70;22)">sTeX</phrase> document to OMDoc, we need to run <phrase class="code" xml:id="intro.p4.p2.p1.p2.p2" about="#intro.p4.p2.p1.p2.p2" stex:srcref="paper.tex#textrange(from=69;10,to=70;78)">latexml</phrase> over it,
+post-process the result by <phrase class="code" xml:id="intro.p4.p2.p1.p2.p3" about="#intro.p4.p2.p1.p2.p3" stex:srcref="paper.tex#textrange(from=70;41,to=71;50)">latexmlpost</phrase>, and finally massage away all remaining
+LaTeXML islands with a stylesheet, see  <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:ssmtl*" separator="," show="Number" yyseparator=","/>]</cite> for details.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <!-- %**** paper.tex Line 75 **** -->
+ <omgroup layout="sectioning" xml:id="intro.p5" about="#intro.p5" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <metadata xml:id="intro.p5.p1" about="#intro.p5.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">
+ <dc:title stex:srcref="paper.tex#textrange(from=75;0,to=108;13)" xml:id="intro.p5.p1.p1" about="#intro.p5.p1.p1">
+ <p xml:id="intro.p5.p1.p1.p1" about="#intro.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Makefile-based Automation</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p5.p2" about="#intro.p5.p2" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <CMP xml:id="intro.p5.p2.p1" about="#intro.p5.p2.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <p xml:id="intro.p5.p2.p1.p1" about="#intro.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">As the conversion to OMDoc is rather complex (the programs in the three steps take a
+variety of options), we support an automation by Unix Makefiles. There are three main
+<phrase class="code" xml:id="intro.p5.p2.p1.p1.p1" about="#intro.p5.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=77;10,to=78;16)">make</phrase> targets.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="description" xml:id="I2" about="#I2" stex:srcref="paper.tex#textrange(from=79;0,to=87;19)">
+ <omtext xml:id="I2.p1" about="#I2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <metadata xml:id="I2.p1.p1" about="#I2.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <dc:title xml:id="I2.p1.p1.p1" about="#I2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <phrase class="code" xml:id="I2.p1.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">make omdoc</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p1.p2" about="#I2.p1.p2" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p2.p1" about="#I2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">will trigger the OMDoc transformation of the target
+document.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p2" about="#I2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <metadata xml:id="I2.p2.p1" about="#I2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <dc:title xml:id="I2.p2.p1.p1" about="#I2.p2.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p1.p1.p1" about="#I2.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <phrase class="code" xml:id="I2.p2.p1.p1.p1.p1" about="#I2.p2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">make mods</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p2.p2" about="#I2.p2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p2.p1" about="#I2.p2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">will trigger the OMDoc transformation of the modules.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p3" about="#I2.p3" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <metadata xml:id="I2.p3.p1" about="#I2.p3.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <dc:title xml:id="I2.p3.p1.p1" about="#I2.p3.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p1.p1.p1" about="#I2.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <phrase class="code" xml:id="I2.p3.p1.p1.p1.p1" about="#I2.p3.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">make pdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p3.p2" about="#I2.p3.p2" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p2.p1" about="#I2.p3.p2.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">will trigger the LaTeX formatting the target
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p4" about="#I2.p4" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <metadata xml:id="I2.p4.p1" about="#I2.p4.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <dc:title xml:id="I2.p4.p1.p1" about="#I2.p4.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p1.p1.p1" about="#I2.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <phrase class="code" xml:id="I2.p4.p1.p1.p1.p1" about="#I2.p4.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">make mpdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p4.p2" about="#I2.p4.p2" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p2.p1" about="#I2.p4.p2.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">will trigger the LaTeX formatting the modules
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p5" about="#I2.p5" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <metadata xml:id="I2.p5.p1" about="#I2.p5.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <dc:title xml:id="I2.p5.p1.p1" about="#I2.p5.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p1.p1.p1" about="#I2.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <phrase class="code" xml:id="I2.p5.p1.p1.p1.p1" about="#I2.p5.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">make sms</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p5.p2" about="#I2.p5.p2" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p2.p1" about="#I2.p5.p2.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">will trigger the re-generation of all semantic macro short
+forms of modules (this is implicitly called in all the other <phrase class="code" xml:id="I2.p5.p2.p1.p1" about="#I2.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=85;10,to=86;79)">make</phrase> targets)
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <omtext xml:id="intro.p5.p4" about="#intro.p5.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <CMP xml:id="intro.p5.p4.p1" about="#intro.p5.p4.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <p xml:id="intro.p5.p4.p1.p1" about="#intro.p5.p4.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">To use this, we need to set up a <phrase class="code" xml:id="intro.p5.p4.p1.p1.p1" about="#intro.p5.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=87;24,to=88;55)">Makefile</phrase> of the following form:
+</p>
+ <listingblock xmlns="http://dlmf.nist.gov/LaTeXML" class="language_make" xml:id="LSTx1">
+ <tabular xml:id="LSTx1.p1" about="#LSTx1.p1">
+ <tr xml:id="LSTx1.p1.p1" about="#LSTx1.p1.p1">
+ <td class="linenumber" xml:id="LSTx1.p1.p1.p1" about="#LSTx1.p1.p1.p1"></td>
+ <td xml:id="LSTx1.p1.p1.p2" about="#LSTx1.p1.p1.p2">
+ <text class="lstline">STEXDIR<text class="lstspace"> </text>=<text class="lstspace"> </text>../..</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p2" about="#LSTx1.p1.p2">
+ <td class="linenumber" xml:id="LSTx1.p1.p2.p1" about="#LSTx1.p1.p2.p1">2</td>
+ <td xml:id="LSTx1.p1.p2.p2" about="#LSTx1.p1.p2.p2">
+ <text class="lstline">TARGET<text class="lstspace"> </text>=<text class="lstspace"> </text>paper.tex</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p3" about="#LSTx1.p1.p3">
+ <td class="linenumber" xml:id="LSTx1.p1.p3.p1" about="#LSTx1.p1.p3.p1"></td>
+ <td xml:id="LSTx1.p1.p3.p2" about="#LSTx1.p1.p3.p2">
+ <text class="lstline">MODSLIBDIR<text class="lstspace"> </text>=<text class="lstspace"> </text>../background</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p4" about="#LSTx1.p1.p4">
+ <td class="linenumber" xml:id="LSTx1.p1.p4.p1" about="#LSTx1.p1.p4.p1">4</td>
+ <td xml:id="LSTx1.p1.p4.p2" about="#LSTx1.p1.p4.p2">
+ <text class="lstline"/>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p5" about="#LSTx1.p1.p5">
+ <td class="linenumber" xml:id="LSTx1.p1.p5.p1" about="#LSTx1.p1.p5.p1"></td>
+ <td xml:id="LSTx1.p1.p5.p2" about="#LSTx1.p1.p5.p2">
+ <text class="lstline">include<text class="lstspace"> </text>$(STEXDIR)/make/Makefile.vars</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p6" about="#LSTx1.p1.p6">
+ <td class="linenumber" xml:id="LSTx1.p1.p6.p1" about="#LSTx1.p1.p6.p1">6</td>
+ <td xml:id="LSTx1.p1.p6.p2" about="#LSTx1.p1.p6.p2">
+ <text class="lstline">all:<text class="lstspace"> </text>omdoc<text class="lstspace"> </text>mods<text class="lstspace"> </text>pdf</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p7" about="#LSTx1.p1.p7">
+ <td class="linenumber" xml:id="LSTx1.p1.p7.p1" about="#LSTx1.p1.p7.p1"></td>
+ <td xml:id="LSTx1.p1.p7.p2" about="#LSTx1.p1.p7.p2">
+ <text class="lstline">include<text class="lstspace"> </text>$(STEXDIR)/make/Makefile.in</text>
+ </td>
+ </tr>
+ </tabular>
+ </listingblock>
+ <p xml:id="intro.p5.p4.p1.p3" about="#intro.p5.p4.p1.p3" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">The variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">STEXDIR</text> has to be set to the main directory of the <phrase xml:id="intro.p5.p4.p1.p3.p1" about="#intro.p5.p4.p1.p3.p1" stex:srcref="paper.tex#textrange(from=92;1,to=93;86)">sTeX</phrase>
+distribution. The variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">TARGET</text> specifies the target document (all other
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p2" about="#intro.p5.p4.p1.p3.p2" stex:srcref="paper.tex#textrange(from=94;73,to=95;17)">*.tex</phrase> files that are not excluded in the <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">BUTFILES</text> variables are
+considered as modules). Here, the <phrase class="code" xml:id="intro.p5.p4.p1.p3.p3" about="#intro.p5.p4.p1.p3.p3" stex:srcref="paper.tex#textrange(from=95;32,to=96;56)">background</phrase> directory for convenience. The
+<text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">MODSLIBDIR</text> specifies the location of the prefix and postfix files
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p4" about="#intro.p5.p4.p1.p3.p4" stex:srcref="paper.tex#textrange(from=97;68,to=98;19)">pre.tex</phrase> and <phrase class="code" xml:id="intro.p5.p4.p1.p3.p5" about="#intro.p5.p4.p1.p3.p5" stex:srcref="paper.tex#textrange(from=97;44,to=98;43)">post.tex</phrase> that will be prepended and appended to the
+modules to make them into complete files TeX files that can be converted. The last
+<!-- %**** paper.tex Line 100 **** -->three lines just include the Makefiles from the <phrase xml:id="intro.p5.p4.p1.p3.p6" about="#intro.p5.p4.p1.p3.p6" stex:srcref="paper.tex#textrange(from=99;32,to=100;56)">sTeX</phrase> distribution and configure the
+default make target (<phrase class="code" xml:id="intro.p5.p4.p1.p3.p7" about="#intro.p5.p4.p1.p3.p7" stex:srcref="paper.tex#textrange(from=100;31,to=101;40)">make all</phrase>) to be produce the pdf version
+</p>
+ <p xml:id="intro.p5.p4.p1.p4" about="#intro.p5.p4.p1.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Note that in the directory <phrase class="code" xml:id="intro.p5.p4.p1.p4.p1" about="#intro.p5.p4.p1.p4.p1" stex:srcref="paper.tex#textrange(from=102;36,to=103;49)">background</phrase> we have a very similar Makefile as
+above. The only differences are that the variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">STEXDIR</text> is adapted and
+that the <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">BUTFILE</text> variable is set to <phrase class="code" xml:id="intro.p5.p4.p1.p4.p2" about="#intro.p5.p4.p1.p4.p2" stex:srcref="paper.tex#textrange(from=104;5,to=105;69)">pre.tex</phrase> and
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p3" about="#intro.p5.p4.p1.p4.p3" stex:srcref="paper.tex#textrange(from=105;51,to=106;20)">post.tex</phrase>, so that they are not converted. In the directory
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p4" about="#intro.p5.p4.p1.p4.p4" stex:srcref="paper.tex#textrange(from=106;56,to=107;22)">background</phrase> we have followed good practice by establishing a phony
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="sec.math" about="#sec.math" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">
+ <metadata xml:id="sec.math.p1" about="#sec.math.p1" stex:srcref="paper.tex#textrange(from=112;0,to=112;50)">
+ <dc:title stex:srcref="paper.tex#textrange(from=112;0,to=116;13)" xml:id="sec.math.p1.p1" about="#sec.math.p1.p1">
+ <p xml:id="sec.math.p1.p1.p1" about="#sec.math.p1.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">Mathematical Content</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="sec.math.p2" about="#sec.math.p2" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <CMP xml:id="sec.math.p2.p1" about="#sec.math.p2.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <p xml:id="sec.math.p2.p1.p1" about="#sec.math.p2.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">We present some standard mathematical definitions, here from calculus.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="continuous.m1" text="C ^ 0 * open-interval@(arg:1, arg:2)">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="times" role="MULOP">⁢</XMTok>
+ <XMApp>
+ <XMTok role="SUPERSCRIPTOP" scriptpos="post6"/>
+ <XMTok role="UNKNOWN" possibleFunction="yes" font="caligraphic">C</XMTok>
+ <XMTok meaning="0" role="NUMBER">0</XMTok>
+ </XMApp>
+ <XMApp>
+ <XMTok meaning="open-interval" role="FENCED" argclose=")" argopen="(" separators=","/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">continuous</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m2" text="inset@(x, RealNumbers)"><XMath><XMApp><XMTok meaning="inset" name="inset" omcd="functions"/><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="continuous.p5.p1.p1.m3" text="epsilon &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="continuous.p5.p1.p1.m4" text="delta &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{f(x)-f(y)}&lt;\epsilon" xml:id="continuous.p5.p1.p1.m5" text="absval@(f * x - f * y) less epsilon"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">x</XMTok></XMApp><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok></XMApp></XMath></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="continuous.p5.p1.p1.m6" text="absval@(x - y) less delta"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok></XMApp></XMath></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="differentiable.m1" text="C ^ 1 * open-interval@(arg:1, arg:2)">
+ <XMath>
+ <XMApp>
+ <XMTok meaning="times" role="MULOP">⁢</XMTok>
+ <XMApp>
+ <XMTok role="SUPERSCRIPTOP" scriptpos="post6"/>
+ <XMTok role="UNKNOWN" possibleFunction="yes" font="caligraphic">C</XMTok>
+ <XMTok meaning="1" role="NUMBER">1</XMTok>
+ </XMApp>
+ <XMApp>
+ <XMTok meaning="open-interval" role="FENCED" argclose=")" argopen="(" separators=","/>
+ <XMTok role="ID">arg:1</XMTok>
+ <XMTok role="ID">arg:2</XMTok>
+ </XMApp>
+ </XMApp>
+ </XMath>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><XMath><XMApp><XMTok meaning="fun" name="fun" omcd="functions"/><XMTok role="UNKNOWN" font="italic">f</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">differentiable</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m2" text="inset@(x, RealNumbers)"><XMath><XMApp><XMTok meaning="inset" name="inset" omcd="functions"/><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok meaning="RealNumbers" name="RealNumbers" omcd="reals"/></XMApp></XMath></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="differentiable.p4.p1.p1.m3" text="epsilon &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="differentiable.p4.p1.p1.m4" text="delta &gt; 0"><XMath><XMApp><XMTok meaning="greater-than" role="RELOP">&gt;</XMTok><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok><XMTok meaning="0" role="NUMBER">0</XMTok></XMApp></XMath></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\rfrac{\absval{f(x)-f(y)}}{\absval{x-y}}&lt;\epsilon" xml:id="differentiable.p4.p1.p1.m5" text="rfrac@(absval@(f * x - f * y), absval@(x - y)) less epsilon"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="rfrac" name="rfrac" omcd="reals"/><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">x</XMTok></XMApp><XMApp><XMTok meaning="times" role="MULOP">⁢</XMTok><XMTok role="UNKNOWN" possibleFunction="yes" font="italic">f</XMTok><XMTok role="UNKNOWN" open="(" close=")" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp></XMApp><XMTok name="epsilon" role="UNKNOWN" font="italic">ϵ</XMTok></XMApp></XMath></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="differentiable.p4.p1.p1.m6" text="absval@(x - y) less delta"><XMath><XMApp><XMTok meaning="less-than" role="RELOP">&lt;</XMTok><XMApp><XMTok meaning="absval" name="absval" omcd="reals"/><XMApp><XMTok meaning="minus" role="ADDOP">-</XMTok><XMTok role="UNKNOWN" font="italic">x</XMTok><XMTok role="UNKNOWN" font="italic">y</XMTok></XMApp></XMApp><XMTok name="delta" role="UNKNOWN" font="italic">δ</XMTok></XMApp></XMath></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="concl" about="#concl" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <metadata xml:id="concl.p1" about="#concl.p1" stex:srcref="paper.tex#textrange(from=118;0,to=118;37)">
+ <dc:title stex:srcref="paper.tex#textrange(from=118;0,to=121;13)" xml:id="concl.p1.p1" about="#concl.p1.p1">
+ <p xml:id="concl.p1.p1.p1" about="#concl.p1.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">Conclusion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="concl.p2" about="#concl.p2" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <CMP xml:id="concl.p2.p1" about="#concl.p2.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <p xml:id="concl.p2.p1.p1" about="#concl.p2.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">In this note we have given an example of standard mathematical markup and shown how a a
+<phrase xml:id="concl.p2.p1.p1.p1" about="#concl.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=119;42,to=120;8)">sTeX</phrase> collection can be set up for automation.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <bibliography xmlns="http://dlmf.nist.gov/LaTeXML" files="kwarc" xml:id="bib">
+ <title>References</title>
+ </bibliography>
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml.log
new file mode 100644
index 00000000000..c1af622d49a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.tex.xml.log
@@ -0,0 +1,146 @@
+
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/TeX.pool.ltxml... 0.16 sec)
+
+(Digesting /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/example/paper/paper...
+(Processing paper.tex...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/LaTeX.pool.ltxml... 0.13 sec)
+(Loading ../../sty/omdoc/omdoc.cls.ltxml...
+Warning:perl:warn Subroutine xmlBase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.cls.ltxml line 33
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/article.cls.ltxml... 0.02 sec)
+(Loading ../../sty/sref/sref.sty.ltxml...
+(Loading ../../sty/omd/omd.sty.ltxml... 0.00 sec) 0.03 sec)
+(Loading ../../sty/omdoc/omdoc.sty.ltxml...
+Warning:perl:warn Subroutine omdocColorMacro redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omdoc/omdoc.sty.ltxml line 90
+(Loading ../../sty/omtext/omtext.sty.ltxml...
+Warning:perl:warn Subroutine useCMPItemizations redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 30
+Warning:perl:warn Subroutine DefCMPEnvironment redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 58
+Warning:perl:warn Subroutine DefCMPConstructor redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 65
+Warning:perl:warn Subroutine numberIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 218
+Warning:perl:warn Subroutine locateIt redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/omtext/omtext.sty.ltxml line 233 0.04 sec) 0.08 sec) 0.21 sec)
+(Loading ../../sty/stex.sty.ltxml...
+(Loading ../../sty/stex-logo.sty.ltxml... 0.01 sec)
+(Loading ../../sty/modules/modules.sty.ltxml...
+Warning:perl:warn Subroutine use_module redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 48
+Warning:perl:warn Subroutine omext redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 63
+Warning:perl:warn Subroutine importmoduleI redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 74
+Warning:perl:warn Subroutine symdef_presentation_pmml redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 375
+Warning:perl:warn Subroutine getSymmdefProperties redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 389
+Warning:perl:warn Subroutine get_cd redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 412
+Warning:perl:warn Subroutine symdef_presentation_TeX redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/modules/modules.sty.ltxml line 463 0.02 sec)
+(Loading ../../sty/statements/statements.sty.ltxml...
+Warning:perl:warn Subroutine lowcase redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 7
+Warning:perl:warn Subroutine dashed redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 8
+Warning:perl:warn Subroutine makeNCName redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 9
+Warning:perl:warn Subroutine simple_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 17
+Warning:perl:warn Subroutine hash_wrapper redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 25
+Warning:perl:warn Subroutine declareFunctions redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 33
+Warning:perl:warn Subroutine definitionBody redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/statements/statements.sty.ltxml line 75 0.05 sec)
+(Loading ../../sty/sproof/sproof.sty.ltxml...
+Warning:perl:warn Subroutine extractBodyText redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/sproof/sproof.sty.ltxml line 65 0.03 sec)
+(Loading ../../sty/presentation/presentation.sty.ltxml...
+Warning:perl:warn Subroutine argument_precedence redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 57
+Warning:perl:warn Subroutine applyPrecedencePreferences redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 71
+Warning:perl:warn Subroutine cvar_id redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/presentation/presentation.sty.ltxml line 303 0.02 sec)
+(Loading ../../sty/dcm/dcm.sty.ltxml...
+Warning:perl:warn Subroutine getKeyValue_noDelim redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 7
+Warning:perl:warn Subroutine ExportMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 13
+Warning:perl:warn Subroutine FishOutMetadata redefined at /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52.
+In Gullet[@0x102619b70] /Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52
+/Users/kohlhase/vc/svn/kwarc.info/stex-content/stex/sty/dcm/dcm.sty.ltxml line 52 0.03 sec) 0.28 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amssymb.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/amsfonts.sty.ltxml... 0.01 sec) 0.07 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/alltt.sty.ltxml... 0.04 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/hyperref.sty.ltxml...
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/url.sty.ltxml... 0.01 sec) 0.03 sec)
+(Loading ../../../../../../../../../opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml...
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/listings.cfg...[#25] 0.07 sec)
+Info: expected:lstlang0.sty Couldn't find config file lstlang0.sty
+In Gullet[@0x102619b70] /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml line 1178
+/opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Package/listings.sty.ltxml line 1178
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang1.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525] 1.35 sec)
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang2.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525] 1.25 sec)
+(Style ../../../../../../../../../usr/local/texlive/2009/texmf-dist/tex/latex/listings/lstlang3.sty...[#25][#50][#75][#100][#125][#150][#175][#200][#225][#250][#275][#300][#325][#350][#375][#400][#425][#450][#475][#500][#525][#550][#575][#600][#625][#650][#675][#700][#725][#750][#775][#800][#825][#850][#875][#900][#925][#950][#975][#1000][#1025][#1050][#1075][#1100][#1125][#1150][#1175][#1200][#1225][#1250][#1275][#1300][#1325][#1350][#1375][#1400][#1425][#1450][#1475][#1500][#1525][#1550] 1.29 sec) 5.46 sec)[#25][#50][#75][#100]
+(Processing continuous.tex...
+(Processing ../background/functions.sms... 0.01 sec)
+(Processing ../background/reals.sms... 0.01 sec) 0.13 sec)
+(Processing differentiable.tex... 0.03 sec) 6.98 sec) 7.02 sec)
+(Building...
+(Loading RelaxNG omdoc+ltxml...
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.openmath.org/OpenMath"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName ns=""/><nsName ns="http://www.w3.org/XML/1998/namespace"/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311.
+Warning:perl:warn RelaxNG: treating <anyName><except><nsName/></except></anyName> as ANY at /opt/local/lib/perl5/site_perl/5.8.9/LaTeXML/Model/RelaxNG.pm line 311. 1.77 sec)................. 2.20 sec)
+(Rewriting... 0.00 sec)
+(Math Parsing...14 formulae ...[1][2][3][4][5][6][7][8][9][10][11][12][13][14]
+Math parsing succeeded:
+ ltx:XMArg: 19/19
+ ltx:XMath: 14/14
+Symbols assumed as simple identifiers (with # of occurences):
+ 'C{caligraphic}' (2), 'delta' (4), 'epsilon' (4), 'f{italic}' (4), 'x{italic}' (5), 'y{italic}' (5)
+Possibly used as functions?
+ 'C{caligraphic}' (2/2 usages), 'f{italic}' (4/4 usages)
+ 0.27 sec)
+(Finalizing... 0.02 sec)
+Conversion complete: 40 warnings.
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.thm b/Master/texmf-dist/doc/latex/stex/example/paper/paper.thm
new file mode 100644
index 00000000000..b1323b67308
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.thm
@@ -0,0 +1,2 @@
+\contentsline {STdefinitionEnv}{{\st@definition@kw }{1}{}}{3}{STtheoremAssEnv.1}
+\contentsline {STdefinitionEnv}{{\st@definition@kw }{2}{}}{3}{STtheoremAssEnv.2}
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml b/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml
new file mode 100644
index 00000000000..dd8df314aba
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml
@@ -0,0 +1,455 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?latexml searchpaths=".,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc,/Users/kohlhase/stc/stex/example/background,../../sty,../../rnc,../../rnc/omdoc,../../sty/modules,../../sty/statements,../../sty/sproof,../../sty/omtext,../../sty/omdoc,../../sty/sref,../../sty/presentation,../../sty/dcm,../../sty/reqdoc,../../sty/omd,../../sty/mikoslides,../../sty/problem,../../sty/assignment,../../sty/etc"?>
+<?latexml class="omdoc"?>
+<?latexml package="stex,amssymb"?>
+<?latexml package="alltt"?>
+<?latexml package="hyperref"?>
+<?latexml package="listings"?>
+<!-- %% defining the author metadata -->
+<?latexml RelaxNGSchema="omdoc+ltxml"?>
+<omdoc xmlns="http://omdoc.org/ns" xmlns:stex="http://kwarc.info/ns/sTeX" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:om="http://www.openmath.org/OpenMath" xmlns:omdoc="http://omdoc.org/ns" xmlns:m="http://www.w3.org/1998/Math/MathML" stex:srcref="paper.tex#textrange(from=15;1,to=15;17)" xml:id="paper.omdoc">
+ <!-- %metadata and title page -->
+ <metadata xml:id="paper.omdoc.p1" about="#paper.omdoc.p1" stex:srcref="paper.tex#textrange(from=18;0,to=25;16)">
+ <dc:creator xml:id="paper.omdoc.p1.p1" about="#paper.omdoc.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">
+ <p xml:id="paper.omdoc.p1.p1.p1" about="#paper.omdoc.p1.p1.p1" stex:srcref="paper.tex#textrange(from=19;0,to=19;20)">Michael Kohlhase</p>
+ </dc:creator>
+ <dc:rights xml:id="paper.omdoc.p1.p2" about="#paper.omdoc.p1.p2" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">
+ <p xml:id="paper.omdoc.p1.p2.p1" about="#paper.omdoc.p1.p2.p1" stex:srcref="paper.tex#textrange(from=20;0,to=20;49)">Copyright (c) 2009 Michael Kohlhase</p>
+ </dc:rights>
+ <dc:title xml:id="paper.omdoc.p1.p3" about="#paper.omdoc.p1.p3" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">
+ <p xml:id="paper.omdoc.p1.p3.p1" about="#paper.omdoc.p1.p3.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">An example of semantic Markup in <phrase xml:id="paper.omdoc.p1.p3.p1.p1" about="#paper.omdoc.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=21;0,to=21;53)">sTeX</phrase></p>
+ </dc:title>
+ <dc:description xml:id="paper.omdoc.p1.p4" about="#paper.omdoc.p1.p4" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">
+ <p xml:id="paper.omdoc.p1.p4.p1" about="#paper.omdoc.p1.p4.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">In this note we give an example of semantic markup in <phrase xml:id="paper.omdoc.p1.p4.p1.p1" about="#paper.omdoc.p1.p4.p1.p1" stex:srcref="paper.tex#textrange(from=24;0,to=24;40)">sTeX</phrase>:
+Continuous and differentiable functions are introduced using real numbers, sets and
+functions as an assumed background.</p>
+ </dc:description>
+ <!-- %**** paper.tex Line 25 **** -->
+ </metadata>
+ <omgroup layout="sectioning" xml:id="intro" about="#intro" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">
+ <metadata xml:id="intro.p1" about="#intro.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">
+ <dc:title stex:srcref="paper.tex#textrange(from=27;0,to=110;13)" xml:id="intro.p1.p1" about="#intro.p1.p1">
+ <p xml:id="intro.p1.p1.p1" about="#intro.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=110;13)">Introduction</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p2" about="#intro.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <CMP xml:id="intro.p2.p1" about="#intro.p2.p1" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">
+ <p xml:id="intro.p2.p1.p1" about="#intro.p2.p1.p1" stex:srcref="paper.tex#textrange(from=27;0,to=27;39)">We will show how to semantically mark up mathematics in the <phrase xml:id="intro.p2.p1.p1.p1" about="#intro.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=27;1,to=28;68)">sTeX</phrase>
+format <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:ulsmf08" separator="," show="Number" yyseparator=","/>]</cite> and how to convert it into
+OMDoc <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:omdoc1.3" separator="," show="Number" yyseparator=","/>]</cite>.
+</p>
+ <p xml:id="intro.p2.p1.p2" about="#intro.p2.p1.p2" stex:srcref="paper.tex#textrange(from=27;0,to=63;13)">We have some mathematical material in Section <ref type="cite" xref="sec.math" xml:id="intro.p2.p1.p2.p1" about="#intro.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=31;29,to=32;56)"/> which will serve as example
+content. In the rest of this section we will explain the setup of the example and
+present an approach to automation of the OMDoc conversion via Unix Makefiles.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="intro.p3" about="#intro.p3" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">
+ <metadata xml:id="intro.p3.p1" about="#intro.p3.p1" stex:srcref="paper.tex#textrange(from=35;0,to=62;13)">
+ <dc:title stex:srcref="paper.tex#textrange(from=35;0,to=63;13)" xml:id="intro.p3.p1.p1" about="#intro.p3.p1.p1">
+ <p xml:id="intro.p3.p1.p1.p1" about="#intro.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=35;0,to=63;13)">The Setup</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="setup" about="#setup" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <symbol name="target" xml:id="target.def.sym" about="#target.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <symbol name="module" xml:id="module.def.sym" about="#module.def.sym" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)"/>
+ <definition for="target module" xml:id="setup.p3" about="#setup.p3" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <CMP xml:id="setup.p3.p1" about="#setup.p3.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+ <p xml:id="setup.p3.p1.p1" about="#setup.p3.p1.p1" stex:srcref="paper.tex#textrange(from=37;0,to=44;20)">
+The source of this note is contained in the file <phrase class="code" xml:id="setup.p3.p1.p1.p1" about="#setup.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=37;13,to=38;74)">paper.tex</phrase>. We call it
+the <idx xml:id="setup.p3.p1.p1.p2" about="#setup.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)"><idt><term cd="setup" name="target" role="definiendum" xml:id="setup.p3.p1.p1.p2.p1" about="#setup.p3.p1.p1.p2.p1" stex:srcref="paper.tex#textrange(from=38;59,to=39;25)">target</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">target</text></idp></ide></idx>, since formatting it with LaTeX will generate the main
+document. The content in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p3.p1.p1.p3" about="#setup.p3.p1.p1.p3" stex:srcref="paper.tex#textrange(from=39;33,to=40;52)"/> and Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p3.p1.p1.p4" about="#setup.p3.p1.p1.p4" stex:srcref="paper.tex#textrange(from=39;1,to=40;84)"/>
+comes from included files <phrase class="code" xml:id="setup.p3.p1.p1.p5" about="#setup.p3.p1.p1.p5" stex:srcref="paper.tex#textrange(from=40;5,to=41;56)">continuous.tex</phrase> and
+<phrase class="code" xml:id="setup.p3.p1.p1.p6" about="#setup.p3.p1.p1.p6" stex:srcref="paper.tex#textrange(from=41;54,to=42;34)">differentiable.tex</phrase>, we will call them <idx xml:id="setup.p3.p1.p1.p7" about="#setup.p3.p1.p1.p7" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)"><idt><term cd="setup" name="module" role="definiendum" xml:id="setup.p3.p1.p1.p7.p1" about="#setup.p3.p1.p1.p7.p1" stex:srcref="paper.tex#textrange(from=41;18,to=42;70)">module</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">module</text></idp></ide></idx>s, since they may
+be used (i.e. included) by other target documents as well.
+</p>
+ </CMP>
+ </definition>
+ <omtext xml:id="setup.p4" about="#setup.p4" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <CMP xml:id="setup.p4.p1" about="#setup.p4.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">
+ <p xml:id="setup.p4.p1.p1" about="#setup.p4.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=54;19)">As the modules are built for inclusion into other documents, they are not
+self-contained:
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="enumerate" xml:id="I1" about="#I1" stex:srcref="paper.tex#textrange(from=47;0,to=54;19)">
+ <omtext xml:id="I1.p1" about="#I1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <CMP xml:id="I1.p1.p1" about="#I1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">
+ <p xml:id="I1.p1.p1.p1" about="#I1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=47;42,to=48;11)">they do not contain a LaTeX preamble and
+<verbatim xmlns="http://dlmf.nist.gov/LaTeXML" font="typewriter">\begin</verbatim>/<verbatim xmlns="http://dlmf.nist.gov/LaTeXML" font="typewriter">\end{document}</verbatim>, and
+<!-- %**** paper.tex Line 50 **** --></p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p2" about="#I1.p2" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <CMP xml:id="I1.p2.p1" about="#I1.p2.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">
+ <p xml:id="I1.p2.p1.p1" about="#I1.p2.p1.p1" stex:srcref="paper.tex#textrange(from=49;76,to=50;11)">they may depend on other modules, whose semantic macros they need to include,
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I1.p3" about="#I1.p3" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <CMP xml:id="I1.p3.p1" about="#I1.p3.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">
+ <p xml:id="I1.p3.p1.p1" about="#I1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=50;75,to=51;11)">to facilitate this a module file <phrase class="code" xml:id="I1.p3.p1.p1.p1" about="#I1.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=50;25,to=51;61)">modf.tex</phrase> comes with a “semantic
+macro short form” <phrase class="code" xml:id="I1.p3.p1.p1.p2" about="#I1.p3.p1.p1.p2" stex:srcref="paper.tex#textrange(from=51;41,to=52;43)">modf.sms</phrase> that can be included without generating
+output in the PDF.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <symbol name="background-module" xml:id="background-module.def.sym"/>
+ <omtext xml:id="setup.p6" about="#setup.p6" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <CMP xml:id="setup.p6.p1" about="#setup.p6.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">
+ <p xml:id="setup.p6.p1.p1" about="#setup.p6.p1.p1" stex:srcref="paper.tex#textrange(from=36;0,to=62;13)">this will have consequences for the automation. Concretely, the module on
+differentiable functions in Section <ref type="cite" xref="sec.differentiable" xml:id="setup.p6.p1.p1.p1" about="#setup.p6.p1.p1.p1" stex:srcref="paper.tex#textrange(from=55;32,to=56;58)"/> depends on that for continuous
+functions in Section <ref type="cite" xref="sec.contfuncs" xml:id="setup.p6.p1.p1.p2" about="#setup.p6.p1.p1.p2" stex:srcref="paper.tex#textrange(from=56;51,to=57;38)"/>. Both of them depend on modules for real numbers,
+sets and functions that we do not want to cover in this note. <phrase for="background-module" type="inlinedef" xml:id="setup.p6.p1.p1.p3" about="#setup.p6.p1.p1.p3" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">We assume that
+they have already been marked up with the same methods as we describe here and are
+accessible to us and call them <idx xml:id="setup.p6.p1.p1.p3.p1" about="#setup.p6.p1.p1.p3.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)"><idt><term cd="setup" name="background-module" role="definiendum" xml:id="setup.p6.p1.p1.p3.p1.p1" about="#setup.p6.p1.p1.p3.p1.p1" stex:srcref="paper.tex#textrange(from=59;17,to=60;69)">background module</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">background</text></idp><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">module</text></idp></ide></idx>s</phrase>. In our setup we
+keep them in the subdirectory <phrase class="code" xml:id="setup.p6.p1.p1.p4" about="#setup.p6.p1.p1.p4" stex:srcref="paper.tex#textrange(from=60;2,to=61;54)">background</phrase>.
+</p>
+ </CMP>
+ </omtext>
+ </theory>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="intro.p4" about="#intro.p4" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <metadata xml:id="intro.p4.p1" about="#intro.p4.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">
+ <dc:title stex:srcref="paper.tex#textrange(from=65;0,to=73;13)" xml:id="intro.p4.p1.p1" about="#intro.p4.p1.p1">
+ <p xml:id="intro.p4.p1.p1.p1" about="#intro.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">Formatting and OMDoc conversion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p4.p2" about="#intro.p4.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <CMP xml:id="intro.p4.p2.p1" about="#intro.p4.p2.p1" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">
+ <p xml:id="intro.p4.p2.p1.p1" about="#intro.p4.p2.p1.p1" stex:srcref="paper.tex#textrange(from=65;0,to=65;51)">To format an <phrase xml:id="intro.p4.p2.p1.p1.p1" about="#intro.p4.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=65;68,to=66;21)">sTeX</phrase> document — i.e. to produce a PDF file from the <phrase xml:id="intro.p4.p2.p1.p1.p2" about="#intro.p4.p2.p1.p1.p2" stex:srcref="paper.tex#textrange(from=65;11,to=66;78)">sTeX</phrase> marked-up
+sources — we only need to run the <phrase class="code" xml:id="intro.p4.p2.p1.p1.p3" about="#intro.p4.p2.p1.p1.p3" stex:srcref="paper.tex#textrange(from=66;34,to=67;56)">pdflatex</phrase> program over the target document
+— assuming that all modules (regular or background) have semantic macro short forms.
+</p>
+ <p xml:id="intro.p4.p2.p1.p2" about="#intro.p4.p2.p1.p2" stex:srcref="paper.tex#textrange(from=65;0,to=73;13)">To convert an <phrase xml:id="intro.p4.p2.p1.p2.p1" about="#intro.p4.p2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=69;66,to=70;22)">sTeX</phrase> document to OMDoc, we need to run <phrase class="code" xml:id="intro.p4.p2.p1.p2.p2" about="#intro.p4.p2.p1.p2.p2" stex:srcref="paper.tex#textrange(from=69;10,to=70;78)">latexml</phrase> over it,
+post-process the result by <phrase class="code" xml:id="intro.p4.p2.p1.p2.p3" about="#intro.p4.p2.p1.p2.p3" stex:srcref="paper.tex#textrange(from=70;41,to=71;50)">latexmlpost</phrase>, and finally massage away all remaining
+LaTeXML islands with a stylesheet, see  <cite xmlns="http://dlmf.nist.gov/LaTeXML">[<bibref bibrefs="kohlhase:ssmtl*" separator="," show="Number" yyseparator=","/>]</cite> for details.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <!-- %**** paper.tex Line 75 **** -->
+ <omgroup layout="sectioning" xml:id="intro.p5" about="#intro.p5" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <metadata xml:id="intro.p5.p1" about="#intro.p5.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">
+ <dc:title stex:srcref="paper.tex#textrange(from=75;0,to=108;13)" xml:id="intro.p5.p1.p1" about="#intro.p5.p1.p1">
+ <p xml:id="intro.p5.p1.p1.p1" about="#intro.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Makefile-based Automation</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="intro.p5.p2" about="#intro.p5.p2" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <CMP xml:id="intro.p5.p2.p1" about="#intro.p5.p2.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">
+ <p xml:id="intro.p5.p2.p1.p1" about="#intro.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=87;19)">As the conversion to OMDoc is rather complex (the programs in the three steps take a
+variety of options), we support an automation by Unix Makefiles. There are three main
+<phrase class="code" xml:id="intro.p5.p2.p1.p1.p1" about="#intro.p5.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=77;10,to=78;16)">make</phrase> targets.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="description" xml:id="I2" about="#I2" stex:srcref="paper.tex#textrange(from=79;0,to=87;19)">
+ <omtext xml:id="I2.p1" about="#I2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <metadata xml:id="I2.p1.p1" about="#I2.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <dc:title xml:id="I2.p1.p1.p1" about="#I2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <phrase class="code" xml:id="I2.p1.p1.p1.p1.p1" about="#I2.p1.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">make omdoc</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p1.p2" about="#I2.p1.p2" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">
+ <p xml:id="I2.p1.p2.p1" about="#I2.p1.p2.p1" stex:srcref="paper.tex#textrange(from=79;53,to=80;31)">will trigger the OMDoc transformation of the target
+document.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p2" about="#I2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <metadata xml:id="I2.p2.p1" about="#I2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <dc:title xml:id="I2.p2.p1.p1" about="#I2.p2.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p1.p1.p1" about="#I2.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <phrase class="code" xml:id="I2.p2.p1.p1.p1.p1" about="#I2.p2.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">make mods</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p2.p2" about="#I2.p2.p2" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">
+ <p xml:id="I2.p2.p2.p1" about="#I2.p2.p2.p1" stex:srcref="paper.tex#textrange(from=81;55,to=82;31)">will trigger the OMDoc transformation of the modules.
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p3" about="#I2.p3" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <metadata xml:id="I2.p3.p1" about="#I2.p3.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <dc:title xml:id="I2.p3.p1.p1" about="#I2.p3.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p1.p1.p1" about="#I2.p3.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <phrase class="code" xml:id="I2.p3.p1.p1.p1.p1" about="#I2.p3.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">make pdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p3.p2" about="#I2.p3.p2" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">
+ <p xml:id="I2.p3.p2.p1" about="#I2.p3.p2.p1" stex:srcref="paper.tex#textrange(from=82;46,to=83;30)">will trigger the LaTeX formatting the target
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p4" about="#I2.p4" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <metadata xml:id="I2.p4.p1" about="#I2.p4.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <dc:title xml:id="I2.p4.p1.p1" about="#I2.p4.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p1.p1.p1" about="#I2.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <phrase class="code" xml:id="I2.p4.p1.p1.p1.p1" about="#I2.p4.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">make mpdf</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p4.p2" about="#I2.p4.p2" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">
+ <p xml:id="I2.p4.p2.p1" about="#I2.p4.p2.p1" stex:srcref="paper.tex#textrange(from=83;47,to=84;31)">will trigger the LaTeX formatting the modules
+</p>
+ </CMP>
+ </omtext>
+ <omtext xml:id="I2.p5" about="#I2.p5" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <metadata xml:id="I2.p5.p1" about="#I2.p5.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <dc:title xml:id="I2.p5.p1.p1" about="#I2.p5.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p1.p1.p1" about="#I2.p5.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <phrase class="code" xml:id="I2.p5.p1.p1.p1.p1" about="#I2.p5.p1.p1.p1.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">make sms</phrase>
+ </p>
+ </dc:title>
+ </metadata>
+ <CMP xml:id="I2.p5.p2" about="#I2.p5.p2" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">
+ <p xml:id="I2.p5.p2.p1" about="#I2.p5.p2.p1" stex:srcref="paper.tex#textrange(from=84;57,to=85;30)">will trigger the re-generation of all semantic macro short
+forms of modules (this is implicitly called in all the other <phrase class="code" xml:id="I2.p5.p2.p1.p1" about="#I2.p5.p2.p1.p1" stex:srcref="paper.tex#textrange(from=85;10,to=86;79)">make</phrase> targets)
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <omtext xml:id="intro.p5.p4" about="#intro.p5.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <CMP xml:id="intro.p5.p4.p1" about="#intro.p5.p4.p1" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">
+ <p xml:id="intro.p5.p4.p1.p1" about="#intro.p5.p4.p1.p1" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">To use this, we need to set up a <phrase class="code" xml:id="intro.p5.p4.p1.p1.p1" about="#intro.p5.p4.p1.p1.p1" stex:srcref="paper.tex#textrange(from=87;24,to=88;55)">Makefile</phrase> of the following form:
+</p>
+ <listingblock xmlns="http://dlmf.nist.gov/LaTeXML" class="language_make" xml:id="LSTx1">
+ <tabular xml:id="LSTx1.p1" about="#LSTx1.p1">
+ <tr xml:id="LSTx1.p1.p1" about="#LSTx1.p1.p1">
+ <td class="linenumber" xml:id="LSTx1.p1.p1.p1" about="#LSTx1.p1.p1.p1"/>
+ <td xml:id="LSTx1.p1.p1.p2" about="#LSTx1.p1.p1.p2">
+ <text class="lstline">STEXDIR<text class="lstspace"> </text>=<text class="lstspace"> </text>../..</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p2" about="#LSTx1.p1.p2">
+ <td class="linenumber" xml:id="LSTx1.p1.p2.p1" about="#LSTx1.p1.p2.p1">2</td>
+ <td xml:id="LSTx1.p1.p2.p2" about="#LSTx1.p1.p2.p2">
+ <text class="lstline">TARGET<text class="lstspace"> </text>=<text class="lstspace"> </text>paper.tex</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p3" about="#LSTx1.p1.p3">
+ <td class="linenumber" xml:id="LSTx1.p1.p3.p1" about="#LSTx1.p1.p3.p1"/>
+ <td xml:id="LSTx1.p1.p3.p2" about="#LSTx1.p1.p3.p2">
+ <text class="lstline">MODSLIBDIR<text class="lstspace"> </text>=<text class="lstspace"> </text>../background</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p4" about="#LSTx1.p1.p4">
+ <td class="linenumber" xml:id="LSTx1.p1.p4.p1" about="#LSTx1.p1.p4.p1">4</td>
+ <td xml:id="LSTx1.p1.p4.p2" about="#LSTx1.p1.p4.p2">
+ <text class="lstline"/>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p5" about="#LSTx1.p1.p5">
+ <td class="linenumber" xml:id="LSTx1.p1.p5.p1" about="#LSTx1.p1.p5.p1"/>
+ <td xml:id="LSTx1.p1.p5.p2" about="#LSTx1.p1.p5.p2">
+ <text class="lstline">include<text class="lstspace"> </text>$(STEXDIR)/make/Makefile.vars</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p6" about="#LSTx1.p1.p6">
+ <td class="linenumber" xml:id="LSTx1.p1.p6.p1" about="#LSTx1.p1.p6.p1">6</td>
+ <td xml:id="LSTx1.p1.p6.p2" about="#LSTx1.p1.p6.p2">
+ <text class="lstline">all:<text class="lstspace"> </text>omdoc<text class="lstspace"> </text>mods<text class="lstspace"> </text>pdf</text>
+ </td>
+ </tr>
+ <tr xml:id="LSTx1.p1.p7" about="#LSTx1.p1.p7">
+ <td class="linenumber" xml:id="LSTx1.p1.p7.p1" about="#LSTx1.p1.p7.p1"/>
+ <td xml:id="LSTx1.p1.p7.p2" about="#LSTx1.p1.p7.p2">
+ <text class="lstline">include<text class="lstspace"> </text>$(STEXDIR)/make/Makefile.in</text>
+ </td>
+ </tr>
+ </tabular>
+ </listingblock>
+ <p xml:id="intro.p5.p4.p1.p3" about="#intro.p5.p4.p1.p3" stex:srcref="paper.tex#textrange(from=75;0,to=75;42)">The variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">STEXDIR</text> has to be set to the main directory of the <phrase xml:id="intro.p5.p4.p1.p3.p1" about="#intro.p5.p4.p1.p3.p1" stex:srcref="paper.tex#textrange(from=92;1,to=93;86)">sTeX</phrase>
+distribution. The variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">TARGET</text> specifies the target document (all other
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p2" about="#intro.p5.p4.p1.p3.p2" stex:srcref="paper.tex#textrange(from=94;73,to=95;17)">*.tex</phrase> files that are not excluded in the <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">BUTFILES</text> variables are
+considered as modules). Here, the <phrase class="code" xml:id="intro.p5.p4.p1.p3.p3" about="#intro.p5.p4.p1.p3.p3" stex:srcref="paper.tex#textrange(from=95;32,to=96;56)">background</phrase> directory for convenience. The
+<text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">MODSLIBDIR</text> specifies the location of the prefix and postfix files
+<phrase class="code" xml:id="intro.p5.p4.p1.p3.p4" about="#intro.p5.p4.p1.p3.p4" stex:srcref="paper.tex#textrange(from=97;68,to=98;19)">pre.tex</phrase> and <phrase class="code" xml:id="intro.p5.p4.p1.p3.p5" about="#intro.p5.p4.p1.p3.p5" stex:srcref="paper.tex#textrange(from=97;44,to=98;43)">post.tex</phrase> that will be prepended and appended to the
+modules to make them into complete files TeX files that can be converted. The last
+<!-- %**** paper.tex Line 100 **** -->three lines just include the Makefiles from the <phrase xml:id="intro.p5.p4.p1.p3.p6" about="#intro.p5.p4.p1.p3.p6" stex:srcref="paper.tex#textrange(from=99;32,to=100;56)">sTeX</phrase> distribution and configure the
+default make target (<phrase class="code" xml:id="intro.p5.p4.p1.p3.p7" about="#intro.p5.p4.p1.p3.p7" stex:srcref="paper.tex#textrange(from=100;31,to=101;40)">make all</phrase>) to be produce the pdf version
+</p>
+ <p xml:id="intro.p5.p4.p1.p4" about="#intro.p5.p4.p1.p4" stex:srcref="paper.tex#textrange(from=75;0,to=108;13)">Note that in the directory <phrase class="code" xml:id="intro.p5.p4.p1.p4.p1" about="#intro.p5.p4.p1.p4.p1" stex:srcref="paper.tex#textrange(from=102;36,to=103;49)">background</phrase> we have a very similar Makefile as
+above. The only differences are that the variable <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">STEXDIR</text> is adapted and
+that the <text xmlns="http://dlmf.nist.gov/LaTeXML" class="listing ">BUTFILE</text> variable is set to <phrase class="code" xml:id="intro.p5.p4.p1.p4.p2" about="#intro.p5.p4.p1.p4.p2" stex:srcref="paper.tex#textrange(from=104;5,to=105;69)">pre.tex</phrase> and
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p3" about="#intro.p5.p4.p1.p4.p3" stex:srcref="paper.tex#textrange(from=105;51,to=106;20)">post.tex</phrase>, so that they are not converted. In the directory
+<phrase class="code" xml:id="intro.p5.p4.p1.p4.p4" about="#intro.p5.p4.p1.p4.p4" stex:srcref="paper.tex#textrange(from=106;56,to=107;22)">background</phrase> we have followed good practice by establishing a phony
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="sec.math" about="#sec.math" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">
+ <metadata xml:id="sec.math.p1" about="#sec.math.p1" stex:srcref="paper.tex#textrange(from=112;0,to=112;50)">
+ <dc:title stex:srcref="paper.tex#textrange(from=112;0,to=116;13)" xml:id="sec.math.p1.p1" about="#sec.math.p1.p1">
+ <p xml:id="sec.math.p1.p1.p1" about="#sec.math.p1.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=116;13)">Mathematical Content</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="sec.math.p2" about="#sec.math.p2" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <CMP xml:id="sec.math.p2.p1" about="#sec.math.p2.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">
+ <p xml:id="sec.math.p2.p1.p1" about="#sec.math.p2.p1.p1" stex:srcref="paper.tex#textrange(from=112;0,to=13;13)">We present some standard mathematical definitions, here from calculus.
+</p>
+ </CMP>
+ </omtext>
+ <omgroup layout="sectioning" xml:id="sec.contfuncs" about="#sec.contfuncs" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">
+ <metadata xml:id="sec.contfuncs.p1" about="#sec.contfuncs.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=12;12)">
+ <dc:title stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)" xml:id="sec.contfuncs.p1.p1" about="#sec.contfuncs.p1.p1">
+ <p xml:id="sec.contfuncs.p1.p1.p1" about="#sec.contfuncs.p1.p1.p1" stex:srcref="continuous.tex#textrange(from=1;0,to=13;13)">Continuous Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="continuous" about="#continuous" stex:srcref="continuous.tex#textrange(from=2;0,to=12;12)">
+ <imports from="../background/functions.omdoc#functions" xml:id="continuous.p1" about="#continuous.p1" stex:srcref="continuous.tex#textrange(from=3;0,to=3;46)"/>
+ <imports from="../background/reals.omdoc#reals" xml:id="continuous.p2" about="#continuous.p2" stex:srcref="continuous.tex#textrange(from=4;0,to=4;38)"/>
+ <symbol name="continuousfunctions" xml:id="continuousfunctions.sym" about="#continuousfunctions.sym" stex:srcref="continuous.tex#textrange(from=5;1,to=5;54)"/>
+ <notation cd="continuous" name="continuousfunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="continuous" cr="fun" name="continuousfunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="continuous.m1" text="C ^ 0 * open-interval@(arg:1, arg:2)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="arith1" name="times"/>
+ <om:OMA>
+ <om:OMS cd="ambiguous" name="superscript"/>
+ <om:OMV name="C"/>
+ <om:OMI>0</om:OMI>
+ </om:OMA>
+ <om:OMA>
+ <om:OMS cd="latexml" name="open-interval"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>0</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <m:mi>arg:1</m:mi>
+ <m:mo>,</m:mo>
+ <m:mi>arg:2</m:mi>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="continuous" xml:id="continuous.def.sym" about="#continuous.def.sym" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)"/>
+ <definition for="continuous" xml:id="continuous.p5" about="#continuous.p5" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <CMP xml:id="continuous.p5.p1" about="#continuous.p5.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+ <p xml:id="continuous.p5.p1.p1" about="#continuous.p5.p1.p1" stex:srcref="continuous.tex#textrange(from=7;1,to=11;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math> is called <idx xml:id="continuous.p5.p1.p1.p2" about="#continuous.p5.p1.p1.p2" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)"><idt><term cd="continuous" name="continuous" role="definiendum" xml:id="continuous.p5.p1.p1.p2.p1" about="#continuous.p5.p1.p1.p2.p1" stex:srcref="continuous.tex#textrange(from=7;4,to=8;76)">continuous</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">continuous</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="continuous.p5.p1.p1.m2" text="inset@(x, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">inset</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="continuous.p5.p1.p1.m3" text="epsilon &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="ϵ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>ϵ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="continuous.p5.p1.p1.m4" text="delta &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="δ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>δ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{f(x)-f(y)}&lt;\epsilon" xml:id="continuous.p5.p1.p1.m5" text="absval@(f * x - f * y) less epsilon"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="ϵ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>x</m:mi></m:mfenced></m:mrow><m:mo>-</m:mo><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>y</m:mi></m:mfenced></m:mrow></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>ϵ</m:mi></m:mrow></m:math></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="continuous.p5.p1.p1.m6" text="absval@(x - y) less delta"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="δ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>δ</m:mi></m:mrow></m:math></Math>
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+ <omgroup layout="sectioning" xml:id="sec.differentiable" about="#sec.differentiable" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">
+ <metadata xml:id="sec.differentiable.p1" about="#sec.differentiable.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=11;12)">
+ <dc:title stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)" xml:id="sec.differentiable.p1.p1" about="#sec.differentiable.p1.p1">
+ <p xml:id="sec.differentiable.p1.p1.p1" about="#sec.differentiable.p1.p1.p1" stex:srcref="differentiable.tex#textrange(from=1;0,to=12;13)">Differentiable Functions</p>
+ </dc:title>
+ </metadata>
+ <theory xml:id="differentiable" about="#differentiable" stex:srcref="differentiable.tex#textrange(from=2;0,to=11;12)">
+ <imports from="./continuous.omdoc#continuous" xml:id="differentiable.p1" about="#differentiable.p1" stex:srcref="differentiable.tex#textrange(from=3;0,to=3;37)"/>
+ <symbol name="difffunctions" xml:id="difffunctions.sym" about="#difffunctions.sym" stex:srcref="differentiable.tex#textrange(from=4;1,to=4;48)"/>
+ <notation cd="differentiable" name="difffunctions">
+ <prototype>
+ <om:OMA>
+ <om:OMS cd="differentiable" cr="fun" name="difffunctions"/>
+ <expr name="arg1"/>
+ <expr name="arg2"/>
+ </om:OMA>
+ </prototype>
+ <rendering>
+ <Math xmlns="http://dlmf.nist.gov/LaTeXML" xml:id="differentiable.m1" text="C ^ 1 * open-interval@(arg:1, arg:2)">
+ <om:OMOBJ>
+ <om:OMA>
+ <om:OMS cd="arith1" name="times"/>
+ <om:OMA>
+ <om:OMS cd="ambiguous" name="superscript"/>
+ <om:OMV name="C"/>
+ <om:OMI>1</om:OMI>
+ </om:OMA>
+ <om:OMA>
+ <om:OMS cd="latexml" name="open-interval"/>
+ <om:OMV name="arg:1"/>
+ <om:OMV name="arg:2"/>
+ </om:OMA>
+ </om:OMA>
+ </om:OMOBJ>
+ <m:math display="inline">
+ <m:mrow>
+ <m:msup>
+ <m:mi mathvariant="script">C</m:mi>
+ <m:mn>1</m:mn>
+ </m:msup>
+ <m:mo>⁢</m:mo>
+ <m:mfenced open="(" close=")">
+ <m:mrow>
+ <m:mi>arg:1</m:mi>
+ <m:mo>,</m:mo>
+ <m:mi>arg:2</m:mi>
+ </m:mrow>
+ </m:mfenced>
+ </m:mrow>
+ </m:math>
+ </Math>
+ </rendering>
+ </notation>
+ <symbol name="differentiable" xml:id="differentiable.def.sym" about="#differentiable.def.sym" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)"/>
+ <definition for="differentiable continuous" xml:id="differentiable.p4" about="#differentiable.p4" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <CMP xml:id="differentiable.p4.p1" about="#differentiable.p4.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+ <p xml:id="differentiable.p4.p1.p1" about="#differentiable.p4.p1.p1" stex:srcref="differentiable.tex#textrange(from=6;1,to=10;16)">
+A function <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\fun{f}{\RealNumbers}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m1" text="fun@(f, RealNumbers, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="fun"/><om:OMV name="f"/><om:OMS cd="reals" name="RealNumbers"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">fun</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>f</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math> is called <idx xml:id="differentiable.p4.p1.p1.p2" about="#differentiable.p4.p1.p1.p2" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)"><idt><term cd="differentiable" name="differentiable" role="definiendum" xml:id="differentiable.p4.p1.p1.p2.p1" about="#differentiable.p4.p1.p1.p2.p1" stex:srcref="differentiable.tex#textrange(from=6;4,to=7;80)">differentiable</term></idt><ide index="default"><idp><text xmlns="http://dlmf.nist.gov/LaTeXML">differentiable</text></idp></ide></idx> at
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\inset{x}{\RealNumbers}" xml:id="differentiable.p4.p1.p1.m2" text="inset@(x, RealNumbers)"><om:OMOBJ><om:OMA><om:OMS cd="functions" name="inset"/><om:OMV name="x"/><om:OMS cd="reals" name="RealNumbers"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi mathcolor="red">inset</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>, </m:mo><m:mi mathcolor="red">RealNumbers</m:mi></m:mrow></m:mrow></m:math></Math>, iff for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\epsilon&gt;0" xml:id="differentiable.p4.p1.p1.m3" text="epsilon &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="ϵ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>ϵ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math> there is a <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\delta&gt;0" xml:id="differentiable.p4.p1.p1.m4" text="delta &gt; 0"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="greater-than"/><om:OMV name="δ"/><om:OMI>0</om:OMI></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mi>δ</m:mi><m:mo>&gt;</m:mo><m:mn>0</m:mn></m:mrow></m:math></Math>, such that
+<Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\rfrac{\absval{f(x)-f(y)}}{\absval{x-y}}&lt;\epsilon" xml:id="differentiable.p4.p1.p1.m5" text="rfrac@(absval@(f * x - f * y), absval@(x - y)) less epsilon"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="rfrac"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="x"/></om:OMA><om:OMA><om:OMS cd="arith1" name="times"/><om:OMV name="f"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA></om:OMA><om:OMV name="ϵ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">rfrac</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>x</m:mi></m:mfenced></m:mrow><m:mo>-</m:mo><m:mrow><m:mi>f</m:mi><m:mo>⁢</m:mo><m:mfenced open="(" close=")"><m:mi>y</m:mi></m:mfenced></m:mrow></m:mrow></m:mrow><m:mo>, </m:mo><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>ϵ</m:mi></m:mrow></m:math></Math> for all <Math xmlns="http://dlmf.nist.gov/LaTeXML" mode="inline" tex="\absval{x-y}&lt;\delta" xml:id="differentiable.p4.p1.p1.m6" text="absval@(x - y) less delta"><om:OMOBJ><om:OMA><om:OMS cd="latexml" name="less-than"/><om:OMA><om:OMS cd="reals" name="absval"/><om:OMA><om:OMS cd="latexml" name="minus"/><om:OMV name="x"/><om:OMV name="y"/></om:OMA></om:OMA><om:OMV name="δ"/></om:OMA></om:OMOBJ><m:math display="inline"><m:mrow><m:mrow><m:mi mathcolor="red">absval</m:mi><m:mo>⁡</m:mo><m:mrow><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>y</m:mi></m:mrow></m:mrow><m:mo>&lt;</m:mo><m:mi>δ</m:mi></m:mrow></m:math></Math>.
+</p>
+ </CMP>
+ </definition>
+ </theory>
+ </omgroup>
+ <!-- %%% Local Variables:
+ %%% mode: LaTeX
+ %%% TeX-master: "paper"
+ %%% End:-->
+ </omgroup>
+ <omgroup layout="sectioning" xml:id="concl" about="#concl" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <metadata xml:id="concl.p1" about="#concl.p1" stex:srcref="paper.tex#textrange(from=118;0,to=118;37)">
+ <dc:title stex:srcref="paper.tex#textrange(from=118;0,to=121;13)" xml:id="concl.p1.p1" about="#concl.p1.p1">
+ <p xml:id="concl.p1.p1.p1" about="#concl.p1.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">Conclusion</p>
+ </dc:title>
+ </metadata>
+ <omtext xml:id="concl.p2" about="#concl.p2" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <CMP xml:id="concl.p2.p1" about="#concl.p2.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">
+ <p xml:id="concl.p2.p1.p1" about="#concl.p2.p1.p1" stex:srcref="paper.tex#textrange(from=118;0,to=121;13)">In this note we have given an example of standard mathematical markup and shown how a a
+<phrase xml:id="concl.p2.p1.p1.p1" about="#concl.p2.p1.p1.p1" stex:srcref="paper.tex#textrange(from=119;42,to=120;8)">sTeX</phrase> collection can be set up for automation.
+</p>
+ </CMP>
+ </omtext>
+ </omgroup>
+ <bibliography xmlns="http://dlmf.nist.gov/LaTeXML" files="kwarc" xml:id="bib">
+ <title>References</title>
+ </bibliography>
+</omdoc>
diff --git a/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml.log b/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml.log
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/paper/paper.xml.log
diff --git a/Master/texmf-dist/doc/latex/stex/example/test/Makefile b/Master/texmf-dist/doc/latex/stex/example/test/Makefile
new file mode 100644
index 00000000000..8417d489e81
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/example/test/Makefile
@@ -0,0 +1,7 @@
+STEXDIR = ../..
+TARGET = Konzept-Bremsmodell.tex
+MODSLIBDIR = background
+
+include $(STEXDIR)/make/Makefile.vars
+all: omdoc mods pdf
+include $(STEXDIR)/make/Makefile.in
diff --git a/Master/texmf-dist/doc/latex/stex/mikoslides.pdf b/Master/texmf-dist/doc/latex/stex/mikoslides.pdf
new file mode 100644
index 00000000000..7c412e2ea5d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/mikoslides.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/problem/README b/Master/texmf-dist/doc/latex/stex/problem/README
new file mode 100644
index 00000000000..6b72fdc32a8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/problem/README
@@ -0,0 +1,10 @@
+problem.sty: An Infrastructure for marking up Problems
+
+The problem package supplies an infrastructure that allows mark up problems and to reuse
+them efficiently in multiple environments.
+
+Copyright (c) 2008 Michael Kohlhase
+The package is distributed under the terms of the LaTeX Project Public License (LPPL)
+
+The development version of this package can be found at
+https://svn.kwarc.info/repos/stex/sty/problem/
diff --git a/Master/texmf-dist/doc/latex/stex/problem/problem.pdf b/Master/texmf-dist/doc/latex/stex/problem/problem.pdf
new file mode 100644
index 00000000000..27a7c6a30c2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/problem/problem.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/stex/stex.pdf b/Master/texmf-dist/doc/latex/stex/stex.pdf
new file mode 100644
index 00000000000..8e8b19b4844
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/stex/stex.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/stex/assignment/assignment.dtx b/Master/texmf-dist/source/latex/stex/assignment/assignment.dtx
new file mode 100644
index 00000000000..bed15998630
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/assignment/assignment.dtx
@@ -0,0 +1,426 @@
+% \iffalse meta-comment
+% An Infrastructure for marking up Assignments
+% $URL: https://svn.kwarc.info/repos/stex-content/sty/assignment/assignment.dtx $
+% $Rev: 2871 $; last modified by $Author: kohlhase $
+% $Date: 2010-05-29 07:43:20 +0200 (Sat, 29 May 2010) $
+% Copyright (c) 2007 Michael Kohlhase, all rights reserved
+% this file is released under the
+% LaTeX Project Public License (LPPL)
+% \fi
+%
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{assignment}[2010/06/25 v0.9a assignment documents]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,array,float}
+\usepackage[show]{ed}
+\usepackage{hyperref}
+\usepackage{assignment}
+\makeindex
+\floatstyle{boxed}
+\newfloat{exfig}{thp}{lop}
+\floatname{exfig}{Example}
+\begin{document}\DocInput{assignment.dtx}\end{document}
+%</driver>
+% \fi
+% \changes{v0.9}{2006/09/18}{First Version with Documentation}
+%
+% \GetFileInfo{assignment.sty}
+%
+% \MakeShortVerb{\|}
+%\def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}}
+% \def\latexml{\scsys{LaTeXML}}
+%
+% \title{An Infrastructure for formatting Assignments\thanks{Version {\fileversion} (last revised
+% {\filedate})}}
+% \author{Michael Kohlhase\\
+% Jacobs University, Bremen\\
+% \url{http://kwarc.info/kohlhase}}
+% \maketitle
+%
+% \begin{abstract}
+% The |assignment| packge allows individual course assignment sheets and compond
+% assignment documents using problem files marked up with the |problem| package.
+% \end{abstract}
+% \setcounter{tocdepth}{2}\tableofcontents\newpage
+%
+%\section{Introduction}\label{sec:intro}
+%
+% The |assignment| package supplies an infrastructure that allows to format nice-looking
+% assignment sheets by simply including problems from problem files marked up with the
+% |problem| package. It is designed to be compatible with |problems.sty|, and inherits
+% some of the functionality.
+%
+% \section{The User Interface}
+%
+% \subsection{Assignments}
+% \DescribeEnv{assignment} This package supplies the |assignment| environment that groups
+% problems into assignment sheets. It takes an optional KeyVal argument with the keys
+% \DescribeMacro{number}|number| (for the assignment number; if none is given, 1 is
+% assumed as the default or --- in multi-assignment documents --- the ordinal of the
+% |assignment| environment), \DescribeMacro{title}|title| (for the assignment title; this
+% is referenced in the title of the assignment sheet), \DescribeMacro{type}|type| (for the
+% assignment type; e.g. ``quiz'', or ``homework''), \DescribeMacro{given}|given| (for the
+% date the assignment was given), and \DescribeMacro{due}|due| (for the date the
+% assignment is due).
+%
+% \DescribeMacro{\CourseTitle} |\Coursetitle{|\meta{title}|}| can be used to specify the
+% title of the course. It is usually specified in the driver file.
+%
+% \DescribeMacro{\AssignmentType} Similarly, |\AssignmentType{|\meta{type}|}| can be used
+% to specify the default assignment type.
+%
+% The |assignment| package takes the options \DescribeMacro{solutions}|solutions|,
+% \DescribeMacro{notes}|notes|, \DescribeMacro{hints}|hints|, \DescribeMacro{pts}|pts|,
+% \DescribeMacro{min}|min|, and \DescribeMacro{boxed}|boxed| that are just passed on to
+% the |problems| package (cf. its documentation for a description of the intended
+% behavior).
+%
+% \subsection{Typesetting Exams}
+%
+% Furthermore, the |assignment| package takes the option
+% \DescribeMacro{multiple}|multiple| that allows to combine multiple assigment sheets into
+% a compound document (the assignment sheets are treated as section, there is a table of
+% contents, etc.).
+%
+% Finally, there is the option \DescribeMacro{test}|test| that modifies the behavior to
+% facilitate formatting tests. Only in |test| mode, the macros |\testspace|,
+% |\testnewpage|, and |\testemptypage| have an effect: they generate space for the
+% students to solve the given problems. Thus they can be left in the {\LaTeX} source.
+%
+% \DescribeMacro{\testspace}|\testspace| takes an argument that expands to a dimension,
+% and leaves vertical space accordingly. \DescribeMacro{\testnewpage}|\testnewpage| makes
+% a new page in |test| mode, and \DescribeMacro{\testemptypage}|\testemptypage| generates
+% an empty page with the cautionary message that this page was intentionally left empty.
+%
+% Finally, the \DescribeMacro{\testheading}|\testheading| takes a keyword argument where
+% the keys |duation| specifies a string that specifies the duration of the test, |min|
+% specifies the equivalent in number of minutes, and |reqpts| the points that are required
+% for a perfect grade.
+% \begin{exfig}[ht]
+% \makeatletter
+% \@problem{1.1}{4}{10}
+% \@problem{2.1}{4}{8}
+% \@problem{2.2}{6}{10}
+% \@problem{2.3}{6}{10}
+% \@problem{3.1}{4}{8}
+% \@problem{3.2}{4}{8}
+% \@problem{3.3}{2}{4}
+% \makeatother
+% \begin{verbatim}
+% \testheading{duration=one hour,min=60,reqpts=27}
+% \end{verbatim}
+% \vspace*{-3ex}\hrule\vspace*{.5ex} formats to\vspace*{1ex} \hrule\par\noindent\vspace*{2ex}
+% \testheading{duration=one hour,min=60,reqpts=27}
+% \caption{A generated test heading.}\label{fig:testheading}
+% \end{exfig}
+%
+% \subsection{Including Assignments}
+%
+% The \DescribeMacro{\includeassignment}|\includeassignment| macro can be used to include
+% an assignment from another file. It takes an optional KeyVal argument and a second
+% argument which is a path to the file containing the problem (the macro assumes that
+% there is only one |assignment| environment in the included file). The keys
+% \DescribeMacro{number}|number|, \DescribeMacro{title}|title|,
+% \DescribeMacro{type}|type|,\DescribeMacro{given}|given|, and \DescribeMacro{due}|due|
+% are just as for the |assignment| environment and (if given) overwrite the ones specified
+% in the |assignment| environment in the included file.
+%
+% \StopEventually{\newpage\PrintChanges}
+% \newpage
+%
+% \section{The Implementation}
+%
+% \subsection{Package Options}
+%
+% The first step is to declare (a few) package options that handle whether certain
+% information is printed or not. Some come with their own conditionals that are set by the
+% options, the rest is just passed on to the |problems| package.
+%
+% \begin{macrocode}
+%<*package>
+\newif\iftest\testfalse
+\newif\ifsolutions\solutionsfalse
+\DeclareOption{test}{\testtrue\solutionsfalse}
+\newif\ifmultiple\multiplefalse
+\DeclareOption{multiple}{\multipletrue}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{problem}}
+\ProcessOptions
+%</package>
+% \end{macrocode}
+% Then we make sure that the necessary packages are loaded (in the right versions).
+% \begin{macrocode}
+%<*package>
+\RequirePackage{keyval}[1997/11/10]
+\RequirePackage{problem}
+%</package>
+% \end{macrocode}
+%
+% Here comes the equivalent header information for {\latexml}, we also initialize the
+% package inclusions. Since {\latexml} does not handle options yet, we have nothing to
+% do.
+% \begin{macrocode}
+%<*ltxml>
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('problem');
+%</ltxml>
+% \end{macrocode}
+%
+% Then we register the namespace of the requirements ontology
+% \begin{macrocode}
+%<*ltxml>
+RegisterNamespace('assig'=>"http://omdoc.org/ontology/assignments#");
+RegisterDocumentNamespace('assig'=>"http://omdoc.org/ontology/assignments#");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Assignments}
+%
+% We will prepare the keyval support for the |assignment| environment.
+%
+% \begin{macrocode}
+%<*package>
+\omdaddkey{assig}{number}
+\omdaddkey{assig}{title}
+\omdaddkey{assig}{type}
+\omdaddkey{assig}{given}
+\omdaddkey{assig}{due}
+%</package>
+% \end{macrocode}
+%
+% The next macro just sets the internal token register to the intended string.
+%
+% \begin{macrocode}
+%<*package>
+\def\AssignmentType#1{\gdef\assig@default@type{#1}}
+\def\assig@default@type{Assignment}
+%</package>
+%<*ltxml>
+%</ltxml>
+% \end{macrocode}
+%
+% The next three macros are intermediate functions that handle the case gracefully, where
+% the respective token registers are undefined.
+%
+% \begin{macrocode}
+%<*package>
+\def\Assig@Type{\ifx\assig@type\@empty\assig@default@type\else\assig@type\fi}
+\def\Assig@Title{\ifx\assig@title\@empty\else\assig@title~\fi}
+% \end{macrocode}
+%
+% The |\given@due| macro prints information about the given and due status of the
+% assignment. Its arguments specify the brackets.
+%
+% \begin{macrocode}
+\def\given@due#1#2{%
+\ifx\assig@given\@empty\else\ifx\assig@due\@empty\else{#1}\fi\fi%
+\ifx\assig@given\@empty\else{Given {\assig@given}}\fi%
+\ifx\assig@given\@empty\else\ifx\assig@due\@empty\else{, }\fi\fi%
+\ifx\assig@due\@empty\else{Due {\assig@due}}\fi%
+\ifx\assig@given\@empty\else{\ifx\assig@due\@empty\else{#2}\fi}\fi}
+%</package>
+% \end{macrocode}
+%
+% With them, we can define the central |assignment| environment. This has two forms
+% (separated by |\ifmultiple|) in one we make a title block for an assignment sheet, and
+% in the other we make a section heading and add it to the table of
+% contents.
+%
+% \begin{environment}{assignment}
+% \begin{macrocode}
+%<*package>
+\newenvironment{assignment}[1][]% keyval args
+{\omdsetkeys{assig}{#1}% collect the keys and correct them from the outside
+\@ifundefined{incl@assig@title}{}{\def\assig@title{\incl@assig@title}}
+\@ifundefined{incl@assig@type}{}{\def\assig@type{\incl@assig@type}}
+\@ifundefined{incl@assig@num}{}{\def\assig@num{\incl@assig@num}}
+\@ifundefined{incl@assig@due}{}{\def\assig@due{\incl@assig@due}}
+\@ifundefined{incl@assig@given}{}{\def\assig@given{\incl@assig@given}}
+\@ifundefined{assig@num}{\stepcounter{section}}%
+{\setcounter{section}{\assig@num}\setcounter{problem}{0}}
+\ifmultiple%
+\section*{\Assig@Type~\arabic{section}:~\Assig@Title\given@due{\\(})}
+ \addcontentsline{toc}{section}{\Assig@Type~{\arabic{section}}:~\Assig@Title}
+\else
+\begin{center}
+\Large\Course@Title\\
+{\bf{\Assig@Type}~{\arabic{section}}:~\Assig@Title\strut\\\large{\given@due()}}
+\end{center}
+\fi%ifmultiple
+}{}
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*ltxml>
+DefEnvironment('{assignment} OptionalKeyVals:assig',
+ "<omdoc:omgroup ?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')() "
+ . "assig:dummy='for the namespace'"
+ . "?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:metadata ?#locator(stex:srcref='#locator')()>"
+ . "<dc:title ?#locator(stex:srcref='#locator')()>"
+ . "Assignment ?&KeyVal(#1,'num')(&KeyVal(#1,'num').)()"
+ . "?&KeyVal(#1,'title')((&KeyVal(#1,'title')))"
+ . "</dc:title>"
+ . "?&KeyVal(#1,'given')(<omdoc:meta property='assig:given'>&KeyVal(#1,'given')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'due')(<omdoc:meta property='assig:due'>&KeyVal(#1,'due')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='assig:pts'>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ . "</omdoc:metadata>"
+ . "#body"
+ ."</omdoc:omgroup>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{Including Assignments}
+%
+% The next command is essentially a glorified |\include| statement, it just sets some
+% internal macros first that overwrite the local points,
+%
+% \begin{macrocode}
+%<*package>
+\define@key{incl@assig}{number}{\def\incl@assig@num{#1}}
+\define@key{incl@assig}{title}{\def\incl@assig@title{#1}}
+\define@key{incl@assig}{type}{\def\incl@assig@type{#1}}
+\define@key{incl@assig}{given}{\def\incl@assig@given{#1}}
+\define@key{incl@assig}{due}{\def\incl@assig@due{#1}}
+\newcommand{\includeassignment}[2][]{\bgroup\setkeys{incl@assig}{#1}\include{#2}\egroup}
+%</package>
+%<*ltxml>
+DefMacro('\includeassignment [] {}','\input{#2}');
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package>
+\def\CourseTitle#1{\gdef\Course@Title{#1}}
+%</package>
+%<*ltxml>
+DefConstructor('\CourseTitle{}','');
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Typesetting Exams}
+%
+% \begin{macrocode}
+%<*package>
+\omdaddkey{testheading}{min}
+\omdaddkey{testheading}{duration}
+\omdaddkey{testheading}{reqpts}
+\def\testheading#1{\omdsetkeys{testheading}{#1}
+{\noindent\large NAME: \\[1ex] MATRICULATION NUMBER:\\[2ex]
+ {\textbf{You have
+\ifx\test@heading@duration\@empty\testheading@min minutes\else\testheading@duration\fi
+(sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent
+
+\newcount\check@time\check@time=\testheading@min
+\advance\check@time by -\theassignment@totalmin
+The scheduled time for solving this exam is {\theassignment@totalmin} minutes,
+leaving you {\the\check@time} minutes for revising your exam.
+
+\newcount\bonus@pts\bonus@pts=\theassignment@totalpts
+\advance\bonus@pts by -\testheading@reqpts
+You can reach {\theassignment@totalpts} points if you solve all problems. You will only need
+{\testheading@reqpts} points for a perfect score, i.e.\ {\the\bonus@pts} points are
+bonus points. \vfill
+\begin{center}
+ {\Large\em
+% You have ample time, so take it slow and avoid rushing to mistakes!\\[2ex]
+ Different problems test different skills and knowledge, so do not get stuck on
+ one problem.}\vfill\par\correction@table
+\end{center}\newpage}
+%</package>
+%<*ltxml>
+DefConstructor('\testheading{}','');
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package>
+\def\testspace#1{\iftest\vspace*{#1}\fi}
+\def\testnewpage{\iftest\newpage\fi}
+\def\testemptypage{\iftest\begin{center}This page was intentionally left
+ blank for extra space\end{center}\vfill\eject\else\fi}
+%</package>
+%<*ltxml>
+DefConstructor('\testspace{}','');
+DefConstructor('\testnewpage','');
+DefConstructor('\testemptypage','');
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macro}{\@problem}
+% This macro acts on a problem's record in the |*.aux| file. Here we redefine it to
+% generate the correction table.
+% \begin{macrocode}
+%<*package>
+\def\@problem#1#2#3{\stepcounter{assignment@probs}
+\def\@test{#2}\ifx\@test\@empty\else\addtocounter{assignment@totalpts}{#2}\fi
+\def\@test{#3}\ifx\@test\@empty\else\addtocounter{assignment@totalmin}{#3}\fi
+\xdef\correction@probs{\correction@probs & #1}%
+\xdef\correction@pts{\correction@pts & #2}
+\xdef\correction@reached{\correction@reached &}}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\correction@table}
+% This macro generates the correction table
+% \begin{macrocode}
+%<*package>
+\newcounter{assignment@probs}
+\newcounter{assignment@totalpts}
+\newcounter{assignment@totalmin}
+\def\correction@probs{prob.}%
+\def\correction@pts{total}%
+\def\correction@reached{reached}%
+\stepcounter{assignment@probs}
+\def\correction@table{\begin{tabular}{|l|*{\theassignment@probs}{c|}|p{3cm}|}\hline%
+&\multicolumn{\theassignment@probs}{c||}%
+{\footnotesize To be used for grading, do not write here} &\\\hline
+\correction@probs & Sum & grade\\\hline
+\correction@pts &\theassignment@totalpts & \strut\hspace{3cm}\strut\\\hline
+\correction@reached & & \\[.7cm]\hline
+\end{tabular}}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Leftovers}
+%
+% at some point, we may want to reactivate the logos font, then we use
+% \begin{verbatim}
+% here we define the logos that characterize the assignment
+% \font\bierfont=../assignments/bierglas
+% \font\denkerfont=../assignments/denker
+% \font\uhrfont=../assignments/uhr
+% \font\warnschildfont=../assignments/achtung
+%
+% \def\bierglas{{\bierfont\char65}}
+% \def\denker{{\denkerfont\char65}}
+% \def\uhr{{\uhrfont\char65}}
+% \def\warnschild{{\warnschildfont\char 65}}
+% \def\hardA{\warnschild}
+% \def\longA{\uhr}
+% \def\thinkA{\denker}
+% \def\discussA{\bierglas}
+% \end{verbatim}
+%
+% Finally, we need to terminate the file with a success mark for perl.
+% \begin{macrocode}
+%<ltxml>1;
+% \end{macrocode}
+% \Finale
+\endinput
+% \iffalse
+% LocalWords: GPL structuresharing STR
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
diff --git a/Master/texmf-dist/source/latex/stex/bin/Makefile b/Master/texmf-dist/source/latex/stex/bin/Makefile
new file mode 100644
index 00000000000..c603315a964
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/Makefile
@@ -0,0 +1,5 @@
+all:
+
+clean:
+ rm -f *~
+
diff --git a/Master/texmf-dist/source/latex/stex/bin/Modparse.pm b/Master/texmf-dist/source/latex/stex/bin/Modparse.pm
new file mode 100644
index 00000000000..3c4cc8c9dd4
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/Modparse.pm
@@ -0,0 +1,189 @@
+#######################################################################################
+# A module for loading .tex files and feeding the data to the various applications. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/Modparse.pm$ #
+# $Date: 2005-09-26 12:44:28 -0500 (Mon, 26 Sep 2005) $ $Rev: 4243 $ #
+#######################################################################################
+
+package Modparse;
+
+use File::Basename;
+use File::Path;
+
+# if both snippath and snippathList are specified,
+# snippathList is ignored !
+
+# if a default snippath definition file is found
+# (snippath.def) it is used if no snippath is given
+# as argument;
+sub new {
+ my ($class, %options) = @_;
+
+ $options{recursion} = 1 unless defined $options{recursion};
+ $options{requireStatus} = 'include|exclude' unless defined $options{requireStatus};
+ $options{loadInputs} = 1 unless defined $options{loadInputs};
+ $options{onlyModuleLines} = 0 unless defined $options{onlyModuleLines};
+
+ if ( !(%{$options{snippath}}) && (-e "snippath.def") ) {
+ open(SNIPPATHDEF, 'snippath.def');
+ my @snlist = <SNIPPATHDEF>;
+ close(SNIPPATHDEF);
+ for (my $i = 0 ; $i <= $#snlist; $i++) { chomp($snlist[$i]); }
+ %{$options{snippath}} = @snlist; }
+ @{$options{snippathList}} = keys(%{$options{snippath}})
+ if ($options{snippath} && %{$options{snippath}});
+ $options{debug} = 0;
+
+ bless(\%options, $class); }
+
+sub execute{
+ my ($self, $file) = @_;
+
+ local *run_event = sub {
+ my ($event, $arg) = @_;
+ if ($self->{$event}) { $self->{$event}($arg); }
+ };
+
+ local *go = sub {
+ my ($location, %param) = @_;
+ my ($tex, $path, @tex_data) = $self->readLocation($location);
+ return unless @tex_data;
+ my $NL = $#tex_data+1;
+
+ $param{filename} = $tex;
+ $param{depth}++;
+ $param{filecount}++;
+ my $i = 0;
+
+ $param{nextline} = sub { $tex_data[++$i]; };
+ $param{prevline} = sub { $tex_data[--$i]; };
+ $param{rewriteline}= sub { $tex_data[$i] = $_[0]; };
+
+ print "Processing $tex...\n" if $self->{verbose};
+ run_event('onBeginFile', \%param);
+
+ while ($i<$NL){
+ $param{original} = $tex_data[$i];
+ $_ = $tex_data[$i]; chomp; /([^%]*)((%.*)?)/;
+ ($param{tex}, $param{comment}) = ($1, $2); $_ = $1;
+ s/\s+//g; $param{simple_tex} = $_;
+
+ if (/\\begin\{module\}(\[([^\]]*)\])?/) {
+ if ($param{in_module}) {
+ push(@{$param{module_stack}}, [$param{module_id}, $param{module_arg}]); }
+ $param{in_module} = 1;
+ $param{module_args} = $1 ? $2 : undef;
+ $param{module_id} = ($param{module_args} &&
+ $param{module_args} =~ /id=([^\],]+)/) ? $1 : undef;
+ $param{module_nesting}++;
+ run_event('onBeginModule', \%param); }
+
+ if (/\\end\{module\}/) {
+ run_event('onEndModule', \%param);
+ if ($#{$param{module_stack}} >= 0) {
+ ($param{module_id}, $param{module_args}) = @{pop(@{$param{module_stack}})};
+ } else {
+ $param{in_module} = 0;
+ ($param{module_id}, $param{module_args}) = (undef, undef); }
+ $param{module_nesting}--;
+ }
+
+ foreach my $srch_snippath(@{$self->{snippathList}}){
+ $self->{snippath}{$srch_snippath} = $1
+ if (/\\def\\$srch_snippath\#1\{([^\#]+)\#1\}$/); }
+
+ if (/\\((requiremodules(\[($self->{requireStatus})\])?)|input|include)\{([^\}]+)\}/){
+ my $req_filename = $5; my $req_spath = ''; my $command = $1;
+ my $is_require = ($command =~ /requiremodules/) ? 1 : 0;
+ if ($is_require || $self->{loadInputs}) {
+ foreach my $srch_snippath(@{$self->{snippathList}}){
+ if ($req_filename =~ /\\$srch_snippath\{(.+)/){
+ ($req_spath, $req_filename) = ($self->{snippath}{$srch_snippath}, $1);
+ last; }}
+ run_event('onRecurse', \%param);
+ if ($self->{recursion} || !$is_require) {
+ go($self->makeLocation($req_filename, $path, $req_spath), %param); }
+ }
+ }
+ run_event('onEveryLine', \%param) if ($param{in_module} || !$self->{onlyModuleLines});
+
+ last if (/\\end\{document\}/ && $self->{stopAtEnd});
+ $i++;
+ }
+ run_event('onEndFile', \%param);
+ $param{depth}--; return;
+ };
+
+ my %param = (pack=>$self, perm=>$self->{_AUX_DATA}, depth=>0, filecount=>0,
+ in_module=>0, module_nesting=>0);
+ run_event('onBegin', \%param);
+ go($self->makeLocation($file), %param);
+ run_event('onEnd', \%param);
+ return;
+}
+
+
+# add a [.tex] extension to the filename
+sub add_ext{
+ my ($self, $fn, $ext) = @_;
+ $ext = '.tex' unless $ext;
+ $fn.=$ext if $fn !~ /\Q$ext\E$/;
+ $fn; }
+
+# as long as the extension is .tex, drop it
+sub drop_ext{
+ my ($self, $filename) = @_;
+ while ($filename =~ /\.tex$/){
+ while ($filename !~ /\.$/ ) { chop($filename); }
+ chop($filename); }
+ $filename; }
+
+sub new_ext{
+ my ($self, $filename, $ext) = @_;
+ $self->add_ext($self->drop_ext($filename), $ext); }
+
+# location = pointer to array of strings
+# first element is filename; next are possible paths
+sub makeLocation{ my $self = shift; return \@_; }
+
+# read a location into an array of strings
+# aslo return filename and path to it (just in
+# case some changes were made to it, like adding
+# extension and/or relative paths)
+sub readLocation{
+ my ($self, $location) = @_;
+
+ my ($filename, @paths) = @{$location};
+ # try to add proper extension;
+ my $filename_ext = $self->new_ext($filename) unless -e $filename;
+ $filename = $filename_ext if $filename_ext && -e $filename_ext;
+
+ # try search paths
+ if (! -e $filename){
+ my $all_p = '';
+ foreach my $p(@paths){
+ $all_p .= $p;
+ $filename = $all_p.$filename and last if -e $all_p.$filename;
+ $filename = $p.$filename and last if -e $p.$filename;
+ if ($filename_ext){
+ $filename = $all_p.$filename_ext and last if -e $all_p.$filename_ext;
+ $filename = $p.$filename_ext and last if -e $p.$filename_ext; }
+ }}
+ # don't do the same work too many times
+ foreach my $file(@{$self->{loadedFiles}})
+ { return undef if $file eq $filename; }
+
+ push(@{$self->{loadedFiles}}, $filename);
+ open(FIN, $filename) or die "Cannot open '$filename'\n";
+ my @data = <FIN>;
+ close(FIN);
+
+ # find path of current file
+ my $path = dirname($filename);
+ $path.='/' if ($path ne '');
+
+ return ($filename, $path, @data);
+}
+
+1;
diff --git a/Master/texmf-dist/source/latex/stex/bin/README b/Master/texmf-dist/source/latex/stex/bin/README
new file mode 100644
index 00000000000..6af84e42bab
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/README
@@ -0,0 +1,151 @@
+msplit
+"Module Split"
+
+Usage:
+ msplit <input filename> [options]
+
+Options:
+ --output <filename> filename of new main .tex file; default stdout
+ --path <path> path where to write the module files;
+ --header <filename> filename of header file to be included in all new .tex files
+ --verbose verbose on
+ --stop stop when \end{document} is found, not at EOF
+ --help show help screen
+
+
+NOTE: All options '--xoption' can be replaced by '-x' as long as there is only one option starting with 'x'
+
+This program splits the .tex file given at input into:
+ one main .tex file, that includes
+ more .tex files, each containing one module
+
+The name of the new main .tex file is specified by output option. The path to the inputted
+files can be specified by path. The name of one generated input file is "name of the
+module it contains".tex Running on one already split file will just make a copy. Example
+usage: ./msplit slides.tex -o sl.tex -p ./modules -s
+
+Interpretation: "Split the file slides.tex; wite the new main file as sl.tex and the
+inputted files should be placed in ./modules; if path does not exist, it is automatically
+created; stop when (uncommented) \end{document} is found."
+
+
+
+rf
+"Reuse Factor"
+
+Usage:
+ rf [options]
+
+Options:
+ --input <filename> .tex input file. stdin by default
+ --stop stop when \end{document} is found, not at EOF
+ --verbose verbose on
+ --help show help screen
+
+
+This program computes the reuse factor for the .tex document given at input. This number
+represents the ratio of latex processed lines of code to actual lines contained in file
+given at input. This number will always be 1 for files that have no \input or \include.
+
+Example usage:
+./rf -v -i slides.tex
+Interpretation: "Compute the reuse factor of slides.tex and show all processed files(verbose mode)."
+
+
+
+sgraph
+"Slides graph [representation]"
+
+Usage:
+ sgraph [options]
+
+Options:
+ --input <filename> .tex input file; stdin by default
+ --output <filename> output file; out.dot by default
+ --format <ps|png|jpg|...> output format; .ps by default; for available formats, see dot --help
+ --nodot do not generate .dot file, just target format
+ --root <string> the 'root' of the graph. (name of course)
+ --theory <string> generate a subgraph for the theory
+ --sliderange <begin:end> only look at the given slide range; (2:16 for example)
+ --stop stop reading data when \end{document} is found, not at EOF
+ --verbose verbose on
+ --help show help screen
+
+This program generates a .dot file readable by graphviz, containing a graph of the module
+usage in the .tex file given at input, optionally looking at a specific theory and/or
+slide range; it also adds a dummy 'root' for the graph, so one can see where everything
+starts. It then converts the .dot file to a given format (.ps by default) using graphviz
+and optionally deletes the intermediary .dot file.
+
+Example usage:
+./sgraph -i slides.tex -o graph -f ps -n -t TCN --sliderange 20:10000 -r GenCS -v
+
+Interpretation: "Generate the graph of slides.tex in .ps format, write it in graph.ps, do
+not keep the .dot file; include only the part needed for the theory 'TCN' and in the slide
+range 20 to 10000; use as root for the graph the string 'GenCS' and show all processed
+files."
+
+
+sms
+??
+
+Usage:
+ sms [options]
+
+Options:
+ --input <filename> .tex file to split; default stdin
+ --verbose verbose on
+ --stop stop when \end{document} is found, not at EOF
+ --help show help screen
+
+Generate .sms file from .tex file given at input; .sms files contain only the modules and
+the macros defined within, no other text.
+
+Example usage:
+./sms -i slides.tex -s
+
+Interpretation: "Generate the slides.sms file for slides.tex; Stop when \end{document} is found."
+
+
+
+
+bms
+"Build Module Structure"
+
+Usage:
+ bms [options]
+
+Options:
+ --input <filename> .tex file to read from
+ --graph <filename> if mentioned, produce the suggested module structure as
+ a graphviz digraph (.dot file)
+ --path <pathname> if mentioned, produce same input file/s (including
+ dependencies) in specified path with suggested
+ module structure.
+ --output <filename> the new name of the main .tex file in specified path
+ --root <string> if mentioned, a father module is included, so that all
+ other modules descend from it. generally the course name
+ --stop stop when \end{document} is found; default is to go on
+ --definitions show a list of all definitions
+ --verbose verbose on
+ --help show help screen
+
+
+This program has the purpose of computing a default module structure, such that a module
+uses another module if and only if it needs that module and does not need another
+descendant of it. First, the prgram reads all necessary data from the input .tex file,
+computes the minimal strictly required module usage structure, and writes it as a graphviz
+digraph, and/or writes a copy of the input .tex file (and maybe inputted files by the .tex
+file) with the new module structure in the given path. All paths are created if not
+existing.
+
+Example usage:
+./bms -i slides.tex -s -g - | dot -Tps > out.ps; ggv out.ps
+./bms -i slides.tex -g out.dot -p ./new
+
+Interpretation: "Build default module structure for slides.tex and write it to out.dot;
+also use the obtained module structure and copy the input file to given path with changed
+module usage."
+
+rng2dot
+Convert Relax NG Compact form to Graphviz dot file
diff --git a/Master/texmf-dist/source/latex/stex/bin/TexId.pm b/Master/texmf-dist/source/latex/stex/bin/TexId.pm
new file mode 100644
index 00000000000..d0f28ccbce5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/TexId.pm
@@ -0,0 +1,464 @@
+# package for handling .tex IDs
+
+package TexId;
+
+use File::Basename;
+use strict;
+
+# error messages markers
+
+use constant ERR => '[X]'; # error can't be fixed
+
+################### 'public' members ###################
+
+sub new{
+ my ($class, %options) = @_;
+ my $self = {};
+
+ @{$self->{ENVIRONMENTS}} = qw(module note omtext example
+ definition problem proof
+ solution program); # the environments to look at
+
+ @{$self->{ENV_PREFIXES}} = qw(mod not txt ex def prob pf sol prg); # the prefixes for environments
+
+
+ @{$self->{ENV_DEF}} = qw(id); # environment arguments that define new environments
+ @{$self->{ENV_USAGE}} = qw(use uses for from); # environment arguments that
+ # specify usage of other environments
+
+ # options for the class
+ %{$self->{OPTIONS}} = %options;
+
+ # in case \snippath{} is encountered, prepend this to the filename
+ $self->{OPTIONS}{snippath} = 'snippets/' unless defined $self->{OPTIONS}{snippath};
+
+
+ # show progress while reading data
+ $self->{OPTIONS}{progress} = 1 unless defined $self->{OPTIONS}{progress};
+
+ bless ($self, $class);
+}
+
+# check/set list of environments to look at
+sub environments{
+ my ($self, $new_environments, $new_prefixes) = @_;
+ if (defined $new_environments and defined $new_prefixes){
+ @{$self->{ENVIRONMENTS}} = split(/,/, $new_environments);
+ @{$self->{ENV_PREFIXES}} = split(/,/, $new_prefixes);
+ die "Invalid argument combination (both arguments must have same number of elements)"
+ if $#{$self->ENVIRONMENTS} != $#{$self->ENV_PREFIXES};
+ }
+ else {
+ return (join(',', @{$self->{ENVIRONMENTS}}), join(',', @{$self->{ENV_PREFIXES}}));
+ }
+}
+
+# define/read environment definition arguments
+sub env_def{
+ my ($self, $new_env_def) = @_;
+ if (defined $new_env_def){
+ @{$self->{ENV_DEF}} = split(/,/, $new_env_def);
+ }
+ else {
+ return join(',', @{$self->{ENV_DEF}});
+ }
+}
+
+# define/read the environment usage arguments
+sub env_usage{
+ my ($self, $new_env_usage) = @_;
+ if (defined $new_env_usage){
+ @{$self->{ENV_USAGE}} = split(/,/, $new_env_usage);
+ }
+ else {
+ return join(',', @{$self->{ENV_USAGE}});
+ }
+}
+
+# define/read the snippets path
+sub snippath{
+ my ($self, $new_snippath) = @_;
+ if (defined $new_snippath){
+ $new_snippath.='/' if ($new_snippath !~ /\/$/);
+ $self->{OPTIONS}{snippath} = $new_snippath;
+ }
+ else {
+ return $self->{OPTIONS}{snippath};
+ }
+}
+
+
+# check all the definitions and module usages
+# in all files referenced by base file
+sub parse{
+
+ my ($self, $basefile) = @_;
+
+ # recursive local function to go through each file
+ local *run_parse = sub
+ {
+ my ($filename) = @_;
+
+ # read current .tex file
+ print STDERR "Loading $filename...\n" if ($self->{OPTIONS}{progress} == 1);
+ $filename = $self->load_file_data($filename);
+ my @text = @{$self->{FILEDATA}};
+ my $line_no = 0;
+
+ # go through every line of the read file
+ # depends on: \requiremodules, \snippath
+ # ignores \end{document}
+
+ foreach (@text){
+ # delete newline character, comments and redundant white space
+
+ $line_no++;
+ /([^%]*)((%.*)?)/;
+ $_ = $1;
+ s/\s+//g;
+
+ # see if an environment that has some arguments is defined
+ my ($possible_env, $env_args) = (undef, undef);
+ ($possible_env, $env_args) = ($1, $2) if (/\\begin\{([^\}]+)\}\[([^\]]+)\]/);
+
+ # if it is, search it through the list of environments we want to look at
+ if (defined $possible_env){
+ foreach my $environment(@{$self->{ENVIRONMENTS}}){
+ next unless ($environment eq $possible_env);
+
+ # if we found an anvironment we want to look at,
+ # go through the list of arguments
+ $env_args = $self->swap_exterior_char(',', ';', $env_args);
+ foreach (split(/;/, $env_args)){
+ # we want arguments of type name=value
+ next unless /([^=]+)=(.+)/;
+ my ($arg_name, $arg_value) = ($1, $2);
+
+ # see if the argument defines an environment
+ foreach my $current_env_arg(@{$self->{ENV_DEF}}){
+ next unless ($arg_name eq $current_env_arg);
+ my @to_add = split(/,/, $arg_value);
+ push(@{$self->{'DEF'}->{$environment}}, @to_add);
+ foreach my $added_element(@to_add){
+ $self->{'DEF'}->{LOCATION}{$added_element}.=$line_no.':'.$filename."\n";
+ }
+ last;
+ }
+
+ # see if the argument uses an environment
+ foreach my $current_env_arg(@{$self->{ENV_USAGE}}){
+ next unless ($arg_name eq $current_env_arg);
+ my @to_add = split(/,/, $arg_value);
+ push(@{$self->{'USE'}->{$environment}}, @to_add);
+ foreach my $added_element(@to_add){
+ $self->{'USE'}->{LOCATION}{$added_element}.=$line_no.':'.$filename."\n";
+ }
+ last;
+ }
+ }
+ last;
+ }
+ }
+ # reference to another file
+ if (/\\requiremodules(\[(include|exclude)\])?\{([^\}]+)\}/){
+ if (defined $2 && $2 eq 'include'){
+ $_ = $3;
+ $_ = $self->{OPTIONS}{snippath}.$1 if (/\\snippath\{(.+)/);
+ $_ = $self->{path}.$_;
+ run_parse($_);
+ }
+ }
+
+ # see definition of snippath
+ $self->snippath($1) if (/\\def\\snippath\#1\{([^\#]+)\#1\}$/);
+ }
+ };
+
+ run_parse($basefile);
+
+}
+
+# this is the first checking step to be done
+sub check_uniq{
+
+ my ($self) = @_;
+
+ my $error = 0;
+
+ # sort environment definitions and see whether they are uniquely defined
+ foreach my $environment(@{$self->{ENVIRONMENTS}}){
+ next unless defined $self->{'USE'}->{$environment};
+
+ my @list1 = sort @{$self->{'DEF'}->{$environment}};
+ my @list2 = $self->uniq(@list1);
+ @{$self->{'DEF'}->{$environment}} = @list2;
+
+ # some environments are defined multiple times
+ if ($#list1 != $#list2){
+ my $j = 0;
+ for (my $i = 0; $i<=$#list2; $i++){
+ my $start_j = $j;
+ while ($j<=$#list1 && $list1[$j] eq $list2[$i]){
+ $j++;
+ }
+ if ($j - $start_j != 1){
+ print STDERR ERR, " Environment '$list2[$i]' is defined multiple times ",
+ "within same environment type: \n";
+ print STDERR $self->{'DEF'}->{LOCATION}{$list2[$i]}, "\n";
+ $error = 1;
+ }
+ }
+ }
+ }
+
+ # see that all environment references are unique (and sort them)
+ foreach my $environment(@{$self->{ENVIRONMENTS}}){
+ next unless defined $self->{'USE'}->{$environment};
+ @{$self->{'USE'}->{$environment}} = sort $self->uniq(@{$self->{'USE'}->{$environment}});
+ }
+
+ return $error;
+}
+
+sub check_prefix{
+
+ my ($self) = @_;
+
+ my $count = $#{$self->{ENVIRONMENTS}}+1;
+
+ for (my $i = 0; $i < $count; $i++){
+ my $environment = ${$self->{ENVIRONMENTS}}[$i];
+ my $envprefix = ${$self->{ENV_PREFIXES}}[$i];
+ next unless defined $self->{'DEF'}->{$environment};
+
+ foreach my $elem (@{$self->{'DEF'}->{$environment}}){
+
+ my $proper = undef;
+ if ($elem =~ /^([^:]+):(.+)/){
+ $proper = $envprefix.':'.$2 if $1 ne $envprefix;
+ } else {
+ $proper = $envprefix.':'.$elem;
+ }
+
+ if (defined $proper){
+ print STDERR ERR, " $environment '$elem' has no prefix ($envprefix). Add it? [ <y>, n ]";
+ my $answer = <STDIN>;
+ chomp($answer);
+ if ($answer eq 'y' or $answer eq ''){
+ $self->add_change('DEF', $elem, $proper);
+ }
+ }
+ }
+ }
+}
+
+
+sub check_defs{
+ my ($self) = @_;
+
+ my $error = 0;
+
+ # combine all definitions
+ my @defs;
+ map {push(@defs, @{$self->{'DEF'}->{$_}}) if defined @{$self->{'DEF'}->{$_}}} @{$self->{ENVIRONMENTS}};
+ @defs = sort @defs;
+
+ # combine all used environments
+ my @uses;
+ map {push(@uses, @{$self->{'USE'}->{$_}}) if defined @{$self->{'USE'}->{$_}}} @{$self->{ENVIRONMENTS}};
+ @uses = sort @uses;
+
+
+ # for all environments
+
+ foreach my $used_env(@uses){
+ # if used environment is not defined
+ if ($self->find_elem($used_env, @defs) < 0){
+ # maybe it is a typo
+ print STDERR ERR, " '$used_env' was not found. Replace options:\n";
+ foreach my $definition(@defs){
+ print STDERR "\t$definition\n" if $self->edit_dist($used_env,$definition)<4;
+ $error = 1;
+ }
+ }
+ }
+
+ return $error;
+}
+
+
+sub add_change{
+ my ($self, $location, $from, $to) = @_;
+ if ($self->{$location}->{LOCATION}{$from} =~ /([^:]+):([^\n]+)\n/){
+ push(@{$self->{CHANGE}->{$2}}, ($1, $from, $to));
+ }
+}
+
+# write the stored changes
+sub apply_changes{
+ my ($self) = @_;
+ while (my ($filename, $changes) = each %{$self->{CHANGE}}){
+ $filename = $self->load_file_data($filename);
+ my $count = int(($#{$changes}+1)/3);
+ for (my $i = 0; $i<$count ; $i++){
+ my ($line, $from, $to) = (${$changes}[$i*3]-1,
+ ${$changes}[$i*3+1], ${$changes}[$i*3+2]);
+ ${$self->{FILEDATA}}[$line] =~ s/\Q$from/$to/;
+ }
+ print STDERR "Writing $filename\n" if ($self->{OPTIONS}{progress} == 1);
+ $self->write_file_data($filename);
+ }
+}
+
+sub load_file_data{
+ my ($self, $filename) = @_;
+
+ # try to give proper file extension if file is not found
+ $filename = $self->add_ext($self->drop_ext($filename)) unless -e $filename;
+
+ open(FIN, $filename) or die "Cannot open $filename\n";
+ @{$self->{FILEDATA}} = <FIN>;
+ close(FIN);
+
+ $self->{path} = dirname($filename).'/' unless defined $self->{path};
+
+ return $filename;
+}
+
+sub write_file_data{
+ my ($self, $filename) = @_;
+
+ open(FOUT, ">$filename") or die "Cannot write $filename\n";
+ print FOUT @{$self->{FILEDATA}};
+ close(FOUT);
+}
+
+
+################### 'protected' members ###################
+
+sub def_env_list{
+ my ($self, $env_name) = @_;
+ return @{$self->{'DEF'}->{$env_name}};
+}
+
+sub use_env_list{
+ my ($self, $env_name) = @_;
+ return @{$self->{'USE'}->{$env_name}};
+}
+
+
+################### 'private' members ###################
+
+sub drop_ext{
+ my ($self, $filename) = @_;
+ while ($filename =~ /\.tex$/){
+ while ($filename !~ /\.$/ ) { chop($filename); }
+ chop($filename);
+ }
+ return $filename;
+}
+
+sub add_ext{
+ my ($self, $filename) = @_;
+ $filename.='.tex' if $filename !~ /\.tex$/;
+ return $filename;
+}
+
+# look at $word, and swap all occurances of $char_find with
+# $new_char if they are not in a {...} environment
+
+sub swap_exterior_char{
+ my ($self, $char_find, $new_char, $word) = @_;
+ my @new_word = ();
+ my $exterior = 0;
+ foreach (split('', $word)){
+ if ($_ eq '{'){
+ $exterior++;
+ next;
+ }
+
+ if ($_ eq '}'){
+ $exterior--;
+ next;
+ }
+
+ if ($exterior == 0 && $_ eq $char_find){
+ push(@new_word, $new_char);
+ }
+ else{
+ push(@new_word, $_);
+ }
+ }
+ return join('',@new_word);
+}
+
+# return unique elements from a list
+sub uniq{
+ my ($self, @list) = @_;
+ my %seen = ();
+ my @uniqu = grep { ! $seen{$_} ++ } @list;
+ return @uniqu;
+}
+
+
+# binary search
+sub find_elem{
+ my ($self, $elem, @list) = @_;
+
+ local *search_elem = sub
+ {
+ my ($a, $b) = @_;
+ my $m = int(($a + $b)/2);
+ return $m if $list[$m] eq $elem;
+ return -1 if ($a >= $b);
+ return ($list[$m] le $elem)?search_elem($m+1,$b):search_elem($a,$m-1);
+ };
+
+ return search_elem(0, $#list);
+}
+
+# edit distance between two strings
+# insertions, deletions, replacement, transposition
+sub edit_dist{
+ my ($self, $s1, $s2) = @_;
+ my $m = length($s1);
+ my $n = length($s2);
+ my @w1 = split(//, $s1);
+ my @w2 = split(//, $s2);
+
+ # add dummy char so we can have nicer indeces
+ unshift(@w1, '*');
+ unshift(@w2, '*');
+
+ # distances matrix
+ my @d;
+
+ # initialize
+ $d[0][0] = 0;
+ for (my $i = 1; $i <= $m ; $i++) { $d[$i][0] = $i;}
+ for (my $i = 1; $i <= $n ; $i++) { $d[0][$i] = $i;}
+
+ # compute
+ for (my $i = 1; $i <= $m ; $i++){
+ for (my $j = 1; $j <= $n ; $j++){
+ my @possibilities = ($d[$i-1][$j-1] + ($w1[$i] ne $w2[$j]),
+ $d[$i-1][$j] + 1, $d[$i][$j-1] + 1);
+
+ push(@possibilities, $d[$i-2][$j-2] + 1)
+ if ($i>1 && $j>1 && $w1[$i] eq $w2[$j-1] && $w1[$i-1] eq $w2[$j]);
+
+ $d[$i][$j] = $self->minimum(@possibilities);
+ }
+ }
+ return $d[$m][$n];
+}
+
+sub minimum{
+ my ($self, @list) = @_;
+ my $result = shift(@list);
+ map {$result = $_ if $result ge $_} @list;
+ return $result;
+}
+
+
+1;
diff --git a/Master/texmf-dist/source/latex/stex/bin/allgen b/Master/texmf-dist/source/latex/stex/bin/allgen
new file mode 100755
index 00000000000..4728d89ee56
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/allgen
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+if [[ -z $STEX_CONTENT_HOME ]]
+then
+ echo "STEX_CONTENT_HOME is not set; please set it in your ~/.bashrc"
+ exit 1
+fi
+
+LIB="$STEX_CONTENT_HOME/slides/lib"
+cat <<'EOF'
+% this file is automatically generated by allgen
+% Note: This hack is needed to make mikoslides and problems work together.
+\PassOptionsToPackage{solutions,notes,pts,min}{problems}
+EOF
+
+sed -e '/\\begin{document}/ i\
+\\usepackage{problems}
+' $LIB/pre.tex | \
+ grep -v '^\\def\\snippets'
+
+cat <<'EOF'
+EOF
+
+for file in *.tex
+do
+ prefix=${file%.tex} # file name without .tex suffix
+ [[ $prefix != "all" ]] && echo -e "\\subsection{${prefix//_/\\\\_}} \n \\input{$prefix}" # in subsection replace "_" by "\_"
+done
+
+cat $LIB/post.tex
diff --git a/Master/texmf-dist/source/latex/stex/bin/bms b/Master/texmf-dist/source/latex/stex/bin/bms
new file mode 100755
index 00000000000..52f1002c0d9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/bms
@@ -0,0 +1,340 @@
+#!/usr/bin/perl -w
+
+#######################################################################################
+# A tool for building a default module usage structure. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/bms$ #
+# $Date: 2005-10-04 10:47:41 -0500 (Tue, 04 Oct 2005) $ $Rev: 4371 $ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use File::Path;
+use Pod::Usage;
+use Modparse;
+
+
+##########################################
+# Command Line processing
+##########################################
+
+my $input="-", my $graph_output='', my $graph_root='',
+my $verbose=0, my $stop_at_end=0;
+my $show_definitions=0, my $show_modules = 0;
+my %arg_snippath; my @snippathList;
+
+$main::path_new='';
+$main::new_name='';
+
+GetOptions("path=s" => \%arg_snippath,
+ "defpath=s" => \@snippathList,
+ "graph=s" => \$graph_output,
+ "opath=s" => \$main::path_new,
+ "output=s" => \$main::new_name,
+ "root=s" => \$graph_root,
+ "definitions" => sub {$show_definitions = 1;},
+ "modules" => sub {$show_modules = 1;},
+ "stop" => sub {$stop_at_end = 1;},
+ "verbose" => sub {$verbose = 1;},
+ "help" => sub {pod2usage(2);});
+
+$input = $ARGV[0] if ($#ARGV>=0);
+
+##########################################
+# .tex data reading
+##########################################
+
+$main::no_name_modules = 0;
+%main::definition_module = ();
+@main::definitions_list = ();
+
+%main::module_definitions = ();
+%main::used_modules = ();
+@main::modules_list = ();
+
+my $mp = Modparse->new(snippathList=>\@snippathList,
+ snippath=>\%arg_snippath,
+ stopAtEnd=>$stop_at_end,
+ verbose=>$verbose,
+ requireStatus=>'exclude',
+ onlyModuleLines=>1,
+ onBeginModule=>sub {
+ if (!defined $_[0]->{module_id}) {
+ $_[0]->{module_id} = "MOD".$main::no_name_modules;
+ $main::no_name_modules++; }
+ $_[0]->{defines} = '';
+ },
+ onEveryLine=>sub {
+ if ($_[0]->{simple_tex} =~ /\\(sym|abbr|ell)def\{\\([^\}]+)\}/) {
+ my $data = $2;
+ $_[0]->{defines} .= "$data;";
+ $main::definition_module{$data} = $_[0]->{module_id};
+ push(@main::definitions_list, $data);
+ } elsif ($_[0]->{simple_tex} =~ /\\STRlabel\{([^\}]*)\}/){
+ my $data = "L:$1";
+ $_[0]->{defines} .= "$data;";
+ $main::definition_module{$data} = $_[0]->{module_id};
+ push(@main::definitions_list, $data);
+ }
+ $_[0]->{module_content} .= $_[0]->{simple_tex};
+ },
+ onEndModule=>sub {
+ chop($_[0]->{defines}) if $_[0]->{defines};
+ $main::module_definitions{$_[0]->{module_id}} = $_[0]->{defines};
+ push(@main::modules_list, $_[0]->{module_id});
+ my $module_refs = '';
+ foreach my $def(@main::definitions_list){
+ next if $main::definition_module{$def} eq $_[0]->{module_id};
+ next unless $module_refs !~ /$main::definition_module{$def}/;
+ if ($def =~ /^L\:(.*)/){
+ $module_refs .= "$main::definition_module{$def};"
+ if ($_[0]->{module_content} =~ /\\STRcopy\{$1\}/);
+ } else {
+ $module_refs .= "$main::definition_module{$def};"
+ if ($_[0]->{module_content} =~ /\\$def/);
+ }
+ }
+ chop($module_refs) if $module_refs;
+ $main::used_modules{$_[0]->{module_id}} = $module_refs;
+ });
+
+##################################################################
+# Internal routines for BMS
+##################################################################
+
+%main::bms = ();
+
+# add a dummy module that uses nothig, such that any other module uses at least something
+sub addroot {
+ foreach my $module(@main::modules_list){
+ next if $main::used_modules{$module};
+ $main::used_modules{$module} = $graph_root;
+ }
+ push(@main::modules_list, $graph_root);
+ $main::module_definitions{$graph_root}='';
+ $main::used_modules{$graph_root}='';
+}
+# end addroot
+
+sub included {
+ my ($a1_ref, $a2_ref) = @_;
+ my $ok;
+ foreach my $elem (@$a1_ref){
+ $ok = 0;
+ foreach (@$a2_ref){
+ if ($elem eq $_){
+ $ok=1;
+ last; }}
+ return 0 unless $ok;}
+ return 1;
+}
+
+# find if a module uses another module
+sub can_go{
+ my ($src,$dest) = @_;
+ return 1 if $src eq $dest;
+ foreach (split(/;/, $main::bms{$src})){
+ return 1 if can_go($_,$dest);
+ }
+ return 0;
+}
+# end can_go
+
+# find the actual module structure
+sub find_bms{
+ my @added_modules, my @can_add, my @to_look, my @next_step;
+
+ %main::bms=();
+ @to_look = @main::modules_list;
+ @added_modules = ();
+
+ while($#main::modules_list != $#added_modules){
+
+ @can_add=(); @next_step=();
+
+ foreach my $module(@to_look){
+ my @temp = split(/;/, $main::used_modules{$module});
+ included(\@temp,\@added_modules)?push(@can_add,$module):push(@next_step,$module);
+ }
+ @to_look = @next_step;
+
+ foreach my $module(@can_add){
+
+ my @uses = split(/;/,$main::used_modules{$module});
+ my $change = 1;
+ while ($change){
+ $change = 0;
+ foreach my $f1(@uses){
+ foreach my $f2(@uses){
+ next if $f1 eq $f2;
+ if (can_go($f1,$f2)){ # i.e. f2 used by f1 => can remove f2
+ my @new_uses;
+ foreach (@uses){
+ push(@new_uses,$_) unless ($_ eq $f2);
+ }
+ @uses = @new_uses;
+ $change = 1;
+ last;
+ }
+ }
+ last if $change;
+ }
+ }
+ $main::bms{$module} = join(";",@uses);
+ push(@added_modules,$module);
+ }
+ }
+}
+# end find_bms
+
+# print the content of %bms in a .dot file; note: may change %bms by adding dummy root
+sub printgraph {
+ my $out = shift;
+
+ addroot if $graph_root;
+
+ open(FOUT,">$out") or die "Can't write $out\n";
+ print FOUT "digraph MS {\n";
+ while (my ($module, $uses) = each %main::bms){
+ $uses =~ s/-/_/g;
+ $module =~ s/-/_/g;
+ if ($uses){
+ if ($uses =~ /;/){
+ print FOUT "$module -> {$uses};\n";
+ } else {
+ print FOUT "$module -> $uses;\n";
+ }
+ } else {
+ print FOUT "$module [shape=box color=red];\n";
+ }
+ }
+ print FOUT "}\n";
+ close(FOUT);
+}
+# end printgraph
+
+# print the list of definitions
+sub printdefinitions{
+ while (my ($module,$def) = each %main::module_definitions){
+ print "$module:\n" if $def;
+ foreach (split(/;/,$def)){
+ print "\t$_\n";
+ }
+ }}
+# end printdefinitions
+
+#print the list of modules
+sub printmodules{
+ while (my ($module,$uses) = each %main::used_modules){
+ print "'$module' uses:\n $uses\n\n\n";
+ }}
+#end printmodules
+
+
+# wite the new .tex file, with found module usage, in given path
+sub writenew {
+ my ($filename) = @_;
+ $main::no_name_modules = 0;
+ my $wmp = Modparse->new(snippathList=>\@snippathList,
+ snippath=>\%arg_snippath,
+ stopAtEnd=>$stop_at_end,
+ verbose=>$verbose,
+ requireStatus=>'exclude',
+ onlyModuleLines=>0,
+ onBeginFile=> sub {
+ $_[0]->{'new_content'.$_[0]->{depth}} = '';
+ },
+ onBeginModule=>sub {
+ if (!defined $_[0]->{module_id}) {
+ $_[0]->{module_id} = "MOD".$main::no_name_modules;
+ $main::no_name_modules++; }
+ my $new_uses = $main::bms{$_[0]->{module_id}};
+ if (defined $new_uses) {
+ $new_uses =~ s/;/,/g;
+ $new_uses="{$new_uses}" if $new_uses =~ /,/;
+ my $arg = $_[0]->{module_args};
+ my @new_arg=();
+ my $done = 0;
+ while ($arg =~ /^([\w-]+)=(([\w-]+)|(\{[\w,-]+\}))/){
+ if ($1 eq 'uses'){
+ push(@new_arg,"$1=$new_uses")if $new_uses;
+ $done = 1;
+ } else {
+ push(@new_arg,"$1=$2");
+ }
+ $arg=substr($arg,length($1)+length($2)+1);
+ $arg=substr($arg,1) if ($arg =~ /^,/);
+ }
+ if ($new_uses) {
+ push(@new_arg,"uses=$new_uses") unless $done; }
+ $_[0]->{original} = "\\begin{module}\[".join(',',@new_arg)."\] ". $_[0]->{comment}. "\n";
+ }
+ },
+ onEveryLine=>sub {
+ $_[0]->{'new_content'.$_[0]->{depth}} .= $_[0]->{original};
+ },
+ onEndFile=> sub {
+ my $filename = ($main::path_new).'/'.$_[0]->{filename};
+ my $path = $filename;
+ while ($path !~ m!\/$!) { chop($path); }
+ mkpath($path);
+ $filename = $path.'/'.$main::new_name if ($main::new_name && $_[0]->{depth} == 1);
+ print "Writing $filename\n" if $_[0]->{pack}->{verbose};
+ open(FS, ">$filename") or die "Cannot write $filename\n";
+ print FS $_[0]->{'new_content'.$_[0]->{depth}};
+ close(FS);
+ });
+
+ $wmp->execute($filename);
+}
+
+
+#############################################################
+# Start program
+#############################################################
+
+$mp->execute($input);
+
+printdefinitions if $show_definitions;
+printmodules if $show_modules;
+
+if ($graph_output || $main::path_new){
+ find_bms;
+ writenew($input) if $main::path_new;
+ printgraph($graph_output) if $graph_output;
+}
+
+__END__
+
+
+=head1 SYNOPSIS
+
+bms <input filename> [options]
+
+Options:
+
+ --path XXX specify the value of \XXX (some snippath) in case it is
+ = somePath not defined in the processed .tex file
+ --defpath XXX specify which \XXX (snippath definitions) to look for
+ --graph <filename> if mentioned, produce the suggested module structure as
+ a graphviz digraph. (.dot file)
+ --opath <pathname> if mentioned, produce same input file/s (including
+ dependencies) in specified path with suggested
+ module structure.
+ --output <name> the new name of the main .tex file in specified path.
+ --root <name> if mentioned, a father module is included, so that all
+ other modules descend from it. generally the course name.
+ --stop stop when \end{document} is found; default is to go on.
+ --definitions show a list of all definitions.
+ --modules show a list of all modules.
+ --verbose verbose on.
+ --help this screen.
+
+
+ This program has the purpose of computing a default module structure, according
+to actual necessities.
+ Example:
+ ./bms -i slides.tex -g out.dot
+ ./bms -i slides.tex -s -g - | dot -Tps > out.ps; ggv out.ps
diff --git a/Master/texmf-dist/source/latex/stex/bin/checksum b/Master/texmf-dist/source/latex/stex/bin/checksum
new file mode 100755
index 00000000000..7e521deaa7c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/checksum
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -w
+#######################################################################################
+# A tool for updating .dtx files with a correspodning checksum counter #
+# Copyright (c) 2010, Deyan Ginev, released under the Gnu General Public License (GPL)#
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: https://svn.kwarc.info/repos/stex/trunk/bin/checksum$ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use Modparse;
+use Pod::Usage;
+use Cwd qw(abs_path);
+
+####### start of program #######
+my $mode = "update"; #Default is update
+my $action = { "update" => \&update, "disable" => \&disable, "enable"=>\&enable };
+GetOptions("disable" => sub { $mode="disable"; },
+ "enable" => sub { $mode="enable"; },
+ "update" => sub { $mode="update"; });
+
+
+my ($path) = @ARGV;
+$path = abs_path($path);
+my ($volume,$dir,$file) = File::Spec->splitpath( $path );
+my @lines = `cd $dir; pdflatex "\\nonstopmode\\input{$file}"` if ($mode eq "update");
+my ($checksum) = map {$_=~/^\* The checksum should be (\d+)!/; $1;} grep ($_ =~ /^\* The checksum should be (\d+)!/,@lines) if @lines;
+
+open(IN,"<$path") or die "Cannot open DTX source: $path\n";
+@lines = ();
+while (<IN>) {
+ push @lines, &{$$action{$mode}}($_,$checksum);
+}
+close(IN);
+open(OUT,">$path") or die "Cannot write to DTX target: $path\n";
+print OUT join("",@lines);
+close(OUT);
+######### Subroutines ############
+sub update {
+ my $checksum=$_[1]||"1";
+ $_[0]=~s/\\CheckSum\{\d*\}/\\CheckSum{$checksum}/;
+ $_[0];
+}
+
+sub disable {
+ $_[0]=~s/\\CheckSum\{(\d*)\}/\\iffalse\\CheckSum\{$1}\\fi/ unless $_[0]=~/\\iffalse\\CheckSum\{(\d*)\}\\fi/;
+ $_[0];
+}
+
+sub enable {
+ $_[0]=~s/\\iffalse\\CheckSum\{(\d*)\}\\fi/\\CheckSum{$1}/;
+ $_[0];
+}
+
+
+__END__
+
+
+=head1 SYNOPSIS
+
+checksum <input filename> --update|enable|disable
+
+Purpose:
+ Update, enable or disable the \CheckSum macro for a given .dtx source
+
+Example:
+ checksum omd.dtx --update
diff --git a/Master/texmf-dist/source/latex/stex/bin/convert-paths b/Master/texmf-dist/source/latex/stex/bin/convert-paths
new file mode 100755
index 00000000000..55ee72a2370
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/convert-paths
@@ -0,0 +1,56 @@
+#!/usr/bin/perl -w
+#
+# A script that converts paths in sTeX files from the old \Foosnipppath{bar}
+# to \snippets{foo/bar}, according to the definition of those path macros in
+# paths.sty.
+#
+# Syntax: convert-paths path/to/paths.sty FILES
+#
+# © 2008 Christoph Lange, KWARC, Jacobs University
+
+use File::Copy;
+
+my %map;
+
+my $SNIPPATHRE = '\\\\[[:alnum:]]+(?i:snip|pic)path';
+
+if (open(P, shift(@ARGV))) {
+ print STDERR "Mapping:\n";
+ while (<P>) {
+ if (/^\\def($SNIPPATHRE)#1\{(\\KWARCslides\{[^#]+)#1\}/o) {
+ printf STDERR "\t%s -> %s\n", $1, $2;
+ $map{$1} = $2;
+ }
+ }
+ close(P);
+}
+else {
+ die "Could not open paths.sty";
+}
+
+print STDERR "Processing files:\n";
+while ($#ARGV >= 0) {
+ my $filename = shift(@ARGV);
+ print STDERR "\t$filename\n";
+ copy($filename, "$filename~") || print STDERR "\t\tWARN: could not create backup\n";
+ if (open(T, $filename)) {
+ # slurp the file into a string
+ local $/;
+ $data = <T>;
+ $data =~ s/($SNIPPATHRE)\{([^}]+)\}/
+ $map{$1} ? "$map{$1}$2\}"
+ : ((print STDERR "\t\tWARN: could not replace $1\n"), "$1\{$2}")
+ /oxge;
+ close T;
+ if (open(T, ">$filename")) {
+ print T $data;
+ close T;
+ }
+ else {
+ print STDERR "\t\tWARN: could not save replacement\n";
+ }
+ }
+ else {
+ print STDERR "\t\tWARN: could not open file\n";
+ }
+}
diff --git a/Master/texmf-dist/source/latex/stex/bin/filedate b/Master/texmf-dist/source/latex/stex/bin/filedate
new file mode 100755
index 00000000000..8149b5e57bd
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/filedate
@@ -0,0 +1,42 @@
+#!/usr/bin/perl -w
+#######################################################################################
+# A tool for updating .dtx files with a given package date. #
+# Copyright (c) 2010, Deyan Ginev, released under the Gnu General Public License (GPL)#
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: https://svn.kwarc.info/repos/stex/trunk/bin/filedate$ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use Modparse;
+use Pod::Usage;
+use Cwd qw(abs_path);
+
+my ($file,$date) = @ARGV;
+$file = abs_path($file);
+open(IN,"<$file");
+my @lines = ();
+while (<IN>) {
+ if ($_ =~ /\\Provides(Package|Class)/) {
+ $_ =~ s/\[(.*?)\s/\[$date /;
+ }
+ push @lines, $_;
+}
+close(IN);
+open(OUT,">$file");
+print OUT join("",@lines);
+close(OUT);
+
+__END__
+
+
+=head1 SYNOPSIS
+
+filedate <input filename> <newdate>
+
+Purpose:
+ Update the dates for a \ProvidePackage invocation in a given .dtx source
+
+Example:
+ filedate omdoc.dtx "2010/06/24"
diff --git a/Master/texmf-dist/source/latex/stex/bin/gen-symdef-table.pl b/Master/texmf-dist/source/latex/stex/bin/gen-symdef-table.pl
new file mode 100755
index 00000000000..cd6da0dc06a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/gen-symdef-table.pl
@@ -0,0 +1,85 @@
+#!/usr/bin/perl
+use Cwd;
+
+die 'Set your environment variable "KWARC_HOME" and try again.' if !($ENV{KWARC_HOME});
+
+open(PATH_STY,"$ENV{KWARC_HOME}/projects/stex/sty/paths.sty") || die "can't open path.sty";
+while ($line=<PATH_STY>) {
+ $line =~ m/\\def\\(\w*).*\/([\w-]*)\/#1/;
+ $macros{$2}=$1; # dir -> macro
+}
+close(PATH_STY);
+
+print <<PRE_TEX;
+\\documentclass[notes]{mikoslides}
+\\usepackage{amssymb}
+\\usepackage{latexml,stex,program}
+\\usepackage{ded,calbf,myindex}
+\\usepackage{tikz,multicol}
+\\usepackage{paths}
+\\usepackage[show]{ed}
+\\def\\bsp{\\sl\\color{green}}
+\\def\\hrcr#1#2{#2}
+
+\\begin{document}
+PRE_TEX
+
+chdir("$ENV{KWARC_HOME}/teaching/snippets/");
+
+foreach $dir (<*/>) {
+ $dir = substr($dir,0,-1);
+ if (@ARGV){ # take all dirs listet in @ARGV
+ next if !(grep(/$dir/,@ARGV))
+ } else { # take all dirs but those listed here
+ # next if $dir lt "b"; #test break
+ # next if $dir gt "comb"; #test break
+ next if grep(/$dir/,qw(PIC activemath admin eLearning lib kwarc mathweb mbase old.assignments omdoc openmath physml quantumcomputing sTex search semweb setthy spl1 term-indexing trs varia xml)); #skip these
+ next if grep(/$dir/,qw(ai codeml fa graphs-trees kr mws nlfrags pl0 pl1 prolog regexp)); #broken dirs
+ }
+ print "\\begin{omgroup}{$dir}\n";
+ foreach $file (<${dir}/en/*.sms>) {
+ $file =~ m/([^\/]*).sms/;
+ $prefix = $1;
+ next if grep(/$prefix/,qw(all admin));
+ print "\\begin{omgroup}{$prefix}\n";
+ print "\\requiremodules[exclude]{\\$macros{$dir}\{en/$prefix}\}\n";
+ open (FILE,"./$file") || die "can't open $file";
+ while ($line=<FILE>) {
+ $line =~ s/%.*//;
+ if ($line =~ m/begin{module}/) { # many "begin{module}" in one line yields invalid stex!!!
+ $uses = ($line =~ m/id=([\w-]*)/) ? "[uses=$1]" : "";
+ print "\\begin{module}$uses\n"; # symbols after inner modules yields stex errors!!!
+ print "\\begin{verbatim}\n";
+ print "\\requiremodules[exclude]{\\$macros{$dir}\{en/$prefix}\}\n";
+ print "\\begin{module}$uses\n";
+ print "\\end{verbatim}\n";
+# print "\\begin{multicols}{2}\n";
+ }
+ if ($line =~ m/\\symdef{([^}]*)}(?:\[(\d)\])?({\\assoc\[)?/) {
+ $symb = $1;
+ $arity = $2;
+ $isAssoc = $3 ne "";
+ $defArity = $isAssoc ? 4 : $arity;
+ $exampleArity = $arity eq "" ? 0 : $defArity;
+ $arityOrAssoc = $isAssoc ? "assoc" : $arity;
+ $dummy_args = join("",map {"{$_}"} (qw(a b c d e f g h m)[0..$exampleArity-1]));
+ $dummy_args = "{a,b,c,d}" if $isAssoc;
+ $escaped_dummy_args = $dummy_args;
+ $escaped_dummy_args =~ s/{/\\{/g;
+ $escaped_dummy_args =~ s/}/\\}/g;
+# print "{\\tt{$symb\[$arityOrAssoc\]}} $escaped_dummy_args\\hfill";
+ print "{\\tt{$symb$escaped_dummy_args}} \\hfill ";
+ print "\$\\$symb$dummy_args\$\\\\\n";
+ }
+ if ($line =~ m/end{module}/) { # several "end{mdoule}" allowed!!!
+# print "\\end{multicols}\n";
+ print $line;
+ }
+ }
+ close(FILE);
+ print "\\end{omgroup}\n";
+ }
+ print "\\end{omgroup}\n";
+}
+
+print "\\end{document}";
diff --git a/Master/texmf-dist/source/latex/stex/bin/idcheck b/Master/texmf-dist/source/latex/stex/bin/idcheck
new file mode 100755
index 00000000000..d832ac7788e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/idcheck
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+use strict;
+
+use Getopt::Long;
+use File::Path;
+use Pod::Usage;
+use TexId;
+
+
+
+my $tex = TexId->new(progress => 1);
+
+
+
+$tex->load_file_data('../GenCS/notes.tex');
+
+my ($a, $b) = $tex->environments();
+print $b, "\n";
+
+print $tex->snippath(), "\n";
+
+$tex->parse('../GenCS/notes.tex');
+#print join(', ', $tex->use_env_list('omtext')), "\n";
+
+#print $tex->edit_dist('anaIU', 'aanUI'), "\n";
+
+$tex->check_uniq;
+$tex->check_prefix;
+$tex->apply_changes;
diff --git a/Master/texmf-dist/source/latex/stex/bin/msplit b/Master/texmf-dist/source/latex/stex/bin/msplit
new file mode 100755
index 00000000000..cf178ce9b5f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/msplit
@@ -0,0 +1,140 @@
+#!/usr/bin/perl -w
+##############################################################################################
+# Program: msplit (a utility for splitting STeX documents along module boundaries)
+##############################################################################################
+# $URL: svn://kwarc.faculty.iu-bremen.de/kohlhase/kwarc/projects/content/bin/msplit$
+# $Rev: 3722 $; last modified by $Author: $
+# $Date: 2005-07-27 03:22:19 +0200 (Wed, 27 Jul 2005) $
+# Copyright (c) 2005 Ioan Sucan
+##############################################################################################
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License [http://www.gnu.org/copyleft/gpl.html]
+# for more details.
+##############################################################################################
+use strict;
+use Getopt::Long;
+use File::Path;
+use Pod::Usage;
+
+my $input='-', my $output='-', my $path='', my $verbose=0, my $stop_at_end=0;
+my $flag = "include";
+my $header='', my @hdr_data;
+
+sub texf {
+ my $fn = shift;
+ $fn.='.tex' if $fn !~ /\.tex$/;
+ return $fn; }
+
+sub write_file_data{
+ my $filename = shift;
+ open(FS,$filename) or die "Cannot write $filename\n";
+ print FS @_;
+ close(FS); }
+
+# remove the last component in a path
+sub justpath{
+ my $arg = shift;
+ return '' if ($arg !~ m!\/!);
+ while ($arg !~ m!\/$!) {chop($arg);}
+ return $arg; }
+# end justpath
+
+
+sub go {
+ my ($input, $output) = @_;
+ my $path = justpath($output);
+
+ my @module_file=();
+ my @out_data=();
+
+ print "Splitting $input...\n" if $verbose;
+ `mv $output $output~` if (-e $output);
+ $input="$input~" if ($input eq $output);
+
+ open(FIN,$input) or die "Can't open $input\n";
+ my $in_module=0; my $path_name;
+ foreach (<FIN>){
+ chomp;
+ /([^%]*)((%.*)?)/;
+ ($_,my $comment)=($1,$2);
+ if (/\\begin\s*\{module\}/){
+ $_ =~ s/\s//g;
+ /id=([\w-]*)/;
+ my $module_name = $1;
+ $path_name = "$path$module_name.tex";
+ print "$path_name\n" if $verbose;
+ `mv $path_name $path_name~` if (-e $path_name);
+ push(@module_file,@hdr_data) if $header;
+ push(@module_file,"\n$_$comment\n");
+ push(@out_data,"\\requiremodules[$flag]{$module_name}\n");
+ $in_module=1;
+ next; }
+ if (/\\end\s*\{module\}/){
+ $_ =~ s/\s//g;
+ push(@module_file,"$_$comment\n");
+ mkpath(justpath($path_name));
+ write_file_data(">$path_name",@module_file);
+ $in_module=0;
+ next; }
+ if ($stop_at_end && /\\end\s*\{document\}/){
+ $_ =~ s/\s//g;
+ push(@out_data,"$_$comment\n");
+ last; }
+ $_="$_$comment\n";
+ if ($in_module) {push(@module_file,$_);}
+ else {push(@out_data,$_); }}
+ close(FIN);
+ mkpath($path) if $path;
+ write_file_data(">$output",@out_data); }
+
+GetOptions("output=s" => \$output,
+ "path=s" => \$path,
+ "header=s" => \$header,
+ "exclude" => sub { $flag = "exclude"; },
+ "verbose" => sub { $verbose=1; },
+ "stop" => sub { $stop_at_end=1; },
+ "help" => sub { pod2usage(2)});
+
+$input = $ARGV[0] if ($#ARGV>=0);
+die "Input file does not exist\n" if (! defined $input || ! -e $input);
+$output = $input if (! defined $output);
+
+if ($header && -e $header) {
+ open(HDR,$header);
+ @hdr_data = <HDR>;
+ close(HDR); }
+
+$path.='/' if $path && $path !~ m!\/$!;
+go($input,$path.$output);
+print "Done.\n" if $verbose;
+
+__END__
+
+
+=head1 SYNOPSIS
+
+msplit <inputfile> [options]
+
+Options:
+
+ --output filename of new main .tex file; default: same as input
+ --path path where to generate the new documents; '.' by default
+ --header file to be copied at beginning of all new module files
+ --exclude modules exluded by default; if not mentioned, modules
+ are included by default
+ --verbose verbose on
+ --stop stop when \end{document} is found; default is to go on
+ --help this screen
+
+
+
+ This program splits a .tex file into more files, each containing a module.
+ Example usage:
+ ./msplit slides.tex -o sl.tex -p ./modules -s
diff --git a/Master/texmf-dist/source/latex/stex/bin/old/Makefile b/Master/texmf-dist/source/latex/stex/bin/old/Makefile
new file mode 100644
index 00000000000..d2ae41c6401
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/old/Makefile
@@ -0,0 +1,28 @@
+all: src exec
+
+src: idcheck.l defcon.l modstr.l
+ flex -ft idcheck.l > idcheck.yy.c
+ flex -ft defcon.l > defcon.yy.c
+ flex -f+t modstr.l > modstr.yy.cc
+
+idcheck: idcheck.l
+ flex -f $<
+ gcc lex.yy.c -lfl -o idcheck
+
+defcon: defcon.l
+ flex -f $<
+ gcc lex.yy.c -lfl -o defcon
+
+modstr: modstr.l
+ flex -f+ $<
+ g++ lex.yy.cc -lfl -o modstr
+
+exec: idcheck.yy.c defcon.yy.c modstr.yy.cc
+ gcc idcheck.yy.c -lfl -o idcheck
+ gcc defcon.yy.c -lfl -o defcon
+ g++ modstr.yy.cc -lfl -o modstr
+
+clean:
+ rm -f *.yy.c *.yy.cc *~
+
+distclean: clean
diff --git a/Master/texmf-dist/source/latex/stex/bin/old/defcon.l b/Master/texmf-dist/source/latex/stex/bin/old/defcon.l
new file mode 100644
index 00000000000..ad758086145
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/old/defcon.l
@@ -0,0 +1,91 @@
+%{
+
+#include <string.h>
+
+char ltxml[100];
+char fext[6] = ".ltxml";
+
+char symstr[200];
+char ltxmlstr[200];
+
+int i,t,c,tmp,q;
+FILE *lt;
+
+%}
+
+ID [a-zA-Z0-9._:\|-]*
+NR [0-9]*
+
+%s idenv env sym
+
+%%
+
+"\\begin{module}"(" ")*"[" BEGIN(idenv);
+<idenv>"]" BEGIN(INITIAL);
+
+<idenv>"id="{ID} {
+ for (i=3; i<yyleng; i++) ltxml[i-3]=yytext[i];
+ t=yyleng-3;
+ tmp=strlen(fext);
+ for (i=0; i<tmp; i++) ltxml[t+i]=fext[i];
+ t=t+tmp;
+ ltxml[t]=0;
+ if (!q) printf("File %s\n",ltxml);
+ lt = fopen(ltxml,"w");
+ BEGIN(env);
+}
+
+<env>"symdef{\\"{ID}"}"(.)* {
+i=7;
+while (yytext[i]!='}'){
+ symstr[i-7]=yytext[i];
+ i++;
+}
+symstr[i-7]=0;
+BEGIN(sym);
+}
+
+<sym>"latexmldef{"(.)* {
+i=11;
+while (i<yyleng){
+ ltxmlstr[i-11]=yytext[i];
+ i++;
+}
+ltxmlstr[i-12]=0;
+fprintf(lt,"DefConstructor('\%s{}...{}','%s')\n",symstr,ltxmlstr);
+BEGIN(env);
+}
+
+<env,sym>"\\end{module}" {
+fclose(lt);
+BEGIN(INITIAL);
+}
+
+\n c++;
+. c++;
+
+%%
+
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ if (argc==1) {
+ printf("arguments expected: [-q] filename(s)\n");
+ } else {
+ q=0;
+ i=1;
+ if (argv[1][0]=='-'){
+ i++;
+ if (argv[1][1]=='q') q=1;
+ }
+ while (i<argc){
+ if (!q) printf("Processing %s...\n",argv[i]);
+ yyin = fopen(argv[i], "r");
+ c=0;
+ yylex();
+ fclose(yyin);
+ i++;
+ }
+ }
+}
diff --git a/Master/texmf-dist/source/latex/stex/bin/old/idcheck.l b/Master/texmf-dist/source/latex/stex/bin/old/idcheck.l
new file mode 100644
index 00000000000..9b1603527d2
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/old/idcheck.l
@@ -0,0 +1,130 @@
+%{
+#include <string.h>
+int ur,ok,a,lin,i,j,c,n,m,d,s,q,fe,f,for_ok,curr_lin;
+typedef char idstr[50];
+idstr l[5000], r[5000];
+%}
+
+ID [a-zA-Z0-9._:\|-]*
+WS [\n\t ]*
+
+%s env inenv fid foc
+
+%%
+
+"\\begin"{WS}"{"("proof"|"example")"}"{WS}"[" {
+fe=1;
+for_ok=0;
+curr_lin=lin;
+BEGIN(env); // stuff that "for" keyval is recommended for
+}
+
+"\\begin"{WS}"{"("proof"|"example")"}" if (f) printf("Missing 'for' at line %d\n",lin);
+
+("\\begin"{WS}"{"("definition"|"assertion"|"proof"|"omtext"|"example"|"step"|"pfcase"|"module")"}"{WS}"[")|("\\justification"{WS}"[") {
+fe=0;
+BEGIN(env);
+}
+
+<env>"]" {
+if (fe && !for_ok && f) printf("Missing 'for' at line %d\n",curr_lin);
+BEGIN(INITIAL);
+}
+
+<env>"id"{WS}"="{WS} BEGIN(fid);
+
+<fid>{ID} {
+for (i=0; i<yyleng; i++) l[n][i]=yytext[i];
+l[n][yyleng]=0;
+if (s) printf("%s\n",l[n]);
+n++;
+BEGIN(env);
+}
+
+<env>("for"){WS}"="{WS} {
+for_ok=1;
+BEGIN(foc);
+}
+<env>("continues"|"for"|"uses"|"premises"){WS}"="{WS} BEGIN(foc);
+
+<foc>{ID} {
+for (j=0; j<yyleng; j++) r[m][j]=yytext[j];
+r[m][yyleng]=0;
+m++;
+BEGIN(env);
+}
+
+<env>("premises"|"uses"){WS}"="{WS}"{" BEGIN(inenv);
+
+<inenv>{ID} {
+strncpy(r[m],yytext,yyleng);
+r[m][yyleng]=0;
+m++;
+}
+
+<inenv>"}" BEGIN(env);
+
+\n {c++;lin++;}
+. c++;
+
+%%
+
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ if (argc==1) {
+ printf("Usage: idcheck [-q | -s | -f] filename(s)\n");
+ printf("Option -s shows all detected IDs. \n");
+ printf("Option -f shows line numbers for examples and proofs\n that have 'for' keyval missing. \n");
+ printf("Option -q for quiet mode.\n");
+ } else{
+ s=0; q=0;
+ a=1;
+ if (argv[1][0]=='-') {
+ a++;
+ for (j=1; j<strlen(argv[1]); j++)
+ if (argv[1][j]=='s') s=1; else
+ if (argv[1][j]=='q') q=1; else
+ if (argv[1][j]=='f') f=1;
+ }
+ d=0;
+ while (a<argc){
+ if (!q) printf("Parsing %s...\n",argv[a]);
+ yyin = fopen(argv[a] , "r");
+ c = 0;
+ lin = 1;
+ n = 0;
+ m = 0;
+ yylex();
+ fclose(yyin);
+ if (!q) printf("%d characters skipped. Found %d IDs. \n",c,n);
+ if (!q) printf("Checking for duplicates...\n");
+ for (i=0; i<n; i++)
+ for (j=i+1; j<n; j++)
+ if (strcmp(l[i],l[j])==0) {
+ printf("ID=%s is a duplicate in %s\n",l[i],argv[a]);
+ d++;
+ }
+ if (!q) printf("Found %d duplicates.\n",d);
+ if (!q) printf("Checking references... (found %d)\n",m);
+ ur=0;
+ for (i=0;i<m; i++){
+ ok=0;
+ for (j=0; j<n; j++)
+ if (strcmp(r[i],l[j])==0){
+ ok=1;
+ break;
+ }
+ if (!ok) {
+ printf("Unmatched reference for ID=%s\n",r[i]);
+ ur++;
+ }
+ }
+ if (!q) printf("Found %d unmatched references.\n",ur);
+ a++;
+ }
+ return d+ur;
+ }
+ return 1;
+}
diff --git a/Master/texmf-dist/source/latex/stex/bin/old/modstr.l b/Master/texmf-dist/source/latex/stex/bin/old/modstr.l
new file mode 100644
index 00000000000..ae0101147c5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/old/modstr.l
@@ -0,0 +1,137 @@
+%{
+#include <iostream>
+#include <string>
+#include <map>
+#include <vector>
+using namespace std;
+
+
+const int indent = 4;
+const char start_char = '*';
+
+typedef struct {
+ vector<string> defs,list;
+ int father;
+} nodetype;
+
+map<string,nodetype> g;
+
+string vertex, data;
+int d, miss, skip;
+
+int max(int, int);
+
+%}
+
+ID [a-zA-Z0-9._:\|-]*
+SEP [,;]*
+WS [\n\t ]*
+M [^}]*
+
+%x in_module found_vertex in_module_cont mdef
+%x found_one_child found_more_children
+
+%%
+
+<INITIAL>"\\begin"{WS}"{module}"{WS}"[" BEGIN(in_module);
+
+<in_module>"id"{WS}"=" BEGIN(found_vertex);
+<found_vertex>{ID} {
+vertex = YYText();
+g[vertex].father=0;
+if (miss) cout << endl << "<-------- Module '" << vertex
+ << "' -------->" << endl << endl;
+BEGIN(in_module);
+}
+<in_module>"uses"{WS}"=" BEGIN(found_one_child);
+<found_one_child>"{" BEGIN(found_more_children);
+<found_more_children>"}" BEGIN(in_module);
+<found_one_child>{ID} {
+data=YYText();
+if (g[data].list.empty())
+ g[vertex].father=g[data].father+1;
+else
+ g[vertex].father=max(g[data].father+1,g[vertex].father);
+g[data].list.push_back(vertex);
+BEGIN(in_module);
+}
+<found_more_children>{ID} {
+data=YYText();
+if (g[data].list.empty())
+ g[vertex].father=g[data].father+1;
+else
+ g[vertex].father=max(g[data].father+1,g[vertex].father);
+g[data].list.push_back(vertex);
+}
+
+<found_one_child,found_more_children,found_vertex>{SEP}|{WS}
+
+<in_module>"]" BEGIN(in_module_cont);
+
+<in_module,in_module_cont>(.|\n)
+
+<in_module_cont>"\\"("symdef"|"abbrdef"|"elldef"|"aliasdef"){WS}"{"{WS} BEGIN(mdef);
+<mdef>{M} {
+data = YYText();
+g[vertex].defs.push_back(data);
+}
+<mdef>"}" BEGIN(in_module_cont);
+<in_module_cont>"\\end"{WS}"{module}" BEGIN(INITIAL);
+
+<INITIAL>(.|\n) if (miss) cout << YYText();
+
+<*>{WS}(%)(.)*(\n)*
+
+%%
+
+void spc(int n){
+ for(int i=0; i<n; i++) cout << " ";
+}
+
+int max(int a, int b){
+ return a>b?a:b;
+}
+
+void go(map<string, nodetype > ::iterator node, int depth){
+if (skip && node->second.father!=depth) return;
+spc(d);
+cout << start_char << " " << node->first << "{";
+int tmp = node->second.defs.size()-1;
+for (int j=0; j<=tmp; j++){
+ cout << node->second.defs[j];
+ if (j!=tmp) cout << ",";
+}
+cout << "}" << endl;
+d+=indent;
+for (int i=0; i<node->second.list.size(); i++)
+ go(g.find(node->second.list[i]),depth+1);
+d-=indent;
+}
+
+int main(int argc, char** argv){
+miss=0;
+skip=0;
+if (argc==2)
+ if (argv[1][0]=='-')
+ for (int z=1; argv[1][z]!=0; z++)
+ if (argv[1][z]=='m') miss=1; else
+ if (argv[1][z]=='s') skip=1; else
+ if (argv[1][z]=='h') {
+ cout << " Usage: modstr [-s|m|h]\n Input: stdin\n Output: stdout\n";
+ cout << " Options: -s Show module usage only at the deepest level\n";
+ cout << " -m Show text not within a module\n";
+ cout << " -h This help screen\n";
+ return 0;
+ }
+if (miss) cout << "Text NOT within a module:\n" << endl;
+FlexLexer* lex = new yyFlexLexer;
+lex->yylex();
+d=0;
+map<string, nodetype > ::iterator start = g.begin();
+map<string, nodetype > ::iterator stop = g.end();
+cout << endl;
+for(;stop!=start;start++)
+ if (!start->second.father) go(start,0);
+cout << endl;
+return 0;
+}
diff --git a/Master/texmf-dist/source/latex/stex/bin/old/symdef b/Master/texmf-dist/source/latex/stex/bin/old/symdef
new file mode 100755
index 00000000000..b5c789a1c72
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/old/symdef
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Getopt::Long;
+use Pod::Usage;
+
+my $output = "-";
+my $input = "-";
+
+GetOptions("output=s",\$output);
+
+$input = $ARGV[0] if @ARGV;
+
+open(FIN,$input) or die "Can't open input file.";
+open(FOUT,">$output");
+
+my $line;
+
+while ($line=<FIN>){
+ if ($line !~ m/symdef/ && $line !~ m/elldef/ && $line !~ m/abbrdef/){
+ print FOUT $line;
+ next;
+ }
+ if ($line =~ m/\}\[\d,/){
+ print FOUT $line;
+ next;
+ }
+
+ if ($line =~ m/\\(sym|abbr|ell)def\{\\([^\}]+)\}\[(\d)\]([^\n\%]+)(.*)/){
+ print FOUT "\\$1def{\\$2}[$3,name=$2]$4$5\n";
+ } else {
+ if ($line =~ m/\\(sym|ell|abbr)def\{\\([^\}]+)\}([^\n\%]+)(.*)/){
+ print FOUT "\\$1def{\\$2}[0,name=$2]$3$4\n";
+ }
+ }
+}
+
+close(FIN);
+close(FOUT);
+
+
+__END__
+
+=head1 SYNOPSIS
+
+symdef [--output=outputfile] [texfile]
diff --git a/Master/texmf-dist/source/latex/stex/bin/rf b/Master/texmf-dist/source/latex/stex/bin/rf
new file mode 100755
index 00000000000..7de36042620
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/rf
@@ -0,0 +1,63 @@
+#!/usr/bin/perl -w
+
+#######################################################################################
+# A tool for computing the module reuse factor for TEX files. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/rf$ #
+# $Date: 2005-06-29 23:08:10 +0200 (Wed, 29 Jun 2005) $ $Rev: 3147 $ #
+#######################################################################################
+
+use strict;
+use Getopt::Long;
+use Modparse;
+use Pod::Usage;
+
+my $input = "-", my $verbose=0, my $stop_at_end=0;
+my %arg_snippath; my @snippathList;
+
+GetOptions("path=s" => \%arg_snippath,
+ "defpath=s" => \@snippathList,
+ "verbose" => sub { $verbose=1; },
+ "stop" => sub { $stop_at_end=1; },
+ "help" => sub { pod2usage(2)});
+
+$input = $ARGV[0] if ($#ARGV>=0);
+
+$main::lc1 = 0; $main::lc2 = 0;
+my $mp = Modparse->new(snippathList=>\@snippathList,
+ snippath=>\%arg_snippath,
+ stopAtEnd=>$stop_at_end,
+ verbose=>$verbose,
+ onEveryLine=>sub {
+ $main::lc1++;
+ $main::lc2++ if $_[0]->{depth}==1; });
+
+$mp->execute($input);
+my $f = ($main::lc2>0)?$main::lc1/$main::lc2:0;
+print "Reuse factor: $f\n";
+
+__END__
+
+
+=head1 SYNOPSIS
+
+rf <input filename> [options]
+
+ This program computes the reuse factor for a .tex document
+
+ Options:
+ --path XXX specify the value of \XXX (some snippath) in case it is
+ = somePath not defined in the processed .tex file
+ --defpath XXX specify which \XXX (snippath definitions) to look for
+ --stop stop when \end{document} is found; default is to go on
+ --verbose verbose on
+ --help this screen
+
+
+ Example usage:
+ ./rf slides.tex -d snippath -v
+
+ Interpretation:
+ compute the reuse factor for the file slides.tex, look for definitions
+ of \snippath, in verbose mode
diff --git a/Master/texmf-dist/source/latex/stex/bin/rng2dot/ModelRNC.pm b/Master/texmf-dist/source/latex/stex/bin/rng2dot/ModelRNC.pm
new file mode 100644
index 00000000000..53673e37dc8
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/rng2dot/ModelRNC.pm
@@ -0,0 +1,770 @@
+# anything that starts with # is removed until \n (considered as a comment)
+# except in literals;
+#
+# NCName is limited to a-zA-Z0-9.-_
+#
+# no proper support for except nameClass
+# no support for exceptPatterns
+
+package ModelRNC;
+
+use strict;
+use File::Basename;
+
+my $DOCUMENT = '_Document_';
+
+sub new{
+ my ($class) = @_;
+ my $self = {};
+ $self->{literalCount} = 0;
+ bless($self, $class);
+}
+
+# this is the main method of the package
+# it should be called right after new
+sub process{
+ my ($self, $filename) = @_;
+ $self->readfile($filename);
+ $self->clean_rnc;
+ $self->read_topLevel;
+ $self->build_info;
+ # free some memory
+ $self->{DATA} = ''; $self->{FILEPATH} = ''; $self->{GRAPH} = '';
+}
+
+sub Error{
+ my ($self, $msg) = @_;
+ print "'$self->{DATA}'\n";
+ die $msg."\n";
+}
+
+# read a file into $storage;
+# or $self->{DATA} if $storage not given
+sub readfile{
+ my ($self, $filename, $storage) = @_;
+
+ # NOTE: this is not exactly perfect
+ if ($self->{FILEPATH}){
+ $filename = $self->{FILEPATH}.$filename unless -e $filename; }
+ my $basepath = dirname($filename);
+ $basepath .= '/' if ($basepath && $basepath !~ m|/$|);
+ $self->{FILEPATH} = $basepath;
+
+ open(FIN, $filename) or $self->Error("Cout not open '$filename'");
+ my @data = <FIN>;
+ close(FIN);
+
+ # for use in namespace set selection
+ push(@{$self->{LOADEDFILES}}, $filename);
+
+ if (defined $storage){ $$storage = join('',@data); }
+ else { $self->{DATA} = join('',@data); }
+}
+
+# remove lines after ##
+sub remove_annotations{
+ my ($self, $data) = @_;
+ $data = \$self->{DATA} unless $data;
+ do {} while ($$data =~ s/\[[^\]\[]*\]//g);
+ $$data =~ s/\#\#[^\n]*//g;
+}
+
+# remove all lines that start with # except
+# the ones that start with ##
+sub remove_comments{
+ my ($self, $data) =@_;
+ $data = \$self->{DATA} unless $data;
+ $$data =~ s/\#[^\#\n][^\n]*//g;
+ $$data =~ s/\#\n/\n/g;
+}
+
+sub scan_literals{
+ my ($self, $data) = @_;
+ my @litseg; my $seg = 0;
+ $data = \$self->{DATA} unless $data;
+ while ($$data =~ s/\"\"\"((\"{0,2}[^\"])*)\"\"\"/_LITSEG$seg/) { $litseg[$seg++] = $1; }
+ while ($$data =~ s/\'\'\'((\'{0,2}[^\'])*)\'\'\'/_LITSEG$seg/) { $litseg[$seg++] = $1; }
+ while ($$data =~ s/\"([^\"\n]*)\"/_LITSEG$seg/) { $litseg[$seg++] = $1; }
+ while ($$data =~ s/\'([^\'\n]*)\'/_LITSEG$seg/) { $litseg[$seg++] = $1; }
+
+ while ($$data =~ s/_LITSEG(\d+)\s*~\s*_LITSEG(\d+)/_LITSEG$seg/)
+ { $litseg[$seg++] = $litseg[$1].$litseg[$2]; }
+
+ while ($$data =~ s/_LITSEG(\d+)/!LIT$self->{literalCount}/)
+ { $self->{literals}[$self->{literalCount}++] = $litseg[$1]; }
+}
+
+# remove \x{N} sections
+sub special_chars{
+ my ($self, $data) = @_;
+ $data = \$self->{DATA} unless $data;
+ while ($$data =~ m/\\x\{([a-fA-F0-9x]+)\}/g){
+ my $lng = length($&); my $p = pos($$data) - $lng;
+ substr($$data, $p, $lng) = chr(hex($1));
+ pos($$data) = $p + 1;
+ }
+}
+
+# remove redundant data from loaded file
+sub clean_rnc{
+ my ($self, $data) = @_;
+ $data = \$self->{DATA} unless $data;
+ $self->scan_literals($data);
+ $self->special_chars($data);
+ $self->remove_annotations($data);
+ $self->remove_comments($data);
+ # add a newline, just in case the last word is a keyword
+ # and for nice printing;
+ $$data.="\n";
+}
+
+# in the processing of the data, the data is destroyed
+# provide two methods for resolving that
+sub backup{
+ my ($self) = @_;
+ $self->{BACKUP_DATA} = $self->{DATA};
+}
+
+sub restore{
+ my ($self) = @_;
+ $self->{DATA} = $self->{BACKUP_DATA} if defined $self->{BACKUP_DATA};
+}
+
+# set or retrieve stored data
+sub data{
+ my ($self, $newdata) = @_;
+ if (defined $newdata){ $self->{DATA} = $newdata; }
+ else { return $self->{DATA}; }
+}
+
+# put back some extracted string from DATA
+sub put_back{
+ my ($self, $back) = @_;
+ substr($self->{DATA}, 0, 0) = $back;
+}
+
+# try to match a keyword; return 1 on success; 0 on failure
+# NOTE: this implies that the used keywords should be followed by
+# some non alphanumeric or space character
+sub read_keyword{
+ my ($self, $keyword) = @_;
+ return 0 if ($self->{DATA} !~ /^\s*\Q$keyword\E\s*[^a-zA-Z0-9_\-\.]/);
+ substr($self->{DATA}, 0, length($&)-1) = '';
+ return 1;
+}
+
+# same as read_keyword, except it dies not expect a non-word character
+# after the word it searches
+sub read_controlword{
+ my ($self, $controlword) = @_;
+ return 0 if ($self->{DATA} !~ /^\s*\Q$controlword\E\s*/);
+ substr($self->{DATA},0,length($&)) = '';
+ return 1;
+}
+
+# expect a keyword; if the word is found, it is extracted
+# otherwise, the program dies (the grammar is incorrect)
+sub expect_keyword{
+ my ($self, $keyword) = @_;
+ $self->Error("Expected keyword '$keyword' was not found")
+ if ($self->{DATA} !~ /^\s*\Q$keyword\E\s*/);
+ substr($self->{DATA}, 0, length($&)) = '';
+}
+
+
+# Does not include Extender and CombiningChar
+# (as in XML Namespaces: http://www.w3.org/TR/REC-xml/)
+sub read_NCName{
+ my ($self, $terminators) = @_;
+ my $termin_exists = 1;
+ if (defined $terminators) { $terminators = "[$terminators]"; }
+ else { $terminators = ''; $termin_exists = 0; }
+ if ($self->{DATA} =~ /^\s*([_a-zA-Z][_a-zA-Z0-9\.\-]*)\s*$terminators/){
+ substr($self->{DATA}, 0, length($&)-$termin_exists) = '';
+ return $1;
+ }
+ return undef;
+}
+
+# try to match an identifierOrKeyword; return it in case
+# of success; return undef in case of failure;
+sub read_identifierOrKeyword{
+ my ($self, $terminators) = @_;
+ $self->read_controlword('\\');
+ return $self->read_NCName($terminators);
+}
+
+# see if the argument is in the set of defined keyword of RelaxNG
+sub isRNCKeyword{
+ my ($word) = @_;
+ return ($word =~ /^\s*(attribute|default|datatypes|div|element|empty|external|grammar|include|inherit|list|mixed|namespace|notAllowed|parent|start|string|text|token)\s*$/);
+}
+
+# read an identifier; return undef if no identifier can be read
+sub read_identifier{
+ my ($self, $terminators) = @_;
+ my $quote = $self->read_controlword('\\');
+ my $ident = $self->read_NCName($terminators);
+ if (!$quote && $ident && isRNCKeyword($ident)){
+ $self->put_back($ident);
+ return undef;
+ }
+ return $ident;
+}
+
+# read a literal in any form given;
+# segments are taken into account
+sub read_literal{
+ my ($self) = @_;
+ if ($self->{DATA} =~ /^\s*!LIT(\d+)\s*/){
+ substr($self->{DATA}, 0, length($&)) = '';
+ return $self->{literals}[$1];
+ }
+ return undef;
+}
+
+# read a namespace URI literal
+sub read_namespaceURILiteral{
+ my ($self, $inherited_namespace) = @_;
+ return $inherited_namespace if $self->read_keyword('inherit');
+ return $self->read_literal;
+}
+
+# read any URI literal
+sub read_anyURILiteral{
+ my ($self) = @_;
+ $self->read_literal; }
+
+sub getNS{
+ my ($self, $nspref) = @_;
+ $self->{${$self->{LOADEDFILES}}[$#{$self->{LOADEDFILES}}]}->{NAMESPACE}{$nspref}; }
+
+sub setNS{
+ my ($self, $nspref, $nsval) = @_;
+ $self->{${$self->{LOADEDFILES}}[$#{$self->{LOADEDFILES}}]}->{NAMESPACE}{$nspref} = $nsval; }
+
+# read all declarations, until none can be read
+sub read_decl{
+ my ($self, $inherited_namespace) = @_;
+ $inherited_namespace = '' unless defined $inherited_namespace;
+ $self->setNS('default',$inherited_namespace) unless $self->getNS('default');
+ my $found = 1;
+ while ($found){
+ if ($self->read_keyword('namespace')){
+ my $namespace_name = $self->read_identifierOrKeyword('=');
+ $self->Error('Undefined namespace name') unless $namespace_name;
+ $self->expect_keyword('=');
+ my $namespace_value =
+ $self->read_namespaceURILiteral($inherited_namespace);
+ $self->Error('Undefined namespace URI')
+ unless defined $namespace_value;
+ $self->setNS($namespace_name, $namespace_value);
+ }
+ elsif ($self->read_keyword('default') &&
+ $self->read_keyword('namespace')){
+ my $namespace_name = undef;
+ if (!$self->read_controlword('=')){
+ $namespace_name = $self->read_identifierOrKeyword('=');
+ $self->Error('Undefined namespace name')
+ unless $namespace_name;
+ $self->expect_keyword('=');
+ }
+ my $namespace_value =
+ $self->read_namespaceURILiteral($inherited_namespace);
+ $self->Error('Undefined namespace URI')
+ unless defined $namespace_value;
+ $self->setNS('default', $namespace_value);
+ $self->setNS($namespace_name, $namespace_value)
+ if $namespace_name;
+ }
+ elsif ($self->read_keyword('datatypes')){
+ my $datatype_name = $self->read_identifierOrKeyword('=');
+ $self->Error('Undefined datatype name') unless $datatype_name;
+ $self->expect_keyword('=');
+ my $datatype_value = $self->read_literal;
+ $self->Error('Undefined datatype value')
+ unless defined $datatype_value;
+ }
+ else { $found = 0; }
+ }
+}
+
+# ignore an annotation definition;
+# (assumes annotation content does not exist)
+# (it has been removed by clean_rnc)
+sub ignore_annotation{
+ my ($self) = @_;
+ $self->read_CName; }
+
+# read a name (CName) of the form NCName:NCName
+sub read_CName{
+ my ($self, $terminators) = @_;
+ $terminators = '\s' unless defined $terminators;
+ my $name = $self->read_NCName(':');
+ if ($name){
+ $self->expect_keyword(':');
+ my $part2 = $self->read_NCName($terminators);
+ $self->Error('Incomplete CName definition') unless $part2;
+ $name .= ":$part2";
+ }
+ return $name;
+}
+
+# read a datatype name
+sub read_datatypeName{
+ my ($self, $terminators) = @_;
+ $terminators = '\s' unless defined $terminators;
+ if ($self->{DATA} =~ /^\s*string\s*[$terminators]/){
+ substr($self->{DATA},0,length($&)-1) = '';
+ return 'string';
+ }
+ elsif ($self->{DATA} =~ /^\s*token\s*[$terminators]/){
+ substr($self->{DATA},0,length($&)-1) = '';
+ return 'token';
+ } else {
+ return $self->read_CName($terminators);
+ }
+}
+
+# read a datatype value
+sub read_datatypeValue{
+ my ($self) = @_;
+ return $self->read_literal;
+}
+
+# return the set of names an element or an attribute can have
+# this does not work well on complicated name classes
+sub read_nameClassEx{
+ my ($self, $terminators) = @_;
+
+ my @result;
+
+ if ($self->read_controlword('(')){
+ @result = $self->read_nameClassEx($terminators.'\)');
+ $self->expect_keyword(')');
+ } else {
+
+ #anyName
+ if ($self->read_controlword('*')){
+ push(@result, '*');
+ if ($self->read_controlword('-')){
+ print STDERR "Warning: USE OF EXCEPT NAMECLASS NOT IMPLEMENTED\n";
+ push(@result, $self->read_nameClassEx($terminators));
+ }
+ }
+ # nsName or name(CName)
+ elsif (my $part1 = $self->read_NCName(':')){
+ $self->expect_keyword(':');
+ if ($self->read_controlword('*')){
+ push(@result, "$part1:*");
+ if ($self->read_controlword('-')){
+ print STDERR
+ "Warning: USE OF EXCEPT NAMECLASS NOT IMPLEMENTED\n";
+ push(@result, '-',
+ $self->read_nameClassEx($terminators));
+ }
+ } else {
+ push(@result, $part1.':'.$self->read_NCName($terminators.'\|'));
+ }
+ }
+ # name(identifierOrKeyword)
+ else {
+ my $name = $self->read_identifierOrKeyword($terminators.'\|');
+ $self->Error('Incomplete name class given') unless $name;
+ push(@result, $name);
+ }
+ }
+
+ $self->Error('No name class provided') unless @result;
+
+ # see if we have more possible names:
+ push(@result, $self->read_nameClassEx($terminators))
+ if ($self->read_controlword('|'));
+
+ return @result;
+}
+
+sub read_nameClass{
+ my ($self, $terminators, @parents) = @_;
+ $terminators = '\s' unless defined $terminators;
+ my @result = $self->read_nameClassEx($terminators);
+ my @finalRes;
+
+ if (@parents && @result){
+
+ my @nsList, my %saw = ();
+ foreach (@parents){
+ if (/\{(.*)\}:.+/){
+ next if $saw{$1};
+ push(@nsList, $1); $saw{$1} = 1; }
+ else {
+ next if $saw{'default'};
+ push(@nsList, $self->getNS('default')); $saw{'default'} = 1; }
+ }
+
+ foreach my $res(@result){
+ if ($res =~ /(.+):(.+)/){
+ push(@finalRes, $self->ns_prepend($2, $1)); }
+ else {
+ map(push(@finalRes, "{$_}:$res"), @nsList); }
+ }
+ } else {
+ map(push(@finalRes, (/(.+):(.+)/)?
+ $self->ns_prepend($2, $1):$self->ns_prepend($_)), @result);
+ }
+ return @finalRes;
+}
+
+
+# read a parameter declaration, if one exists
+sub read_param{
+ my ($self) = @_;
+ my $id = $self->read_identifierOrKeyword('=');
+ return (undef, undef) unless $id;
+ $self->expect_keyword('=');
+ my $val = $self->read_literal;
+ $self->Error('No parameter value specified') unless defined $val;
+ return ($id, $val);
+}
+
+sub begin_read_newfile{
+ my ($self) = @_;
+ my $file = $self->read_anyURILiteral;
+ my $inherit = 'default';
+ if ($self->read_keyword('inherit')){
+ $self->expect_keyword('=');
+ $inherit = $self->read_identifierOrKeyword; }
+ $inherit = $self->getNS($inherit);
+ my $newdata = '';
+ $self->readfile($file, \$newdata);
+ $self->clean_rnc(\$newdata);
+ $self->put_back($newdata.'#');
+ $self->read_decl($inherit); }
+
+sub end_read_newfile{
+ my ($self) = @_;
+ pop(@{$self->{LOADEDFILES}});
+ $self->expect_keyword('#'); }
+
+# read a pattern
+sub read_pattern{
+ my ($self, $grammarPath, $grammarIdent, @parentElements) = @_;
+ my $found = 1; my $grammarCount = 0;
+ my $DEF = $grammarPath.':'.$grammarIdent;
+
+ if ($self->read_keyword('element')){
+ my @elementNames = $self->read_nameClass('{', @parentElements);
+ $self->Error('Unspecified element name') unless @elementNames;
+ map(push(@{$self->{GRAPH}->{$DEF}->{$_}{ELEMENTS}},
+ @elementNames), @parentElements);
+ $self->expect_keyword('{');
+ $self->read_pattern($grammarPath, $grammarIdent, @elementNames);
+ $self->expect_keyword('}');
+ }
+ elsif ($self->read_keyword('attribute')){
+ my @attributeNames = $self->read_nameClass('{');
+ $self->Error('Unspecified attribute name') unless @attributeNames;
+ map(push(@{$self->{GRAPH}->{$DEF}->{$_}{ATTRIBUTES}},
+ @attributeNames), @parentElements);
+ $self->expect_keyword('{');
+ $self->read_pattern($grammarPath, $grammarIdent, @parentElements);
+ $self->expect_keyword('}');
+ }
+ elsif ($self->read_keyword('list') || $self->read_keyword('mixed')){
+ $self->expect_keyword('{');
+ $self->read_pattern($grammarPath, $grammarIdent, @parentElements);
+ $self->expect_keyword('}');
+ }
+ elsif ($self->read_controlword('(')){
+ $self->read_pattern($grammarPath, $grammarIdent, @parentElements);
+ $self->expect_keyword(')');
+ }
+ elsif (my $datatypeValue =
+ $self->read_datatypeValue){
+ # do nothing
+ }
+ elsif (my $datatypeName =
+ $self->read_datatypeName('\s\{\}\-!')){
+ my $datatypeValue = $self->read_datatypeValue;
+
+ # read parameters; ignore them for now
+ if ($self->read_controlword('{')){
+ my ($ident, $val);
+ do{
+ ($ident, $val) = $self->read_param;
+ } while ($ident && $val);
+ $self->expect_keyword('}');
+ }
+ # read possible exceptPattern
+ if ($self->read_controlword('-')){
+ print STDERR "Warning: USE OF EXCEPT PATTERN NOT IMPLEMENTED\n";
+ $self->Error('exceptPattern expected but not found')
+ unless $self->read_pattern($grammarPath, $grammarIdent,
+ @parentElements);
+ }
+ }
+ elsif ($self->read_keyword('external')){
+ $self->begin_read_newfile;
+ $self->read_pattern($grammarPath, $grammarIdent, @parentElements);
+ $self->end_read_newfile;
+ }
+ elsif ($self->read_keyword('grammar')){
+ my $ident = $DEF.$grammarCount++;
+ $self->expect_keyword('{');
+ $self->read_grammarContent($ident, @parentElements);
+ $ident .= ':start';
+ map(push(@{$self->{GRAPH}->{$DEF}->{$_}{REFS}},
+ $ident), @parentElements);
+ $self->expect_keyword('}');
+ }
+ elsif ($self->read_keyword('parent')){
+ my $ident = $self->read_identifier;
+ if ($grammarPath =~ /^([.]+:)[^:]+$/){
+ $ident = $1.$ident;
+ map(push(@{$self->{GRAPH}->{$DEF}->{$_}{REFS}},
+ $ident), @parentElements);
+ }
+ }
+ elsif ($self->read_keyword('empty') || $self->read_keyword('text')
+ || $self->read_keyword('notAllowed')){
+ # do nothing
+ }
+ elsif (my $ident = $self->read_identifier){
+ # check if we did not enter a grammar by mistake:
+ my $asg = $self->read_assignMethod(1);
+ if ($ident && $asg){
+ $self->put_back($ident.$asg);
+ } else {
+ $ident = $grammarPath.':'.$ident;
+ map(push(@{$self->{GRAPH}->{$DEF}->{$_}{REFS}},
+ $ident), @parentElements);
+ }
+
+ } else { $found = 0; }
+
+ if ($self->read_controlword('?') || $self->read_controlword('*')
+ || $self->read_controlword('+')){
+ # ignore
+ }
+
+ if ($self->read_controlword(',') || $self->read_controlword('|')
+ || $self->read_controlword('&')){
+ Error('Pattern expected') unless
+ $self->read_pattern($grammarPath, $grammarIdent, @parentElements);
+ }
+
+ return $found;
+}
+
+sub read_assignMethod{
+ my ($self, $asString) = @_;
+ if ($asString){
+ return '&=' if ($self->read_controlword('&='));
+ return '|=' if ($self->read_controlword('|='));
+ return '=' if ($self->read_controlword('='));
+ return undef;
+ }
+ return 3 if ($self->read_controlword('&='));
+ return 2 if ($self->read_controlword('|='));
+ return 1 if ($self->read_controlword('='));
+ return 0;
+}
+
+# read a grammar pattern
+sub read_grammarPattern{
+ my ($self, $DEF, @parentElements) = @_;
+ if ($self->read_keyword('grammar')){
+ $self->expect_keyword('{');
+ $self->read_grammarContent($DEF, @parentElements);
+ $self->expect_keyword('}'); }
+ else{
+ $self->read_grammarContent($DEF, @parentElements);}
+}
+
+# read all possible grammar contents
+sub read_grammarContent{
+ my ($self, $DEF, @parentElements) = @_;
+ my ($div, $found) = (0, 1);
+
+ while ($found){
+ if ($self->read_keyword('div')){
+ $div++;
+ $self->expect_keyword('{');
+ $self->read_grammarContent($DEF.':_G'.$div, @parentElements);
+ $self->expect_keyword('}');
+ }
+ elsif ($self->read_keyword('include')){
+ $self->begin_read_newfile;
+ $self->read_grammarPattern($DEF, @parentElements);
+ $self->end_read_newfile;
+ if ($self->read_controlword('{')){
+ $self->read_grammarContent($DEF, @parentElements);
+ $self->expect_keyword('}'); }
+ }
+ elsif ($self->read_keyword('start')){
+ my $asg = $self->read_assignMethod;
+ $self->Error('Invalid assign method') unless $asg;
+ @{$self->{GRAPH}->{$DEF.':start'}->{PARENTS}} = @parentElements;
+ $self->read_pattern($DEF, 'start', @parentElements);
+ }
+ elsif (my $ident = $self->read_identifier('=\|\&')){
+ my $asg = $self->read_assignMethod;
+ $self->Error('Invalid assign method') unless $asg;
+ my $ref = $DEF.':'.$ident;
+ %{$self->{GRAPH}->{$ref}} = () if $asg == 1;
+ @{$self->{GRAPH}->{$ref}->{PARENTS}} = @parentElements;
+ $self->read_pattern($DEF, $ident, @parentElements);
+ }
+ elsif ($self->ignore_annotation) {}
+ else { $found = 0; }
+ }
+}
+
+sub ns_prepend{
+ my ($self, $tag, $ns_pref) = @_;
+ my $ns = $ns_pref?$self->getNS($ns_pref):undef;
+ $ns = $self->getNS('default') unless $ns;
+ return "{$ns}:$tag";
+}
+
+# this should match the whole file
+sub read_topLevel{
+ my ($self) = @_;
+ $self->read_decl;
+ $self->read_pattern($DOCUMENT, 'start', $DOCUMENT);
+
+ my ($after, $before) = (0, 1);
+ while ($before != $after){
+ $before = length($self->{DATA});
+ $self->read_grammarContent($DOCUMENT, $DOCUMENT);
+ $after = length($self->{DATA});
+ }
+ $self->{DATA} = trim($self->{DATA});
+ $self->Error('Unable to completely process data')
+ unless $self->{DATA} eq '';
+}
+
+# remove leading and trailing white space
+sub trim{
+ my ($arg) = @_;
+ $arg =~ s/^\s+//;
+ $arg =~ s/\s+$//;
+ return $arg;
+}
+
+sub build_info{
+ my ($self) = @_;
+
+ my %seen = ();
+ local *go = sub {
+ my ($reference, $node) = @_;
+
+ my $ident = $reference.'#'.$node;
+ return if defined $seen{$ident};
+ $seen{$ident} = 1;
+
+ map($self->{ATTR}->{$node}{$_} = 1,
+ @{$self->{GRAPH}->{$reference}->{$node}{ATTRIBUTES}})
+ if defined $self->{GRAPH}->{$reference}->{$node}{ATTRIBUTES};
+
+ my @sons;
+ map(push(@sons, ($reference, $_)),
+ @{$self->{GRAPH}->{$reference}->{$node}{ELEMENTS}})
+ if defined $self->{GRAPH}->{$reference}->{$node}{ELEMENTS};
+
+ if (defined $self->{GRAPH}->{$reference}->{$node}{REFS}){
+ my @refs = @{$self->{GRAPH}->{$reference}->{$node}{REFS}};
+ foreach my $ref(@refs){
+ next unless $self->{GRAPH}->{$ref}->{PARENTS};
+ foreach my $son(@{$self->{GRAPH}->{$ref}->{PARENTS}}){
+ map(push(@sons, ($ref, $_)),
+ @{$self->{GRAPH}->{$ref}->{$son}{ELEMENTS}})
+ if defined $self->{GRAPH}->{$ref}->{$son}{ELEMENTS};
+ push(@refs, @{$self->{GRAPH}->{$ref}->{$son}{REFS}})
+ if defined $self->{GRAPH}->{$ref}->{$son}{REFS};
+ # if a reference has attributes defined,
+ # they will appear as attributes to $DOCUMENT
+ # if the reference is not defined within some element
+ map($self->{ATTR}->{$node}{$_} = 1,
+ @{$self->{GRAPH}->{$ref}->{$son}{ATTRIBUTES}})
+ if ($self->{GRAPH}->{$ref}->{$son}{ATTRIBUTES} &&
+ ($son eq $DOCUMENT));
+ }
+ }
+ }
+ my $sonCount = ($#sons+1)/2;
+ for (my $i = 0; $i < $sonCount; $i++){
+ my ($ref, $son) = ($sons[2*$i], $sons[2*$i+1]);
+ go($sons[2*$i], $sons[2*$i+1]);
+ $self->{NODES}->{$node}{$son} = 1;
+ }
+ };
+
+ go($DOCUMENT.':start', $DOCUMENT);
+
+ %seen = ();
+ local *gnodes = sub {
+ my ($node) = @_;
+ return if $seen{$node};
+ $seen{$node} = 1;
+ foreach my $son(keys %{$self->{NODES}->{$node}}){
+ map($self->{GNODES}->{$node}{$_} = $son,
+ keys %{$self->{NODES}->{$son}});
+ gnodes($son); }
+ };
+
+ gnodes($DOCUMENT);
+ @{$self->{TAGLIST}} = keys %seen;
+}
+
+sub getTagList {
+ my ($self) = @_;
+ return @{$self->{TAGLIST}};
+}
+
+sub tagChildren {
+ my ($self, $tag) = @_;
+ keys %{$self->{NODES}->{$tag}}; }
+
+# given a tag and a childtag, return whether
+# tag can contain childtag
+sub canContain()
+{
+ my ($self, $tag, $childtag) = @_;
+ return ($self->{NODES}->{$tag}{$childtag} ||
+ $self->{NODES}->{$tag}{'*'})?1:0;
+}
+
+# there can be more results: list ?
+# there can be no result, but a class of results.. like a nsName
+# choose representative?
+sub canContainIndirect()
+{
+ my ($self, $tag, $childtag) = @_;
+ return $self->{GNODES}->{$tag}{$childtag} if
+ $self->{GNODES}->{$tag}{$childtag};
+
+ if ($self->{NODES}->{$tag}{'*'}){
+ foreach (@{$self->{TAGLIST}}){
+ return $_ if $self->{NODES}->{$_}{$childtag};
+ }
+ }
+}
+
+# given a tag and an attribute return whether
+# the tag can have that attribute
+sub canHaveAttribute()
+{
+ my ($self, $tag, $attr) = @_;
+ return ($self->{ATTR}->{$tag}{$attr} ||
+ $self->{ATTR}->{$tag}{'*'})?1:0;
+}
+
+sub canContainSomehow()
+{
+ my ($self, $tag, $childtag) = @_;
+ return ($self->canContain($tag, $childtag) ||
+ $self->canContainIndirect($tag, $childtag));
+}
+
+1;
diff --git a/Master/texmf-dist/source/latex/stex/bin/rng2dot/rng2dot b/Master/texmf-dist/source/latex/stex/bin/rng2dot/rng2dot
new file mode 100755
index 00000000000..588b8827c63
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/rng2dot/rng2dot
@@ -0,0 +1,37 @@
+#!/usr/bin/perl -w
+
+use ModelRNC;
+
+die "No input file\n" unless $ARGV[0];
+my $opt = $ARGV[1] || '';
+
+my $rnc = ModelRNC->new();
+$rnc->process($ARGV[0]);
+print STDERR 'Unable to properly parse ('.$rnc->data.")\n" if $rnc->data;
+
+my %seen = ();
+sub make_graph {
+ my ($node) = @_;
+ my @children = $rnc->tagChildren($node);
+ my $pnode = $node;
+ $pnode =~ s/^\{[^\}]*\}://; $pnode =~ s/\-|\+|\*|\s/_/g;
+ my @pchildren = @children;
+ for (my $i = 0 ; $i < @pchildren; $i++) {
+ $pchildren[$i] =~ s/^\{[^\}]*\}://;
+ $pchildren[$i] =~ s/\-|\+|\*|\s/_/g; }
+ if ($opt eq 'txt') {
+ print "$pnode: ".join(', ', @pchildren)."\n\n"; }
+ else {
+ for (my $i = 0 ; $i < @pchildren; $i++) {
+ print "$pnode -> ".$pchildren[$i].";\n"; }}
+ return 0 if $seen{$node};
+ $seen{$node} = 1;
+ foreach my $child(@children) {
+ make_graph($child); }
+ 1; }
+
+print "digraph RNC {\n" unless $opt eq 'txt';
+make_graph('_Document_');
+print "}\n" unless $opt eq 'txt';
+
+__END__
diff --git a/Master/texmf-dist/source/latex/stex/bin/sgraph b/Master/texmf-dist/source/latex/stex/bin/sgraph
new file mode 100755
index 00000000000..c4e709db476
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/sgraph
@@ -0,0 +1,173 @@
+#!/usr/bin/perl -w
+#######################################################################################
+# A tool for creating graphs of module usage patterns based on graphviz. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/sgraph$ #
+# $Date: 2005-10-04 19:31:43 +0200 (Tue, 04 Oct 2005) $ $Rev: 4376 $ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use Modparse;
+use Pod::Usage;
+
+my $input = "-", my $output = "out", my $format = "ps";
+my $root, my $stop_at_end=0, my $use_grouping = 0;
+my $rmdot = 0, my $verbose=0, my $theory = '', my $srange = '';
+my %arg_snippath; my @snippathList;
+
+sub group_name{
+ my ($st) = @_;
+ if ($st =~ /^(.*[\/\\])?([^\/\\]+)\.[^\.\/\\]*$/) { $st = $2; }
+ elsif ($st =~ /^(.*[\/\\])?([^\.\/\\]+)$/) { $st = $2; }
+ $st =~ s/-/_/g;
+ return $st; }
+
+GetOptions("output=s" => \$output,
+ "format=s" => \$format,
+ "nodot" => sub {$rmdot = 1;},
+ "root=s" => \$root,
+ "theory=s" => \$theory,
+ "sliderange=s" => \$srange,
+ "path=s" => \%arg_snippath,
+ "defpath=s" => \@snippathList,
+ "verbose" => sub {$verbose = 1;},
+ "grouping" => sub {$use_grouping = 1},
+ "stop" => sub {$stop_at_end = 1},
+ "help" => sub {pod2usage(2)});
+
+$output = $1 if ($output =~ m/([^.]+)\..*/);
+$input = $ARGV[0] if ($#ARGV>=0);
+$root = group_name($input) unless $root;
+
+
+my %data = (); my %group = ();
+my $mp = Modparse->new(snippathList=>\@snippathList,
+ snippath=>\%arg_snippath,
+ stopAtEnd=>$stop_at_end,
+ verbose=>$verbose,
+ onBegin=>sub { $_[0]->{perm}->{slide} = 0; $_[0]->{perm}->{linecount} = 0;
+ if ($srange =~ /(\d+)\:(\d+)/){
+ ($_[0]->{perm}->{sbegin}, $_[0]->{perm}->{send}) = ($1, $2);
+ $_[0]->{perm}->{in_sliderange} = ($_[0]->{perm}->{sbegin}<1);
+ } else { $_[0]->{perm}->{in_sliderange} = 1; }},
+ onBeginFile=>sub { $_[0]->{grp} = group_name($_[0]->{filename}); },
+ onBeginModule=>sub {
+ if ($_[0]->{perm}->{in_sliderange} && (my $id = $_[0]->{module_id})){
+ $id =~ s/[:-]/_/g;
+ my $uses = '';
+ if ($_[0]->{module_args} =~ /uses=(([\w-]+)|(\{[\w,-]+\}))/){
+ $uses = $1;
+ $uses =~ s/,/;/g; $uses =~ s/[:-]/_/g; }
+ $data{$id}=$uses;
+ $group{$id}=$_[0]->{perm}->{grp};
+ }},
+ onEveryLine=>sub {
+ $_[0]->{perm}->{linecount}++;
+ print ". " if ($_[0]->{pack}->{verbose} && ($_[0]->{perm}->{linecount} % 1000==0));
+ $_[0]->{perm}->{slide}++ if $_[0]->{simple_tex} =~ /\\begin\{slide\}/;
+ $_[0]->{perm}->{in_sliderange}=($_[0]->{perm}->{slide}<=$_[0]->{perm}->{send} &&
+ $_[0]->{perm}->{slide}>=$_[0]->{perm}->{sbegin})
+ if ($_[0]->{perm}->{sbegin} && $_[0]->{perm}->{send});
+ });
+
+print "\nGenerating graph...\n" if $verbose;
+
+$mp->execute($input);
+
+my @queue=();
+
+if ($theory){
+ $theory =~ s/-/_/g;
+ if ($data{$theory}){
+ my $start = 0, my $end = 1, my %already_in;
+ $queue[0] = $theory;
+ $already_in{$theory} = 1;
+ while ($start<$end){
+ my $idx, my $usesx;
+ $idx = $queue[$start];
+ $usesx = $data{$queue[$start]};
+ $start++;
+ if ($usesx){
+ $usesx =~ s/\{//;
+ $usesx =~ s/\}//;
+ foreach (split(/;/,$usesx)){
+ next if $already_in{$_};
+ $queue[$end] = $_;
+ $already_in{$_} = 1;
+ $end++;
+ }
+ }
+ }
+ }
+} else{
+ @queue = keys %data;
+}
+
+open(FOUT,">$output.dot") or die "Can't open output file\n";
+print FOUT "digraph TEX {\n";
+print FOUT "$root [shape=box];\n";
+
+if ($use_grouping){
+ my %subgraph = ();
+ foreach (@queue){
+ $subgraph{$group{$_}}.="$_;";
+ }
+ foreach my $subgr (keys %subgraph){
+ print FOUT "subgraph cluster_$subgr {\n";
+ print FOUT "color = blue;\n";
+ print FOUT "label = $subgr;\n";
+ print FOUT "$subgraph{$subgr}\n";
+ print FOUT "}\n";
+ }
+}
+
+my $lk = 0;
+for my $idx (@queue){
+ my $usesx = $data{$idx};
+ $lk=$lk+($usesx =~ tr/;//)+1;
+ if ($usesx){
+ print FOUT "$idx -> $usesx;\n";
+ } else {
+ print FOUT "$idx -> $root;\n";
+ }
+}
+
+print "Number of links: $lk\n" if $verbose;
+
+
+print FOUT "}\n";
+close(FOUT);
+
+`dot -T$format -o $output.$format $output.dot`;
+unlink "$output.dot" if ($rmdot==1);
+
+print "Done.\n" if $verbose;
+
+__END__
+
+=head1 SYNOPSIS
+
+sgraph <filename> [options]
+
+ <filename> .tex input file; stdin by default
+
+ Options:
+ --output output file; out.dot by default
+ --format output format; .ps by default; for available formats, see dot --help
+ --nodot do not generate .dot file, just target format
+ --root the 'root' of the graph. (name of course)
+ --theory generate a subgraph for the theory
+ --sliderange only look at the given slide range; (2:16 for example)
+ --path XXX specify the value of \XXX (some snippath) in case it is
+ = somePath not defined in the processed .tex file
+ --defpath XXX specify which \XXX (snippath definitions) to look for
+ --stop stop reading data when \end{document} is found, not at EOF
+ --grouping group modules within sections.
+ --verbose verbose on
+ --help this screen
+
+Example:
+./sgraph slides.tex -o graph -f ps -n -t TCN --sliderange 20:10000 -r GenCS -v
diff --git a/Master/texmf-dist/source/latex/stex/bin/sms b/Master/texmf-dist/source/latex/stex/bin/sms
new file mode 100755
index 00000000000..4599f3e2763
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/sms
@@ -0,0 +1,135 @@
+#!/usr/bin/perl -w
+#######################################################################################
+# A tool for creating STeX Module Signatures (SMS) files. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/sms$ #
+# $Date: 2006-10-22 20:01:47 +0200 (Sun, 22 Oct 2006) $ $Rev: 10669 $ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use Modparse;
+use Pod::Usage;
+
+my $input = "-", my $verbose=0, my $stop_at_end=0;
+my %arg_snippath; my @snippathList;
+
+# match {,} brackets that are not comments or special characters
+sub match{
+ my $data = shift;
+ my $b = 0, my $i = 0, my $ignore = 0 ;
+ foreach (split('',$data)){
+ $i++;
+ if ($ignore == 1){
+ $ignore = 0;
+ next;
+ }
+ if ($ignore == 2){
+ next if $_ ne "\n";
+ $ignore = 0;
+ next;
+ }
+ if ($_ eq "\\"){
+ $ignore = 1;
+ next;
+ }
+ if ($_ eq '%'){
+ $ignore = 2;
+ next;
+ }
+ $b++ if $_ eq '{';
+ $b-- if $_ eq '}';
+ return (substr($data,0,$i),substr($data,$i,length($data)-$i+1)) if !$b;
+ }
+ return ('',$data);
+}
+
+
+####### start of program #######
+
+GetOptions("verbose" => sub { $verbose=1; },
+ "stop" => sub { $stop_at_end=1; },
+ "path=s" => \%arg_snippath,
+ "defpath=s" => \@snippathList,
+ "help" => sub { pod2usage(2)});
+
+$input = $ARGV[0] if ($#ARGV>=0);
+
+my $mp = Modparse->new(snippathList=>\@snippathList,
+ snippath=>\%arg_snippath,
+ stopAtEnd=>$stop_at_end,
+ verbose=>$verbose,
+ recursion=>0,
+ onBeginFile=>sub { @{$_[0]->{'sms'.$_[0]->{depth}}}=(); },
+ onBeginModule=>sub { push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original});
+ @{$_[0]->{'sms'.$_[0]->{depth}}}[-1] =~ s/\n$/%\n/; },
+ onEndModule=>sub { push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original});
+ @{$_[0]->{'sms'.$_[0]->{depth}}}[-1] =~ s/\n$/%\n/ },
+ onRecurse=>sub {
+ my $recurse = $_[0]->{original};
+ $recurse =~ s/include/exclude/g;
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $recurse); },
+ onEndFile=>sub {
+ my $file = $_[0]->{pack}->new_ext($_[0]->{filename},'.sms');
+ open(FOUT, ">$file") or die "Cannot write $file\n";
+ print FOUT @{$_[0]->{'sms'.$_[0]->{depth}}};
+ close(FOUT);
+ `touch $file` unless @{$_[0]->{'sms'.$_[0]->{depth}}};
+ print "Wrote $file\n" if $verbose; },
+ onEveryLine=>sub {
+ my @lines = @{$_[0]->{'sms'.$_[0]->{depth}}};
+ if ($_[0]->{in_module}){
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original})
+ if ($_[0]->{simple_tex} =~ /\\(sym|abbr|ell)def\{([^\}]+)\}/ ||
+ $_[0]->{simple_tex} =~ /\\symdef\[([^\]]+)\]/);
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original})
+ if ($_[0]->{simple_tex} =~ /\\importmodule/);
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original})
+ if ($_[0]->{simple_tex} =~ /\\importOMDocmodule/);
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original})
+ if ($_[0]->{simple_tex} =~ /\\requiremodules/);
+ push(@{$_[0]->{'sms'.$_[0]->{depth}}}, $_[0]->{original})
+ if ($_[0]->{simple_tex} =~ /\\requirepackage/);
+ if ((/\\STRlabel\{([^\}]+)\}(\{.*)/) || (/\\STRsemantics\[([^\]]+)\](\{.*)/)){
+ my ($label, $line) = ($1, "$2 $_[0]->{comment}");
+ my ($matched, $rest) = (undef, undef);
+ while (1) {
+ ($matched, $rest) = match($line);
+ last if $matched;
+ $line.=$_[0]->{nextline}(); }
+ $_[0]->{rewriteline}($rest) if $rest;
+ $line = "\\STRlabeldef{$label}$matched"; chomp($line);
+ map(push(@{$_[0]->{'sms'.$_[0]->{depth}}},"$_\n"),split("\n",$line));
+ }
+ @{$_[0]->{'sms'.$_[0]->{depth}}}[-1] =~ s/\n$/%\n/
+ if (@lines < @{$_[0]->{'sms'.$_[0]->{depth}}});
+ }} );
+
+$mp->execute($input);
+
+print "Done.\n" if $verbose;
+
+
+__END__
+
+
+=head1 SYNOPSIS
+
+sms <input filename> [options]
+
+Options:
+
+ --verbose verbose on
+ --stop stop when \end{document} is found; default is to go on
+ --path XXX=somePath specify the value of \XXX (some snippath) in case it is
+ not defined in the processed .tex file
+ --defpath XXX specify which \XXX (snippath definitions) to look for
+ --help this screen
+
+Purpose:
+ Generate .sms files (STeX Module Signatures) from .tex files
+
+Example:
+ sms slides.tex -v
diff --git a/Master/texmf-dist/source/latex/stex/bin/termin b/Master/texmf-dist/source/latex/stex/bin/termin
new file mode 100755
index 00000000000..0589be09c2f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/bin/termin
@@ -0,0 +1,279 @@
+#!/usr/bin/perl -w
+
+#######################################################################################
+# A tool for automatized replacement of plain words with their \termin macros. #
+# Copyright (c) 2005, Ioan Sucan, released under the Gnu General Public License (GPL) #
+# see http://www.gnu.org/copyleft/gpl.html #
+# $URL: svn://kwarc.eecs.iu-bremen.de/repos/kwarc/projects/content/bin/termin$ #
+# $Date: 2005-10-04 17:47:41 +0200 (Tue, 04 Oct 2005) $ $Rev: 4371 $ #
+#######################################################################################
+
+use strict;
+
+use Getopt::Long;
+use Term::ANSIColor;
+use Pod::Usage;
+
+my $verbose = 0;
+my $wordDefs={}, my $twinDefs={}, my $atwinDefs={};
+
+use constant twin => 'T';
+use constant word => 'W';
+use constant atwin => 'A';
+
+my $before_chars = 128;
+my $after_chars = 128;
+
+sub loadDefs{
+ my ($tex_file) = @_;
+
+ # read file
+ open(FIN, $tex_file) or die "Cannot read $tex_file\n";
+ my @contentLines = <FIN>;
+ close(FIN);
+
+ my $content = join('',@contentLines);
+ $content =~ s/\s+//g;
+ $content =~ s/%[^\n]*\n//g;
+ pos($content) = 0;
+
+ my %modules = ();
+ while ($content =~ m/\\begin\{module\}\[([^\]]+)\]/g){
+ next unless $1 =~ /id=([^\],]+)/;
+ $modules{pos($content)} = $1;
+ }
+ my @posList = keys %modules;
+ my $modIndex, my $current_module;
+
+ # see definiens of form \definiens[bar]{foobar}
+ # word 'foobar', concept 'bar', within module 'foo'
+ pos($content) = 0; $modIndex = 0; $current_module = $modules{$posList[0]};
+ while ($content =~ m/\\definiens\[([^\]\-]+)\]\{([^\}]+)\}/g){
+ my $p = pos($content);
+ while ($modIndex < $#posList && $p > $posList[$modIndex+1]) {
+ $modIndex++; $current_module = $modules{$posList[$modIndex]}; }
+ push(@{$wordDefs->{modules}}, $current_module);
+ push(@{$wordDefs->{concepts}}, $1);
+ push(@{$wordDefs->{words}}, $2);
+ print word, " ==> $current_module: $1: $2\n" if $verbose>=2;
+ }
+
+ # see definiens of form \definiens[aaa-bbb]{\twin{ccc}{ddd}}
+ # words 'ccc ddd', concept 'aaa-bbb', within module 'foo'
+ pos($content) = 0; $modIndex = 0; $current_module = $modules{$posList[0]};
+ while ($content =~ m/\\definiens\[([^\-\]]+)\-([^\]]+)\]\{\\twin\{([^\}]+)\}\{([^\}]+)\}\}/g){
+ my $p = pos($content);
+ while ($modIndex < $#posList && $p > $posList[$modIndex+1]) {
+ $modIndex++; $current_module = $modules{$posList[$modIndex]}; }
+ push(@{$twinDefs->{modules}}, $current_module);
+ push(@{$twinDefs->{concepts}}, "$1-$2");
+ push(@{$twinDefs->{words}}, $3);
+ push(@{$twinDefs->{twins}}, $4);
+ print twin, " ==> $current_module: $1-$2: $3 $4\n" if $verbose>=2;
+ }
+
+ # \twindef{aaa}{bbb}
+ pos($content) = 0; $modIndex = 0; $current_module = $modules{$posList[0]};
+ while ($content =~ m/\\twindef\{([^\}]+)\}\{([^\}]+)\}/g){
+ my $p = pos($content);
+ while ($modIndex < $#posList && $p > $posList[$modIndex+1]) {
+ $modIndex++; $current_module = $modules{$posList[$modIndex]}; }
+ push(@{$twinDefs->{modules}}, $current_module);
+ push(@{$twinDefs->{concepts}}, "$1-$2");
+ push(@{$twinDefs->{words}}, $1);
+ push(@{$twinDefs->{twins}}, $2);
+ print twin, " ==> $current_module: $1-$2: $1 $2\n" if $verbose>=2;
+ }
+
+ # see definiens of form \definiens[aaa-bbb-ccc]{\twin{ddd}{eee}{fff}}
+ # words 'ddd eee fff', concept 'aaa-bbb-ccc', within module 'foo'
+ pos($content) = 0; $modIndex = 0; $current_module = $modules{$posList[0]};
+ while ($content =~ m/\\definiens\[([^\-\]]+)\-([^\-\]]+)\-([^\]]+)\]\{\\atwin\{([^\}]+)\}\{([^\}]+)\}\{([^\}]+)\}\}/g){
+ my $p = pos($content);
+ while ($modIndex < $#posList && $p > $posList[$modIndex+1]) {
+ $modIndex++; $current_module = $modules{$posList[$modIndex]}; }
+ push(@{$atwinDefs->{modules}}, $current_module);
+ push(@{$atwinDefs->{concepts}}, "$1-$2-$3");
+ push(@{$atwinDefs->{words}}, $4);
+ push(@{$atwinDefs->{twins}}, $5);
+ push(@{$atwinDefs->{adjs}}, $6);
+ print atwin, " ==> $current_module: $1-$2-$3: $4 $5 $6\n" if $verbose>=2;
+ }
+
+ # \atwindef{aaa}{bbb}{ccc}
+ pos($content) = 0; $modIndex = 0; $current_module = $modules{$posList[0]};
+ while ($content =~ m/\\atwindef\{([^\}]+)\}\{([^\}]+)\}\{([^\}]+)\}/g){
+ my $p = pos($content);
+ while ($modIndex < $#posList && $p > $posList[$modIndex+1]) {
+ $modIndex++; $current_module = $modules{$posList[$modIndex]}; }
+ push(@{$atwinDefs->{modules}}, $current_module);
+ push(@{$atwinDefs->{concepts}}, "$1-$2-$3");
+ push(@{$atwinDefs->{words}}, $1);
+ push(@{$atwinDefs->{twins}}, $2);
+ push(@{$atwinDefs->{adjs}}, $3);
+ print atwin, " ==> $current_module: $1-$2-$3: $1 $2 $3\n" if $verbose>=2;
+ }
+
+}
+
+sub max{
+ my ($max, @values) = @_;
+ foreach (@values) { $max = $_ if $_ gt $max;}
+ return $max;
+}
+
+sub nospace{
+ my ($str) = @_;
+ $str =~ s/\s+/ /g;
+ $str =~ s/^\s//;
+ $str =~ s/\s$//;
+ return $str;
+}
+
+sub replaceDefs{
+ my ($in_tex_file, $out_tex_file) = @_;
+
+ open(FIN, $in_tex_file) or die "Cannot read $in_tex_file\n";
+ my @content_lines = <FIN>;
+ close(FIN);
+
+ my $content = join('',@content_lines);
+ my $lcont = length($content);
+
+ local *go_word = sub {
+
+ my ($word, $new_word1_ex, $new_word2_ex) = @_;
+ $new_word2_ex = $new_word1_ex unless defined $new_word2_ex;
+
+ while ($content =~ m/([^\{\s]?)(\s*$word\s*)[^\}\s]?/gi){
+ my $p = pos($content);
+ my $ahead_len = length($1); my $matched_word = $2;
+ my $wlen = length($matched_word);
+ my $trail_len = length($&) - $wlen - $ahead_len;
+
+ if (($ahead_len != 0 || $trail_len != 0) ||
+ ($ahead_len == 0 && $trail_len == 0 && ($p == $wlen || $p == $lcont))){
+ my $start_pos = max(0, $p - $wlen - $trail_len - $before_chars);
+ my $new_word1 = $new_word1_ex; my $new_word2 = $new_word2_ex;
+
+ my $word_count = 0;
+ while ($matched_word =~ /\s*([^\s]+)\s*/g){
+ my $replace = $1;
+ $new_word1 =~ s/W%$word_count/$replace/g;
+ $new_word2 =~ s/W%$word_count/$replace/g;
+ $word_count++;
+ }
+
+ print "\nAnnotate '";
+ print color 'bold blue'; print nospace($matched_word); print color 'reset';
+ print "' with \n Y = '"; print color 'red bold'; print $new_word2;
+ print color 'reset'; print "'\n y = '"; print color 'red bold';
+ print $new_word1; print color 'reset'; print "'\n in: \n<<< ";
+ print color 'green';
+ print substr($content, $start_pos, $before_chars);
+ print color 'bold blue';
+ print substr($content, $start_pos + $before_chars, $wlen);
+ print color 'reset green';
+ print substr($content, $start_pos + $before_chars + $wlen, $after_chars);
+ print color 'reset';
+ print " >>> ?\n";
+ print "Options: <Y, y, [n]> ";
+
+ my $answer = <STDIN>;
+ chomp($answer);
+
+ if ($answer eq 'y'){
+ substr($content, $p - $wlen - $trail_len, $wlen) = $new_word1;
+ $lcont = length($content);
+ pos($content) = $p + length($new_word1) - $wlen;
+ print "PROGRESS: Matched text was replaced with '$new_word1'\n" if $verbose;
+ } elsif ($answer eq 'Y'){
+ substr($content, $p - $wlen - $trail_len, $wlen) = $new_word2;
+ $lcont = length($content);
+ pos($content) = $p + length($new_word2) - $wlen;
+ print "PROGRESS: Matched text was replaced with '$new_word2'\n" if $verbose;
+ }
+
+ }
+ pos($content) = $p - $trail_len;
+ }
+ };
+
+ my $we = "(s|(ing))?"; # word endings
+ if (defined $wordDefs->{words}){
+ my $wordDefsCount = $#{$wordDefs->{words}} + 1;
+ for (my $j = 0 ; $j < $wordDefsCount; $j++){
+ my $word = "${$wordDefs->{words}}[$j]$we";
+ my $new_word = " {\\termin[cd=${$wordDefs->{modules}}[$j],name=${$wordDefs->{concepts}}[$j]]".
+ "{W%0} ";
+ go_word($word, $new_word);
+ }
+ }
+
+ if (defined $twinDefs->{words}){
+ my $twinDefsCount = $#{$twinDefs->{words}} + 1;
+ for (my $j = 0 ; $j < $twinDefsCount; $j++){
+ my $word = "${$twinDefs->{words}}[$j]$we\\s+${$twinDefs->{twins}}[$j]$we";
+ my $new_word1 = " {\\termin[cd=${$twinDefs->{modules}}[$j],name=${$twinDefs->{concepts}}[$j]]".
+ "{W%0 W%1}} ";
+ my $new_word2 = " {\\termin[cd=${$twinDefs->{modules}}[$j],name=${$twinDefs->{concepts}}[$j]]".
+ "{\\twin{W%0}{W%1}}} ";
+ go_word($word, $new_word1, $new_word2);
+ }
+ }
+
+ if (defined $atwinDefs->{words}){
+ my $atwinDefsCount = $#{$atwinDefs->{words}} + 1;
+ for (my $j = 0 ; $j < $atwinDefsCount; $j++){
+ my $word = "${$atwinDefs->{words}}[$j]$we\\s+${$atwinDefs->{twins}}[$j]$we\\s+${$atwinDefs->{adjs}}[$j]$we";
+ my $new_word1 = " {\\termin[cd=${$atwinDefs->{modules}}[$j],name=${$atwinDefs->{concepts}}[$j]]".
+ "{W%0 W%1 W%2}} ";
+ my $new_word2 = " {\\termin[cd=${$atwinDefs->{modules}}[$j],name=${$atwinDefs->{concepts}}[$j]]".
+ "{\\atwin{W%0}{W%1}{W%2}}} ";
+ go_word($word, $new_word1, $new_word2);
+ }
+ }
+
+ open(FOUT, ">$out_tex_file") or die "Cannot write $out_tex_file\n";
+ print FOUT $content;
+ close(FOUT);
+
+}
+
+my @background, my @main, my @output;
+
+GetOptions("verbose" => sub {$verbose++;},
+ "background=s" => \@background,
+ "main=s" => \@main,
+ "output=s" => \@output,
+ "help" => sub { pod2usage(2)});
+
+foreach (@background) { loadDefs($_); }
+
+for (my $i = 0 ; $i <= $#main; $i++) {
+ replaceDefs($main[$i], $output[$i] || $main[$i]);
+}
+
+
+__END__
+
+=head1 SYNOPSIS
+
+termin [options]
+
+Options:
+
+ --verbose verbose on
+ --background background file to read \termin{} definitions from
+ --main main file to process
+ --output output file; the modified content of the main file will
+ be written here
+ --help this screen
+
+Purpose:
+ Read the \termin definitions from a background file and update a specific main file;
+ output will be written to the specified the output file.
+ Note: multiple background/main/output files may be specified.
+
+Example:
+ termin --background a.tex --background b.tex --main slides.tex --output new_slides.tex
diff --git a/Master/texmf-dist/source/latex/stex/cmathml/cmathml.dtx b/Master/texmf-dist/source/latex/stex/cmathml/cmathml.dtx
new file mode 100644
index 00000000000..dfd1c52bd18
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/cmathml/cmathml.dtx
@@ -0,0 +1,2493 @@
+% \iffalse meta-comment
+% Semantic Macros for Content MathML in LaTeX
+% Copyright (c) 2006 Michael Kohlhase, all rights reserved
+% this file is released under the
+% Gnu Library Public Licences (LGPL)
+%
+% The development version of this file can be found at
+% $HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cmathml/cmathml.dtx $
+% \fi
+%
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{cmathml}[2010/06/25 v1.0 CMathML Bindings]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,array,float,amsfonts,a4wide}
+\usepackage{stex-logo,cmathml,cmathmlx,presentation}
+\usepackage[show]{ed}
+\usepackage[hyperref=auto,style=alphabetic]{biblatex}
+\bibliography{kwarc}
+\usepackage{../ctansvn}
+\usepackage{hyperref}
+\usepackage[eso-foot,today]{svninfo}
+\svnInfo $Id: cmathml.dtx 1483 2010-07-19 07:11:16Z kohlhase $
+\svnKeyword $HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cmathml/cmathml.dtx $
+\makeindex
+\floatstyle{boxed}
+\newfloat{exfig}{thp}{lop}
+\floatname{exfig}{Example}
+\begin{document}\DocInput{cmathml.dtx}\end{document}
+%</driver>
+% \fi
+%
+%\CheckSum{1}
+%
+% \changes{v0.1}{2006/01/10}{Initial Version}
+% \changes{v0.2}{2006/01/16}{Added big operators}
+% \changes{v1.0}{2010/06/18}{Declared complete}
+%
+% \GetFileInfo{cmathml.sty}
+%
+% \MakeShortVerb{\|}
+%
+% \def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}}
+% \newenvironment{pcmtab}[1][5cm]{\begin{center}\begin{tabular}{|l|l|p{#1}|l|}\hline%
+% macro & args & Example & Result\\\hline\hline}%
+% {\end{tabular}\end{center}}
+% \newenvironment{cmtab}{\begin{center}\begin{tabular}{|l|l|l|l|}\hline%
+% macro & args & Example & Result\\\hline\hline}%
+% {\end{tabular}\end{center}}
+%
+% \def\snippet#1{\hbox{\ttfamily{#1}}}
+% \def\xml{{\scsys{Xml}}}
+% \def\xslt{{\scsys{xslt}}}
+% \def\element#1{{\ttfamily{#1}}}
+% \def\mathml{{\scshape{MathML}}\index{MathML}}
+% \def\latexml{\hbox{{\LaTeX}ML}\index{LaTexML}}
+% \def\twin#1#2{\index{#1!#2}\index{#2!#1}}
+% \def\twintoo#1#2{{#1 #2}\twin{#1}{#2}}
+% \def\atwin#1#2#3{\index{#1!#2!#3}\index{#3!#2 (#1)}}
+% \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
+%
+% \title{{\texttt{cmathml.sty}}: A {\TeX/\LaTeX}-based Syntax for Content
+% {\mathml}\thanks{Version {\fileversion} (last revised {\filedate})}}
+% \author{Michael Kohlhase\\
+% Jacobs University, Bremen\\
+% \url{http://kwarc.info/kohlhase}}
+% \maketitle
+%
+% \begin{abstract}
+% The |cmathml| package is part of the {\stex} collection, a version of {\TeX/\LaTeX}
+% that allows to markup {\TeX/\LaTeX} documents semantically without leaving the
+% document format, essentially turning {\TeX/\LaTeX} into a document format for
+% mathematical knowledge management (MKM).
+%
+% This package provides a collection of semantic macros for content {\mathml} and their
+% {\latexml} bindings. These macros form the basis of a naive translation from
+% semantically preloaded {\LaTeX} formulae into the content {\mathml} formulae via the
+% {\latexml} system.
+% \end{abstract}
+%
+% \newpage\tableofcontents\newpage
+%
+%\section{Introduction}\label{sec:intro}
+%
+% This document describes the collection of semantic macros for content {\mathml} and
+% their {\latexml} bindings. These macros can be used to mark up mathematical formulae,
+% exposing their functional/logical structure. This structure can be used by MKM systems
+% for added-value services, either directly from the {\sTeX} sources, or after
+% translation. Even though it is part of the {\stex} collection, it can be used
+% independently. Note that this documentation of the package presupposes the discussion of
+% the {\stex} collection to be self-contained.
+%
+% \subsection{Encoding Content {\mathml} in {\TeX/\LaTeX}}\label{sec:encoding}
+%
+% The |cmathml| packge presented here addresses part of transformation problem: representing
+% mathematical formulae in the {\LaTeX} workflow, so that content {\mathml} representations
+% can be derived from them. The underlying problem is that run-of-the-mill {\TeX/\LaTeX}
+% only specifies the presentation (i.e. what formulae look like) and not their content
+% (their functional structure). Unfortunately, there are no good methods (yet) to infer the
+% latter from the former, but there are ways to get presentation from content.
+%
+% The solution to this problem is to dump the extra work on the author (after all she knows
+% what she is talking about) and give them the chance to specify the intended structure. The
+% markup infrastructure supplied by the |cmathml| package lets the author do this without
+% changing the visual appearance, so that the {\LaTeX} workflow is not disrupted.
+%
+% To use these |cmathml| macros in a {\LaTeX} document, you will have to include the
+% |cmathml| package using |\usepackage{cmathml}| somewhere in the document preamble. Then
+% you can use the macros
+% \begin{verbatim}
+% $\Ceq{\Cexp{\Ctimes{\Cimaginaryi,\Cpi}},\Cuminus{\Ccn{1}}}$
+% \end{verbatim}
+% which will result in $e^{i\pi}=-1$ when the document is formatted in {\LaTeX}. If the
+% document is converted to {\xml} using the {\latexml} conversion tool, then the result
+% will be content {\mathml} representation:
+%
+%\begin{exfig}
+% \begin{verbatim}
+% <math xmlns="http://www.w3.org/1998/Math/MathML">
+% <apply>
+% <eq/>
+% <apply>
+% <exp/>
+% <apply><times><imaginaryi/><pi/></times></apply>
+% </apply>
+% <apply><minus/><cn>1</cn></apply>
+% </apply>
+% </math>
+% \end{verbatim}\vspace*{-.6cm}
+% \caption{Content {\mathml} Form of $e^{i\pi}=-1$}\label{fig:cmathml-eip}
+% \end{exfig}
+%
+% \subsection{Changing the {\TeX/\LaTeX} Presentation}\label{sec:changing}
+%
+% It is possible to change the default presentation (i.e. the result under {\LaTeX}
+% formatting): The semantic macros only function as interface control sequences, which
+% call an internal macro that does the actual presentation. Thus we simply have to
+% redefine the internal macro to change the presentation. This is possible locally or
+% globally in the following way:
+% \begin{verbatim}
+% \makeatletter
+% \gdef\CMathML@exp#1{exp(#1)}
+% \def\CMathML@pi{\varpi}
+% \makeatother
+% \end{verbatim}
+%
+% The first line is needed to lift the {\LaTeX} redefinition protection for internal
+% macros (those that contain the $\snippet{\@}$ character), and the last line restores it
+% for the rest of the document. The second line has a {\em{global}} (i.e. the presentation
+% will be changed from this point on to the end of the document.) redefinition of the
+% presentation of the exponential function in the {\LaTeX} output. The third line has a
+% {\em{local}} redefinition of the presentation (i.e. in the local group induced by
+% {\LaTeX}'s $\snippet{begin}/\snippet{end}$ grouping or by {\TeX}'s grouping induced by
+% curly braces). Note that the argument structure has to be respected by the presentation
+% redefinitions. Given the redefinitions above, our equation above would come out as
+% $exp(i\varpi)=-1$.
+%
+% \subsection{The Future: Heuristic Parsing}\label{sec:future}
+%
+% The current implementation of content {\mathml} transformation from {\LaTeX} to
+% {\mathml} lays a heavy burden on the content author: the {\LaTeX} source must be
+% semantically preloaded --- the structure of the formulae must be fully annotated. In our
+% example above, we had to write {|\Ceq{A,B}|} instead of the more conventional (and more
+% legible) {|A=B|}.\ednote{come up with a good mixed example}
+%
+% The reason for this is that this keeps the transformation to content {\mathml} very
+% simple, predictable and robust at the expense of authoring convenience. The
+% implementation described in this module should be considered as a first step and
+% fallback solution only. Future versions of the $\latexml$ tool will feature more
+% intelligent solutions for determining the implicit structure of more conventional
+% mathematical notations (and {\LaTeX} representations), so that writing content {\mathml}
+% via {\LaTeX} will become less tedious.
+%
+% However, such more advanced techniques usually rely on linguistic, structural, and
+% semantic information about the mathematical objects and their preferred
+% representations. They tend to be less predictable to casual users and may lead to
+% semantically unexpected results.\ednote{talk about sTeX and extensibility in
+% MathML/OpenMath/OMDoc}
+%
+% \newpage
+% \section{The User Interface}\label{sec:modules}
+%
+% We will now tabulate the semantic macros for the Content {\mathml} elements. We have
+% divided them into modules based on the sectional structure of the {\mathml}2
+% recommendation ($2^{nd}$ edition). Before we go into the specific elements one-by-one,
+% we will discuss some general properties of the |cmatml| macros and their {\latexml}
+% bindings.
+%
+% \subsection{Generalities of the Encoding}\label{sec:generalities}
+%
+% The semantic macros provided by the |cmatml| package differ mainly in the way they treat
+% their arguments. The simplest case are those for constants~\ref{sec:constants} that do
+% not take any. Others take one, two, three, or even four arguments, which have to be
+% {\TeX} tokens or have to be wrapped in curly braces. For operators that are associative
+% {\twin{associative}{operator}} like addition the argument sequence is provided as a
+% single {\TeX} argument (wrapped in curly braces) that contains a comma-separated
+% sequence of arguments (wrapped in curly braces where necessary).
+%
+% \DescribeMacro{\Capply} The current setup of the |cmathml| infrastructure minimizes the
+% need of specifying the {\mathml} {\element{apply}} element, since the macros are all in
+% applied form: As we have seen in the example in the Introduction~\ref{sec:intro}, a
+% macro call like {|\Cexp{A}|} corresponds to the application of the exponential function
+% to some object, so the necessary {\element{apply}} elements in the {\mathml}
+% representation are implicit in the {\LaTeX} formulation and are thus added by the
+% transformation. Of course this only works, if the function is a content {\mathml}
+% element. Often, in mathematics we will have situations, where the function is a variable
+% (or ``arbitrary but fixed'') function. Then the formula $f(x)$ represented as |$f(x)$|
+% in {\TeX} could (and sometimes will) be misunderstood by the Math parser as $f\cdot x$,
+% i.e. a product of the number $f$ with the number $x$, where $x$ has brackets for some
+% reason. In this case, we can disambiguate by using |\Capply{f}x|, which will also format
+% as $f(x)$.\ednote{what about $n$-ary functions?}
+%
+% By the same token, we do not need to represent the qualifier elements
+% {\element{condition}} and {\element{domainofapplication}}\footnote{We do not support the
+% {\element{fn}} element as it is deprecated in {\mathml}2 and the {\element{declare}}
+% and {\element{sep}} elements, since their semantic status is unclear (to the author,
+% if you feel it is needed, please gripe to me).}, for
+% {\twintoo{binding}{operator}s}. They are are folded into the special forms of the
+% semantic macros for the binding operators below (the ones with the {|Cond|} and {|DA|}
+% endings):
+%
+% For operators that are {\index*{associative}}, {\index*{commutative}}, and
+% {\index*{idempotent}} ({\index*{ACI}} i.e. {\index*{bracketing}},
+% order\twin{argument}{order}, and {\index*{multiplicity}} of arguments does not matter)
+% {\mathml} supplies the a special form of application as a binding operator (often called
+% the corresponding ``{\twintoo{big}{operator}})'', which ranges over a whole set of
+% arguments. For instance for the ACI operator $\cup$ for set union has the ``big''
+% operator for unions over collections of sets e.g. used in the power set
+% $\bigcup_{S\subseteq T}S$ of a set $T$. In some cases, the ``big'' operators are
+% provided independently by {\mathml}, e.g. the ACI addition operator has the sum operator
+% as a corresponding ``big operator'': $\sum_{x\in\Cnaturalnumbers}{x^i}$ is the sum of
+% the powers of $x$ for all natural numbers. Where they are not, we will supply extra
+% macros in the |cmathml| package, e.g. the |\CUnion| macro as the big operator for
+% |\Cunion|.
+%
+% Finally, some of the binding operators have multiple content models flagged by the
+% existence of various modifier elements. In these cases, we have provided different
+% semantic macros for the different cases.
+%
+% \subsection{The Token Elements}\label{sec:tokens}
+%
+% The {\mathml} token elements are very simple containers that wrap some presentation
+% {\mathml} text. The {\element{csymbol}} element is the extension element in
+% {\mathml}. It's content is the presentation of symbol, and it has a |definitionURL|
+% attribute that allows to specify a URI that specifies the semantics of the symbol. This
+% URL can be specified in an optional argument to the |\Ccsymbol| macro, in accordance
+% with usual mathematical practice, the |definitionURL| is not presented.
+% \DescribeMacro{\Ccn}\DescribeMacro{\Cci}\DescribeMacro{\Ccsymbol}
+% \begin{cmtab}
+% |\Ccn| & token & |\Ccn{t}| & $\Ccn{t}$\\\hline
+% |\Cci| & token & |\Cci{t}| & $\Cci{t}$\\\hline
+% |\Ccsymbol| & token, URI & |\Ccsymbol[http://w3.org]{t}|
+% & $\Ccsymbol[http://w3.org]{t}$\\\hline
+% \end{cmtab}
+% Like the |\Ccsymbol| macro, all other macros in the |camthml| package take an optional
+% argument\footnote{This may change into a KeyVaL argument in future versions of the
+% |cmathml| package.} for the |definitionURL| attribute in the corresponding {\mathml}
+% element.
+%
+%\newpage
+% \subsection{The Basic Content Elements}\label{sec:basic}
+%
+% The basic elements comprise various pieces of the {\mathml} infrastructure. Most of the
+% semantic macros in this section are relatively uneventful.
+%
+% \DescribeMacro{\Cinverse}\DescribeMacro{\Ccompose}\DescribeMacro{\Cident}
+% \DescribeMacro{\Cdomain}\DescribeMacro{\Ccodomain}\DescribeMacro{\Cimage}
+% \begin{cmtab}
+% |\Cinverse| & 1 & |\Cinverse{f}| & $\Cinverse{f}$\\\hline
+% |\Ccompose| & 1 & |\Ccompose{f,g,h}| & $\Ccompose{f,g,h}$\\\hline
+% |\Cident| & 0 & |\Cident| & $\Cident$\\\hline
+% |\Cdomain| & 1 & |\Cdomain{f}| & $\Cdomain{f}$\\\hline
+% |\Ccodomain| & 1 & |\Ccodomain{f}| & $\Ccodomain{f}$\\\hline
+% |\Cimage| & 1 & |\Cimage{f}| & $\Cimage{f}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Clambda}\DescribeMacro{\ClambdaDA}\DescribeMacro{\Crestrict} For the
+% {\element{lambda}} element, we only have the {\element{domainofapplication}} element, so
+% that we have three forms a $\lambda$-construct can have. The first one is the simple one
+% where the first element is a bound variable. The second one restricts the applicability
+% of the bound variable via a {\element{domainofapplication}} element, while the third one
+% does not have a bound variable, so it is just a function restriction
+% operator.\ednote{need ClambdaCond}
+%
+% \begin{cmtab}
+% |\Clambda| & 2 & |\Clambda{x,y}{A}| & $\Clambda{x,y}{A}$\\\hline
+% |\ClambdaDA| & 3 & |\ClambdaDA{x}{C}{A}| & $\ClambdaDA{x,y}{C}{A}$\\\hline
+% |\Crestrict| & 2 & |\Crestrict{f}{S}| & $\Crestrict{f}{S}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{ccinterval}\DescribeMacro{cointerval}
+% \DescribeMacro{ocinterval}\DescribeMacro{oointerval}
+% The {\element{interval}} constructor actually represents four types of intervals in
+% {\mathml}. Therefore we have four semantic macros, one for each combination of open and
+% closed endings:
+% \begin{cmtab}
+% |\Cccinterval| & 2 & |\Cccinterval{1}{2}| & $\Cccinterval{1}{2}$\\\hline
+% |\Ccointerval| & 2 & |\Ccointerval{1}{2}| & $\Ccointerval{1}{2}$\\\hline
+% |\Cocinterval| & 2 & |\Cocinterval{1}{2}| & $\Cocinterval{1}{2}$\\\hline
+% |\Coointerval| & 2 & |\Coointerval{1}{2}| & $\Coointerval{1}{2}$\\\hline
+% \end{cmtab}
+%
+%\DescribeMacro{\Cpiecewise}\DescribeMacro{\Cpiece}\DescribeMacro{\Cotherwise}
+% The final set of semantic macros are concerned with piecewise definition of functions.
+% \begin{cmtab}
+% |\Cpiecewise| & 1 & see below & see below\\\hline
+% |\Cpiece| & 2 & |\Cpiece{A}{B}| & $\begin{array}{ll}\Cpiece{A}{B}\end{array}$\\\hline
+% |\Cotherwise| & 1 & |\Cotherwise{B}| & $\begin{array}{ll}\Cotherwise{1}\end{array}$\\\hline
+% \end{cmtab}
+%
+% For instance, we could define the abstract value function on the reals with the following
+% markup
+%
+% \begin{center}
+% \begin{tabular}{|l|l|}\hline
+% Semantic Markup & Formatted\\\hline
+% \begin{minipage}{8cm}\footnotesize
+% \begin{verbatim}
+% \Ceq{\Cabs{x},
+% \Cpiecewise{\Cpiece{\Cuminus{x}}{\Clt{x,0}}
+% \Cpiece{0}{\Ceq{x,0}}
+% \Cotherwise{x}}}
+% \end{verbatim}
+% \end{minipage} &
+% $\Ceq{\Cabs{x},\Cpiecewise{\Cpiece{\Cuminus{x}}{\Clt{x,0}}
+% \Cpiece{0}{\Ceq{x,0}}
+% \Cotherwise{x}}}$
+% \\\hline
+% \end{tabular}
+% \end{center}
+%
+% \newpage
+% \subsection{Elements for Arithmetic, Algebra, and Logic}\label{sec:arith}
+%
+% This section introduces the infrastructure for the basic arithmetic operators. The first
+% set is very simple
+%
+% \DescribeMacro{\Cquotient}\DescribeMacro{\Cfactorial}\DescribeMacro{\Cdivide}
+% \DescribeMacro{\Cminus}\DescribeMacro{\Cplus}\DescribeMacro{\Cpower}
+% \DescribeMacro{\Crem}\DescribeMacro{\Ctimes}\DescribeMacro{\Croot}
+% \begin{cmtab}
+% |\Cquotient| & 2 & |\Cquotient{1}{2}| & $\Cquotient{1}{2}$\\\hline
+% |\Cfactorial| & 1 & |\Cfactorial{7}| & $\Cfactorial{7}$\\\hline
+% |\Cdivide| & 2 & |\Cdivide{1}{2}| & $\Cdivide{1}{2}$\\\hline
+% |\Cminus| & 2 & |\Cminus{1}{2}| & $\Cminus{1}{2}$\\\hline
+% |\Cplus| & 1 & |\Cplus{1}| & $\Cplus{1}$\\\hline
+% |\Cpower| & 2 & |\Cpower{x}{2}| & $\Cpower{x}{2}$\\\hline
+% |\Crem| & 2 & |\Crem{7}{2}| & $\Crem{7}{2}$\\\hline
+% |\Ctimes| & 1 & |\Ctimes{1,2,3,4}| & $\Ctimes{1,2,3,4}$\\\hline
+% |\Croot| & 2 & |\Croot{3}{2}| & $\Croot{3}{2}$\\\hline
+% \end{cmtab}
+%
+% The second batch below is slightly more complicated, since they take a set of
+% arguments. In the |cmathml| package, we treat them like {\index*{associative}}
+% operators, i.e. they act on a single argument that contains a sequence of
+% comma-separated arguments\ednote{implement this in the latexml side}
+%
+% \DescribeMacro{\Cmax}\DescribeMacro{\Cmin}\DescribeMacro{\Cgcd}\DescribeMacro{\Clcm}
+% \begin{cmtab}
+% |\Cmax| & 1 & |\Cmax{1,3,6}| & $\Cmax{1,3,6}$\\\hline
+% |\Cmin| & 1 & |\Cmin{1,4,5}| & $\Cmin{1,4,7}$\\\hline
+% |\Cgcd| & 1 & |\Cgcd{7,3,5}| & $\Cgcd{7,3,5}$\\\hline
+% |\Clcm| & 1 & |\Clcm{3,5,4}| & $\Clcm{3,5,4}$\\\hline
+% \end{cmtab}
+%
+% The operators for the logical connectives are associative as well\ednote{maybe add some
+% precedences here.}. Here, conjunction, (exclusive) disjunction are $n$-ary associative
+% operators, therefore their semantic macro only has one {\TeX} argument which contains a
+% comma-separated list of subformulae.
+% \DescribeMacro{\Cand}\DescribeMacro{\Cor}\DescribeMacro{\Cxor}\DescribeMacro{\Cnot}
+% \DescribeMacro{\Cimplies}
+% \begin{cmtab}
+% |\Cand| & 1 & |\Cand{A,B,C}| & $\Cand{A,B,C}$\\\hline
+% |\Cor| & 1 & |\Cor{A,B,C}| & $\Cor{A,B,C}$\\\hline
+% |\Cxor| & 1 & |\Cxor{A,B,C}| & $\Cxor{A,B,C}$\\\hline
+% |\Cnot| & 1 & |\Cnot{A}| & $\Cnot{A}$\\\hline
+% |\Cimplies| & 2 & |\Cimplies{A}{B}| & $\Cimplies{A}{B}$\\\hline
+% \end{cmtab}
+%
+% The following are the corresponding big operators, where appropriate.
+% \DescribeMacro{\CAndDA}\DescribeMacro{\CAndCond}
+% \DescribeMacro{\COrDA}\DescribeMacro{\COrCond}
+% \DescribeMacro{\CXorDA}\DescribeMacro{\CXorCond}
+% \begin{cmtab}
+% |\CAndDA| & 2 & |\CAndDA\Cnaturalnumbers\phi| & $\CAndDA\Cnaturalnumbers\phi$\\\hline
+% |\CAndCond| & 3 & |\CAndCond{x}{\Cgt{x}5}{\psi(x)}|
+% & $\CAndCond{x}{\Cgt{x}5}{\psi(x)}$\\\hline
+% |\COrDA| & 2 & |\COrDA\Cnaturalnumbers\phi| & $\COrDa\Cnaturalnumbers\phi$\\\hline
+% |\COrCond| & 3 & |\COrCond{x}{\Cgt{x}5}{\psi(x)}|
+% & $\COrCond{x}{\Cgt{x}5}{\psi(x)}$\\\hline
+% |\CXorDA| & 2 & |\CXorDA\Cnaturalnumbers\phi| & $\CXorDA\Cnaturalnumbers\phi$\\\hline
+% |\CXorCond| & 3 & |\CXorCond{x}{\Cgt{x}5}{\psi(x)}|
+% & $\CXorCond{x}{\Cgt{x}5}{\psi(x)}$\\\hline
+% \end{cmtab}
+%
+% The semantic macros for the quantifiers come in two forms: with- and without a condition
+% qualifier. In a restricted quantification of the form $\forall x,C:A$, the bound variable
+% $x$ ranges over all values, such that $C$ holds ($x$ will usually occur in the condition
+% $C$). In an unrestricted quantification of the form $\forall x:A$, the bound variable
+% ranges over all possible values for $x$.
+% \DescribeMacro{\Cforall}\DescribeMacro{\CforallCond}
+% \DescribeMacro{\Cexists}\DescribeMacro{\CexistsCond}
+% \begin{cmtab}
+% |\Cforall| & 2 & |\Cforall{x,y}{A}| & $\Cforall{x,y}{A}$\\\hline
+% |\CforallCond| & 3 & |\CforallCond{x}{C}{A}| & $\CforallCond{x}{C}{A}$\\\hline
+% |\Cexists| & 2 & |\Cexists{x,y}{A}| & $\Cexists{x,y}{A}$\\\hline
+% |\CexistsCond| & 3 & |\CexistsCond{x}{C}{A}| & $\CexistsCond{x}{C}{A}$\\\hline
+% \end{cmtab}
+%
+% The rest of the operators are very simple in structure.
+% \DescribeMacro{\Cabs}\DescribeMacro{\Cconjugate}\DescribeMacro{\Carg}
+% \DescribeMacro{\Creal}\DescribeMacro{\Cimaginary}\DescribeMacro{\Cfloor}
+% \DescribeMacro{\Cceiling}
+% \begin{cmtab}
+% |\Cabs| & 1 & |\Cabs{x}| & $\Cabs{x}$\\\hline
+% |\Cconjugate| & 1 & |\Cconjugate{x}| & $\Cconjugate{x}$\\\hline
+% |\Carg| & 1 & |\Carg{x}| & $\Carg{x}$\\\hline
+% |\Creal| & 1 & |\Creal{x}| & $\Creal{x}$\\\hline
+% |\Cimaginary| & 1 & |\Cimaginary{x}| & $\Cimaginary{x}$\\\hline
+% |\Cfloor| & 1 & |\Cfloor{1.3}| & $\Cfloor{1.3}$\\\hline
+% |\Cceiling| & 1 & |\Cceiling{x}| & $\Cceiling{x}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Relations}\label{sec:rels}
+%
+% The relation symbols in {\mathml} are mostly $n$-ary associative operators (taking a
+% comma-separated list as an argument).
+%
+% \DescribeMacro{\Ceq}\DescribeMacro{\Cneq}\DescribeMacro{\Cgt}\DescribeMacro{\Clt}
+% \DescribeMacro{\Cgeq}\DescribeMacro{\Cleq}\DescribeMacro{\Cequivalent}
+% \DescribeMacro{\Capprox}\DescribeMacro{\Cfactorof}
+% \begin{cmtab}
+% |\Ceq| & 1 & |\CeqA,B,C| & $\Ceq{A,B,C}$\\\hline
+% |\Cneq| & 2 & |\Cneq{1}{2}| & $\Cneq{1}{2}$\\\hline
+% |\Cgt| & 1 & |\Cgt{A,B,C}| & $\Cgt{A,B,C}$\\\hline
+% |\Clt| & 1 & |\Clt{A,B,C}| & $\Clt{A,B,C}$\\\hline
+% |\Cgeq| & 1 & |\Cgeq{A,B,C}| & $\Cgeq{A,B,C}$\\\hline
+% |\Cleq| & 1 & |\Cleq{A,B,C}| & $\Cleq{A,B,C}$\\\hline
+% |\Cequivalent| & 1 & |\Cequivalent{A,B,C}| & $\Cequivalent{A,B,C}$\\\hline
+% |\Capprox| & 2 & |\Capprox{1}{2}| & $\Capprox{1}{1.1}$\\\hline
+% |\Cfactorof| & 2 & |\Cfactorof{7}{21}| & $\Cfactorof{7}{21}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Elements for Calculus and Vector Calculus}\label{sec:calculus-vector-calculus}
+%
+% The elements for calculus and vector calculus have the most varied forms.
+%
+% The integrals come in four forms: the first one is just an indefinite integral over a
+% function, the second one specifies the bound variables, upper and lower limits. The
+% third one specifies a set instead of an interval, and finally the last specifies a
+% bound variable that ranges over a set specified by a condition.
+%
+% \DescribeMacro{\Cint}\DescribeMacro{\CintLimits}\DescribeMacro{\CintDA}\DescribeMacro{\CintCond}
+% \begin{cmtab}
+% |\Cint| & 1 & |\Cint{f}| & $\Cint{f}$\\\hline
+% |\CintLimits| & 4 & |\CintLimits{x}{0}{\Cinfinit}{f(x)}|
+% & $\CintLimits{x}{0}{\infty}{f(x)}$\\\hline
+% |\CintDA| & 2 & |\CintDA{\Creals}{f}|
+% & $\CintDA{\mathbb{R}}{f}$\\\hline
+% |\CintCond| & 3 & |\CintCond{x}{\Cin{x}{D}}{f(x)}|
+% & $\CintCond{x}{x\in D}{f(x)}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Cdiff}\DescribeMacro{\Cddiff} The differentiation operators are used in
+% the usual way: simple differentiation is represented by the |\Cdiff| macro which takes
+% the function to be differentiated as an argument, differentiation with the $d$-notation
+% is possible by the |\Cddiff|, which takes the bound variable\ednote{really only one?} as
+% the first argument and the function expression (in the bound variable) as a second
+% argument.
+%
+% \DescribeMacro{\Cpartialdiff} Partial Differentiation is specified by the
+% |\Cpartialdiff| macro. It takes the overall degree as the first argument (to leave it
+% out, just pass the empty argument). The second argument is the list of bound variables
+% (with their degrees; see below), and the last the function expression (in these bound
+% variables). \DescribeMacro{\Cdegree} To specify the respective degrees of
+% differentiation on the variables, we use the |\Cdegree| macro, which takes two arguments
+% (but no optional argument), the first one is the degree (a natural number) and the
+% second one takes the variable. Note that the overall degree has to be the sum of the
+% degrees of the bound variables.
+%
+% \begin{pcmtab}[6cm]
+% |\Cdiff| & 1 & |\Cdiff{f}| & $\Cdiff{f}$\\\hline
+% |\Cddiff| & 2 & |\Cddiff{x}{f}| & $\Cddiff{x}{f}$\\\hline
+% |\Cpartialdiff| & 3 & |\Cpartialdiff{3}{x,y,z}{f(x,y)}|
+% & $\Cpartialdiff{3}{x,y,z}{f(x,y)}$\\\hline
+% |\Cpartialdiff| & 3 & |\Cpartialdiff{7}| |{\Cdegree{2}{x},\Cdegree{4}{y},z}| |{f(x,y)}|
+% & $\Cpartialdiff{7}{\Cdegree{2}{x},\Cdegree{4}{y},z}{f(x,y)}$\\\hline
+% \end{pcmtab}
+%
+% \DescribeMacro{\Climit}\DescribeMacro{\ClimitCond} For content {\mathml}, there are two
+% kinds of limit expressions: The simple one is specified by the |\Climit| macro, which
+% takes three arguments: the bound variable, the target, and the limit expression. If we
+% want to place additional conditions on the limit construction, then we use the
+% |\ClimitCond| macro, which takes three arguments as well, the first one is a sequence of
+% bound variables, the second one is the condition, and the third one is again the limit
+% expression.
+%
+% \DescribeMacro{\Ctendsto}\DescribeMacro{\CtendstoAbove}\DescribeMacro{\CtendstoBelow} If
+% we want to speak qualitatively about limit processes (e.g. in the condition of a
+% |\ClimitCond| expression), then can use the {\mathml} {\element{tendsto}} element, which
+% is represented by the |\Ctendsto| macro, wich takes two expressions arguments. In
+% {\mathml}, the {\element{tendsto}} element can be further specialized by an attribute to
+% indicate the direction from which a limit is approached. In the |cmathml| package, we
+% supply two additional (specialized) macros for that: |\CtendstoAbove| and
+% |\CtendstoBelow|.
+% \begin{cmtab}
+% |\Climit| & 3 & |\Climit{x}{0}{\Csin{x}}| & $\Climit{x}{0}{\Csin{x}}$\\\hline
+% |\ClimitCond| & 3 & |\ClimitCond{x}{\Ctendsto{x}{0}}{\Ccos{x}}|
+% & $\ClimitCond{x}{\Ctendsto{x}{0}}{\Ccos{x}}$\\\hline
+% |\Ctendsto| & 2 & |\Ctendsto{f(x)}{2}| & $\Ctendsto{f(x)}{2}$\\\hline
+% |\CtendstoAbove| & 2 & |\CtendstoAbove{x}{1}| & $\CtendstoAbove{x}{1}$\\\hline
+% |\CtendstoBelow| & 2 & |\CtendstoBelow{x}{2}| & $\CtendstoBelow{x}{2}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Cdivergence}\DescribeMacro{\Cgrad}\DescribeMacro{\Ccurl}
+% \DescribeMacro{\Claplacian}
+% \begin{cmtab}
+% |\Cdivergence| & 1 & |\Cdivergence{A}| & $\Cdivergence{A}$\\\hline
+% |\Cgrad| & 1 & |\Cgrad{\Phi}| & $\Cgrad{\Phi}$\\\hline
+% |\Ccurl| & 1 & |\Ccurl{\Xi}| & $\Ccurl{\Xi}$\\\hline
+% |\Claplacian| & 1 & |\Claplacian{A}| & $\Claplacian{A}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Sets and their Operations}\label{sec:sets}
+%
+% \DescribeMacro{\Cset}\DescribeMacro{\Clist}
+% \DescribeMacro{\CsetDA}\DescribeMacro{\CsetRes}\DescribeMacro{\CsetCond}
+% The |\Cset| macros is used as the simple finite set constructor, it takes one argument
+% that is a comma-separated sequence of members of the set. |\CsetRes| allows to specify a
+% set by restricting a set of variables, and |\CsetCond| is the general form of the set
+% construction.\ednote{need to do this for lists as well? Probably}
+% \begin{cmtab}
+% |\Cset| & 1 & |\Cset{1,2,3}| & $\Cset{1,2,3}$\\\hline
+% |\CsetRes| & 2 & |\CsetRes{x}{\Cgt{x}5}|
+% & $\CsetRes{x}{\Cgt{x}5}$\\\hline
+% |\CsetCond| & 3 & |\CsetCond{x}{\Cgt{x}5}{\Cpower{x}3}|
+% & $\CsetCond{x}{\Cgt{x}5}{\Cpower{x}3}$\\\hline
+% |\CsetDA| & 3 & |\CsetDA{x}{\Cgt{x}5}{S_x}}|
+% & $\CsetDA{x}{\Cgt{x}5}{S_x}$\\\hline
+% |\Clist| & 1 & |\Clist{3,2,1}| & $\Clist{3,2,1}$\\\hline
+%\end{cmtab}
+%
+%\DescribeMacro{\Cunion}\DescribeMacro{\Cintersect}\DescribeMacro{\Ccartesianproduct}
+% \DescribeMacro{\Csetdiff}\DescribeMacro{\Ccard}\DescribeMacro{\Cin}\DescribeMacro{\Cnotin}
+% \begin{cmtab}
+% |\Cunion| & 1 & |\Cunion{S,T,L}| & $\Cunion{S,T,L}$\\\hline
+% |\Cintersect| & 1 & |\Cintersect{S,T,L}| & $\Cintersect{S,T,L}$\\\hline
+% |\Ccartesianproduct| & 1 & |\Ccartesianproduct{A,B,C}| & $\Ccartesianproduct{A,B,C}$\\\hline
+% |\Csetdiff| & 2 & |\Csetdiff{S}{L}| & $\Csetdiff{S}{L}$\\\hline
+% |\Ccard| & 1 & |\Ccard{\Cnaturalnumbers}| & $\Ccard{\mathbb{N}}$\\\hline
+% |\Cin| & 2 & |\Cin{a}{S}| & $\Cin{a}{S}$\\\hline
+% |\Cnotin| & 2 & |\Cnotin{b}{S}| & $\Cnotin{b}{S}$\\\hline
+%\end{cmtab}
+%
+% The following are the corresponding big operators for the first three binary ACI
+% functions. \DescribeMacro{\CUnionDA}\DescribeMacro{\CUnionCond}
+% \DescribeMacro{\CIntersectDA}\DescribeMacro{\CIntersectCond}
+% \DescribeMacro{\CCartesianproductDA}\DescribeMacro{\CCartesianproductCond}
+% \begin{cmtab}
+% |\CUnionDA| & 2 & |\CUnionDA\Cnaturalnumbers{S_i}|
+% & $\CUnionDA\Cnaturalnumbers{S_i}$\\\hline
+% |\CUnionCond| & 3 & |\CUnionCond{x}{\Cgt{x}5}{S_x}}|
+% & $\CUnionCond{x}{\Cgt{x}5}{S_x}$\\\hline
+% |\CIntersectDA| & 2 & |\CIntersectDA\Cnaturalnumbers{S_i}|
+% & $\CIntersectDa\Cnaturalnumbers{S_i}$\\\hline
+% |\CIntersectCond| & 3 & |\CIntersectCond{x}{\Cgt{x}5}{S_x}|
+% & $\CIntersectCond{x}{\Cgt{x}5}{S_x}$\\\hline
+% |\CCartesianproductDA| & 2 & |\CCartesianproductDA\Cnaturalnumbers{S_i}|
+% & $\CCartesianproductDA\Cnaturalnumbers{S_i}$\\\hline
+% |\CCartesianproductCond| & 3 & |\CCartesianproductCond{x}{\Cgt{x}5}{S_x}|
+% & $\CCartesianproductCond{x}{\Cgt{x}5}{S_x}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Csubset}\DescribeMacro{\Cprsubset}
+% \DescribeMacro{\Cnotsubset}\DescribeMacro{\Cnotprsubset} For the set containment
+% relations, we are in a somewhat peculiar situation: content {\mathml} only supplies the
+% subset side of the reations and leaves out the superset relations. Of course they are
+% not strictly needed, since they can be expressed in terms of the subset relation with
+% reversed argument order. But for the |cmathml| package, the macros have a presentational
+% side (for the {\LaTeX} workflow) and a content side (for the {\latexml} converter)
+% therefore we will need macros for both relations.
+%
+% \begin{cmtab}
+% |\Csubset| & 1 & |\Csubset{S,T,K}| & $\Csubset{S,T,K}$\\\hline
+% |\Cprsubset| & 1 & |\Cprsubset{S,T,K}| & $\Cprsubset{S,T,K}$\\\hline
+% |\Cnotsubset| & 2 & |\Cnotsubset{S}{K}| & $\Cnotsubset{S}{K}$\\\hline
+% |\Cnotprsubset| & 2 & |\Cnotprsubset{S}{L}| & $\Cnotprsubset{S}{L}$\\\hline
+% \end{cmtab}
+% \DescribeMacro{\Csupset}\DescribeMacro{\Cprsupset}
+% \DescribeMacro{\Cnotsupset}\DescribeMacro{\Cnotprsupset}
+% The following set of macros are presented in {\LaTeX} as their name suggests, but upon
+% transformation will generate content markup with the {\mathml} elements (i.e. in terms
+% of the subset relation).
+%
+% \begin{cmtab}
+% |\Csupset| & 1 & |\Csupset{S,T,K}| & $\Csupset{S,T,K}$\\\hline
+% |\Cprsupset| & 1 & |\Cprsupset{S,T,K}| & $\Cprsupset{S,T,K}$\\\hline
+% |\Cnotsupset| & 2 & |\Cnotsupset{S}{K}| & $\Cnotsupset{S}{K}$\\\hline
+% |\Cnotprsupset| & 2 & |\Cnotprsupset{S}{L}| & $\Cnotprsupset{S}{L}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Sequences and Series}\label{sec:sequences}
+%
+% \DescribeMacro{\CsumLimits}\DescribeMacro{\CsumCond}\DescribeMacro{\CsumDA}
+% \DescribeMacro{\CprodLimist}\DescribeMacro{\CprodCond}\DescribeMacro{\CprodDA}
+% \begin{cmtab}
+% |\CsumLimits| & 4 & |\CsumLimits{i}{0}{50}{x^i}| & $\CsumLimits{i}{0}{50}{x^i}$\\\hline
+% |\CsumCond| & 3 & |\CsumCond{i}{\Cintegers}{i}| & $\CsumCond{i}{\mathbb{Z}}{i}$\\\hline
+% |\CsumDA| & 2 & |\CsumDA{\Cintegers}{f}| & $\CsumDA{\mathbb{Z}}{f}$\\\hline
+% |\CprodLimits| & 4 & |\CprodLimits{i}{0}{20}{x^i}| & $\CprodLimits{i}{0}{20}{x^i}$\\\hline
+% |\CprodCond| & 3 & |\CprodCond{i}{\Cintegers}{i}| & $\CprodCond{i}{\mathbb{Z}}{i}$\\\hline
+% |\CprodDA| & 2 & |\CprodDA{\Cintegers}{f}| & $\CprodDA{\mathbb{Z}}{f}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Elementary Classical Functions}\label{sec:specfun}
+%
+% \DescribeMacro{\Csin}\DescribeMacro{\Ccos}\DescribeMacro{\Ctan}
+% \DescribeMacro{\Csec}\DescribeMacro{\Ccsc}\DescribeMacro{\Ccot}
+% \begin{cmtab}
+% |\Csin| & 1 & |\Csin{x}| & $\Csin{x}$\\\hline
+% |\Ccos| & 1 & |\Ccos{x}| & $\Ccos{x}$\\\hline
+% |\Ctan| & 1 & |\Ctan{x}| & $\Ctan{x}$\\\hline
+% |\Csec| & 1 & |\Csec{x}| & $\Csec{x}$\\\hline
+% |\Ccsc| & 1 & |\Ccsc{x}| & $\Ccsc{x}$\\\hline
+% |\Ccot| & 1 & |\Ccot{x}| & $\Ccot{x}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Csinh}\DescribeMacro{\Ccosh}\DescribeMacro{\Ctanh}
+% \DescribeMacro{\Csech}\DescribeMacro{\Ccsch}\DescribeMacro{\Ccoth}
+% \begin{cmtab}
+% |\Csinh| & 1 & |\Csinh{x}| & $\Csinh{x}$\\\hline
+% |\Ccosh| & 1 & |\Ccosh{x}| & $\Ccosh{x}$\\\hline
+% |\Ctanh| & 1 & |\Ctanh{x}| & $\Ctanh{x}$\\\hline
+% |\Csech| & 1 & |\Csech{x}| & $\Csech{x}$\\\hline
+% |\Ccsch| & 1 & |\Ccsch{x}| & $\Ccsch{x}$\\\hline
+% |\Ccoth| & 1 & |\Ccoth{x}| & $\Ccoth{x}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Carcsin}\DescribeMacro{\Carccos}\DescribeMacro{\Carctan}
+% \DescribeMacro{\Carcsec}\DescribeMacro{\Carccsc}\DescribeMacro{\Carccot}
+% \begin{cmtab}
+% |\Carcsin| & 1 & |\Carcsin{x}| & $\Carcsin{x}$\\\hline
+% |\Carccos| & 1 & |\Carccos{x}| & $\Carccos{x}$\\\hline
+% |\Carctan| & 1 & |\Carctan{x}| & $\Carctan{x}$\\\hline
+% |\Carccosh| & 1 & |\Carccosh{x}| & $\Carccosh{x}$\\\hline
+% |\Carccot| & 1 & |\Carccot{x}| & $\Carccot{x}$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Carcsinh}\DescribeMacro{\Carccosh}\DescribeMacro{\Carctanh}
+% \DescribeMacro{\Carcsech}\DescribeMacro{\Carccsch}\DescribeMacro{\Carccoth}
+% \begin{cmtab}
+% |\Carccoth| & 1 & |\Carccoth{x}| & $\Carccoth{x}$\\\hline
+% |\Carccsc| & 1 & |\Carccsc{x}| & $\Carccsc{x}$\\\hline
+% |\Carcsinh| & 1 & |\Carcsinh{x}| & $\Carcsinh{x}$\\\hline
+% |\Carctanh| & 1 & |\Carctanh{x}| & $\Carctanh{x}$\\\hline
+% |\Cexp| & 1 & |\Cexp{x}| & $\Cexp{x}$\\\hline
+% |\Cln| & 1 & |\Cln{x}| & $\Cln{x}$\\\hline
+% |\Clog| & 2 & |\Clog{5}{x}| & $\Clog{5}{x}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Statistics}\label{sec:statistics}
+%
+% The only semantic macro that is non-standard in this module is the one for the
+% {\element{moment}} and {\element{momentabout}} elements in {\mathml}. They are combined
+% into the semantic macro {|CmomentA|}; its first argument is the degree, its
+% second one the point in the distribution, the moment is taken about, and the third is
+% the distribution.
+%
+% \DescribeMacro{\Cmean}\DescribeMacro{\Csdev}\DescribeMacro{\Cvar}\DescribeMacro{\Cmedian}
+% \DescribeMacro{\Cmode}\DescribeMacro{\Cmoment}\DescribeMacro{\CmomentA}
+% \begin{cmtab}
+% |\Cmean| & 1 & |\Cmean{X}| & $\Cmean{X}$\\\hline
+% |\Csdev| & 1 & |\Csdev{X}| & $\Csdev{X}$\\\hline
+% |\Cvar| & 1 & |\Cvar{X}| & $\Cvar{X}$\\\hline
+% |\Cmedian| & 1 & |\Cmedian{X}| & $\Cmedian{X}$\\\hline
+% |\Cmode| & 1 & |\Cmode{X}| & $\Cmode{X}$\\\hline
+% |\Cmoment| & 3 & |\Cmoment{3}{X}| & $\Cmoment{3}{X}$\\\hline
+% |\CmomentA| & 3 & |\CmomentA{3}{p}{X}| & $\CmomentA{3}{p}{X}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Linear Algebra}\label{sec:linalg}
+%
+% In these semantic macros, only the matrix constructor is unusual; instead of
+% constructing a matrix from {\element{matrixrow}} elements like {\mathml} does, the macro
+% follows the {\TeX/\LaTeX} tradition allows to give a matrix as an array. The first
+% argument of the macro is the column specification (it will only be used for presentation
+% purposes), and the second one the rows.
+%
+% \DescribeMacro{\Cvector}\DescribeMacro{\Cmatrix}\DescribeMacro{\Cdeterminant}
+% \DescribeMacro{\Ctranspose}\DescribeMacro{\Cselector}
+% \DescribeMacro{\Cvectorproduct}\DescribeMacro{\Cscalarproduct}\DescribeMacro{\Couterproduct}
+% \begin{cmtab}
+% |\Cvector| & 1 & |\Cvector{1,2,3}| & $\Cvector{1,2,3}$\\\hline
+% |\Cmatrix| & 2 & |\Cmatrix{ll}{1 & 2\\ 3 & 4}| & $\Cmatrix{ll}{1 & 2\\3 & 4}$\\\hline
+% |\Cdeterminant| & 1 & |\Cdeterminant{A}| & $\Cdeterminant{A}$\\\hline
+% |\Ctranspose| & 1 & |\Ctranspose{A}| & $\Ctranspose{A}$\\\hline
+% |\Cselector| & 2 & |\Cselector{A}{2}| & $\Cselector{A}{2}$\\\hline
+% |\Cvectproduct| & 2 & |\Cvectproduct{\phi}{\psi}| & $\Cvectproduct{\phi}{\psi}$\\\hline
+% |\Cscalarproduct| & 2 & |\Cscalarproduct{\phi}{\psi}| & $\Cscalarproduct{\phi}{\psi}$\\\hline
+% |\Couterproduct| & 2 & |\Couterproduct{\phi}{\psi}| & $\Couterproduct{\phi}{\psi}$\\\hline
+% \end{cmtab}
+%
+% \subsection{Constant and Symbol Elements}\label{sec:constants}
+%
+% The semantic macros for the {\mathml} constant and symbol elements are very simple, they
+% do not take any arguments, and their name is just the {\mathml} element name prefixed by
+% a capital C.
+%
+% \DescribeMacro{\Cintegers}\DescribeMacro{\Creals}\DescribeMacro{\Crationals}
+% \DescribeMacro{\Ccomplexes}\DescribeMacro{\Cprimes}
+% \begin{cmtab}
+% |\Cintegers| & & |\Cintegers| & $\Cintegers$\\\hline
+% |\Creals| & & |\Creals| & $\Creals$\\\hline
+% |\Crationals| & & |\Crationals| & $\Crationals$\\\hline
+% |\Cnaturalnumbers| & & |\Cnaturalnumbers| & $\Cnaturalnumbers$\\\hline
+% |\Ccomplexes| & & |\Ccomplexes| & $\Ccomplexes$\\\hline
+% |\Cprimes| & & |\Cprimes| & $\Cprimes$\\\hline
+% \end{cmtab}
+%
+% \DescribeMacro{\Cexponentiale}\DescribeMacro{\Cimaginaryi}
+% \DescribeMacro{\Ctrue}\DescribeMacro{\Cfalse} \DescribeMacro{\Cemptyset}
+% \DescribeMacro{\Cpi}\DescribeMacro{\Ceulergamma}\DescribeMacro{\Cinfinit}
+% \begin{cmtab}
+% |\Cexponemtiale| & & |\Cexponemtiale| & $\Cexponemtiale$\\\hline
+% |\Cimaginaryi| & & |\Cimaginaryi| & $\Cimaginaryi$\\\hline
+% |\Cnotanumber| & & |\Cnotanumber| & $\Cnotanumber$\\\hline
+% |\Ctrue| & & |\Ctrue| & $\Ctrue$\\\hline
+% |\Cfalse| & & |\Cfalse| & $\Cfalse$\\\hline
+% |\Cemptyset| & & |\Cemptyset| & $\Cemptyset$\\\hline
+% |\Cpi| & & |\Cpi| & $\Cpi$\\\hline
+% |\Ceulergamma| & & |\Ceulergamma| & $\Ceulergamma$\\\hline
+% |\Cinfinit| & & |\Cinfinit| & $\Cinfinit$\\\hline
+% \end{cmtab}
+%
+% \subsection{Extensions}\label{sec:cmathmlx}
+% Content MathML does not (even though it claims to cover M-14 Math) symbols for all the
+% common mathematical notions. The |cmathmlx| attempts to collect these and provide
+% {\TeX/\LaTeX} and {\latexml} bindings.
+%
+%\DescribeMacro{\Ccomplement}
+% \begin{cmtab}
+% |\Ccomplement| & 1 & |\Ccomplement{\Cnaturalnumbers}| & $\Ccomplement{\mathbb{N}}$\\\hline
+%\end{cmtab}
+%
+% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
+%
+% \section{The Implementation}\label{sec:impl}
+%
+% In this file we document both the implementation of the |cmathml| package, as well as
+% the corresponding {\latexml} bindings. This keeps similar items close to each other,
+% even though they eventually go into differing files and helps promote consistency. We
+% specify which code fragment goes into which file by the {\xml}-like grouping commands:
+% The code between {\textsf{$\langle$*sty$\rangle$}} and {\textsf{$\langle$/sty$\rangle$}}
+% goes into the package file |cmathml.sty|, and the code between
+% {\textsf{$\langle$*ltxml$\rangle$}} and {\textsf{$\langle$/ltxml$\rangle$}} goes into
+% |cmathml.ltxml|
+%
+% \subsection{Initialization and auxiliary functions}\label{sec:impl:init}
+%
+% We first make sure that the {\sTeX} |presentation| package is loaded.
+% \begin{macrocode}
+%<*sty|styx>
+\RequirePackage{presentation}
+%</sty|styx>
+% \end{macrocode}
+%
+% Before we start im plementing the {\mathml} macros, we will need to set up the packages
+% for perl in the {\latexml} bindings file.
+% \begin{macrocode}
+%<*ltxml|ltxmlx>
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+use LaTeXML::Document;
+RequirePackage('LaTeX');
+%</ltxml|ltxmlx>
+% \end{macrocode}
+%
+% The next step is to itroduce two auxiliary functions, they are needed to work with
+% $n$-ary function elements. The first one removes arbitrary tokens from a list, and the
+% specializes that to commas. In particular |remove_tokens_from_list($List, $pattern, $math)|
+% returns a new |List| (or |MathList| if |$math| is true)
+% with all the tokens in |$List| except the ones which follow
+% the pattern |$pattern|.
+%
+% \begin{macrocode}
+%<*ltxml>
+sub remove_tokens_from_list {
+ my ($list, $pattern, $math) = @_;
+ if (ref $list) {
+ my @toks = $list->unlist;
+ @toks = grep($_->toString !~ /$pattern/, @toks);
+ ($math ? (LaTeXML::MathList->new(@toks)) : (LaTeXML::List)->new(@toks)); }
+ else { undef; } }
+
+sub remove_math_commas {
+ my ($whatsit, $argno) = @_;
+ my @args = $whatsit ? $whatsit->getArgs() : undef;
+ $argno--;
+ if ($args[$argno]) {
+ $args[$argno] = remove_tokens_from_list($args[$argno], ',', 1);
+ $whatsit->setArgs(@args);
+ }
+ return;
+}
+%</ltxml>
+% \end{macrocode}
+%
+% The structural macros are rather simple:
+%
+% \begin{macrocode}
+%<*sty>
+\newcommand{\Capply}[3][]{#2(#3)}
+%</sty>
+%<*ltxml>
+DefConstructor('\Capply [] {} {}',
+ "<ltx:XMApp ?#1(definitionURL='#1')()>#2 #3</ltx:XMApp>");
+%</ltxml>
+% after this, the implementation will always have the same form. We will first
+% implement a block of {\LaTeX} macros via a |\newcommand| and then specify the
+% corresponding {\latexml} bindings for them.
+%
+% \subsection{The Token Elements}\label{impl:tokens}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@cn#1{#1}
+\newcommand{\Ccn}[2][]{\CMathML@cn{#2}}
+\def\CMathML@ci#1{#1}
+\newcommand{\Cci}[2][]{\CMathML@ci{#2}}
+\def\CMathML@csymbol#1{#1}
+\newcommand{\Ccsymbol}[2][]{\CMathML@csymbol{#2}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Ccn [] {}',"#2");
+DefConstructor('\Cci [] {}',"#2");
+DefConstructor('\Ccsymbol [] {}',
+ "<ltx:XMTok role='CSYMBOL' meaning='#2' ?#1(definitionURL='#1')()/>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{The Basic Elements}\label{impl:basic}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@ccinterval#1#2{[#1,#2]}
+\newcommand{\Cccinterval}[3][]{\CMathML@ccinterval{#2}{#3}}
+\def\CMathML@cointerval#1#2{[#1,#2)}
+\newcommand{\Ccointerval}[3][]{\CMathML@cointerval{#2}{#3}}
+\def\CMathML@ocinterval#1#2{(#1,#2]}
+\newcommand{\Cocinterval}[3][]{\CMathML@ocinterval{#2}{#3}}
+\def\CMathML@oointerval#1#2{(#1,#2)}
+\newcommand{\Coointerval}[3][]{\CMathML@oointerval{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cccinterval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='ccinterval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Ccointerval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='cointerval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Cocinterval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='ocinterval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Coointerval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='oointerval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\newcommand{\Cinverse}[2][]{#2^{-1}}
+% what about separator
+%</sty>
+%<*ltxml>
+DefConstructor('\Cinverse [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='inverse' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@lambda#1#2{\lambda({#1},{#2})}
+\newcommand{\Clambda}[3][]{\CMathML@lambda{#2}{#3}}
+\def\CMathML@lambdaDA#1#2#3{\lambda({#1}\colon{#2},#3)}
+\newcommand{\ClambdaDA}[4][]{\CMathML@lambdaDA{#2}{#3}{#4}}
+\def\CMathML@restrict#1#2{\left.#1\right|_{#2}}
+\newcommand{\Crestrict}[3][]{\CMathML@restrict{#2}{#3}}
+%</sty>
+%\ednote{need do deal with multiple variables!}
+%<*ltxml>
+DefConstructor('\Clambda [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='lambda' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClambdaDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='lambda' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Crestrict [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='restrict' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@composeOp{\circ}
+ \newcommand{\CcomposeOp}{\CMathML@composeOp}
+\def\CMathML@compose#1{\assoc[p=500,pi=500]{\CMathML@composeOp}{#1}}
+\newcommand{\Ccompose}[2][]{\CMathML@compose{#2}}
+\def\CMathML@ident#1{\mathrm{id}}
+\newcommand{\Cident}[1][]{\CMathML@ident{#1}}
+\def\CMathML@domain#1{\mbox{dom}(#1)}
+\newcommand{\Cdomain}[2][]{\CMathML@domain{#2}}
+\def\CMathML@codomain#1{\mbox{codom}(#1)}
+\newcommand{\Ccodomain}[2][]{\CMathML@codomain{#2}}
+\def\CMathML@image#1{{\mathbf{Im}}(#1)}
+\newcommand{\Cimage}[2][]{\CMathML@image{#2}}
+\def\CMathML@piecewise#1{\left\{\begin{array}{ll}#1\end{array}\right.}
+\newcommand{\Cpiecewise}[2][]{\CMathML@piecewise{#2}}
+\def\CMathML@piece#1#2{#1&{\mathrm{if}}\;{#2}\\}
+\newcommand{\Cpiece}[3][]{\CMathML@piece{#2}{#3}}
+\def\CMathML@otherwise#1{#1&else\\}
+\newcommand{\Cotherwise}[2][]{\CMathML@otherwise{#2}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CcomposeOp []',
+ "<ltx:XMTok meaning='compose' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccompose [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='MULOP' meaning='compose' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cident []',
+ "<ltx:XMTok meaning='ident' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cdomain [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='domain' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccodomain [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='codomain' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cimage [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='image' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpiecewise [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='piecewise' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpiece [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='piece' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cotherwise [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='otherwise' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Elements for Arithmetic, Algebra, and Logic}\label{impl:arith}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@quotient#1#2{\frac{#1}{#2}}
+\newcommand{\Cquotient}[3][]{\CMathML@quotient{#2}{#3}}
+ \def\CMathML@factorialOp{!}
+ \newcommand{\CfactorialOp}{\CMathML@factorialOp}
+\def\CMathML@factorial#1{#1{\CMathML@factorialOp}}
+\newcommand{\Cfactorial}[2][]{\CMathML@factorial{#2}}
+ \def\CMathML@divideOp{\div}
+ \newcommand{\CdivideOp}{\CMathML@divideOp}
+\def\CMathML@divide#1#2{\infix[p=400]{\CMathML@divideOp}{#1}{#2}}
+\newcommand{\Cdivide}[3][]{\CMathML@divide{#2}{#3}}
+ \def\CMathML@maxOp{\mathrm{max}}
+ \newcommand{\CmaxOp}{\CMathML@maxOp}
+\def\CMathML@max#1{{\CMathML@maxOp}(#1)}
+\newcommand{\Cmax}[2][]{\CMathML@max{#2}}
+ \def\CMathML@minOp{\mathrm{min}}
+ \newcommand{\CminOp}{\CMathML@minOp}
+\def\CMathML@min#1{{\CMathML@minOp}(#1)}
+\newcommand{\Cmin}[2][]{\CMathML@min{#2}}
+ \def\CMathML@minusOp{-}
+ \newcommand{\CminusOp}{\CMathML@minusOp}
+\def\CMathML@minus#1#2{\infix[p=500]{\CMathML@minusOp}{#1}{#2}}
+\newcommand{\Cminus}[3][]{\CMathML@minus{#2}{#3}}
+\def\CMathML@uminus#1{\prefix[p=200]{\CMathML@minusOp}{#1}}
+\newcommand{\Cuminus}[2][]{\CMathML@uminus{#2}}
+ \def\CMathML@plusOp{+}
+ \newcommand{\CplusOp}{\CMathML@plusOp}
+\def\CMathML@plus#1{\assoc[p=500]{\CMathML@plusOp}{#1}}
+\newcommand{\Cplus}[2][]{\CMathML@plus{#2}}
+\def\CMathML@power#1#2{\infix[p=200]{^}{#1}{#2}}
+\newcommand{\Cpower}[3][]{\CMathML@power{#2}{#3}}
+ \def\CMathML@remOp{\bmod}
+ \newcommand{\CremOp}{\CMathML@remOp}
+\def\CMathML@rem#1#2{#1 \CMathML@remOp #2}
+\newcommand{\Crem}[3][]{\CMathML@rem{#2}{#3}}
+ \def\CMathML@timesOp{\cdot}
+ \newcommand{\CtimesOp}{\CMathML@timesOp}
+\def\CMathML@times#1{\assoc[p=400]{\CMathML@timesOp}{#1}}
+\newcommand{\Ctimes}[2][]{\CMathML@times{#2}}
+ \def\CMathML@rootOp{\sqrt}
+ \newcommand{\CrootOp}{\CMathML@rootOp{}}
+\def\CMathML@root#1#2{\CMathML@rootOp[#1]{#2}}
+\newcommand{\Croot}[3][]{\CMathML@root{#2}{#3}}
+\def\CMathML@gcd#1{\gcd(#1)}
+\newcommand{\Cgcd}[2][]{\CMathML@gcd{#2}}
+ \def\CMathML@andOp{\wedge}
+ \newcommand{\CandOp}{\CMathML@andOp}
+\def\CMathML@and#1{\assoc[p=400]{\CMathML@andOp}{#1}}
+\newcommand{\Cand}[2][]{\CMathML@and{#2}}
+ \def\CMathML@orOp{\vee}
+ \newcommand{\CorOp}{\CMathML@orOp}
+\def\CMathML@or#1{\assoc[p=500]{\CMathML@orOp}{#1}}
+\newcommand{\Cor}[2][]{\CMathML@or{#2}}
+ \def\CMathML@xorOp{\oplus}
+ \newcommand{\CxorOp}{\CMathML@xorOp}
+\def\CMathML@xor#1{\assoc[p=400]{\CMathML@xorOp}{#1}}
+\newcommand{\Cxor}[2][]{\CMathML@xor{#2}}
+ \def\CMathML@notOp{\neg}
+ \newcommand{\CnotOp}{\CMathML@notOp}
+\def\CMathML@not#1{\CMathML@notOp{#1}}
+\newcommand{\Cnot}[2][]{\CMathML@not{#2}}
+ \def\CMathML@impliesOp{\Longrightarrow}
+ \newcommand{\CimpliesOp}{\CMathML@impliesOp}
+\def\CMathML@implies#1#2{#1\CMathML@impliesOp{#2}}
+\newcommand{\Cimplies}[3][]{\CMathML@implies{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cquotient [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='quotient' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CfactorialOp []',
+ "<ltx:XMTok meaning='factorial' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfactorial [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='factorial' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CdivideOp []',
+ "<ltx:XMTok meaning='divide' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cdivide [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='divide' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CmaxOp []',
+ "<ltx:XMTok meaning='max' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cmax [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='max' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CminOp []',
+ "<ltx:XMTok meaning='min' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cmin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='min' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CminusOp []',
+ "<ltx:XMTok meaning='minus' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cminus [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='ADDOP' meaning='minus' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cuminus [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='uminus' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CplusOp []',
+ "<ltx:XMTok meaning='plus' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cplus [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='ADDOP' meaning='plus' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cpower [] {} {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='power' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CremOp []',
+ "<ltx:XMTok meaning='rem' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Crem [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='rem' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtimesOp []',
+ "<ltx:XMTok meaning='times' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctimes [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='MULOP' meaning='times' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CrootOp []',
+ "<ltx:XMTok meaning='root' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Croot [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='root' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cgcd [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='gcd' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CandOp []',
+ "<ltx:XMTok meaning='and' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cand [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CorOp []',
+ "<ltx:XMTok meaning='or' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CxorOp []',
+ "<ltx:XMTok meaning='xor' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cxor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CnotOp []',
+ "<ltx:XMTok meaning='not' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='not' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CimpliesOp []',
+ "<ltx:XMTok meaning='implies' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cimplies [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='implies' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+% \ednote{need to do something about the associative things in ltxml}
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@AndDA#1#2{\bigwedge_{#1}{#2}} % set, scope
+\newcommand{\CAndDA}[3][]{\CMathML@AndDA{#2}{#3}}
+\def\CMathML@AndCond#1#2#3{\bigwedge_{#2}{#3}} % bvars,condition, scope
+\newcommand{\CAndCond}[4][]{\CMathML@AndCond{#2}{#2}{#3}}
+\def\CMathML@OrDA#1#2{\bigvee_{#1}{#2}} % set, scope
+\newcommand{\COrDa}[3][]{\CMathML@OrDA{#2}{#3}}
+\def\CMathML@OrCond#1#2#3{\bigvee_{#2}{#3}}% bvars,condition, scope
+\newcommand{\COrCond}[4][]{\CMathML@OrCond{#2}{#3}{#4}}
+\def\CMathML@XorDA#1#2{\bigoplus_{#1}{#2}} % set, scope
+\newcommand{\CXorDA}[3][]{\CMathML@XorDA{#2}{#3}}
+\def\CMathML@XorCond#1#2#3{\bigoplus_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CXorCond}[4][]{\CMathML@XorCond{#2}{#3}{#4}}
+%
+\def\CMathML@forall#1#2{\forall{#1}\colon{#2}}
+\newcommand{\Cforall}[3][]{\CMathML@forall{#2}{#3}}
+\def\CMathML@forallCond#1#2#3{\forall{#1},{#2}\colon{#3}} % list), condition, scope
+\newcommand{\CforallCond}[4][]{\CMathML@forallCond{#2}{#3}{#4}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CAndDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CAndCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\COrDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\COrCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CXorDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CXorCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cforall [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='forall' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CforallCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='forall' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@exists#1#2{\exists{#1}\colon{#2}}
+\newcommand{\Cexists}[3][]{\CMathML@exists{#2}{#3}}
+\def\CMathML@esistsCont#1#2#3{\exists{#1},{#2}\colon{#3}}
+\newcommand{\CexistsCond}[4][]{\CMathML@esistsCont{#2}{#3}{#4}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cexists [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='exists' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CexistsCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='exists' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@abs#1{\left|#1\right|}
+\newcommand{\Cabs}[2][]{\CMathML@abs{#2}}
+\def\CMathML@conjugate#1{\overline{#1}}
+\newcommand{\Cconjugate}[2][]{\CMathML@conjugate{#2}}
+\def\CMathML@arg#1{\angle #1}
+\newcommand{\Carg}[2][]{\CMathML@arg{#2}}
+\def\CMathML@real#1{\Re #1}
+\newcommand{\Creal}[2][]{\CMathML@real{#2}}
+\def\CMathML@imaginary#1{\Im #1}
+\newcommand{\Cimaginary}[2][]{\CMathML@imaginary{#2}}
+\def\CMathML@lcm#1{\mbox{lcm}(#1)}
+\newcommand{\Clcm}[2][]{\CMathML@lcm{#2}}
+\def\CMathML@floor#1{\left\lfloor{#1}\right\rfloor}
+\newcommand{\Cfloor}[2][]{\CMathML@floor{#2}}
+\def\CMathML@ceiling#1{\left\lceil{#1}\right\rceil}
+\newcommand{\Cceiling}[2][]{\CMathML@ceiling{#2}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cabs [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='abs' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cconjugate [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='conjugate' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carg [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='arg' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Creal [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='real' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cimaginary [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='imaginary' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Clcm [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='lcm' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cfloor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='floor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cceiling [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='ceiling' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Relations}\label{impl:rels}
+%
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@eqOp{=}
+ \newcommand{\CeqOp}{\CMathML@eqOp}
+\def\CMathML@eq#1{\assoc[p=700]{\CMathML@eqOp}{#1}}
+\newcommand{\Ceq}[2][]{\CMathML@eq{#2}}
+ \def\CMathML@neqOp{\neq}
+ \newcommand{\CneqOp}{\CMathML@neqOp}
+\def\CMathML@neq#1#2{\infix[p=700]{\CMathML@neqOp}{#1}{#2}}
+\newcommand{\Cneq}[3][]{\CMathML@neq{#2}{#3}}
+ \def\CMathML@gtOp{>}
+ \newcommand{\CgtOp}{\CMathML@gtOp}
+\def\CMathML@gt#1{\assoc[p=700]{\CMathML@gtOp}{#1}}
+\newcommand{\Cgt}[2][]{\CMathML@gt{#2}}
+ \def\CMathML@ltOp{<}
+ \newcommand{\CltOp}{\CMathML@ltOp}
+\def\CMathML@lt#1{\assoc[p=700]{\CMathML@ltOp}{#1}}
+\newcommand{\Clt}[2][]{\CMathML@lt{#2}}
+ \def\CMathML@geqOp{\geq}
+ \newcommand{\CgeqOp}{\CMathML@geqOp}
+\def\CMathML@geq#1{\assoc[p=700]{\CMathML@geqOp}{#1}}
+\newcommand{\Cgeq}[2][]{\CMathML@geq{#2}}
+ \def\CMathML@leqOp{\leq}
+ \newcommand{\CleqOp}{\CMathML@leqOp}
+\def\CMathML@leq#1{\assoc[p=700]{\CMathML@leqOp}{#1}}
+\newcommand{\Cleq}[2][]{\CMathML@leq{#2}}
+ \def\CMathML@equivalentOp{\equiv}
+ \newcommand{\CequivalentOp}{\CMathML@equivalentOp}
+\def\CMathML@equivalent#1{\assoc[p=700]{\CMathML@equivalentOp}{#1}}
+\newcommand{\Cequivalent}[2][]{\CMathML@equivalent{#2}}
+ \def\CMathML@approxOp{\approx}
+ \newcommand{\CapproxOp}{\CMathML@approxOp}
+\def\CMathML@approx#1#2{#1\CMathML@approxOp{#2}}
+\newcommand{\Capprox}[3][]{\CMathML@approx{#2}{#3}}
+ \def\CMathML@factorofOp{\mid}
+ \newcommand{\CfactorofOp}{\CMathML@factorofOp}
+\def\CMathML@factorof#1#2{#1\CMathML@factorofOp{#2}}
+\newcommand{\Cfactorof}[3][]{\CMathML@factorof{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CeqOp []',
+ "<ltx:XMTok meaning='eq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ceq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='eq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CneqOp []',
+ "<ltx:XMTok meaning='neq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cneq [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='neq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CgtOp []',
+ "<ltx:XMTok meaning='gt' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cgt [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='gt' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CltOp []',
+ "<ltx:XMTok meaning='lt' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Clt [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='lt' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CgeqOp []',
+ "<ltx:XMTok meaning='geq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cgeq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='geq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CleqOp []',
+ "<ltx:XMTok meaning='leq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cleq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='leq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CequivalentOp []',
+ "<ltx:XMTok meaning='equivalent' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cequivalent [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='equivalent' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>");
+DefConstructor('\CapproxOp []',
+ "<ltx:XMTok meaning='approx' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Capprox [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='approx' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CfactorofOp []',
+ "<ltx:XMTok meaning='factorof' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfactorof [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='factorof' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+
+ \def\CMathML@intOp{\int}
+ \newcommand{\CintOp}{\CMathML@intOp}
+\def\CMathML@int#1{\CMathML@intOp{#1}}
+\newcommand{\Cint}[2][]{\CMathML@int{#2}}
+\def\CMathML@intLimits#1#2#3#4{\CMathML@intOp_{#2}^{#3}{#4}d{#1}} %bvars,llimit, ulimit,body
+\newcommand{\CintLimits}[5][]{\CMathML@intLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@intSet#1#2{\CMathML@intOp_{#1}{#2}}% set,function
+\newcommand{\CintDA}[3][]{\CMathML@intSet{#2}{#3}}
+\def\CMathML@intCond#1#2#3{\CMathML@intOp_{#2}{#3}d{#1}} %bvars, condition, body
+\newcommand{\CintCond}[4][]{\CMathML@intCond{#2}{#3}{#4}}
+
+%</sty>
+%<*ltxml>
+DefConstructor('\CintOp []',
+ "<ltx:XMTok meaning='int' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cint [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "<ltx:XMArg>#5</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@diff#1{#1'}
+\newcommand{\Cdiff}[2][]{\CMathML@diff{#2}}
+\def\CMathML@ddiff#1#2{{d{#2}(#1)\over{d{#1}}}}
+\newcommand{\Cddiff}[3][]{\CMathML@ddiff{#2}{#3}}
+\def\CMathML@partialdiff#1#2#3{{\partial^{#1}\over\partial{#2}}{#3}}% degree, bvars, body
+\newcommand{\Cpartialdiff}[4][]{\CMathML@partialdiff{#2}{#3}{#4}}
+\newcommand{\Cdegree}[2]{#1^{#2}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cdiff [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cddiff [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpartialdiff [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "?#2(<ltx:XMArg>#2</ltx:XMArg>)()"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdegree {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='degree'/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#1</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@limit#1#2#3{\lim_{#1\rightarrow{#2}}{#3}}
+\newcommand{\Climit}[4][]{\CMathML@limit{#2}{#3}{#4}} % bvar, lowlimit, scope
+\def\CMathML@limitCond#1#2#3{\lim_{#2}{#3}}
+\newcommand{\ClimitCond}[4][]{\CMathML@limitCond{#2}{#3}{#4}} % bvars, condition, scope
+%</sty>
+%<*ltxml>
+DefConstructor('\Climit [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='limit' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClimitCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='limit' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@tendstoOp{\rightarrow}
+ \newcommand{\CtendstoOp}{\CMathML@tendstoOp}
+\def\CMathML@tendsto#1#2{#1\CMathML@tendstoOp{#2}}
+\newcommand{\Ctendsto}[3][]{\CMathML@tendsto{#2}{#3}}
+ \def\CMathML@tendstoAboveOp{\searrow}
+ \newcommand{\CtendstoAboveOp}{\CMathML@tendstoAboveOp}
+\def\CMathML@tendstoAbove#1#2{#1\searrow{#2}}
+\newcommand{\CtendstoAbove}[3][]{\CMathML@tendstoAbove{#2}{#3}}
+ \def\CMathML@tendstoBelowOp{\nearrow}
+ \newcommand{\CtendstoBelowOp}{\CMathML@tendstoBelowOp}
+\def\CMathML@tendstoBelow#1#2{#1\CMathML@tendstoBelowOp{#2}}
+\newcommand{\CtendstoBelow}[3][]{\CMathML@tendstoBelow{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CtendstoOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctendsto [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP' meaning='tendsto' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtendstoAboveOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CtendstoAbove [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP'meaning='tendsto' type='above' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtendstoBelowOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CtendstoBelow [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP' meaning='tendsto' type='below' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@divergence#1{\nabla\cdot{#1}}
+\newcommand{\Cdivergence}[2][]{\CMathML@divergence{#2}}
+\def\CMathML@grad#1{\nabla{#1}}
+\newcommand{\Cgrad}[2][]{\CMathML@grad{#2}}
+\def\CMathML@curl#1{\nabla\times{#1}}
+\newcommand{\Ccurl}[2][]{\CMathML@curl{#2}}
+\def\CMathML@laplacian#1{\nabla^2#1}
+\newcommand{\Claplacian}[2][]{\CMathML@laplacian{#2}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cdivergence [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='divergence' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cgrad [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='grad' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Curl [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='url' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Claplacian [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='laplacian' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Sets and their Operations}\label{impl:sets}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@set#1{\left\{#1\right\}}
+\newcommand{\Cset}[2][]{\CMathML@set{#2}}
+\def\CMathML@setRes#1#2{\{#1|#2\}}
+\newcommand{\CsetRes}[3][]{\CMathML@setRes{#2}{#3}}
+\def\CMathML@setCond#1#2#3{\{#2|#3\}}
+\newcommand{\CsetCond}[4][]{\CMathML@setCond{#2}{#3}{#4}}
+\def\CMathML@setDA#1#2#3{\{#1\in{#2}|#3\}}
+\newcommand{\CsetDA}[4][]{\CMathML@setDA{#2}{#3}{#4}}
+ \def\CMathML@listOp{\mbox{list}}
+ \newcommand{\ClistOp}{\CMathML@listOp}
+\def\CMathML@list#1{\CMathML@listOp({#1})}
+\newcommand{\Clist}[2][]{\CMathML@list{#2}}
+ \def\CMathML@unionOp{\cup}
+ \newcommand{\CunionOp}{\CMathML@unionOp}
+\def\CMathML@union#1{\assoc[p=500]{\CMathML@unionOp}{#1}}
+\newcommand{\Cunion}[2][]{\CMathML@union{#2}}
+ \def\CMathML@intersectOp{\cap}
+ \newcommand{\CintersectOp}{\CMathML@intersectOp}
+\def\CMathML@intersect#1{\assoc[p=400]{\CMathML@intersectOp}{#1}}
+\newcommand{\Cintersect}[2][]{\CMathML@intersect{#2}}
+ \def\CMathML@inOp{\in}
+ \newcommand{\CinOp}{\CMathML@inOp}
+\def\CMathML@in#1#2{#1\CMathML@inOp{#2}}
+\newcommand{\Cin}[3][]{\CMathML@in{#2}{#3}}
+ \def\CMathML@notinOp{\notin}
+ \newcommand{\CnotinOp}{\CMathML@notinOp}
+\def\CMathML@notin#1#2{#1\CMathML@notinOp{#2}}
+\newcommand{\Cnotin}[3][]{\CMathML@notin{#2}{#3}}
+ \def\CMathML@setdiffOp{\setminus}
+ \newcommand{\CsetdiffOp}{\CMathML@setdiffOp}
+\def\CMathML@setdiff#1#2{#1\CMathML@setdiffOp{#2}}
+\newcommand{\Csetdiff}[3][]{\CMathML@setdiff{#2}{#3}}
+ \def\CMathML@cardOp{\#}
+ \newcommand{\CcardOp}{\CMathML@cardOp}
+\def\CMathML@card#1{\CMathML@cardOp #1}
+\newcommand{\Ccard}[2][]{\CMathML@card{#2}}
+ \def\CMathML@cartesianproductOp{\times}
+ \newcommand{\CcartesianproductOp}{\CMathML@cartesianproductOp}
+\def\CMathML@cartesianproduct#1{\assoc[p=400]{\CMathML@cartesianproductOp}{#1}}
+\newcommand{\Ccartesianproduct}[2][]{\CMathML@cartesianproduct{#2}}
+ \def\CMathML@subsetOp{\subseteq}
+ \newcommand{\CsubsetOp}{\CMathML@subsetOp}
+\def\CMathML@subset#1{\assoc[p=700]{\CMathML@subsetOp}{#1}}
+\newcommand{\Csubset}[2][]{\CMathML@subset{#2}}
+ \def\CMathML@prsubsetOp{\subset}
+ \newcommand{\CprsubsetOp}{\CMathML@prsubsetOp}
+\def\CMathML@prsubset#1{\assoc[p=700]{\CMathML@prsubsetOp}{#1}}
+\newcommand{\Cprsubset}[2][]{\CMathML@prsubset{#2}}
+ \def\CMathML@notsubsetOp{\not\subseteq}
+ \newcommand{\CnotsubsetOp}{\CMathML@notsubsetOp}
+\def\CMathML@notsubset#1#2{#1\CMathML@notsubsetOp{#2}}
+\newcommand{\Cnotsubset}[3][]{\CMathML@notsubset{#2}{#3}}
+ \def\CMathML@notprsubsetOp{\not\subset}
+ \newcommand{\CnotprsubsetOp}{\CMathML@notprsubsetOp}
+\def\CMathML@notprsubset#1#2{#1\CMathML@notprsubsetOp{#2}}
+\newcommand{\Cnotprsubset}[3][]{\CMathML@notprsubset{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='set' role='CONSTRUCTOR' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CsetRes [] {}{}',
+ "<ltx:XMApp role='BIGOP'>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='CONDITION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetCond [] {}{}{}',
+ "<ltx:XMApp role='BIGOP'>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='CONDITION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetDA [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='DOMAINOFAPPLICATION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClistOp []',
+ "<ltx:XMTok meaning='list' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Clist [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='list' role='CONSTRUCTOR' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CunionOp []',
+ "<ltx:XMTok meaning='union' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cunion [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='union' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CintersectOp []',
+ "<ltx:XMTok meaning='intersect' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cintersect [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='intersect' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CinOp []',
+ "<ltx:XMTok meaning='in' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cin [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='in' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CnotinOp []',
+ "<ltx:XMTok meaning='notin' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotin [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notin' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsubsetOp []',
+ "<ltx:XMTok meaning='subset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Csubset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='subset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CprsubsetOp []',
+ "<ltx:XMTok meaning='prsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cprsubset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='prsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CnotsubsetOp []',
+ "<ltx:XMTok meaning='notsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotsubset [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CnotprsubsetOp []',
+ "<ltx:XMTok meaning='notprsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotprsubset [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notprsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetdiffOp []',
+ "<ltx:XMTok meaning='setdiff' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Csetdiff [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='setdiff' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CcardOp []',
+ "<ltx:XMTok meaning='card' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccard [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='card' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CcartesianproductOp []',
+ "<ltx:XMTok meaning='cartesianproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccartesianproduct [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cartesianproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+%</ltxml>
+% \end{macrocode}
+% The next set of macros are needed, since they are presentational.
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@supsetOp{\supseteq}
+ \newcommand{\CsupsetOp}{\CMathML@supsetOp}
+\def\CMathML@supset#1{\assoc[p=700]{\CMathML@supsetOp}{#1}}
+\newcommand{\Csupset}[2][]{\CMathML@supset{#2}}
+ \def\CMathML@prsupsetOp{\supset}
+ \newcommand{\CprsupsetOp}{\CMathML@prsupsetOp}
+\def\CMathML@prsupset#1{\assoc[p=700]{\CMathML@prsupsetOp}{#1}}
+\newcommand{\Cprsupset}[2][]{\CMathML@prsupset{#2}}
+ \def\CMathML@notsupsetOp{\not\supseteq}
+ \newcommand{\CnotsupsetOp}{\CMathML@notsupsetOp}
+\def\CMathML@notsupset#1#2{#1\CMathML@notsupsetOp{#2}}
+\newcommand{\Cnotsupset}[3][]{\CMathML@notsupset{#2}{#3}}
+ \def\CMathML@notprsupsetOp{\not\supset}
+ \newcommand{\CnotprsupsetOp}{\CMathML@notprsupsetOp}
+\def\CMathML@notprsupset#1#2{#1\CMathML@notprsupsetOp{#2}}
+\newcommand{\Cnotprsupset}[3][]{\CMathML@notprsupset{#2}{#3}}
+%</sty>
+% \end{macrocode}
+%
+% On the semantic side (in {\latexml}), we need to implement them in terms of the
+% {\mathml} elements. Fortunately, we can just turn them around. \ednote{ooooops, this
+% does not work for the associative ones.}
+%
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\CsupsetOp []',
+ "<ltx:XMTok meaning='supset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CprsupsetOp []',
+ "<ltx:XMTok meaning='prsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CnotsupsetOp []',
+ "<ltx:XMTok meaning='notsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CnotprsupsetOp []',
+ "<ltx:XMTok meaning='notprsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefMacro('\Csupset[]{}','\Csubset[#1]{#2}');
+DefMacro('\Cprsupset[]{}','\Cprsubset[#1]{#2}');
+DefMacro('\Cnotsupset[]{}{}','\Cnotsubset[#1]{#3}{#2}');
+DefMacro('\Cnotprsupset[]{}{}','\Cnotprsubset[#1]{#3}{#2}');
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@UnionDAOp{\bigwedge}
+ \newcommand{\CUnionDAOp}{\CMathML@UnionDAOp}
+\def\CMathML@UnionDA#1#2{\CMathML@UnionDAOp_{#1}{#2}} % set, scope
+\newcommand{\CUnionDA}[3][]{\CMathML@UnionDA{#2}{#3}}
+\def\CMathML@UnionCond#1#2#3{\CMathML@UnionDAOp_{#2}{#3}} % bvars,condition, scope
+\newcommand{\CUnionCond}[4][]{\CMathML@UnionCond{#2}{#2}{#3}}
+ \def\CMathML@IntersectDAOp{\bigvee}
+ \newcommand{\CIntersectDAOp}{\CMathML@IntersectDAOp}
+\def\CMathML@IntersectDA#1#2{\CMathML@IntersectDAOp_{#1}{#2}} % set, scope
+\newcommand{\CIntersectDa}[3][]{\CMathML@IntersectDA{#2}{#3}}
+\def\CMathML@IntersectCond#1#2#3{\CMathML@IntersectDAOp_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CIntersectCond}[4][]{\CMathML@IntersectCond{#2}{#3}{#4}}
+ \def\CMathML@CartesianproductDAOp{\bigoplus}
+ \newcommand{\CCartesianproductDAOp}{\CMathML@CartesianproductDAOp}
+\def\CMathML@CartesianproductDA#1#2{\CMathML@CartesianproductDAOp_{#1}{#2}} % set, scope
+\newcommand{\CCartesianproductDA}[3][]{\CMathML@CartesianproductDA{#2}{#3}}
+\def\CMathML@CartesianproductCond#1#2#3{\CMathML@CartesianproductDAOp_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CCartesianproductCond}[4][]{\CMathML@CartesianproductCond{#2}{#3}{#4}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CUnionDAOp []',
+ "<ltx:XMTok meaning='union' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CUnionDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='union' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CUnionCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='union' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CIntersectDaOp []',
+ "<ltx:XMTok meaning='intersect' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CIntersectDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='intersect' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CIntersectCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='intersect' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CCartesianproductDaOp []',
+ "<ltx:XMTok meaning='cartesianproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CCartesianproductDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='cartesianproduct' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CCartesianproductCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='cartesianproduct' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Sequences and Series}\label{impl:sequences}
+%
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@sumOp{\sum}
+ \newcommand{\CsumOp}{\CMathML@sumOp}
+\def\CMathML@sumLimits#1#2#3#4{\CMathML@sumOp_{#1=#2}^{#3}#4}% bvar, llimit, ulimit, body
+\newcommand{\CsumLimits}[5][]{\CMathML@sumLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@sumCond#1#2#3{\CMathML@sumOp_{#1\in{#2}}#3} % bvar, condition, body
+\newcommand{\CsumCond}[4][]{\CMathML@sumCond{#2}{#3}{#4}}
+\def\CMathML@sumDA#1#2{\CMathML@sumOp_{#1}#2} % set, body
+\newcommand{\CsumDA}[3][]{\CMathML@sumDA{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CsumOp []',
+ "<ltx:XMTok meaning='sum' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CsumLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sum' role='SUMOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "#5</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+% \ednote{complete the other cases}\ednote{add a keyword argument to all newcommands}
+% \begin{macrocode}
+%<*sty>
+ \def\CMathML@prodOp{\prod}
+ \newcommand{\CprodOp}{\CMathML@prodOp}
+\def\CMathML@prodLimits#1#2#3#4{\CMathML@prodOp_{#1=#32^{#3}#4}}% bvar, llimit, ulimit, body
+\newcommand{\CprodLimits}[5][]{\CMathML@prodLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@prodCond#1#2#3{\CMathML@prodOp_{#1\in{#2}}#3} % bvar, condition, body
+\newcommand{\CprodCond}[4][]{\CMathML@prodCond{#2}{#3}{#4}}
+\def\CMathML@prodDA#1#2{\CMathML@prodOp_{#1}#2} % set, body
+\newcommand{\CprodDA}[3]{\CMathML@prodDA{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\CprodOp []',
+ "<ltx:XMTok meaning='prod' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CprodLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='prod' role='SUMOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg><ci>#2</ci></ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "#5</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+% \ednote{complete the other cases}
+% \subsection{Elementary Classical Functions}\label{impl:specfun}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@sin#1{\sin(#1)}
+\newcommand{\Csin}[2][]{\CMathML@sin{#2}}
+\def\CMathML@cos#1{\cos(#1)}
+\newcommand{\Ccos}[2][]{\CMathML@cos{#2}}
+\def\CMathML@tan#1{\tan(#1)}
+\newcommand{\Ctan}[2][]{\CMathML@tan{#2}}
+\def\CMathML@sec#1{\sec(#1)}
+\newcommand{\Csec}[2][]{\CMathML@sec{#2}}
+\def\CMathML@csc#1{\csc(#1)}
+\newcommand{\Ccsc}[2][]{\CMathML@csc{#2}}
+\def\CMathML@cot#1{\cot(#1)}
+\newcommand{\Ccot}[2][]{\CMathML@cot{#2}}
+\def\CMathML@sinh#1{\sinh(#1)}
+\newcommand{\Csinh}[2][]{\CMathML@sinh{#2}}
+\def\CMathML@cosh#1{\cosh(#1)}
+\newcommand{\Ccosh}[2][]{\CMathML@cosh{#2}}
+\def\CMathML@tanh#1{\tanh(#1)}
+\newcommand{\Ctanh}[2][]{\CMathML@tanh{#2}}
+\def\CMathML@sech#1{\mbox{sech}(#1)}
+\newcommand{\Csech}[2][]{\CMathML@sech{#2}}
+\def\CMathML@csch#1{\mbox{csch}(#1)}
+\newcommand{\Ccsch}[2][]{\CMathML@csch{#2}}
+\def\CMathML@coth#1{\mbox{coth}(#1)}
+\newcommand{\Ccoth}[2][]{\CMathML@coth{#2}}
+\def\CMathML@arcsin#1{\arcsin(#1)}
+\newcommand{\Carcsin}[2][]{\CMathML@arcsin{#2}}
+\def\CMathML@arccos#1{\arccos(#1)}
+\newcommand{\Carccos}[2][]{\CMathML@arccos{#2}}
+\def\CMathML@arctan#1{\arctan(#1)}
+\newcommand{\Carctan}[2][]{\CMathML@arctan{#2}}
+\def\CMathML@arccosh#1{\mbox{arccosh}(#1)}
+\newcommand{\Carccosh}[2][]{\CMathML@arccosh{#2}}
+\def\CMathML@arccot#1{\mbox{arccot}(#1)}
+\newcommand{\Carccot}[2][]{\CMathML@arccot{#2}}
+\def\CMathML@arccoth#1{\mbox{arccoth}(#1)}
+\newcommand{\Carccoth}[2][]{\CMathML@arccoth{#2}}
+\def\CMathML@arccsc#1{\mbox{arccsc}(#1)}
+\newcommand{\Carccsc}[2][]{\CMathML@arccsc{#2}}
+\def\CMathML@arcsinh#1{\mbox{arcsinh}(#1)}
+\newcommand{\Carcsinh}[2][]{\CMathML@arcsinh{#2}}
+\def\CMathML@arctanh#1{\mbox{arctanh}(#1)}
+\newcommand{\Carctanh}[2][]{\CMathML@arctanh{#2}}
+
+\def\CMathML@exp#1{\exp(#1)}
+\newcommand{\Cexp}[2][]{\CMathML@exp{#2}}
+\def\CMathML@ln#1{\ln(#1)}
+\newcommand{\Cln}[2][]{\CMathML@ln{#2}}
+\def\CMathML@log#1#2{\log_{#1}(#2)}
+\newcommand{\Clog}[3][]{\CMathML@log{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Csin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sin' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccos [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cos' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctan [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='tan' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csec [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sec' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccsc [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='csc' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cot' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csinh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sinh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccosh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cosh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctanh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='tanh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csech [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sech' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccsch [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='csch' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccoth [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='coth' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsin' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccos [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccos' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carctan [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arctan' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsec [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsec' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccsc [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccsc' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccot' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsinh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsinh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccosh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccosh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carctanh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arctanh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsech [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsech' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccsch [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccsch' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccoth [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccoth' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cexp [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='exp' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cln [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='ln' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Clog [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='log' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Statistics}\label{impl:statistics}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@mean#1{\mbox{mean}(#1)}
+\newcommand{\Cmean}[2][]{\CMathML@mean{#2}}
+\def\CMathML@sdev#1{\mbox{std}(#1)}
+\newcommand{\Csdev}[2][]{\CMathML@sdev{#2}}
+\def\CMathML@var#1{\mbox{var}(#1)}
+\newcommand{\Cvar}[2][]{\CMathML@var{#2}}
+\def\CMathML@median#1{\mbox{median}(#1)}
+\newcommand{\Cmedian}[2][]{\CMathML@median{#2}}
+\def\CMathML@mode#1{\mbox{mode}(#1)}
+\newcommand{\Cmode}[2][]{\CMathML@mode{#2}}
+\def\CMathML@moment#1#2{\langle{#2}^{#1}\rangle}% degree, momentabout, scope
+\newcommand{\Cmoment}[3][]{\CMathML@moment{#2}{#3}}
+\def\CMathML@momentA#1#2{\langle{#2}^{#1}\rangle}% degree, momentabout, scope
+\newcommand{\CmomentA}[4][]{\CMathML@momentA{#2}{#3}{#4}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cmean [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='mean' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csdev [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sdev' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cvar [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='var' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmedian [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='median' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmode [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='mode' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmoment [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='moment' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+% \ednote{we do not seem to need the momentabout.}\ednote{moment and momentA have funny
+% elided arguments}
+%
+% \subsection{Linear Algebra}\label{impl:linalg}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@vector#1{(#1)}
+\newcommand{\Cvector}[2][]{\CMathML@vector{#2}}
+\def\CMathML@matrix#1#2{\left(\begin{array}{#1}#2\end{array}\right)}% row pattern, body
+\newcommand{\Cmatrix}[3][]{\CMathML@matrix{#2}{#3}}
+\def\CMathML@determinant#1{\left|#1\right|}
+\newcommand{\Cdeterminant}[2][]{\CMathML@determinant{#2}}
+\def\CMathML@transpose#1{#1^\top}
+\newcommand{\Ctranspose}[2][]{\CMathML@transpose{#2}}
+\def\CMathML@selector#1#2{#1_{#2}}
+\newcommand{\Cselector}[3][]{\CMathML@selector{#2}{#3}}
+ \def\CMathML@vectproductOp{\cdot}
+ \newcommand{\CvectproductOp}{\CMathML@vectproductOp}
+\def\CMathML@vectproduct#1#2{#1\CMathML@vectproductOp{#2}}
+\newcommand{\Cvectproduct}[3][]{\CMathML@vectproduct{#2}{#3}}
+\def\CMathML@scalarproduct#1#2{{#1}#2}
+\newcommand{\Cscalarproduct}[3][]{\CMathML@scalarproduct{#2}{#3}}
+ \def\CMathML@outerproductOp{\times}
+ \newcommand{\CouterproductOp}{\CMathML@outerproductOp}
+\def\CMathML@outerproduct#1#2{#1\CMathML@outerproductOp{#2}}
+\newcommand{\Couterproduct}[3][]{\CMathML@outerproduct{#2}{#3}}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cvector [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='vector' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cmatrix [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='matrix' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdeterminant [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='determinant' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctranspose [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='transpose' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cselector [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='selector' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CvectorproductOp []',
+ "<ltx:XMTok meaning='vectorproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cvectorproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='vectorproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cscalarproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='scalarproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CouterproductOp []',
+ "<ltx:XMTok meaning='outerproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Couterproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='outerproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Constant and Symbol Elements}\label{impl:constants}
+%
+% \begin{macrocode}
+%<*sty>
+\def\CMathML@integers{{\mathbb{Z}}}
+\newcommand{\Cintegers}[1][]{\CMathML@integers}
+\def\CMathML@reals{{\mathbb{R}}}
+\newcommand{\Creals}[1][]{\CMathML@reals}
+\def\CMathML@rationals{{\mathbb{Q}}}
+\newcommand{\Crationals}[1][]{\CMathML@rationals}
+\def\CMathML@naturalnumbers{{\mathbb{N}}}
+\newcommand{\Cnaturalnumbers}[1][]{\CMathML@naturalnumbers}
+\def\CMathML@complexes{{\mathbb{C}}}
+\newcommand{\Ccomplexes}[1][]{\CMathML@complexes}
+\def\CMathML@primes{{\mathbb{P}}}
+\newcommand{\Cprimes}[1][]{\CMathML@primes}
+\def\CMathML@exponemtiale{e}
+\newcommand{\Cexponemtiale}[1][]{\CMathML@exponemtiale}
+\def\CMathML@imaginaryi{i}
+\newcommand{\Cimaginaryi}[1][]{\CMathML@imaginaryi}
+\def\CMathML@notanumber{{\mathrm{NaN}}}
+\newcommand{\Cnotanumber}[1][]{\CMathML@notanumber}
+\def\CMathML@true{{\mathrm{true}}}
+\newcommand{\Ctrue}[1][]{\CMathML@true}
+\def\CMathML@false{{\mathrm{false}}}
+\newcommand{\Cfalse}[1][]{\CMathML@false}
+\def\CMathML@emptyset{\emptyset}
+\newcommand{\Cemptyset}[1][]{\CMathML@emptyset}
+\def\CMathML@pi{\pi}
+\newcommand{\Cpi}[1][]{\CMathML@pi}
+\def\CMathML@eulergamma{\gamma}
+\newcommand{\Ceulergamma}[1][]{\CMathML@eulergamma}
+\def\CMathML@infinit{\infty}
+\newcommand{\Cinfinit}[1][]{\CMathML@infinit}
+%</sty>
+%<*ltxml>
+DefConstructor('\Cintegers []',
+ "<ltx:XMTok meaning='integers' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Creals []',
+ "<ltx:XMTok meaning='reals' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Crationals []',
+ "<ltx:XMTok meaning='rationals' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnaturalnumbers []',
+ "<ltx:XMTok meaning='naturalnumbers' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccomplexes []',
+ "<ltx:XMTok meaning='complexes' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cprimes []',
+ "<ltx:XMTok meaning='primes' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cexponentiale []',
+ "<ltx:XMTok meaning='exponentiale' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cimaginaryi []',
+ "<ltx:XMTok meaning='imaginaryi' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotanumber []',
+ "<ltx:XMTok meaning='notanumber' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctrue []',
+ "<ltx:XMTok meaning='true' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfalse []',
+ "<ltx:XMTok meaning='false' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cemptyset []',
+ "<ltx:XMTok meaning='emptyset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cpi []',
+ "<ltx:XMTok meaning='pi' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ceulergamma []',
+ "<ltx:XMTok meaning='eulergamma' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cinfinit []',
+ "<ltx:XMTok meaning='infinit' role='ID' ?#1(definitionURL='#1')()/>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Extensions}\label{sec:impl:cmathmlx}
+% \begin{macro}{\Ccomplement}
+% \begin{macrocode}
+%<*styx>
+\def\CMathML@complement#1{#1^c}
+\newcommand{\Ccomplement}[2][]{\CMathML@complement{#2}}
+%</styx>
+%<*ltxmlx>
+DefConstructor('\Ccomplement [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='complement' role='CSYMBOL'/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+%</ltxmlx>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Finale}\label{sec:impl:finale}
+%
+% Finally, we need to terminate the file with a success mark for perl.
+% \begin{macrocode}
+%<ltxml>1;
+% \end{macrocode}
+% \Finale
+\endinput
+
+% \iffalse
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
+
+% LocalWords: STeX cmathml symdefs CMathML dom codom Im ll reln fn bvar arith
+% LocalWords: alg lcm rels Ceq llimit ulimit bvars lowlimit specfun sech csch
+% LocalWords: coth arccosh arccot arccoth arccsc arcsinh arctanh logbase std
+% LocalWords: var momentabout linalg matrixrow bruce NaN stex cnxml symdef sc
+% LocalWords: DefinitionURLs domainofapplication CmomentA concl iffalse scsys
+% LocalWords: cmathml.dtx sc newenvironment pcmtab hline cmtab hbox ttfamily
+% LocalWords: xslt xslt mathml scshape latexml twintoo atwin atwintoo texttt
+% LocalWords: fileversion maketitle newpage tableofcontents newpage exfig exp
+% LocalWords: usepackage vspace cmathml-eip varpi ednote nd cmatml Capply Cexp
+% LocalWords: cdot ary Cond bigcup subseteq Cnaturalnumbers Cunion csymbol Ccn
+% LocalWords: Ccsymbol camthml Cinverse Ccompose Cident Cdomain Ccodomain Clt
+% LocalWords: Cimage Clambda ClambdaDA Crestrict ccinterval cointerval Cpiece
+% LocalWords: ocinterval oointerval Cccinterval Cccinterval Cccinterval Cminus
+% LocalWords: Ccointerval Ccointerval Ccointerval Cocinterval Cocinterval Cmax
+% LocalWords: Cocinterval Coointerval Coointerval Coointerval Cpiecewise Cplus
+% LocalWords: Cotherwise footnotesize Cuminus Cquotient Cfactorial Cdivide Cgt
+% LocalWords: Cpower Ctimes Croot Cmin Cgcd Cand Cxor Cnot Cimplies forall cn
+% LocalWords: Cforall CforallCond Cexists CexistsCond Cconjugate Carg Creal eq
+% LocalWords: Cimaginary Cfloor Cceiling Cneq Cgeq Cleq Cequivalent Capprox gt
+% LocalWords: Cfactorof Cint CintLimits CintDA CintCond Cinfinit infty Creals
+% LocalWords: mathbb Cdiff Cddiff varible Cpartialdiff Cdegree Climit Ctendsto
+% LocalWords: ClimitCond CtendstoAbove CtendstoBelow tendsto Csin Csin Ccos ln
+% LocalWords: Cdivergence Cgrad Ccurl Claplacian Cset Clist Cintersect Ccard
+% LocalWords: Ccartesianproduct Csetdiff Cnotin CCartesianproductDA Csubset ln
+% LocalWords: CCartesianproductCond Cprsubset Cnotsubset Cnotprsubset reations
+% LocalWords: Csupset Cprsupset Cnotsupset Cnotprsupset CsumLimits CsumCond
+% LocalWords: CsumDA CprodLimist CprodCond CprodDA Cintegers CprodLimits Ctan
+% LocalWords: CprodLimits CprodLimits Csec Ccsc Ccot Csinh Ccosh Ctanh Csech
+% LocalWords: Ccsch Ccoth Carcsin Carccos Carctan Carcsec Carccsc Carccot Cln
+% LocalWords: Carccosh Carccosh Carccosh Carcsinh Carctanh Carcsech Carccsch
+% LocalWords: Carccoth Cln Cln Cmean Csdev Cvar Cmedian Cmode Cmoment Cvector
+% LocalWords: Cmatrix Cdeterminant Ctranspose Cselector Cvectorproduct Cprimes
+% LocalWords: Cscalarproduct Couterproduct Cvectproduct Cvectproduct Ctrue Cpi
+% LocalWords: Cvectproduct Crationals Ccomplexes Cexponentiale Cimaginaryi ltx
+% LocalWords: Cfalse Cemptyset Ceulergamma Cexponemtiale Cexponemtiale impl
+% LocalWords: Cexponemtiale Cnotanumber Cnotanumber Cnotanumber cmathmlx ltxml
+% LocalWords: Ccomplement printbibliography textsf langle textsf langle ltxml
+% LocalWords: plementing ltxmlx itroduce unlist whatsit argno newcommand circ
+% LocalWords: OPFUNCTION assoc ident mathrm mbox mathbf uminus bmod sqrt oplus
+% LocalWords: Longrightarrow bigwedge bigvee bigoplus esistsCont overline eqOp
+% LocalWords: lfloor rfloor lceil rceil neqOp neq gtOp geqOp geq leqOp leq csc
+% LocalWords: equiv approxOp approx factorofOp factorof ddiff partialdiff csc
+% LocalWords: rightarrow searrow nearrow RELOP'meaning setdiffOp setdiff sinh
+% LocalWords: cartesianproductOp cartesianproduct prsubsetOp prsubset supseteq
+% LocalWords: notsubsetOp notsubset notprsubsetOp notprsubset prsupsetOp sinh
+% LocalWords: prsupset notsupsetOp notsupset notprsupsetOp notprsupset ooooops
+% LocalWords: CsumOp newcommands CprodOp tanh tanh arccos arccos TRIGFUNCTION
+% LocalWords: arcsec arcsech arccsch sdev vectproductOp vectproduct imaginaryi
+% LocalWords: scalarproduct outerproductOp outerproduct vectorproduct emptyset
+% LocalWords: naturalnumbers exponemtiale notanumber emptyset eulergamma
+% LocalWords: exponentiale doctex
diff --git a/Master/texmf-dist/source/latex/stex/cnx/cnx.dtx b/Master/texmf-dist/source/latex/stex/cnx/cnx.dtx
new file mode 100644
index 00000000000..4a83a3702de
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/cnx/cnx.dtx
@@ -0,0 +1,1176 @@
+% \iffalse meta-comment
+% A LaTeX Class for CNXML
+% Copyright (c) 2006 Michael Kohlhase, all rights reserved
+% this file is released under the
+% Gnu Library Public Licences (LGPL)
+%
+% The development version of this file can be found at
+% $HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cnx/cnx.dtx $
+% \fi
+%
+% \iffalse
+%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<class>\ProvidesClass{cnx}[2010/06/25 v1.0 LaTeX Bindings for CNXML]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,array,float,stex-logo}
+\usepackage[show]{ed}
+\usepackage[hyperref=auto,style=alphabetic]{biblatex}
+\bibliography{kwarc}
+\usepackage{ctansvn}
+\usepackage[eso-foot,today]{svninfo}
+\svnInfo $Id: cnx.dtx 1483 2010-07-19 07:11:16Z kohlhase $
+\svnKeyword $HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/cnx/cnx.dtx $
+\makeindex
+\floatstyle{boxed}
+\newfloat{exfig}{thp}{lop}
+\floatname{exfig}{Example}
+\begin{document}\DocInput{cnx.dtx}\end{document}
+%</driver>
+% \fi
+%
+%\CheckSum{1}
+%
+% \changes{v0.1}{2005/12/06}{Initial Version}
+% \changes{v0.2}{2006/01/11}{Namespaces now work}
+% \changes{v1.0}{2006/01/11}{this is a good as it is every going to get}
+%
+% \GetFileInfo{cnx.cls}
+%
+% \MakeShortVerb{\|}
+%\def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}}
+% \def\xml{\scshape{XML}}
+% \def\cnxml{\scshape{CNXml}}
+% \def\connexions{\scshape{Connexions}}
+% \def\element#1{{\ttfamily{#1}}}
+% \def\snippet#1{{\ttfamily{#1}}}
+% \def\cnxlatex{CNX\LaTeX}
+% \def\mathml{{\scshape{MathML}}}
+% \def\latexml{\hbox{{\LaTeX}ML}}
+% \title{{\cnxlatex}: A {\LaTeX}-based Syntax for Connexions Modules\thanks{Version {\fileversion}
+% (last revised {\filedate})}}
+% \author{Michael Kohlhase\\
+% Jacobs University, Bremen\\
+% \url{http://kwarc.info/kohlhase}}
+% \maketitle
+%
+% \begin{abstract}
+% We present {\cnxlatex}, a collection of {\LaTeX} macros that allow to write
+% {\connexions} modules without leaving the {\LaTeX} workflow. Modules are authored in
+% {\cnxlatex} using only a text editor, transformed to PDF and proofread as usual. In
+% particular, the {\LaTeX} workflow is independent of having access to the {\connexions}
+% system, which makes {\cnxlatex} attractive for the initial version of single-author
+% modules.
+%
+% For publication, {\cnxlatex} modules are transformed to {\cnxml} via the {\latexml}
+% translator and can be uploaded to the {\connexions} system.
+% \end{abstract}
+%
+% \newpage\tableofcontents\newpage
+%
+%\section{Introduction}
+%
+% The Connexions project is a\ednote{continue; copy from somewhere...}
+%
+% The {\cnxml} format --- in particular the embedded content {\mathml} --- is hard to write
+% by hand, so we provide a set of environments that allow to embed the {\cnxml} document
+% model into {\LaTeX}.
+%
+%\section{The User Interface}
+%
+% This document is not a manual for the Connexions XML encoding, or a practical guide how
+% to write Connexions modules. We only document the {\LaTeX} bindings for {\cnxml} and will
+% presuppose experience with the format or familiarity with\ednote{cite the relevant stuff
+% here}. Note that formatting {\cnxlatex} documents with the {\LaTeX} formatter does
+% little to enforce the restrictions imposed by the {\cnxml} document model. You will need to
+% run the {\latexml} converter for that (it includes DTD validation) and any CNX-specific
+% quality assurance tools after that. \ednote{talk about Content {\mathml} and cmathml.sty
+% somewhere}
+%
+% The {\cnxlatex} class makes heavy use of the |KeyVal| package, which is part of your
+% {\LaTeX} distribution. This allows to add optional information to {\LaTeX} macros in the
+% form of key-value pairs: A macro |\foo| that takes a KeyVal argument and a regular one,
+% so a call might look like |\foo{bar}| (no KeyVal information given) or
+% |\foo[key1=val1,...,keyn=valn]{bar}|, where |key1|,\dots,|keyn| are predefined keywords
+% and values are {\LaTeX} token sequences that do not contain comma characters (though
+% they may contain blank characters). If a value needs to contain commas, then it must be
+% enclosed in curly braces, as in |\foo[args={a,comma,separated,list}]|. Note that the
+% order the key/value pairs appear in a KeyVal Argument is immaterial.
+%
+% \subsection{Document Structure}
+%
+% \begin{exfig}
+%\begin{verbatim}
+% \documentclass{cnx}
+% \begin{document}
+% \begin{cnxmodule}[name=Hello World,id=m4711]
+% \begin{ccontent}
+% \begin{cpara}[id=p01] Hello World\end{cpara}
+% \end{ccontent}
+% \end{cnxmodule}
+% \end{document}
+% \end{verbatim}
+% \caption{A Minimal {\cnxlatex} Document}\label{fig:minimal}
+%\end{exfig}
+%
+% The first set of {\cnxlatex} environments concern the top-level structure of the
+% modules. The minimal Connexions document in {\LaTeX} can be seen in
+% Figure~\ref{fig:minimal}: we still need the {\LaTeX} document environment, then
+% \DescribeEnv{cnxmodule}
+% the |cnxmodule| environment contains the module-specific information as a KeyVal
+% argument with the two keys: |id| for the module identifier supplied by the
+% {\connexions} system) and |name| for the title of the module.
+%
+% \DescribeEnv{ccontent}
+% The |content| environment delineates the module content from the metadata (see
+% Section~\ref{sec:metadata}). It is needed to make the conversion to {\cnxml} simpler.
+%
+% \DescribeEnv{c*section}
+% {\cnxml} knows three levels of sectioning, so the {\cnxlatex} class supplies three as
+% well: |csection|, |csubsection| and |csubsubsection|. In contrast to regular
+% {\LaTeX}, these are environments to keep the tight connection between the
+% formats. These environments take an optional KeyVal argument with key |id| for the
+% identifier and a regular argument for the title of the section (to be transformed into
+% the {\cnxml} {\element{name}} element).
+%
+% \DescribeEnv{cpara, cnote}
+% The lowest levels of the document structure are given by paragraphs and notes. The
+% |cpara| and |cnote| environment take a KeyVal argument with the |id| key for
+% identification, the latter also allows a |type| key for the note type (an unspecified
+% string\ednote{what are good values?}).
+%
+%
+% \subsection{Mathematics}
+%
+% Mathematical formulae are integrated into text via the {\LaTeX} math mode, i.e. wrapped
+% in |$| characters or between |\(| and |\)| for inline mathematics and wrapped in |$$| or
+% between |\[| and |\]| for display-style math. Note that {\cnxml} expects Content
+% {\mathml} as the representation format for mathematical formulae, while run-of-the-mill
+% {\LaTeX} only specifies the presentation (i.e. the two-dimensional layout of
+% formulae). The {\latexml} converter can usually figure out some of the content {\mathml}
+% from regular {\LaTeX}, in other cases, the author has to specify it e.g. using the
+% infrastructure supplied by the |cmathml| package.
+%
+% \DescribeEnv{cequation}
+% For numbered equations, {\cnxml} supplies the {\element{equation}} element, for which
+% {\cnxlatex} provides the |cequation| environment. This environment takes a KeyVal
+% argument with the |id| key for the (required) identifier.
+%
+%
+% \subsection{Statements}
+%
+% {\cnxml} provides special elements that make various types of claims; we
+% collectively call them statements.
+%
+% \DescribeEnv{cexample}
+% The |cexample| environment and |definition| elements take a KeyVal argument with key
+% |id| for identification.
+%
+%
+% \DescribeEnv{crule, statement, proof}
+% In {\cnxml}, the {\element{rule}} element is used to represent a general assertion
+% about the state of the world. The {\cnxlatex} |rule|\ednote{we have called this
+% ``crule'', since ``rule'' is already used by {\TeX}.} environment is its {\cnxlatex}
+% counterpart. It takes a KeyVal attribute with the keys |id| for identification, |type|
+% to specify the type of the assertion (e.g. ``Theorem'', ``Lemma'' or ``Conjecture''),
+% and |name|, if the assertion has a title. The body of the |crule| environment contains
+% the statement of assertion in the |statement| environment and (optionally) a proof in
+% the |proof| environment. Both take a KeyVal argument with an |id| key for
+% identification.
+%
+%\begin{exfig}
+%\begin{verbatim}
+% \begin{crule}[id=prop1,type=Proposition]
+% \begin{statement}[id=prop1s]
+% Sample statement
+% \end{statement}
+% \begin{proof}[id=prop1p]
+% Your favourite proof
+% \end{proof}
+% \end{crule}
+% \end{verbatim}
+% \caption{A Basic crule Example}\label{fig:crule}
+%\end{exfig}
+%
+% \DescribeEnv{definition, cmeaning} A definition defines a new technical term or concept
+% for later use. The |definition| environment takes a KeyVal argument with the keys |id|
+% for identification and |term| for the concept (definiendum) defined in this form. The
+% definition text is given in the |cmeaning| environment\footnote{we have called this
+% |cmeaning|, since |meaning| is already taken by {\TeX}}, which takes a KeyVal argument
+% with key |id| for identification. After the |cmeaning| environment, a |definition| can
+% contain arbitrarily many |cexample|s.
+%
+%\begin{exfig}
+%\begin{verbatim}
+% \begin{definition}{term=term-to-be-defined, id=termi-def]
+% \begin{cmeaning}[id=termi-meaning]
+% {\term{Term-to-be-defined}} is defined as: Sample meaning
+% \end{cmeaning}
+% \end{definition}
+%\end{verbatim}
+% \caption{A Basic {\tt{definition}} and {\tt{cmeaning}} Example}\label{fig:def-cmean}
+%\end{exfig}
+%
+% \subsection{Connexions: Links and Cross-References}
+%
+% As the name {\connexions} already suggests, links and cross-references are very
+% important for {\connexions} modules. {\cnxml} provides three kinds of them. Module
+% links, hyperlinks, and concept references.
+%
+% \DescribeMacro{cnxn}
+% Module links are specified by the |\cnxn| macro, which takes a keyval argument with
+% the keys |document|, |target|, and |strength|. The |document| key allows to specify
+% the module identifier of the desired module in the repository, if it is empty, then
+% the current module is intended. The |target| key allows to specify the document
+% fragment. Its value is the respective identifier (given by its |id| attribute in
+% {\cnxml} or the |id| key of the corresponding environment in {\cnxlatex}). Finally,
+% the |strength| key allows to specify the relevance of the link.
+%
+% The regular argument of the |\cnxn| macro is used to supply the link text.
+%
+%
+% \DescribeMacro{link}
+% Hyperlinks can be specified by the |\link| macro in {\cnxlatex}. It takes a KeyVal
+% argument with the key |src| to specify the URL of the link. The regular argument of
+% the |\link| macro is used to supply the link text.
+%
+%
+% \DescribeMacro{term}
+% The |\term| marco can be used to specify the\ednote{continue, pending Chuck's
+% investigation. }
+%
+%
+% \subsection{Metadata}\label{sec:metadata}
+%
+% Metadata is mostly managed by the system in {\connexions}, so we often do not need to
+% care about it. On the other hand, it influences the system, so if we have work on the
+% module extensively before converting it to {\cnxml}, it may be worth-wile specify some of
+% the data in advance.
+%
+% \begin{exfig}
+%\begin{verbatim}
+% \begin{metadata}[version=2.19,
+% created=2000/07/21,revised=2004/08/17 22:07:27.213 GMT-5]
+% \begin{authorlist}
+% \cnxauthor[id=miko,firstname=Michael,surname=Kohlhase,
+% email=m.kohlhase@iu-bremen.de]
+% \end{authorlist}
+% \begin{keywordlist}\keyword{Hello}\end{keywordlist}
+% \begin{cnxabstract}
+% A Minimal CNXLaTeX Document
+% \end{cnxabstract}
+% \end{metadata}
+% \end{verbatim}
+% \caption{Typical {\cnxlatex} Metadata}\label{fig:metadata}
+%\end{exfig}
+%
+% \DescribeEnv{metadata}
+% The |metadata| environment takes a KeyVal argument with the keys |version|, |created|,
+% and |revised| with the obvious meanings. The latter keys take ISO 8601 norm
+% representations for dates and times. Concretely, the format is
+% {\snippet{CCYY-MM-DDThh:mm:ss}} where ``{\snippet{CC}}'' represents the century,
+% ``{\snippet{YY}}'' the year, ``{\snippet{MM}}'' the month, and ``{\snippet{DD}}'' the
+% day, preceded by an optional leading ``{\snippet{-}}'' sign to indicate a negative
+% number. If the sign is omitted, ``{\snippet{+}}'' is assumed. The letter
+% ``{\snippet{T}}'' is the date/time separator and ``{\snippet{hh}}'',
+% ``{\snippet{mm}}'', ``{\snippet{ss}}'' represent hour, minutes, and seconds
+% respectively.
+%
+%
+% \DescribeEnv{authorlist, maintainerlist}
+% The lists of authors and maintainers can be specified in the |authorlist| and
+% |maintainerlist| environments, which take no arguments.
+%
+% \DescribeMacro{cnxauthor,maintainer}
+% The entries on this lists are specified by the |\cnxauthor| and |\maintainer|
+% macros. Which take a KeyVal argument specifying the individual. The |id| key is the
+% identifier for the person, the |honorific|, |firstname|, |other|, |surname|, and
+% |lineage| keys are used to specify the various name parts, and the |email| key is used
+% to specify the e-mail address of the person.
+%
+%
+% \DescribeEnv{keywordlist, keyword}
+% The keywords are specified with a list of |keyword| macros, which take the respective
+% keyword in their only argument, inside a |keyword| environment. Neither take any
+% KeyVal arguments.
+%
+%
+% \DescribeEnv{cnxabstract}
+% The abstract of a {\connexions} module is considered to be part of the metadata. It is
+% specified using the |cnxabstract| environment. It does not take any arguments.
+%
+%
+% \subsection{Exercises}
+%
+% \DescribeEnv{cexercise, cproblem, csolution}
+% An exercise or problem in {\connexions} is specified by the |cexercise| environment,
+% which takes an optional keyval argument with the keys |id| and |name|. It must contain
+% a |cproblem| environment for the problem statement and a (possibly) empty set of
+% |csolution| environments. Both of these take an optional keyval argument with the key
+% |id|.
+%
+% \subsection{Graphics, etc.}
+%
+% \DescribeMacro{cfigure} For graphics we will use the |cfigure|\ednote{probably better
+% call it {\tt{cgraphics}}} macro, which provides a non-floating environment for
+% including graphics into {\cnxml} files. |cfigure| takes three arguments first an
+% optional {\cnxml} keys, then the keys of the |graphicx| package in a regular argument
+% (leave that empty if you don't have any) and finally a path. So
+% \begin{center}
+% |\cfigure[id=foo,type=image/jpeg,caption=The first FOO]{width=7cm,height=2cm}{../images/foo}|
+% \end{center}
+% Would include a graphic from the file at the path |../images/foo|, equip this image with
+% a caption, and tell {\latexml} that\ednote{err, exactly what does it tell latexml?} the
+% original of the images has the MIME type |image/jpeg|.
+%
+% \StopEventually{\newpage\PrintIndex\newpage\PrintChanges\printbibliography}\newpage
+%
+% \section{The Implementation}
+%
+% The |cnx| package generates to files: the {\LaTeX} package (all the code between
+% {\textsf{$\langle$*package$\rangle$}} and {\textsf{$\langle$/package$\rangle$}}) and the
+% {\latexml} bindings (between {\textsf{$\langle$*ltxml$\rangle$}} and
+% {\textsf{$\langle$/ltxml$\rangle$}}). We keep the corresponding code fragments together,
+% since the documentation applies to both of them and to prevent them from getting out of
+% sync.
+%
+% We first make sure that the |sref|~\ctancite{Kohlhase:sref} and |graphicx| packages are
+% loaded.
+% \begin{macrocode}
+%<*cls>
+\RequirePackage{sref}
+\RequirePackage{graphicx}
+% \end{macrocode}
+%
+% The next step is to declare (a few) class options that handle the paper size; this is
+% useful for printing.
+% \begin{macrocode}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\ExecuteOptions{letterpaper}
+\ProcessOptions
+% \end{macrocode}
+% Finally, we input all the usual size settings. There is no sense to use something else,
+% and we initialize the page numbering counter and tell it to output the numbers in arabic
+% numerals (otherwise label and reference do not work).
+% \begin{macrocode}
+\input{size10.clo}
+\pagenumbering{roman}
+%</cls>
+% \end{macrocode}
+% Now comes the equivalent for {\latexml}: this is something that we will have throughout
+% this document. Every part of the {\TeX/\LaTeX} implementation has a {\latexml}
+% equivalent. We keep them together to ensure that they do not get out of sync.
+% \begin{macrocode}
+%<*ltxml>
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('omd');
+% \end{macrocode}
+% We set up the necessary namespaces, the first one is the default one for {\cnxml}
+% \begin{macrocode}
+RegisterNamespace('cnx'=>"http://cnx.rice.edu/cnxml");
+RegisterNamespace('md'=>"http://cnx.rice.edu/mdml/0.4");
+RegisterNamespace('bib'=>"http://bibtexml.sf.net/");
+RegisterNamespace('m'=>"http://www.w3.org/1998/Math/MathML");
+% \end{macrocode}
+% For {\latexml} we also have to set up the correct document type information. The first line
+% gives the root element. The second gives the public identifier for the CNX DTD, then we
+% have its URL, and finally the CNX namespace.
+% \begin{macrocode}
+DocType("cnx:document",
+ "-//CNX//DTD CNXML 0.5 plus LaTeXML//EN",
+ "../dtd/cnxml+ltxml.dtd",
+ '#default'=>"http://cnx.rice.edu/cnxml",
+ 'md'=>"http://cnx.rice.edu/mdml/0.4",
+ 'bib'=>"http://bibtexml.sf.net/",
+ 'm'=>"http://www.w3.org/1998/Math/MathML",
+ 'ltx'=>"http://dlmf.nist.gov/LaTeXML");
+% \end{macrocode}
+%
+% And finally, we need to set up the counters for itemization, since we are defining a
+% class file from scratch.\ednote{this will have to change, when Bruce updates to the next
+% version (0.6?)}
+%
+% \begin{macrocode}
+NewCounter('@itemizei', 'document', idprefix=>'I');
+NewCounter('@itemizeii', '@itemizei', idprefix=>'I');
+NewCounter('@itemizeiii', '@itemizeii', idprefix=>'I');
+NewCounter('@itemizeiv', '@itemizeiii',idprefix=>'I');
+NewCounter('@itemizev', '@itemizeiv', idprefix=>'I');
+NewCounter('@itemizevi', '@itemizev', idprefix=>'I');
+
+NewCounter('enumi', '@itemizei', idprefix=>'i');
+NewCounter('enumii', '@itemizeii', idprefix=>'i');
+NewCounter('enumiii','@itemizeiii', idprefix=>'i');
+NewCounter('enumiv', '@itemizeiv', idprefix=>'i');
+# A couple of more levels, since we use these for ID's!
+NewCounter('enumv', '@itemizev', idprefix=>'i');
+NewCounter('enumvi', '@itemizevi', idprefix=>'i');
+
+DefMacro('\theenumi', '\arabic{enumi}');
+DefMacro('\theenumii', '\alph{enumii}');
+DefMacro('\theenumiii', '\roman{enumiii}');
+DefMacro('\theenumiv', '\Alph{enumiv}');
+
+NewCounter('equation', 'document', idprefix=>'E');
+DefMacro('\theequation', '\arabic{equation}');
+DefMacro('\textwidth','16cm');
+% \end{macrocode}
+%
+% And another thing that is now needed:
+%
+% \begin{macrocode}
+Let('\thedocument@ID','\@empty');
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Document Structure}
+%
+% Now, we start with the document structure markup. The |cnxmodule| environment does not
+% add anything to the {\LaTeX} output, it's attributes only show up in the {\xml}. There
+% we have a slight complication: we have to put an |id| attribute on the |document|
+% element in {\cnxml}, but we cannot redefine the |document| environment in
+% {\LaTeX}. Therefore we specify the information in the |cnxmodule| environment. This
+% means however that we have to put in on the |document| element when we are already past
+% this. The solution here is that when we parse the |cnxmodule| environement, we store the
+% value and put it on the |document| element when we leave the |document| environment
+% (thanks for Ioan Sucan for the code).
+%
+% \begin{environment}{cnxmodule}
+% \begin{macrocode}
+%<*cls>
+\omdaddkey{cnxmodule}{name}
+\srefaddidkey{cnxmodule}{id}
+\newenvironment{cnxmodule}[1][]{\omdsetkeys{cnxmodule}{#1}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('cnxmodule','name','Semiverbatim');
+DefKeyVal('cnxmodule','id','Semiverbatim');
+DefEnvironment('{document}','<cnx:document>#body</cnx:document>',
+ beforeDigest=> sub { AssignValue(inPreamble=>0); },
+ afterDigest=> sub { $_[0]->getGullet->flush; return; });
+DefEnvironment('{cnxmodule} OptionalKeyVals:cnxmodule',
+ "<cnx:name>&KeyVal('#1','name')</cnx:name>\n#body\n",
+ afterDigestBegin => sub {
+ AssignValue('cnxmodule_id',
+ KeyVal($_[1]->getArg(1), 'id')->toString,
+ 'global');
+ });#$
+Tag('cnx:document', afterClose => sub {
+ $_[1]->setAttribute('id', LookupValue('cnxmodule_id'));
+ });
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{ccontent}
+% The |ccontent| environment is only used for transformation. Its optional |id| attribute
+% is not taken up in the {\LaTeX} bindings.
+% \begin{macrocode}
+%<*cls>
+\newenvironment{ccontent}{}{}
+%</cls>
+%<*ltxml>
+DefEnvironment('{ccontent}',"<cnx:content>#body</cnx:content>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{c*section}
+% The sectioning environments employ the obvious nested set of counters.
+% \begin{macrocode}
+%<*cls>
+\newcounter{section}
+\srefaddidkey{sectioning}{id}
+\newenvironment{csection}[2][]%
+{\stepcounter{section}\strut\\[1.5ex]\noindent%
+{\Large\bfseries\arabic{section}.~{#2}}\\[1.5ex]
+\omdsetkeys{sectioning}{#1}}
+{}
+\newcounter{subsection}[section]
+\newenvironment{csubsection}[2][]
+{\refstepcounter{subsection}\strut\\[1ex]\noindent%
+{\large\bfseries{\arabic{section}.\arabic{subsection}.~#2\\[1ex]}}%
+\omdsetkeys{sectioning}{#1}}%
+{}
+\newcounter{subsubsection}[subsection]
+\newenvironment{csubsubsection}[2][]
+{\refstepcounter{subsubsection}\strut\\[.5ex]\noindent
+{\bfseries\arabic{section}.\arabic{subsection}.\arabic{subsubsecction}~#2\\[.5ex]}%
+\omdsetkeys{sectioning}{#1}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('sectioning','id','Semiverbatim');
+DefEnvironment('{csection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+DefEnvironment('{csubsection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+DefEnvironment('{csubsubsection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{cpara}
+% For the |<cnx:para>| element we have to do some work, since we want them to be
+% numbered. This handling is adapted from Bruce Miller's |LaTeX.ltxml|
+% numbered.
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{para}{id}
+\newenvironment{cpara}[1][]{\omdsetkeys{para}{#1}}{\par}
+%</cls>
+%<*ltxml>
+DefKeyVal('para','id','Semiverbatim');
+DefEnvironment('{cpara} OptionalKeyVals:para','<cnx:para %&KeyVals(#1)>#body</cnx:para>');
+sub number_para {
+ my($document,$node,$whatsit)=@_;
+ # Get prefix from first parent with an id.
+ my(@parents)=$document->findnodes('ancestor::*[@id]',$node); # find 1st id'd parent.
+ my $prefix= (@parents ? $parents[$#parents]->getAttribute('id')."." : '');
+ # Get the previous number within parent; Worried about intervening elements around para's, but...
+ my(@siblings)=$document->findnodes("preceding-sibling::cnx:para",$node);
+ my $n=1;
+ $n = $1+1 if(@siblings && $siblings[$#siblings]->getAttribute('id')=~/(\d+)$/);
+ $node->setAttribute(id=>$prefix."p$n"); }
+Tag('cnx:para',afterOpen=>\&number_para);
+DefConstructor('\par',sub { $_[0]->maybeCloseElement('cnx:para'); },alias=>"\\par\n");
+Tag('cnx:para', autoClose=>1, autoOpen=>1);
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{cnote}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{note}
+\omdaddkey{note}{type}
+\newenvironment{cnote}[1][]%
+{\omdsetkeys{note}{#1}\par\noindent\strut\hfill\begin{minipage}{10cm}{\bfseries\note@type}:~}%
+{\end{minipage}\hfill\strut\par}
+%</cls>
+%<*ltxml>
+DefKeyVal('note','id','Semiverbatim');
+DefKeyVal('note','type','Semiverbatim');
+DefEnvironment('{cnote}OptionalKeyVals:note','<cnx:note %&KeyVals(#1)>#body</cnx:note>');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{Mathematics}
+%
+% \begin{environment}{cequation}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{equation}{id}
+\newenvironment{cequation}[1][]%
+{\omdsetkeys{equation}{#1}\begin{displaymath}}
+{\end{displaymath}}
+%</cls>
+%<*ltxml>
+DefKeyVal('equation','id','Semiverbatim');
+DefEnvironment('{cequation} OptionalKeyVals:equation',
+ "<cnx:equation %&KeyVals(#1)>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>#body</ltx:XMath>"
+ . "</ltx:Math></cnx:equation>",
+ mode=>'display_math');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{Rich Text}
+%
+% In this section, we redefine some of {\LaTeX} commands that have their counterparts in
+% {\cnxml}.
+%
+% \begin{environment}{quote}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{cquote}
+\omdaddkey{cquote}{type}
+\omdaddkey{cquote}{src}
+\newenvironment{cquote}[1][]{%
+\omdsetkeys{cquote}{#1}\begin{center}\begin{minipage}{.8\textwidth}}{\end{minipage}\end{center}}
+%</cls>
+%<*ltxml>
+DefKeyVal('cquote','id','Semiverbatim');
+DefKeyVal('cquote','type','Semiverbatim');
+DefKeyVal('cquote','src','Semiverbatim');
+DefEnvironment('{cquote} OptionalKeyVals:cquote',
+ "<cnx:quote %&KeyVals(#1)>#body</cnx:quote>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{footnote}
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\footnote[]{}',"<cnx:note type='foot'>#2</cnx:note>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{emph}
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\emph{}',"<cnx:emphasis>#1</cnx:emphasis>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{displaymath, eqnarray}
+% We redefine the abbreviate display math envionment and the |eqnarray| and |eqnarray*|
+% environments to use the {\cnxml} equation tags, everything else stays the same.
+%
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\[',
+ "<cnx:equation id='#id'>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>"
+ . "#body"
+ . "</ltx:XMath>"
+ . "</ltx:Math>"
+ ."</cnx:equation>",
+ beforeDigest=> sub{ $_[0]->beginMode('display_math'); },
+ captureBody=>1,
+ properties=> sub { RefStepID('equation') });
+DefConstructor('\]' ,"",beforeDigest=> sub{ $_[0]->endMode('display_math'); });
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{displaymath}
+% We redefine the abbreviate display math envionment to use the {\cnxml} equation tags,
+% everything else stays the same.\ednote{check {\tt{LaTeX.ltxml}} frequently and try to
+% keep in sync, it would be good, if the code in LaTeXML.ltxml could be modularized,
+% so that the {\tt{cnx}}/{\tt{ltx}} namespace differences could be relegated to
+% config options}
+%
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\[',
+ "<cnx:equation id='#id'>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>"
+ . "#body"
+ . "</ltx:XMath>"
+ . "</ltx:Math>"
+ ."</cnx:equation>",
+ beforeDigest=> sub{ $_[0]->beginMode('display_math'); },
+ captureBody=>1,
+ properties=> sub { RefStepID('equation') });
+DefConstructor('\]' ,"",beforeDigest=> sub{ $_[0]->endMode('display_math'); });
+
+DefMacro('\eqnarray', '\@@eqnarray\@start@alignment');
+DefMacro('\endeqnarray', '\@finish@alignment\end@eqnarray');
+DefMacro('\csname eqnarray*\endcsname', '\@@eqnarray*\@start@alignment');
+DefMacro('\csname endeqnarray*\endcsname', '\@finish@alignment\end@eqnarray');
+DefConstructor('\@@eqnarray OptionalMatch:* AlignmentBody:\end@eqnarray',
+ sub {
+ my($document,$star,$body,%props)=@_;
+ $document->openElement('cnx:equation',refnum=>$props{refnum},id=>$props{id});
+ $document->openElement('ltx:Math',mode=>'display');
+ $document->openElement('ltx:XMath');
+ constructAlignment($document,$body,attributes=>{name=>'eqnarray'});
+ $document->closeElement('ltx:XMath');
+ $document->closeElement('ltx:Math');
+ $document->closeElement('cnx:equation'); },
+ mode=>'display_math',
+ beforeDigest=>sub { alignmentBindings('rcl'); },
+ properties=> sub { ($_[1] ? RefStepID('equation') : RefStepCounter('equation')); },
+ afterDigest=>sub {
+ $_[1]->setProperty(body=>$_[1]->getArg(2));}, # So we get TeX
+ reversion=>'\begin{eqnarray#1}#2\end{eqnarray#1}');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{displaymath}
+% We redefine the abbreviate display math envionment to use the {\cnxml} equation tags,
+% everything else stays the same.\ednote{check {\tt{LaTeX.ltxml}} frequently and try to
+% keep in sync, it would be good, if the code in LaTeXML.ltxml could be modularized,
+% so that the {\tt{cnx}}/{\tt{ltx}} namespace differences could be relegated to
+% config options}
+%
+% \begin{macrocode}
+%<*cls>
+\newcommand{\litem}[2][]{\item[#1]\label{#2}}
+%</cls>
+%<*ltxml>
+Tag('cnx:item', autoClose=>1);
+DefConstructor('\item[]',"<cnx:item>?#1(<cnx:name>#1</cnx:name>)");
+DefConstructor('\litem[]{}',"<cnx:item id='#2'>?#1(<cnx:name>#1</cnx:name>)");
+DefConstructor('\itemize@item[]',
+ "<cnx:item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\enumerate@item[]',
+ "<cnx:item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\description@item[]',
+ "<cnx::item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+AssignValue(itemlevel=>0);
+DefEnvironment('{itemize}',
+ "<cnx:list id='#id' type='itemize'>#body</cnx:list>",
+ properties=>sub { beginItemize('itemize'); });
+DefEnvironment('{enumerate}',
+ "<cnx:list type='enumerate' id='#id'>#body</cnx:list>",
+ properties=>sub { beginItemize('enumerate'); });
+DefEnvironment('{description}',
+ "<cnx:list type='description' id='#id'>#body</cnx:list>",
+ properties=>sub { beginItemize('description'); });
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% The next set of commands and environments are largely presentational, so we just skip
+% them.
+%
+% \begin{macrocode}
+%<*ltxml>
+DefEnvironment('{center}','#body');
+DefEnvironment('{minipage}{}','#body');
+DefEnvironment('{small}','#body');
+DefEnvironment('{footnotesize}','#body');
+DefEnvironment('{tiny}','#body');
+DefEnvironment('{scriptsize}','#body');
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\ref Semiverbatim', "<cnx:cnxn target='#1'>&LookupValue('LABEL@#1')</cnx:cnxn>");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Statements}
+%
+% \begin{environment}{cexample}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{example}
+\omdaddkey{example}{name}
+\newenvironment{cexample}[1][]{\omdsetkeys{example}{#1}
+{\ifx\example@name\@empty\else\noindent\bfseries{\example@name}\fi}}
+{}
+%</cls>
+%<*ltxml>
+DefKeyVal('example','id','Semiverbatim');
+DefEnvironment('{cexample}OptionalKeyVals:example',
+ "<cnx:example %&KeyVals(#1)>#body</cnx:example>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{cexercise}
+% The |cexercise|, |cproblem| and |csolution| environments are very simple to set up for
+% {\LaTeX}. For the {\latexml} side, we simplify matters considerably for the moment by
+% restricting the possibilities we have on the {\cnxml} side: We assume that the content
+% is just one |<cnx:para>| element for the |<cnx:problem>| and |<cnx:solution>|
+% elements.\ednote{relax this when we have automated the generation of {\tt{cnx:para}}
+% elements}
+% \begin{macrocode}
+%<*cls>
+\newcounter{cexercise}
+\srefaddidkey{cexercise}
+\omdaddkey{cexercise}{name}
+\newenvironment{cexercise}[1][]{\omdsetkeys{cexercise}{#1}
+{\ifx\cexercise@name\@empty\else\stepcounter{cexercise}\noindent\bfseries{\cexercise@name~\arabic{cexercise}}\fi}}
+{}
+\srefaddidkey{cproblem}
+\newenvironment{cproblem}[1][]{\omdsetkeys{cproblem}{#1}}{}{}
+\srefaddidkey{csolution}
+\newenvironment{csolution}[1][]{\omdsetkeys{csolution}{#1}}{\par\noindent\bfseries{Solution}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('cexercise','id','Semiverbatim');
+DefKeyVal('cexercise','name','Semiverbatim');
+DefEnvironment('{cexercise}OptionalKeyVals:exercise',
+ "<cnx:exercise ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "#body"
+ . "</cnx:exercise>");
+DefKeyVal('cproblem','id','Semiverbatim');
+DefKeyVal('cproblem','name','Semiverbatim');
+DefEnvironment('{cproblem}OptionalKeyVals:cproblem',
+ "<cnx:problem ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "#body"
+ . "</cnx:problem>");
+DefKeyVal('csolution','id','Semiverbatim');
+DefKeyVal('csolution','name','Semiverbatim');
+DefEnvironment('{csolution}OptionalKeyVals:cproblem',
+ "<cnx:solution ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "#body"
+ . "</cnx:solution>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{crule}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{rule}
+\omdaddkey{rule}{name}
+\omdaddkey{rule}{type}
+\newenvironment{crule}[1][]{\omdsetkeys{rule}{#1}%
+{\noindent\bfseries{\rule@type:}\ifx\rule@name\@empty\else~(\rule@name)\fi}}%
+{}
+%</cls>
+%<*ltxml>
+DefKeyVal('rule','id','Semiverbatim');
+DefKeyVal('rule','name','Semiverbatim');
+DefKeyVal('rule','type','Semiverbatim');
+DefEnvironment('{crule}OptionalKeyVals:rule',
+ "<cnx:rule ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')() type='&KeyVal(#1,'type')'>\n"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "\n#body\n"
+ . "</cnx:rule>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{statement}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{statement}
+\newenvironment{statement}[1][]{\omdsetkeys{statement}{#1}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('statement','id','Semiverbatim');
+DefEnvironment('{statement} OptionalKeyVals:statement','<cnx:statement %&KeyVals(#1)>#body</cnx:statement>');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{proof}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{proof}
+\newenvironment{proof}[1][]{\omdsetkeys{proof}{#1}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('proof','id','Semiverbatim');
+DefEnvironment('{proof}OptionalKeyVals:proof','<cnx:proof %&KeyVals(#1)>#body</cnx:proof>');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{definition}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{definition}
+\omdaddkey{definition}{term}
+\omdaddkey{definition}{seealso}
+\newenvironment{definition}[1][]{\omdsetkeys{definition}{#1}{\noindent\bfseries{Definition:}}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('definition','id','Semiverbatim');
+DefKeyVal('definition','term','Semiverbatim');
+DefKeyVal('definition','seealso','Semiverbatim');
+DefEnvironment('{definition}OptionalKeyVals:definition',
+ "<cnx:definition ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>\n"
+ . "?&defined(&KeyVal(#1,'term'))(<cnx:term>&KeyVal(#1,'term')</cnx:term>\n)()"
+ . "\n#body\n"
+ . "?&defined(&KeyVal(#1,'seealso'))(<cnx:seealso><cnx:term>&KeyVal(#1,'term')</cnx:term></cnx:seealso>\n)()"
+ . "</cnx:definition>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{cmeaning}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{meaning}
+\newenvironment{cmeaning}[1][]{\omdsetkeys{meaning}{#1}}{}
+%</cls>
+%<*ltxml>
+DefKeyVal('meaning','id','Semiverbatim');
+DefEnvironment('{cmeaning}OptionalKeyVals:meaning','<cnx:meaning %&KeyVals(#1)>#body</cnx:meaning>');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{Conexxions}
+%
+% \begin{macro}{cnxn}
+% \begin{macrocode}
+%<*cls>
+\omdaddkey{cnxn}{document}
+\omdaddkey{cnxn}{target}
+\omdaddkey{cnxn}{strength}
+\newcommand{\cnxn}[2][]% keys, link text
+{\omdsetkeys{cnxn}{#1}{\underline{#2}}\footnote{{\ttfamily\@ifx\cnxn@document\@empty\cnxn@document\fi\#\cnxn@target}}}
+\newcommand\@makefntext[1]{\parindent 1em\noindent\hb@xt@1.8em{\hss\@makefnmark}#1}
+%</cls>
+%<*ltxml>
+DefKeyVal('cnxn','document','Semiverbatim');
+DefKeyVal('cnxn','target','Semiverbatim');
+DefKeyVal('cnxn','strength','Semiverbatim');
+DefConstructor('\cnxn OptionalKeyVals:cnxn {}','<cnx:cnxn %&KeyVals(#1)>#1</cnx:cnxn>');
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{link}
+% \begin{macrocode}
+%<*cls>
+\omdaddkey{link}{src}
+\newcommand{\link}[2][]{\omdsetkeys{link}{#1}\underline{#2}}
+%</cls>
+%<*ltxml>
+DefKeyVal('link','src','Semiverbatim');
+DefConstructor('\link OptionalKeyVals:link {}','<cnx:link %&KeyVals(#1)>#2</cnx:link>');
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{cfigure}
+% The |cfigure| only gives us one of the possible instances of the |<figure>|
+% element\ednote{extend that}.\ednote{do more about required and optional keys in
+% arguments.} In {\LaTeX}, we just pipe the size information through to
+% |includegraphics|, in {\latexml}, we construct the {\cnxml} structure\ednote{what do
+% we do with the graphicx information about size,... CSS?}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{cfigure}
+\omdaddkey{cfigure}{type}
+\omdaddkey{cfigure}{caption}
+\newcounter{figure}
+\newcommand{\cfigure}[3][]{% cnx_keys, graphicx_keys, path
+\begin{center}%
+\includegraphics[#2]{#3}%
+\omdsetkeys{cfigure}{#1}\sref@target%
+\ifx\cfigure@caption\@empty\else
+\par\noindent Figure\refstepcounter{figure} {\arabic{figure}}: \cfigure@caption%
+\protected@edef\@currentlabel{\arabic{figure}}%
+\sref@label@id{Figure \thefigure}\fi
+\end{center}}
+%</cls>
+%<*ltxml>
+DefKeyVal('cfigure','id','Semiverbatim');
+DefKeyVal('cfigure','name','Semiverbatim');
+DefKeyVal('cfigure','type','Semiverbatim');
+DefKeyVal('cfigure','caption','Semiverbatim');
+DefConstructor('\cfigure OptionalKeyVals:cfigure Semiverbatim Semiverbatim',
+ "<cnx:figure ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "<cnx:media type='&KeyVal(#1,'type')' src='#3'/>"
+ . "?&defined(&KeyVal(#1,'caption'))(<cnx:caption>&KeyVal(#1,'caption')</cnx:caption>\n)()"
+ . "</cnx:figure>");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{ccite}
+% \begin{macrocode}
+%<*cls>
+\omdaddkey{ccite}{src}
+\newcommand{\ccite}[2][]{\omdsetkeys{ccite}{#1}\emph{#2}}
+%</cls>
+%<*ltxml>
+DefKeyVal('ccite','src','Semiverbatim');
+DefConstructor('\ccite OptionalKeyVals:ccite {}','<cnx:cite %&KeyVals(#1)>#2</cnx:cite>');
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{term}
+% \begin{macrocode}
+%<*cls>
+\newcommand{\term}[1]{{\bfseries\underline{#1}}}
+%</cls>
+%<*ltxml>
+DefConstructor('\term[]{}',"<cnx:term>#2</cnx:term>");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Metadata}
+%
+% \begin{environment}{metadata}
+% \begin{macrocode}
+%<*cls>
+\omdaddkey{metadata}{version}
+\omdaddkey{metadata}{created}
+\omdaddkey{metadata}{revised}
+\newsavebox{\metadatabox}
+\newenvironment{metadata}[1][]%
+{\noindent\hfill\begin{lrbox}{\metadatabox}
+\begin{minipage}{.8\textwidth}%
+{\Large\bfseries CNX Module: \cnx@name\hfill\strut}\\[2ex]}%
+{\end{minipage}\end{lrbox}\fbox{\usebox\metadatabox}\hfill}
+% \newenvironment{metadata}[1][]%
+% {\noindent\strut\hfill\begin{lrbox}{\metadatabox}\begin{minipage}{10cm}%
+% {\strut\hfill\Large\bfseries CNX Module: \cnx@name\hfill\strut}\\[2ex]}%
+% {\end{minipage}\end{lrbox}\fbox{\usebox\metadatabox}\hfill\strut\\[3ex]}
+%</cls>
+%<*ltxml>
+DefKeyVal('metadata','version','Semiverbatim');
+DefKeyVal('metadata','created','Semiverbatim');
+DefKeyVal('metadata','revised','Semiverbatim');
+DefEnvironment('{metadata}OptionalKeyVals:metadata',
+ "<cnx:metadata>\n"
+ . "<md:version>&KeyVal('#1','version')</md:version>\n"
+ . "<md:created>&KeyVal('#1','created')</md:created>\n"
+ . "<md:revised>&KeyVal('#1','revised')</md:revised>\n"
+ . "#body\n"
+ . "</cnx:metadata>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{authorlist}
+% \begin{macrocode}
+%<*cls>
+\newenvironment{authorlist}{{\bfseries{Authors}:~}}{\\[1ex]}
+%</cls>
+%<*ltxml>
+DefEnvironment('{authorlist}',"<md:authorlist>#body</md:authorlist>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{maintainerlist}
+% \begin{macrocode}
+%<*cls>
+\newenvironment{maintainerlist}{{\bfseries{Maintainers}:~}}{\\[1ex]}
+%</cls>
+%<*ltxml>
+DefEnvironment('{maintainerlist}',"<md:maintainerlist>#body</md:maintainerlist>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{cnxauthor}
+% \begin{macrocode}
+%<*cls>
+\srefaddidkey{auth}
+\omdaddkey{auth}{honorific}
+\omdaddkey{auth}{firstname}
+\omdaddkey{auth}{other}
+\omdaddkey{auth}{surname}
+\omdaddkey{auth}{lineage}
+\omdaddkey{auth}{email}
+\newcommand{\cnxauthor}[1][]{\omdsetkeys{auth}{#1}\auth@first~\auth@sur,}
+%</cls>
+%<*ltxml>
+DefKeyVal('auth','id','Semiverbatim');
+DefKeyVal('auth','firstname','Semiverbatim');
+DefKeyVal('auth','surname','Semiverbatim');
+DefKeyVal('auth','email','Semiverbatim');
+DefConstructor('\cnxauthor OptionalKeyVals:auth',
+ "<md:author id='&KeyVal('#1','id')'>\n"
+ . "?&defined(&KeyVal(#1,'honorific'))(<md:honorific>&KeyVal('#1','honorific')</md:honorific>\n)()"
+ . "?&defined(&KeyVal(#1,'firstname'))(<md:firstname>&KeyVal('#1','firstname')</md:firstname>\n)()"
+ . "?&defined(&KeyVal(#1,'other'))(<md:other>&KeyVal('#1','other')</md:other>\n)()"
+ . "?&defined(&KeyVal(#1,'surname'))(<md:surname>&KeyVal('#1','surname')</md:surname>\n)()"
+ . "?&defined(&KeyVal(#1,'lineage'))(<md:lineage>&KeyVal('#1','lineage')</md:lineage>\n)()"
+ . "?&defined(&KeyVal(#1,'email'))(<md:email>&KeyVal('#1','email')</md:email>\n)()"
+ . "</md:author>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{maintainer}
+% \begin{macrocode}
+%<*cls>
+\newcommand{\maintainer}[1][]{\omdsetkeys{auth}{#1}\auth@first~\auth@sur,}
+%</cls>
+%<*ltxml>
+DefConstructor('\maintainer OptionalKeyVals:auth',
+ "<md:maintainer id='&KeyVal('#1','id')'>\n"
+ . "?&defined(&KeyVal(#1,'honorific'))(<md:honorific>&KeyVal('#1','honorific')</md:honorific>\n)()"
+ . "?&defined(&KeyVal(#1,'firstname'))(<md:firstname>&KeyVal('#1','firstname')</md:firstname>\n)()"
+ . "?&defined(&KeyVal(#1,'other'))(<md:other>&KeyVal('#1','other')</md:other>\n)()"
+ . "?&defined(&KeyVal(#1,'surname'))(<md:surname>&KeyVal('#1','surname')</md:surname>\n)()"
+ . "?&defined(&KeyVal(#1,'lineage'))(<md:lineage>&KeyVal('#1','lineage')</md:lineage>\n)()"
+ . "?&defined(&KeyVal(#1,'email'))(<md:email>&KeyVal('#1','email')</md:email>\n)()"
+ . "</md:maintainer>\n");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{keywordlist}
+% \begin{macrocode}
+%<*cls>
+\newenvironment{keywordlist}{\bfseries{Keywords}:~}{\\[1ex]}
+%</cls>
+%<*ltxml>
+DefEnvironment('{keywordlist}',"<md:keywordlist>\n#body\n</md:keywordlist>");
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{keyword}
+% \begin{macrocode}
+%<*cls>
+\newcommand{\keyword}[1]{#1,}
+%</cls>
+%<*ltxml>
+DefConstructor('\keyword {}',"<md:keyword>#1</md:keyword>");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{cnxabstract}
+% \begin{macrocode}
+%<*cls>
+\newenvironment{cnxabstract}%
+{\par\noindent\strut\hfill\begin{minipage}{10cm}{\bfseries{Abstract}:~}}%
+{\end{minipage}\hfill}
+%</cls>
+%<*ltxml>
+DefEnvironment('{cnxabstract} OptionalKeyVals:cnxabstract',
+ "<md:abstract>\n#body\n</md:abstract>\n");
+1;
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+% \Finale
+\endinput
+
+% \iffalse
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
+
+% LocalWords: iffalse cnx cnx.dtx cnx.cls scsys sc sc scshape cnxml ttfamily
+% LocalWords: cnxlatex mathml latexml hbox fileversion maketitle newpage foo
+% LocalWords: tableofcontents newpage ednote cmathml.sty keyn valn keyn exfig
+% LocalWords: DescribeEnv cnxmodule ccontent csection csubsection cpara cnote
+% LocalWords: csubsubsection cmathml cequation cexample crule cmeaning tt tt
+% LocalWords: def-cmean cnxn keyval hh ss authorlist maintainerlist cnxauthor
+% LocalWords: firstname keywordlist cnxabstract cexercise cproblem csolution
+% LocalWords: cfigure cfigure cgraphics graphicx printbibliography textsf sref
+% LocalWords: langle textsf langle ltxml ctancite sref cls setlength omd ltx
+% LocalWords: paperheight paperwidth size10.clo pagenumbering ltxml.dtd enumi
+% LocalWords: itemizei idprefix itemizeii itemizeiii itemizeiv itemizev enumii
+% LocalWords: itemizevi enumiii enumiv enumv enumvi theenumi theenumii Sucan
+% LocalWords: theenumiii theenumiv theequation textwidth thedocument omdaddkey
+% LocalWords: environement srefaddidkey newenvironment omdsetkeys Semiverbatim
+% LocalWords: OptionalKeyVals newcounter stepcounter noindent bfseries
+% LocalWords: refstepcounter subsubsection whatsit findnodes hfill
+% LocalWords: displaymath cquote emph eqnarray envionment endeqnarray csname
+% LocalWords: endcsname refnum refnum rcl newcommand itemlevel
+% LocalWords: footnotesize scriptsize ifx Conexxions makefntext parindent hss
+% LocalWords: makefnmark includegraphics currentlabel thefigure ccite lrbox
+% LocalWords: newsavebox metadatabox fbox usebox auth doctex
diff --git a/Master/texmf-dist/source/latex/stex/mikoslides.dtx b/Master/texmf-dist/source/latex/stex/mikoslides.dtx
new file mode 100644
index 00000000000..2ed715feb0f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/mikoslides.dtx
@@ -0,0 +1,503 @@
+% \iffalse meta-comment
+% A LaTeX Class for Jacobs University Slides
+% Copyright (c) 2007 Michael Kohlhase, all rights reserved
+% this file is released under the
+% Gnu Library Public Licences (LGPL)
+%
+% The development version of this file can be found at
+% https://svn.kwarc.info/repos/kwarc/projects/stex/sty/mikoslides.dtx
+% \fi
+%
+% \iffalse
+%<cls>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<cls>\ProvidesClass{mikoslides}[2010/06/25 v0.9 Jacobs slides]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,array,float}
+\usepackage[show]{ed}
+\makeindex
+\floatstyle{boxed}
+\newfloat{exfig}{thp}{lop}
+\floatname{exfig}{Example}
+\begin{document}\DocInput{mikoslides.dtx}\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{1}
+%
+% \changes{v0.1}{2005/12/06}{Initial Version}
+% \changes{v0.2}{2006/01/11}{course notes back on seminar}
+% \changes{v0.3}{2007/05/16}{changing to jacobs logo}
+% \changes{v0.4}{2007/10/16}{re-basing the whole thing on beamer}
+% \changes{v0.4}{2008/09/06}{moving line-end-comment to \texttt{omdoc.dtx}}
+% \changes{v0.5}{2009/06/17}{eliminating mytwocolumns, this is better done by \texttt{beamer.cls}}
+% \changes{v0.9}{2010/06/18}{this is almost done}
+%
+% \GetFileInfo{mikoslides.cls}
+% \MakeShortVerb{\|}
+%
+% \def\twin#1#2{\index{#1!#2}\index{#2!#1}}
+% \def\twintoo#1#2{{#1 #2}\twin{#1}{#2}}
+% \def\atwin#1#2#3{\index{#1!#2!#3}\index{#3!#2 (#1)}}
+% \def\atwintoo#1#2#3{{#1 #2 #3}\atwin{#1}{#2}{#3}}
+%
+%\def\scsys#1{{{\sc #1}}\index{#1@{\sc #1}}}
+% \def\stex{\hbox{\raisebox{-.5ex}S\kern-.5ex\TeX}}
+% \def\sTeX{\stex}
+% \def\cnxml{\scshape{CNXml}}
+% \def\connexions{\scshape{Connexions}}
+% \def\element#1{{\ttfamily{#1}}}
+% \def\snippet#1{{\ttfamily{#1}}}
+% \def\cnxlatex{CNX\LaTeX}
+% \def\mathml{{\scshape{MathML}}}
+% \def\latexml{\hbox{{\LaTeX}ML}}
+% \def\omdoc{OMDoc}
+% \def\activemath{{\scshape{ActiveMath}}}
+%
+% \title{Slides and Course Notes for Jacobs University\thanks{Version {\fileversion}
+% (last revised {\filedate})}}
+% \author{Michael Kohlhase\\
+% Jacobs University, Bremen\\
+% \url{http://kwarc.info/kohlhase}}
+% \maketitle
+%
+% \begin{abstract}
+% We present a document class from which we can generate both course slides and course
+% notes in a transparent way. Furthermore, we present a set of {\latexml} bindings for
+% these, so that we can also generate {\omdoc}-based course materials, e.g. for
+% inclusion in the {\activemath} system.
+% \end{abstract}
+% \tableofcontents\newpage
+%\section{Introduction}
+% This Document class is derived from |beamer.cls|, specializes it with Jacobs stuff and
+% adds a notes version that is more suited to printing than the one supplied by
+% |beamer.cls|.
+%
+%\section{The User Interface}\label{sec:user}
+% \StopEventually{\newpage\PrintChanges}
+%
+%\section{The Implementation}\label{sec:impl}
+%
+%\subsection{Initialization and Class Options}\label{sec:impl:init}
+%
+% For the {\latexml} bindings, we make sure the right perl packages are loaded.
+%
+% \begin{macrocode}
+%<*ltxml>
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+%</ltxml>
+% \end{macrocode}
+%
+% For {\LaTeX} we define some Package Options and switches for the |mikoslides| class and activate
+% them by passing them on to |beamer.cls| the appropriate packages.
+%
+% \begin{macrocode}
+%<*cls>
+\newif\ifnotes\notesfalse
+\newif\ifproblems\problemstrue
+\DeclareOption{notes}{\notestrue}
+\DeclareOption{slides}{\notesfalse}
+\DeclareOption{noproblems}{\problemsfalse}
+\ifnotes\else\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}\fi
+\ProcessOptions
+%</cls>
+%<*ltxml>
+RawTeX('\newif\ifnotes\notesfalse');
+RawTeX('\newif\ifproblems\problemsfalse');
+%</ltxml>
+% \end{macrocode}
+%
+% Depending on the options, we either load the |article|-based |omdoc| or the |beamer| class. In the first
+% case, we also have to make the |beamer|-specific things available to |article| via the
+% |beamerarticle| package. We use options to avoid loading theorem-like environments,
+% since we want to use our own from the $\sTeX$ packages.
+% \begin{macrocode}
+%<*cls>
+\ifnotes
+\LoadClass{omdoc}
+\RequirePackage{a4wide}
+\RequirePackage[notheorems,noamsthm]{beamerarticle}
+\else
+\LoadClass[notheorems,noamsthm,10pt]{beamer}
+\newcounter{Item}
+\newcounter{paragraph}
+\newcounter{subparagraph}
+\newcounter{Hfootnote}
+\usetheme{Jacobs}
+\fi
+%</cls>
+%<*ltxml>
+LoadClass('omdoc');
+%</ltxml>
+% \end{macrocode}
+%
+% now, we load the remaining packages for both versions.
+%
+% \begin{macrocode}
+%<*cls>
+\RequirePackage{stex}
+\RequirePackage{latexml}
+\RequirePackage{amssymb}
+\RequirePackage{tikz}
+\usepgflibrary{shapes}\usetikzlibrary{arrows}
+\RequirePackage{url}
+\RequirePackage{amsmath}
+\RequirePackage{comment}
+%</cls>
+%<*ltxml>
+RequirePackage('stex');
+RequirePackage('latexml');
+RequirePackage('amssymb');
+RequirePackage('graphicx');
+RequirePackage('tikz');
+RequirePackage('amsmath');
+%</ltxml>
+% \end{macrocode}
+% \begin{oldpart}{we do not seem to load this any more, what to do
+% there?}% The |etex.sty| package is needed in the {\LaTeX}, since it makes the extended the number
+% of internal registers of the |etex| program available for processing. These tend to run
+% out with {\sTeX} otherwise.
+% \end{oldpart}
+%
+% \subsection{Notes and Slides}\label{sec:impl:noteslides}
+%
+% We define the sizes of slides in the notes. Somehow, we cannot get by with the same
+% here.
+%
+% \begin{macrocode}
+%<*cls>
+\newcounter{slide}
+\newlength{\slidewidth}\setlength{\slidewidth}{13.5cm}
+\newlength{\slideheight}\setlength{\slideheight}{9cm}
+%</cls>
+%<*ltxml>
+DefRegister('\slidewidth' => Dimension('13.5cm'));
+DefRegister('\slideheight' => Dimension('9cm'));
+%</ltxml>
+% \end{macrocode}
+%
+% For course notes, we define the |note| environment to be a no-operation otherwise we declare the |note| environment as
+% a comment via the |comment| package.
+%
+% \begin{environment}{note}
+% \begin{macrocode}
+%<*cls>
+\ifnotes\renewenvironment{note}{}{}\else\excludecomment{note}\fi
+%</cls>
+%<*ltxml>
+DefEnvironment('{note}','#body');
+%</ltxml>
+% \end{macrocode}
+% \end{environment}
+%
+%
+% the next step is to set up the slide boxes in |article| mode. We set up sizes and
+% provide a box register for the frames and a counter for the slides.
+%
+% \begin{macrocode}
+%<*cls>
+\ifnotes
+\newlength{\slideframewidth}\setlength{\slideframewidth}{2pt}
+\newsavebox{\myframebox}
+%</cls>
+% \end{macrocode}
+%
+% \begin{environment}{frame}
+% For the |frame| environment we construct a |lrbox| in the |\myframebox| register that
+% we can later put into an |\fbox| so that it looks like a slide. Furthermore, we
+% redefine the |itenize| environment so that it looks more like the one in |beamer| with
+% |Jacobs| theme.
+% \begin{macrocode}
+%<*cls>
+\renewenvironment{frame}[1][]%
+{\stepcounter{slide}
+\def\itemize@level{outer}
+\def\itemize@outer{outer}
+\def\itemize@inner{inner}
+\renewenvironment{itemize}
+{\ifx\itemize@level\itemize@outer\def\itemize@label{$\rhd$}\fi
+ \ifx\itemize@level\itemize@inner\def\itemize@label{$\scriptstyle\rhd$}\fi
+ \begin{list}
+ {\itemize@label}
+ {\setlength{\labelsep}{.3em}\setlength{\labelwidth}{.5em}\setlength{\leftmargin}{1.5em}}
+ \edef\itemize@level{\itemize@inner}}
+{\end{list}}
+ \noindent\hfill\begin{lrbox}{\myframebox}
+ \begin{minipage}{\slidewidth}\sf}%
+ {\miko@slidelabel\end{minipage}\end{lrbox}%
+ \begin{center}\fbox{\usebox\myframebox}\end{center}\hfill}
+%</cls>
+%<*ltxml>
+DefEnvironment('{frame}[]',
+ "<omdoc:omgroup layout='slide' ?#locator(stex:srcref='#locator')()>"
+ . "#body\n"
+ ."</omdoc:omgroup>\n\n",
+ afterDigestBegin=>sub {
+ $_[1]->setProperty(theory=>LookupValue('current_module')); });
+%</ltxml>#$
+% \end{macrocode}
+% \end{environment}
+%
+% the next step is to set up the slide boxes in |article| mode.
+%
+% \begin{macrocode}
+%<*cls>
+\renewcommand{\frametitle}[1]{{\Large\bf\sf\color{blue}{#1}}}
+\fi
+\makeindex
+%</cls>
+%<*ltxml>
+DefConstructor('\frametitle{}',
+ "\n<omdoc:metadata ?#locator(stex:srcref='#locator')()><dc:title>#1</dc:title></omdoc:metadata>");
+%</ltxml>
+% \end{macrocode}
+%
+% We start by giving the {\latexml} binding for the |frame| environment from the |beamer|
+% class. The |note| environment is used to blend out text in the |slides| mode. It does
+% not have a counterpart in OMDoc.
+%
+% \begin{macrocode}
+%<*cls>
+\ifproblems\newenvironment{problems}{}{}\else\excludecomment{problems}\fi
+%</cls>
+%<*ltxml>
+DefEnvironment('{problems}','#body');
+%</ltxml>
+% \end{macrocode}
+%\ednote{subtitle is difficult to model in DC metadata. I guess that we want to collect
+%the subtitle into dc:title}
+%
+% \subsection{Header and Footer Lines}\label{sec:impl:headfootlines}
+%
+% Now, we set up the infrastructure for the footer line of the slides, we use boxes for
+% the logos, so that they are only loaded once, that considerably speeds up processing.
+% \begin{macrocode}
+%<*cls>
+\newlength{\slidelogoheight}
+\ifnotes\setlength{\slidelogoheight}{.4cm}\else\setlength{\slidelogoheight}{1cm}\fi
+\newsavebox{\slidelogo}\sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{jacobs-logo}}
+% \end{macrocode}
+%
+% Now, we set up the copyright and licensing, the copyright remains with the author, but
+% we use the Creative Commons Attribuition-ShareAlike license to strengthen den public
+% domain. Here the problem is that we want a hyperref on the CC logo, if hyperref is
+% loaded, and otherwise not. As hyperref is always loaded, we have to find out at the
+% beginning of the document whether it is, set up a switch, and later in the footer line
+% decide what to do.
+%
+% \begin{macrocode}
+\def\source{Michael Kohlhase}% customize locally
+\def\copyrightnotice{\footnotesize\copyright:\hspace{.3ex}{\source}}
+\newsavebox{\cclogo}\sbox{\cclogo}{\includegraphics[height=\slidelogoheight]{cc_somerights}}
+\newif\ifcchref\cchreffalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}{\cchreftrue}{\cchreffalse}}
+\def\licensing{\ifcchref\href{http://creativecommons.org/licenses/by-sa/2.5/}{\usebox{\cclogo}}\else{\usebox{\cclogo}}\fi}
+% \end{macrocode}
+%
+% Now, we set up the slide label for the |article| mode\ednote{see that we can use the
+% themes for the slides some day. This is all fake.}
+%
+% \begin{macro}{\slidelabel}
+% \begin{macrocode}
+\newcommand{\miko@slidelabel}%
+{\vbox to \slidelogoheight{\vss\hbox to \slidewidth%
+{\licensing\hfill\copyrightnotice\hfill\arabic{slide}\hfill\usebox{\slidelogo}}}}
+%</cls>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Colors and Highlighting}\label{sec:impl:highlighting}
+%
+% Now, we set up an infrastructure for highlighting phrases in slides. Note that we use
+% content-oriented macros for highlighting rather than directly using color markup.
+% The first thing to to is to adapt the green so that it is dark enough for most beamers
+% \begin{macrocode}
+%<*cls>
+\AtBeginDocument{\definecolor{green}{rgb}{0,.5,0}\definecolor{purple}{cmyk}{.3,1,0,.17}}
+% \end{macrocode}
+%
+% We customize the |\defemph|, |\notemph|, and |\stDMemph| macros with colors for the use
+% in the |statements| package. Furthermore we customize the |\@@lec| macro for the
+% appearance of line end comments in |\lec|.
+%
+% \begin{macrocode}
+\def\defemph#1{{\textcolor{magenta}{#1}}}
+\def\notemph#1{{\textcolor{magenta}{#1}}}
+\def\stDMemph#1{{\textcolor{blue}{#1}}}
+\def\@@lec#1{(\textcolor{green}{#1})}
+%</cls>
+%<*ltxml>
+#DefMacro('\defemph{}','{\textcolor{magenta}{#1}}');
+#DefMacro('\notemph{}','{\textcolor{magenta}{#1}}');
+%</ltxml>
+% \end{macrocode}
+%
+% I like to use the dangerous bend symbol for warnings, so we provide it here.
+% \begin{macrocode}
+%<*cls>
+\def\textwarning{\raisebox{-.05cm}{\includegraphics[width=1.2em]{dangerous-bend}}\xspace}
+%</cls>
+%<*ltxml>
+DefMacro('\textwarning',"");
+%</ltxml>
+% \end{macrocode}
+% Now, we specialize the slide environment that we have implemented above or inherited
+% from |seminar.cls| for some abbreviations, e.g. separator slides and title slides.
+% \begin{macrocode}
+%<*cls>
+\newenvironment{ttitle}{\begin{center}\LARGE\begin{tabular}{|c|}\hline}%
+ {\\\hline\end{tabular}\end{center}\vspace{1ex minus 1ex}}
+\newenvironment{ttitlejoint}[1]%
+{\newbox\boxwith\setbox\boxwith\hbox{\begin{tabular}{c}{\em joint work with}\\#1\end{tabular}}%
+\begin{center}\LARGE\begin{tabular}{c}\color{red}}%
+{\\\box\boxwith\end{tabular}\end{center}%
+\vspace{1ex minus 1ex}}
+%</cls>
+%<*ltxml>
+DefEnvironment('{titleslide}',"");
+DefEnvironment('{titleslide}',"<omdoc:omgroup ?#locator(stex:srcref='#locator')()>#body</omdoc:omgroup>");
+DefEnvironment('{ttitle}', "\n<Title>#body</Title>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+% Must be first command on slide to make positioning work.
+%<*cls>
+\newcommand{\putgraphicsat}[3]{%
+ \begin{picture}(0,0)\put(#1){\includegraphics[#2]{#3}}\end{picture}}
+\newcommand{\putat}[2]{%
+ \begin{picture}(0,0)\put(#1){#2}\end{picture}}
+%</cls>
+%<*ltxml>
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Miscellaneous}
+%
+% Some shortcuts that use math symbols but are not mathematical at all; in particular,
+% they should not be translated by {\latexml}.
+%
+% \begin{macrocode}
+%<*cls>
+\newcommand\hateq{\ensuremath{\hat=}}
+\newcommand\textleadsto{\ensuremath{\leadsto}}
+%</cls>
+%<*ltxml>
+DefConstructor('\hateq',"=\x{03C2}");
+DefConstructor('\textleadsto',"=\x{219D}");
+%</ltxml>
+% \end{macrocode}
+%
+% We need to disregard the columns macros introduced by the |beamer| class
+% \begin{macrocode}
+%<*ltxml>
+DefEnvironment('{columns}','#body');
+DefEnvironment('{column}{}','#body');
+%</ltxml>
+% \end{macrocode}
+%
+% We also need to deal with overlay specifications introduced by the |beamer|
+% class.\ednote{this is just to keep latexml quiet, no real functionality here.}
+%
+% \ednote{Deyan: We reuse the CMP itemizations defined in the omdoc.cls.ltxml binding,
+% adjusting the parameters to be overlay-sensitive }
+% \begin{macrocode}
+%<*ltxml>
+DefConstructor('\uncover','#1');
+#Define a Beamer Overlay Parameter type
+ DefParameterType('BeamerOverlay', sub {
+ my ($gullet) = @_;
+ my $tok = $gullet->readXToken;
+ if (ref $tok && ToString($tok) eq '<') {
+ $gullet->readUntil(T_OTHER('>'));
+ } else {
+ $gullet->unread($tok) if ref $tok;
+ undef; }},
+ reversion=> sub {
+ (T_OTHER('<'), $_[0]->revert, T_OTHER('>'));
+ });
+
+#Take the "from" field of the overlay range
+sub overlayFrom {
+ return "" unless defined $_[0];
+ my $overlay=ToString($_[0]); $overlay =~ /^(\d+)/; $1;}
+
+#Reuse the CMP itemizations, only adjust the \item constructors.
+DefMacro('\beamer@group@item[] OptionalBeamerOverlay IfBeginFollows', sub {
+ my($gullet,$tag,$overlay,$needwrapper)=@_;
+ $overlay=$overlay||T_OTHER("");
+ ( T_CS('\group@item@maybe@unwrap'),
+ ($needwrapper ? (Invocation(T_CS('\beamer@group@item@wrap'),$tag,$overlay)->unlist) : ()) ); });
+DefConstructor('\beamer@group@item@wrap {} OptionalBeamerOverlay',
+ "<omdoc:omtext ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')()>"
+ . "?#1(<dc:title>#1</dc:title>)()"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p ?#locator(stex:srcref='#locator')()>",
+ beforeDigest=>sub {
+ Let('\group@item@maybe@unwrap','\group@item@unwrap');
+ #$_[0]->bgroup;
+ useCMPItemizations();
+ return; },
+ properties=>sub{ RefStepItemCounter(); });
+
+
+DefConstructor('\beamer@itemize@item[] OptionalBeamerOverlay',
+ "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\beamer@enumerate@item[] OptionalBeamerOverlay',
+ "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\beamer@description@item[] OptionalBeamerOverlay',
+ "<omdoc:di ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<omdoc:dt ?#locator(stex:srcref='#locator')()>#1</omdoc:dt>)()<omdoc:dd>", # trust di and dt to autoclose
+ properties=>sub{ RefStepItemCounter(); });
+
+#We ALWAYS use the beamer itemizations for the slides:
+Let('\CMP@itemize@item'=>'\beamer@itemize@item');
+Let('\CMP@enumerate@item'=> '\beamer@enumerate@item');
+Let('\CMP@description@item'=> '\beamer@description@item');
+Let('\group@item' =>'\beamer@group@item');
+Let('\itemize@item'=>'\beamer@group@item');
+Let('\enumerate@item'=>'\beamer@group@item');
+Let('\description@item'=>'\beamer@group@item');
+Let('\only'=>'\beamer@group@item');
+%</ltxml>#$
+% \end{macrocode}
+% Now, some things that are imported from the |pgf| and |beamer| packages:
+% \begin{macrocode}
+%<*ltxml>
+DefMacro('\putgraphicsat{}{}{}','\mygraphics[#2]{#3}');
+DefMacro('\putat{}{}','#2');
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Finale}
+%
+% Finally, we set the slide body font to the sans serife, and we terminate the {\latexml}
+% bindings file with a success mark for perl.
+% \begin{macrocode}
+%<cls>\ifnotes\else\sf\fi
+%<ltxml>1;
+% \end{macrocode}
+% \Finale
+\endinput
+
+% \iffalse
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
+
+% LocalWords: mikoslides dtx beamer omdoc notheorems noamsthm beamerarticle
+% LocalWords: graphicx slidelabel stex latexml amssymb tikz url CPERL amsmath
+% LocalWords: LoadClass RequirePackage DefRegister DefEnvironment omgroup rgb
+% LocalWords: afterDigestBegin setProperty LookupValue DefConstructor hyperref
+% LocalWords: cmyk lec DefMacro titleslide ttitle RawTeX metadata etoolbox
+% LocalWords: noproblems linkcolor bookmarksopen citecolor urlcolor colorlinks
+% LocalWords: breaklinks plainpages pdfpagelabels locator srcref
diff --git a/Master/texmf-dist/source/latex/stex/problem/problem.dtx b/Master/texmf-dist/source/latex/stex/problem/problem.dtx
new file mode 100644
index 00000000000..b1103449f1b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/problem/problem.dtx
@@ -0,0 +1,540 @@
+% \iffalse meta-comment
+% An Infrastructure for Problems
+% $URL: https://svn.kwarc.info/repos/stex-content/sty/problem/problem.dtx $
+% $Rev: 2674 $; last modified by $Author: deyan $
+% $Date: 2010-03-24 04:09:39 +0100 (Wed, 24 Mar 2010) $
+% Copyright (c) 2006-2008 Michael Kohlhase, all rights reserved
+% this file is released under the
+% LaTeX Project Public License (LPPL)
+% \fi
+%
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{problem}[2010/06/25 v0.9c Semantic Markup for Problems]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,float}
+\usepackage[show]{ed}
+\usepackage{latexml}
+\usepackage[solutions,hints,notes]{problem}
+\usepackage{hyperref}
+\makeindex
+\floatstyle{boxed}
+\newfloat{exfig}{thp}{lop}
+\floatname{exfig}{Example}
+\begin{document}\DocInput{problem.dtx}\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{1}
+%
+% \changes{v0.9}{2006/09/18}{First Version with Documentation}
+% \changes{v0.9a}{2007/01/02}{Renamed to \texttt{problem.sty}}
+% \changes{v0.9b}{2008/10/01}{added extraction}
+% \changes{v0.9c}{2010/01/03}{based on \texttt{omd.sty} now}
+%
+% \GetFileInfo{problem.sty}
+%
+% \MakeShortVerb{\|}
+%
+% \title{An Infrastructure for formatting Problems\thanks{Version {\fileversion} (last revised
+% {\filedate})}}
+% \author{Michael Kohlhase\\
+% Jacobs University, Bremen\\
+% \url{http://kwarc.info/kohlhase}}
+% \maketitle
+%
+% \begin{abstract}
+% The |problem| package supplies an infrastructure that allows specify problems and to
+% reuse them efficiently in multiple environments.
+% \end{abstract}
+% \setcounter{tocdepth}{2}\tableofcontents\newpage
+%
+%\section{Introduction}\label{sec:intro}
+%
+% The |problem| package supplies an infrastructure that allows specify problem. Problems
+% are text fragments that come with auxiliary functions: hints, notes, and
+% solutions\footnote{for the momenet multiple choice problems are not supported, but may
+% well be in a future version}. Furthermore, we can specify how long the solution to a
+% given problem is estimated to take and how many points will be awarded for a perfect
+% solution.
+%
+% Finally, the |problem| package facilitates the management of problems in small files,
+% so that problems can be re-used in multiple environment.
+%
+% \section{The User Interface}\label{sec:ui}
+%
+% \subsection{Package Options}
+% The |problem| package takes the options \DescribeMacro{solutions}|solutions| (should
+% solutions be output?), \DescribeMacro{notes}|notes| (should the problem notes be
+% presented?), \DescribeMacro{hints}|hints| (do we give the hints?),
+% \DescribeMacro{pts}|pts| (do we display the points awarded for solving the problem?),
+% \DescribeMacro{min}|min| (do we display the estimated minutes for problem soling). If
+% theses are specified, then the corresponding auxiliary parts of the problems are output,
+% otherwise, they remain invisible.
+%
+% The \DescribeMacro{boxed} option specifies that problems should be formatted in framed
+% boxes so that they are more visible in the text. Finally, the \DescribeMacro{test}|test|
+% option signifies that we are in a test sitution, so this option does not show the
+% solutions (of course), but leaves space for the students to solve them.
+%
+% The \DescribeMacro{extract}|extract| option can be set if we want to extract a problems
+% file, e.g. to display the solutions, see Section~\ref{sec:user:includeproblem} for a
+% discussion.
+%
+% \subsection{Problems and Solutions}\label{sec:user:probsols}
+%
+% \DescribeEnv{problem} The main enviornment provided by the |problem| package is
+% (surprise surprise) the |problem| environment. It is used to mark up problems and
+% excercises. The environment takes an optional KeyVal argument with the keys
+% \DescribeMacro{id}|id| as an identifier that can be reference later,
+% \DescribeMacro{pts}|pts| for the points to be gained from this exercise in homework or
+% quiz situations, \DescribeMacro{min}|min| for the estimated minutes needed to solve the
+% problem, and finally \DescribeMacro{title}|title| for an informative title of the
+% problem. For an example of a marked up problem see Figure~\ref{fig:problem} and the
+% resulting markup see Figure~\ref{fig:result}.
+%
+%\begin{exfig}
+% \begin{verbatim}
+% \usepackage[solutions,hints,pts,min]{problem}
+% \begin{document}
+% \begin{problem}[id=elefants,pts=10,min=2,title=Fitting Elefants]
+% How many Elefants can you fit into a Volkswagen beetle?
+% \begin{hint} Think positively, this is simple!\end{hint}
+% \begin{exnote}Justify your answer\end{exnote}
+% \begin{solution}[for=elefants,height=3cm]
+% Four, two in the front seats, and two in the back.
+% \end{solution}
+% \end{problem}
+% \end{document}
+% \end{verbatim}
+% \caption{A marked up Problem}\label{fig:problem}
+% \end{exfig}
+%
+% \DescribeEnv{solution} The |solution| environment can be to specify a solution to a
+% problem. If the \DescribeMacro{solutions}|solutions| option is set or |\solutionstrue|
+% is set in the text, then the solution will be presented in the output. The |solution|
+% environment takes an optional KeyVal argument with the keys \DescribeMacro{id}|id| for
+% an identifier that can be reference \DescribeMacro{for}|for| to specify which problem
+% this is a solution for, and \DescribeMacro{height}|height| that allows to specify the
+% amount of space to be left in test situations (i.e. if the \DescribeMacro{test}|test|
+% option is set in the |\usepackage| statement).
+%
+%\begin{exfig}
+% \begin{minipage}{.9\linewidth}
+% \begin{problem}[id=elefants.prob,title=Fitting Elefants]
+% How many Elefants can you fit into a Volkswagen beetle?
+% \begin{hint} Think positively, this is simple!\end{hint}
+% \begin{exnote}Justify your answer\end{exnote}
+% \begin{solution}%[for=elefants.prob,height=3cm]
+% Four, two in the front seats, and two in the back.
+% \end{solution}
+% \end{problem}
+% \end{minipage}
+% \caption{The Formmatted Problem from Figure~\ref{fig:problem}}\label{fig:result}
+% \end{exfig}
+%
+% \DescribeEnv{hint}\DescribeEnv{note}, the |hint| and |exnote| environments can be used
+% in a |problem| enviroment to give hints and to make notes that elaborate certain aspects
+% of the problem.
+%
+% \subsection{Including Problems}\label{sec:user:includeproblem}
+%
+% The \DescribeMacro{\includeproblem}|\includeproblem| macro can be used to include a
+% problem from another file. It takes an optional KeyVal argument and a second argument
+% which is a path to the file containing the problem (the macro assumes that there is only
+% one problem in the include file). The keys \DescribeMacro{title}|title|,
+% \DescribeMacro{min}|min|, and \DescribeMacro{pts}|pts| specify the problem title, the
+% estimated minutes for solving the problem and the points to be gained, and their values
+% (if given) overwrite the ones specified in the |problem| environment in the included
+% file.
+%
+% Sometimes we want to collect all the included problems into a separate file that can be
+% typeset independently. The main application is to have course notes into which the
+% problems are included (usually in boxed form to distinguish them from the rest of the
+% text and without solutions) and to have the problems with solutions in a separate file
+% (to encourage students to try and solve the problems before looking up solutions). In
+% this situation set the \DescribeMacro{extract}|extract| option on the notes file
+% \meta{notes}|.tex|, which causes a file \meta{notes}|-solutions.tex| to be generated
+% that has the |\includeproblem| statements with the respective numbers from the main
+% document. This can then be imported into a document with the respective front and
+% backmatter. In particular the frontmatter of the importing will ususlly specify the
+% \DescribeMacro{solutions}|solutions| option to generate solutions.
+%
+% \subsection{Reporting Metadata}\label{sec:user:reporting}
+%
+% The sum of the points and estimated minutes (that we specified in the |pts| and |min|
+% keys to the |problem| environment or the |\includeproblem| macro) to the log file and
+% the screen after each run. This is useful in preparing exams, where we want to make sure
+% that the students can indeed solve the problems in an alotted time period.
+%
+% The |\min| and |\pts| macros allow to specify (i.e. to print to the margin) the
+% distribution of time and reward to parts of a problem, if the |pts| and |pts| package
+% options are set. This allows to give students hints about the estimated time and the
+% points to be awarded.
+%
+% \StopEventually{\newpage\PrintChanges}
+% \newpage
+%
+% \section{The Implementation}\label{sec:implementation}
+%
+% \subsection{Package Options}\label{sec:impl:options}
+%
+% The first step is to declare (a few) package options that handle whether certain
+% information is printed or not. They all come with their own conditionals that are set by
+% the options.
+%
+% \begin{macrocode}
+%<*package>
+\newif\ifexnotes\exnotesfalse\DeclareOption{notes}{\exnotestrue}
+\newif\ifhints\hintsfalse\DeclareOption{hints}{\hintstrue}
+\newif\ifsolutions\solutionsfalse\DeclareOption{solutions}{\solutionstrue}
+\newif\ifpts\ptsfalse\DeclareOption{pts}{\ptstrue}
+\newif\ifmin\minfalse\DeclareOption{min}{\mintrue}
+\newif\ifboxed\boxedfalse\DeclareOption{boxed}{\boxedtrue}
+\newif\ifextract\extractfalse\DeclareOption{extract}{\extracttrue}
+\ProcessOptions
+%</package>
+% \end{macrocode}
+%
+% Then we make sure that the necessary packages are loaded (in the right versions).
+% \begin{macrocode}
+%<*package>
+\RequirePackage{keyval}[1997/11/10]
+\RequirePackage{xcomment}
+\RequirePackage{sref}
+%</package>
+% \end{macrocode}
+%
+% Here comes the equivalent header information for {\LaTeXML}, we also initialize the
+% package inclusions. Since {\LaTeXML} currently does not process package options, we have
+% nothing to do.
+% \begin{macrocode}
+%<*ltxml>
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('sref');
+%</ltxml>
+% \end{macrocode}
+%
+% Then we register the namespace of the requirements ontology
+% \begin{macrocode}
+%<*ltxml>
+RegisterNamespace('prob'=>"http://omdoc.org/ontology/problems#");
+RegisterDocumentNamespace('prob'=>"http://omdoc.org/ontology/problems#");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Problems and Solutions}\label{sec:impl:probsols}
+%
+% We now prepare the KeyVal support for problems. The key macros just set appropriate
+% internal macros.
+%
+% \begin{macrocode}
+%<*package>
+\srefaddidkey[prefix=prob.]{problem}
+\omdaddkey{problem}{pts}
+\omdaddkey{problem}{min}
+\omdaddkey{problem}{title}
+\omdaddkey{problem}{refnum}
+% \end{macrocode}
+%
+% Then we set up a box and a counter for problems
+%
+% \begin{macrocode}
+\newsavebox{\probbox}
+\newcounter{problem}[section]
+% \end{macrocode}
+%
+% \begin{macro}{\prob@number}
+% We consolidate the problem number into a reusable internal macro
+% \begin{macrocode}
+\def\prob@number{\ifx\inclprob@refnum\@empty
+\ifx\problem@refnum\@empty\thesection.\theproblem\else\problem@refnum\fi
+\inclprob@refnum\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% We consolidate the problem header line into a separate internal macro that can be reused
+% in various settings.
+%
+% \begin{macro}{\prob@heading}
+% We consolidate the problem header line into a separate internal macro that can be
+% reused in various settings.
+% \begin{macrocode}
+\def\prob@heading{Problem \prob@number%
+\ifx\sref@id\@empty\else{\sref@label@id{Problem \thesection.\theproblem}}\fi%
+\ifx\inclprob@title\@empty% if there is no outside title
+\ifx\problem@title\@empty{:\quad}\else{\quad(\problem@title)\hfill\\}\fi
+\else\quad(\inclprob@title)\hfill\\\fi}% else show the outside title
+% \end{macrocode}
+% \end{macro}
+%
+% With this in place, we can now define the |problem| environment. It comes in two shapes,
+% depending on whether we are in boxed mode or not. In both cases we increment the problem
+% number and output the points and minutes (depending) on whehter the respective options
+% are set.
+% \begin{environment}{problem}
+% \begin{macrocode}
+\ifboxed
+\newenvironment{problem}[1][]{\omdsetkeys{problem}{#1}\sref@target%
+\stepcounter{problem}\show@pts\show@min\record@problem%
+\begin{lrbox}{\probbox}\begin{minipage}{.9\textwidth}}
+{\end{minipage}\end{lrbox}
+\setbox0=\hbox{\begin{minipage}{.9\textwidth}%
+\noindent\textbf\prob@heading\rm%
+\end{minipage}}
+\smallskip\noindent\fbox{\vbox{\box0\vspace*{.2em}\usebox\probbox}}\smallskip}
+\else
+\newenvironment{problem}[1][]{\omdsetkeys{problem}{#1}\sref@target%
+\stepcounter{problem}\show@pts\show@min\record@problem%
+\par\noindent\textbf\prob@heading\rm}
+{\smallskip}
+\fi%boxed
+%</package>
+% \end{macrocode}
+% \end{environment}
+%
+% Note that we allow hints and solutions in the body of a |problem| environment so we have
+% to allow the |omdoc:CMP| and |omdoc:p| elements to autoclose.
+%
+% \begin{macrocode}
+%<*ltxml>
+DefCMPEnvironment('{problem} OptionalKeyVals:problem',
+ "<omdoc:exercise ?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')()"
+ . "prob:dummy='for the namespace'"
+ . "?#locator(stex:srcref='#locator')()>"
+ . "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
+ . "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p>#body"
+ ."</omdoc:exercise>\n");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macro}{\record@problem}
+% This macro records information about the problems in the |*.aux| file.
+% \begin{macrocode}
+%<*package>
+\def\record@problem{\protected@write\@auxout{}%
+{\string\@problem{\prob@number}%
+{\ifx\inclprob@pts\@empty\problem@pts\else\inclprob@pts\fi}%
+{\ifx\inclprob@min\@empty\problem@min\else\inclprob@min\fi}}}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@problem}
+% This macro acts on a problem's record in the |*.aux| file. It does not have any
+% functionality here, but can be redefined elsewhere (e.g. in the |assignment|
+% package).
+% \begin{macrocode}
+%<*package>
+\def\@problem#1#2#3{}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% The |solution| environment is similar to the |problem| environment, only that it is
+% independent of the boxed mode. It also has it's own keys that we need to define first.
+%
+% \begin{macrocode}
+%<*package>
+\define@key{soln}{id}{\def\soln@id{#1}}
+\define@key{soln}{for}{\def\soln@for{#1}}
+\define@key{soln}{height}{\def\soln@height{#1}}
+\ifsolutions
+\newenvironment{solution}[1][]%
+{\hrule\smallskip{\bf Solution: }\begin{small}}%
+{\hrule\end{small}}
+\else\newxcomment[]{solution}\fi
+% \newsavebox{\solution@box}
+% \newlength{\solution@width}
+% \setlength{\solution@width}{14cm}
+% \newenvironment{solution}[1][]%
+% {\begin{lrbox}{\solution@box}\begin{minipage}{\solution@width}
+% \hrule\smallskip{\bf Solution: }\small}
+% {\smallskip\hrule\end{minipage}\end{lrbox}
+% \ifsolutions\begin{center}\usebox{\solution@box}\end{center}\fi}
+%</package>
+%<*ltxml>
+DefKeyVal('soln','id','Semiverbatim');
+DefKeyVal('soln','height','Semiverbatim');
+DefKeyVal('soln','for','Semiverbatim');
+DefCMPEnvironment('{solution} OptionalKeyVals:soln',
+ "<omdoc:solution ?&KeyVals(#1,'for')(for='&KeyVal(#1,'for')')() ?#locator(stex:srcref='#locator')()>"
+ . "#body"
+ . "</omdoc:solution>");
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package>
+\ifexnotes
+\newenvironment{exnote}[1][]%
+{\par\noindent\hrule\smallskip{\bf Note: }\small}
+{\smallskip\hrule}
+\else%ifexnotes
+\newxcomment[]{exnote}
+\fi%ifexnotes
+\ifhints
+\newenvironment{hint}[1][]%
+{\par\noindent\hrule\smallskip{\bf Hint: }\small}
+{\smallskip\hrule}
+\else%ifhints
+\newxcomment[]{hint}
+\fi%ifhints
+%</package>
+%<*ltxml>
+DefCMPEnvironment('{exnote}',
+ "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:p>#body<omdoc:p>"
+ . "</omdoc:CMP>"
+ ."</omdoc:hint>");
+DefCMPEnvironment('{hint}',
+ "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:p>#body</omdoc:p>"
+ . "</omdoc:CMP>"
+ ."</omdoc:hint>");
+DefConstructor('\pts{}',"");
+DefConstructor('\min{}',"");
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Including Problems}\label{sec:impl:includeproblem}
+%
+% The first action is to make a \meta{jobname}|-problems.tex| file, if the |extract|
+% option is set.
+%
+% \begin{macrocode}
+%<*package>
+\ifextract
+\newwrite\problem@file
+\immediate\openout\problem@file=\jobname-problems.tex
+\AtEndDocument{\closeout\problem@file}
+\fi
+%</package>
+% \end{macrocode}
+%
+% \begin{macro}{\includeproblem}
+% The |\includeproblem| command is essentially a glorified |\input| statement, it sets
+% some internal macros first that overwrite the local points. After that (so that the
+% included problem had time to step the problem number) it writes the |\includeproblem|
+% statement to the problems file, if the |extract| option is set. Here we add a key
+% |refnum=\prob@num| to the inlcudeproblem, so that we can remember the number from the
+% main document.\ednote{do something about the overwriting of problem metadata in the
+% {\LaTeXML} binding.}
+%
+% \begin{macrocode}
+%<*package>
+\omdaddkey{inclprob}{pts}
+\omdaddkey{inclprob}{min}
+\omdaddkey{inclprob}{title}
+\omdaddkey{inclprob}{refnum}
+\clear@inclprob@keys
+\newcommand{\includeproblem}[2][]{%
+\bgroup\omdsetkeys{inclprob}{#1}\input{#2}\ifsolutions\newpage\fi\egroup
+\ifextract\def\@test{#1}
+\def\prob@num{\ifx\inclprob@refnum\@empty\thesection.\theproblem\else\inclprob@refnum\fi}
+\def\inclprob@keys{#1\ifx\@test\@empty\else,\fi refnum=\prob@num}
+\protected@write\problem@file{}{\string\includeproblem[\inclprob@keys]{#2}}
+\fi}
+%</package>
+%<*ltxml>
+DefKeyVal('prob','pts','Semiverbatim');
+DefKeyVal('prob','min','Semiverbatim');
+DefKeyVal('prob','title','Semiverbatim');
+DefConstructor('\includeproblem OptionalKeyVals:prob Semiverbatim',
+ "<omdoc:ref xref='#2' ?#locator(stex:srcref='#locator')() "
+ . "prob:dummy='for the namespace'>"
+ . "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
+ . "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ ."</omdoc:ref>");
+%</ltxml>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%<*ltxml>
+Tag('omdoc:exercise',afterOpen=>\&numberIt);
+Tag('omdoc:solution',afterOpen=>\&numberIt);
+Tag('omdoc:hint',afterOpen=>\&numberIt);
+%</ltxml>
+% \end{macrocode}
+%
+% \subsection{Reporting Metadata}
+%
+% \begin{macrocode}
+%<*package>
+\def\pts#1{\ifpts\marginpar{#1 pt}\fi}
+\def\min#1{\ifmin\marginpar{#1 min}\fi}
+%</package>
+%<*ltxml>
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package>
+\AtEndDocument{\ifpts\message{Total: \arabic{pts} points}\fi
+\ifmin\message{Total: \arabic{min} minutes}\fi}
+%</package>
+%<*ltxml>
+%</ltxml>
+% \end{macrocode}
+%
+% \begin{macro}{\show@pts}
+% The |\show@pts| shows the points: if no points are given from the outside and also no
+% points are given locally do nothing, else show and add. If there are outside points
+% then we show them in the margin.
+% \begin{macrocode}
+%<*package>
+\newcounter{pts}
+\def\show@pts{\ifx\inclprob@pts\@empty%
+\ifx\problem@pts\@empty\else%
+\ifpts\marginpar{\problem@pts pt\smallskip}\addtocounter{pts}{\problem@pts}\fi%
+\fi\else%
+\ifpts\marginpar{\inclprob@pts pt\smallskip}\addtocounter{pts}{\inclprob@pts}\fi%
+\fi}
+% \end{macrocode}
+% \end{macro}
+% and now the same for the minutes
+% \begin{macro}{\show@min}
+% \begin{macrocode}
+\newcounter{min}
+\def\show@min{\ifx\inclprob@min\@empty%
+\ifx\problem@min\@empty\else%
+\ifmin\marginpar{\problem@min min}\addtocounter{min}{\problem@min}\fi%
+\fi\else%
+\ifmin\marginpar{\inclprob@min min}\addtocounter{min}{\inclprob@min}\fi
+\fi}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Finale}
+% Finally, we need to terminate the file with a success mark for perl.
+% \begin{macrocode}
+%<ltxml>1;
+% \end{macrocode}
+% \Finale
+\endinput
+
+% \iffalse
+% LocalWords: GPL structuresharing STR dtx pts keyval xcomment CPERL DefKeyVal
+%%% Local Variables:
+%%% mode: doctex
+%%% TeX-master: t
+%%% End:
+% \fi
+% LocalWords: RequirePackage Semiverbatim DefEnvironment OptionalKeyVals soln
+% LocalWords: exnote DefConstructor inclprob
diff --git a/Master/texmf-dist/source/latex/stex/xsl/ltxml2cnx.xsl b/Master/texmf-dist/source/latex/stex/xsl/ltxml2cnx.xsl
new file mode 100644
index 00000000000..9f854abee37
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/xsl/ltxml2cnx.xsl
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ltx="http://dlmf.nist.gov/LaTeXML"
+ xmlns='http://cnx.rice.edu/cnxml'
+ xmlns:m='http://www.w3.org/1998/Math/MathML'
+ xmlns:md="http://cnx.rice.edu/mdml/0.4"
+ xmlns:bib="http://bibtexml.sf.net/"
+ exclude-result-prefixes="ltx md bib"
+ version="1.0">
+
+ <xsl:output method="xml" indent="yes"
+ doctype-public="-//CNX//DTD CNXML 0.5 plus MathML//EN"
+ doctype-system="http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd"/>
+
+ <xsl:strip-space elements="*"/>
+
+<!-- if there is no other template, give a warning -->
+<!-- <xsl:template match="*">
+ <xsl:message>Cannot deal with element <xsl:value-of select="local-name()"/> yet! (id=<xsl:value-of select="@xml:id"/>)</xsl:message>
+ <xsl:comment>elided element <xsl:value-of select="local-name()"/></xsl:comment>
+ </xsl:template> -->
+
+ <xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="ltx:Math">
+ <xsl:copy-of select="m:math"/>
+ </xsl:template>
+
+<xsl:template match="ltx:*">
+ <xsl:element name="{local-name()}">
+ <xsl:copy-of select="@*"/><xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="ltx:tabular">
+ <table>
+ <xsl:copy-of select="@*"/><xsl:apply-templates/>
+ </table>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/source/latex/stex/xsl/omdocpost.xsl b/Master/texmf-dist/source/latex/stex/xsl/omdocpost.xsl
new file mode 100644
index 00000000000..d49f692a387
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/xsl/omdocpost.xsl
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- this style sheet transforms the tex.xml file to OMDoc -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://omdoc.org/ns"
+ xmlns:omdoc="http://omdoc.org/ns"
+ xmlns:mcd="http://www.w3.org/ns/mathml-cd"
+ xmlns:ltx="http://dlmf.nist.gov/LaTeXML"
+ xmlns:stex="http://kwarc.info/ns/sTeX"
+ xmlns:m="http://www.w3.org/1998/Math/MathML"
+ xmlns:om="http://www.openmath.org/OpenMath"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:str="http://exslt.org/strings"
+ extension-element-prefixes="str"
+ exclude-result-prefixes="xsl omdoc ltx m om dc">
+
+<xsl:output method="xml" indent="yes" cdata-section-elements="data"/>
+<xsl:strip-space elements="*"/>
+
+<!-- these parameters set the paths to the special latexml cds. The default is made so that it works for GenCS -->
+<xsl:param name="latexmlcds" select="'../../../slides/extcds/stex'"/>
+<xsl:param name="omcds" select="'../../../slides/extcds/omstd'"/>
+
+<xsl:template match="/">
+ <xsl:comment>This OMDoc document is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.</xsl:comment>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="omdoc:omdoc">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates/>
+ <xsl:comment>The data elements</xsl:comment>
+ <xsl:apply-templates mode="extract-data"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
+</xsl:template>
+
+<xsl:template match="ltx:ERROR"/>
+<xsl:template match="*|text()" mode="extract-data">
+ <xsl:apply-templates mode="extract-data"/>
+</xsl:template>
+
+<xsl:template match="ltx:Math">
+ <xsl:apply-templates select="om:OMOBJ"/>
+</xsl:template>
+
+<!-- we directly access the content of titles -->
+<xsl:template match="ltx:title"/>
+<xsl:template match="ltx:chapter|ltx:part|ltx:section|ltx:subsection|ltx:subsubsection|ltx:paragraph">
+ <omgroup layout="sectioning">
+ <xsl:copy-of select="@*"/>
+ <metadata>
+ <dc:title><xsl:apply-templates select="ltx:title/*|ltx:title/text()"/></dc:title>
+ </metadata>
+ <xsl:apply-templates/>
+ </omgroup>
+</xsl:template>
+
+<xsl:template match="ltx:p">
+ <p><xsl:copy-of select="@*"/><xsl:apply-templates/></p>
+</xsl:template>
+
+<xsl:template match="ltx:para">
+ <omtext><xsl:copy-of select="@*"/><CMP><xsl:apply-templates/></CMP></omtext>
+</xsl:template>
+
+<xsl:template match="ltx:text">
+ <phrase>
+ <xsl:copy-of select="@*"/>
+ <xsl:if test="@font">
+ <xsl:attribute name="class"><xsl:value-of select="@font"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </phrase>
+</xsl:template>
+
+
+<xsl:template match="ltx:graphics|ltx:verbatim">
+ <omlet action="display" data="#{generate-id()}" show="embed" style="{translate(@options,'=',':')}">
+ <xsl:copy-of select="@*"/>
+ </omlet>
+</xsl:template>
+
+<xsl:template match="omdoc:tikz">
+ <omlet action="display" data="#{generate-id()}" show="embed" style="{translate(@options,'=',':')}">
+ <xsl:copy-of select="@*"/>
+ </omlet>
+</xsl:template>
+
+<!-- for citations we just extract the bibrefs at the moment. -->
+<xsl:template match="ltx:cite"><xsl:apply-templates select="ltx:bibref"/></xsl:template>
+<xsl:template match="ltx:bibref">
+ <xsl:for-each select="str:tokenize(@bibrefs,',')">
+ <ref type="cite" xref="{.}"/>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- we ignore LaTeXML breaks -->
+<xsl:template match="ltx:break"/>
+
+<xsl:template match="ltx:figure[ltx:graphics]">
+ <omlet action="display" data="#{generate-id(ltx:graphics)}" show="embed" class="float-figure-{@placement}">
+ <xsl:if test="@label">
+ <xsl:attribute name="xml:id"><xsl:value-of select="@label"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ltx:graphics/@options">
+ <xsl:attribute name="style"><xsl:value-of select="translate(ltx:graphics/@options,'=',':')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ltx:caption/*|ltx:caption/text()">
+ <metadata><dc:title><xsl:apply-templates select="ltx:caption/*|ltx:caption/text()"/></dc:title></metadata>
+ </xsl:if>
+ </omlet>
+</xsl:template>
+
+<xsl:template match="ltx:graphics" mode="extract-data">
+ <private>
+ <xsl:attribute name="xml:id"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ <xsl:variable name="sources" select="str:tokenize(@sources,',')"/>
+ <xsl:variable name="graphic" select="@graphic"/>
+ <xsl:for-each select="$sources">
+ <xsl:variable name="current" select="."/>
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="$current='jpg'">
+ <xsl:value-of select="'image/jpeg'"/>
+ </xsl:when>
+ <xsl:when test="$current='jpeg'">
+ <xsl:value-of select="'image/jpeg'"/>
+ </xsl:when>
+ <xsl:when test="$current='png'">
+ <xsl:value-of select="'image/png'"/>
+ </xsl:when>
+ <xsl:when test="$current='gif'">
+ <xsl:value-of select="'image/gif'"/>
+ </xsl:when>
+ <xsl:when test="$current='eps'">
+ <xsl:value-of select="'application/postscript'"/>
+ </xsl:when>
+ <xsl:when test="$current='ps'">
+ <xsl:value-of select="'application/postscript'"/>
+ </xsl:when>
+ <xsl:when test="$current='ai'">
+ <xsl:value-of select="'application/postscript'"/>
+ </xsl:when>
+ <xsl:when test="$current='pdf'">
+ <xsl:value-of select="'application/pdf'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$current"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <data format="{$type}" href="{$graphic}.{.}"/>
+ </xsl:for-each>
+ </private>
+</xsl:template>
+<xsl:template match="ltx:verbatim" mode="extract-data">
+ <private>
+ <xsl:attribute name="xml:id"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ <data format="text"><xsl:value-of select="text()"/></data>
+ </private>
+</xsl:template>
+
+<xsl:template match="omdoc:tikz|ltx:tikz" mode="extract-data">
+ <private>
+ <xsl:attribute name="xml:id"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ <data format="tikz"><xsl:value-of select="."/></data>
+ </private>
+</xsl:template>
+
+<!-- for LaTeXML tables -->
+<xsl:template match="ltx:tabular"><table><xsl:apply-templates/></table></xsl:template>
+<xsl:template match="ltx:tbody"><xsl:apply-templates/></xsl:template>
+<xsl:template match="ltx:tr"><tr><xsl:apply-templates/></tr></xsl:template>
+<xsl:template match="ltx:td"><td><xsl:apply-templates/></td></xsl:template>
+<xsl:template match="ltx:thead"><xsl:apply-templates/></xsl:template>
+
+<!-- for LaTeXML references from \url -->
+<xsl:template match="ltx:ref[@class='url']">
+ <link href="{@href}" class="url">
+ <xsl:value-of select="ltx:text"/>
+ </link>
+</xsl:template>
+
+<xsl:template match="ltx:ref[@labelref]">
+ <ref type="cite" xref="{@labelref}"/>
+</xsl:template>
+
+<!-- LaTeXML listings -->
+<xsl:template match="ltx:text[@class='listing']">
+ <omdoc:phrase type='progsnippet'><xsl:copy-of select="@*"/><xsl:apply-templates/></omdoc:phrase>
+</xsl:template>
+
+<xsl:template match="ltx:listingblock">
+ <omlet action='display' show='embed' style='display:block'>
+ <xsl:copy-of select="@*"/>
+ <code>
+ <data format='listingblock'><xsl:apply-templates mode="listing"/></data>
+ </code>
+ </omlet>
+</xsl:template>
+
+<xsl:template match="ltx:tabular" mode="listing">
+ <table class="listing"><xsl:apply-templates mode="listing"/></table>
+</xsl:template>
+
+<xsl:template match="ltx:tr" mode="listing">
+ <tr><xsl:apply-templates mode="listing"/></tr>
+</xsl:template>
+
+<xsl:template match="ltx:td" mode="listing">
+ <td><xsl:apply-templates mode="listing"/></td>
+</xsl:template>
+
+<xsl:template match="ltx:text[not(@*)]" mode="listing">
+ <xsl:apply-templates mode="listing"/>
+</xsl:template>
+
+<xsl:template match="ltx:text[@font='bold']" mode="listing">
+ <keyword><xsl:apply-templates mode="listing"/></keyword>
+</xsl:template>
+
+<xsl:template match="ltx:text[@color]" mode="listing">
+ <phrase>
+ <xsl:attribute name='type'><xsl:text>lstemph</xsl:text></xsl:attribute>
+ <xsl:attribute name='style'><xsl:text>color:</xsl:text><xsl:value-of select="@color"/></xsl:attribute>
+ <xsl:apply-templates mode="listing"/>
+ </phrase>
+</xsl:template>
+
+<xsl:template match="ltx:text[@class]" mode="listing">
+ <xsl:apply-templates mode="listing"/>
+</xsl:template>
+
+
+<xsl:template match="ltx:*" mode="listing">
+ <xsl:message>cannot deal with element <xsl:value-of select="local-name()"/> yet!</xsl:message>
+</xsl:template>
+
+
+<xsl:template match="ltx:equation">
+ <om:OMOBJ style="display:block">
+ <xsl:apply-templates select="ltx:Math/om:OMOBJ/*"/>
+ </om:OMOBJ>
+</xsl:template>
+
+<!-- equationgroups come from eqnarray and eqnarray*, they really need OMDoc-level parallel markup -->
+<xsl:template match="ltx:equationgroup">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="ltx:equationgroup/ltx:equation">
+ <om:OMOBJ style="display:block">
+ <xsl:apply-templates select="ltx:MathFork/ltx:Math/om:OMOBJ/*"/>
+ </om:OMOBJ>
+</xsl:template>
+
+
+<!-- for notations -->
+<xsl:template match="omdoc:rendering">
+ <xsl:apply-templates select="." mode="rendering"/>
+</xsl:template>
+<xsl:template match="ltx:Math" mode="rendering">
+ <xsl:apply-templates select="m:math/*" mode="rendering"/>
+</xsl:template>
+
+<!-- copy where not specified otherwise -->
+<xsl:template match="*" mode="rendering">
+ <xsl:copy><xsl:copy-of select="@*[not(name()='argprec')]"/><xsl:apply-templates mode="rendering"/></xsl:copy>
+</xsl:template>
+
+<xsl:template match="ltx:text" mode="rendering">
+ <text><xsl:value-of select="text()"/></text>
+</xsl:template>
+
+<!-- Template to recover the appropriate argument precedence" -->
+<xsl:template name="argument-precedence">
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="precattr" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$count > 1">
+ <xsl:call-template name="argument-precedence">
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="precattr" select="substring-after($precattr,' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($precattr,' ')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- we have to treat the m:mi that come from an
+ #i argument invocation differently -->
+<xsl:template match="m:mi[starts-with(.,'arg:')]|m:mo[starts-with(.,'arg:')]" mode="rendering">
+ <xsl:variable name="precedence">
+ <xsl:call-template name="argument-precedence">
+ <xsl:with-param name="count" select="substring-after(.,'arg:')"/>
+ <xsl:with-param name="precattr" select="ancestor::omdoc:rendering[1]/@argprec"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <render name="arg{substring-after(.,'arg:')}">
+ <xsl:choose>
+ <xsl:when test="string($precedence)">
+ <xsl:attribute name="precedence"><xsl:value-of select="$precedence"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="string(ancestor::omdoc:rendering[1]/@precedence)">
+ <xsl:attribute name="precedence"><xsl:value-of select="ancestor::omdoc:rendering[1]/@precedence"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </render>
+</xsl:template>
+
+
+<!-- make an mrow around the generated things. -->
+<xsl:template match="omdoc:style[@format='pmml']">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <element name="mrow" ns="http://www.w3.org/1998/Math/MathML">
+ <xsl:apply-templates/>
+ </element>
+ </xsl:copy>
+</xsl:template>
+
+
+<xsl:template match="omdoc:separator/ltx:Math">
+ <xsl:apply-templates select="m:math/*" mode="elementize"/>
+</xsl:template>
+
+<xsl:template match="omdoc:map/ltx:Math">
+ <xsl:apply-templates select="m:math/*" mode="elementize"/>
+</xsl:template>
+
+
+<xsl:template match="text()" mode="elementize">
+ <text><xsl:value-of select="."/></text>
+</xsl:template>
+
+<xsl:template match="ltx:text" mode="elementize">
+ <element name="mtext" ns="http://www.w3.org/1998/Math/MathML">
+ <xsl:value-of select="."/>
+ </element>
+</xsl:template>
+
+<xsl:template match="m:*" mode="elementize">
+ <element name="{local-name()}" ns="{namespace-uri()}">
+ <xsl:for-each select="@*">
+ <attribute name="{local-name()}" select="'{.}'"/>
+ </xsl:for-each>
+ <xsl:apply-templates mode="elementize"/>
+ </element>
+</xsl:template>
+
+<!-- get rid of the list OMAs LaTeXML uses -->
+<xsl:template match="om:OMA[om:OMS[position()=1 and @name='list' and @cd='latexml']]">
+ <xsl:apply-templates select="*[position() &gt; 1]"/>
+</xsl:template>
+
+<!-- special treatment for latexml symbols -->
+<!-- we have a set of special CDs that correspond to the ones latexml postulates -->
+<!-- they need to be imported whereever necessary -->
+<xsl:template match="omdoc:theory">
+ <theory>
+ <xsl:copy-of select="@*"/>
+ <xsl:if test="//om:OMS[@cd='latexml' and @name='multirelation']">
+ <imports from="{$latexmlcds}/multirel.omdoc#multirel"/>
+ </xsl:if>
+ <xsl:if test="//om:OMS[@cd='latexml' and
+ (@name='times' or
+ @name='divide' or
+ @name='plus' or
+ @name='minus')]">
+ <imports from="{$omcds}/arith1.omdoc#arith1"/>
+ </xsl:if>
+ <xsl:if test="//om:OMS[@cd='latexml' and
+ (@name='greater-than' or
+ @name='less-than' or
+ @name='greater-than-or-equals' or
+ @name='less-than-or-equals')]">
+ <imports from="{$omcds}/relation1.omdoc#relation1"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </theory>
+</xsl:template>
+
+<!-- and we need to convert the symbols -->
+<xsl:template match="om:OMS[@cd='latexml' and @name='multirelation']">
+ <om:OMS cd="multirel" name="multirelation"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='multirelation']"/>
+
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='plus']">
+ <om:OMS cd="arith1" name="plus"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='minus']">
+ <om:OMS cd="arith1" name="minus"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='times']">
+ <om:OMS cd="arith1" name="times"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='divide']">
+ <om:OMS cd="arith1" name="divide"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='greater-than']">
+ <om:OMS cd="relation1" name="gt"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='greater-than-or-equals']">
+ <om:OMS cd="relation1" name="gt"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='less-than']">
+ <om:OMS cd="relation1" name="lt"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='less-than-or-equals']">
+ <om:OMS cd="relation1" name="lt"/>
+</xsl:template>
+
+<xsl:template match="om:OMS[@cd='latexml' and @name='not-equals']">
+ <om:OMS cd="relation1" name="ne"/>
+</xsl:template>
+
+<!-- get rid of the sectioning commands -->
+<xsl:template match="omdoc:chapter|omdoc:section|omdoc:subsection|omdoc:subsubsection|omdoc:paragraph|omdoc:subparagraph">
+ <omgroup class="{local-name()}">
+ <xsl:copy-of select="@*|*"/>
+ </omgroup>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/source/latex/stex/xsl/owl2post.xsl b/Master/texmf-dist/source/latex/stex/xsl/owl2post.xsl
new file mode 100644
index 00000000000..530d9265c03
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/xsl/owl2post.xsl
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- this style sheet transforms the tex.xml file to OMDoc -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ltx="http://dlmf.nist.gov/LaTeXML"
+ xmlns:omdoc="http://omdoc.org/ns"
+ xmlns:stex="http://kwarc.info/ns/sTeX"
+ xmlns="http://www.w3.org/2002/07/owl#"
+ xmlns:owl="http://www.w3.org/2002/07/owl#"
+ exclude-result-prefixes="xsl omdoc ltx stex owl">
+
+<xsl:output method="xml" indent="yes" cdata-section-elements="data"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="/">
+ <xsl:comment>This OWL2 ontology is generated from an sTeX-encoded one via LaTeXML, you may want to reconsider editing it.</xsl:comment>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
+</xsl:template>
+
+<xsl:template match="omdoc:imports">
+ <Import><xsl:value-of select="@from"/></Import>
+</xsl:template>
+
+
+<xsl:template match="owl:Axiom">
+ <xsl:variable name="anno" select="*[2]"/>
+ <xsl:apply-templates select="*[1]">
+ <xsl:with-param name="anno" select="$anno"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="ltx:Math|ltx:XMath">
+ <xsl:param name="anno"/>
+ <xsl:apply-templates>
+ <xsl:with-param name="anno" select="$anno"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="ltx:XMApp[ltx:XMTok[position()=1 and @meaning='list']]">
+ <xsl:apply-templates select="*[position() &gt; 1]"/>
+</xsl:template>
+
+<xsl:template match="ltx:XMApp">
+ <xsl:param name="anno"/>
+ <xsl:element name="{ltx:XMTok[1]/@meaning}">
+ <xsl:copy-of select="$anno"/>
+ <xsl:apply-templates select="*[position() &gt; 1]"/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="ltx:XMTok">
+ <Class IRI="{@name}"/>
+</xsl:template>
+
+<xsl:template match="ltx:ERROR">
+ <Class IRI="{substring-after(ltx:XMTok,'\')}"/>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty b/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty
new file mode 100644
index 00000000000..aab7a484f50
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty
@@ -0,0 +1,111 @@
+%%
+%% This is file `assignment.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% assignment.dtx (with options: `package')
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{assignment}[2010/06/25 v0.9a assignment documents]
+\newif\iftest\testfalse
+\newif\ifsolutions\solutionsfalse
+\DeclareOption{test}{\testtrue\solutionsfalse}
+\newif\ifmultiple\multiplefalse
+\DeclareOption{multiple}{\multipletrue}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{problem}}
+\ProcessOptions
+\RequirePackage{keyval}[1997/11/10]
+\RequirePackage{problem}
+\omdaddkey{assig}{number}
+\omdaddkey{assig}{title}
+\omdaddkey{assig}{type}
+\omdaddkey{assig}{given}
+\omdaddkey{assig}{due}
+\def\AssignmentType#1{\gdef\assig@default@type{#1}}
+\def\assig@default@type{Assignment}
+\def\Assig@Type{\ifx\assig@type\@empty\assig@default@type\else\assig@type\fi}
+\def\Assig@Title{\ifx\assig@title\@empty\else\assig@title~\fi}
+\def\given@due#1#2{%
+\ifx\assig@given\@empty\else\ifx\assig@due\@empty\else{#1}\fi\fi%
+\ifx\assig@given\@empty\else{Given {\assig@given}}\fi%
+\ifx\assig@given\@empty\else\ifx\assig@due\@empty\else{, }\fi\fi%
+\ifx\assig@due\@empty\else{Due {\assig@due}}\fi%
+\ifx\assig@given\@empty\else{\ifx\assig@due\@empty\else{#2}\fi}\fi}
+\newenvironment{assignment}[1][]% keyval args
+{\omdsetkeys{assig}{#1}% collect the keys and correct them from the outside
+\@ifundefined{incl@assig@title}{}{\def\assig@title{\incl@assig@title}}
+\@ifundefined{incl@assig@type}{}{\def\assig@type{\incl@assig@type}}
+\@ifundefined{incl@assig@num}{}{\def\assig@num{\incl@assig@num}}
+\@ifundefined{incl@assig@due}{}{\def\assig@due{\incl@assig@due}}
+\@ifundefined{incl@assig@given}{}{\def\assig@given{\incl@assig@given}}
+\@ifundefined{assig@num}{\stepcounter{section}}%
+{\setcounter{section}{\assig@num}\setcounter{problem}{0}}
+\ifmultiple%
+\section*{\Assig@Type~\arabic{section}:~\Assig@Title\given@due{\\(})}
+ \addcontentsline{toc}{section}{\Assig@Type~{\arabic{section}}:~\Assig@Title}
+\else
+\begin{center}
+\Large\Course@Title\\
+{\bf{\Assig@Type}~{\arabic{section}}:~\Assig@Title\strut\\\large{\given@due()}}
+\end{center}
+\fi%ifmultiple
+}{}
+\define@key{incl@assig}{number}{\def\incl@assig@num{#1}}
+\define@key{incl@assig}{title}{\def\incl@assig@title{#1}}
+\define@key{incl@assig}{type}{\def\incl@assig@type{#1}}
+\define@key{incl@assig}{given}{\def\incl@assig@given{#1}}
+\define@key{incl@assig}{due}{\def\incl@assig@due{#1}}
+\newcommand{\includeassignment}[2][]{\bgroup\setkeys{incl@assig}{#1}\include{#2}\egroup}
+\def\CourseTitle#1{\gdef\Course@Title{#1}}
+\omdaddkey{testheading}{min}
+\omdaddkey{testheading}{duration}
+\omdaddkey{testheading}{reqpts}
+\def\testheading#1{\omdsetkeys{testheading}{#1}
+{\noindent\large NAME: \\[1ex] MATRICULATION NUMBER:\\[2ex]
+ {\textbf{You have
+\ifx\test@heading@duration\@empty\testheading@min minutes\else\testheading@duration\fi
+(sharp) for the test}};\\ Write the solutions to the sheet.}\par\noindent
+
+\newcount\check@time\check@time=\testheading@min
+\advance\check@time by -\theassignment@totalmin
+The scheduled time for solving this exam is {\theassignment@totalmin} minutes,
+leaving you {\the\check@time} minutes for revising your exam.
+
+\newcount\bonus@pts\bonus@pts=\theassignment@totalpts
+\advance\bonus@pts by -\testheading@reqpts
+You can reach {\theassignment@totalpts} points if you solve all problems. You will only need
+{\testheading@reqpts} points for a perfect score, i.e.\ {\the\bonus@pts} points are
+bonus points. \vfill
+\begin{center}
+ {\Large\em
+ Different problems test different skills and knowledge, so do not get stuck on
+ one problem.}\vfill\par\correction@table
+\end{center}\newpage}
+\def\testspace#1{\iftest\vspace*{#1}\fi}
+\def\testnewpage{\iftest\newpage\fi}
+\def\testemptypage{\iftest\begin{center}This page was intentionally left
+ blank for extra space\end{center}\vfill\eject\else\fi}
+\def\@problem#1#2#3{\stepcounter{assignment@probs}
+\def\@test{#2}\ifx\@test\@empty\else\addtocounter{assignment@totalpts}{#2}\fi
+\def\@test{#3}\ifx\@test\@empty\else\addtocounter{assignment@totalmin}{#3}\fi
+\xdef\correction@probs{\correction@probs & #1}%
+\xdef\correction@pts{\correction@pts & #2}
+\xdef\correction@reached{\correction@reached &}}
+\newcounter{assignment@probs}
+\newcounter{assignment@totalpts}
+\newcounter{assignment@totalmin}
+\def\correction@probs{prob.}%
+\def\correction@pts{total}%
+\def\correction@reached{reached}%
+\stepcounter{assignment@probs}
+\def\correction@table{\begin{tabular}{|l|*{\theassignment@probs}{c|}|p{3cm}|}\hline%
+&\multicolumn{\theassignment@probs}{c||}%
+{\footnotesize To be used for grading, do not write here} &\\\hline
+\correction@probs & Sum & grade\\\hline
+\correction@pts &\theassignment@totalpts & \strut\hspace{3cm}\strut\\\hline
+\correction@reached & & \\[.7cm]\hline
+\end{tabular}}
+\endinput
+%%
+%% End of file `assignment.sty'.
diff --git a/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty.ltxml b/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty.ltxml
new file mode 100644
index 00000000000..16f106d105a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/assignment/assignment.sty.ltxml
@@ -0,0 +1,29 @@
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('problem');
+RegisterNamespace('assig'=>"http://omdoc.org/ontology/assignments#");
+RegisterDocumentNamespace('assig'=>"http://omdoc.org/ontology/assignments#");
+DefEnvironment('{assignment} OptionalKeyVals:assig',
+ "<omdoc:omgroup ?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')() "
+ . "assig:dummy='for the namespace'"
+ . "?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:metadata ?#locator(stex:srcref='#locator')()>"
+ . "<dc:title ?#locator(stex:srcref='#locator')()>"
+ . "Assignment ?&KeyVal(#1,'num')(&KeyVal(#1,'num').)()"
+ . "?&KeyVal(#1,'title')((&KeyVal(#1,'title')))"
+ . "</dc:title>"
+ . "?&KeyVal(#1,'given')(<omdoc:meta property='assig:given'>&KeyVal(#1,'given')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'due')(<omdoc:meta property='assig:due'>&KeyVal(#1,'due')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='assig:pts'>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ . "</omdoc:metadata>"
+ . "#body"
+ ."</omdoc:omgroup>\n");
+DefMacro('\includeassignment [] {}','\input{#2}');
+DefConstructor('\CourseTitle{}','');
+DefConstructor('\testheading{}','');
+DefConstructor('\testspace{}','');
+DefConstructor('\testnewpage','');
+DefConstructor('\testemptypage','');
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/beamerthemeJacobs.sty b/Master/texmf-dist/tex/latex/stex/beamerthemeJacobs.sty
new file mode 100644
index 00000000000..7a64c6cc0b8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/beamerthemeJacobs.sty
@@ -0,0 +1,62 @@
+% Beamer Jacobs slide theme; some hints from CXL's DFKI theme included
+%
+% (C) 2009 Michael Kohlhase <m.kohlhase@jacobs-university.de.
+
+\ProvidesPackage{beamerthemeJacobs}
+\typeout{Beamer KWARC theme}
+\author[Kohlhase]{Michael Kohlhase}
+\institute{\texttt{m.kohlhase@jacobs-university.de}\\Computer Science\\ Jacobs University\\Bremen, Germany}
+
+\mode<presentation>
+
+%% Shadings and logo images
+\pgfdeclareimage[height=.5ex,width=113mm]{shade-l2r}{shading-l2r}
+\pgfdeclareimage[height=2ex]{jacobslogo}{jacobs-logo}
+\pgfdeclareimage[height=2ex]{cclogo}{cc_somerights}
+
+%% Headers flushed to the left.
+\setbeamertemplate{frametitle}[default][left]
+
+
+%% Add the line below the header
+\addtobeamertemplate{frametitle}{}{\hspace*{-1cm} %
+ \begin{pgfpicture}{0cm}{0cm}{128mm}{2mm}
+ \pgfputat{\pgforigin}{\pgfbox[left,bottom]{\pgfuseimage{shade-l2r}}}
+ \end{pgfpicture}
+ }
+
+\setbeamertemplate{footline}[text line]{%
+ \usebeamercolor[fg]{titlelike}
+ \strut\hspace*{2cm}\insertshortauthor: \insertshorttitle\hfill{}%
+ \insertframenumber\hfill\insertshortdate\hspace*{3cm}%
+ }
+ \addtobeamertemplate{footline}{ %
+ \begin{pgfpicture}{0cm}{0cm}{128mm}{0mm} %
+ \pgfputat{\pgfpoint{126mm}{1mm}}{\pgfbox[right,top]{\pgfuseimage{jacobslogo}}} %
+ \pgfputat{\pgfpoint{10mm}{1mm}}{\pgfbox[right,top]{\pgfuseimage{cclogo}}} %
+ \end{pgfpicture}}{}
+
+%% Turn off the navigation symbols
+\setbeamertemplate{navigation symbols}{}
+
+%% Inner theme
+\useinnertheme{default}
+
+%% Big logo for the title page.
+%\pgfdeclareimage[height=1cm]{biglogo}{beamer/img/DFKI-SKS}
+%\titlegraphic{\pgfuseimage{biglogo}}
+
+
+\mode
+<all>
+
+%% Redefine various margin sizes
+\setbeamersize{text margin left=3mm}
+\setbeamersize{text margin right=3mm}
+\setlength\leftmargini{1em}
+\setlength\leftmarginii{1em}
+\setlength\leftmarginiii{1em}
+\newcommand{\vstretch}[1]{\vspace*{\stretch{#1}}}
+\beamer@descriptionwidth=1cm
+
+
diff --git a/Master/texmf-dist/tex/latex/stex/cc-by-sa.eps b/Master/texmf-dist/tex/latex/stex/cc-by-sa.eps
new file mode 100644
index 00000000000..fb5a0a662ec
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cc-by-sa.eps
@@ -0,0 +1,506 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (cc-by-sa.eps)
+%%CreationDate: (Thu Dec 20 06:29:52 2007)
+%%BoundingBox: 0 0 88 31
+%%HiResBoundingBox: 0 0 87.989 31
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 88 31
+userdict begin
+DisplayImage
+0 0
+87.989 30.9961
+12.000000
+88 31
+0
+0
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffff000000000000B5BAB4B7BCB6B9BEB8BCC1BBBEC3BEC1C5C0
+C3C8C3C6CAC5C8CCC7C9CDC9CBCECACCCFCBCCD0CCCCD0CCCCCFCBCBCFCACACDC9C8CCC7
+C6CAC5C4C8C3C1C5C0BFC3BEBCC1BBB9BEB9B7BCB6B5BAB4B3B8B2B1B7B0B0B5AFAEB4AD
+ADB3ACADB3ACACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000000000B5BAB4B7BCB6BABFB9
+BDC2BCC0C4BFC3C7C2C6CAC5C9CDC8CBCFCACED1CDD0D3CFD1D4D0D2D5D2D3D6D2D3D6D2
+D2D5D2D1D4D1D0D3CFCED1CDCBCFCBC9CDC8C6CAC5C3C7C2C0C5BFBDC2BCBABFB9B7BCB6
+B5BAB4B3B8B2B1B7B0AFB5AEAEB4ADADB3ACACB2ABACB2ABABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000B7BCB6BABFB9BDC2BCC0C5C0C4C8C3C7CBC7CBCECACED1CDD1D4D0848584434443
+0D0E0D0000000000000000000000000D0E0D434443848684D1D4D0CED2CECBCFCAC8CCC7
+C4C9C4C1C5C0BDC2BDBABFB9B7BCB6B5BAB4B2B8B1B0B6AFAFB5AEAEB3ADADB3ACACB2AB
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA797C79292929000000000000000000000000
+292929797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA797C79292929000000000000000000000000
+292929797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000B9BEB8BDC2BCC0C5C0C4C8C3C8CCC7CCD0CBD0D3CF
+9193911B1B1B000000000000000000000000000000000000000000000000000000000000
+1B1B1B919491D0D3CFCCD0CCC9CDC8C5C9C4C1C5C0BDC2BCB9BEB9B7BCB6B4B9B3B2B7B1
+B0B6AFAEB4ADADB3ACACB2ABACB2ABABB1AAABB1AAABB1AA939893282928000000000000
+404040707070707070404040000000000000282928939893ABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA939893282928000000000000
+404040707070707070404040000000000000282928939893ABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000BCC1BBC0C4BFC4C8C3
+C8CCC7CCD0CCD1D4D0505150000000000000000000101010606060808080BFBFBFBFBFBF
+808080606060101010000000000000000000505150C4C7C3CDD1CCC9CDC8C4C9C4C0C5BF
+BCC1BBB9BEB8B6BBB5B3B8B2B1B7B0AFB5AEAEB3ADADB3ACACB2ABABB1AAABB1AA9FA39E
+0E0E0E000000505050DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF5050500000000E0E0E
+939893ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA9FA39E
+0E0E0E000000505050DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF5050500000000E0E0E
+939893ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000BEC3BEC3C7C2C7CBC7CCD0CBD1D4D0505150000000000000101010808080EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F101010000000000000282928
+C4C7C3CCD0CCC8CCC7C3C7C2BFC3BEBBC0BAB8BDB7B5BAB4B2B7B1B0B6AFAEB4ADADB3AC
+ACB2ABABB1AAABB1AA282928000000606060FFFFFFFFFFFFFFFFFF000000000000FFFFFF
+FFFFFFFFFFFF9F9F9F000000282928ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA282928000000606060FFFFFFFFFFFFE3E3E3C8C7C7C8C7C7E3E3E3
+FFFFFFFFFFFF9F9F9F000000282928ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000C1C5C0C6CAC5CBCECAD0D3CF505150000000000000
+303030DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF303030000000000000505150D0D3CFCBCFCAC6CAC5C1C5C0BDC2BCB9BEB8B6BBB5
+B3B8B2B1B6B0AFB4AEADB3ACACB2ABACB2AB797C79000000505050D6D5D5FFFFFFFFFFFF
+FFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFF505050000000797C79ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA797C79000000505050D6D5D5FFFFFFA3A1A1
+231F20231F20231F20231F20BAB9B9FFFFFFFFFFFF505050000000797C79ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000C3C8C3C8CCC8CED1CD
+919391000000000000303030EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000919491CED2CEC9CDC8
+C4C8C3BFC4BEBBC0BAB7BCB6B4BAB3B2B7B1AFB5AEAEB3ADACB2ABACB2AB292929000000
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+000000292929ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA292929000000
+DFDFDFFFFFFFC8C7C7231F203F3739635F61767374231F20231F20918F8FFFFFFFDFDFDF
+000000292929ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000C6CAC5CBCFCAD1D4D01B1B1B000000101010CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010
+0000001B1B1BD1D4D0CBCFCBC6CAC5C1C5C0BCC1BCB9BEB8B5BAB4B2B8B1B0B6AFAEB4AD
+ADB3ACACB2AB000000404040FFFFFFFFFFFFFFFFFFFFFFFF606060000000000000606060
+FFFFFFFFFFFFFFFFFFFFFFFF404040000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AA000000404040FFFFFFF1F1F19F969A231F208E878BFFFFFFFFFFFF9E9D9D
+231F20312D2EFFFFFFFFFFFF404040000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000C8CCC7CDD1CD848584000000000000808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F000000000000848684CED1CDC8CCC7C3C7C2BEC2BDBABFB9
+B6BBB5B3B8B2B1B6B0AEB4ADADB3ACACB2AB000000707070FFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF707070000000ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000707070FFFFFFF1F1F1242424231F20
+282828FFFFFFFFFFFFE3E3E3231F20231F20E8E7E7FFFFFF707070000000ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000C9CDC9CFD3CF434443
+000000101010EFEFEFFFFFFFFFFFFFBFBFBF505050404040404040808080FFFFFFFFFFFF
+BFBFBF5050504040404040408F8F8FFFFFFFFFFFFFFFFFFF101010000000434443D0D3CF
+CACDC9C4C8C3BFC4BEBBC0BAB7BCB6B4B9B3B1B7B0AFB4AEADB3ACACB2AB000000707070
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+707070000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000707070
+FFFFFFFFFFFFB5B5B52D2D2DBFBFBFFFFFFFFFFFFFE3E3E3231F20231F20E0DFE0FFFFFF
+707070000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000CBCECAD1D4D00D0E0D000000606060FFFFFFFFFFFFBFBFBF000000000000000000
+000000000000404040AFAFAF000000000000000000000000000000606060FFFFFFFFFFFF
+6060600000000D0E0DD1D4D1CBCFCAC5C9C4C0C5BFBBC0BBB8BDB7B4BAB3B1B7B0AFB5AE
+ADB3ACACB2AB000000404040FFFFFFFFFFFFFFFFFFFFFFFF606060000000000000606060
+FFFFFFFFFFFFFFFFFFFFFFFF404040000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AA000000404040FFFFFFFFFFFFBAB9B9A3A1A1C9C8C8FFFFFFFFFFFFACABAB
+231F20231F20FFFFFFFFFFFF404040000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000CCCFCBD2D5D10000000000008F8F8FFFFFFFFFFFFF
+303030000000202020DFDFDFBFBFBF2020209F9F9F303030000000303030DFDFDFAFAFAF
+2020209F9F9FFFFFFFFFFFFF9F9F9F000000000000D2D5D2CCCFCBC6CAC5C1C5C0BCC1BB
+B8BDB7B5BAB4B2B7B1AFB5AEADB3ACACB2AB292929000000DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000292929ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA292929000000DFDFDFFFFFFF9E9D9D231F20
+231F208481828481822A2727231F20989697FFFFFFDFDFDF000000292929ABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000CCD0CBD3D6D2000000
+000000BFBFBFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFFFFFFFFFF000000
+000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000D3D6D2
+CCD0CCC6CAC6C1C5C0BCC1BBB8BDB7B5BAB4B2B7B1AFB5AEADB3ACACB2AB797C79000000
+505050FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFF505050
+000000797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA797C79000000
+505050FFFFFFFFFFFF848182231F20231F20231F20231F206E6C6CF1F1F1FFFFFF505050
+000000797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000CCD0CBD3D6D2000000000000BFBFBFFFFFFFFFFFFF000000000000808080FFFFFF
+FFFFFFFFFFFFFFFFFF000000000000808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF000000000000D3D6D2CCD0CCC6CAC6C1C5C0BCC1BBB8BDB7B5BAB4B2B7B1AFB5AE
+ADB3ACACB2ABABB1AA282928000000606060FFFFFFFFFFFFFFFFFF000000000000FFFFFF
+FFFFFFFFFFFF707070000000282928ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA282928000000606060FFFFFFFFFFFFCBCACBACABABACABABD6D5D5
+FFFFFFFFFFFF707070000000282928ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000CCCFCBD2D5D10000000000008F8F8FFFFFFFFFFFFF
+303030000000202020EFEFEFCFCFCF202020808080303030000000303030EFEFEFCFCFCF
+202020808080FFFFFFFFFFFF9F9F9F000000000000D2D5D2CCCFCBC6CAC5C1C5C0BCC1BB
+B8BDB7B5BAB4B2B7B1AFB5AEADB3ACACB2ABABB1AA9FA39E0E0E0E000000505050DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF5050500000000E0E0E939893ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA9FA39E0E0E0E000000505050DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF5050500000000E0E0E939893ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000CBCECAD1D4D00D0E0D
+000000606060FFFFFFFFFFFFAFAFAF000000000000000000000000000000606060AFAFAF
+000000000000000000000000000000606060FFFFFFFFFFFF7070700000000D0E0DD1D4D0
+CBCECAC5C9C4C0C5BFBBC0BBB8BDB7B4BAB3B1B7B0AFB5AEADB3ACACB2ABABB1AAABB1AA
+9FA39E282928000000000000303030606060707070303030000000000000282928939893
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+9FA39E282928000000000000303030606060707070303030000000000000282928939893
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000C9CDC9CFD3CF505150000000101010FFFFFFFFFFFFFFFFFFBFBFBF505050404040
+404040808080FFFFFFFFFFFFAFAFAF404040404040404040808080FFFFFFFFFFFFFFFFFF
+202020000000434443D0D3CFC9CDC9C4C8C3BFC4BEBABFBAB7BCB6B4B9B3B1B7B0AFB4AE
+ADB3ACACB2ABABB1AAABB1AAABB1AAABB1AA797C79292929000000000000000000000000
+292929797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA797C79292929000000000000000000000000
+292929797C79ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000C8CCC7CDD1CD9193910000000000008F8F8FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F000000000000848684CED1CDC8CCC7C2C7C2BEC2BDB9BEB9
+B6BBB5B3B8B2B0B6AFAEB4ADADB3ACACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000C5C9C5CBCFCAD1D4D0
+1B1B1B000000101010DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010100000001B1B1BD1D4D0CBCFCB
+C6CAC5C1C5C0BCC1BCB9BEB8B5BAB4B2B8B1B0B6AFAEB4ADADB3ACACB2ABABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000C3C8C3C8CCC8CED1CD9EA09D000000000000303030EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000
+000000919391CED1CDC9CDC8C3C8C3BFC3BEBBC0BAB7BCB6B4B9B3B2B7B1AFB5AEAEB3AD
+ACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA0000000000000000007C7F7CCBCECAD0D3CF5D5E5D000000000000
+303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF303030000000000000505150D0D3CFCBCECA828582000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000070726F
+CCCFCBD0D4D0505150000000000000101010808080EFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF808080101010000000000000353635D1D4D0CCD0CB7C7F7C000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000007D7F7CCCD0CCD0D4D05D5E5D000000000000000000101010
+606060808080BFBFBFBFBFBF808080606060101010000000000000000000505150D1D4D0
+CDD0CC969996000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000FFFFFF000000
+000000000000FFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000FFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000007D7F7CCCCFCBD0D3CF
+9EA09D1B1B1B000000000000000000000000000000000000000000000000000000000000
+1B1B1B919391D0D3CFCCD0CB969996000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFF000000000000
+FFFFFF000000000000FFFFFF000000FFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFF000000000000
+000000000000FFFFFF000000000000FFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000070726FCBCECACED1CDD1D4D09193914344430D0E0D000000000000000000
+0000000D0E0D434443919491D1D4D0CED1CDCBCECA7C7F7C000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFF000000000000000000000000FFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000323331AFB2AFCBCFCACDD1CDCFD3CF
+D1D4D0D2D5D1D3D6D2D3D6D2D2D5D1D1D4D0D0D3CFCED1CDCBCFCBB0B3AF3E3F3E000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFF000000000000FFFFFF000000000000000000
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFF000000FFFFFF000000
+000000FFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000003E3F3E898C89BCC0BCCBCECACCCFCBCCD0CBCCD0CBCCCFCBCBCECABCC0BC898C89
+3E3F3E000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+000000000000000000000000FFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+000000000000FFFFFF000000000000FFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffff
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/stex/cc-by-sa.png b/Master/texmf-dist/tex/latex/stex/cc-by-sa.png
new file mode 100644
index 00000000000..f0a944e0b89
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cc-by-sa.png
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/cc_somerights.eps b/Master/texmf-dist/tex/latex/stex/cc_somerights.eps
new file mode 100644
index 00000000000..e9dc0ed4094
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cc_somerights.eps
@@ -0,0 +1,506 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (cc_somerights.eps)
+%%CreationDate: (Mon Nov 14 10:32:11 2005)
+%%BoundingBox: 0 0 88 31
+%%HiResBoundingBox: 0 0 88 31
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 88 31
+userdict begin
+DisplayImage
+0 0
+88 31
+12.000000
+88 31
+0
+0
+ffffff000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffff000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACADB2AC
+AEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8BCC0BCBCC0BC
+C0C4BFC0C4BFC0C4BFC5C9C4C5C9C4C5C9C4C9CDC8C9CDC8C9CDC8CDD0CCCDD0CCCDD0CC
+CDD0CCCDD0CCCDD0CCCDD0CCCDD0CCC9CDC8C9CDC8C9CDC8C9CDC8C5C9C4C5C9C4C0C4BF
+C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFB0B6AF
+AEB4ADAEB4ADADB2ACADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2AB
+ACB2ABADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB0B6AFB2B7B1B5BAB4B5BAB4B8BDB8
+B8BDB8B8BDB8BCC0BCC0C4BFC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8C9CDC8CDD0CC
+CDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCC9CDC8
+C9CDC8C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFC0C4BFBCC0BCB8BDB8B8BDB8B8BDB8B5BAB4
+B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2ABACB2AB
+ACB2ABABB1AAACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2AB
+ACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1
+B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8
+C9CDC8CDD0CCCDD0CCCDD0CCB5BAB4565756000000000000000000000000202020565756
+B5BAB4CDD0CCCDD0CCCDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BC
+BCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2AC
+ADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACADB2ACAEB4AD
+AEB4ADB0B6AFB0B6AFB2B7B1B2B7B1B5BAB4B8BDB8B8BDB8B8BDB8BCC0BCC0C4BFC0C4BF
+C5C9C4C5C9C4C5C9C4C9CDC8CDD0CCCDD0CCCDD0CC565756000000000000202020404040
+7C7C7C4040400000000000000000007C7C7CC9CDC8CDD0CCCDD0CCCDD0CCC9CDC8C5C9C4
+C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCB8BDB8B8BDB8B8BDB8B5BAB4B2B7B1B2B7B1B0B6AF
+B0B6AFAEB4ADAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2AB
+ADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B5BAB4B8BDB8
+BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CC565756000000
+202020969796FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABB1AA000000000000565756CDD0CC
+CDD0CCCDD0CCCDD0CCC9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8B8BDB8
+B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACACB2ABACB2ABACB2AB
+ACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2AB
+ACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1
+B5BAB4B5BAB4B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CC
+CDD0CC7C7C7C000000404040EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D5D7D52020200000007C7C7CCDD0CCCDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C5C9C4C0C4BF
+C0C4BFBCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4AD
+ADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4AD
+AEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B8BDB8B8BDB8B8BDB8BCC0BCC0C4BFC0C4BFC5C9C4
+C5C9C4C9CDC8C9CDC8CDD0CCC5C9C4000000000000C5C9C4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5D7D5000000000000C5C9C4CDD0CCCDD0CCC9CDC8
+C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8B5BAB4B5BAB4B2B7B1B2B7B1
+B0B6AFAEB4ADAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2AB
+ADB2ACADB2ACAEB4ADAEB4ADB0B6AFB0B6AFB2B7B1B2B7B1B5BAB4B8BDB8B8BDB8BCC0BC
+BCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8CDD0CCCDD0CC7C7C7C0000007C7C7CFFFFFF
+EFEFEF9697967C7C7CBCC0BCFFFFFFD5D7D57C7C7C7C7C7CD5D7D5FFFFFF565756000000
+7C7C7CD5D7D5CDD0CCCDD0CCC9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8
+B8BDB8B5BAB4B2B7B1B2B7B1B0B6AFB0B6AFAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2AB
+ACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2AB
+ACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4
+B5BAB4B5BAB4B8BDB8BCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCD5D7D5
+404040000000CDD0CCFFFFFF2020200000000000000000007C7C7C202020000000202020
+202020D5D7D5C5C9C4000000565756D5D7D5CDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C5C9C4
+C0C4BFBCC0BCBCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4AD
+ADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACADB2ACAEB4ADAEB4AD
+B0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8BCC0BCBCC0BCC0C4BFC5C9C4C5C9C4
+C9CDC8C9CDC8CDD0CCCDD0CC404040000000FFFFFFC0C4BF0000007C7C7CFFFFFF969796
+7C7C7C000000ABB1AAC9CDC8BCC0BCFFFFFFFFFFFF000000404040CDD0CCCDD0CCCDD0CC
+C9CDC8C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCB8BDB8B5BAB4B5BAB4B5BAB4B2B7B1
+B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2ABACB2ABABB1AAACB2AB
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABABB1AAACB2ABACB2ABACB2ABACB2AB
+AEB4ADADB2ACAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B5BAB4B8BDB8BCC0BC
+C0C4BFC0C4BFC0C4BFC5C9C4C9CDC8C9CDC8CDD0CCC9CDC8404040000000FFFFFFC0C4BF
+0000007C7C7CFFFFFFD5D7D57C7C7C000000BCC0BCFFFFFFD5D7D5FFFFFFFFFFFF000000
+404040D5D7D5CDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C5C9C4C0C4BFBCC0BCBCC0BCB8BDB8
+B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2AB
+ACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2AB
+ACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4
+B5BAB4B8BDB8B8BDB8BCC0BCBCC0BCC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CC
+404040000000D5D7D5EFEFEF2020200000007C7C7C000000404040000000404040404040
+000000EFEFEFD5D7D5000000404040CDD0CCCDD0CCCDD0CCCDD0CCC9CDC8C5C9C4C5C9C4
+C0C4BFC0C4BFBCC0BCB8BDB8B5BAB4B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4AD
+ADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACAEB4ADAEB4ADAEB4AD
+B0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B5BAB4B8BDB8BCC0BCC0C4BFC0C4BFC5C9C4C5C9C4
+C9CDC8C9CDC8CDD0CCC9CDC87C7C7C000000969796FFFFFFB8BDB85657564040407C7C7C
+FFFFFF7C7C7C404040404040ADB2ACFFFFFF9697960000007C7C7CD5D7D5CDD0CCCDD0CC
+C9CDC8C9CDC8C5C9C4C5C9C4C0C4BFBCC0BCBCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1
+B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABACB2AB
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABADB2AC
+ADB2ACADB2ACAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8BCC0BC
+BCC0BCC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CCB5BAB4000000202020EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF202020000000
+B5BAB4CDD0CCCDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8
+B5BAB4B5BAB4B5BAB4B2B7B1B0B6AFB0B6AFAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2AB
+ACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2AB
+ACB2ABACB2ABACB2ABACB2ABAEB4ADADB2ACAEB4ADAEB4ADB0B6AFB0B6AFB2B7B1B2B7B1
+B5BAB4B5BAB4B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8CDD0CCCDD0CC
+D5D7D5565756000000565756FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF565756000000565756CDD0CCD5D7D5CDD0CCCDD0CCC9CDC8C5C9C4C5C9C4C5C9C4
+C0C4BFBCC0BCBCC0BCB8BDB8B8BDB8B5BAB4B2B7B1B2B7B1B0B6AFB0B6AFAEB4ADAEB4AD
+ADB2ACADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACAEB4ADAEB4AD
+AEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4
+C5C9C4C9CDC8C9CDC8CDD0CCCDD0CCC5C9C4202020000000404040D5D7D5FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD5D7D5404040000000202020C9CDC8D5D7D5CDD0CCCDD0CCCDD0CC
+C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8B5BAB4B5BAB4B2B7B1B2B7B1
+B0B6AFAEB4ADAEB4ADAEB4ADADB2ACAEB4ADACB2ABACB2ABACB2ABACB2ABACB2ABABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2AB
+ADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8
+BCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CCD5D7D5C9CDC8202020
+000000000000565756969796BCC0BC7C7C7C565756000000000000404040C5C9C4D5D7D5
+CDD0CCCDD0CCCDD0CCC9CDC8C5C9C4C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCB8BDB8B8BDB8
+B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACADB2ACACB2ABACB2AB
+ACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2AB
+ACB2ABACB2ABACB2ABACB2ABACB2ABADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1
+B5BAB4B5BAB4B8BDB8B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8
+CDD0CCCDD0CCCDD0CCD5D7D57C7C7C202020000000000000000000000000000000202020
+7C7C7CD5D7D5CDD0CCCDD0CCCDD0CCCDD0CCC9CDC8C9CDC8C5C9C4C5C9C4C0C4BFC0C4BF
+BCC0BCBCC0BCB8BDB8B8BDB8B5BAB4B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4AD
+ADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA
+ABB1AAABB1AAACB2ABABB1AAACB2ABACB2ABACB2ABACB2ABADB2ACADB2ACADB2ACAEB4AD
+AEB4ADB0B6AFB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8B8BDB8BCC0BCC0C4BFC0C4BF
+C5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CCABB1AA969796
+565756969796ABB1AAD5D7D5CDD0CCD5D7D5CDD0CCCDD0CCCDD0CCCDD0CCC9CDC8C9CDC8
+C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCB8BDB8B8BDB8B8BDB8B5BAB4B2B7B1B2B7B1B0B6AF
+B0B6AFAEB4ADAEB4ADADB2ACADB2ACADB2ACACB2ABACB2ABACB2ABACB2ABACB2ABABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000000000ABB1AAABB1AAABB1AA
+ABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAACB2ABACB2ABACB2ABACB2ABACB2AB
+ACB2ABADB2ACADB2ACAEB4ADAEB4ADAEB4ADB0B6AFB2B7B1B2B7B1B5BAB4B5BAB4B8BDB8
+B8BDB8BCC0BCBCC0BCC0C4BFC0C4BFC5C9C4C5C9C4C9CDC8C9CDC8CDD0CCCDD0CCCDD0CC
+CDD0CCCDD0CCCDD0CCCDD0CCD5D7D5D5D7D5CDD0CCCDD0CCCDD0CCCDD0CCCDD0CCCDD0CC
+CDD0CCC9CDC8C9CDC8C5C9C4C5C9C4C0C4BFC0C4BFBCC0BCBCC0BCB8BDB8B8BDB8B5BAB4
+B5BAB4B2B7B1B2B7B1B0B6AFAEB4ADAEB4ADAEB4ADADB2ACAEB4ADACB2ABACB2ABACB2AB
+ACB2ABACB2ABABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AAABB1AA000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000969796FFFFFFFFFFFF7C7C7C202020CDD0CC
+FFFFFFD5D7D5202020FFFFFFFFFFFF404040404040FFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFF7C7C7C000000000000FFFFFFFFFFFFFFFFFFADB2AC000000FFFFFF404040565756
+FFFFFFFFFFFFBCC0BC202020FFFFFF7C7C7C404040FFFFFF7C7C7CFFFFFFFFFFFFFFFFFF
+969796FFFFFFFFFFFF7C7C7C000000000000404040FFFFFFFFFFFFFFFFFF7C7C7C404040
+FFFFFFFFFFFFFFFFFF404040969796FFFFFFFFFFFF7C7C7C7C7C7CFFFFFFFFFFFFFFFFFF
+404040FFFFFFFFFFFFFFFFFF7C7C7CD5D7D57C7C7C404040FFFFFF565756FFFFFFFFFFFF
+FFFFFF404040FFFFFFFFFFFFFFFFFF7C7C7C000000000000000000404040FFFFFF969796
+565756FFFFFF7C7C7CFFFFFF000000FFFFFF7C7C7CFFFFFFFFFFFF565756565756FFFFFF
+FFFFFF000000FFFFFF404040000000000000000000000000FFFFFF404040565756FFFFFF
+000000FFFFFF404040FFFFFF969796000000FFFFFF404040FFFFFF7C7C7C404040FFFFFF
+000000404040FFFFFF000000FFFFFF969796565756FFFFFF000000000000404040FFFFFF
+000000969796FFFFFF404040FFFFFF000000000000000000FFFFFF969796565756FFFFFF
+7C7C7CFFFFFF000000000000404040FFFFFF000000969796FFFFFFB2B7B1EFEFEF565756
+EFEFEF404040FFFFFF000000000000000000FFFFFF404040565756FFFFFF000000000000
+000000202020969796FFFFFF2020204040407C7C7CFFFFFF000000FFFFFF7C7C7CFFFFFF
+BCC0BC7C7C7C7C7C7CBCC0BCFFFFFF000000FFFFFF404040000000000000000000000000
+FFFFFF404040404040FFFFFF000000FFFFFF404040FFFFFF7C7C7C0000007C7C7C202020
+FFFFFF7C7C7C404040FFFFFF000000404040FFFFFF000000969796FFFFFF202020404040
+000000000000404040FFFFFF0000007C7C7CFFFFFF404040FFFFFF000000000000000000
+969796FFFFFF2020204040407C7C7CFFFFFF000000000000404040FFFFFF0000007C7C7C
+FFFFFF7C7C7CEFEFEF7C7C7CEFEFEF404040FFFFFF000000000000000000FFFFFF404040
+404040FFFFFF000000000000000000000000202020FFFFFFFFFFFF4040407C7C7CFFFFFF
+000000FFFFFF7C7C7CFFFFFF969796FFFFFFFFFFFF969796FFFFFF000000FFFFFFFFFFFF
+FFFFFF404040000000000000FFFFFFFFFFFFFFFFFFADB2AC000000FFFFFF404040FFFFFF
+7C7C7C7C7C7C7C7C7C202020FFFFFFFFFFFFFFFFFFFFFFFF000000404040FFFFFF000000
+404040FFFFFFFFFFFF202020000000000000404040FFFFFFFFFFFFEFEFEF7C7C7C404040
+FFFFFFFFFFFFFFFFFF000000202020FFFFFFFFFFFF4040407C7C7CFFFFFFFFFFFFFFFFFF
+404040FFFFFFFFFFFFFFFFFF7C7C7C404040FFFFFFABB1AAEFEFEF404040FFFFFFFFFFFF
+FFFFFF000000FFFFFF404040404040FFFFFF000000000000000000202020404040202020
+969796D5D7D57C7C7CFFFFFF000000FFFFFF7C7C7CFFFFFF7C7C7CD5D7D5D5D7D57C7C7C
+FFFFFF000000FFFFFF404040000000000000000000000000FFFFFF7C7C7C7C7C7CD5D7D5
+000000FFFFFF404040FFFFFF7C7C7CFFFFFFFFFFFF404040FFFFFF7C7C7C404040FFFFFF
+000000404040FFFFFF000000202020404040969796EFEFEF000000000000404040FFFFFF
+404040FFFFFF969796404040FFFFFF000000000000000000404040202020969796D5D7D5
+7C7C7CFFFFFF000000000000404040FFFFFF404040FFFFFF969796000000FFFFFFD5D7D5
+565756404040FFFFFF000000000000000000FFFFFF404040404040FFFFFF000000000000
+000000404040FFFFFF7C7C7C404040FFFFFF7C7C7CFFFFFF000000FFFFFF7C7C7CFFFFFF
+404040FFFFFFFFFFFF404040FFFFFF000000FFFFFF404040000000000000000000000000
+FFFFFF404040404040FFFFFF000000FFFFFF404040FFFFFF7C7C7C000000FFFFFF404040
+FFFFFF7C7C7C404040FFFFFF000000404040FFFFFF000000FFFFFF7C7C7C404040FFFFFF
+000000000000404040FFFFFF0000007C7C7CFFFFFF404040FFFFFF000000000000000000
+FFFFFF7C7C7C404040FFFFFF7C7C7CFFFFFF000000000000404040FFFFFF0000007C7C7C
+FFFFFF000000EFEFEFFFFFFF404040404040FFFFFF000000000000000000FFFFFF404040
+404040FFFFFF000000000000000000202020969796FFFFFFFFFFFFD5D7D5565756EFEFEF
+FFFFFFEFEFEF565756FFFFFF404040BCC0BCCDD0CC404040FFFFFF000000FFFFFFFFFFFF
+FFFFFF404040000000000000FFFFFF404040404040FFFFFF000000FFFFFF404040969796
+FFFFFFFFFFFFFFFFFF404040FFFFFF7C7C7C404040FFFFFF000000404040FFFFFF000000
+969796FFFFFFFFFFFFD5D7D5000000000000404040FFFFFF0000007C7C7CFFFFFF404040
+FFFFFFFFFFFFFFFFFF202020969796FFFFFFFFFFFFD5D7D57C7C7CFFFFFFFFFFFFFFFFFF
+404040FFFFFF0000007C7C7CFFFFFF000000C0C4BFFFFFFF000000404040FFFFFFFFFFFF
+FFFFFF202020FFFFFFFFFFFFFFFFFF7C7C7C0000000000000000000000000000007C7C7C
+7C7C7C2020200000005657567C7C7C5657560000007C7C7C202020565756565756202020
+7C7C7C0000007C7C7C7C7C7C7C7C7C4040400000000000007C7C7C2020200000007C7C7C
+2020207C7C7C2020202020207C7C7C5657565657562020205657564040402020207C7C7C
+0000002020207C7C7C0000000000007C7C7C7C7C7C2020200000000000002020207C7C7C
+0000002020207C7C7C2020207C7C7C7C7C7C7C7C7C2020200000007C7C7C7C7C7C202020
+4040407C7C7C7C7C7C7C7C7C2020207C7C7C0000002020207C7C7C0000004040407C7C7C
+0000002020207C7C7C7C7C7C7C7C7C2020207C7C7C7C7C7C7C7C7C202020000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/stex/cc_somerights.jpg b/Master/texmf-dist/tex/latex/stex/cc_somerights.jpg
new file mode 100644
index 00000000000..f945b897622
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cc_somerights.jpg
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/cc_somerights.pdf b/Master/texmf-dist/tex/latex/stex/cc_somerights.pdf
new file mode 100644
index 00000000000..2bb2c99eb89
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cc_somerights.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty b/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty
new file mode 100644
index 00000000000..90b215dd2ab
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty
@@ -0,0 +1,450 @@
+%%
+%% This is file `cmathml.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cmathml.dtx (with options: `sty')
+%%
+\RequirePackage{presentation}
+\newcommand{\Capply}[3][]{#2(#3)}
+\def\CMathML@cn#1{#1}
+\newcommand{\Ccn}[2][]{\CMathML@cn{#2}}
+\def\CMathML@ci#1{#1}
+\newcommand{\Cci}[2][]{\CMathML@ci{#2}}
+\def\CMathML@csymbol#1{#1}
+\newcommand{\Ccsymbol}[2][]{\CMathML@csymbol{#2}}
+\def\CMathML@ccinterval#1#2{[#1,#2]}
+\newcommand{\Cccinterval}[3][]{\CMathML@ccinterval{#2}{#3}}
+\def\CMathML@cointerval#1#2{[#1,#2)}
+\newcommand{\Ccointerval}[3][]{\CMathML@cointerval{#2}{#3}}
+\def\CMathML@ocinterval#1#2{(#1,#2]}
+\newcommand{\Cocinterval}[3][]{\CMathML@ocinterval{#2}{#3}}
+\def\CMathML@oointerval#1#2{(#1,#2)}
+\newcommand{\Coointerval}[3][]{\CMathML@oointerval{#2}{#3}}
+\newcommand{\Cinverse}[2][]{#2^{-1}}
+\def\CMathML@lambda#1#2{\lambda({#1},{#2})}
+\newcommand{\Clambda}[3][]{\CMathML@lambda{#2}{#3}}
+\def\CMathML@lambdaDA#1#2#3{\lambda({#1}\colon{#2},#3)}
+\newcommand{\ClambdaDA}[4][]{\CMathML@lambdaDA{#2}{#3}{#4}}
+\def\CMathML@restrict#1#2{\left.#1\right|_{#2}}
+\newcommand{\Crestrict}[3][]{\CMathML@restrict{#2}{#3}}
+\def\CMathML@composeOp{\circ}
+\newcommand{\CcomposeOp}{\CMathML@composeOp}
+\def\CMathML@compose#1{\assoc[p=500,pi=500]{\CMathML@composeOp}{#1}}
+\newcommand{\Ccompose}[2][]{\CMathML@compose{#2}}
+\def\CMathML@ident#1{\mathrm{id}}
+\newcommand{\Cident}[1][]{\CMathML@ident{#1}}
+\def\CMathML@domain#1{\mbox{dom}(#1)}
+\newcommand{\Cdomain}[2][]{\CMathML@domain{#2}}
+\def\CMathML@codomain#1{\mbox{codom}(#1)}
+\newcommand{\Ccodomain}[2][]{\CMathML@codomain{#2}}
+\def\CMathML@image#1{{\mathbf{Im}}(#1)}
+\newcommand{\Cimage}[2][]{\CMathML@image{#2}}
+\def\CMathML@piecewise#1{\left\{\begin{array}{ll}#1\end{array}\right.}
+\newcommand{\Cpiecewise}[2][]{\CMathML@piecewise{#2}}
+\def\CMathML@piece#1#2{#1&{\mathrm{if}}\;{#2}\\}
+\newcommand{\Cpiece}[3][]{\CMathML@piece{#2}{#3}}
+\def\CMathML@otherwise#1{#1&else\\}
+\newcommand{\Cotherwise}[2][]{\CMathML@otherwise{#2}}
+\def\CMathML@quotient#1#2{\frac{#1}{#2}}
+\newcommand{\Cquotient}[3][]{\CMathML@quotient{#2}{#3}}
+\def\CMathML@factorialOp{!}
+\newcommand{\CfactorialOp}{\CMathML@factorialOp}
+\def\CMathML@factorial#1{#1{\CMathML@factorialOp}}
+\newcommand{\Cfactorial}[2][]{\CMathML@factorial{#2}}
+\def\CMathML@divideOp{\div}
+\newcommand{\CdivideOp}{\CMathML@divideOp}
+\def\CMathML@divide#1#2{\infix[p=400]{\CMathML@divideOp}{#1}{#2}}
+\newcommand{\Cdivide}[3][]{\CMathML@divide{#2}{#3}}
+\def\CMathML@maxOp{\mathrm{max}}
+\newcommand{\CmaxOp}{\CMathML@maxOp}
+\def\CMathML@max#1{{\CMathML@maxOp}(#1)}
+\newcommand{\Cmax}[2][]{\CMathML@max{#2}}
+\def\CMathML@minOp{\mathrm{min}}
+\newcommand{\CminOp}{\CMathML@minOp}
+\def\CMathML@min#1{{\CMathML@minOp}(#1)}
+\newcommand{\Cmin}[2][]{\CMathML@min{#2}}
+\def\CMathML@minusOp{-}
+\newcommand{\CminusOp}{\CMathML@minusOp}
+\def\CMathML@minus#1#2{\infix[p=500]{\CMathML@minusOp}{#1}{#2}}
+\newcommand{\Cminus}[3][]{\CMathML@minus{#2}{#3}}
+\def\CMathML@uminus#1{\prefix[p=200]{\CMathML@minusOp}{#1}}
+\newcommand{\Cuminus}[2][]{\CMathML@uminus{#2}}
+\def\CMathML@plusOp{+}
+\newcommand{\CplusOp}{\CMathML@plusOp}
+\def\CMathML@plus#1{\assoc[p=500]{\CMathML@plusOp}{#1}}
+\newcommand{\Cplus}[2][]{\CMathML@plus{#2}}
+\def\CMathML@power#1#2{\infix[p=200]{^}{#1}{#2}}
+\newcommand{\Cpower}[3][]{\CMathML@power{#2}{#3}}
+\def\CMathML@remOp{\bmod}
+\newcommand{\CremOp}{\CMathML@remOp}
+\def\CMathML@rem#1#2{#1 \CMathML@remOp #2}
+\newcommand{\Crem}[3][]{\CMathML@rem{#2}{#3}}
+\def\CMathML@timesOp{\cdot}
+\newcommand{\CtimesOp}{\CMathML@timesOp}
+\def\CMathML@times#1{\assoc[p=400]{\CMathML@timesOp}{#1}}
+\newcommand{\Ctimes}[2][]{\CMathML@times{#2}}
+\def\CMathML@rootOp{\sqrt}
+\newcommand{\CrootOp}{\CMathML@rootOp{}}
+\def\CMathML@root#1#2{\CMathML@rootOp[#1]{#2}}
+\newcommand{\Croot}[3][]{\CMathML@root{#2}{#3}}
+\def\CMathML@gcd#1{\gcd(#1)}
+\newcommand{\Cgcd}[2][]{\CMathML@gcd{#2}}
+\def\CMathML@andOp{\wedge}
+\newcommand{\CandOp}{\CMathML@andOp}
+\def\CMathML@and#1{\assoc[p=400]{\CMathML@andOp}{#1}}
+\newcommand{\Cand}[2][]{\CMathML@and{#2}}
+\def\CMathML@orOp{\vee}
+\newcommand{\CorOp}{\CMathML@orOp}
+\def\CMathML@or#1{\assoc[p=500]{\CMathML@orOp}{#1}}
+\newcommand{\Cor}[2][]{\CMathML@or{#2}}
+\def\CMathML@xorOp{\oplus}
+\newcommand{\CxorOp}{\CMathML@xorOp}
+\def\CMathML@xor#1{\assoc[p=400]{\CMathML@xorOp}{#1}}
+\newcommand{\Cxor}[2][]{\CMathML@xor{#2}}
+\def\CMathML@notOp{\neg}
+\newcommand{\CnotOp}{\CMathML@notOp}
+\def\CMathML@not#1{\CMathML@notOp{#1}}
+\newcommand{\Cnot}[2][]{\CMathML@not{#2}}
+\def\CMathML@impliesOp{\Longrightarrow}
+\newcommand{\CimpliesOp}{\CMathML@impliesOp}
+\def\CMathML@implies#1#2{#1\CMathML@impliesOp{#2}}
+\newcommand{\Cimplies}[3][]{\CMathML@implies{#2}{#3}}
+\def\CMathML@AndDA#1#2{\bigwedge_{#1}{#2}} % set, scope
+\newcommand{\CAndDA}[3][]{\CMathML@AndDA{#2}{#3}}
+\def\CMathML@AndCond#1#2#3{\bigwedge_{#2}{#3}} % bvars,condition, scope
+\newcommand{\CAndCond}[4][]{\CMathML@AndCond{#2}{#2}{#3}}
+\def\CMathML@OrDA#1#2{\bigvee_{#1}{#2}} % set, scope
+\newcommand{\COrDa}[3][]{\CMathML@OrDA{#2}{#3}}
+\def\CMathML@OrCond#1#2#3{\bigvee_{#2}{#3}}% bvars,condition, scope
+\newcommand{\COrCond}[4][]{\CMathML@OrCond{#2}{#3}{#4}}
+\def\CMathML@XorDA#1#2{\bigoplus_{#1}{#2}} % set, scope
+\newcommand{\CXorDA}[3][]{\CMathML@XorDA{#2}{#3}}
+\def\CMathML@XorCond#1#2#3{\bigoplus_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CXorCond}[4][]{\CMathML@XorCond{#2}{#3}{#4}}
+\def\CMathML@forall#1#2{\forall{#1}\colon{#2}}
+\newcommand{\Cforall}[3][]{\CMathML@forall{#2}{#3}}
+\def\CMathML@forallCond#1#2#3{\forall{#1},{#2}\colon{#3}} % list), condition, scope
+\newcommand{\CforallCond}[4][]{\CMathML@forallCond{#2}{#3}{#4}}
+\def\CMathML@exists#1#2{\exists{#1}\colon{#2}}
+\newcommand{\Cexists}[3][]{\CMathML@exists{#2}{#3}}
+\def\CMathML@esistsCont#1#2#3{\exists{#1},{#2}\colon{#3}}
+\newcommand{\CexistsCond}[4][]{\CMathML@esistsCont{#2}{#3}{#4}}
+\def\CMathML@abs#1{\left|#1\right|}
+\newcommand{\Cabs}[2][]{\CMathML@abs{#2}}
+\def\CMathML@conjugate#1{\overline{#1}}
+\newcommand{\Cconjugate}[2][]{\CMathML@conjugate{#2}}
+\def\CMathML@arg#1{\angle #1}
+\newcommand{\Carg}[2][]{\CMathML@arg{#2}}
+\def\CMathML@real#1{\Re #1}
+\newcommand{\Creal}[2][]{\CMathML@real{#2}}
+\def\CMathML@imaginary#1{\Im #1}
+\newcommand{\Cimaginary}[2][]{\CMathML@imaginary{#2}}
+\def\CMathML@lcm#1{\mbox{lcm}(#1)}
+\newcommand{\Clcm}[2][]{\CMathML@lcm{#2}}
+\def\CMathML@floor#1{\left\lfloor{#1}\right\rfloor}
+\newcommand{\Cfloor}[2][]{\CMathML@floor{#2}}
+\def\CMathML@ceiling#1{\left\lceil{#1}\right\rceil}
+\newcommand{\Cceiling}[2][]{\CMathML@ceiling{#2}}
+\def\CMathML@eqOp{=}
+\newcommand{\CeqOp}{\CMathML@eqOp}
+\def\CMathML@eq#1{\assoc[p=700]{\CMathML@eqOp}{#1}}
+\newcommand{\Ceq}[2][]{\CMathML@eq{#2}}
+\def\CMathML@neqOp{\neq}
+\newcommand{\CneqOp}{\CMathML@neqOp}
+\def\CMathML@neq#1#2{\infix[p=700]{\CMathML@neqOp}{#1}{#2}}
+\newcommand{\Cneq}[3][]{\CMathML@neq{#2}{#3}}
+\def\CMathML@gtOp{>}
+\newcommand{\CgtOp}{\CMathML@gtOp}
+\def\CMathML@gt#1{\assoc[p=700]{\CMathML@gtOp}{#1}}
+\newcommand{\Cgt}[2][]{\CMathML@gt{#2}}
+\def\CMathML@ltOp{<}
+\newcommand{\CltOp}{\CMathML@ltOp}
+\def\CMathML@lt#1{\assoc[p=700]{\CMathML@ltOp}{#1}}
+\newcommand{\Clt}[2][]{\CMathML@lt{#2}}
+\def\CMathML@geqOp{\geq}
+\newcommand{\CgeqOp}{\CMathML@geqOp}
+\def\CMathML@geq#1{\assoc[p=700]{\CMathML@geqOp}{#1}}
+\newcommand{\Cgeq}[2][]{\CMathML@geq{#2}}
+\def\CMathML@leqOp{\leq}
+\newcommand{\CleqOp}{\CMathML@leqOp}
+\def\CMathML@leq#1{\assoc[p=700]{\CMathML@leqOp}{#1}}
+\newcommand{\Cleq}[2][]{\CMathML@leq{#2}}
+\def\CMathML@equivalentOp{\equiv}
+\newcommand{\CequivalentOp}{\CMathML@equivalentOp}
+\def\CMathML@equivalent#1{\assoc[p=700]{\CMathML@equivalentOp}{#1}}
+\newcommand{\Cequivalent}[2][]{\CMathML@equivalent{#2}}
+\def\CMathML@approxOp{\approx}
+\newcommand{\CapproxOp}{\CMathML@approxOp}
+\def\CMathML@approx#1#2{#1\CMathML@approxOp{#2}}
+\newcommand{\Capprox}[3][]{\CMathML@approx{#2}{#3}}
+\def\CMathML@factorofOp{\mid}
+\newcommand{\CfactorofOp}{\CMathML@factorofOp}
+\def\CMathML@factorof#1#2{#1\CMathML@factorofOp{#2}}
+\newcommand{\Cfactorof}[3][]{\CMathML@factorof{#2}{#3}}
+
+\def\CMathML@intOp{\int}
+\newcommand{\CintOp}{\CMathML@intOp}
+\def\CMathML@int#1{\CMathML@intOp{#1}}
+\newcommand{\Cint}[2][]{\CMathML@int{#2}}
+\def\CMathML@intLimits#1#2#3#4{\CMathML@intOp_{#2}^{#3}{#4}d{#1}} %bvars,llimit, ulimit,body
+\newcommand{\CintLimits}[5][]{\CMathML@intLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@intSet#1#2{\CMathML@intOp_{#1}{#2}}% set,function
+\newcommand{\CintDA}[3][]{\CMathML@intSet{#2}{#3}}
+\def\CMathML@intCond#1#2#3{\CMathML@intOp_{#2}{#3}d{#1}} %bvars, condition, body
+\newcommand{\CintCond}[4][]{\CMathML@intCond{#2}{#3}{#4}}
+
+\def\CMathML@diff#1{#1'}
+\newcommand{\Cdiff}[2][]{\CMathML@diff{#2}}
+\def\CMathML@ddiff#1#2{{d{#2}(#1)\over{d{#1}}}}
+\newcommand{\Cddiff}[3][]{\CMathML@ddiff{#2}{#3}}
+\def\CMathML@partialdiff#1#2#3{{\partial^{#1}\over\partial{#2}}{#3}}% degree, bvars, body
+\newcommand{\Cpartialdiff}[4][]{\CMathML@partialdiff{#2}{#3}{#4}}
+\newcommand{\Cdegree}[2]{#1^{#2}}
+\def\CMathML@limit#1#2#3{\lim_{#1\rightarrow{#2}}{#3}}
+\newcommand{\Climit}[4][]{\CMathML@limit{#2}{#3}{#4}} % bvar, lowlimit, scope
+\def\CMathML@limitCond#1#2#3{\lim_{#2}{#3}}
+\newcommand{\ClimitCond}[4][]{\CMathML@limitCond{#2}{#3}{#4}} % bvars, condition, scope
+\def\CMathML@tendstoOp{\rightarrow}
+\newcommand{\CtendstoOp}{\CMathML@tendstoOp}
+\def\CMathML@tendsto#1#2{#1\CMathML@tendstoOp{#2}}
+\newcommand{\Ctendsto}[3][]{\CMathML@tendsto{#2}{#3}}
+\def\CMathML@tendstoAboveOp{\searrow}
+\newcommand{\CtendstoAboveOp}{\CMathML@tendstoAboveOp}
+\def\CMathML@tendstoAbove#1#2{#1\searrow{#2}}
+\newcommand{\CtendstoAbove}[3][]{\CMathML@tendstoAbove{#2}{#3}}
+\def\CMathML@tendstoBelowOp{\nearrow}
+\newcommand{\CtendstoBelowOp}{\CMathML@tendstoBelowOp}
+\def\CMathML@tendstoBelow#1#2{#1\CMathML@tendstoBelowOp{#2}}
+\newcommand{\CtendstoBelow}[3][]{\CMathML@tendstoBelow{#2}{#3}}
+\def\CMathML@divergence#1{\nabla\cdot{#1}}
+\newcommand{\Cdivergence}[2][]{\CMathML@divergence{#2}}
+\def\CMathML@grad#1{\nabla{#1}}
+\newcommand{\Cgrad}[2][]{\CMathML@grad{#2}}
+\def\CMathML@curl#1{\nabla\times{#1}}
+\newcommand{\Ccurl}[2][]{\CMathML@curl{#2}}
+\def\CMathML@laplacian#1{\nabla^2#1}
+\newcommand{\Claplacian}[2][]{\CMathML@laplacian{#2}}
+\def\CMathML@set#1{\left\{#1\right\}}
+\newcommand{\Cset}[2][]{\CMathML@set{#2}}
+\def\CMathML@setRes#1#2{\{#1|#2\}}
+\newcommand{\CsetRes}[3][]{\CMathML@setRes{#2}{#3}}
+\def\CMathML@setCond#1#2#3{\{#2|#3\}}
+\newcommand{\CsetCond}[4][]{\CMathML@setCond{#2}{#3}{#4}}
+\def\CMathML@setDA#1#2#3{\{#1\in{#2}|#3\}}
+\newcommand{\CsetDA}[4][]{\CMathML@setDA{#2}{#3}{#4}}
+\def\CMathML@listOp{\mbox{list}}
+\newcommand{\ClistOp}{\CMathML@listOp}
+\def\CMathML@list#1{\CMathML@listOp({#1})}
+\newcommand{\Clist}[2][]{\CMathML@list{#2}}
+\def\CMathML@unionOp{\cup}
+\newcommand{\CunionOp}{\CMathML@unionOp}
+\def\CMathML@union#1{\assoc[p=500]{\CMathML@unionOp}{#1}}
+\newcommand{\Cunion}[2][]{\CMathML@union{#2}}
+\def\CMathML@intersectOp{\cap}
+\newcommand{\CintersectOp}{\CMathML@intersectOp}
+\def\CMathML@intersect#1{\assoc[p=400]{\CMathML@intersectOp}{#1}}
+\newcommand{\Cintersect}[2][]{\CMathML@intersect{#2}}
+\def\CMathML@inOp{\in}
+\newcommand{\CinOp}{\CMathML@inOp}
+\def\CMathML@in#1#2{#1\CMathML@inOp{#2}}
+\newcommand{\Cin}[3][]{\CMathML@in{#2}{#3}}
+\def\CMathML@notinOp{\notin}
+\newcommand{\CnotinOp}{\CMathML@notinOp}
+\def\CMathML@notin#1#2{#1\CMathML@notinOp{#2}}
+\newcommand{\Cnotin}[3][]{\CMathML@notin{#2}{#3}}
+\def\CMathML@setdiffOp{\setminus}
+\newcommand{\CsetdiffOp}{\CMathML@setdiffOp}
+\def\CMathML@setdiff#1#2{#1\CMathML@setdiffOp{#2}}
+\newcommand{\Csetdiff}[3][]{\CMathML@setdiff{#2}{#3}}
+\def\CMathML@cardOp{\#}
+\newcommand{\CcardOp}{\CMathML@cardOp}
+\def\CMathML@card#1{\CMathML@cardOp #1}
+\newcommand{\Ccard}[2][]{\CMathML@card{#2}}
+\def\CMathML@cartesianproductOp{\times}
+\newcommand{\CcartesianproductOp}{\CMathML@cartesianproductOp}
+\def\CMathML@cartesianproduct#1{\assoc[p=400]{\CMathML@cartesianproductOp}{#1}}
+\newcommand{\Ccartesianproduct}[2][]{\CMathML@cartesianproduct{#2}}
+\def\CMathML@subsetOp{\subseteq}
+\newcommand{\CsubsetOp}{\CMathML@subsetOp}
+\def\CMathML@subset#1{\assoc[p=700]{\CMathML@subsetOp}{#1}}
+\newcommand{\Csubset}[2][]{\CMathML@subset{#2}}
+\def\CMathML@prsubsetOp{\subset}
+\newcommand{\CprsubsetOp}{\CMathML@prsubsetOp}
+\def\CMathML@prsubset#1{\assoc[p=700]{\CMathML@prsubsetOp}{#1}}
+\newcommand{\Cprsubset}[2][]{\CMathML@prsubset{#2}}
+\def\CMathML@notsubsetOp{\not\subseteq}
+\newcommand{\CnotsubsetOp}{\CMathML@notsubsetOp}
+\def\CMathML@notsubset#1#2{#1\CMathML@notsubsetOp{#2}}
+\newcommand{\Cnotsubset}[3][]{\CMathML@notsubset{#2}{#3}}
+\def\CMathML@notprsubsetOp{\not\subset}
+\newcommand{\CnotprsubsetOp}{\CMathML@notprsubsetOp}
+\def\CMathML@notprsubset#1#2{#1\CMathML@notprsubsetOp{#2}}
+\newcommand{\Cnotprsubset}[3][]{\CMathML@notprsubset{#2}{#3}}
+\def\CMathML@supsetOp{\supseteq}
+\newcommand{\CsupsetOp}{\CMathML@supsetOp}
+\def\CMathML@supset#1{\assoc[p=700]{\CMathML@supsetOp}{#1}}
+\newcommand{\Csupset}[2][]{\CMathML@supset{#2}}
+\def\CMathML@prsupsetOp{\supset}
+\newcommand{\CprsupsetOp}{\CMathML@prsupsetOp}
+\def\CMathML@prsupset#1{\assoc[p=700]{\CMathML@prsupsetOp}{#1}}
+\newcommand{\Cprsupset}[2][]{\CMathML@prsupset{#2}}
+\def\CMathML@notsupsetOp{\not\supseteq}
+\newcommand{\CnotsupsetOp}{\CMathML@notsupsetOp}
+\def\CMathML@notsupset#1#2{#1\CMathML@notsupsetOp{#2}}
+\newcommand{\Cnotsupset}[3][]{\CMathML@notsupset{#2}{#3}}
+\def\CMathML@notprsupsetOp{\not\supset}
+\newcommand{\CnotprsupsetOp}{\CMathML@notprsupsetOp}
+\def\CMathML@notprsupset#1#2{#1\CMathML@notprsupsetOp{#2}}
+\newcommand{\Cnotprsupset}[3][]{\CMathML@notprsupset{#2}{#3}}
+\def\CMathML@UnionDAOp{\bigwedge}
+\newcommand{\CUnionDAOp}{\CMathML@UnionDAOp}
+\def\CMathML@UnionDA#1#2{\CMathML@UnionDAOp_{#1}{#2}} % set, scope
+\newcommand{\CUnionDA}[3][]{\CMathML@UnionDA{#2}{#3}}
+\def\CMathML@UnionCond#1#2#3{\CMathML@UnionDAOp_{#2}{#3}} % bvars,condition, scope
+\newcommand{\CUnionCond}[4][]{\CMathML@UnionCond{#2}{#2}{#3}}
+\def\CMathML@IntersectDAOp{\bigvee}
+\newcommand{\CIntersectDAOp}{\CMathML@IntersectDAOp}
+\def\CMathML@IntersectDA#1#2{\CMathML@IntersectDAOp_{#1}{#2}} % set, scope
+\newcommand{\CIntersectDa}[3][]{\CMathML@IntersectDA{#2}{#3}}
+\def\CMathML@IntersectCond#1#2#3{\CMathML@IntersectDAOp_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CIntersectCond}[4][]{\CMathML@IntersectCond{#2}{#3}{#4}}
+\def\CMathML@CartesianproductDAOp{\bigoplus}
+\newcommand{\CCartesianproductDAOp}{\CMathML@CartesianproductDAOp}
+\def\CMathML@CartesianproductDA#1#2{\CMathML@CartesianproductDAOp_{#1}{#2}} % set, scope
+\newcommand{\CCartesianproductDA}[3][]{\CMathML@CartesianproductDA{#2}{#3}}
+\def\CMathML@CartesianproductCond#1#2#3{\CMathML@CartesianproductDAOp_{#2}{#3}}% bvars,condition, scope
+\newcommand{\CCartesianproductCond}[4][]{\CMathML@CartesianproductCond{#2}{#3}{#4}}
+\def\CMathML@sumOp{\sum}
+\newcommand{\CsumOp}{\CMathML@sumOp}
+\def\CMathML@sumLimits#1#2#3#4{\CMathML@sumOp_{#1=#2}^{#3}#4}% bvar, llimit, ulimit, body
+\newcommand{\CsumLimits}[5][]{\CMathML@sumLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@sumCond#1#2#3{\CMathML@sumOp_{#1\in{#2}}#3} % bvar, condition, body
+\newcommand{\CsumCond}[4][]{\CMathML@sumCond{#2}{#3}{#4}}
+\def\CMathML@sumDA#1#2{\CMathML@sumOp_{#1}#2} % set, body
+\newcommand{\CsumDA}[3][]{\CMathML@sumDA{#2}{#3}}
+\def\CMathML@prodOp{\prod}
+\newcommand{\CprodOp}{\CMathML@prodOp}
+\def\CMathML@prodLimits#1#2#3#4{\CMathML@prodOp_{#1=#32^{#3}#4}}% bvar, llimit, ulimit, body
+\newcommand{\CprodLimits}[5][]{\CMathML@prodLimits{#2}{#3}{#4}{#5}}
+\def\CMathML@prodCond#1#2#3{\CMathML@prodOp_{#1\in{#2}}#3} % bvar, condition, body
+\newcommand{\CprodCond}[4][]{\CMathML@prodCond{#2}{#3}{#4}}
+\def\CMathML@prodDA#1#2{\CMathML@prodOp_{#1}#2} % set, body
+\newcommand{\CprodDA}[3]{\CMathML@prodDA{#2}{#3}}
+\def\CMathML@sin#1{\sin(#1)}
+\newcommand{\Csin}[2][]{\CMathML@sin{#2}}
+\def\CMathML@cos#1{\cos(#1)}
+\newcommand{\Ccos}[2][]{\CMathML@cos{#2}}
+\def\CMathML@tan#1{\tan(#1)}
+\newcommand{\Ctan}[2][]{\CMathML@tan{#2}}
+\def\CMathML@sec#1{\sec(#1)}
+\newcommand{\Csec}[2][]{\CMathML@sec{#2}}
+\def\CMathML@csc#1{\csc(#1)}
+\newcommand{\Ccsc}[2][]{\CMathML@csc{#2}}
+\def\CMathML@cot#1{\cot(#1)}
+\newcommand{\Ccot}[2][]{\CMathML@cot{#2}}
+\def\CMathML@sinh#1{\sinh(#1)}
+\newcommand{\Csinh}[2][]{\CMathML@sinh{#2}}
+\def\CMathML@cosh#1{\cosh(#1)}
+\newcommand{\Ccosh}[2][]{\CMathML@cosh{#2}}
+\def\CMathML@tanh#1{\tanh(#1)}
+\newcommand{\Ctanh}[2][]{\CMathML@tanh{#2}}
+\def\CMathML@sech#1{\mbox{sech}(#1)}
+\newcommand{\Csech}[2][]{\CMathML@sech{#2}}
+\def\CMathML@csch#1{\mbox{csch}(#1)}
+\newcommand{\Ccsch}[2][]{\CMathML@csch{#2}}
+\def\CMathML@coth#1{\mbox{coth}(#1)}
+\newcommand{\Ccoth}[2][]{\CMathML@coth{#2}}
+\def\CMathML@arcsin#1{\arcsin(#1)}
+\newcommand{\Carcsin}[2][]{\CMathML@arcsin{#2}}
+\def\CMathML@arccos#1{\arccos(#1)}
+\newcommand{\Carccos}[2][]{\CMathML@arccos{#2}}
+\def\CMathML@arctan#1{\arctan(#1)}
+\newcommand{\Carctan}[2][]{\CMathML@arctan{#2}}
+\def\CMathML@arccosh#1{\mbox{arccosh}(#1)}
+\newcommand{\Carccosh}[2][]{\CMathML@arccosh{#2}}
+\def\CMathML@arccot#1{\mbox{arccot}(#1)}
+\newcommand{\Carccot}[2][]{\CMathML@arccot{#2}}
+\def\CMathML@arccoth#1{\mbox{arccoth}(#1)}
+\newcommand{\Carccoth}[2][]{\CMathML@arccoth{#2}}
+\def\CMathML@arccsc#1{\mbox{arccsc}(#1)}
+\newcommand{\Carccsc}[2][]{\CMathML@arccsc{#2}}
+\def\CMathML@arcsinh#1{\mbox{arcsinh}(#1)}
+\newcommand{\Carcsinh}[2][]{\CMathML@arcsinh{#2}}
+\def\CMathML@arctanh#1{\mbox{arctanh}(#1)}
+\newcommand{\Carctanh}[2][]{\CMathML@arctanh{#2}}
+
+\def\CMathML@exp#1{\exp(#1)}
+\newcommand{\Cexp}[2][]{\CMathML@exp{#2}}
+\def\CMathML@ln#1{\ln(#1)}
+\newcommand{\Cln}[2][]{\CMathML@ln{#2}}
+\def\CMathML@log#1#2{\log_{#1}(#2)}
+\newcommand{\Clog}[3][]{\CMathML@log{#2}{#3}}
+\def\CMathML@mean#1{\mbox{mean}(#1)}
+\newcommand{\Cmean}[2][]{\CMathML@mean{#2}}
+\def\CMathML@sdev#1{\mbox{std}(#1)}
+\newcommand{\Csdev}[2][]{\CMathML@sdev{#2}}
+\def\CMathML@var#1{\mbox{var}(#1)}
+\newcommand{\Cvar}[2][]{\CMathML@var{#2}}
+\def\CMathML@median#1{\mbox{median}(#1)}
+\newcommand{\Cmedian}[2][]{\CMathML@median{#2}}
+\def\CMathML@mode#1{\mbox{mode}(#1)}
+\newcommand{\Cmode}[2][]{\CMathML@mode{#2}}
+\def\CMathML@moment#1#2{\langle{#2}^{#1}\rangle}% degree, momentabout, scope
+\newcommand{\Cmoment}[3][]{\CMathML@moment{#2}{#3}}
+\def\CMathML@momentA#1#2{\langle{#2}^{#1}\rangle}% degree, momentabout, scope
+\newcommand{\CmomentA}[4][]{\CMathML@momentA{#2}{#3}{#4}}
+\def\CMathML@vector#1{(#1)}
+\newcommand{\Cvector}[2][]{\CMathML@vector{#2}}
+\def\CMathML@matrix#1#2{\left(\begin{array}{#1}#2\end{array}\right)}% row pattern, body
+\newcommand{\Cmatrix}[3][]{\CMathML@matrix{#2}{#3}}
+\def\CMathML@determinant#1{\left|#1\right|}
+\newcommand{\Cdeterminant}[2][]{\CMathML@determinant{#2}}
+\def\CMathML@transpose#1{#1^\top}
+\newcommand{\Ctranspose}[2][]{\CMathML@transpose{#2}}
+\def\CMathML@selector#1#2{#1_{#2}}
+\newcommand{\Cselector}[3][]{\CMathML@selector{#2}{#3}}
+\def\CMathML@vectproductOp{\cdot}
+\newcommand{\CvectproductOp}{\CMathML@vectproductOp}
+\def\CMathML@vectproduct#1#2{#1\CMathML@vectproductOp{#2}}
+\newcommand{\Cvectproduct}[3][]{\CMathML@vectproduct{#2}{#3}}
+\def\CMathML@scalarproduct#1#2{{#1}#2}
+\newcommand{\Cscalarproduct}[3][]{\CMathML@scalarproduct{#2}{#3}}
+\def\CMathML@outerproductOp{\times}
+\newcommand{\CouterproductOp}{\CMathML@outerproductOp}
+\def\CMathML@outerproduct#1#2{#1\CMathML@outerproductOp{#2}}
+\newcommand{\Couterproduct}[3][]{\CMathML@outerproduct{#2}{#3}}
+\def\CMathML@integers{{\mathbb{Z}}}
+\newcommand{\Cintegers}[1][]{\CMathML@integers}
+\def\CMathML@reals{{\mathbb{R}}}
+\newcommand{\Creals}[1][]{\CMathML@reals}
+\def\CMathML@rationals{{\mathbb{Q}}}
+\newcommand{\Crationals}[1][]{\CMathML@rationals}
+\def\CMathML@naturalnumbers{{\mathbb{N}}}
+\newcommand{\Cnaturalnumbers}[1][]{\CMathML@naturalnumbers}
+\def\CMathML@complexes{{\mathbb{C}}}
+\newcommand{\Ccomplexes}[1][]{\CMathML@complexes}
+\def\CMathML@primes{{\mathbb{P}}}
+\newcommand{\Cprimes}[1][]{\CMathML@primes}
+\def\CMathML@exponemtiale{e}
+\newcommand{\Cexponemtiale}[1][]{\CMathML@exponemtiale}
+\def\CMathML@imaginaryi{i}
+\newcommand{\Cimaginaryi}[1][]{\CMathML@imaginaryi}
+\def\CMathML@notanumber{{\mathrm{NaN}}}
+\newcommand{\Cnotanumber}[1][]{\CMathML@notanumber}
+\def\CMathML@true{{\mathrm{true}}}
+\newcommand{\Ctrue}[1][]{\CMathML@true}
+\def\CMathML@false{{\mathrm{false}}}
+\newcommand{\Cfalse}[1][]{\CMathML@false}
+\def\CMathML@emptyset{\emptyset}
+\newcommand{\Cemptyset}[1][]{\CMathML@emptyset}
+\def\CMathML@pi{\pi}
+\newcommand{\Cpi}[1][]{\CMathML@pi}
+\def\CMathML@eulergamma{\gamma}
+\newcommand{\Ceulergamma}[1][]{\CMathML@eulergamma}
+\def\CMathML@infinit{\infty}
+\newcommand{\Cinfinit}[1][]{\CMathML@infinit}
+\endinput
+%%
+%% End of file `cmathml.sty'.
diff --git a/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty.ltxml b/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty.ltxml
new file mode 100644
index 00000000000..a6ce629f220
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cmathml/cmathml.sty.ltxml
@@ -0,0 +1,974 @@
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+use LaTeXML::Document;
+RequirePackage('LaTeX');
+sub remove_tokens_from_list {
+ my ($list, $pattern, $math) = @_;
+ if (ref $list) {
+ my @toks = $list->unlist;
+ @toks = grep($_->toString !~ /$pattern/, @toks);
+ ($math ? (LaTeXML::MathList->new(@toks)) : (LaTeXML::List)->new(@toks)); }
+ else { undef; } }
+
+sub remove_math_commas {
+ my ($whatsit, $argno) = @_;
+ my @args = $whatsit ? $whatsit->getArgs() : undef;
+ $argno--;
+ if ($args[$argno]) {
+ $args[$argno] = remove_tokens_from_list($args[$argno], ',', 1);
+ $whatsit->setArgs(@args);
+ }
+ return;
+}
+DefConstructor('\Capply [] {} {}',
+ "<ltx:XMApp ?#1(definitionURL='#1')()>#2 #3</ltx:XMApp>");
+DefConstructor('\Ccn [] {}',"#2");
+DefConstructor('\Cci [] {}',"#2");
+DefConstructor('\Ccsymbol [] {}',
+ "<ltx:XMTok role='CSYMBOL' meaning='#2' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cccinterval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='ccinterval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Ccointerval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='cointerval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Cocinterval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='ocinterval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Coointerval [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='oointerval' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg></ltx:XMApp>");
+DefConstructor('\Cinverse [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='inverse' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Clambda [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='lambda' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClambdaDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='lambda' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Crestrict [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='restrict' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CcomposeOp []',
+ "<ltx:XMTok meaning='compose' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccompose [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='MULOP' meaning='compose' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cident []',
+ "<ltx:XMTok meaning='ident' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cdomain [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='domain' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccodomain [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='codomain' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cimage [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='image' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpiecewise [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='piecewise' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpiece [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='piece' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cotherwise [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='otherwise' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cquotient [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='quotient' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CfactorialOp []',
+ "<ltx:XMTok meaning='factorial' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfactorial [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='factorial' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CdivideOp []',
+ "<ltx:XMTok meaning='divide' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cdivide [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='divide' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CmaxOp []',
+ "<ltx:XMTok meaning='max' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cmax [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='max' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CminOp []',
+ "<ltx:XMTok meaning='min' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cmin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='min' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CminusOp []',
+ "<ltx:XMTok meaning='minus' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cminus [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='ADDOP' meaning='minus' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cuminus [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='uminus' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CplusOp []',
+ "<ltx:XMTok meaning='plus' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cplus [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='ADDOP' meaning='plus' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cpower [] {} {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='power' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CremOp []',
+ "<ltx:XMTok meaning='rem' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Crem [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='rem' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtimesOp []',
+ "<ltx:XMTok meaning='times' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctimes [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='MULOP' meaning='times' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CrootOp []',
+ "<ltx:XMTok meaning='root' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Croot [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='root' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cgcd [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='gcd' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CandOp []',
+ "<ltx:XMTok meaning='and' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cand [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CorOp []',
+ "<ltx:XMTok meaning='or' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CxorOp []',
+ "<ltx:XMTok meaning='xor' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cxor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CnotOp []',
+ "<ltx:XMTok meaning='not' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='not' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CimpliesOp []',
+ "<ltx:XMTok meaning='implies' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cimplies [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONNECTIVE' meaning='implies' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CAndDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CAndCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='and' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\COrDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\COrCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='or' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CXorDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CXorCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='xor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cforall [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='forall' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CforallCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='forall' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cexists [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='exists' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CexistsCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BINDER' meaning='exists' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cabs [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='abs' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cconjugate [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='conjugate' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carg [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='arg' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Creal [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='real' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cimaginary [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='imaginary' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Clcm [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='lcm' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cfloor [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='floor' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cceiling [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='ceiling' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CeqOp []',
+ "<ltx:XMTok meaning='eq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ceq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='eq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CneqOp []',
+ "<ltx:XMTok meaning='neq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cneq [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='neq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CgtOp []',
+ "<ltx:XMTok meaning='gt' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cgt [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='gt' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CltOp []',
+ "<ltx:XMTok meaning='lt' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Clt [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='lt' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CgeqOp []',
+ "<ltx:XMTok meaning='geq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cgeq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='geq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CleqOp []',
+ "<ltx:XMTok meaning='leq' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cleq [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='leq' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CequivalentOp []',
+ "<ltx:XMTok meaning='equivalent' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cequivalent [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='equivalent' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>");
+DefConstructor('\CapproxOp []',
+ "<ltx:XMTok meaning='approx' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Capprox [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='approx' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CfactorofOp []',
+ "<ltx:XMTok meaning='factorof' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfactorof [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='factorof' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintOp []',
+ "<ltx:XMTok meaning='int' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cint [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "<ltx:XMArg>#5</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CintCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='int' role='INTOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdiff [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cddiff [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cpartialdiff [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='diff' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "?#2(<ltx:XMArg>#2</ltx:XMArg>)()"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdegree {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='degree'/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#1</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Climit [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='limit' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClimitCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='limit' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtendstoOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctendsto [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP' meaning='tendsto' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtendstoAboveOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CtendstoAbove [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP'meaning='tendsto' type='above' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CtendstoBelowOp []',
+ "<ltx:XMTok meaning='tendsto' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CtendstoBelow [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='RELOP' meaning='tendsto' type='below' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdivergence [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='divergence' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cgrad [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='grad' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Curl [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='url' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Claplacian [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='OPFUNCTION' meaning='laplacian' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='set' role='CONSTRUCTOR' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CsetRes [] {}{}',
+ "<ltx:XMApp role='BIGOP'>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='CONDITION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetCond [] {}{}{}',
+ "<ltx:XMApp role='BIGOP'>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='CONDITION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetDA [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='set' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg role='BVAR'>#2</ltx:XMArg>"
+ . "<ltx:XMArg role='DOMAINOFAPPLICATION'>#3</ltx:XMArg>"
+ . "<ltx:XMArg role='SCOPE'>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\ClistOp []',
+ "<ltx:XMTok meaning='list' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Clist [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='list' role='CONSTRUCTOR' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CunionOp []',
+ "<ltx:XMTok meaning='union' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cunion [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='union' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CintersectOp []',
+ "<ltx:XMTok meaning='intersect' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cintersect [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='intersect' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CinOp []',
+ "<ltx:XMTok meaning='in' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cin [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='in' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CnotinOp []',
+ "<ltx:XMTok meaning='notin' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotin [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notin' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsubsetOp []',
+ "<ltx:XMTok meaning='subset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Csubset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='subset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CprsubsetOp []',
+ "<ltx:XMTok meaning='prsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cprsubset [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='prsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CnotsubsetOp []',
+ "<ltx:XMTok meaning='notsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotsubset [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CnotprsubsetOp []',
+ "<ltx:XMTok meaning='notprsubset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotprsubset [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='notprsubset' role='RELOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsetdiffOp []',
+ "<ltx:XMTok meaning='setdiff' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Csetdiff [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='setdiff' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CcardOp []',
+ "<ltx:XMTok meaning='card' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccard [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='card' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CcartesianproductOp []',
+ "<ltx:XMTok meaning='cartesianproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccartesianproduct [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cartesianproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\CsupsetOp []',
+ "<ltx:XMTok meaning='supset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CprsupsetOp []',
+ "<ltx:XMTok meaning='prsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CnotsupsetOp []',
+ "<ltx:XMTok meaning='notsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CnotprsupsetOp []',
+ "<ltx:XMTok meaning='notprsupset' role='ID' ?#1(definitionURL='#1')()/>");
+DefMacro('\Csupset[]{}','\Csubset[#1]{#2}');
+DefMacro('\Cprsupset[]{}','\Cprsubset[#1]{#2}');
+DefMacro('\Cnotsupset[]{}{}','\Cnotsubset[#1]{#3}{#2}');
+DefMacro('\Cnotprsupset[]{}{}','\Cnotprsubset[#1]{#3}{#2}');
+DefConstructor('\CUnionDAOp []',
+ "<ltx:XMTok meaning='union' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CUnionDA [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='union' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CUnionCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='union' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CIntersectDaOp []',
+ "<ltx:XMTok meaning='intersect' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CIntersectDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='intersect' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CIntersectCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='intersect' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CCartesianproductDaOp []',
+ "<ltx:XMTok meaning='cartesianproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CCartesianproductDa [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='cartesianproduct' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CCartesianproductCond [] {}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='BIGOP' meaning='cartesianproduct' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CsumOp []',
+ "<ltx:XMTok meaning='sum' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CsumLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sum' role='SUMOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "#5</ltx:XMApp>");
+DefConstructor('\CprodOp []',
+ "<ltx:XMTok meaning='prod' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\CprodLimits [] {}{}{}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='prod' role='SUMOP' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg><ci>#2</ci></ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "<ltx:XMArg>#4</ltx:XMArg>"
+ . "#5</ltx:XMApp>");
+DefConstructor('\Csin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sin' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccos [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cos' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctan [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='tan' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csec [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sec' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccsc [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='csc' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cot' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csinh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sinh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccosh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='cosh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctanh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='tanh' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csech [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sech' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccsch [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='csch' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ccoth [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='coth' role='TRIGFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsin [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsin' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccos [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccos' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carctan [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arctan' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsec [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsec' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccsc [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccsc' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccot [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccot' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsinh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsinh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccosh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccosh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carctanh [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arctanh' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carcsech [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arcsech' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccsch [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccsch' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Carccoth [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='arccoth' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cexp [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='exp' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cln [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='ln' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Clog [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='log' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmean [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='mean' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Csdev [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='sdev' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cvar [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='var' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmedian [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='median' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmode [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='mode' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cmoment [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='moment' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cvector [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='vector' ?#1(definitionURL='#1')()/>"
+ . "#2"
+ . "</ltx:XMApp>",
+ afterDigest=>sub { remove_math_commas($_[1], 2); });
+DefConstructor('\Cmatrix [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok role='CONSTRUCTOR' meaning='matrix' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cdeterminant [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='determinant' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Ctranspose [] {}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='transpose' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cselector [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='selector' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CvectorproductOp []',
+ "<ltx:XMTok meaning='vectorproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cvectorproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='vectorproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cscalarproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='scalarproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\CouterproductOp []',
+ "<ltx:XMTok meaning='outerproduct' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Couterproduct [] {}{}',
+ "<ltx:XMApp>"
+ . "<ltx:XMTok meaning='outerproduct' role='OPFUNCTION' ?#1(definitionURL='#1')()/>"
+ . "<ltx:XMArg>#2</ltx:XMArg>"
+ . "<ltx:XMArg>#3</ltx:XMArg>"
+ . "</ltx:XMApp>");
+DefConstructor('\Cintegers []',
+ "<ltx:XMTok meaning='integers' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Creals []',
+ "<ltx:XMTok meaning='reals' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Crationals []',
+ "<ltx:XMTok meaning='rationals' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnaturalnumbers []',
+ "<ltx:XMTok meaning='naturalnumbers' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ccomplexes []',
+ "<ltx:XMTok meaning='complexes' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cprimes []',
+ "<ltx:XMTok meaning='primes' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cexponentiale []',
+ "<ltx:XMTok meaning='exponentiale' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cimaginaryi []',
+ "<ltx:XMTok meaning='imaginaryi' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cnotanumber []',
+ "<ltx:XMTok meaning='notanumber' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ctrue []',
+ "<ltx:XMTok meaning='true' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cfalse []',
+ "<ltx:XMTok meaning='false' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cemptyset []',
+ "<ltx:XMTok meaning='emptyset' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cpi []',
+ "<ltx:XMTok meaning='pi' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Ceulergamma []',
+ "<ltx:XMTok meaning='eulergamma' role='ID' ?#1(definitionURL='#1')()/>");
+DefConstructor('\Cinfinit []',
+ "<ltx:XMTok meaning='infinit' role='ID' ?#1(definitionURL='#1')()/>");
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls b/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls
new file mode 100644
index 00000000000..d2035808d0b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls
@@ -0,0 +1,142 @@
+%%
+%% This is file `cnx.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cnx.dtx (with options: `cls')
+%%
+\RequirePackage{sref}
+\RequirePackage{graphicx}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\ExecuteOptions{letterpaper}
+\ProcessOptions
+\input{size10.clo}
+\pagenumbering{roman}
+\omdaddkey{cnxmodule}{name}
+\srefaddidkey{cnxmodule}{id}
+\newenvironment{cnxmodule}[1][]{\omdsetkeys{cnxmodule}{#1}}{}
+\newenvironment{ccontent}{}{}
+\newcounter{section}
+\srefaddidkey{sectioning}{id}
+\newenvironment{csection}[2][]%
+{\stepcounter{section}\strut\\[1.5ex]\noindent%
+{\Large\bfseries\arabic{section}.~{#2}}\\[1.5ex]
+\omdsetkeys{sectioning}{#1}}
+{}
+\newcounter{subsection}[section]
+\newenvironment{csubsection}[2][]
+{\refstepcounter{subsection}\strut\\[1ex]\noindent%
+{\large\bfseries{\arabic{section}.\arabic{subsection}.~#2\\[1ex]}}%
+\omdsetkeys{sectioning}{#1}}%
+{}
+\newcounter{subsubsection}[subsection]
+\newenvironment{csubsubsection}[2][]
+{\refstepcounter{subsubsection}\strut\\[.5ex]\noindent
+{\bfseries\arabic{section}.\arabic{subsection}.\arabic{subsubsecction}~#2\\[.5ex]}%
+\omdsetkeys{sectioning}{#1}}{}
+\srefaddidkey{para}{id}
+\newenvironment{cpara}[1][]{\omdsetkeys{para}{#1}}{\par}
+\srefaddidkey{note}
+\omdaddkey{note}{type}
+\newenvironment{cnote}[1][]%
+{\omdsetkeys{note}{#1}\par\noindent\strut\hfill\begin{minipage}{10cm}{\bfseries\note@type}:~}%
+{\end{minipage}\hfill\strut\par}
+\srefaddidkey{equation}{id}
+\newenvironment{cequation}[1][]%
+{\omdsetkeys{equation}{#1}\begin{displaymath}}
+{\end{displaymath}}
+\srefaddidkey{cquote}
+\omdaddkey{cquote}{type}
+\omdaddkey{cquote}{src}
+\newenvironment{cquote}[1][]{%
+\omdsetkeys{cquote}{#1}\begin{center}\begin{minipage}{.8\textwidth}}{\end{minipage}\end{center}}
+\newcommand{\litem}[2][]{\item[#1]\label{#2}}
+\srefaddidkey{example}
+\omdaddkey{example}{name}
+\newenvironment{cexample}[1][]{\omdsetkeys{example}{#1}
+{\ifx\example@name\@empty\else\noindent\bfseries{\example@name}\fi}}
+{}
+\newcounter{cexercise}
+\srefaddidkey{cexercise}
+\omdaddkey{cexercise}{name}
+\newenvironment{cexercise}[1][]{\omdsetkeys{cexercise}{#1}
+{\ifx\cexercise@name\@empty\else\stepcounter{cexercise}\noindent\bfseries{\cexercise@name~\arabic{cexercise}}\fi}}
+{}
+\srefaddidkey{cproblem}
+\newenvironment{cproblem}[1][]{\omdsetkeys{cproblem}{#1}}{}{}
+\srefaddidkey{csolution}
+\newenvironment{csolution}[1][]{\omdsetkeys{csolution}{#1}}{\par\noindent\bfseries{Solution}}{}
+\srefaddidkey{rule}
+\omdaddkey{rule}{name}
+\omdaddkey{rule}{type}
+\newenvironment{crule}[1][]{\omdsetkeys{rule}{#1}%
+{\noindent\bfseries{\rule@type:}\ifx\rule@name\@empty\else~(\rule@name)\fi}}%
+{}
+\srefaddidkey{statement}
+\newenvironment{statement}[1][]{\omdsetkeys{statement}{#1}}{}
+\srefaddidkey{proof}
+\newenvironment{proof}[1][]{\omdsetkeys{proof}{#1}}{}
+\srefaddidkey{definition}
+\omdaddkey{definition}{term}
+\omdaddkey{definition}{seealso}
+\newenvironment{definition}[1][]{\omdsetkeys{definition}{#1}{\noindent\bfseries{Definition:}}}{}
+\srefaddidkey{meaning}
+\newenvironment{cmeaning}[1][]{\omdsetkeys{meaning}{#1}}{}
+\omdaddkey{cnxn}{document}
+\omdaddkey{cnxn}{target}
+\omdaddkey{cnxn}{strength}
+\newcommand{\cnxn}[2][]% keys, link text
+{\omdsetkeys{cnxn}{#1}{\underline{#2}}\footnote{{\ttfamily\@ifx\cnxn@document\@empty\cnxn@document\fi\#\cnxn@target}}}
+\newcommand\@makefntext[1]{\parindent 1em\noindent\hb@xt@1.8em{\hss\@makefnmark}#1}
+\omdaddkey{link}{src}
+\newcommand{\link}[2][]{\omdsetkeys{link}{#1}\underline{#2}}
+\srefaddidkey{cfigure}
+\omdaddkey{cfigure}{type}
+\omdaddkey{cfigure}{caption}
+\newcounter{figure}
+\newcommand{\cfigure}[3][]{% cnx_keys, graphicx_keys, path
+\begin{center}%
+\includegraphics[#2]{#3}%
+\omdsetkeys{cfigure}{#1}\sref@target%
+\ifx\cfigure@caption\@empty\else
+\par\noindent Figure\refstepcounter{figure} {\arabic{figure}}: \cfigure@caption%
+\protected@edef\@currentlabel{\arabic{figure}}%
+\sref@label@id{Figure \thefigure}\fi
+\end{center}}
+\omdaddkey{ccite}{src}
+\newcommand{\ccite}[2][]{\omdsetkeys{ccite}{#1}\emph{#2}}
+\newcommand{\term}[1]{{\bfseries\underline{#1}}}
+\omdaddkey{metadata}{version}
+\omdaddkey{metadata}{created}
+\omdaddkey{metadata}{revised}
+\newsavebox{\metadatabox}
+\newenvironment{metadata}[1][]%
+{\noindent\hfill\begin{lrbox}{\metadatabox}
+\begin{minipage}{.8\textwidth}%
+{\Large\bfseries CNX Module: \cnx@name\hfill\strut}\\[2ex]}%
+{\end{minipage}\end{lrbox}\fbox{\usebox\metadatabox}\hfill}
+\newenvironment{authorlist}{{\bfseries{Authors}:~}}{\\[1ex]}
+\newenvironment{maintainerlist}{{\bfseries{Maintainers}:~}}{\\[1ex]}
+\srefaddidkey{auth}
+\omdaddkey{auth}{honorific}
+\omdaddkey{auth}{firstname}
+\omdaddkey{auth}{other}
+\omdaddkey{auth}{surname}
+\omdaddkey{auth}{lineage}
+\omdaddkey{auth}{email}
+\newcommand{\cnxauthor}[1][]{\omdsetkeys{auth}{#1}\auth@first~\auth@sur,}
+\newcommand{\maintainer}[1][]{\omdsetkeys{auth}{#1}\auth@first~\auth@sur,}
+\newenvironment{keywordlist}{\bfseries{Keywords}:~}{\\[1ex]}
+\newcommand{\keyword}[1]{#1,}
+\newenvironment{cnxabstract}%
+{\par\noindent\strut\hfill\begin{minipage}{10cm}{\bfseries{Abstract}:~}}%
+{\end{minipage}\hfill}
+\endinput
+%%
+%% End of file `cnx.cls'.
diff --git a/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls.ltxml b/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls.ltxml
new file mode 100644
index 00000000000..e734b15aa82
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/cnx/cnx.cls.ltxml
@@ -0,0 +1,280 @@
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('omd');
+RegisterNamespace('cnx'=>"http://cnx.rice.edu/cnxml");
+RegisterNamespace('md'=>"http://cnx.rice.edu/mdml/0.4");
+RegisterNamespace('bib'=>"http://bibtexml.sf.net/");
+RegisterNamespace('m'=>"http://www.w3.org/1998/Math/MathML");
+DocType("cnx:document",
+"-//CNX//DTD CNXML 0.5 plus LaTeXML//EN",
+"../dtd/cnxml+ltxml.dtd",
+'#default'=>"http://cnx.rice.edu/cnxml",
+ 'md'=>"http://cnx.rice.edu/mdml/0.4",
+ 'bib'=>"http://bibtexml.sf.net/",
+ 'm'=>"http://www.w3.org/1998/Math/MathML",
+ 'ltx'=>"http://dlmf.nist.gov/LaTeXML");
+NewCounter('@itemizei', 'document', idprefix=>'I');
+NewCounter('@itemizeii', '@itemizei', idprefix=>'I');
+NewCounter('@itemizeiii', '@itemizeii', idprefix=>'I');
+NewCounter('@itemizeiv', '@itemizeiii',idprefix=>'I');
+NewCounter('@itemizev', '@itemizeiv', idprefix=>'I');
+NewCounter('@itemizevi', '@itemizev', idprefix=>'I');
+
+NewCounter('enumi', '@itemizei', idprefix=>'i');
+NewCounter('enumii', '@itemizeii', idprefix=>'i');
+NewCounter('enumiii','@itemizeiii', idprefix=>'i');
+NewCounter('enumiv', '@itemizeiv', idprefix=>'i');
+# A couple of more levels, since we use these for ID's!
+NewCounter('enumv', '@itemizev', idprefix=>'i');
+NewCounter('enumvi', '@itemizevi', idprefix=>'i');
+
+DefMacro('\theenumi', '\arabic{enumi}');
+DefMacro('\theenumii', '\alph{enumii}');
+DefMacro('\theenumiii', '\roman{enumiii}');
+DefMacro('\theenumiv', '\Alph{enumiv}');
+
+NewCounter('equation', 'document', idprefix=>'E');
+DefMacro('\theequation', '\arabic{equation}');
+DefMacro('\textwidth','16cm');
+Let('\thedocument@ID','\@empty');
+DefKeyVal('cnxmodule','name','Semiverbatim');
+DefKeyVal('cnxmodule','id','Semiverbatim');
+DefEnvironment('{document}','<cnx:document>#body</cnx:document>',
+ beforeDigest=> sub { AssignValue(inPreamble=>0); },
+ afterDigest=> sub { $_[0]->getGullet->flush; return; });
+DefEnvironment('{cnxmodule} OptionalKeyVals:cnxmodule',
+ "<cnx:name>&KeyVal('#1','name')</cnx:name>\n#body\n",
+ afterDigestBegin => sub {
+ AssignValue('cnxmodule_id',
+ KeyVal($_[1]->getArg(1), 'id')->toString,
+ 'global');
+ });#$
+Tag('cnx:document', afterClose => sub {
+ $_[1]->setAttribute('id', LookupValue('cnxmodule_id'));
+ });
+DefEnvironment('{ccontent}',"<cnx:content>#body</cnx:content>");
+DefKeyVal('sectioning','id','Semiverbatim');
+DefEnvironment('{csection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+DefEnvironment('{csubsection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+DefEnvironment('{csubsubsection}OptionalKeyVals:sectioning{}',
+ "<cnx:section %&KeyVals(#1)>\n"
+ . "?#2(<cnx:name>#2</cnx:name>\n)()"
+ . "#body\n</cnx:section>\n");
+DefKeyVal('para','id','Semiverbatim');
+DefEnvironment('{cpara} OptionalKeyVals:para','<cnx:para %&KeyVals(#1)>#body</cnx:para>');
+sub number_para {
+ my($document,$node,$whatsit)=@_;
+ # Get prefix from first parent with an id.
+ my(@parents)=$document->findnodes('ancestor::*[@id]',$node); # find 1st id'd parent.
+ my $prefix= (@parents ? $parents[$#parents]->getAttribute('id')."." : '');
+ # Get the previous number within parent; Worried about intervening elements around para's, but...
+ my(@siblings)=$document->findnodes("preceding-sibling::cnx:para",$node);
+ my $n=1;
+ $n = $1+1 if(@siblings && $siblings[$#siblings]->getAttribute('id')=~/(\d+)$/);
+ $node->setAttribute(id=>$prefix."p$n"); }
+Tag('cnx:para',afterOpen=>\&number_para);
+DefConstructor('\par',sub { $_[0]->maybeCloseElement('cnx:para'); },alias=>"\\par\n");
+Tag('cnx:para', autoClose=>1, autoOpen=>1);
+DefKeyVal('note','id','Semiverbatim');
+DefKeyVal('note','type','Semiverbatim');
+DefEnvironment('{cnote}OptionalKeyVals:note','<cnx:note %&KeyVals(#1)>#body</cnx:note>');
+DefKeyVal('equation','id','Semiverbatim');
+DefEnvironment('{cequation} OptionalKeyVals:equation',
+ "<cnx:equation %&KeyVals(#1)>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>#body</ltx:XMath>"
+ . "</ltx:Math></cnx:equation>",
+ mode=>'display_math');
+DefKeyVal('cquote','id','Semiverbatim');
+DefKeyVal('cquote','type','Semiverbatim');
+DefKeyVal('cquote','src','Semiverbatim');
+DefEnvironment('{cquote} OptionalKeyVals:cquote',
+ "<cnx:quote %&KeyVals(#1)>#body</cnx:quote>");
+DefConstructor('\footnote[]{}',"<cnx:note type='foot'>#2</cnx:note>");
+DefConstructor('\emph{}',"<cnx:emphasis>#1</cnx:emphasis>");
+DefConstructor('\[',
+ "<cnx:equation id='#id'>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>"
+ . "#body"
+ . "</ltx:XMath>"
+ . "</ltx:Math>"
+ ."</cnx:equation>",
+ beforeDigest=> sub{ $_[0]->beginMode('display_math'); },
+ captureBody=>1,
+ properties=> sub { RefStepID('equation') });
+DefConstructor('\]' ,"",beforeDigest=> sub{ $_[0]->endMode('display_math'); });
+DefConstructor('\[',
+ "<cnx:equation id='#id'>"
+ . "<ltx:Math mode='display'>"
+ . "<ltx:XMath>"
+ . "#body"
+ . "</ltx:XMath>"
+ . "</ltx:Math>"
+ ."</cnx:equation>",
+ beforeDigest=> sub{ $_[0]->beginMode('display_math'); },
+ captureBody=>1,
+ properties=> sub { RefStepID('equation') });
+DefConstructor('\]' ,"",beforeDigest=> sub{ $_[0]->endMode('display_math'); });
+
+DefMacro('\eqnarray', '\@@eqnarray\@start@alignment');
+DefMacro('\endeqnarray', '\@finish@alignment\end@eqnarray');
+DefMacro('\csname eqnarray*\endcsname', '\@@eqnarray*\@start@alignment');
+DefMacro('\csname endeqnarray*\endcsname', '\@finish@alignment\end@eqnarray');
+DefConstructor('\@@eqnarray OptionalMatch:* AlignmentBody:\end@eqnarray',
+ sub {
+ my($document,$star,$body,%props)=@_;
+ $document->openElement('cnx:equation',refnum=>$props{refnum},id=>$props{id});
+ $document->openElement('ltx:Math',mode=>'display');
+ $document->openElement('ltx:XMath');
+ constructAlignment($document,$body,attributes=>{name=>'eqnarray'});
+ $document->closeElement('ltx:XMath');
+ $document->closeElement('ltx:Math');
+ $document->closeElement('cnx:equation'); },
+ mode=>'display_math',
+ beforeDigest=>sub { alignmentBindings('rcl'); },
+ properties=> sub { ($_[1] ? RefStepID('equation') : RefStepCounter('equation')); },
+ afterDigest=>sub {
+ $_[1]->setProperty(body=>$_[1]->getArg(2));}, # So we get TeX
+ reversion=>'\begin{eqnarray#1}#2\end{eqnarray#1}');
+Tag('cnx:item', autoClose=>1);
+DefConstructor('\item[]',"<cnx:item>?#1(<cnx:name>#1</cnx:name>)");
+DefConstructor('\litem[]{}',"<cnx:item id='#2'>?#1(<cnx:name>#1</cnx:name>)");
+DefConstructor('\itemize@item[]',
+ "<cnx:item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\enumerate@item[]',
+ "<cnx:item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\description@item[]',
+ "<cnx::item id='#id'>?#1(<cnx:name>#1</cnx:name>)",
+ properties=>sub{ RefStepItemCounter(); });
+AssignValue(itemlevel=>0);
+DefEnvironment('{itemize}',
+ "<cnx:list id='#id' type='itemize'>#body</cnx:list>",
+ properties=>sub { beginItemize('itemize'); });
+DefEnvironment('{enumerate}',
+ "<cnx:list type='enumerate' id='#id'>#body</cnx:list>",
+ properties=>sub { beginItemize('enumerate'); });
+DefEnvironment('{description}',
+ "<cnx:list type='description' id='#id'>#body</cnx:list>",
+ properties=>sub { beginItemize('description'); });
+DefEnvironment('{center}','#body');
+DefEnvironment('{minipage}{}','#body');
+DefEnvironment('{small}','#body');
+DefEnvironment('{footnotesize}','#body');
+DefEnvironment('{tiny}','#body');
+DefEnvironment('{scriptsize}','#body');
+DefConstructor('\ref Semiverbatim', "<cnx:cnxn target='#1'>&LookupValue('LABEL@#1')</cnx:cnxn>");
+DefKeyVal('example','id','Semiverbatim');
+DefEnvironment('{cexample}OptionalKeyVals:example',
+ "<cnx:example %&KeyVals(#1)>#body</cnx:example>");
+DefKeyVal('cexercise','id','Semiverbatim');
+DefKeyVal('cexercise','name','Semiverbatim');
+DefEnvironment('{cexercise}OptionalKeyVals:exercise',
+ "<cnx:exercise ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "#body"
+ . "</cnx:exercise>");
+DefKeyVal('cproblem','id','Semiverbatim');
+DefKeyVal('cproblem','name','Semiverbatim');
+DefEnvironment('{cproblem}OptionalKeyVals:cproblem',
+ "<cnx:problem ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "#body"
+ . "</cnx:problem>");
+DefKeyVal('csolution','id','Semiverbatim');
+DefKeyVal('csolution','name','Semiverbatim');
+DefEnvironment('{csolution}OptionalKeyVals:cproblem',
+ "<cnx:solution ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "#body"
+ . "</cnx:solution>");
+DefKeyVal('rule','id','Semiverbatim');
+DefKeyVal('rule','name','Semiverbatim');
+DefKeyVal('rule','type','Semiverbatim');
+DefEnvironment('{crule}OptionalKeyVals:rule',
+ "<cnx:rule ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')() type='&KeyVal(#1,'type')'>\n"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "\n#body\n"
+ . "</cnx:rule>\n");
+DefKeyVal('statement','id','Semiverbatim');
+DefEnvironment('{statement} OptionalKeyVals:statement','<cnx:statement %&KeyVals(#1)>#body</cnx:statement>');
+DefKeyVal('proof','id','Semiverbatim');
+DefEnvironment('{proof}OptionalKeyVals:proof','<cnx:proof %&KeyVals(#1)>#body</cnx:proof>');
+DefKeyVal('definition','id','Semiverbatim');
+DefKeyVal('definition','term','Semiverbatim');
+DefKeyVal('definition','seealso','Semiverbatim');
+DefEnvironment('{definition}OptionalKeyVals:definition',
+ "<cnx:definition ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>\n"
+ . "?&defined(&KeyVal(#1,'term'))(<cnx:term>&KeyVal(#1,'term')</cnx:term>\n)()"
+ . "\n#body\n"
+ . "?&defined(&KeyVal(#1,'seealso'))(<cnx:seealso><cnx:term>&KeyVal(#1,'term')</cnx:term></cnx:seealso>\n)()"
+ . "</cnx:definition>\n");
+DefKeyVal('meaning','id','Semiverbatim');
+DefEnvironment('{cmeaning}OptionalKeyVals:meaning','<cnx:meaning %&KeyVals(#1)>#body</cnx:meaning>');
+DefKeyVal('cnxn','document','Semiverbatim');
+DefKeyVal('cnxn','target','Semiverbatim');
+DefKeyVal('cnxn','strength','Semiverbatim');
+DefConstructor('\cnxn OptionalKeyVals:cnxn {}','<cnx:cnxn %&KeyVals(#1)>#1</cnx:cnxn>');
+DefKeyVal('link','src','Semiverbatim');
+DefConstructor('\link OptionalKeyVals:link {}','<cnx:link %&KeyVals(#1)>#2</cnx:link>');
+DefKeyVal('cfigure','id','Semiverbatim');
+DefKeyVal('cfigure','name','Semiverbatim');
+DefKeyVal('cfigure','type','Semiverbatim');
+DefKeyVal('cfigure','caption','Semiverbatim');
+DefConstructor('\cfigure OptionalKeyVals:cfigure Semiverbatim Semiverbatim',
+ "<cnx:figure ?&defined(&KeyVal(#1,'id'))(id='&KeyVal(#1,'id')')()>"
+ . "?&defined(&KeyVal(#1,'name'))(<cnx:name>&KeyVal(#1,'name')</cnx:name>\n)()"
+ . "<cnx:media type='&KeyVal(#1,'type')' src='#3'/>"
+ . "?&defined(&KeyVal(#1,'caption'))(<cnx:caption>&KeyVal(#1,'caption')</cnx:caption>\n)()"
+ . "</cnx:figure>");
+DefKeyVal('ccite','src','Semiverbatim');
+DefConstructor('\ccite OptionalKeyVals:ccite {}','<cnx:cite %&KeyVals(#1)>#2</cnx:cite>');
+DefConstructor('\term[]{}',"<cnx:term>#2</cnx:term>");
+DefKeyVal('metadata','version','Semiverbatim');
+DefKeyVal('metadata','created','Semiverbatim');
+DefKeyVal('metadata','revised','Semiverbatim');
+DefEnvironment('{metadata}OptionalKeyVals:metadata',
+ "<cnx:metadata>\n"
+ . "<md:version>&KeyVal('#1','version')</md:version>\n"
+ . "<md:created>&KeyVal('#1','created')</md:created>\n"
+ . "<md:revised>&KeyVal('#1','revised')</md:revised>\n"
+ . "#body\n"
+ . "</cnx:metadata>");
+DefEnvironment('{authorlist}',"<md:authorlist>#body</md:authorlist>");
+DefEnvironment('{maintainerlist}',"<md:maintainerlist>#body</md:maintainerlist>");
+DefKeyVal('auth','id','Semiverbatim');
+DefKeyVal('auth','firstname','Semiverbatim');
+DefKeyVal('auth','surname','Semiverbatim');
+DefKeyVal('auth','email','Semiverbatim');
+DefConstructor('\cnxauthor OptionalKeyVals:auth',
+ "<md:author id='&KeyVal('#1','id')'>\n"
+ . "?&defined(&KeyVal(#1,'honorific'))(<md:honorific>&KeyVal('#1','honorific')</md:honorific>\n)()"
+ . "?&defined(&KeyVal(#1,'firstname'))(<md:firstname>&KeyVal('#1','firstname')</md:firstname>\n)()"
+ . "?&defined(&KeyVal(#1,'other'))(<md:other>&KeyVal('#1','other')</md:other>\n)()"
+ . "?&defined(&KeyVal(#1,'surname'))(<md:surname>&KeyVal('#1','surname')</md:surname>\n)()"
+ . "?&defined(&KeyVal(#1,'lineage'))(<md:lineage>&KeyVal('#1','lineage')</md:lineage>\n)()"
+ . "?&defined(&KeyVal(#1,'email'))(<md:email>&KeyVal('#1','email')</md:email>\n)()"
+ . "</md:author>\n");
+DefConstructor('\maintainer OptionalKeyVals:auth',
+ "<md:maintainer id='&KeyVal('#1','id')'>\n"
+ . "?&defined(&KeyVal(#1,'honorific'))(<md:honorific>&KeyVal('#1','honorific')</md:honorific>\n)()"
+ . "?&defined(&KeyVal(#1,'firstname'))(<md:firstname>&KeyVal('#1','firstname')</md:firstname>\n)()"
+ . "?&defined(&KeyVal(#1,'other'))(<md:other>&KeyVal('#1','other')</md:other>\n)()"
+ . "?&defined(&KeyVal(#1,'surname'))(<md:surname>&KeyVal('#1','surname')</md:surname>\n)()"
+ . "?&defined(&KeyVal(#1,'lineage'))(<md:lineage>&KeyVal('#1','lineage')</md:lineage>\n)()"
+ . "?&defined(&KeyVal(#1,'email'))(<md:email>&KeyVal('#1','email')</md:email>\n)()"
+ . "</md:maintainer>\n");
+DefEnvironment('{keywordlist}',"<md:keywordlist>\n#body\n</md:keywordlist>");
+DefConstructor('\keyword {}',"<md:keyword>#1</md:keyword>");
+DefEnvironment('{cnxabstract} OptionalKeyVals:cnxabstract',
+ "<md:abstract>\n#body\n</md:abstract>\n");
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/jacobs-logo.eps b/Master/texmf-dist/tex/latex/stex/jacobs-logo.eps
new file mode 100644
index 00000000000..ebeb54c892e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/jacobs-logo.eps
@@ -0,0 +1 @@
+%!PS-Adobe-2.0 EPSF-1.2 %%Title: JU_LOGO_4C %%Creator: FreeHand MX 11.0.2 %%CreationDate: 14.05.2007 8:46 Uhr %%BoundingBox: 0 0 233 84 %%FHPathName:server: Projekte:119_JACOBS_UNIVERSITY_BREMEN: CD-Elemente:LOGO:JU_LOGOKOFFER:4C:JU_LOGO_4C %ALDOriginalFile:server: Projekte:119_JACOBS_UNIVERSITY_BREMEN: CD-Elemente:LOGO:JU_LOGOKOFFER:4C:JU_LOGO_4C %ALDBoundingBox: -182 -379 414 463 %%FHPageNum:1 %%DocumentSuppliedResources: procset Altsys_header 4 0 %%ColorUsage: Color %%DocumentProcessColors: Cyan Magenta Yellow Black %%CMYKProcessColor: 0.3 0.15 0 0.1 (30c 15m 0y 10k) %%+ 1 0.65 0 0.3 (100c 65m 0y 30k) %%+ 0.05 0 0 0.75 (5c 0m 0y 75k) %%EndComments %%BeginAGDEmbeddedDoc: version 1.0 %:s8W,W5t==$^::es!!8+RGQH=-GC1)`f/A"gG1Pu%0A+psP*no, %:s8Tk7^^abbo\QY5&:0,YHga,i)@-W\#_X*gkTrLX$%Yo>-jer]#nVCh]c$REmi9T2]K6Mqo7#TcrVh&]ls>$\7a`UI833Nn$m:0(*M>%oKY(UmM=CZn%-7_(#SR*3?i!7n)mk1Q0EB*[:Da8!:i4$5mEjj%>#58&m!>T2<X`]!Yt!b\59@EQk"bHKqC+njessC4aG;_[J9"I)F*BkeVuT0s9>a.MQ%m,rgG\\ZV&'WF!Ek?2&`?UC %:oFaFJIbO83Q/E+&(pC<<6:J?t.,D^aVF%@W%dBG.8;!:GdF2e*)gHoU`Zk\a?1P1P@?eNF>fGDuC4Bj6ou$]ej!9.>`qJS9;`mE5aW#U]4UK$i"4.<<`*MElNPDDDE^E<;%l&/1C+3"p3?e%<85!`&58QIs^%;gXS",j8$A:momTPK\S-9I\OtV93p`KLN,67$l#_F3&66R.u5rdrf>Vn%A.fAOb(1=ZnXkNkdcZbQ/N$;rHEI/7a %:Y0'$k>q3F<^]Uut(t6cR76K7nLEZ8Hi5sA,r.g6.nc'h*NV@Oc^C+N5nfY&JAjdB"RYp0WRL6h0DcMU*3BTT)+kZCke\&C$0NJllX^+"Ene_l9%G5O)_a(<XU,s7IJKK*s#,e*[OWBk!3?(?JEK&u'pu1S<J*;ZZh>`=+2V?@9;!Ufq?Nj@bgt,On%!o'6*(N'e3O[Mdk'AT8E3QOHL':L47$9S(:M1X;HTI2Reo>r?n,K+CcM:ci %:-;nHOZaI'Y'<..oA[GRBq#3C_:sYSpETD<13.J?61Dt7(*kP]>Xldj+)tA#GUhDj^8i@nYRocW#QV]4ge`lNg%qZ#E*7es$d>gbRJijSRGp+9j`t"b-?(?du_D%M*<%8oWO\rA=:9cG#+W2,GBI[kR1&BoU3"3gb0:E4Ul<5dBKHVETECiM&,3@DfisgQGGX`+fc"KAjFiMo*oW+lZd4EpI>Mt`?*%=Yk`+g#0G^=A$4D0O1()U0# %:SRTtH:O.qO9O>.O!/i;U.%?4f1F,["=A)[l;[&g*'F#p!V.eR+O2WpXReE9(G?"N)"38n35%OF:e=[c..+]g3T,0r](q;/SQe2\`BY#XQY!kpR[al'a1"7!ec@NV<q]aAcp_euf+$@.LIOJKDDK*HFj-hS9Cb3TV;D%'oC3^k!iH\M?hhI'+K3_qei\:J6+=B`21MWu]e**hNIb]''Yj?hVL\0QEDr,O`\NhtTqEfNGNnjM>6EDdF %:gUNTe?s+.X6#Aa94hWnN'Qpr-3V.m7S7i_;n&DO3Q7&WiW1G4<%.)e^betZQ"V1c,RHC$[:pcH1S;WMZ6`fIja<$EBiZaMuda?Pra(C]KBYEB<`t%JuCeWZiUW3cbg4!GenY<L5[I5q'8T+9D>5%=?\';][I8/lJqmLo#N2bF<?dGuE`l*iS1J0aFL(9N;]`Ztt.4/F5dgh)`$9=Yod;"E1NoEO&Q!!N[%L>P%(]s89(tN"Y6(KJD %:+c+M*e\Q^:662.>.`R.GLK\rTEuj.XPf(oT_t@%9pI,,3$.$Su&<:UZXser>!bj]d<t)jjm_dH/*i#2B?6.r:\rG\A!)A]kWRcg_D0>2sJJ?s2a2'fsdIjhgGp,[<HjS_m)SS\-p*%T;8(#cGn=QC!CAu`Ch9t?JV$_^o=Op#*/"U52/cqT*V0DCe_o?*UBm!,`U_bl(qJLk%I4Juj(C$Gh@m",);YTnRMW\a;GC/fShU!8r><i[F %:$=J;umr:`b_XkSb]?@+C>&<&Yf^63bW^W5>NSXD@JZA,Z8ZIE\euD#%eRQ?%gSmYY$oVWom2gRYocF+'^l@)re^0JW8G2X?ldVYq42e;9e4.\A^OGP7.J;17I1LpGO59=(5h5]'lI^7.HZ@h'CFgWlEA(!];4(\Y/PH^^+])UQ>mfUf)-f;RbE9L0C$`T-QDpQ$=(6YB']I,Lp)VOA'm\;ko'Q;+ZSV#1dZSCcrj4'.Od6bR+hea; %:Z&VN6`+/a"3RNuBU0?p"_-9kfi\ndPmTC.PbHAkQ?W::</:;$MUcQ.4\*DlLXMA>(10+3iNHni-]i9o2>jUuKN'6c]m%4FoeDR`589M%CS6EaE8F4Tg2/7[LNt%Mt.X2_/_dZEP,H8C!YmaWb"WiKQVcJCY7/jt=Md!5]"ccU4U)[so\O!LofAEX[.o7\gq]35t\682.RHN[9&QKQT:Uq^L?:KuE<I'.6]6-r.N4=hANNA,S`X"%, %:YS;EA.,"ho?k[)A-Kn*tepk@mlq\s``rNSGMrnm:i;HgqBV_BuZj@.-!uR!J5D38>:nFRC^[kB6^FX;#Mr".OG$iq[e0`f1^]=k`%h8oKI/DlM<=dIMk@\bJ_g,eeEIK1qVp/8;hE)7,&c/cP4Rc]28&sq,RG_-*M-)D%aQSUlg;s&Ga2f*SS0ZPBGVU-Sct.&->S]#.V%$,WCa*7:*!TMqQ]'p/i*jH[6*NF&-"BoX67:#kX4lU` %:W3#U.\Vec!eO-_SGX<lqE#r".Z^ml!>7![J<K=/0cRDCm`kX!#.J_RWdTXq8.OWh-dUQ:TAR]dPlGVT,9V#(nkDn&Bq+gbWU)]k72Bg(tc!E/d@`>WF0BqiUXLAQd2Q="5qbnOU0b6Y&<Q'uN"<pcBZ!"Aijb_79)bK-GA4)'Y_1Q!S<,(*j;FR#$:f2gd$=Uru!55+91D]u4ZR<]X%@L[6O<aAaM]DXMb)p\:5,g=/DK;Q/Cp7t" %:mi%[8C9Sq2`IlgE>dGG"=/QoNQ-su./8LX<5]g06Q6O7L:9UL8.$i>nAs4J$pB[\Klf4#t[HKd,S[LjJ*17\63G'8eD90;G2^P%>:oc"Bh:@V/j0Y)D600h3MFB!M)\\rO\_H^t[*A>JkR878S]NH?)J3ss`S"?q.(:+e%Yo:0-6s?@6j*tk/+qJt:qs$BG]=#26?S]*iD2t`UT`H,rR\\e'irhHp/.%f'69m[<d+<d5&mA.VB0fZ %:r0c`u24l,$k&mTjR$*KZ[`t=+RV\p#2O38f/kE"X[YYJ$181D9"A)&GTB^BkG$7Zkrsf2m%KGt#.!qkAonGkiX3,h8anm;,BdY&>7TZQ]g]\%*7BWZI:^b]+W7h7eI.NOO]]`2;0XS\O8&gO<%%1)*(G=_t'C%&IHJ"W\&LatM\8$L*<LNcO1\Zc=Wo`4`BC>eAU_Y(QjIhCC]cu/E<ir,U)R?%\K;):LOArb[p#&+_1fRucBtYIE %:U`p5Zlqjh%>*(4]6o:eRhVo8/JFE^k7#.hWg;cd?,9ghL+VmOK3R[)]U``b"WWai3oIhRP0d2RN(Gd&a6XQ$,TNa*_(`^snPoDY>A<5S$k6&D+Y"N]#a*U/bI*-d<cC:Oei8UEcRI>T#DV)%if<4.-HX7$Sib.iMWll*7IT!;:OAo(1$?MI=%2IDCW<f7ppGBH_o^>no2usRgpX3W1Kg-Slb8[sbhM3d.DX*UN,IP.C&ggc-,'u/@ %:Mq]-R;2<P]<(NG_RF"c-h]W^X(7c'b'ikmD5tHDpQTa&5_$A]T1RC"&W6_00o/8nL=L8C,6e/!X]F%A(/1?=ScG5%s?.CtN]l^lmi,:\VV<Jt4_-S^=Ett.r;jHMf-WNj[+\-^r8^<],M(4Gm2Io]G43-p70HmEQ>V!rs-6uU]\V_X/c>%nVHJ);tCirX@4M"?h7Tl9..j%hEm5@!u's1qeU!a=\F7Q.3IAL*pg7>fKZ03PQ_OQ\" %:PR0o]m.kV'181D9g)uXgP,^q>6Ie-lT,_+*9==Jh=l*:jhKi0^]A?\"j(-\DCoXg0e#u`oNK$':Ir,\hCqR+LQA2CjrST6(aeUD,.)V2@pgZ+#eZLl%>'u^DLc^bLp1R;.CXXO66[hn/Qoh+$\bAQnG+<Of*\p$HZ[Qo6*.4Yf9E.Yb_@7Q*nhImudY>sZm##FaO^m4p:f/6raospZFO:=EFKpaX0%&k/0=cd_\QC8P6d)P;gTa2G %:i`VY1=ATP@1pGc&-:T@92pKK,3?`Nc?)Ca!PP6\2e2oZ;`;:`*`&kL^lZmIXV','a3g-N>OZ4Cm6EWpdlc?$:dTPBH\Z3OO9r2@->?)]C#Hj8c<4ThX4Su/):NEPd"G[8"BW)b&fTEa]]<gMp@XMjfYk9A6l5@7MYWF@_fn?u7KP?IPL2<focPP_0/kE"b1VRm+OF^CNT-ft*<>U)Ka@rc$XP1@n,J-fC6RGg@d^-L,KXsd@KYcT8 %:H7bpk>Z":Y#@YIfG-@u6(`u*oHhN`.PHlRcAVrq<Tcb$6.TP/JS5]QlD/bWRm]>(2(*Atpm#L&'bG;/nmjJ]%Yj-ogL=oO1&tmAP[Q(><:K<YbkFB+WZ)X/`jXLo^.d@25E^>cCYj;J*i@C8OYakFlZS20_\3=*\EGbo\JdlsQKZiOfC_%aoot34EZ6sH'=MMs-P"F23blL>sjqH#EEK_Er+buQs:,R$%#1@(qZXMs5NjKCF/p3Lk %:SIMmY3n!nTl"p.Z/OsPd>uEOd14U<iUUEC.e7DO+<6q0ARF"dX"@jrY`Z)o7NbRN9D&jL[_Tp.CiC*jo]8cg#n&W.cJRWV2=78-g:$TNR:R?bBB*99/fVls-%T]V[opj%68uhHV@#hIe2Flk%>.JV'3t]=KVpV.E*-IZK2:q$S5peEf1rPK5YkE`FL98ssQ&?/-KJ^X21<%,&]KE?q%l'F_Y6@UUpMF3eoAXm`5r?OD8?-tLn*h\& %:S+@a9)Chaf;A%L51<C@al7DDBBb6FLU!"..IZeQ8d)0DG#fBm4@<gY5NZ4SG`UIR"N@2lk%lU2c;O&k-80uVd")gh?)=rRPDHZ.Xf,X,FXNIR^<=O^TWncte8*.<H7jurI(VaQf#NaL/_.AZ"1tc`*A2S`:/,8I_mM5GXocD*-pjo$IaedAAnt)6W2Y31&*eNTm+[i,?dX")4)qaNVYE"hlhbqR"KjWjV]Igi`#7)u1gKlq^QFFNr %:076XI^0XH&`j0QDeE]ZNp;bp8G%^,m,unn8FgbSIj^;)k)D\9qNUNu9:IS[7^oJqIM4qSN5A[K+!q1)mIf#J,Z=5\hnRYGFHF0<N`T;(ZgN5YG8-u^f>[3P\9lRQ.q6?sd+(rZjC=dS_=..E3;5YNO@G@p:O.u-@/i*@,Om4g4VR&us>UMpU;0*0iWL@FDX7F'F*3COTE.j,(nSK-ca#eY>j1dZX^iQD+o-1ZTn&R,#b1TD-Za\(l %:ehn'\=m$PsJo.QZFegBQEQl)$NFQ/98ku.E(LNA?PA;+-UnP!:31C@@i5g/lgt=7X:YnZbRIY*=,)`Kqk[?>Q5@?A'>c_O!\!eGl_6!pnoS(ibCSEGqS,"2dMY]2-f@R'JX`hhX$h"V;9EaT-9f+1B<QD=0>\-5h7En4M_G79mo+$M[3i-RA."jFCkq^5pT=fVX;'3t8+[4sp6@:?5AN_\1?r7JpANGt]8b4&<)CcZC84A>'B9+^, %:2o[VS+ARQN`\LinBTl^DBTq7)D6c\#akuVH_0-B,&k";IrB5p;\-Y_a+LF+0))u;IL/EYW.n?W1p6X&j.E>HMh,U@*;lmeo_R[gBL5K/t<%^_AmO.c"+;5YCb)94O8?*^oGOZf,)nh(<WHulZK>P%#Sfnn0l8#@8S?C+h9W5":`M6%uhYt4.`:IU+o0'60iAIkm;_7c:m;>6g%4q-!=..E3;7i$LYi"KC7f-\*nE^I\rH6eg"umjt %:rV(`5rV*q2s7a2)UN&/^es15bQ"YYr`A,*L@SY:'7$*"VR"8b"Xr.A__EgqY0QhUmV_1n!qO)W6]c1Q@/]^p$-9AGL:RmYGes_TDE?3FQ`gI9k[0_bt<Mf2#kP44e<(k_5kJW+]<,6Op60ulgQYZ+44L+oMIW_^7L5HCrJm=C:j!lAG+;5YC)A5U&Jts=BkpO'@cG=#H<,6EdC,^TABiR1$dQ.:XY!tJh36-fOX-W"B;62J[kD*^u %:2E8!4f6321)QCT.SqbHhe"1U1(`c+*g9/:.]X)$jNiYHH<R/9sN[jY..\HOe3AP>$--TB<(NBg'=ZV4s:a7ic<25K6ar-@$TqS2a+I*=tC1rNdG`W4@'dZC#_I8)k(b6]GMr3GcF2JKYjYTGKlDD^@nY-b4XEj!MHBmAJEk)@WrVJQE?-@>#:$*6:UL&q!A0/DP,g9-oF$uG:_B<lI8S'$5&#i#<=O)nCeEu,*Hg.i0U@(H93G<^R %:/r3gErR%kaVSR)9%q"7u%Bp"Z_Ho2-irJN\/WdK]j*DmjmWXPKTY%,X.6>WKM"s*mLCa$[+'j3EEIGk($1P6B6(gm>U)>UBHe^V=ce"k.(k$!"PmTPm=/4YHO3O9nV]'uoPp%*H]Uor#5qY\7VGI4s`?6rT.S>dt+jB<J.j[lhbhb-9%78:qO:>4Ze'gG#^qb;^8<koJZ5QQk4#YR"M&L>G?Yi4$!7h,=FAeqel`9ju98QA]977/$ %:=[VlNda4)dlFT%+DtDkkBfZkI^V.,p#&1I/U&$^MMYCCsWI?L$a(AChVZo,=PDUh>`9tT!nDA-m);EC65/kVS[)pWHD0"pTXa*AqpLcY7bltktDqKNT0'sI4[%%/B-`_glQ"C`1c#kiXU>OuLC>_[j8%`ihA=FM0UmfbNB6cB(8hi[[Q0il![@\=.jn7$i>\-6".1mZ&\_HQgBGop0L<ZH^_bTIBF)#[^c^aRcDq#>AeLC0J22\&" %:;?N,37TD"O^J>;,Al?/IC>coDL+H<tQ!-uoo":hXj$d#(;5c07Y0'%.=o,V)dL2:hM5-f/9"lCL"tfks.3C%C#$HG">,o&1K<Jd?`,[l9W4=erEE[NYC1tgV6RJ)m5E!%oKV\1<P>;YA0Ko`^T;7-3A`$Qe%6Sgdl-naV)L15J+nGh4I*ZTGgDttT>FDO4d)5X-'de%Z_h>\]!]M:84;&;YhA!bWXNIGq%;TNE;CTNC\B7'P7;gp' %:A?))FDAK4a`a)L6$n^VKrcLYh>kZ1!\SCOAY4?U'*"$b)m%8ogE1.;/ki<nZ9-.[?r<"))Z:i<Bk_%V34=0>*U1=9m,\h<_26TdlJW]7VWHg_uVWg3*hdeV5c#(`3YHo39(CVK5<D\D/C7bBBSAF5qe@\XWS:R![C=L9k8/9MDMAff90uo*r?Z6GP@2J#?e7=1M1o#m`d!M`1I(G=oGXWQ/Yl%1P'p`,o%6,9n%,G0CA+#n[_aoiE %:'68i.Y&SN=>hM^Y/61+9V9*!8fV4+$^$Uc!8$8l\V5\QqgiHL*pA:!8FiRPm*0]<>=DQq6]PnT/0A#>*C3Zkgc61'P6QJ0VIWpUgHA]+ls,&U#hP94mWT9$-.o%k](&=_W)L8ci1NIpn27hpp6fp50H:^QUm"-91H1_7kq56kYrq5+knX?]FlQ558_[X,26R".cM,m]V0Eq3aie>LHr"I-'U#gN-:uuMWTS>Dii,gl[U.0=0E73n5 %:bV?I+mdo%>;8pr9KG9n*%]^_%?l"fg5O,J1B0-DS[RW>r$F[E+f_WF$c8OI3/N6)C((IOQFYbsE[J)W8&2E'idfS#]=7\KEn,/?X9&?^neYjdJLi)dX,Yj1M@bWmqLW4C*Q!spq]Z!HTLKM:LYlfc>16NeY*e]b*)'[VTUYg?ufHX*i4PO#g%k'?8MXJoM:Pa:8)=sYmTif6pc:2D@MN.>if$jYM47G2tTBJaQ9AT9>\,.8O4cTob %:Ns@;Fq!bujnZSn]`uaCJ_%V'Kp(?7]j*5QPGF!Z'T$JJ_<f@ke1)73;iBD!ie9;mb8g!%0[e);n.fXLE)ZKGtZXWA\CA<g"6Pc\\Z!%]J`AX?e\U4%J"=m4#X[Z<8aYDf@/KFA(`?dQM&hfBM7\=>=9$0a`\k8X%65T!8mH/DC';G:j><WC2@I[l@=\U5CnUVFcb(PKVh(!j\@EH"k\pNNifsDU,<ufW$11Z82Wh@SLDQ(m>TPuP, %:PQsq/PYg;kOZ[':NP*@"i2>Y/8(0X8%J8GNJ\9qFDkKXf#3$#VV7Vdb_^B;@RZR(lF!&FV<#Jg;PM.9\<EFEK;%6*Sj;:oAO^lbZ=AkFO[>buqI-Dgp9-7t?8-r08_7_aI$jq>ka;tM1,ms5>4U$,K$\F_G@O)Qia`Aqa-Yd&]G!8Zf%12&iFm7jX\.t642GK21o-c7__a8*;fQLm26lL%O,A\0AnUJY]F'"mo/=2T^@i8!!aJEPR %:$:63lO:,N![,?_"V=51*_HV9'4(E/'2Vt4%#p8AiM(ZbBighe?,kI8k\.kF9]iNt<?4G*aFW+A!ePnC[IfPb9k%-aL3GW`Hbt"EfEs<R.:u*ZU2'dU]P;)3('Z[H*8#U73DE]8R_c`nV!B#7Q%7B9XdZJ;4F2ONUFKG#uHo7YO,0Ht_)QOc6XqA^qngui`agRA4<g,p82:VE."NS$.Z$_GE]]ooTW(*XKE7TjQ;55B())C;R-[]T8 %:2nT/mRF"c-T-G(ZSaM!,H)H_]H-OIn"+0EZG<&]"Bu:1#Uf$g^T@Cs*ko?Ib2<(!M%CaNLgJcY,4f=h#a3@K!a0p-U1,#rZf4rt9im(^3-LXdYi$kk>`)"mE:9utCWYE<)BVC,Z2;e>QkI'$YFlQ"Lo_GUmTg<F,]-GU94$M[lJM'l-<@8dE.MJOFGmUN4JSsS!E,p:1.<(5QdA$5d*?c/7bLP]9N7KbQp."$K!pS0.q@OQ'pJ&%* %:%WG5&!d'DuT?6d&?@9-:/>t2[[IRtb\JD[8i_Fh,5BJHqGVgT88)P6%dqYZ6],Wgmr?YV(l*"l"UE:,[_ie$:d?tKX.q;IZ$Gf''Ep)H..1F%p_4u"b-p=gh&9j`W!sa<&@hSb^W'(S6BcM(G5Ya4o*YWWU>WDP(4L[ROQ.3jP67C[(W%Ee[GZi(1iMlWErZ<\"i;]0J),(J[Dh,rHH"t/n#Z!%M?-bc=W$k6#>mcZ[Oir73dE=dQ %:O)G%\mGmAj+;cEsgj^esk"@Z_o:>]%Y05,g1AE+i*dkO$GNMQ^f',9fbrbICNM+1!#C^sIc?o/Cq`]>=_)d$aVnIanj84&S9/p"$Gc*]#=7!;\U9K^JeJfr2$CC>Qk:Q8akj%k(LQja<]&^+o5()'3`:W,C"*aRiP9diOV=ifn`:Oj[kD)NiKAG,$K\s;V6dHk$7lqu4@C-7>>VaD]I.8*"MYK\;d8n(J#G+7Xj-I\s+,.I%&LTZU %:UB,.+kEa#Eq4eCiP[_HRq*Prr+b5#f"tNd7,F5m6!WGqWFn&7#X"75c5>$j*nL_f1.uWYX2q!$mZmObY!N[K,$Bl&'?s<3LKJ.3kVR4M)+/NalUJrYT$CE$BdrM)dVdNE9:63duUU6Op3p!T`@%+$X@]7qD^/P5C<[7SoQHnU,@\d+VKtm,<ra:jf'[t(@$\2%(j-P]ZMt([\[7-#[2--P6,E3"L.ZL9G:p*gu>'%4/0$]8&1>p_2 %:*tQL';^tArGZ\kHTp2rP.Y[-Q=3"tY`MM!L6X@*m<7];fY\\VJ1jZ-O<5D:5&P\7VmN-ukZI+:he,hH\OtekW.\X[X`nqE[&:OQ$62PMmhI')7+(dq@n;Dd$UXAjk/"+Cc4T,_>OoG5$eSo#)dl:R3Kt10LC)]#UeNk^Di)W.06%<LIaK[MfQei4qT<,K'c-NrPdk$-QCun9g^7L[<GAMeWFGC1W+\o$f2&)Q!+fB'Q@lMD%9jD(5 %:K_?Y?<gDI309M]KZp\%Zhe7l/fFfbi2_.(N1^'_:hYbK<Mpt?pe,:_CWd'jtC5mgum7^"i+'amJIoq^9nUZA[eG+*m=06ZS>7DVmr-@c9?:XCiaP+,Q?C0I5W.S:`F>RGtSWHZPWO&'02^iErK[Z7:7dB99mH.81A<04YFN=7B_:tOWSFNMB,A2,?l$LEp_##5>`d4tZ]M(;6;;]he2"FM7\D*.sO$.=cq^FeOm&rW\=e)Cd<5>cJ %::El5:O`a:0WI0(=kt>[Y?bN;M!7NYB5?aBSW?7-Lr4oP^oE15:/Kj`,PO]K'LK-^U#,%;-6$*l+)i)2]766DM1bR4Dkg#\f6haI/Y^^1i,&u`%X%!^TBa=_3G2<"M@Z$<CTi"?_Q8HgfFbX\b@b_Rj)(^bhduG'pdAS'2NH*G03*#!84&?iVg77\MJ2G*;j`)OZ/O'hOIM24O\u-7N5N$%P6rLiKDW:(34f`%N$3gI\3;Cnd<g9VE %:Tf,YATc_bgG`L/i;s=/D(keMXXgHMUQe'Mm:8@IIHuiiqafg]r#LCC\GSK0dc-R_BB3tFQOCh*I:R%h20b*N3An-[=7[!#a/8:-kc,K6IQKGa.fV]S<IFPEMk8ShX51[f,pP]gpNU1o8`Z%!-Ms=P2f?``7l-Y(T_2ik(Q?G0sK2_nmDiHc;qMDbtRDt7W,GJN*rJ#&e>-->gQF>`eO@MS#RFBQ2!S;UepU,eUB-5sn_peK\UdIf< %:9+O/eC/O839.4N2_j622>p:j(R#^/#1&BTZQe(8nW:Z?Z>qa7Iq&ulU8;j:Ih6].+kh9%8rBa]TVHngsk2&iJnSFtkem^_C_]%&%3qd-r6j_n&Ol:3r2*ns<eoSt!1;!iu$g58AO?<IO?4.^Z#>'&fbG\F@dJ*H?Y+q\KYEdU"\^cCJ4M=Hm%8ncebu1Z]Useg;rDqG57d4-<>2="ZC:_Fk[Y5N\8C?Af5-r?K>%u^LKhMn[DG';@ %:\L"m--acYn5_B^__CI`t\5,1JYShJ9OKHr+r@F%R@@[#=DRX63j3^Q]ru0/S*B)AQp:ZT??r'f!55%"V.bMd+]K"Mm#\T4_kg`62iioJ+0FFR^ZbPXfb?\C*9KM*/\Hb?(\VKr"8Ch;KBblrnX_Y\mK!\mrn'glUs'C=mEJd7CO.EAN?U*d'n\i>YJrdHBn6tPdm3Jdg+7Z[E3pp%b5C$3^?%<k/Hibhn,j('G!rj*/l+XAFNPpig %:&kZu"&:JMJVY[4*S3]N3S@*pgR,iNUf=E%?3HH2oi#.X][Y8g(Q],gLUGVq4IW6mf3C>CsMSr7_kM<K]KGGqHl'-:HD)FXVG#.A.TolLNmW[n+UO=j:.g99G`';7ESg]G5n37`K0/o?rXGH[W_p=t'FZ8[s,:i"#e6\DX^5(#2=p[uJcfU6YkUu.<9D@5I\M(<#GW$(0X5F3nFKBtUrZg6^*dO,L'ia3t'cIK#18Gf%&7FFP:aI-= %:+m;JeY^eWA7L^Hpf-OCGE``)R:$o4X"ESjGB6q/<cZokr`fs&u^!qoJe)cZtE5BQ/F51K@kb'ZHpbNH:3TG^2C$VGkIpq<T^?;+d`Cd>@iL;1!9:)I+Qp0X0&K`=+hj!4bo(@g2G$2]&$TrXO'E5$r^r(QRa?d*(0H=6bd*!TGjUt6G6;T2O^S`t&[.?!.J#ePs4H%WHGT)]:e$Ju6(RN1A*liQ2/qtsHU7VKb.`KU\#>-)tWF,C8 %:9IkX<9R#TgiKe4*5=,1@B=30Dejdl%KV5c7_^T^NJ)c7;]-(YFn=C@BQZk_d3*Q?#Go$T@c21S@A5rN"Y#*4s;]/(Det!>3\b,$I^?CN7_I)$O=7g.AV(?:'AO@D>JQB&kC<9ct[(1haMROpWm=,]7ih//U]3=(B^Y*9pj/Vc%\_`HgW1Lb?P=)RbE<>.n%'m@EE9S7KP,%L"5)P0&>t6qE#5.k3+7uLF)41oUbueL?\DXd%E#;\1 %:MLYQs*ri:0eF3E8PNpC=qs)Gfn(M%(IKja<P-Ja4!P\NVB>^0i=h?&PU#u4F$OhH:=pP"$IhrZ4h\7b3%cGTS9Jfi/s7bXghA\#2m;e;Q`g[M['?9*@Cs6G4auDGa"JCg)i$aHb;Q/p6+QkME19M?b8THe*F8Wq"Ec.S35lDW^dOfX,d,mX]90(^#RhnRbDpo>&Bu@KDo0FT]5E4U;Bi2L3/ht@R,=Q^[:m\Kg6/cAAq?M/&\''6c %:67,^g_>Q[JeZ/p/E?`2l6PT!ih$8S8r*cD3C`2r@K)g,`OR?G1pji-JL@4>,OX=Dcaf:Ja>S*Rj;T_]d">KF.rtPY*HY*2W!'h=60ab;lN0.7DnM_J7a-$gOaV^FW)U[YK$k"6pLG%C'GWir(GMQ\e7JoE>;<4GcPGaFgQDYUG?^trTYpe_dl6X6k3LCH*="\+[8=-sX,ne>.#P5jG5q_TV4Mj=FEA^`K,.jtKb"fM>H^_,H(QTC. %:2BRG!LKk%QYH3Z"!""ebY!qe;$C%(jY\tV6_]bAE_I*ighDaQ<jR;Y,Y(GRi*Qlq3bAbUB$HUb;#d&ZJr34Q0op+o"L_[jnTLH$V,&6Q7q0En%hRs#Y4.!7;CZ?3OHklJ>!)8R8ghNgK(<XDlcR-sK]LYV3pchKEErH#,P@oLYNjOfF?VI&N9ss;@D:q=[$SCFc3(Z$E;>2;DA(8qUE`9M#p9<R\pV>GR,"f)oNfI:SM^eC15Fmo@ %:%Xq^.<k)mG;B<mGCNDZWA33s^[Dfk[Cce(_gfEKR/Q2O$osV!tL]b(q=8oTBX6!piYtQBHO]aZ,fPSYNS[K7q[_d4C>2!#%oig+29u3]!OZ]h.J$S2#5L=T?[o'S]'e@oHVrb8Hcc0`8]Bu8XdoI`DU@$=oq6iU_)V>PO]jrWJrYa&JX/!+\28!`q8'\N-\_c.cHt0Oc<(9MYrHo8p"_S%n:)r#+.rmbhp/>F;>M_g1G[C%a/5:-b %:fRd2f[f%%_d?]-)U@"m+UP\PA:+X/g8E_g;s0"2Q(B9`FL^]&4#N*;89aBRlj_d,".rI=2$,Zeup-s1Ap/=310&e8HeB]bEpthW'5*M?XE>!.9\!CgPmEm9NqAq$C2S<J:X_t\O>a83^FTBq"_Zm/0BBod3fmMH'A>q2Tg]9S<PC%a6)Au<nVk#H#ZrLkPj63es-$MQ-XCh@.Kgn\Liam?,l9(o([<23M(T@?<\Vo2JLRggp?u2a& %:jDL?/-b2>#^8!j;*A?OHgrj*^g.GR<7+^4@%9ZeGP035+:cb@@!S"8H^Z=8DN<bHH34WdZgrD#@^*:33`onl31-V$&9MX9#q*Q*t`S#n!;Ah%&LL;S6je8X'?b.YHPq0utjW<smH.[IU['Ic3hp[dEj,>ktj5hh`cq9FDZ0JoF@]U'eA[%*a,%J0CUL-62[.[_d2orI9g$&%d6c+%6)@%i8e(Te$S&1GBESK(+p4U#MC;%aZ*_s#d %:e5#Q;/ICe[KoFk"*V(JbWqo*k`UM"E))"d*dnUY3BrE%":T&;)j%r,cr=G!A&O8g;Z^ZC\G?Cg;EgE><m][Po[)O:(emeNS6UttGbDS&Y]>HsNCtN+WBPGV1h+5gIZB@F@P-a6FDV>7\Mgi6";dQEGoYNb%>5r%VZ9Wj5jGjh45q%q^ROa<"PuE)+9Dg?,Qb):3DP_Nt?_MY*]\H5n6>4,'m2,=ce;D3a[)s9WkOPYI=CaF#C^grp %:OfQkRf:[&Wm0mr@\(#0=IHB5.1>dfs.+EGEYL@XJTLX-^+*7\JDho>mP:0iAF12eVW<,)\oJ)lXonG8Z@@^97ot8T2%4mVCZpSlGSLK&(KZfi>LJ@=T[u/ig[+d:42Y)%@MJE]IUV,VMPu:pfb"f%&?$ZiY]SW;pNgg*K!>SlBnontsmM4^EPfe@6rEuUSEa*h#0h1nerUGS_I;pc8:V9pSK(o0`r8$_nCK)_bRn6DT\biDji4I#( %:^h\^Q`#p5P>-L1(@!goB+HA8u41kgj*7AcLn6t#VBO#Q:@n6*0_rm/%\cP;a+eM*nem"*Q*SR:5P,IpD#[(2f?nTX#hN03+2-)h(mH,lb]S>[KTcNK'/<4g1aqS'@`O?uJfn:'/bG#\1hjp!mqU;PMXEa*(5N@g*=@O0`X>':Xl%1Q"l],^t1tLk%g_$<paE9>dHh+.b?"6ic.$s]cg?*3A,MKojMrM2iF$$NnN5ZJ9i#,77<9.7@ %:98u6F\IHjU0`7(eGj$adh/=@GbF$2&Q>O"p%"(N2r^1JQ),!V0iB71)iB9`)Hr\?WrmS"*s3aUXjM/*%jD1%]1qU%;5/#Scm-IL>)O<C[ZG=K_$\Pig.oO(Ee/^l'G6iS:$b)<OpkVnY6dN!DX)lq2oB@C,]P#;f$19Wf#TE_^)IDu/:'8OZ]bl,Se'@C-.L27`j`9j2<NltP&^nrG5$S6lX.#K>D!1eY*Pa9\beZ8dm_J@IiEdk4 %:@Qc,b(8QHim(p&4?l:cWO?FH;((BZq%.A4kjin2U[4;C:McVWa)fTH;T2R/A`rW.NdV$00M;c5@qB>ZqgsE51qC&:o6f9iIS,M*A1jIojD9*b,mgFj\FG:;d_[:"1:G,uSruRdg"/":f6boZDb3Sl*T-6%,XVluSdliU338cGK$s[hF@QeS>*;h"\ZD[:6i;^c86hXnYS,"q*IB55P_AQB21OT1'@0d1!@0XF_*Xe[L]2;n<63dkb %:<ZHjMk'rh^(qsg+)KK+5+n,Zi!hhDcn8]Nj#!nkV@kTm(L>[-DflKm]?q@o_229G"L+bO(8nNhX-=-kJ[TUhia0fi;hq,M!T'Y,7\Vg/<',&4'F1O\GlN;%gGQ/jAI([08GZPp0*l#\+/F2=)fn1Gb;qDl#eeu3\$ur8`]r*u\e/^*(cSGZq5#su6N*ZP9@9R",HI0rr`:3R]3:$$U#^gq#;jiOW(\Y%jO2)A1m,+[Y5m]Ydr+XjT %:a;tcM"iGOF_Z\6rQVcHT5*(Q]1^ncr>7eGWU+*:Tp&>'MA2#5_Hkfp&m/LcQnG16Fi-c7$.BGnOl!QYUS37>&!aG:+6hXoT,T%lo$r],Q]GNCY/92a._ah&r3kd!Y#Q`NPPh0\TEsRc;@n(?kV]S4_<@<-mj,5p=+OG^X!VVbYh8/R.:A4$c<U`5&_N6ntdUJ6fb3:t)%*l)GRGlV)F20uu&Mrp%F50:\8Oq'Fmp0gIYMG<sk#CdC %:%*SgfUFNU:3^0`M%t']#j)t-+(t^@0@8E6i#X450ZH&F#_(\M9bgmXec4DYrh!=I4pD/:^qjG7.]0Y;(5,k+/gR&rXUPbJ%(uC7a#[WdD"Pu/j">&qp;67A7.^Nr=$-bVE5J;-pONe1c<.DOj/[ECC@c7`85]C@\gNs[Yrc(+8fQI?d*("r,g#rgX'.#FI_qT0UJ,HAE!cOX1$.=BN'^PIDi[f.<$G3'L@E`o:O?FGDe#tLucO/`q %:dM^au_jY1l&&(eNCud9^i1lYmnNVOA:O0YOjVCsY`L2i*5"W[.?!U.^@gW1mMDHV.f"FKL0,8(f@tLrcZ'>dOK:uR)o[+QQEe^ta(tt:\bWSnW"!&K_]TZn96-g+uK:f=ISH$]i`:3<n<\3!<YJ<Y<B!TYI_OP&66S(%h4F:Jh_m3%'@J;Sr?+Bt5d'6Qa0&Mi\acGM\nk8e\S1(;XRCE9'Z$9LNjSpX-kf/i1Secg)^7.c3a!_9B %:#o"Zni[$C+,aK"8&*8,VP08G0N>1PREpaeCrMUB&0!Urbpp<X<QI%(Ob)j>S%XYI&[D5k?LU)-SO-AkTn+3iLXaA^<a(ngeCO\_FBRk%f,IcM0&Y)<2(E.[CILu+.]c5@i)>IlR*qo;L-d(aLN<o6*p]**j'0/7:]t2pK4jifIde2tOP=`Cf;PR@Re4/f`bSoj(O[AE+-@7E\S)>lDFGA25@9k\,k7r3H2kP;,#/4>`K>"k:$Bgo/ %:)(+J@N]is/-Slo#N"=R_?8V$lnFb?#fW4l46JL0Lmi*g,FX-V>b:NALY8BY#@$ja>@=Fc@K/:H[l95clRo"pSR^.njR#j@o]q#!:jd#@SA+o7W*A\>Gj@eUfo@/s*P=FVE08i&f=Rglj_-[0<QmE.]^g8&S0k:fL"U)_p3l=:S@=9rLo]S[/7DfgO@)bDYg%3HO0e\XWFCS,?Q1.2Si2SMe4hE^H@-6EGm.l\s`%Z=J%!t#6CL-,! %:;jKVW)1-@CW$-LA/1_XXl3s5R@08='<uZbDlh%4$^pgaUlr>k6:,&l^U$Tmj]k4'$I!=[5HVsa1^pdZVB<NdCTi`s<f4=F.L"P^mmd*XgfoS?6()779kmWJkL(2B9T*9qQUm=rHJM2`m@nBrA:gOIaNj>J)RV!h"Y;Rc7,dpA(o<fB;ZG[!s7lqKmKWUHjPMuaK_L^uGQTZ1O'F[Y!$qkYrNQ_ggjSt2cUeYA'^?^&q,p_DNG^j/M %:L-s+XC+LP+[Map1;T)S$&:7)Yr4]N(h&X.!a.Dj50)"_kB(ejmQbD,m@)sAtNV,cFPg^M9k6r<!)(&YrA?V3o1'<`DS7Sm"DPk(PIltSS9)Hk(%+EB[f^!pM"fCE#JaucHo0L^UlR<?I;Q6ebFa[X(Rd@kpU8Yt%3lB+1+e":8?[hSj(Q2?j1BZMdO([u;387kK^,Lh\RD6\!]FG2>@I]>,?qEDn>;qqgHd/3cYBD:u\%N9X!iuK! %:[kk1l\,BJKZ3S:IJmgO-@<Kj,-P(EU\$#I7$%319"7OfG`8Zj=VnAVAD.CoKN&2b6HnZNjl;sLdFhHHOKY>'!Rpt2A4%pP5_![HE`tER/1h7,O2$Lm$3lB[A@8eu")[2_;K^E3l^mjpCZ1q"AU%ilkEq[.N%q\.;Gj!^:p;YESi6<R`iZ37_f?UNFIDV-WA[6f_X^qfWD]#bb6h)8[=R\Pt_6j_*90LS)R@3$i`&9/Ll+mdUYe7Ur %::urHcmVn9YHK3f$;P*;1,;FS9PfQc%>pAd#pO8F6E!4.k;^N5@cs_*9jT:`)ie8P&0PhlsYbB@H&SKbObja2%"^"C6:1iG?^9(LPS`,gbM[mp4g53:N,_cg;%:EoCgBbIhb=\(hc6rIXQ@E$-aa_t1;bpLfY%gXs>ob._QmL1Df:lGX/4D*9/7g@I/6+5Y/9.!PQH#4umMMY6TOWYg"qPpuW2V1J1L;iCA(3j/>B7DdBk@)Ss0?$N %:*M\oQ-0L<9MmRm`U\oOP@+s\b/?KOG/p=H>['R^'&-H'9q.hPSg>>jYcgqo^RG0o:8LaWi]g[E<p1St7JjrtX!SVN3\0C%kbn=+/@]>dWR"<?m6<VJ"Tp/XPDthXZCM$%NJCLBl/Et3C!gBOp@4C<b0uljppKNqIC`uI*G)<&\4Dr4]$p+`L*Hd+-35a<ZL?T53=E;7^AmjcIk?66dSQ&IPSo%SWp(.b!m/WFO@0qeSAn]8k4iVas %:5P^lsFi79D4%i6"b#8*OA/XiJZ]r>o%,$9la+@_9SRGUFY`4J_8?KA-V!5i$b#=e9`/Akee.1=sZe;tFFZ^3Q.f8D6KO\&6Q;*'9i_l1R_4TVijFP36%_g,L[V#s#Ci%o2_]CkVSt'4n1IG@k+-mK<3uI1pkuX0)NAD!aZ^\oE3ffa4h%:P$9RFh:`T%UD3ndeSA-n/T&4<Y*$7t`&19f#;_%N73'XF-8Do&Z=cEJs7fZqEsFF6Ph %:AM)][Or"lIa9L[,fI`3Jjf>W\jhHG7$'CpgiX/>'Q>.OPs(l7<c(8>p]Ya$R;R5Jilo!m,nkVaafqXhOPGFKF3l?N=@='fJ[&h7u6cLiPa,IbcZOC1ZmQpObatc/KkD=AJ[<Nn=QkD&+UYNm@@p4@kR(VVnQ?KAB9:_'cp%R_iZ3S:`U(6_nk2F5V:sKUk_S%U8+80:16*6Q8GVrNmV>IA?L:.Pn=k^rZ*f+rPkoRspVR-sA+Kf4, %:7q@q:pa%Xgn+A8*/"XS_66<J?,+,keHS?El(llr\NoUUgTuE!7=:07^an$kc<"=VgjPK3YU!LWh/9)(^Lgi\]B^7L5-,nIIB\blUAQnI$l22Eb>^eP47f:GmrU;_V/t;6IZsYj_B/l25`9Sp4L5`O0_bu+&)i,#Jm:*%<M3OA$[K\9C52$+<%bIE3?MpH]BuCFGP1>QW0PgIbQEn<GfYp+G72HoK7idU+$n(6I-ZXrdlcu'[99amn %:gMusjg9r<O^j#/UYgc7>.Bi@[F4iWUg5Ijt-iW9d9-/%Ji4G$dZ';k9.Ft!7QEcCI(G(%'0YD7ef8r-4INfV(eeq6A$pQX+I._&+9=mBL)>Ih)Y:Of$H?_Dhf[d9[;Dp<D_tZ/+QMgDaJT&PH@B"gj>VER(AJn3kB!4/=AEc8a9U@mZ:(n&6lO7EFL0`"3h`Vt#11nHZ!u&.L?l;2A-&1*ndobbi+.88;HC[g9bWk^)<#q0Tj6*Pt %:f<`])pa(7am,fktAlG#BV\71/*5lsPKAeAtE44&2%VOGEbjb#(BU3qaQPoR9oLkJb2N&DaS12Xe$PYBA0hglHR:T\%O2,re:8>X2i2pg&bqcC=/A;7IKsgZ]2k'*q(q$fZ[rf'#Zh1QqZOF,JZ])2KZV7Yu[EQ#%[5@',&Pa5-(sRDg@l.PWC]Q2W\Ha`$qTl]YZ$]t?MiLYYQ]dPB"O`SMQ5+mPT`;q#/@4&<;FR,t_,B^o03IIY %:',V]jT4L.&OkS)_b!a7lbQa^<gK@SI!CA]n==e.DJ+UM]dk<_@*\K:jOTbR6B.VMYX[(drW@UCs6E6.9\$;/qI68&G!ri;M=B^\n!e#u6@d2@G^2WjLIuS"s/-e@kIq+o.nUHVNAM_58K&Kcl_r[C3/n;C#":uE.]qJ<9^n;XWd4<5e4?J4'muNJno0?h'Rb="'*3:VDA7/,tqLhpg5jK"5@idgkO`pdu+#=$.g!#Oas0"#uMr2NW %:Y1+>liXC1%)<T)/ajTNu_8(#^^KKjKmtbDD9n=kkb[(fJL(X-O=N\i&!d!Of=_`rM'J%f5i@OAWQOpTB$VN!I?-$W4oU^;eiEDf23mOt=R:0&*b\R560JLi<DcfWTE6?@TCC*RRQj4hQ]M1#_jM+FrN36-NV0'CHYp,Z"@B"l+6IaUe=K5UtaC^1m"iCd1_i:0p+#Cgm`TLCXS);&tcoPH8l3j&P+Ympo9A4[7"-I"o<<l1M173oR %:Gth]1<c=:M#Ibl/+m=^!/>FIon(_2"4\l_7Ri-Z*(iInBDW)$$RMc<O=MV4k=TAX1=U)15hl]g_@I"i<m#k_$+>O@3<g.*]hC^L$6jo;djor`pXe*Kec\@%doTWonqG#%CL>)huI'#Etb<%]$IV+<XldBd\]FYpIlbtTEq(A90MV>P0AIb9hJ]KPCn(oU:r-&3`%A1Ek5FP-J!krTl1<V;&hu`LQAuROP2Da,7)",rmmbnT%N7T*j %:s)[YPiL:OIp1c?"(u^gudOt&jcMR!LQ<Gt$Qk:3*NEFEQ#(7sT,(9sCGi&aA^Al5)mFtDZr:+lp2Ub=?AqkX9_gOS`rLDgH1W.S&T<O7mcb[E$i7]`W(>_Kq^AQ5>QJQ#5#9q(@JZ12q]gH10pno[<"M)8Y]^d4=^JG8(^OF2N06J#8RGe1_n=\(r&8*uLbg:Z\&^+GN#Rn'L/AO$fqo-2L9@[Oop[<AM1:6M+_'*BS5hdt47\$Du %:"@I[:=NZ8q/F2FDnCg$_AcCChaC^1d28p>Y9ej,pA";L#1IFe\1Ao*%$rei'_c'=QbATt#QJu]O5\+R"6\ahU"Y*SCZ&Is>'MGSfKk2bRn:i_SN1VV21W(;'*THCH3Q%IK6QGgUmEkQC1s7L1$OjDgb%01RZRN)>c#J\bI,KRsd-p*T`]D0BI4cLN9]aa%f?UoXle@W]h(=RsrDO%3g!&r]@/.(Rn.]Lp`6?U)h)`Qe0*DAo`uolH %:Z_oOdW#dZ%9Ge!gY.Fo_6_>Q\n\<k>&84.4N3R3UQ^&`/Z0]`mJQLHN/Gj`r0P$MSBpM2RV3Vj^eWt,)Rk.bq4"]>m^:,)jr*VNn3GnSN4%AH"ULSE.4c[oCU1EG3ail%q0D$'j?Ema7E"rB17?Q%WgbB/O/QhT$!I0Aq_oQ)-,IRt?X\e5+&!jWsN50,7)G'X1/YgI,ic_Og$\e(*[I>W.RR/p]peB-1?#P8:SAoLa)SAMV@b,`G %:6LY#G1=a4VnC9_t+Nk8;/+8::/B^*!"0hkN2U?!gkKaMEs5k50GB6]a>cjlT>dk#m`J9#oI\W"L$uqt>T@En91VCjJN\E8JWnNiF]`l3e4K&0ifiOJ9?>:>_b>^*@+>V0MWZ''LY[1_o'%L.YF=Y=fS;:6TVb0=JL]k`sRP/2-6a9q@U2:_<Z<ZDu8"(=XT@&m7Y:T_Y3lYSebDkhsG)2Q1LLk?fk^ggZ5lEPkX')Yl[=9IF9l[#P %:HF8T=jc;`<Bm]t%q*OW&67sFN)2atq(4@QujX+V"b07(d+.6]"lN@F3bYVH.q@2Od,VtQoXB=P7a=u3="j9$V7pt9U+-oo9$H4JS?jOs$[/^OcYJmf-h%[/_U"DqKd<CaVmW+&,+m;*h71ZKF=RRtP@,CZo/:5s_4KfgB/E;Nn"\jd]oAdoV2<&\.q3kp%m.'Nm<h=/&!QNE:]F>r:p?=.PRi1'!G,XjTZTR:Wa-[`6:;KGOK#5T2 %:p\k=#k)fk"HoNe@jiFh?/3`G`&/dqJkmA3@quWW?<re/.H&<?NB*LQ)hAILUi<r0T_6)%pCh>)=P$.FJA<nU5iE.nR]NlV1PdM>:bWd$?'W5<8]F+&/#h$A%%n).eWFkq2PB-fsb>WDOj93GZqu^:[e#j]Z>Oc-Peq8ZmB)#'LiH)[c^YfN?!-`?m(!\VdF"BN&WaUHJT/'FhbnZ5?iuOG.XagX#_a:-PZ0\rd"W#<F']fITjAbT5 %:Q2a,o@g0;l>2p3)<^k)AL12Nu7Gg[KH,CM[2`&[)pMYH#n2;,NIi0lkcJD*;`Q\=6Ys!e(OQs&/%LO`[$-^-skDh:O.9?(3S<rfUJ:+aT!7nE:bm_Qd15il1b`]aZ:,"I4hLk8Sfm=bK%'<JBi/c$F=&`EtQ?ha+%n).\EQ<#hko_[e\fX2HD^e`6/,Wc::L/a;c^TIWGA/4i)2atq(4@Qu-&".no!u5M@#IF#;+#%O0^/?L-7>M3 %:!/^"jYM9XHYft.Q4:iBb4S3&uaDlbs[rE1TktA8_(?%1;a#,$=jD'e)<X@C&;!]I6kW?m;)4Vl<nSi+X\oTi5!g\Fh@JPh6V$a!1o(HAsMU,K;7"u:.R@r3e$4Lj/CPDfX$cS4R4pQAt)9<QT$hDV.J0CC"MOe8nI4(G:EJC*Q)$Y""%8+u"0JKj[hHQq!PScm'9>PJnF$5Ugq&jRf5Ij'fkSN>H=c$5NfZLN-ik"E##c[P%R^oq( %:=Ott5ZE%JWa`>AkVrbMOQK=_"Ol`S(V<+g*d?87d<5A&TGDq7h:IXhrN"gRTQ!^=;$6K@D-!0<00MQKGH:@@)bKg`C %:s8Tk7C8#-jdtq`WEfAY?&odn+jTHo;BEqiGEUO(6^'6NJ+>lo%C1[h*'%".-MrL!)gg0T?,o(.u8o_LPYK>oQ4,$uIWmU=dL+:0'e!TDeK,c,%0^1f0N@?J6;8O9[a^cSHq8sZ_W&heSHsq3V[pX\dLaD>RY[\9t<aXno*ZG9Kp3TqOUJkR&HPZ&cES5tQJ7'4m1CW7OVjSDLpS\Jn.Xs.'O8":1mfpob2>\L!#KN9q072iaMfV"c %:#m"AiYuD`BIOP8G?7U<3^3Kji_76.;Z5hLY%VEhOm(lM7(K7^.@U;YZc>^@_@G8QCi-0Pl1GCtb+o#Ebb7qU_oCb0Is16+,`%_-J3r`E!jkro#n\[[A<n`I9i4C-c95i$nC[#Jdm(lNb,ZF?+A4cu;35`roF([uKWq7;f0WRcD#gTc,nm^ps6a"WGAgE,a`@#.[.OQq9F@unBFb#gZ7lCLG,dJtJD$YM)__O+&K;$phVW^+`Q,.]V %:P\A?]VO:l8SXJClYq\$g[8/p[I2#7uV,'j>OHs\,aBL[p)?`a)_GUiuoHX-*`FT%VNI1oFHcJR@\dP.8>OfLj4W''IA;\*b9Q>$+ZcihVMq/&CGCO44>-B,XXk8g-b1_k;7(-ZqOgjnL>@=S*`R8m&X8X\!o6D?'`H;1B`b(P7fbCY#>/k[;K;$phVW^+`PX:o!Cbs!$4d5E(iJYpqbgtObp:;V,"Gg*pB0KW;R1NR_X4nl'!heKk %:(EXkUA)7akYX:12/#C]unG9tZV1nXFgX<87fn6!N8Z(]5aV6+83605s@sV/EX140-QoXeOn@S3,ji(EqLS,%=hRFf\@FkC:&5Zc,^s(\CJH%R8cG\.dPQnlh?!0YsDntfPLEV!u'KaDNI4(F\S26[NAsi;)$.t$m4XD+))W2i^J`nC)_j6e.J+@b='#VrBpmT0]6Nq)O-k/AFkYe)p:)j?/Og-J)fi7HthI4JH%)kss7Gg\6^(H*` %:Pi`Bo).#uVI)M$u*<qfR+\^gf\Y,`_U:_,VhL^6lJS$0^n+&UBgT)<QmuHH-2u>"(r9tpRF^C)t'!,JT\BBss(lFkpMS>9J.F/l\C1d6Qn0!f[3\c3Us+'3.;9J31X+oQa@\4NpiS2Z._<^QU!oL)>"m+3TMY1R/qF>[HZF<gpK3UIRO?FG<SRdVlP>%t")9t/s9Xlt]nE!0a^a)EuOR!^W]J<]bpJVrr]\JVdVA?]OEnjB?NK4;T %:an(RGFEn6If9^nNY0rU^]Z(Bl$\R+o:%hsCG*4<N:,8Y,B8Ap[HRgK=/7RrshKRI(nWUEV8kU,bPn=Z3db?H3'#WdgX)M5%^;.\:,)dQ.7'Yadh$['(aqBS??#Jn8aKE##'YEA."=mnQUlneVPo-?R;F2h-<)BSC2&%QbN$]36"[-ifh"DR6[DdM7pKkn=Y0beL*M`H<VC!m:.62U2ZKiP6WQ.&I*e5K(jD46g_j;6WGrn>XRpI"- %:03m_i;)qJpCsUF*nZlY*1\UE?ODE_WjnD212Z%+r"cZ!_gX2D;ptUQ-FYiZ]Ne;K8]GumJouNU]80smt#(E2*ogFbh3>UuWnHFP+6L#Mo[5lACCjHPTE!bEW\J_JUbm-h,bmZfL%%HMjRrO2Hs1+O'aHm*^pX/+)/cPO(HGOMJ0.#aZ#e8a,"4;>$*!cPZ8R6@U9aU<7>EWGu,%cJ0l`X^\g'53.j%GDTg!!9/(K7^.@U;YWTN(`Q %:c>\o6Tb?5bHrjd0k\/6($\%+s:gRJS@j#`#'+[Kceh<YJs+<Eo34fRniBABCAM*$IT<l)Eg3Ft=m[52.1IJF29[S'I.IB+4`Faj2=7\epco<`+<acOB(91)SH*=7X+k8Jq+>U<pNeX4R"$&?U$NrAhb00I+;t(m@$Z(+8<%IVE03pIl'KaDNI4(H2M)/CGAnX1@&,+I"_*Gt$!IRP'Rg<%P#Qc(fnN^W`1oUV,&+eslg%O@YMQYa9 %:nK#SHEr"^i^f<Yap^c#LS.r8sU"Dr6kW?nNY+4I;Aqip=R:,E%"q7k>8-8+ZI(TrImKZs][GYmgAE[#/T,>kn2biLL/WA$3[U2h8j<an8D;,%A`UT2-rt2Q)U"Dr6o[%qW:X3pYR@tG2'uAH3T6&W3k1C."H#Pma4"8qTJPYS@*_<D\!Galk7A/8&E:@2<RpoO/iF)/Z.4EdXK5K(&+e'@,SRdVlP>(5a)(tMg(j?%/>9!l$3?uH' %:"7Pm`hgb-9R<IU2K0ZUK%jZm2T7YsY+ZUD0,sFZV9sLcunJ/L/c[f0A>OXeh;93@(@OIS<mj(g9Ee[qh)-U7'!IMb20[QlsDd_JZKJS!t$2eD3J@>iA@9qYM:jRg\YO_G(rW@@9Pt(QK:FL#K,-a&Yf:Dt02DZ%/aV9.NR51!_>]+#lfX.\e\JUcf-a/-066BYB%or,t3L:!1Pf[h$*j#aJ3B4h^f%p!Q(@HWt"nHW&TRqUma9BkU %:bF>^Ug&4KT7I29uoUTO88Bu1.R:18sNZd5\aoj?:.tIIUCgp`J[t;pJ29\UTHM080cSXOAK+/WIEdS_Cb$I4<UhL':p:]0&ZPnSbiHC$JA;\*b9Gu"kIViO"dY**i*>^(N*T_/u%<Q;TF_L)I$`o>kH6BZ%1;>VIk._[F)1\;hA2fAL$U4_d;1)o(>#2@r6cVKZc)iO?Ot$6&11_YB\C-#'D\=\R<WPc^frl('R8B`m]Y<\6%q8Ip %:Q;9UT)-Z`W_&!Wj'dsT<N%[])_AOiuhR9VWJs<;KaKco%s$2cR<fE7I8e\&3dTU@gFB5t%]p*ug+D$oq8f=O#;X/5AkVM4t@#)_=h(b?Bk4>R"PVSSQ]$Sd]H:=7$TYl:5Yg/[*aY<jh5&ER,O-dsL"s/W;aXMjATqD0J@.7r__+ds]rF`;(l%]4&id\C(_!Z-gDo1*Xl`uquCdDQk5+'XW1tK1`i/WqLV,+r$=YL+$clTjoflh]A %:ErR]K-[b]q/M=]'&0&F"94dU\?6]^RQ\!s/=2n(E)0[&o3XYjFg4=)_5&ROHAqlobL@]PB$TQ&3AqkkCC#IIu)]U_XXE4r"#N)>iJdST2^m]1(&/b[Y>ft1#U0g:tMA8*/)XJ1X6K#;Yi%no)ONe3QFtlG?0'9!X_&9C31CUF-)#OlH!.k(uiU3bl]I>B.6BM3X&8FOB)#VDd#l$0A)uBSc9Cf%XngaD</r&:/")u6CJrn4c$TZ@Z %:`D/0Whas\maVgi)kjD]1Q7E;n@>@/,E\@^RKDc[+IAZ#hFnN-`L^\>>Xp@>R8dc&UG9-f=GN@k+KL8#r_J#Z.6GT)I&?<ocL12NuU@0@+Q?.fE)7VI2$N:-TMtI.&Fk21P9<;m0N=r!0W8N+87#""F<e::b.;n?.(0>-G2(],^o(YJspZoW(eOUjQ)2atqMS>9J=iD7r0Ja.2I=RAGZibkNIILZiSlZam1gqJ`n!H$W1(4W'[##;4 %:!8];'#Rl/^!Goe%@Ml?4%bNtac#[*:_8^X(g!"DpkUH@'11_J=M"c,KlS.B6?EPC["%1OqJ56_NILs5s%/=GTGp'NcG$OEZek0=`*V@LdS`b-O)^r@;hh9q(NPW>:'/!d1ZC0Zt_,0#\VJP<%2gI)>X+K6gHk<#^kjVI-DmrVN@C:+,`1Dl.8.8"Y!rmJ>"bqK\$iK2J63Z)_1L."%F;[ErD?dl=kCm_a.!Cb&qG&eW$YT7:5Y((/ %:R:5TEIc0g-3#EKQCHhOE4NA?-Y0;kWb_4KgR0US&LNNYcrmMj7Rsr]LE3B@kE:G1Je.D,/R0GsgCh>)=Ot$6&11^]'\Co*QGC:@u;JUp#.h$5'\/kE_V;45Cb%sCTk^2GEfY`L,i4*O3';+%in-`n7et?[6(RGS;%9j1mbY[XO;tQVkar\h>QV?3%d&-suJMqEV!^FZ)i6enq%DLZPK's"1%n).9PDb!9?$tCoJL,8mp`1.c)2A$M %::j$qE-oI1(-`m\Wa5Hu)UW[8(@OIS<mj(j*F,!oD%/lf("7,Yf_8(T!,J]aOK(@&AC'WDj*9;[l0Y$]on>b;1?r0fB=Kao`=FN3V45GB''5S+aeq6:I1DDpm'R_?sEelO,k.u#qCf'EUeYeE.gKK-um4?C1oHN-@kjZq$O^ZVD-_M`.(DrMe)E/>goa*D?MXLuln.5:IOE!kRHQg!^7^J>)b%Jj@AZ;t%=fm(HCf7\k4-f9!Dg6<n %:n!1f52!u4>JeU788'ihC4%@9/)">Fi*@&38ddLWCUcV$n'O6riG.<d,4%A17n5?o^%1LIq%dt7bre/E*qq!(^5CQgEJ[hC]hh@E$3.1);`!l,Fk]FI7:eqh3\H.-p1f!:Qa(\:YV[Et%)!*cE!qprJ_8,9"q8&s]hKm55'3k/t5Y)+j`!4:EbQiMO*XdpEN[sce"]29_=+e:MpBZT33tCU3X+Y;$GZHNr7;$k*1YcPRR"%ju+763q %:n.!,8#!1HK#JY42b,aIimi`7_+#>+Y!^=-^^$1D>Fk@;qqkP4Nb.kG:h?V7/a3ZX#P?LAqAqoIP6Z'H&QZA3E`/A@(JY:rH)rN[+#7N._2A,ih)GjbF:FAEC75#0>L,!PJK7DSZJV=a,D+O@!i8m#u'DNX5!/4UK"M`4iTqF$-)2atqMS>9J\]brZ0f+dUO1"MV)Aq\>cjKoDi.u!#@SIq2;#[X\&/c6ts##u./^SdK4Ts9J\B4m> %:8$NE98-T%A5="Sge)8!LW0#74`D/0Whas\MjUAm[1K<,4"lJR<?snQ<?bgS`;p$U;c49seVKj:>//X`\r^S:@/25'cr"e+^=DH1"i7"PE'W?_hR-?V9aC^09-^g^t,ZCjcL:GUihTCiphh)AVq\WG._aL^ljQhE&%An^Dj@(aI0mm(?Cb#u%/<G2\fOeA3L3X<s_'baV62jJ@JbT-b68gV64381b-^f"=1YcVT=NL1>Gb;jdkUsJ> %:3',&)<W__oJWs6`.2cOn@[@<D_q51n!IOQ2!b5]3iOp=^Q0Dt<b9\a<6@i2$(_+J$cfqa'iGHt@oUTO8?-[E(R:4<sPMl=dD_SEbJaVHCQb/)C#N28aAic:k)*0u"KMM(nJ[&2bi%4kbb#PCL5PRF7%P`mrj.!f,$e`bn^0mo.,Z>b)L?Q7Z[rT<AUVNeN.53G&W"Sk6/OXk!am&rA9E+EGA6AU.`Yq`?@#TL?q!_M!T\fPSdK%"l %:Hk)d&JrB2OchVrT2DZ%/aV9.NRIZ"e4CDb<Ob#%H/%u5j,;1VLqf6!^H"Z<Xp"OIo7V!@D@3Vl)FVP`R@j1UMiuN!l8`hlDCkM_@aG9eIpV\0tRi+C'Ff=aS;dOEt#L*[pmhZ#nN\eMeh"t<.]u,nq=.Xte_*>>Y#9q'AH'Q3)W49XurEJ4W[9?G/n<^Pu<pThI5/.96X5"GqRA&8)VW^+`PW,,k+Z%"u^W8D1Fp/!><_ig%$1'S3 %:`*CG8An$&T>&qpkOeH:X>k%T7MSOTeAFRGC_cTca:P!B/<64ZK2qU=//S$Y)Z'.l/GEOB]SDdm4_l-QU_(-W0%#h@&'<I&GF!u8d!cRW<!Abq;I"/&GFirkKUOPB+f#:"5@:XI)nCk8fU2H^k[_uCkY)^n$jc&c2E_3g9r2Eq&DCP=E8'4clV=IYY<.<ngd<=NK,b\H'K5(1DIfrCr!LActT3BMiZ;O>`X;k6'jkl>FFF$RNckITj %:ZW$YPP&[pn.UQ/\:g8fme(e8P=TL#D2"`Nt=!_.onDC6Vns</7]\]qO^-&_d^?BSGT'3n/`JjS:\Rj2lAYHG4'rqd(PiNgi6LZ^/Xs96aWRYaKXB7rk"J'*mQc%oBS0k+*[af!_p>9W(<G\b)QFM!`#lHp:]ldRZ?/,(&DK$/kOg;U2]=Y]0bO4fdmd<h$lkW$p'3h`2'Epd6^ZTURSnhr_I6[2tr-nQrpZK9)X>smpfe^ZT*HQk= %:\QADNS/[)Z::a*`<`a$.C;--Ir0Oh2Km)fI'Am,Rjs%RZIm-(cj#fp\T))r;`HIZebPkG;g33Hbno+;BU97etTet(%+^4Mbb0o.+@lNX/\`;0^l[Shl4^qbQGqsAfk5ApeBhW4mhT[+1s'_MVs6$_09UYp!g]*`u-CjK'9pu"8^?qdKXSBj4ir1.q[r[$8a$??oFD"NQG1*p8QN>nHp2ANqHT+tc>bjoii^F6A.T2M'7.DpjPeD(H %:s4'!'UIM-QeART&R[LILZC>kO>NA[S;bg8$I]!_EA4b[Mpo`W`%*h$n2n6.c8E!FHBmPJ\.Nq4hGYLP_N)>F_s/<)D<2@JZrRZCf<`AFB*qeeE\'P!b.r8Wlh;d9$Q&pSU'p#nTfnT&CiQeiulR@+qjbIk22qI]a:$,Wu>b1$#&uBP>'Q\+t'67F27$r;qE?Su1gn#*4G:RdE+ih`E=k?U@rC\#VNlK$,j6-'dlf`WZ0'(3KSaA/+ %:'N`W0Op4QraHHLa-sBc-+"Si$MiW6bJX1"?<V"IPSZ-\:8[0-iO(;)4KW!BA>.==AOU3D($SSc@s216Y?ejOZreBsSam,*'',OL-J,fO(+Q#rooAN[r0%:QWiDla!s"sn!:[nBE!u<iq[RBn50qGbUW?>i^6CcFqE/*CoYYCrf%JbF=bSeV7"YfBiZY`4V\):b.rf"E$o.atoDI:G%Bk(IN%+9Xs_?_L!4Y85'm9=F29Q4pAF)(8u %:h7rT(bbtEkc!aM/k@QdTZT-P\6.o0hT'S0_.2unkq)D"sLaBd8-"/0nd?&'))(gkuP=JRO"ob_O;7Ep^^\;p.cU8"`I'g,>/TFK^(U;&ddq%`jD5K=0XqnS-/T%N/s0^.APnUMn<TDc,.WH5(MmK@n=EI]RkeH3tp>NdJ)KtSajdL\RF?H\U`h6KAg7ULsCf'LYKD8Ol.G!d@6!%$<N4`ZIa?sdjJ'12qd!sA/7\cGHohB_.c>:F$ %:WH&RmBrY^DBkkEfV%JpXT<+s9\c.`+nK5],CR!7F;_D!9PFEecc5.aD,J6IEK:A7oi2/sg\_*O%*n`=fNTB*^q-:__6lD2URS/#`[J740?oQlj;I6a^EYD?7[.Sp^?2iGMd^UW;d3@?i?l'GqLSkN&UX=Ho"@&O;)R:+88k*m/%6$f3R[^(;9^R)`>'ib]I'/oV/UQJP79l%`c^<?3l+_oDj(BST2su`!83b!c2!ng4Q&m1S!+o(. %:&#R`]e#S/oX%.T,]]H4e8C>bMdc_`(<'pH;AcU)%]NQVW5PK;hjO$ID,lL=N=u^<48s]7NY5'oSj&I&(A65oM:!OSi6^CDPh.]R_[l/n=E":.gGh@a%3G.fUM()cbO<pg4'klHc`&;/JGss]PI*R"3+\Tq?Q:2V,L+FXCIY4M)#dY\M`1]#%D.+BhPUbZBIU3u58RmMd'ZlLh\b3U/McX5m+\Tp$?"cfr/iI7^rc_[P2X@m_Hr&aE %:@:b'_[.GrR5HuQ:N(dEE(>VT_&hUi1?=gb0XD3tH\T76<AMeJ`Tp8_erCah#6S$DK*S_C-3d%*lqWq,:V1t\;N3S9]Y2EW<W?]:D\DaXHhXX`\?@abb/"65a.RW=4A,*/G`]mB<?MVYE(n^U1eGNnU!iK_sC/p`$,B&P>:],@qHiIH"&Npe(0;@'J/Mm:.o)IF'n,#<XgVe9m]5`,LSZCQfgoKXO;-*DRmeZu5/$E*?Q!DXTLc8Ob %:M^S-5h9=#s79-B`f-gGnrh_40l:RI%<-UcJ]!uD]'n!??r)*Z]&a!2LJ"Ilkcc'K3R?`e[efI).`<qj*ZbN)1;:j3;U&'%U(t.SBjPtL7bi8Adb$/!u3H>\%con<qa$Xqqq0+;gk:`Ae_0;@^PmY)nB32aC;EL5lBs.dl'0:eArnt%7-Rr1IRLWD5:M%04V;iTjR_t6(ZdOtOFj7#7HT6:pqh-;BV$cU'J#u^MIc;&MV)Ofr-6:GP %:OFBp!"*\?TV</SI<Htf0_CS\)n;-f/K9jY=;Nk2GDQ<OV2shU:(RJ":I4K0k;1tt45=jOq9VEBl+4-<&3t\O5]j%l:]:3c_hlO\C0c;*68Ff6aC=TsbLUX^hdcoqWDk2S?)/PDq/^*9C6FuiF`7(i,N)0tl\Aa5,h;YT7@<.95\%'CU_B/H4YNX\t).n3%HV.A&(4c^)Mg1C\hEX]nfp7$_?D4`=8(.2nP9?^&o8q6Kbt`!8L2lN? %:2]&>!=tO86IA.Q>Qd1<5FX\]^nDo4`57>o]/.F%VqJLC98P*ujV2Tdg/.to"-QU;d7jKdP;dqfYJBN%`f'IO3N]laPMp+iAd/tUBo>J)uI@$iJn,pg`RcH?r,@t$>5mQ!XVlZp(df/*I+D$O+7#+8#V5sq#l+kATPc\j4m5l\V)RK0V8NT.LT^940db_*Y.HdfjjHUl"?TH0=?$'WNFQ%dVQ%d9(Hp`LAFn.m/b)q#p*Imt'PqEEb %:*6)Q#b95\+ld[b4qG%(6>4+DA4inq`*%Q^RSb\[F0'DT:2+!p\?Qe<S>og;2Z6es6QTLftL\XS]h03\fJRh4bZu'%6WP\Q+TopoeWV3)R4Gbr(^+%888$;b<:EF2H&U7<U[ZNr]*TI&RWjWM:O]iBHK2K%9+rW\51cs!&1H;gBD5455[P:>!C2>.=jZK+HoUjH82uW1p*@'a,[E*XRX`@`[dfdd<2_8uU#+/Y:hG=!51HdU4iK'E& %:q3@]&V53t2*@Z:B[kF8MAbD,V2q)PWgq51,5PT(*ZdepH15`&Nc\<u.NS[Gc4)^P?->cN+ZdqHp?+i1Se:)*QTb1n99DO=\Rm`^u1]JO'o.<1?@SMghSYeRYed/0cHQhHPlbBU"d+:X!Oi%6XEV65PpKg\[YAe$:21L*R=OdGZcMatd:"pjYQ<)>e8tcnfd[GPHKe"Z[&orTIr&cDjZluR@mRH)8G;=psoq"Y1HZ_2eBs2mupPGX" %:55YGqfA^G\l0##9Zt,dlrFfBd*+ioIcZ)P'i50frkf48VT5^P#,:?C-L'"_i;0e"8KNXbqnH/Z2YAE?kp*hF7)t+Eu6o0>MTO2&3BMO*s_AP:U$X&pi+t#hUAu6H2l3aGlne\Sg-0nNf*ip#]![m_Y,NR1>luYZ/R(OV)729#pP;:slW)ngqKbL'-UYdT:e&8*#.!j0,F-rf/hf_n>8s>ZQk+.akL-KHQ[:^+foY!]1&Mr/Ilqr1j %:3S)R/n)Ru6YO=)fPS%MA:`4KRe*`,'=mB@DW4Z=\978kWOgGSkY*G0!Q\`EfeT5D1q5dn,)[^r9/gY&-H^03rX%0n+_DWW7$#L$J;0Qga.,r+h>X2"MiM>eeDb*NT7lk=1:UVaGVP&</YQ`O`GV5Yd=qjf^XU;#dVAW8sh6\T'A0r*2WSangQc:LW]\jt@hf0b4-^pUIXX1Eh'p]b\Q%&AaZ%goN.WS?7qqLc'k%-$Ul`9(h\RAMr %:QHJ["7hOj@;;%,%L#nnuV8sjk&?BWEo(6_H$7_Bf3CU[75im?hVdK1aic[Ypo@GN(Wc2@8Yk$OG6C,t"7:*c&@+>_66C+X"S1HU)[FF/%Pd\Y_r)n0/[$1].(NlFM.l5FY8B!5S!X@t5q]P]q'5T@Re)msGI]:s^dE(deKK3)>f$u1+-c.gakss-$m*&n(RT>k#fttsWFcC4clq_*$pCS?i]ku0k6N4'9DKMPMqT5_SZ:VnSIS]Je %:gt5,aV7uXrV.f,T*[2Soc.OL[7e'1-OOc4$kd?6]T)'mqWB$;se%-^R\2n3c>LnupVGL%H\3O?@=#f@ABDV>l+H7s8JHEIETa@U&oVM;!`0rI'PMU5$Ul",0d&3JkV$q_6Po:9-]Jkc?du<OdL"#mA'=*:SmOb&k39@&rE)r7]6N4(>6Sd$KEdMK^d<5*Z<4Fs4&k^b'?.PE(lW?,0CuPQ3:aY(Hoo8*5hb3sJ)q1n<7EBt'E%,?: %:I9aeAEg>m7MQnugmg:5@(h&GYK(nNR"Z5=5/UD`hR3jMt8M@7?J2C]Y;0inIM^J,DkZ.WJ1ne4u]j=cDU^UBS?uf27:j`J\H;^$J/oWP@dHt#^LF^dCK=sF>Oc1tA3(gY)]OYtLlNQoh]Z`DXRc?5Q]l99lh^h0fU-$ba=7bWs#`jCSREX+"g_')iUd<<!l#UZ&ZsU)5'QeOV%<VM6?_<W3,L!FhNg`Ul[J--CCY2SnR[G3'_jIX^ %:G0:mQQ#_qQ+r$2U(3SY?5p<-QMtB3(,hQu42[U$c8mRTSUQE;=8F9)<UjDFhHsc/Q,Ks'?SM)9TK<;[o(q*/MFj1.)KeI+//aq5cmu?1$o@3a&qkR:aYh@DO;QDag<C,JYKNW'bZTa*+DuD>Ybbjh=h%?\rg$Eaa%Jcj)<.iG(QKgRb+I?N@G3A$&XK=lAoFLIZTiVO=@7W2@aU_qoKuCIn`GjR2be@CW!<`)_ORST$IZVqV.q[>A %:rDNK0/GUTFEUU55p/uV9r5bMQYP9@YQKn#OI@f=7Q[tn%@pgFE(u[cQY&uIS=Xqjs0d1D!2HAV8c*gWD<L\B%7@P:aFB!OlXfB#o$+e9K(XH+<>`1(M^/^GbhR#PJ]NZ.OSgSo%m<M>tIbL4Dqh/b,gSCKcO**&)l;*MQ[Rd.'D)dP2=`]#R@h,ipWE1atS\/g\;WiRoRRbZj2IreJ?!3:hZIF6UG0P+.&i9FR8M";9\Da<1Ko<g: %:bh>Si^OOZoa"K6(=W5_$M3]LM!ZT.u8i("d]Ghj"Ycm1-?4l(1[d.`]BsN+C[HVkZec!'>bS%C,2<X3=ba`rOdunsA6EFnG@^Ms*ZI"PQ!>9`_NoF6*]f[HgbN+ICRZgNAR[3<Kk5;289eO+]aO5_M=lec-JlbTWQ^Pj;M:.Ojn@E(Cek1PS*j3nRF\>573eV1g#;:Ta11*'ojgOV7g:aDM@\Om&GTWl\=?-]9Lk4MgZK5e6`9:P) %:`.kU]0RfSRJPM:2Xk9DZjF9NaY3+53%ZR,I4l9p%+,5VO`a.FaW:<tAAZBFNHmR"A#$gd8j&ND7pJD\X<NiT<p,Ul-93Lp('(#:&]YoDe\AFi0ZYM!&EIR!bn"1uuY+BM]jJ%WQS<Q.FMnB5[dd42c)(ldrY#s%ZZ+7,$Q7K?<oB$"RH$2fL1(E\+.X@RIq:A9QLd1.0o^_g]Is^u94%Y:7)"3a)(7>qR>iluF9hU:[nHcrU&[MRd %:Su5Y[]os)Jl?IRfL:%\4,C2d@QRL$/8sGTA,t`1+.Oe54>EgO)iICF1fqh!.OsT;^($XGIH8]<Uohd3M@Q2;]/ELS*T:XT&Aj_m,FE=;1[n>A9V'9t18RGCBUeh!<$WbAIM5!T+n)S+>A?"XmNm`_aa\pf?(GlKn[NS<*Y)J^p$^E8CCb];'Hb%.N/60tO<5oqXZ;g3tA^*&UN"&pi*R[MPA3\Cp/Cj-:85%*\9rhg(ajGF'G5h2$ %:A!o55A>uD<'e'VmZIC>_S&A4H;O?_DV"dm1;YRfB1l"PQD9,VI7;(`A<O1,XgGY$,+137bK9?][^JlDn@X0fnCfP>n;ZBG"Uqg$Q;NJ@/Zt.-2fT;qQ@C%hXd)S%TWW!DMc"4^!)mTSS;`TN`OJQD,F)";3'XJrUV4Tr:==RH'fB\>o%OtU2s/MUOm^q5./60:O8kU*ddY9=3N_9>cP7:YEgGkgk5'(W]Z;c)<'_s;F//=r!m(gTq %:RToSD2In7dnp+-rWamRIWj;3/<3h`5r=&KZ<'knY5YL-%c%[c\)0SolZ:^G2[p1.ZW03u68Rj82Pq9Ig>:qkC8sYV\miee6Pq4q@S"p.fP,76BdF)r0a`ZHo&NAULIU^f2kBR]^I3+/GZNbPYnV:,M(?:B_V5Bt"-&=$P-7VtcC,:;S&6JVrri'meXYHrsgj(-!BcYe<gPLs@-Q;ZG?Uq_S]iD[j"&_^p6V3d,\JEt6;%%8B\GB4o %:C;DK"$h@dCZo@cP4eWY@^YWcs(HsmYK_0`h,e?,;N_2i\]-X2P+kp!`H9O<CY.Lf8$0bm/XE<oI=d>**m!;Dc]8T_rl"d;nFT(G*Q&qRXHUpp^#-*p6MPs#G(H1IfXU47OO"BpsC*T"*G+VN&Y<FR<$#(hAUqF=FN_2j#pW]Dt)gkXPRetE,nhZh;$#/,O&G!HqXciRfqWKZ?k[OR2IB8bu?)_jI+'Bs?SQh9mZ24@rU14@>ERb*r %:We<4-<FWNn/W!(jrL3)Go+tY365oFBK<@)bU_;+[p:]^6^$[?nN<t#&%h#43$#.8VSb+JB^Ih%L#@=8h.GCbSe@5&d\iP>M8k;+n?C1,W&5q+'J*?7'_C?^OH5B!4ra\t7WS=jYFR`+^8k:!"YGFl\^8Nkt>s#\o@Ta7?n&,=hHRXWteZBYD=?g(;V#Er(e&0-r<'okM^BXN.9reoTM#$N(q8%t=+i2<fV%9MX1d5[_H<klXMYCDM %:8k>`+s.FS<];pTAB@fl".1.4M9pLu-+3CYudd#OKo!@eC8k>Fa^7]H%"'?_B?!BA:cPH+O69=?hP("rgTb>dR?==FDiiu*H!?JYrgS.&8641GNNc':0V%Q[Nn\]H[X,fkDTc]J]:NT[';CboDmYok9Obo^no"V^2c\.'!r,35JTD(O,Xj+:YeRgo<eV%.rm>C)\Co9^=[bIf?bA>lW[FniDg'gbpohB!l(b\\lBucmURX<Zb?NAG' %:.Rgp36K><eI>9['mHaU?90]8B8k;$VD\PbdUa+`[[7ig-WJ#B7q1t>Z93RUBcIeuBZD>aK'%4bI^U+u?U/XIjeE!Qoq*Yg[OR=BoTk3Rl?R;N6RiBJg.tm!`E]s].<'kohHWNjgjL.ZO0BScjImbTYa!i"uN'ns;HnXo#WJ#A.mPW6'1gD?&4e;m8VbZna6K/>W/jgeXrD-'r5YNK"]n+?]'VlAiiRPYGMV!>W69<b4Y*SALM3?TE %:#F1Bi"5nr4BZ/n-8r7+F8:)C?617Jn,i"iM'LLMSW@*G1<,tpj\o@13d"T[BGV37p=VNInX9t;iVLqdVgp8D6SFJt].$+gH'.P.grU#;6VFjC?%LnbF7j4\Kf8F<V928Loaa[caQI37B8kH8?.kOsL=8e7=+[*TH9O]H(oK(&4rD/]?!jq#*mT'XNg\D[h<Jb:o(=SRo!`SWgEK<Y(GMBXBN,"G%0Zfku<.j$?P%sLE2Z=YdEdgG\ %:]#.S!i/n.jV]LcZ48#PkSU0)V:/,F`+a5D[\BUSUjKS#ORN#H#$8kgMH=,s<<cI&'Q&n0dhPCrifM*YQ,bN]$f()N/1R!0F>/#Om&F8)pkusBm\Q(s'C=c8)Si<oHO\Y*WYgJ*)#q9EA8'*Fl+lNc,2t^6d8=9fd(!2&h!m[%YZ<^2)'%4C)/`d<S6:-BlkECs!8?[rsf('X3Y0qJKhg`cV)V0?SH/TIbcsdX9IccL1$`C,t`WJ6t %:_O1Ot(XC!@?8u__(X?7H"]s.VaU:6,ba]JSfITYf_^#bJ<3kT\d2D=8)a_^E(+#ph=\<o<J4M.m8mf(HDC6C/Pd/DW2"#2$;O5!.>&KtE2In8k_uMB%l;/G*PUk?l/Uui-)mY^g:`D!%jbu)cJhMo#5cIAAZ8CpJAQi!bL+HmG]e+l'.TsX_9%SNr%9^QO_7A*N/:#MZ.0HCr+gEJ@?E'*a'T'G:Nb_kO&<Go_/SMQQWKFBC?S`04 %:a)VP(,#<+Ol90TB!CPVOOiX$XTP;lJ?!cPuI/@PDoCXDUcAMsOmZbA3&U@/e1Od"Wmo@RheKqk0rjldSV"'[7,Hg8dDjSY.XTM=[h/l?T7D3l`.PLZB]`^E!GqGWZnl:U\I,-8*H^\hC?M:kLbAPDEM%1T"f=V;^,tl@#^Qhr4.ToAMA[A8An?O31.IS<#]s"UK+Uq/D,u2_*S1%ns[9[)jOl'+WZBXXt!.!k4OsRSH464C^NWo_f %:ac]:K9lc+``!X41EtMC2ZfXH6\HaUHi3j@ug8JO2g&!$-9-m5&]GJ\BH'Kp@9m4u@ltTrr8D0kR3?NaX+\RYEbXLF=L0TN5:#-k_V%V<ooX"htTi=ATF7bo52g0gG825Up;UD7m.Zok:VeeI<cS-T=Q752NU^<ZCQ\cM*rT@cDBB)j<P0(9!qB%6XEh&8O8t;M)o,7pGHu84lIN9=+N`F*^E=2]3:tNR'o.jWbjPR;bp^aG]rkJ$7 %:IX73mAGh2u)*\SS%6N01H7oU7.8/BBneMU"6K9iihNKE4I31URb>m],8k;/b%+_`W8>-[EcQ37t]QMMuK_2>0I4a()!0rWiZF&$e-Q])s;KU1t>+t=n<Q\r[\u:n,G$b2_9h<>e`B9TgKVWPN-d@!l/<O5#EE\J+]knT6jiM[5,YPH(;">pd\i+*@Ici:7HdEiR,1^rC1q@IZcWZ^!T6?7!+^]Ujrj4e\nm3WV=7ht@13fS@/OB"Z %:pbd;&JG^<$`4SA#Y_'S)CT$LK+4KD^p8![]7c1'`74dfd'AbmY8k?J6S?l3m.?]*nSmlkL&$mSiR3kr2SZ`Z?'FH6rqXl)5;FOb%gjZJA8Nak:@p9bH7p:(bK2J:(k*Eq[.8X\)O/5L#o#.OnH&D5,Ck9GTXEZ<nSllaU0<>MFm&$+ITKKM.:pRo.mT`XTVNr\T^%gA".ooV9HCV,p7=VA5&e]qCG`n"X8EUcO_d!8.OSi:-%S`mB %:?nR"&8@Q=Tlp$biKPiL#@R3QZ8mK/*(mU1:Gfs%D<'oRV=tT:)N[bKp-^0?s5tDjb_K_G78/Qloi2/h3r)cFCPS?I$(_qeh'ghbajIV<-.>7?hf5OCk;$i($*D7r;O<RcoO^W<bOJ7p:`hZIsOAM0gemG*`'$=pIcmj_@rGb:E%9<``4QM2YYYYT3`=SJ($6_k;XIpj\hGkkt++$^;U95&*`/@3UIAQ$Tj'n]&N7aGL`4lLW\0q/= %:;lGBAlX17I:K%RV)eta8Y0rEGh!6MS"X1k/5![F!O&TiBOa<:cMn_4@>l;:D./r(,'n;gPG>e?YKn>2:s4NU;3ltA#KCjMXR^S?fK')R[`*M$uq%G8^1A0`4@0[$7k)'m&.WP`hb\un4G>o,bT%6[QfGJ%_ZF4X'9@["IP\k@hH+03J7adpA?]cI;_NN#WGU`Cs+/[k`@Rf-AeXa%a;-=EtU\ZWPmN!g2*%TpqhD3>.c_=P\<Z&"[ %:4YLCWa%>uo(Wf<XIND[t^V9c@<RCQTbhFXE\j\0:J(75<-:#_gCl*9,+Rp[(.bJO4k&?,lDk;R6,/)30/@9/ok"tV1($RYGaB)J#AIXJ"3qNi@%A2Zb1H$!Q.e)lE+YTd-s(=*+_,BeQ(M#^=Yrq`Kj-7S`m.V^KfpUS"4<9Dg_T_CV7lfW$A8]$pF0Sjtl*aN&q\B/&78&qi,F/&F`<OY?kK>:$G(NCt##f%d8_@Te4%R$1Kfis7 %:!(ncAd'\Jfkqel&1jc6J,j42/q)9;Z0:gKW^$j)`m+`h(BTA,?+_=;0*lS7%ORJHGI6LC&b`AWdWE12&L.\D8)I>E8YAKA^(7FZuOpSlo-@B9b$"Z[qk#n0bRBaS[rOc[G)GK8k,kP=(.=\lP12XDJb/#"(hi1h@Rn)[;=/g:4>04Wml5u[dYe"kA4LCGKLc']bqHG^-bd#=cm#iZ2#-h#/(5:bVRr^sr/87%0=Np.R70ej-*"d?b %:KZ,`LRTFU['3WG79erq*O/3Im#+;oYbqYs(bqk,X.X8W^7<Zpn6^A'\?6\\C<O,TbfR*JjXJ?;..aT_7('pt"9+WTrOW[aKdT`#2Z';_1?$Rn!_0kg:&S<KLbOr0(a^EsVl"#c19=`(/&1LDS4S"XINg$[g%kiJo7lR6ZkM,KAAH0)qJsS'`*"V5TP-=6,HVr^t*/9,H7X41PmDAEpKK3'kO$iPNbmbVtP\"o+=oW"do>_L9Lf['I %:[:V;7b2h!,50aJ2b\ajgZi)VTDa&ceL7LW]9m>,nQ@=D$ohnFBUA5sh2=S<7>T$`#VI.Hr;l7&YpKX`-CYl8M4/;OIUBXS:?3OE1'RDC^Eu1=-M`X[sf*N?R?HpL1[M/<d4gf(3["d/0&(-Uj6qs.;X*Cu-[=$d=X[32cqXl/+M9D$"81h:5@t&G87+A)g]G=2JI(0"gM"pPm2cHC"=DN`3=R0Km$puY@<^!64\`/9G3ebUq=F#CB %:l1Ef+FS]EG3b:5JPgYD8Pk_*NT0:;Z`H2+aU_:o@X/ZSO)I^>^4dZ/0$<STIBq9$rA7h.@`h!?J0+X;!96dg!JU_UF`m'pkl``2sddk#T]7LW,.:"iqP\C?Nr[9;A&\d#i/hC01YsK?+\`bk*6JA$WV8N@`Fuh;8mtY6/ZTLm(U!WGl-r&i9'_\c?3?35\fK'$>#tphRgrp)9G9%nY%)K`rq'Gr"VDo31>$6BII[NnZ54kb'g,T*_ %:`m)b:QBJuH7Se(V2:H:>@X@TT3FY#8R8"3<4r-?Q.;TL#P\>/Z]%`)Q2E#fo!o:D'O7-WeksT`Q3la"m:3cA?/kG],)p=Zb&3D+f=-aA^/,\?n^+X(ri_)/M0/oM%FJpZpfdBuj,`BqtYs?(HJHXg\],q@=ipZALJ@?<cEF$eDAZA%:/Zd-)h@t79$XN]a)2ijtFuGXT0Q+P;iu-/Up2Hs$n%,YiXA&'u:iHPU'>sb;C6UDoRo>D^ %:"n1s#:Q\QAP-Pu7b7c@6ll*]<jso&\?3'L.Lb0g4@.#(6d=?I5_Rsdps+ZpH#0#/qr9hY>>9o/"%10>92le,"1[c!Ug""o;;Cb88,5$"F)l6TdXKeUmLBfY7,Vk.>7bh1RGo@Br4:V-u;*p9'La\skX@fF)UmGK0E;mds$2*&IK_fIa6FiOoUkF&+;*rBgh;km^AatmT[Qilq.FOMZacajF?IH2Yacbu#GP((b3ubKdd3)]F%([/u %:5cJ;9dj_sE?7K)MGOVZgTILPSa!&!+<O.kOV-RmDV3!#&GZfp+'!\`)Q,\L"\6'j>m3T1ej'o\N<((2"OsRRla^iYb8s\u$]cXuAL+K0)P(UL1IUkf:QUA8b%CREQaTg=QI<qfQo3I+5f`u.0CZJ&'G!8t[aZ6H5oQ@_'ElHCgn]V@>QMAN#mF#N3e_8=Y%GUoD+&>kJ2DbYa'CrF2kKA^aj=`^`48'0ESV&cDQ/<5+l>b`!@FcXo %:EDLbc<42LDNoQ5B1+t_.X+pX#d+3q=iqUdA%M&O$AHt`+]Nj=08b+Wt!1R13r$[OpRBC,!)atjI6rAt1r*-A<D(/7'k\A[UGQM;BNodK]0\r1:_M0U%"mhr'rafrf&jIkC-d`*6aAUG*%I&SQUCC?u<NnNtHMPd>/FaD0fUSZi0%Qpr,:/X%+jGF%hol&)+\VacQD-/'[NS;hX8PVngsLj-3F32kW$tqfaHGe%D2Lp>a+c/8VIK%] %:;]LZcabO^^A-p"qjJl-:7"Sp0;J7jMX@".(r!80H_E;Xj=F;!YpC=Q=gh4=FF&kKJOt=R8i3?k[=Q9&a&MfYc6/6:kf/lo%J]oSe@GLG>o%7qT$d('TG7f6OZW`EqVSm4TN8?GO*E0'hT,#&%!a5`l^T@g!LS!c/j)lgpnPCfk/53)W&r((pGHF[J.==]=pn\U$=Qc0`2cN*Nh7f/'Sb#_c.<ns4M5:arVYrNaH)qY,QbscMR$NUN %:<#):1K_/tN2U-5LLe:5,`qa:>-=0UWl,3Mk>+uiEQ&sl!XO9e5;lc,c1DS9D]J]A+eqA^E]SY50A9DZSH8W"77Z!S7KZ)1s-mkUf8o@SmD]K&1T-`OBHrI3q7Fte(=J&n?Vl9>/<C5]KN(g#[&shWF;CDiHa[SM\5Jh>P8P&cpRssFGY7f8BDH1b?U(S*1KnYMp<s^<p;cU@='ggp#&em<&Ss!7i&oO&O$oM!Niofb%\^"$:Mm#aS %:&rRRfI*+?M(?JXp,kklg3F<<*-E;+\UhT[O/iBYD'3E+i4B9JMOV2YdRiCX4<B=47D:_B;T7lFibIG<Gi<<SD,aQn7*KljAI&c"jP<ahobc8NUNg(2nKqC,l/,U(s'n.X5$9u:XMcBI)/1UQ[Y`rcad.OeL<'nHm'ei&tHs%'pZGW"aqc,uB.D-@8\s#`W4MdS;H=Tt]l/AXPoJcAEQ&tKWeLk6o8k9c0VpZPp$EAc$Ht*X<c/;X@ %:nWWMn+mm^q2!5b@<'jd'-UMn"Sjas$`P6_4VVl&9+\eT8:X`Lm<=&s^8H54O;$dQP%Y$=YXV+NU];5)\mrjtX3p"(Dn'_,3$0e(63U,AC&=&?]SFXY!ROTKR(tFaThf`!+WS`94oJ)EA8k9&)bboYp_c9#A>0VshV`pjgd\oP[.5XCRQ&nK'fHPO(6:g.,<llAY&/(:-If$K;-)@N\Y/nkb&/&$`IQHPb'%6Eu<@G)s*0l[paCB`N %:Rj.L(d:Ia+2'L5fPYo/]6:_KJ>bo0Kdo8Y;2KLj3^1jS[ddk/%'Qe8h8k<'VM;(KCUsn(1;V:\(.NrdYP-:qudW=#(o]Cp#,p_!.rh3Or6GiRm5DM*G\ZiQshq\>3[tIsN]>nsnm:K3\HWV$0?4NQ)5kEX,\OXXI3I*C"U(#]<7O=k.)a)5dbWM/P:t5?soMQ!PB?8Hq8QSnYie:4];d:Uos/b$E;CKu3-p"Us4k</,&e[um\4=<b %:Od?b#P4u#[neMU"]"R,8i?a2>E;ptMZ;;jCRs_O/hVUh')UaWQd3;^)de.@Qjg,X>Z&U[j.BtE0kuQb<FCn@28k?VIPKmgRV%V2YVk%r/Xfk>fpjk%<>G2ZBQ>Q1>81N`-c4?Sk'rU;?X9n.RrTeReb$^Krn/G\K^.'Cor!L(k^Ih$Ug5hs94&2c.FOd4n8.$O9*SHA,pJjQNm5'u%IF_Cb\oaSt*=XI$dZAEdi%5^tjHI,*6ZD>Q %:H)Ku/;P`i,B]"U<\rS]lSI7WBNVQR@3n*=9*@rsKV'-kM?WeW^MI`&KmL<JlCe71\lSk/W6Qr65(O&DV<X=O`(?9Cc8jg10Tt!W/KEO++&VWhJ(K\hUgB1\\69;mY1L3/r7O=jO`E!O66Qm`Q:q50m6K7+EFDY,)Q&nbJD(+('+f&U(HHB_H'IibYo',2:+1!:>?KFhH2bd*TaZEn4r:11<*U6WpMFrSaG\&V#]TcYI,[QR-ND_C& %:`srne$#+=?IWR&pUIn(i@[`=ER]1tYbLaj_I!:j;GfdVR]a>p"51kbd%/!P58GFaK`Ia2[75'fS<![2blg-TA6RANk,HAirV%D)3Kc9d3l)>:.g*nFJ'LK[WU]+-sBku#MFRI@9Q&p6/!Ke'_g2Q;\HnU28eu&=8-bHme1aJ;DG`)_KXW3Wr9MoIoqfa]Y[oa3id[Tp+85TY,=e7Qogo[5A88.UgW)O$/=2mb0W._P?>Z:I[j5Y*Q %:'hYRJ.HkqQ:OT?&+g(UpQgU[X<s]0PMXY[[Q&lcpg*NAf&CUJScc'ILOQP%C.92j(82I^JO^+js&pEA&el*u[CHK+0E0ic5RZM-EN[LnXjg/\a,/:prq@%.+R_O4]?#A4[,p[lg)]d,#1h,:pP<iY\&CTo6am&NT'Ik7XBY9f%Sr?PRC!#=fj?N[U8g>,?odm@!#RONq?GAiR,T+j'`)T--p;*/'XR)o!'(.%%i)qA%j]+7dZDa!/ %:Wu?+[6<^V.!51ML:*l^h6!NSb]1sh!ER.c??6Q*nQ%rdpCR(".J)_p9.Rf4C:QO:klP$?+#ou<ZAVH3m*pP?oY7M=a(Z$lE-)A(8ZUIatBlSjtf^;oh,\1ga$6cOVcU7V8:aMnH4YkE_KC;c+g6*uuo8lq/e9;Pqf%Ts9CI1?nJclfT67);BXK+ra??PkfVhQ9n6:-B^cVb#TeL2\sO:GQFM$[B9+W]sb7q*o(,[<GW$UQm7T$MW2 %:1asc-W.]hi*cLSO&e\B3?T\+_KS4L_/m]\H[+0-c$6_uB]]oK^OO0l`dm$eui_<0%rB_g+"!qm/6uI^?:p]^i""GIf)Wfem<C0m<q(/+TX+V`#',*j8KX>pp=LgbPOB0VQN4D,%+`2T]==0ssKS3qJT3\*&&oSIOOd&?^,i"0&Sq'F(7oR"ZJ\F`IBT)Gt$S!<n@t<H5+f*:[$d3Ie&CRsh9/&Y'V8UN]:-S!L2'MKr5F=+#bQ?f! %:&e[6G]R@Fb89^]eVkBhi<(a5Ec`hu3I`In=YjL<1@8Bli\ek2H]Ci4XKI8>>.j\+#l,iS+o\-:-8k9diihHZV6@-1b$pApJ:F.8KZFO?(UIn(L$`'NO:K+9HKZseMX\]90>8U]H;c+hdm"pOE=Wo&<AY-`7dYNT@&RnlS&oVJ-Q_@4sH=6,cloZTnl[RcX`Tj-e>,!0&CJs%^=p.&8ObY"BX<)]W]KlI_:hMe!N9;q'$l3>ff6Y>+ %:RB4EX1-9$40sq">0fArPGs[R?=n%+$MC`2(H(jWcCrfN>Zd!$1#aHt2bQFq-[382GUW1F0CR$HIB\NQWJ(]o0?4\bO4fDlt$c]G[^.O]9DM0P\=32(nV(FblW8re[GR<-O)g(Gs)V]SsLZ0a$Z:I>/99/hK;tNV-)mX"sQq>T-:rs?R7&Rfg*ncW$XDl.]bpll5>#jotXV.9!['iYd<=*C+;>D7_O^R**ffN;I>_9W9Qm?K>Yu/G5 %:8/X5*0<^Nb8*<Nck(1Z7.G_Q6neOm(KV+MgTsGn8Y`Q>sZQVueOhJ-WSc!?G;Y!'(j??N\(Q13lP$"#<XGt3,!iMC=&<C`/(SquIk#0<gX-M4?MU<$mT1DSZCf[B7FqeBl[M6n&c_X_RMc)*m<@R(qOBY=3?I<;41*H0@Z)e3i<;A(2>+.5W3-A1nJ)_"#f%-5#?H[T*2H=HK=BKWK>9TK\8&J^j6E4$IPEp4B9ll\u)T,1hk%2@n %:jq9.HWqgeGQG,p$)m[sQGnQ5J2XD0[V&RE3QkS$)l`-de23o0Q>V8*R2[KGWV4$WTWQCV`=VK>!FXet;Q$LmS=u":^^6Hoj"HI"K,`%(8N%i:e\FQF80k.B7A1u2MEHOi,Vk<=ahDiP@/bOm'3,2(&*37K'iNh4L_1kP8C8n,fP:LH'8b-^#B04AG:i35Eq[AdH6E2hf%CR"I\f!PD/l11tXmLlQWFhjLR`F$f<%C[ac##ofk+1u^ %:1;Y$3qT7f]TY[XXk0$u]PfbT,aS2Z;V44^;RLgW8I"mZOO2<8i#qKPe+lnIph7ehgB]s6mWuaEKNuah4gn4Zp(n9&= %:s8Tk7>n$;md@m[fe*itmah2tEU=QH?*C"qmF1dDCn(9@hK*R5D01Xd8+YU-m9YSSD<+D?df?&.*=$FQc^[aGT6%]#8,?G]VG="b5J"#H`Jl]Fn&5l9-\[k<okN]o"\[n_>Y4crc-Fru\7BZ@&D3s7,3!S'[FSX(s(5W5==(>rFE7(MHl2=9OY^\3h=V<u.6(\^HD`=)oMc8RYQY&+1=i0^G30d>e9@YpXQ(u`+ZG[Ve(3LJ48\;S] %:iP]_o3qtn)706J-?(rED)GnDR?0*j:$Hk@l/fW;m304ckH7YAd(_3SVE7#i8Vocc"3.$WL$d7:DaAh\Tg!Rd$n2HoIVe>8><]Pn/aK)bb0:A:r_D4:Bg'GHRX<PSC<1I?i[kVo@=J;%MkS'Ri>$t&O=fTG=?Dlg-iLoIsD17kiE>$PF_cspHk9nX2,Wh,rQC)UuGh7IdeB(4ac<iD`=iu%?"%KcDb`]^G]k@t5=;b?)UhBQO'&b.% %:;<H@il1sZOF-rdt[mnPM'n[C]9rBA1Z=G/-%PJ6!;22O`k]+%YA:usDL:&aVjI8Fd3P.Mb.t.rRk<nLZ1)$L$Egc?nr(QOj,O))S+\96NOt8P3G:5(;WK.X3JgoMfU.Za./mZ`Kfc9/F_kQ;Vnto,FPR"jRUbPjW]1GJ3:,be"'':5,W9FqD*E0@<>*TMmpsk%%16dXYP+f6Oa\^QgAB=.7:.g7"(*u<XgeP9'%AM1]._FElaZ"dW %:O7_\m@rn"`Y0?-opJW$N`VR[!CCo6`/9(hdT:aoG+\Rf`^7e?8!mG&QR[*-tp)^`7E:i.f`\2?&QOq4'+j@1qNXr"2Hp2?'[#suhi_UP;XuO,kIN5V3\Enhef4]KF1DIWY`eo3kkU)pQaK[Wd/l1ZfT;7H8ZdABZjih/!2D=;\kM"fKF(8$P]&:JKN0>6QHg/IRg>G2f0%NU4%^WP9A-TVIGb^\-s/[I&I?SXg/(SY]Sem0a"SVWJ %:hWQ4i*a)gjZ'N.N6s$PbU_Qh[#`UN299sLh)k@AiO<pF#H]=(P1q8Y!U>:(&#?NmoAg4gmr%H<EkX)bu]$\ar4m4MjB#kT,%S$H1<cl?DC36)k0I%Pbh;s4p07f=njJ2V>gEICT%Rs7h<548c[uu6]M_om)7sYl]n9*NH4-JOsFP#`=a*p%go$M-]%%MV?I-:PK4gte^\NCshK@)J]m_oJB>F1;?nhGs<USI(ArEgK.SVE_1cfWuP %:OO[Kd&+lS4V7P($jthZM!uGC+`@$/_dr,n6:_mt@a9]-%DfHeDn[kokIHt.6(QI;2QcJX*\;WW+@t[!'XVZ"/gek7uQ_bb+'e#a$Fo!Is#msd]"eX=VofGaLldSGsP)iP\=j4C(=R&"/42"BeJiZD4Ujs!+WMAo_8VKC0IE"VEXq'@FKl%q!1h*j!4A;sSQuO+upr_bF[Jn`Pa9f;LPk$Fjif4*>?DJ>ka6?U?$b1GOh>"R2KebIs %:@;7OoS?V8S1d[M<iCX,LCWST6+O3^c=fO78&\Ui(MJA.G6>r0%6N`n9/Y<+O#JGT1qj#;a'rL`'a.[?@?i%d6;"egoM[SB&D>lo=b6&[FK!tdnQNbm]RAf7RIN8T17B;$L'$B#5gE`g4cNS5uMh8F<<Pb0\Tpc\.D_2=QCq.rOfD*I/0%7u6qmY[r;lN8-jO@9)Z%AU3*,A^>Bl[Y$a9"\o?n#-%<Q`.3+g\2l=s58Lef)gkN"9`P %:jj!mT9KBs0L=C)l]cZ<OB$CQ@0GKGg^mtY.G$5cS22>>7PMRQdBX$@A"8):CNt]O!jLG!]cV)Gc)YL($Du4Ih9o/?^8(<.c?Jt,[7uUP4bY*3TlQaHLC!+osb#K4/[bNVR&'G6s=_\REoaV;:psbO7Pis44f,o^mlk2\&RAj;ZgLak@Cb8!p1V]eW]=:?DHh9?`N2DWYT@//f=)o!:_CQkBA*p>5Y&F0`Xc)M,+<M7ff@Nt8i!UpI %:hAVqfLpQ)ClGc?)??9fm97@1USt:N:Hepo@kL>.u[kE7,D%<o%X'g!2A2j+P[hm0\VZUDei)cNH6=&3/UT97.R_p\!gfI?V:b#U_pQ(1!N=W9;,lT[J=u1tek]m^ZT7rmN-NLW)&4uj_lBoJNpsAnnLX2@@r-2Z12oNi336N*cb!&"T>tUliaa!A&pU$i@^b]#+Ed\ul)3^@)-1r$$=K9t\&pE.VmL[j*oV(D$96ET'n[-f#@7/#% %:/9/^tSj+'.Ao7EKE^R'a4pGmDoGRd3hj(f5m^B+k+h,+b\m'SkPuLb:lrV.T`TYjtC6E)BEm#7kQmJ8bN@QOn3^d**,Hm1nX3gK&GSi$GKpTVmWUPYtEi[p$?(4(Y%n.n-VO3:g)FPsA&oH`>Zm[lLV$Q2!@Fhtcjkt*5>$uq66L2R2&R*q`#d%lBKP#D+-Um5\M]st[DF3AW`Z,B@aW]5)QmHPdK&[bLZ@qUHY\r?+Yq:[o($,4@ %:ac\MPYjh*;E`X&?;3@Gh>HdhQg!XYF$)\?0"'%+\\$55U[Ig[6f7GRD+mT(&DH#6VIEDM//LeF&%s\Zl"Y\0J7^7A+W1uAs&oLth8-WjW.8%'RX?]W]^IL^qjc@tMca=pdc$Z9O3Cq58r.mt$_?8bt=._`ERt9as#d:CY0"b(8!YS7f^=$j8202>`=!@lGlbZ*4GOJdA@Jd=DQn:[B*]BaN[;nk6<78=5eSW<"3h!5VFbq)0%.2mp %:-V&7Jp@0IM8g\Df5+V,gSl@YJ=,dm#J(.(>n\!097=mK.qbX>%;Aeh/lt-a6KI5B$50M[(F\Chu/9T7H=?[*eZGT&`R_p\!])7<nDf'><RUephq;M`CPRO?$jg%^\XJLX<Qf\mcK^ZlYl)6tH=[Fsi&EX,ckNTRmWEm23FE0rFF-n7Q,WnB6L+M:Bj=,[mU/:Jr.d(!1SE*hSe83$!+oF]p0;IsnX*!IF,AQ477Tej+"sHY'?D"$O %:EEt5';sJ'.#A&N=TcqI_Iu"@$kiU:J<91pt]%:6Q)YEFcDgb"Kb&G&6bZZ6,ln,52Olt;3!\R^r`H1"dd%YJnCfS!@FD)kP$YNNTkkrbuGl:_1Qju@NV;)MPd#AsAA,te5:6QjkN-<A@U,r*ta=e1C*%Tnl-d9%U1OnjXFDATb8GOLaat4*pR'tikAdNf+iT;t!0^![A*9`Gf!W+GhaIZYXo8n[<%re"#<n^flUqF(p`,Nlf+[)ci %:[to4OjQ:mWB-$2#7m:GWlT:>\EbEL>/7Da.Y7:eJpSiR>[h,u<3j<$.@\N_\H,l04=We`r(MjSfPWSLRk'PgD-1%#;;u^^U&dGtnrd&HoNm<RIij132XR(WGd.MVG.7]LNdUpAY8gr_9.ban^82Q<S1'WT(O_2(!k=oJYgORo'=(uPPdC+S-$+?RF(!h0!V+"^(D3YnE41(-_nA-;%aKS48I(RLE:MXu6PDZM[91Q.=%SN2X#Ufn2 %::Ma-eD.h9EY9hD_0<($ZN,PH!!AE=L-hMcT*d;amC,_qC%:1XV>/G8j+)VLoZa1D+UC4+[Q$Wbd);d7&j9s!ak6fm1fZsb3WdZCK+lWF=Qt)_!B*k2ma"*(D_Om)HlVQ7<-ZA7k_?-n[#WYqJ2S>"Z-WoS'1!J0)LKQs]%jU3@Z#L\r-VGc7aL"q2_;T_Y@7VUJ&Pj0$ZV63:R#Hu+'p?5G6t\"(0JQl2^4FG1p`sAV9iGlel`CWX %:;nbp]9PUD]X&m_<T?W1G6$-Gh6'\@]PLr>A'%\5(OArO(O5m$j1KZ$P-9=:J$GS^Wfk9`&QB=85I`&&rAuWV)Ki/9.9AEY%E)LbPb2c'&;R,f!2IWBI*gkK:"OR92>c#+Bl@DY[c&aVd"pQoE>cULlU3O!=Wqtj39Bamqg'J_(KYGUFT;0VH<U^mnF2GLd_B?ur/X0G1HqetMeMN%a6I!2Zp.H@1KE7PoNqmP5;TD7RB^;C72F*0Q %:s71jWD=kT#cfuKhP1F`H9q@a*dsD!U,Kpc=7-j+J0sbZ16*r[g)T9K@e$@+,W,%;:['K4NqWDf3/ISWj$-fFao1hi/B_b8-F-req6hAa]TbVDMM>NSHVL"VdJ^HLOGOWfM3STgrp>/>'#2^6j*App>Z2-Z,6IWg6ad=O007@?!FS\*P@mJ-W1o>(El50A]-<(DH!=c3\f^I3Y&CQ5qD1prK^Mr>u09@m_\g$S\iOn(DKW>Gj%E(TU %:7tMS1>FU$bos$#?X37Y"LKVJ/i\r\MbspEkU*UH=^9JSnrU)">GuLIfdO*a0XtM&Z_<oFOK=VN9.dZf5X,mu_Q[S>f'@c-OMm,qH%s66(ILW[1:tMB7H[Jn4Wmtg`FQGO!4PuXV"4IY"B4.n%,:1Q3epEVB:NRa&V8"ob86!U/$>IQ8b%TF2`h>Oq1A+-pPp_"ZM7HY)ePP\h7/?BcA^0Me;5tRUk[]rFB6cA.cEHLOc]q<Cde;fq %:Mb<1TX%LI`Tpm:9ZKRK@-00[T/B-862#g3@)mYA33>0`&:K&]VqSfh?(Jce90Tqar36ST!hii1dr,@cj8<KJe2"u$.Q$`u)&^/VOXKUs_?TSJuIn[EX64.Eh:1Ap*hF]S%VUbiF[%PBJ.RNutk7MQJS5m(BA9Qqg4II;q%f]/!ZB*MMG$Rh_8k&!\ZRaD5Pj"Y%Tl"ktjTSl]i#=cAdZpUh')$*@((r7[p1W:mKKoH:d`-;fY1G9' %:G<S3EoVYGQ]"]_"O"M#8%ru75A(iT3qp(O1,)reg_8emR*]SiNS$sYi7jiU:8d<KZ!is`)Wqj`ciA04p5CjfppeYdYPiPsW\l6*Q3F2.k-4:_Dj9/E3&"r7[h'qIX9t1UPEQpaMPJ+bE\K)-R'=<SNL/'%e^Ve1\=)6N.^B]r!q#%MHYmIt5?V[*J^**0U5.%JC+!apklEoKY8`#'VcK0=uRQ'pEEn/T<$X:h5)7aMXEhW^F)d<)= %:Lh=kMkTTbW*-tfMWa5um=7qF5>h.RQ=7ruD<K7Rf,ZfE&aApZT8\&arh&+?HC#bStIO3gKWPPEAUFVPcn[-1!ZqkqWs"$]1K.t:*/(+uN)=bg^&>n<i7Ugq86Zs,fbsb*]?$c(J\4a"SFnS"P"H>+i4sp#[C4j_D96`c0%3J?p^V@[:384[AffgfMgHHmSD'*S&qbY9*@:K*MeTR;I^W:VB2):QipBL3Ug'uo9n4HJ?75G3&DK6Md %:<I?5XT;*&FQ[:=Kg^)ceWlK$dl>Ls%/@g5S+gJiSX8b`c@W+1>go4YPV+X+'j>u6<+[I>H4A":J4B*A!-.m+hW-C4CUkPeC'iW//WF&Y(>t_o/EuF,'6'n&sk\Pp=AD$F/kgYmcP_sa@TDj?g:@<_p\tpUAE'?dk9>).QE@29*QJ>7`P??bbJi+g$qJU_JlF)1(SXkq,g`%8s"HBX#.d(@AQVa/7'B7]pnJ7us<(ri.VLDH<mY?T# %:FdneM:=ML'#$o\bU(]Q6"sB7:<TqNM-,S\c>VC0Nqt!0GDVrKrGF<C13\.P`,A@6'9:e`?8M'@MLVXTeQ@CedFcYL8Uk^F]a2T5gJjrj"F\76DPm<0$f?#tUF$IUMF$E7O-ZSn>8R:EF+5?L.Ij+8'pNLW<a]JDdc92U9ouLY.bImrSYHGcB$WErRVTo`O3NdXH;/0CGbM28X^eZ`Lg9)J;3oLD.;CB"Eqe+b%*aH-UkV^pk;D<@A %:Z==K+p>4"`Y#fcR4mG3D_ULX@,SoSYE_sUXc:LOWUI&<K<,FaC":QY'BS9AaB?:r`W&\uq4I\Cd_UQ,RWUn'X+OsHcZ@9/*lUYpW`mXPJ!8@F![?s!(OLEqX6)g:,T"#%bSQd_Dm`8.m;L"=.\a)SCo8uA,HL?R,!]LoG.cG5fgqD[[@_LsPp)/A$Ze6g"cj6\LEnd#^,udeZ`NuNO/PKHOR(>[ZjhX@NSEfO0JbIsC70[&L*@Orm %:?_k@sA0t(:L/hp=#^ZXI9^r__kZqIf*BKXtT5$`2:76eWo,@sDlFa\@$f(:CNJ)M&r=W$V^88M3p6'(N5Y9<I0!(MQ/4#c:,+_M7DIMg&`RImsC5@kKDBZAIG6kb"d<4n5g2**REb]r&>(>ufV.OTRQm5j_3LQ6q\K7kqcUMeW#Cmk21CIXVRLBf:>ZZY#A8ZM%+K!FK6C[*J,L:rX,XIL$Y\GXPJED=f25bJC)R";K=pn9\CtI@$ %:/#I1q;aXP`h-LMd2)i1iT^.[rZtA%p0fA8h=ugCBV.Qm%gd&B^V[ONUf=F>m:4+>=QQq2*?+(&JC?J;($XE\*^P#\UjjjMM^WfF!R_gAmj(C5@cj4\gp@Ga`o?Zq^9<j\t\@M*rVgt:!kHHE/'o1%7SXqG(C-o=V><LZSe\_%IMX<LDG5aY,$>;Tbl?J8*RJGI>0Kl@mm]-8u[jU""4'Qq_4BQidO#LK=DpX_]$LcIDc8U;BSCf%C %:HUu5dCEIfZC[Q#t/[(,M]>*dLG$<^Sme_)RXn-_q"O1@Q9\ku,:$%uk?M!`*$WHdLVL")uh\B'=;7Vj3rGtajmDaONl_gOS9$ctSQ/A50/FU2mX]n/dn'\2Vk(t]M@0Dk^oJ8ghoZ(IZ:6`82@>P.o:-V%]=*ka:W=DKUd.JTLal,O48^IaDVX@7,VB1\/;\)utH:Td@>>4.hQI\&r?[.kh(Mf`ar-O2XRPX>#G5P:K(&?@,P4dj_ %:+M;fh[.%<cJ!`j2M_J&3a#'tH,Nd_<MK'm(AES(TZ%V:ep(C[oiX&PG6[cuq,eI<"M%__$<E"r(BN'u2Z`-GH9KfPGH9t=(Tpkgja9=WVYE!KSg3Y6=X1/J57\suuVg-[/nBC'I_@n!H`UCk_FM&*MaJEVZ@4m<YiU/r^nAM2a_UCe"fMk#2g28ruFGI"\J!L5t_Yd6UqOt^("E!FlGW,6%KrJ]";pU<"5?1X3nIq[]Q1O;Gf(U4F %:,<Ft_PHHiQc]8<TkihY7_W,i0$P/SB!U1CR>4ir-SbKO1-&fDo$A9,l2m:.$&"adniFB(+_UKtUD`Y/A995YU9h6rjbbeR)%UVcRVI#3o;gg2j]qh%\/#Ge7VZ,5UN=O9Wf+!1i\Nkp3@3(US2QSPP\9h<@S[Q.Lhb8<mq(np5H2/f=_oIH;,DN^YL_[JW=(6aXS[qAe:qd/g254l7np\,IO3FtiOC2>G`mcLFg=31nCoX+]eOsMk %:WRhh_YD]ABq:<,P%D"KS2W]=d)[u)t:)il`YihLr10SnbQuKs$@DXl<ImFDoJ!8Hn-J&@g%hXQcP#`&[$>m%S@Y&;f/X>f0LYXXAUeYp`34GY(o!K)R_721gC>G_sR@m9f*RCV>Z7ts3@d75RQ,e?T9I7_3:Sh?,cscN.nk#%+m3.\LE&ua^\a]O9PJU7,+cm[.*l&Hl8t<5Gd((&r^Dpi7ab5E^$TpT7X+\gpacq#4U)3(2aYBT" %:U;Gt29nWY/Y\NJ%"Dt/g4Ic2__UO?uWK4ts?H-euWr:9M69E2[G'Gs:4thh$dDX!L$Lh"J0"@<>=653Yp:kLlOm>NYY4MjjWPtgg0_\ceI@"'oYq.m\I'Wc>cDb?SreaI;lmH'X,\Vj2;kG=K;kM%8WD>*>IBJt66;6K'@V)RBhp4m7QI[oL-Il$UepT&1-OjPR*B/XA;\TrfX;L8IbMRDL:l$1!@R!Dn'gVKI/gMre/E&n0R0E)8 %:cGCg/WF2a72$G"K_2iF01a#Q?**,cC8C46JNb;9t=d]%T1%hZ9ar:alS,2;]IQDGS1*7;IbNL#K4@:19EV-1F=(q%Q+6!4Q\V7Xci]M,WDcrf?]0GMo7irM`>Rj-<?%Q2:*o[:dR/7d]U/$]9iBde)2TU+W&r[4QFD9SZBN%.8Z`,#t9`:cSqH6MjURM&>:)gc*iL=^=4N@`=g'm;;oWY`kaObX6cnBY^iC/%OWrHlhRs^72'*K-E %:e&/Z_'Lo18![:[@mq@O]?Mn#4_H/M_a<.m?BA8R+^#"'Gc$G$Gj2*^OErUpp-.K2,I]+9j_h?nu9FXln%2MnBWhr7^ng;+6MfjZ74JmTSV@`+iq/S;t)H]d[q*]b[-c\eL;%):0Ks%cT8A6[lki\@"8:MU#81`,#k>M]a?K\^qgkEGhNin=6U&U^lQ&oBYfZ$m>/s1ZYjcS2?2)WUpe8WCV+(AuDC?i!J!H`[$"l3S)gHTe,%$$R. %:/7tC:5?i'$l[cg([n=pX?JUKACO/sCjQ-'HKHAemT.mifI1R$g!$`8(/]S:Yc!&mf@oI/<Vd!#2o\[;*(^\39D+s%L=TULH3uIL&C8?Q_;2V@#@OeRWZ`[5ZVr+;V]i+%uK@1:*Zb6-bmJ1qk/Y.8,/3Mr,+Zt5;4f%#_!'9ghSfT_0\hMXu$OA2?+7gTjGbVuMiTXVG@;<lU)0G"="$LaS-:3<(@2i.UN_$s_Ek[B3;u^$g5C/`X %:W`ts]Qs_D8BNglDqCsGp7!I/jL5\2f550qjEs4AK\NuMR@-3/cFbFD-QP/JMUo2[_?KiW*/doGgaULQDmkm@>JS388Omr11(LZP&p6Wn!`?tQ\hbK>B>Z`j@YoPr$W-)k77.G&-@f(XL9l*^$FV%L)<GPN_oI.Vbi@NgCpG4Dc6E+5L>S3OPm&I(@1!bRL$Vtn-!9qQ$hK3f*6p83L9OU>_>p,raG&8N@Gj=s-$(nQ-!E13u2&PqO %:]qt<j9mX`NSk%!2`eA8'jed&"2UsgZ:$(bD9\l\)W<Y:RS4#(hWL1hr^tR:oR*N(jgJ^'+ZhZT74%!1=iR`/!c:EF*gf(&IE;TX7inV%4[-_'IrTF--_I%b95Y+c2;^<-gUMs9@mr$8]*V_A)#q+GrBT4&j]SRmN(Uc%UH%Iq3ANZGsEQVm&lVf\^'>'("4L`8_e0!MQde9[3FG&HqhU(tVQ!dD?edJj]iHsOlR\PS+=uCp(*ISFo %:j5*PbG[R`sr_Iascf"%1UkmAI&e!LU=%^>67lQ1%5@=G`D8E@HLoI9X$-%[99Qa(VVRjgSW>6lQ-+6"*cS;]&R*#TH[Ai&MQ(a2H8*C/pE^\<ph76riaSi$DDY7l*L;hu%CUTI^'M]HXF`_snCrlh=Nst>?83\o<Q<<'KQRibUn&md'nu\!/.;^V77K;?6:Im/lCh%56"DqoMGW%FM7Icj5.=O(1WSCU]2Dql$GZp<.PAW)L-uTSZ %:DE1o!"*;'HT^`n5`VYk9<A,6sQNbJue'PdO[&c`64f&!E@@5pk&@&rV>:6\kjW0LTGZBXf0K&2r,?d5^TDlNV#9gpnY`5WM'==`Aj4Vp5(8b\B9[,2e3iJn[eX/a2rR0m6^V.]_?<+bWT!.`ed&o<)_S+(YKKG3KMVeXTdIodTotXaBKYd!tLEVBH]ouRV:-Kg4gllXj9FX0aQM10_eO/%T+=%d?[P9XPJi5K14I_e__UL]*$:[<* %:WHlJ4`&=LT-qW9fVX$Nfr-%oOH(U;b%:B"aUB;P9dD82Vq[<-5Og3f:75`2&PeA-*1IN(m]*Tm_mT_?K6C@Y_^?XXm*B]k8VQL@On#F*l^Lp2kEFBebo-\3MH&c0Xp/;V@YV<JH@VT=+Q$Wni`G\Sg@lb[;8iISHHkIHLaRdAqn0)EU*>pb5G\khsTm,l)OFleGVF(aIoYB(:KHXX=5tI\Tb"=53qpJgX+$IdXk;a3b=@1'_TsX'X %:4OukDnduLn$eq%P1dRU74J#8!AmoE\`RL&[.Sg2S2Ds!n2k>3n9K*fOFp>-`*"@7H()<R=Guk94&'HQsIO!N#XQjQkc>[,$=`n!EIJslkZ,0;^O]^Q#J$M`Bf^on4p%nk.3`2oZ*aZ!$+i1ZBRqafN.<4STD(7ccMV"A%`kp5GMQ,^V<:1VSVH-kqq]9HtBH2Yk+/XI5A2[jmP'42[h,tcjlJ>XQo0+Kikb2X;BkQub4XB])B:Nn- %:iHHY2:eWHi9O`]3G;ZS)K6p+YK;i9V'kq%CankaAdj;i?Y`5Us'==a(j4RDg^"#7?:dm+HWgK5C2)R@@'(*?E:,a"hB*7O+,9'm84("Jc-#''*4.:X3DYCUHk<]@pU.m@8oH52s!(5(cJrm3(#%E-fWkB'`n'N&NL@35X4$D'V@=<l$JoP4gijX5c2RR-ZRp*_He67a/[DgXkMQ)i9lp^Jl?//,O702In6rr&%3m8r.*'j^6Lo+j+ %:))t4Oo)]@I8oc+LAhlBE80LZmW3A"_.=%V2&duA)EBJf=-h5YB5.9ZF?h,^nR$&K\Q3<2O1@lZ/h#qS0rHL6.SqX-Q'N5s.WQA+<1"usI'+A@$dCr:V9-[)8G'BN&gj:n\\DpX#8;Y?)U)eOROkn]f6IW8qZ!gs^iHBnd$f!a&UN"P]>;4TLc'u@HFI-]78C.XCVXj3is%B!qaV-UmB2b:%R+b4g[CM[I_l?a[Wr2"7mF%J\DaSOq %:.:h<7,N,*jZ-J_b,!7\*OjIlN)+]V9XMp\EJsi9AA8NJ_Qm.>gi4bAnKa4NK9-\Kh^$CY(VgUja">M89@F`kn$//@]C#ZOoeB5YX2N"JN`Dg1C?tH@>MV,HpbY5+7g"?U7WQX"`Xa>g1GGO@]%(s#\F0u]9'b^s6%::Q"BpaR]1a#Fn9>e#fRr:=p[sK0OWE;g"iscM?o3*&-cl?)P>pO<[TM=ejc_bli0X[*RC1f8d+!FaU0G^). %:)P+;tD:qXp_-^MlZt8N2Ql=ZS/SuKY>.D+]W,V^F99>l\>bcH@TCaPX=i0'#GCkqUD#["7Ja3EO,eRj/AN!Qg]n/139RTk>;`]Gj?sM?]U!tqcS(]Hc:&W,LeF&3n4iC<kWbH<bUbCI8rf-)r`A40!/R!@F,OG5?T8QaBY9mM$m$VghhgS,2MBns^RI9AQ(N0SS)LM_-mm]Ab<]"ktWKfNSk0$&X)HF="Xm:4*O*[.HOC2>G\8An% %:`me<$g=/=VCoYIWBo2^:VTQ&URYtqGchq'^jj-f8_=2N6C#rXEf[dh3-!GKNSoDZ*T#)f*YZ7_&F4EcaP,4rQ,O[O!`)0kQ;WR@>&dqrJ-G+qtIk)%.,BafsQ(=uAO`dE*$-%[99HB4f9cXqoV@KuSWIkpaLIb07XdU/SW@9E?N7JGmZq*VYhg*&0@,?!KOae&'OrL$H$XT?S'NXEP/LV[5L\ND:I]n58KG<9^Yf$SZf&%h5?tEB8 %:`A+YMjnDC#C$AH$rVN(&KEU>P2@ZKk$/3l@nSIK0$WBPFVN)9fq>%?snLI6S[]H'6VZ!m@[&*49[RV,,DqN)DRs;dLB"&huFk,)06>(sqn>&HIh1\s0K.or#P_3)r\m*@2S'kb,MmT^ndq.O*%[%r\4UA*jh_>Gke8b"pl<"Ema"+#^&6!ij6#0E(%g+qMUE9$VP;Z*NNBDu1phMKU&['IY=h(JSHLX(,)-T%UQOe9G!XY>'VEUUH %:#\,q_*(r=XX58(,Yu`BDMWGW>,<Cp7Oa4kOR_u/)P7k7%;rZK[aVLaK<D8r1VXdt"CJu7_eY$1WQ]j^jGEK7jG="W>jRl4$]"/8n>TY3G*$scE3orq#S+Du?`4^$qSYu>k3E?cb8eMNe11dYB\)1m);k8^,-gj/qP4F#-#o[7&e/8SHe62<Xl:_RaB.Kk)&Q:hl;j5dSU\u55O?qO*^IWDp89o#Zc]IZP7c<t+X`0W5#Ge0Io0]UX %:^X19sRjj3c3aqSa.toONpa:d6!d?5=OYFd&f[T!MIq[`B2O$=s/0R;(XS,TU-"p3n`3ZH7/PKHKR(>g^oi+W8J%q#<e]2Qp)*R%+X^4,]S^X>hXelh3Z3jZm4s=/hB0N+Us+e:sJ;tghg;b^)1Hc`h_'-<UE-I)q/F5"WYdc9fM_4Abmd@7$0#;sUGEO'l+]c@X)G/8.jkK8(c?mhqkPQ8GceP\;\*r+MDUl//?&+lW:UX]uX[f]J %:_fC>8^U.N^;.@#a&rUaQm&q%n\!_[og%4@h@6pbNR"2Mo'/YK.q:(g-:$QO"P<)?(l5Vl`k6e3\[K9\)X6c;`qtCg0$hAi*rnf)DFlZ8<p`WVVI>-,UmVL(I$,qG_R!f>N6Se_;\fd7\M7g";PZWl+hq!lCD10\e<LkgK*aSH=G=3(NK^ER?I&A<6Tn>pBTHSH?*N=sNe26lpqIGD;A"0'A"hjc1VK_]l&a%r?JjUWGK9>Y:;4F0% %:l,&#Wf#pO,5"kIoeG<J?qG^D?pJk9\,*fWdk?*ZJF6=?%'"WZdotA$CN[D1:^H(89TI"FC;jTO&WQQ;Ul7rgJ/*of4.AWiK-e1bk9j/=[+"X@$kmbg2S7bam@t'$KY$V<uG&8kA?m/=7K%bJcbeK5XPkEQ0^!9Rk,`rTWPZWkPZV6VQP$ZY"VFnLj<XY8($Jn.A"".aggXjs*:/1"W#Eu_g6g?]o;V);Ul0M"74;eTd9"b?8U:eYY %:H8OIdMc.c3k1j8)_L0]#JdW3/#gW,"^`m'8@J$:PoAFV_[%KVTB0d.Jl39g2`js!"89dGA7OD,BmOq\PAgcdacN$_e'"5!CF>4f]3q]r7_5(tsOLiDke?)&PH@&Qgk!+DC@?\NZ5.>1@OsU$"3-^c0$4@o$$SJU==)d$"lWN;@ILjZY:_8"YF;>9%geNr!JU?fV/B2tF;Sn>Y)_n;m?2fF%JSu[8TH6'Y9A#h8)CTc<;Kk0hZ=%'= %:e/]H*GM/+i>=d"H:TA?s"^"^0"Ba#tnd&?]Fp9b#^@)I\RNE)GFXEmAda,RP'R[*cKVd?DJ</RuK)YT3$'L+4i`M/_L=I)FH&bENWP[qgF27fY'QAZ*)B?15Fg"`-]&1?"maI8D^lHos6>Au:;Z0ZlK[#!/#7LAl.1;U]P\'!).VFD,G<-(KWY?ei[ZA'E,p5].=L3;tpiZ-@$ln:R8?l&4)_801f>bg%G[km%8Q:QDp4:K&l4?,[ %:PorMp*P_tb_Y0cHG%sp93geDA)H)XLOa:8'%CRY7YK6dsdpt"3ct@5kfTVMSk.rS%+*RRV'AR`<]APR`H%EN`h,)a-,WGLq8JDR]*[=4\Qmn'7\8C57_4A&Ki=8js;MErMSj>X:'&WmE@Jbf-8Z*p.["Cq5V'5Mj*N=MoWL<*D`IoI]i;@LX=><"4-Ceum7AODZKTGWc?Ts'Mr[S0P(bq7DM6q<tbi(T"5@^?/Nha&s*Nm;[cs_?8 %:!'<P.QJbo4AV0*NdZbhjh"'cR#eP'sTL_-%"Kc+e%4?:J3]3ntC)jgTjY%(B@<SH<(K0M^*S\C8"2,8)p3ZiJl<W/5pNuteJI:l&+@o]n#b(I7!$uhR>(]okoHRuS)Z/t=,Z</-*@)CFmJ.l5e".(Xm-p&0HiQ#s;;Uo\)R_T>(S.#Eb75llP(qI:G,/FZ;R>#>l8!0.bhLn\/-nO=0Q6l)WK-/5_!DAO0p-EmJ(i\EE9<l>d@6QO %:>TI*VhLQQlXT:nV&9LVT1Ek#k`9$,`K!Pjp"m9]ac*:M<r!)c@quCW`?ZC[*$/:qVWloKDCR=1\K1WbM+n_-AWOIT2XELE!f*`O*[`]^B`jG":ZgMsF;PVb\0`?SQ3:lbL_5T?tYUHqZ?C71"!QKf+'9$^AA7SR8O+0\O`bAFW96`qu5W6As2$_%#DSn3s>t*ZSc!bAcg?eR7]AqD:dep=:c0npIWV>dNI3>=tZR7Wq&96&FAB,0. %:!A4)Wc>PC"^C8A:N9pUD1,_G<BgHY@-fm>-b^IT9$RUmYMOtD/K$dS>0sW4)g/EjI3,.5q#u@[KS4S\m4qFM24c@^3>"O>.E&(<53Amd3*),X-%B3.j8:;h\B"'/\_pR!gF](`:?tB600XYC/VC+L"&km%\6uYcS7Y8Cab/L*9H#g`SIC8<ZMcYM&C?QL;oXX*5M8f8e,sM]3*gN3drD[M39_f<QTC/$L:='tU7d:AZ-M<XVb$_:! %:8U[Q]osGg>DhQU[G,0`EmX9%7/=RA[PoF[ffkI/c@,qU'i(JqtGj4D*K'1G%/<,!"H@:BlH>ri=;p]$!%TAa<&`)rc`*s.UfgEUm]07N=_4sM)\=A!WGii-^$!P4>%Ae8D9kq1j8U[cc28YC'80Kjg4fQ"?4^cR@7:8F-+W"OHl'60."V/DnTfQSOh'KDcoVqbM3TrhS_R)7#_"38@TV:165nYWK>pU9Ho_9"2T!c3>PA4btTDRGo %:,K*n5_%:`g'"!>Z8c@l&UjdJ@WLl#C7bNq#77b[7:T@Kg19f]G_dGdjNX/b6,_2:]r,9EAH0#0S'UQ_Do)HrY*g`8IV@BKCBPAlg:SVEO,k@L,6=M[pg369.oA"h*;L+(UkB;6<FttUb$/:X^j4'mE3geF#)H,V^8<"E`ag]ss;gh$V_p!njC$aH)hTm"SbX4CE\HNXTg0o;31?"0$70TSo9Os:ShU+#'pBpDhpIN["69daK,=hQF %:q>YS3@PLV01IK%.+4Y"%rJp&lR<<+mJ#hgsTI"F3qFu'D;Y?9"LUMXdM,_0H/ZF%t+Z5<DW@:_gK/pn0Jcu67jFTDkc'^Tl-47t=EtOoW9B5LUSo3o?U(k@2_R+L8+>Cbm_4]nV"A+hujmNh?EVbd:&tYAl)j;0sX";J$fb[O%o)MP4'!;F=TpcNQbHlh6GL-8[6TdkaNq]('3QlJpk;(A+Sm+=$GolH;k'=s&bk$_T/^O<cgr%ne %::H`'37X.CJ`p$`M3h;Ti5aPZ@;3t"D7orMg>ZXs-=]\O':\TLERBDOPPHMO#YATG>KPml/P&?"lSo0C&Q#;4lRr4;TOR@eiXR:].RdP+M6euh>>MTNiZn=Z5k1N)i7<tUs)ku2[F6AruqslMUVrZK%Hdd;h4\)ND?DgX`K8o/mdOSRc/pT=S7n_rW5l%9!r8B[R!fq5M1YFo6STf4d*C=7t"t2C&(VFI-!ce]U$P+"XL>mpLFg,o[ %:_s7ML=nPCgIfh@55DA*6g'O']+"0[b8nBOUYAR[%P!]GjX.rCk@1mP]0@R\@@S+o)n<..(COjj*15gruo-m>"6tO"&LDMtc=L$BB@dnb?!b[-!I/GFKi3P@P"<YS(3eWS%1Z;cmR_\]obSn;&UDi^:$LW<H%l-$tiR9j=0T#@Z1r.r("-Ogant2r_GA<2D@U?GUgn)'<'?lTq+)[A##e<TeJm5b?)CA>LdgtF"J=T`bWUkf/2@Y>Y %:c"VBE"(Z:5*j0Xs-$W)9/9l<f@hrY??PT_+Hn3:93./8N4PqYKNs_5f\3d(MA)[!9_%8_;"^FY_R73NE["O?P.L:K#'J;$0KA_9&E'A7N-^_VQB*`9U;Xd$='nYUl*Z*5URIJhQg5qoqgo/\RB<OI.;<k]Mi9\BWOB-c?Ir>8m;X1-pRISAm$;C$u:?_GnWKYe46GT#q3:T*a`sQe1%B$e8(-L8bXl/H4di^"@dt`ue*\BL#5Cj[Z %:HM$qKiA'2!R`>Jj<?@VlG'G"r38nl6j+bSVO(TMP4MH'5VrATPRG'H\B.hLSSn1$bG_UN&oVAAsogY!3H5\@?=rg=L6)AK,\C-.n=W[8/?64QA)O#e`,57sQesF%e/A7+"[m#o!dI\!hp'&fKURahZ+V7O:;(+^Cleu:%qs"'mf'*:P*HY*qg-?bVf+[u]okrtAR?Y!mIm#A32B@+D>';Z)m:MZ\8L@(8*gBDW9",=QJ51-?!n@+> %:rm1c$e'":fkQCG]f^ekI0"]@W"FG!O]hh"eRGsWa3Sco`SjkuI#H`'R*a^?2,Lhu?FJiKnNOWXqpDQT;`,rLd*Z@B^kY>dd\"s9fqNi+*^&@TQZLk"O5^[fhKiFpf:^/]&^G=a4Q:Xlc`"^^2j!2M^1Rd%dXskV<6"7LKgsOseSG+.<J<$:Ei0&Be@9.=ba^Ob"FC,;'6<:iG+a"[JT-p]AE1H$`VI(CofSn)>,bK!n7XFcbb:6lS %:O.^r6q&"1?C'Yi_5r8//KASSuH>79pgQujEo2%')Jd%'f'J3Xm84Z<E>9s_UTp@kmeC/&_#5[]58>"KYX$0mR+kC9+]fs2[0O;BBC5>#%*n;Ylf*n>/^2HGMs/D*o$9NQ]3OUPN4Sg+oBes5<#IgTdZKTm=QJf)i$f5[`%7)B1j4VBh0R=kf.cINp1Z/G_@<h(u%"(7G*6pcf(KW1l9)$3]j]c,dQE>,mVE*:FIVVTD7AHU+MSsQg %:@$TL@XZ.[Z%CTF>Sjg8XpVb$c&?["f*/AZNB*jcJ#1LUn'gqTsksp?S.S4'h.nL>TOqc=m8J+i5c'C_m,c\SG.*4BJP0aES9L3.`(1>2tCdECC:'U42'[1/JB]D/eAHq%unU_Xi*#9esk$I6@CZ@a?i"FrtiVT$gNt[%''b:us%:39-iRNXMn`>tP38T@DE"'7CPb]Y^lgIDZEHI5sQ8"6**t-%==jpPo9@Qe^rT#PGh/UlK?:h,& %:0r.#=Dna2^3>:oSn[CKiaY8`tmIWd$5RF%^TbT0en[4%bWBV^$>[#FR5G]C(5K-/@X[]1P7XrRBrfjfH1?CoR[TiFFe"f3dMET!%gt^;/lYiuC/uLoiEI4^`_WBNqim)p+32)]imVcA4%h.78U9NAKnBMOZnW0WGGiJ-"][ZF%7]negU*l`1KCAT_pik"Li&r:jhnBR#s,f'\ntjGO0Via.pD`,-/#,<Um`r^YM?Q7;nmLiW(.+#@ %:n2>[5a;mG5ji=BG`,@7UBMjqj,7EFde<BB8[h,(6E$">k9X6`[amQ61lf0X>T3B+kg8^(slp+<%)![<;lU'L][BWq/P-IL0]'N%:M@Y,HEhrdJ6N9[+5K7*P8"U>b3>`*$e"AD*Ae);HbK337-oJ\HrY+X1o^qJj*t-/P;5bE5-*2"532g7H.t?4mZX^28Y=Uk-!dB'0I9i"4;o[VIGG,3GQ,XV=,XtHUlR-,mP7]@',EW5%JD0uA %:N[a9AQp@Pubf+@4$$!#$JomHCA"-tJ9Ve]m.CQ%JD'4PtX6:L!<-$O=5cXFh#*Q]p^950k23@)r$n;XKgEj3ifKG^0[#I=thO4]$LAHZ$$Mm5<Z]j#@?rN4_,R%gtIf/DKb>>\o23pe&4@GrX.h?Fej!V,@5BG;94A%E7#WnDP.6gU/$[Q&)3XmLe'X/]T4:!CjN*nM`RrJr/q6^jZ(gKk@n<<DW$f!Ba;!s[*i)XPG'RsC!=)hfm %:4I[pUd]P`9U`XdjMImh/](pQC`:sW-TcC:m'(fnL&ScM[_+MC47,`l!$ZIZrg7i(H_'W/,_#JWtpo+uco'%IaWt]5(1a<.;XT_E,5D1l2ha"6"dL-B<OW/V[\HJl^DM6<sI)$Al=BYBbJf_Vj=g<@41pD@Q"=H17gHg)N(I@qb^O[%#IB6k]e$BfbX_4aUY@f/kF(E\)Q5Vo%9mYA[oZUUu<qL4+7aK.VMTH)J[lt>X'hmrB@RW.> %:'lk`YQr*=V+jaap3QQ.t%of+\%?:56L6`p\JS]l1@::k"=FOpCVA]##O_>3Y;e7^9c>"!%T<hXabr(;,..pIJ5SO!@ir=(\Ui6WXITrc9TV8A!;:SgJdd+LN<P((eH#fVUO/HW2Laie0=FM4k2GeUcC=OV;8/:P%kq^kG1kV,]p5P2rIG.,mg]am95cMQXO>Wi#@,ZdiJeY7fcKS0,q,&OQ\fH[I[=g:SK;$H"*h6UO^Z3\V34_(: %:ALUT<)CbIAh<?Vd>>#_@g:84^n'(jGW5CWuG"ZW'SpOCscWRgImWe/XLM43dVW#5oESo73%XJHU]/AAB*Mpl%ih"tW('B"tl\uu%Ckk[l0+"LZH;(PN.^o-ipY0ki^:1bF.NR3b'"3U"4e`b0dNsS)g3>Z#3&Q[Q7R-;roP7E4YcI2ci/k[CTNj@_78NJ1^+fKQ6Yi&WSn`ZjV=Us$Rc0A_WBr+10QYq-Ybs("#hl6)[2rk.A?,9, %:g'^X[D;ta,c`7&tH51u..kACWh0lA5HY)J07H_=s%VkMpg5m#t)NqfQAa3(6oW),_#)G&%Yu;ugUVY7beBGCp/h@'EdCY^#O+8+7TL=/NnBKJjnr9L96Z\V_WQ&4qU/h%l0uF#6W48EgP73Q=;*AUBi$>*?EXD"Nc"miQ."AL=;#aQB.i-fF*a1LgHWBZ!#5pVqL9eGW6-&M`TirBWkaas[aoKuX,'5on(924i"hcZsKuT7qDL#p? %:TO5tlX@t4hA;$r"q`s0V4^iHtO3hsn10?\U--$pHhZkd@I3Q1r?ls/dTh^oQm6+*L5[Rc'?Jf#F:B-6d[sju6URp`hCuHSd%q6QC!>?9uoe^hNK[2[GE!c4+*NOF=99q+sj^I[e6T'`[S.omp\Zmke8p.=,nQ^nnI.!F(n$VuEMQbW;`&hICfSp;Ej/I9M_a8b>>7PSl]Wm-RnM/asq&&^1k2SB0+(L.gEFqDS$Qo94q=pE`<Eg&) %:'i35%OTk2l]n7]QP0+a5l&9\.il,2NGXi?&LQh8u]2S;Ul+bH_6k(6%M2s)t5,JZ/qsF4SMtkpnHs#l9l!JCVbZj5ip:,1RX]mTo]'9cC41**B:<(=rVrhLOJ!l?8)EqaF+1'4>bRm#Kf^f\Dp?HJ'Q>"+uI!+td><)5*V0h.BSDG+[g`'$!BP@c#j+BhBk]#*R0FaQN=8g0e%3Gt7O%!YE((22hmJ1udF>9rUYQQQQia"TMq[bY, %:GDMbJq2_tREG^:!puYL]6$#"'+4Sb^@Qp+XQhd:;#HWPW.u97OAj06%+,B4Y\4kr%ZcHHUnF&MYEE[Z5oC;Zl*h6CV/O"PNGi=`1S;`Ld:<gg?a7E.pgIkePiF>%@Z,+Z)7cEC34Wj!gIOm(4&M:M4c='tjEZ4PSIGe^BR*u;Lpm/`b*U6eEanXNTe9oX$Pb[W2%3Je2Hu(#k[[[*F+ab97k@5r8ec#L,*a3OYJbqDmM.]$'C17LK %:,j*!!+7A+1k?^-N5WVQ*qAklIJm%rdqGI(qqJ#f:qBc!gqG$gWqQtQ`;Zh#-]bMG-U8uO%'j<i,>G"M`*Xjr`PWF6m]RE2>6GHU:O/<0U;bLHI9Z6EG9aBlNs#SO!MZ'=ZeUQ&A-dAueYb>JRZg8Ojau!O*%#TIC_BoBmfhU0&Ch_K\:J7+[3FPOT,E9?uAtCiWGfm+a8Ll8cld(C2=oBhPOE%@n(,&ch3t;"@7Sj%04oNQAQ0CK$ %:)Y0Et'pTkD0C,D9O"fQFs+O9+i3F)-?4MS8$Y6<#Hr!O)bs/mT3QXjkm1B]eC7^%r&N.*h?FaK/#[XbQb.hqOO<0UZlM8a;=B7=\XPJ1\\EFD)UXu3]N#6tF(/XSRf0eQZeAno?"Y\_)8(iFj&$P#j@X4[0R,,9K9lk)PTs[.OM86tbmJ$")^nNY7fTmld1[ga"YO!sjX7IZ4iebIfL%Q8+H?Cs1?<tudG&"_%l?Kul_Z%W^0C%2q %:L?=@_YHF!o?+833GPquuX7[CEEbE(CBH%"uYGk*\9*_;^dB',ET:LspVS0Isq`HYXo^5NMC/@Y"dJFrB_B1FdT1ZN3[oG&tO0;@;`tu:[cI5B:1+O]#X>^3\mQP=k';*B,]qrL2e=>B84K$/D_T9UYh\o8Y&uYJ?37[?`$`=q#SEbf[Q5-'s7juBE0rc_J_,',LSlV:Em@Q#<5OKQ9aJ/:\6D1jB*:GG^+F#[=F@K#EY?u(dU*tV\ %:)&A9'7QuD*Msj4sr=@^D(5n,'63W"EM$Q=HM.b3Xq3L&pPXFuf)Si7t6LdsVm<IOq)]sJ%E]^F@d1(#R%i5(@fU%`hQ2'i(m`jQ-UQ7"ImFAgO_V`k8L\aM9XZoV\$i3dmUHeANU:&>:Pk=.,Sc1_frRkkf5G,Md_/#i2(/15^#*74_@r`tHA$Y+*-=st=k-JHujX)6MOb(jJ>]a;g"*L(@50YpP@hm*S>;!\JbX`[qLIsO1j"1eK %:7WBj5nUXNMn5.2iD[]Uu:OA+^RLM,0Z"ei&ek]+PiapJlT45_l5IsFRo]L9t?c^Zi^0opT'a+X&&J*;3&n0Q:PK6iSdLrFCO#qdbR&(>Bhpam;^X+(S^S1.#rr)\[oM+(PH_is$Io#7+(IZ^'hef\?eA'DGV)I'i>#8UW3maMMK6EP<WBFs<BO=BN^.f@dkNIsj17@L(<VD8#5tY<JC\l)0CeT;c&Gb$(ZH1&XN>L98QJ8dC6o*Ci %:\E%#CY<,g0_,0[*;5Vm:]HVI6!^3ZCiBn\]+5>n41&A'tEn5D<SAXYjdGcIO6nGc+<`>@EW@fLLeYPZ$BtAVqVCkHPmFdd@pgQlPZs`[A(AP7oXS_loedF/.9L?`\oCE5/T-6RZ01rt!NAD+(]0jJTs)2<_RH6T7]Z.4lrV:kHHN#P:'_5^dJGrIM8X,po0Kcj&:2k9og4JLBE.["lpD(D^*=8^XF5l#>_:J*71k?],,kk)iiF#qt %:PA5]#o\Zo*pgPD#Mc"be28S4>U^76LO/rNr>>6erMC'n%BEBb@1I-jWM]m/k;Ccp<Yo,<M:M!;uGeJ`[S6H0GqjYrB>W@Xj>T8R*>8*]?%99X[%TA`-%'=b\:,OG3_U(g/^h(Fd^/s]%GsQ:n&bm%fA-q!bTc'f>i5A$I3Hm=-"Z9<:@*fI%,be9XU>68b68T-U>.\OtUcuGf"V`D-+"b"a@LEJ8R6k`LjQNnB0/?3Te)L"Y0),V> %:(d!qj:r*T$\)=/8AT?,-pO\ku%V'%9[dEApN*:6)[uBgnc^<Q%2Oe[OKW)`-WS-q@0<eTL9#OVEI5Pj;':T#GC^(69b;=%HEoAZeckd%%YA_CFBe)RMK(W9R0ipHXq&XMJo)Qjq.`;r8pM+P;\Fqia3AiIsQH15Wbec_>%1fGQ;6/+N&'M(;kc!H0Kl*e`0A=p/r+uY4_e[edD"StEQjB&/_A4!:,rGpa_t6^K@7CKAR.LAS(D%&r %:8>2bW+r3p0BK-GJ:,CSQ/\N=6E4SBR.6!:&[Eq8ZRT^!:<,!Ir]BT+Tis>E70UBuBM%^DnjkP];Ih`<.*8?[>7C-o+K4<dQ"mb<2'eGO@+H%#rM1C1B^VRHt1CC;aE/B]GHXB9.M*0s?;cY!V5P@9OAC\8^=:[0PgPAqRO+@.hI_g\L(ElfH]ZKMU<i=N"ljhGE$g62"SEKYOk;e7fPuc0nBg>n?\XE?p/"E)OJ9"3:;VS@:$9]de %:+h&VU;_t&l6-O+ZIhBpZK-@Ef'Cq>6'X4S8mY2;#KN/pb&;uSGgMhc^bm:IR7R=HFZI<HOOP\@\>m:S;:f+B1]0qB2 %:s8Tk7cmV1p&9f&[#Na9J'l:DEW*n3(q,t,JDLDq>QQFN7CdIRj];7C_/PZZkGYm7B4#pi"*TE?dS/*b]15*ff;S.j#3%[Ui(:W7%23\YIa]Fqc^?2?\*q!s!GDK0*5$ue>T3pMO%`[$OLi;f-L<jYQ#caep+E<i%6Q:EY]*AJI)^SVUC-b,uQ._N2^X>K>N:4r91IA*&_`>Q#;/IFcL6`DC^kEA=*c<*/'($Zb6LI8J?Del9Jro40 %:pjTCT*:)m]MKjJ=#!AGnL>^>K3uHW]gtg@C:>N)C=O8%bG!OKo*u]5*DaOk!>!j&m/jhol8c<9(2:>nFQ\;%HIC$B[@$[Lnre$mGSQdMj1>a*?$9+2,Pk/'k-r0q)SktK>`p,l$+8:lU,F^'b%$`503=M/ZCh6Vk+tuu;#rc3k,:QF<P,TmCS[ENGg[TSs7,(A5V:#0:dX053\G9!46X<''._dt^^%WeSJrkY@OLq2]YhISThFS/t %:_+\XEZ`$dN<fjbn%a)4s"dqR#K=]m9JME$@?\J:INo?H>lN@k?RIEfu*K+sdPJd:qc9`hjO'ouXXTV5Vf+-nXRargJb6sMi2#-I]!k<]$9)LC<'(.nC!5n(\^a"?S:Y(]&mL(&\WWN\NU]VB:f0I6!UMk,.=?)pgjkTe/H("L<TKEsl"cLSA"m%*$$ghc[Toe`Fs"!AB<Y(O?69f<;An)[H3jhl`j<1;'3lGLHMe]j`5AHGD*hW9T %:B2Xn)Fq1df.*4TPP3Ai\ak]'(,q8WPHos`_LQobK=Ia.Pm1hrpMpb[R,Z1EO/"kgGQXiX]XI4)q`ga^i6diQ?RBqJDVs7+BdoT*5q?n"8g)j$J+Aq)rhKV8%8gm[r%%h^8$i*>8;mLtHWa3ITBeJ'`42g<(eP=9"*K%%:HPoWJ)38uYOalrQF(I']P7De<abBHnrJDQXGIm=XCtJ+p=us(*[<Apk'e``a43H>NUMk!?hqHfJB5hOk %:S)2LeoSlJn3qt,ZX&S776$\Mq@#q*DI&`RmX;-`*HmDCM71C^h?es-u0]Jo\<mfK<bODiA*!me]mA>heD2dg%r1rm0gps7B10uK";K24f1*["9;fit]q)SKtPW=I;FqhE=PNb=;Vq-DoNn8j!g;ZZRN=L%W*U$t1"2BX%/C<U2bVW:n$MP363"$MsV'=FBeX>ein?q5:B5JR'MOt[lVY9hR7E'_N$9;ao?pNRU)"C6M&&u]BIBlsn %:=(u.J5O=Y.nFR81ISV^2T80VcCG)S;VLjaKDpZDB/42S<%u(jSp4f`)l@tmPAi=;S5dUD\mY@t1DQ%%._q0gRa7n<1L5L_WL0iA1mOan:L!l-oIe9g.[%hPefX?Y$))'HIkatO,^a^9oI36pKCGjgJLo4LA:UV%84UlYAeMQZ.Snu)DqSfg+mdanh@BaIOQ)j!Ao7eFN]+.R3S^dW[->/mWm5;c..UTPNLt9f\f;SU<;Ya0J9G$E( %:.^'a[)bAdnRT8Hp"!OsehK>Q4:fa>+dk:*B",j!ejXkFd+81,-#Vu.W/m.j]Zlk5%[!ISP*i+MPI[tFermEJLk=aT+c]sW+?Fc:;REd4*@=L)L\=&9!,4M%GLeiS;?lm-^3=`<mC"Id[D;?NUI_$1L=[*&3=)84rCNeeZVOUToAl&sFK`o6\]-g2FpCoH\RhhcHpVX?S1k=7%4j5JU*5fM#^k@[f-p_*Yn.deP=cA+thM/Iah]P-c %:mbts.qk;f`G:`$,S6fda4YJ$jpn16(=3ni:]%U#B]rlLql(&%d5$H^/O[[Yt9$"!`DR\_,g2!Yjm@EhcVq0:9%an6J%q2P//&s$d8mfI=dE:]SXn2`L.VpWubl->Bc2Ond:,sm$W&*iK%MbKpURU37\Z0>cX9n[!l8rsW],nj*`8g`^gYaiu3K)a:Wr]b0KaRZoh^hklX\$9>9n8Zoo3sObR;MS&!Q$0LS(Ufsaa+nT389r]HXYY% %:^o7@.6fRWbfbeBW/h\UIUehKt;DMR_c+V5N4W[4sgFq_WT,Qt`*kcs.BE!-4LQf+k-9AQO:3M`9>'hp0GXX\^4%Z3_;b2J;g6blI__b6K)&`\PFq1jIC4(/kE\T-[cC4pU[9Nh`?`erP.qPPNi2,rtiU=.h32t:L_%BVa:6U$T5,E#sj,e8M"FnO[L[2&A%m"Csl)nE,QT2ecJTk7]F4GN6=T,@0rTkj^e623N]J]b14K:!B(hSkN %:&"-l0[pO9>.A7X"K"1@/PHm+1kgf;SZZX7>6.+U^>C',*GgU%BkgkIHL]$`Hc/E3E9t\j3XA&n6coH9J\nH*:X2AD:B52O82X.[4h9!<hO(#3Tp.UH`99UM$2&S$[3)?TN9UL-SFhG/)1/erF/I1.)0NmmGP>K*:,O\`6]H[mNdGDc$a&g;7bO7a9Ab3]V;q=E=X'-N!q/;"F&.O0s6_X5@Q]OGNH&gFn^Go2?I9s/IL2MUNCSn2M %:MmDT">+nZaBs$NLFV<^<Ih!/ir;tNC=bCTgVo&MNG.XIP.9>?L`M*)#U!TY44K*`.0T<Zq'XCDp=AuPs79iNiCro0CFuGQsUB3gY?MsKL:Yc/kT;[>PcCAOpN,gTAk.])lpM,HjDI6'^ecofrjq`u&T,2hRYRf@XMmnEu.k2"C)1FM<2p=&d1=/9G9]`Q<:u=+/iCaXX"bp@nZrdO0Lm3Y4s7n)\6XR_T_d[B=09O*?7aRVCQ$*M( %:pMFG@V1%BQ3Me-Z@>-Pr\aduF[&YL`g!3fb'd>Ili,)LfL3F-b2ue[ji6@Hbgjib9^d-?fHl1G%CS^VP(W0DY4eY/sZdq]O1[`mV=equI#iJ9\g8)ut?;i41;OuTRof&mZZXGMPga$Z`1f#.*]lP6L\no7pZnT"<p18i>$6Ujsc]H$urR<U@<^R`Jhs[QfM(7DO$r'N0'^U=KVdQr'QT1:LjEl9bU_Y2N*kkIfQhp2\!6D[J.$r`< %:-&sR*&]tR,LjKAPJ^MgJgLoVB/FZi[$61%+%Nd:iK"ZZuMFY]3rgkGQMiO$JKGR6f`4ZOCj/u6,0^R=9n1;2)'23U)0@X>@+dh9]1r1eYQR0!!>Fer5[Q@`0MA.U.-/qMPGh/=#)Qh[Y>!m3i2XD&nU%XVn3#@$+hA-@_%CI='Uhu%gf91!JNDbSK2+2>tY+mtUdhE'=]b(dhQ.N.J.2D>@d;?[DH0chH84g^,'W]m%@/07mQ=Ad7 %:4i&+6Bc)fG/b3ag;:/:&TO$P6.-?!u>4'B3q$1MbEMPI&)a-_K1#uRpUp4:mnAc<^DSo)a!W&A:7O>[VkI[$uR:3:MT)UV5V_ZXe6aD%*Bd/YjPFH_5[N4'],l0oY%#=).XmDudApWm+LG\cDXe^ppPLbkOaKUDAUW2=Qd^2Rnci"_VR"dFkBc0[7nPh9%GhR++ABnp%cT57=M\dt`)Za)F.@TH!%.r>I_="iu_`>V]\pCGI)*h^N %:cTPCH!_scV@ndlr?s)#8XHk;jN5Pr1Ad_osdpDP:T35=X'"/cESh:(NPsQ>Xh8.YT-6m\L6SMj'G$XV5M*SnJNMmW@!:g'K\7Slj_,Kmleh@r(ds^(l_5Z\5jES6Do(i[ap,e"e)H1gIke87%,O5e?Kk;6qYVBceI)n"S4_p>uMh]!eHOEn0Q\A3U_.Q@U_2%Dl0e.mlVJXAJ>&D?l-2bc=po^oU1[SkoU6)SI+kO!5:j1"o\LQlR %:_:1u0$'NB;i"9q36tm=3*C2?f.<l!QJ'PnLOFKZBI+5A@ACrmN,;V6`L;0Pcf*s[/=p&Y&>Q]kJe5"rWe7cX7dX]*79d&:u<,]8kRP8'C$!cHZagb3XouoiT523=Es#M:+Uk)ZMn@asQd"GJ!dKoZM.f^*H'&@f5<CKa`>)I5+S+'+L9H7ZlDQafMmVlIJ`8*QZcX4l2pUX_2+KkP+W8O)7iKc1Np>ctfT&IC^e,@Y`FNaXc@N6H@ %:(An(r6h_h"qlpUd^4n"%pB1r]4Ml\/bEW1)\"=CRe?96/qbW(*J4JAULYs4(nBX/k+VeV+j7g#LjonhRdkaG*+^;PnGTpt'i460u)*-9uEPj*RKc.cOoBT(pmF5!&NlCb81%gE3f)@`6F%9<=`%"T=VJtba]L><KSYtG.Y;c9+"$RVg]B]DM$6QoPK^>iV/R]D`cFO:OO<(V4qiE4Q)_4BP\1!amdE<Fk+C2")(qqYn:Z:WR]s!a/ %:9-MhD;It0W3-ANr5Q;SX0"hNV72o@G/Ge"?/,2#=@muFFqgmTj@DGrS[n<`GPE-&7]+E9/YrM>]'5$1OMR;XJXqR,j2`:N$iOMm&pe/YCG]@R.k(Q:B?]g)X[aB'En4#84GE%=rM$!1)MM!J:ITBElCkB=c7CBk:b6*$T9].\2.jN%u3s6^oM.>eb^4g#P:OlZig(;\Y'Y'aj"Q^Om^%h57'3+@I!oq"J62:bR0^A9U%^RM#a7(oq %:9Pk!a[^k=_SO471D9jClF#HX.H45OsV4g5ih@OYf/lX8TMXQgRqBfm#\f_-hM1_6!Y?8[f$6HecR\lK]`=0aK:obgR*mun1.QL1,Yo-ND2?U7Nm0^fc]<J6\YV7IueM679Zr">%Do#=N#>(/bLAY#lpsKF:5A.9V[I^5'L22OUL8Td8L?"!o;G!=8Tl.b0qPIP&ptfu.n<)#p-IVDPFt*t?+q0U`WVAaG'AH5M^:2DWZW%2+`c//@ %:@u-jD[[i=iX"8uTPKe"*L00QuCI]N(iRK?P#e(0m/]0PB2+jNVP\AdL`deD'7<?K"QD$C*4Dqe.(f-H4BZ3-N"nA;7QF6\VK7`#^o-9hhnH%P@G_3,rqE^FpI7OM;*$=+ZHo(<KZeeM>4u9!]r><-'Vs/=+2"hdj^LZ(*-1\Hp(;6>B_fdR\Urd^<.>s)<It:$p0lCT#d6%Q3cpOI`LP\I=;ck#Scf0KbC[oo))/-i"WO(Wm?pmD= %:.V.*=G\,**HrFtfSmAiBml"F%Im;&8?_7"(dDnu71%E^$HrFZ2I[oO*^0S$3mR@YQ`>7Rd6N*[.O?5E-.X,0,%GS5Qe5(<=["?6$_j&,-$CB8HW-Q6YTdMr;e^R5j]S&^WWF;oedPh,8kt4'=TIsF;hYYOlY`nG8*AjT*INIR00dAmArCPMCq/?r[:A<\X=E%4]n1RNG[R2i:?cO,.55toQHF7;2O/5?6QAXdseq0*IB(g3-U9Tn! %:eE&1@]h>fh!51EUJ_DEI_Cnt@6-4o=f'kUfUD4liQg:[#<`]8#!mOtQc#%O@0?N9)!CV"%:!:L]8Ki0d\'hD=4VS=3_,39K]o33=<Pk$1:Z6;cbZlr:f*oI.feNpV:[f1U\<Z3DB_`m_iOWcljm%i-.S4l3V*ZG2@m=Y(Uf:5P20!=M:L#'GT,-EaCPYVV`20d`:9UH0ib2&L[@Zq583H\,3M,)Ufo!Co4RbaPCF3q?e"X?j/r[;* %:a*,:/]g`@s\9ONRZ"X)SXTc1WXH-RUGMk0qg9G<BE>jejHMntr^KUq4(*1$a*-[A*-+Is\FM[q7Odt@dLGqbRlJnT(2t6=jm?[6#2'J_-9Y]>-X)R5$JgP0^Ki'56\s88<KessRSL.k\9c0kW"KTL*o$KrY2WLET$K9jYjdEUd_1cjgiGF0.LPudL>rj3gNi2WlA^rP./B5AugN&ZMgR%TLS`_U3D@"?4Gf!R5l+Xap.X?eq9[g1` %:GfJV_&!j5.$(EHYoeCk@LJnkWlb>\ApG+<0X.1*&EtcrHbUtoZ&3S+,i2,Ltf9&_76fqn;M^Q"s_:si?[dV.73Qn[@jdM_QCY@Mk\AgZ6Xs%(Qq)aS;dI*(fFoJ\C\E<!T>["Y--#=05Jp`CZP7a>BW<oG!Ce(tF$C9$M>X1Yq5pEh#\`I'u#Tg)k=Sb6DW9(\)gD%"^k$uTW\[^^qQT_Wflbf4%W`TWZDXZ-gQVQGT,#2fh4cW"q %:iNfuRk9d\e-_Vt_I;A/L#S^*WMRO4oA5KQ^q33(XY6t:2>2>+8YZ9-D_j+\c01oq>2b9aOI/?"K)EoSrP`fA=PZ"ea<(!,&CCe6</]X'%m=<cEdUCVN<m&QFqP0/3g;tgHAJOHbff[KR<49jR^Y4)8%pj%OeGPqFCT:?XT%BD\2?$1rQ!,HDc3lrEn!Qd$kc#GF*/7f[oR[%>bb`gTQ1!OY's0$A:oZcDV(+;uW^.jU1s'Yb&fQf\ %:Fd0I07nTVm<TaBsb_8:]p2JtX0'8^1H/4DW%'O70Mqng1ZX.A&VI.>-;5p10HO<X=Oq4BtP*3HN<uT1Pc!Z'#&cI?7Lc2GS;&X3UD.5kG;^(ebU_:'Y;jC8Ym[kakm4%hPW@;NC?j_A6:se!PJegZR4kF-1'1fA7%KE0tq-jd:G"/m);cD&__%a9-:nW(pNQbQfTjXNF"]BM;_7uWdM#tpG6`$CFUXE%SY>eC\;_n;2H)1Uk#=s,1 %:dsC&78pQ-hBO?mFqOTWHas`gG0'&"ATuB(\[+(s#`T$N+4`GU+,DX^"^fK%0/-;Y,H/MUm3?aSX3NsS)mUbAmBouj@>4C"#ib;^GY#%E5j(758jCR>9pgrFl)'!:7RCGR@o@rY*Kj%=Qg?VX@b^+[8+$FR-;Utd-I><n#*icI\_j'-&6;!$#[9*faZ_][3+@X2uo(e^7oHBK9@_SVlrNtMZL,FYpAY]e$UZA5WEq>cQ\?S$9\)%E? %:dH5HkPH<Q[9"F]o2s$X4N5n#&):J_f6hK9KBMt7+0&qdn`_]tZ#4BVZ.:'5Seo<DccihZ=ItPJuE@^>NcNK;g]4kLPgj;hj=jqYhoKS?B'm<tonIc]/RX/I#$W4&J7P($dT>M%GGgnKA3#O;HS=5aX%]3g;R?m(U>%S$lj=4t[EVH)U?[@Y9$c:Z8puV-N*c?khIfnWG3/m[4,f]J5^lM?n^bGL&dh8ucKtoMpIei"KpnstEC6]R" %:^.mQs[*3Q*>37f3QJ#kRk%\Rt-a_7]W!t<q[64o-<6B*tkfN#(mBS;;p:)g\oHPDd6F@2oFQs:kf)id0`+H/^.=>`:I'oRiYgrtON%eGQRL+FSKJH;jXNXZ+.t*Z$6k;.0W%#''^1j&l$^I:jXWZfh!(duT[jfd#=fa0JVT_q`?@j8TD?Cn&Ql7jU9pQN97LiuUJSfJJr4E,C@h$,o49`F=TeKbL;UG%i1r$lCp>t_>G<3gJ,q0!B %:e"o"IIU=G*oI8D^gDinjG;!3'=`;%7#&7b<%X+Nu9=L>8Dkc-+IC;JqW),c`&'#,cm/1HO9&$9"mR5<u*WK4rG*1kC%USM1::8IGF-Ne+.CN)0Bb+$a:"r>cNS$K<>FtO;qlR+6HoJLGE_nbhN-;I,0c/CD"$ijspjN=5\5r4jIAPDKQWrMI$3=u"&jI2JG;F+Zp<&Ea*cF<Fj+m):QU_Zs+t[mfmZ"aEB7.>)*C,f"I(OMV$k7/S %:-g23<'&P:<iV6[jpb$n!_!WfLmM4EuDrgr&El=FHUYj=G.cm&YrteE/;fPPrdlpMJ/Rn3J@T2dOoGOG')@K.d)UkCh`-Y!@^jNr]$1r?9]?6EnMdkqU!l#^tna!,\_1+mhN(Xlq!<]@,.%surUjUMnj3,r&'\d\=@\KW[[TRkk-/KLB)2e0p7i#OM,tM*TVEL(J>d@(t=9F^0M-O]NLQoDacfhDG+`6=`i7@3:"Qd<EXapLs(QaUI %:l*6'ki*Ke@"C<)XmVdtM5j2EId,XD<nB8?X4PI4Gs%4ZSF8/3#&N"#ec&3*]&25a\),g&mBsnB@)_us&eaK/iGmVWFHh>8:"--qL%KVVk3C14C%A"6RK'MV+SstMA86q4J)r!@j;M&5%a'a;k#N3#h%OUHJK%H,$(mgs\a7@qA!+SbD#-VO-n`ttQi;G\@^Kr#",+lQ^0m;?;A4R#Q[uJ7\lp\bf:h0ErgC.Br]AoC$qmeQUmQ6L2 %:_`$Kfc`Ef)<IFLaC@Ja\&0JV+9F2oW3f]7;quj/kKCKOQ`36f8ir)Z,fl_f@\Mq6kYQ^eN)N.Bim(a.n<=H)$JR_."SBBO#aOeE#o.\lM`tW.5a#_Btk4fhl&2\toSIRl]q$@_Ck$cZ8Ai_CN>0)2g1:XLR@L7N_[neD"Xh&rG]=RC4S/0qX::&XP=mBVq.#_J-FgUT`N,Gj%n`8"5>q:kTP'DElI_#"XZ/I'hG/&l9@Q?p:U(3qr %:65EurCAaU"2<*mf(mTu)6]J-VPY-?f;T2N<r,VfQ^e$2<qEgCSf/d<HT+BV(H>6ULr@I&lEa1W"lrF%Z0Qls.n,6\T'@/.D(!6S@XhqA.l'p76rhZ\o0%)b[J0^sps3F(&b&Se%3DU^fJt9pjV>.K*nM6Yt6b2d4ZG*2@(U:;mP+)sP,aM3_%?8*XZLK3tZGM)AGA-E*s4($8raSWGjdu%38stXOSX-/L!<,]kI^GOKr^Y,80@o[A %:#6Fj7mmTl6(P%#WH.[a75_c0&5p5*gQs&u&&GYEYp)joKD[Cb%#])aN9&`,ZTH,c#.foeO-LQ(rJUj!(^<-9Tje4R#O8^m&WKbGdp\(&g>J(3\Y10fP^or_tp)Y&n7]I&G%t)u3]E`lkTEdYS@K'Ej4YZg-:A,b(^?'D/*r'W)3(EH[paX`Jp)a"+hG*\bph]U0.?$?@nF<-7fm@Cp7H?W$l%pJT.#!e#$=3TlHOh'kE['t'b6Ij@ %:Y<qIo@TP5BZbo#4pV>D4jQRo`!I+)$l#uDVn85nulojjoXq[BKGn1=uoeUq*I".qSHOorb.Z;ApcqgOP0C@-I4YXIh'D<Ia2'b&+%ug=HQ5k_T^t@bXfmDZ/r^5=bi7CHRDe6,'0n\X:6^.6E[jRTsHdJg00!Y/D>]/_,j?5b0XpTLdnFSo]h?,n3d"4IO*oK=GAW[e66'M$ChnR(]H[p<6A+gt*,!ugGpOMmCn$2V;[+SflRUUPo %:pOM1$j![4e*g!)U3qaVV&Wa3kJB[9^ZhK!7!ueH=J95_pZ1e75I6JX/]ER2a]a#BET<a,Q7,A#fj\)rSTM.R[mm4S.;#<kt#F,KV(3ZH.-FB/\hLi`'eEa$T1TOhHs$sbG='g\hdm0:+SP1+/qGu#13C(?e*d\CDmjZDi+O:(Cr9;jTJ3GSEHOd@>A?WsnJFWJVp)Ka<,koZq3[gVL-P:\80P&JJSc]Z/3L+A#kcI)l-t\Y*k3o?m %:\?A"l?7NFL[q$f=MZ&$9iu;;T=-[`f[1V)]n+qc3b$3sJq1eW!0\hJ=RQGI1c-@t1dMY%ZEpBe4C$prf;q$g'Uen+J%VPGB?QADKU,8;QD=(V*:BT#o0hNEoCQ0[;iE?eBSXOOC_$5=.b/;k&,$ts/k+*f3%WdWiF@]q2=+)\-PK9j`E.W\3OBZL!R$<QEl@,1o$q]L\Zp&%uO(;paj`/%e`6tAOKS`.j/@%Q?Jsc&n4\j?.katEH %:c*?:&DjOR01lJ)U#Du'1jodn-X<e0fd2_IN=8Bt:78mpYa,q^2"X@sA17'.ROGM%SONQ&eVM]]u0RpJS0jkS*?^r81Kp7ZA-VW&Prq_)&nZH;]/0a@6k1M;4[)Dfen@$9`TNMCMKc[KiMrk0,2e:qO[:kEYqQR<Ed\'%)2!lS5%9aB$k1_6iC=!Sd<OPOO%GKI+YKB?]On-qXIOH\NhmGTZ8t6Mi[O6WBRjWkeT=G1Y$jieN>oB@Y %:(H_M(U_BWCkX&t3Ai7/&AaV/Ubhm!cU4PC5oM!E$CO`,)E]rBrS#g?u3U9F`YqO)C9NE%QQ[aLjb"-AtB:5hV;B^O:YhnU:mmgN>hGc-Cnddltm&U<^?2DpWrkrT!MjH<dTq9X3NJp%ZmH*n.?gorL)1S>8Y0X[(/Fc>!Wk8AM)M.Y61>kgead@7#Zlk2\kF%'H0S2LUC'dBpPMM$C(4Kq9MQ[ekfRaf1Bc`/(7ns(pN#k2QAlg]7 %:4pLbbL[j[rg6RbRU$#1gcbF)/38/?q[a,ih`0WT4bbB<V[r;Bc&b/lj=XSh^6+h]\2ePL>DU0`a0u`.r,$cc;nY(Ino,'>l&&np:n^A^GG_J9"f^#$BF/\F-U,6co`XuLlD/!eTR(*j[qK,;ca4@Lf*j=XS[UYRb6HP]TRRScZW=5bL'Fl^`U0):SX#/7D'9?.^59r#hE]J2T]2Ss$\WaeU3P*f6bo#ZmRP(6e+%C"t"qI>4FY-?o %:/a3qtJ53W&\KIBqPu96a9F<g\*D#Rj3ahC;),lrG4j>p-4g!p/Pp2PO*WNmWgZpobVobZkI^T@2YXcE-[HOO3!LKfEqO(Y^&k6%]QM!%dNIGK(/"BU(1HA,ng#LX=#+P9A1U-hc0<;0rNTiKM!KPfKdrhZF].kCm@j??Vc2?./N8KdQVC.Wh*'KZg>YI+Hc8Z!lgfsu1T)9p+,/_YCq!#t/?sF\0+3SO,p\cZu-="Op^8*iK*'cXT %:TAJDB\@8+".m5`_R@fA^]8IUQClBf/N(e4Vn7b"R'?'d!An+M*\*'u+`tSo/HB^_,=th_q3?opH-%.(9"1$kJP2!h=Gt*`#4:A`hG<,8Lqh7?/W<7%oX+4i`mU1t`"Ksc%beHd`n9NYnOFEfN5s)d'Be@M5G%I(Gb-J:#=_?r6.SIdK\fH;4F?@!3`#X/XP8haG*Z0<`9G/V5EjmtU&N$f+T&)+^^+-WuU,hd-QhgAEq-O7N8^8`7 %:EB2%aSd$7jZf%a$X[!o<RRL2AS,c$3%2!u2-,?#n5+$1:91$A+KK2,k=SU;4'[kN`&a)b@b.W1ldd-eAiMS!Vn^AIBN#T;Cj(_jE&L^Fs(e%(M4\DWKJ`/\`2G/Om<m-:*4)@[-\)7NXqL*tHSgMZ:jtPpPAeE3Xo6lG7]JaUj(TR:O)"ZM3HC?.R_c^b<[>,dN1:)5%&@2QVZM-u2_G[[(=EP5F<DFWpc_8D#S3Gl&6dNr.J3Ej& %:A;QECIZ8KYZ,scsfOT]4j^9W3qpEMOk;`^.F6`jc`GC>[c9eETWhb9(.Ua[(<&11?$W0Xt'iDDWPaZkJa+tZtTQ-_3Ctr],@DP>SIq:QBcA&7fEeUi#W/;)FalFKnR!G]BG,)KW76\WU7]Y6JkAIA5X@)+EUQn9>NhRR^jE_aBj>ofp\uHYn->X)(RnM9dDOhid=4\%3^$.!kMdDi^&b=HbVV($5i(gQ@C-da%R#KQ6est<u;L54; %:b@rQMkth"5NA07R&/.^t7h3.OO-b5d:*4H8S-HY=HrI=!,E#lr@klE^*9Po9=;Xi=k\<D@bt,EYh.4f5h,rE6=nKHXkJp-B=E`i@Y#B*`FakEHmd$:OCllku1mCl`K?X$S%\Gu)gdB4KmEN>XV5=G)*R8C#aDs>KN.3OJERSH0r1fKrZ[Z,t[['9cV:1`MF,-$caiZLtQZ7q%>1lqWgI7%nV6aXBcJ@-mfU4S(Kp;\&Q%`0p:b\Zi %:`6&FmSYWLCb!H*Y!k,*p<Q*%3?Yt^d"Wqe:6FiQ&-7d9E`2_89Je\*O<jnPVVsWklg-Kc5dQXQXc1`It43:opQ'H^%<DB`"X=X/FD6^D)CQ?BT<th%)XSb8jWcYXN=,NQmb-j0N1q"+S,p(1NFs7l!X`pc;Z]+n'FN/^J,/uCX3lXY/T8]>#*l`(CX!cMBTl6C=$H?G3Y/[&TNpJNteFgG+_J&:Jm-_:,fY_T'QlD-q"2DP6+Tr8+ %:N#]i$4Npg7H\6<t67bK(op=&cU3qpubZFI5aqG3ds!hZPeU@sL=P`NjD6.:g@+N7^>5MkNCns6I:`IC5+#*O':"2D%a+/e:+">-XrhFnO`V`[pp#1WBq\ht&,]_\9%Q*)@cYHU@]o9jf_atk<&B,]$$@BWT0[10]X2AUD2N5B_d/d(&rn0IY=HLCRA5/uX'7t?]6d?)T=ETR4Bh8cYd@(R*3&?S-fn+pTO%#KW?"bBZ8pN7U]M3j@ %:2k]7@R"f6JRrOq+jUQhc1.5p#9Nt,BFSE\2Yj?5E,Qe]SV1&>*B>cdOS:Sd?\i[lOCZAC:o'aS4,df6S2,5i#\&\mUZRLnps5Og6/16nGR/N)RAhH[Sj[)l*4M0$!eY!dZK4`Q=`dDH->[Wuj2(g^<TrVsEC=(#1T92=q'r]8FPM!@YI_,e916+(AVorjI%9i\c)DoUH`42%Hcn_(/<)daICJ\)9114?5297PnOL0qOAPKOCf?hm> %:T#&!rEhV@t:!?j8'R5U[IY!Y<Xu3%iUfGi4>:&-6^"Z"R@[e+A`q@?r,1d`HB2Z.>%T51U?4fY1ZRkCLbsoCT)egi;C-#P3Fr4:"pJSjc7(m7gq0*8>$KEc!DGmZ$2X4:1aKnmMrGmqt(hoG)P^uNnj9qiG7?SYD-;V)&@GlE:17+lUGgsb"*AJVA8rciO_o<?JnjCE\,'R(I3pg=7U:%;$;.j]%l4;o^<(b[]X\i_j#E@flm=4#E %:Gi94Er'.rs;>Z<%):+F7L"U-=@3NrtUFs\LqI@0+';Mor*<!3lLa-WgGLL=]OsW[jN@r.&/4V?WAJMgdgA666!]FB)X/9uuf0oGY-Ho6\DV?Mj%HB$U?>b\lrG<doDS.37B2uZm%TYbsr[Q'7ha[D_(`u[*d0QSV^$-)Hq9XB>pl#ig,0KZD]?5?6pt5@pPjbT2nsMtND3aRD&5%G20BmP;eYiP'q")f:le4DJ%!,pGqB9c/0V[t5 %:(E;7om#CPKNS_<+L5Xhiod8,'H4s`<Rh%E'o?eCDV,Z-qHLo8Rar!JP<t`4Br*@!]DN$?"+h``0?4*fPTbTrM:T7-*@/?95F1:VA`*/"YUMmTPQ!fk';JQ3ZO5\Yl;G/Q/qD$]I(`B\[6h2>E*6XeLRM4VE*Yb>)K%rr%Wh*tuUa5hP\jHDq7pQ>LnBES<An@o5/$POT<Kp)Xf&%Ms<,!cAhf]l:j*+Nm\T8!\Fbb:C#;f7?b9`(j %:TohrOF/iQ>=1qTT1nge2fc7TN[S;i!h[^W^n,(WMN8AjbUN_.F0YLd+^r']^#\eQIFX8K<PbOi]M$<mBG1"jfJs6W+)jJmk_PhO2Kn#rsHBU7_"omi5phE*CK/0*<dR1m[pG1RBE_hN<3RTkN/kDsLo[_K[H\(u6epHsDQkoFeUugKShpt!3q6(/2#0)M.q^/jlb.0$:]H@.T/iS*_'kom^;uQJC=!QrlI9cOuSb)m%R7T9O]J)!i %:VQp?qjk9m`:8Prr%T6g.PPAl"NOku$F]HskU9<"N1oi-fL6/"jVNqE>Y8j4<W<#W&)rNb"5PQK41+>S!=u2Lq$%_Q\,:F%,UW-g1X#DU#8QgU4M1VuMRk]N8UD95"FS.W_8En1".2K%Sj*R',NutRS4n<'XlPR3G'o[H2:MOk!OF)Q!o2B\UfW;+j8VAfco2;Z*po-VM^)@YsQ)*'-[BWu3#%R"8>/;3RORDAVYp)EoTEO6lkE[<s %:.;):"*1QJ29e=#IEqYrB3nX*%pg3cq1pYRn8l7&89)$P'V/fKRbET>$F&(ae$Nm5?fK+PYWaY&ncA!-2QUY<OVPZ(J$aUM>1>kMoB;=)CjeT5OkDTo%lO4]F%Q9g89VU.XXEr-'R/"`!/b&)qHf/p.-R0skc]g,?'!haN@b*6Od8:b\a'4Ke9=d'.'?Br1,!3aP'MJe9a[iThHH7:f"YOk"nC7NXLN73MrD_'i0CUMuS+"27YOhe( %:pCnmdG+#\&@o81L9NQ]^a0@'/>qq-'`@1K=0\qp]'T7$'1$G0HUM6['p_h6=)sKf]\0^HEdeID%^o9cS/>JQ]K]nN2R'B"a0uI-fK;Yeh*BU9(8[Hjo5OPm_S&K,#)sti:eCp8<_:k5CUOB\s<].@"+0CGU>?+a>&G#iO[.LIJq(N1?3f&nuT@*31e#B]2=O!bDd&>.5MAU>f*b-ElJLhZ.-dhPW1If;/P9`h[%WLoAN!q4GbB`Wu %:_Oc=1+6J^QU0+UJ`=J#D"L#pq6'j7>$'NB;lR7]_r'<"lN(0Ki*58$25/m)Ka)JNYoUItUm)6"g-FUK3@CfOW\:PP8ZVrPeAS8i?d2D"hNLkruN<M',?3`q";jbdpXlADaC;n<`@)^6c;4I]"`<d-q.:K,6L`'QM:[HRVoSik./=VJN3TXHm$B\+q]nKS&1\e*o0;=Zj^ir4g`49Ltl%ug,K$<hia1u=:SRRNu.d2;7T(Jc\^0g<s %:%7S'Zr%#^>k62OYZ88d7@2qG/e?tO6cdK(MIOE-+XLDELT/NN@]YBsK>\74U'Qk>t5/$BJRLK>UZT/0%qXia3,M4dhe<[5P,t/P<93A8,l\_eZU1Q,_/8E%#CU(W(SKt+MgJNmP+^GdTgTH?%R>QhV"ffO1R7_4Yae*@L0C:F[hCVM9VYpM_"/c`hi9N<'gh.$!?[@3kq]IieM;J[.BA>pT@LTce/1)Bq"SW_9^j"-pC7VW$;5-/7 %:d;+cVJGY&.i-Tnl\:8c(IT=[GHQRON]^N*jE''3dr2?gc(?5S4e]NGI4k[`hVeuStFV]@*j8cY8oQ\?S96BV.:=*Y)C@J_K#sN&UJk*iji*1[n4c+NK7=NRoK#_eJ_!e2Qi0iFDr--T&Q]:1cj`d:G6o]=9I\-g^$c[d:Ao`"P5FFqW+*!37@:K"<^'*Jsb3u&-1%o6Xg7;S)Y.P]$N*f?h1hQo#C%!(R4aq6:3DFQ,@gDL%!Kf6h %:,s[m=\E>5"dhin4OFIDQdu/CZ1l_`KI&9[:;_`ad<rV>#pO[e)'GSR_52u^]\8K3o^bGI.2).X$@LU7?J'Z)kZ('OYQn^LFV25%=?sF^*-3N:+;jC,4%c]Uk:F7PGY"pQ/omolW0r5Kee[DWB%aa19mD[K`Xt->*Fet&-Y*>3_;Tc/F@)QD6WBcq"iF<ZRk`8+>7_J+U[!5usj(WUM3(?4LU1^ul:3S'@T4>fV(F!iB7f69hkFX<f %:@lMDb8;SQ+\;(Y>Q&5?;(qr3rWBrf]Q$koTdgF"QpQNJd_hc"<8:f?r-uph$8,o)_#0k"Uc0,J5P*no/Ar<N[>uK)g)#5Eb.HbQ,f\DaVob`V(;iN$PSr_j2oVBpKn9n$BGI][k]\t$aW'\k;m=!_tI$Jr8\.aFMOh&[[W^`KQ'L5&'?UE:WQoRI4I#g92WcZ-=@B,"98AWA"FfENtinIC3V49`k6<0A`IZeuVkf5[3<5Dr45E+q' %:O.ZiPSOF-%+-:b=_`sF1_KGkBFK(%Ok_WO<$VS![aI#dYLK#V\6@CJDFh0Z&U=ieQA:d9i0p>2'k.$L>pZTY.JG\Rj-AQE,r+)Obb[+mB79:!>c]iI;l@mJ:Sk9OlPF(g8`_-K_%D/13<>nt]ijr+.6$;FAG[O@MXJo]0W>qsAB%PSuC3M*k9A:<Q9BN[=`P,f'lp5U\BqSV3DI<)pS\"0%7=g)=^2-<6f$]e&W4%Z@BEXqsCdhcP %:f-'He`+N%]oY"\J7YuV37?Y1.!6A7AdGXj"."BjFX"m!X3&k0F,J98K=?s9skJ`W4FC&HIHeoi+>*lB]jmV\:hl1m8k[7^8BR"6%b6qb^%;M>ViU8D<Z;nfeXZj<b@N7QY?4IN"j8$;>S\LXH79G&IZ1(Z:b0(=q$XRMK2'(!-pSmE>d/*=.L6nNLGhJ,POK&I+%hYCN=pRo1<H[&V0erl0JPhatb=c-fjU#ZXiM4&NO66HMp"[/^ %:5%p4['D'W*_0iW<nBo71O%?Dm-JQL^Kt_ICH.\tGYth0B,'AS(MU[guKA5UA2S;oA$83-q]X7QCnBul%ES>`eahbW3eF:o>Q5B6@(1-c_ia8$Q5\$uf-GRD]7=5L?Q&K$bFFit9eLn^374U%+I"rMlg0N.ALKS@$[@Z)?D5"C>];cUBF\_l87(!sgV0Nl7lD(4W1TPfNJnbV"SD)eT.^(S(d/gheLKnU91S?RO)WT@sFH.^'A*ErW %:8D<CAPJ^bXhJ+.9F_Y9PRW><C,^;qK"tf1FM_n.@3bT$aGC]SNPoE$=<]6N?T[>J8!Aoc;We8Ms%d#;%]8)TReR$?qo9D-T,6s9ZaHRKre7&!]XXclk+mO$q7Ip2Rc$)*#f'2(o?^E*V](PO=SmPf7UikJ*]gI"3fFEYU1s%nBIZs$SA\,=^]=Uu_;hM-[T1Y#Wm5N8Y2N>Ch>g4/lof"7e+s-?:FbWBFs7I'\%=`o2=@giV>:`R; %:7>fQQYPD$iFTg6eOYeXPb2oH\g>s'7;Bp=97oo;,:t:CPY61XF;A7Nt0$X7A(61ZqnFM;&acHaeYQ'V;WL"o$g1m`g-iDJhPs'.@md&)4(tX#I4gO9]K:J;gm;I>^;9[E[i)Vn>4gHL4ogpiL)IeaY_E9tIpS,8_OpF240*$.7b%+$ecgLVFI8eC$80Y7>\&"nBc=BHi?,aJoJ,3/#[#PPm/YAgK<2WYDLN"]CPJ:2Bec+hJj\mmt %:FXkp^)DWN9)F8;qpk7rnHN`)PiCl9WLH:@ZDmcjJEdXN70%7A.`)G*Xc7s`KkLsjcV9W$&Mp,>i%F%`I6_!Fl=)Z;UACUk@W%3eU`@C+6'X6.$g9E*M4,drH$VBdjK):EA8S.kfDr4fNXY*I`X",V#NT?:4/H)_\bYXY*b=OEh&D9,0qQuq$!:g_F+lpOA3EF<`qP12b-<k,Jd0^?:LWuj!1l/im+s[#0.sSF5RU88<c;&r7=Hh'F %:oX=4Wl-/]RNm.DV%X#sEA>WK1Z@^7jb&C/uqEnbo6"Kk!F<iD);qJB932d2"EL)BKS6&Ns1X^XQ+$o;=f[YrZbjmLN0ND7:>_?Xe>NtFlk0OSuG6"(njFk+8,l_oT^UiGe.s^2120BS3iFXjo4/ocs$f':gl<eYBgf=T#j!mjZ9h\?:+-$f78%*O-eO'of/PLn8+2a+kgUr76BLsndY:2aH-I\0l;?kFh,#)]2KLPJWg$1aW=H(.5 %:>6fg5SU+,b,&K.u<B$q_7#@Vf.uYSI0H%0p0Su5E,XZ20q#TuPg".:5Xgf*o^nmd^*a'35I3<bCgL6/5%:6""?(DmIp.3m#q$Pn%?ZHWNBF`ddM8N(_s%s$MJ&G%\0lpnh0(e>Wd*ItWBTK:(0,]qo,PVL;SCKe@10a49?u2$Ta\g^-&,UL4TO?)I'"2H=Uf4UBg;.UQ,7@sacNm`ml6!lD4q1`W6H$6_qgf#2X]f74ls7b4SaM[r %:\(C=eNeR!t9_MD;j:g3"nhEenUE3</W+XWiC)DYGnVu'`l'p36dkuWSCXn>b/uM7dICEdl8e"^5B5X"._54bCUD?/)jL_UqQROdPe11[1XbCP&&ZF;505XU*;HfrM4+2G@'sr+fVUK`^rS&M>r-'^sm7rJe0l5XAH\]?2)YWOSL3gn>l)p>4hLf>j#ZpJXl9i+S[^g_Q5AED6+SGS;qr'ZZX#R3ZE;q#Fq%63tD>W:s9pu%QVESS: %:e;%a<n/YF%]@<-k6=%C)V"E!_k?aQ*KsXmGLW%>i[s3/>5*s/oBE`8-)Og<5q),-3CTg>`WRkUJXa7sqU=coSp;SS3CQdGd1/NBPpN'A]Bnl1#)A\D5=7fZs;1tF<MmQCV_(,VQ&:Mbs$V5+'dr`6MZteUoeFT?Kn5(RKn,1R0B34_t,aPbPI?]ABrj00!^K?CX>)GM=VWa'^DTtV2l%aHYc\gR9>3;nT:Xdu,ebWBhdDoIL.6t_r %:5!b&i32u*rDoRB,oFi=4ps4g=SQY9lBJA#"7IN[7Dm6G7EjZUpQ^\\;VPKpkcY$=ikb5oZ^]1('p[W:gU8KW76]9gM>kE>Xd2SnFa]2P]4Y@T=.U!omambo;^!Wg;T%)8`7B`/<hV26+5#V#UP):;%DsYM5mo&,2+ob]mq`/fH#<96WrQRbQBJ'&p;Y4*L7Gk<F.PWp7F;t7dU/1%'7A&:B75)i,]P(YdZ1Vf^7;l<Ajcrjp#MflI %:aHf5F97?i>UA\<"cM??pTUcu!W5bcm?LD-WQ`jJP=$$#F="k5LSo<XXJ$g;)Y70]3l(k*g.5e]"\t.>6Ic2$ChXD^0JM\PupLFq!Z[.lX(?=g.VbP]Da,a95dPF]KBNoO]cCT-VQb9VMAb0*gQ(<4J.W&A9LPFC76a1iLSWS]]mJ8PDe87,b?FaXm`K`f,Vl9bm:0B-V.t&L8V^]iF(QA^VTl@.sFG@dP31a3cUjTfJpS*KEs5Ju! %:lbT-+)%?3g!;3uk/ED?<X.U92$O(J??$OHFS];f@;Bii44CX?q3r8s([GR$YM_*R^rt#=hI:nTb)L_pKQ@+P$Cm"=+)C@0:9$?\"F07>GOn=!7<n=1ZD"d9poG!kZhu!H+HOo<gNc&X>-*"OH<0&:[Qm?\f+rRToMuXM"R%0A];</]%0H#fXQlKXW7V$=O(^*;d)3[@:a@QXL-'@?W;`upqU`7&FY5\1p=mI"[]QIt5V/oCc0=jC` %:Y-+o[T<,aA>]os"73*o$3r8g@F]@WZ.]u`Q>!!I.%B]X'RS($*ohlq^/\+?@ZFdT6bF0rL9:4u.3!LH!;s"&%T?KaK?^\Z`5CJ0q#s?$3`H1JHGd?-=4uF=o1e^*V9Bf7&OLk@X/]ec7%,\o$c./"lY(lOoi4l_eir5Ujm/n&7h!CqdSrPY`mR>@-4D05a>l-bO,gCJJr/1q6k3l2]f4]psiM5:>Ea2CSCp'u&1,gmG_KAu3jH<Zj %:F3MtCZ(utQn?uF5ql@>-ll.#mfUqsuZYs'(-,[Fk11F#U:(,oll8$>mfr)U%k7tH*g-&<ljVnc=cXt,LdH%5h_,Sm$lQ'\h^<T'p+#^4N,Ji2C'Ta0^m04_27i\cDB`%2C,P0TLrNY)Uk5-o%r=(4_Z&T9LOa,#%J<6]cN`[Z![^3_dgWY*i%c=lJS;jJ*T^7JWp4q<6YJ%u?#:%fB8$#@5f<rA]RGE>TceS41Z`ptcVu8MGS"t[[ %:a:[`Al`CdA(N)i9e3ca-g\Fn&'?]aL^W9Enrk&:jZ/i:,En'DhqEuXINg]UZ0.&-F%sWL-D`Be8nbT-d]=i/AqaYdgU9nc,PhhJRLB0+bO*#gONk?'D`)=6<U>*N7kts+P7P$tFGpuq+YqhBa6ZI/*NgW:H1J4V@G.B(qQD[)_.Oe6*NP(LW7_P$QY'MN#*3jP_G#rFPkh^``'oH#8;2g*]%[B;G%[GJ&=N+,jdWdcp%9\3j(Ni,s %:<<,J].;RR/WU-pWo!K]CV9&AY\i!"-+_t#X?q7m[)8;foF8:PggC^LOfpVR/C5\AGQh7]#h,]kO2/q'GQD7d25M)s8,?Eir$$bi^[F-6<No@\)lZ;6abVO`e%Q67G0LR>=*B*gK]>LZ27cq_S%\'+qdr6j2?Z^ei*LqS=bs'78#L1MUWr/8h!0VE*d%PdGT42^*)@YkiIsT(urqlW5s6!HXNPF\m*nMA2>u,[j>Bg8[>3<95V'<:p %:X/<m>I:i85r2%#fb;j+nReE@hNWH_Diu3NFA:OV0>FO>K^>6EZY5_oHm']X>gt@=ki%G%D(YnD-cinXn0:n:Fo2fb[1l%_SmY!4'LW^pBR<tZDmUcA$f#^J^.BVZ*;aL$W0DF5YK\^XAhXJ5Wc+oOm,kSSp8a/J<+G7mn)VEqPl9^a2aX);NFSJ1SAq.F8L17k:BMX#-(C5(3l/-BsLF)O?H>?qbRbD$:&S:?$,K:C.nfB"h9F;ip %:e34nX-]A@/9U`s".d''0?8'1I.d9HHYeO:kP76Hjg0^r$gQ":Z%+d;W]J;mI\%eO6%8L!t[_L/<`0o5tJSc-/CV9W+TT+hTqfhqXr`=qc)6:ll=GA=!UpYGhPGtTGr^EJ9Y@eG1'iW"4p1N-H-lI*UYs6td&,O@fU63YMbDAXab7:;4/B8RZ5?;Xia@l'gZq0`ECfe9\g(a7#W8c@$So!un^$T`N]hjq[%IG77'ZOVS*f9*L^OkL# %:h\;\RZ0^pPF]#et%(&5@>"J0uLZ_)dm8'0XVnD@l>2])DWpLsrPBhb+<OSqK-+(^,GH#-HKR_4OUnBpH`_sM:+3[S]+8Z;X3*AHj00?OL:TE!<Zs\@qrjC5_W46$aAR9A!MNR>nEA^rl>rqP.k3_\M[un\tDq:PD(''VeB=lA<0um4uP<CXM:MDaX?Eg^u+\NGNfDb%g%&L0dW0^jLQ[-9GqiQ9Crj$c7kp)5$W:2H%h'>e%3Woa4 %:^RBfQi+tACj`TKhRFeK\5nrCESR%>fO7P$;EJciN1WI.S`>jc\aL1'Vgt1=W3k)#1'Ecd^UN#R@2"u4[&-f^i#j+FY436LJ%WDWmk,\2g+0]+X=V:PS2&C8!-U0)3;1Y=B3.C!RaZBHqY&Na52%MDP:WAE6ZG<gd)TM`b6c0`O)B-WpV\UBS58Y<?Qin6n^dqRT'S_.c(]pqR't9cqTR@4LoZ#9":B0\Sn*k^6&,-F!FoV-VO(jk? %:n;7G1$meAk=fn^ghYAGg7-Q"cSR,csUqXY77ea-L2Gm=F:TSF<rf@)$4^2uC^<R2:1uF[jb[IBi7,/`b-^f!YR[I&;V)D+l1Z`^6+Vm+N8:tGm)T8$AiR=08cRXHi[sc7K[h[fco!SMlKuPOTrckR;>"`6MHdXE@)'tQTqR5CUnHXEhdSi,UI5X81Hs=^s8l?`8hc;L5s2"]Ka^ZXWN(EiDEhNDoe>EPL'_@h=GY>Z@i]#V(U>h4, %:s)d\!@`hZ:Q:I)r[8_D-an?6X-7N^.lV9I*SS*5TSUX=C43r)Vo,NOV_k`j0VQdCiDQHHRrf!<[*HoHCVq[E+'in`efi_0nJs(:Xe38_"B13i8PFWGr/ab6fSX":i'?SN,q`UP;XE\"U-1.dY'uNVcF,DAPq>-2D'sFVaLRf0fgI/?RP0VL-m-KlM$kFeBjLODuWN>JYF8)=,;euEZk3gM)HG8-q]YM452D::Qa,7N>L9BIP!bIcm %:1053o%o_k8c&*oaZ6B$.de%!)G5gLahLBj7VO+-aVO+l.H?h8?YE53ur`R]B#"-j3el8)5O*buh4uID"o3h/#k*bA(b_s[qc#(\*Tkup)_B"+crc6bqB)]d)d_$&urfUR[?`jVj1Tr^?_0Wn#ltsp9qqL>tIFS-imjRmlV`/0FrG$Z@A+:GtZbkm,T9nfW:>[Gtb4MU\a//e]q?s>0(OO+mEDIkF6hE'\Q%%Fl`*C:2f\Fuh#7M-3 %:cFhOqc1o'J?LLGR,KOSO%*//?q6&TQ3\9tTnmA[f7i67<F4JjRM0Y<Z*qO"8(.B\-*US?W)`Q9Zc+"bPgJP$-;7j(2 %:s8Tk7jp82o$+opao+%jRR'7u$6l@FT6Kfp&Zj9E2VS4kT<9fijnA)L<lMRImUuKfM#j<gK>2!q&hPbu!all@t.6^$OrG8W6H%)K&R^#/Jc67B/]FhH1rg&PgS$&F!&-g.3E;XbsAn^'$T,qTXrY5r7ZFSOjC14;S!#GL3%aJu:HsU_G5$*7M8WPo!7h+7cTn=oKJ^8*an>+sXb:E)^@!_L%Ic\H5\#XQHlbk@9_N[0<h^_$?@Fr\N %:MW!Qr6&4Ntpn-6*MMqBcedgd'2"M<<4@cA])96C\cX`o9d>tj;R?,Gi`>k/e^4/.ZV3q:K.<IEh2d_7+%QdW_Fm4j;+1+qPUU:;)A(=B$,\g%G8L/'MP@0C+aKA7M(9CMNT3_?i?*NI6$7glqg<rpIlJm;t&t_5sZBL/[Bi%R;?833/&abq*l.)Qo$S=IGYf-ueF]*PYa?&+Mqe3#PhH0`eo2&Y^mCmm[k<nXgbP0O/,9J*q*smp\ %:P8Eeq:6!e5Q:j&72.WG-1l,1N7E%mSC7pkAMMbibfH=@u1,[W^`B`hI<[grRpES6f/XB5VZX0APFM3Xp2*4uIL:f-=O_?4\+=6e'ZAkh(.re?R"$\r5Z2Dko>!=Oh<8Kn->nnee]e1pAUV?PMJp.+R)D-$D$/3@]CXe[u-;ZELTGXq2YnH(n*0QphQ&</?4$n?tIu/@-@ta^RRjHeM.M:t9=\G\1hC.?d\GGG!M5Dg.&f$38<u&`5 %:hF*V8O.eOdn^'BH?^-M#.endM8oBJbN-JV#"N;L2%oX+tOf"A3^PKPZN/^kh-6E==6)[kuN?H*]QOS<BD(%RpT<>Haj/i,O)8D#0+$G!`17cO\5!@8T./!KE2?(lYPP.e%2(kh`aY\$lqVm8fPb:3%>()51"VN*)?:?&83>"ZJ-[[o(^p?MDa>ZlRC>D/B\Ud_`L\UI4m9#3(.n\=(5MO?tp%fLDXT;-6)G$Y:B$&h51KRgtU/3=2 %:b-VB*Ej7&)Er,HeW>HA4i([HN#^].M'p7cULS+nUI?@a.G1/]+`eanSPmPbGO-T;%ob:%\Q[cNb3rZ+LDDGJq#eW?7\<b2(:Wa(<d>F]P8LPb/<,&F%U7*:0(^'js[>.0CAsCemP@`:o1R2%0R\$UX?C8ILe?E49ol)WH$cu@c8!:IK<E<$MY9\8fi2idW"-_5gkHbf_Kp']M$8$(ZW1>[TPdVU^1DGK2#hh+31Coh+IlcqJ9%U$7 %:<pf;n/[Eq2/L]En/HJspYV]q2g!NtT,cII,KUGY7+Q\l4E@%aLhT)L``@>TZ:3gYjdArH(eKm8#cSPWIO@K=/;\+`M^=ol!q0m%QNrJ=GWQjB[lKfC,9mM8ag:S_YAR"[u*SJ&^l&3&a#c_A)s7Au*^8-XffBd0n33kJ+PGhbR#*>fj$h@V#:[Tm1X^-3<SHGAmr+Ak=U?8&!Q-g!GDnoZhfh"?<C]lcg8P>K0X?hh&YDAn+pMLM+ %:m)VZ]Vaa%]OcbX11B'Wi<[lOrk1!M8&[Xj&));Q&*m^[]8c+jQQbQD)^ai(-^J69DlT3P>eL2.*;=.JBO3p+S*!'n!_7\oDFXi"&gIp$ITHGIFD.l2-)V$m>f&LS>]!,6sD-03!H7DEGMDYfD?%j^601SU`'MToVC3Hsb'NAiQHJaf>($"_]B_<F(!RuK48lX-0b/d3i^8S3LF%q(3m%V(,i\eunpS,7eT5-i+b'@/rZaYkTI+W^I %:5P)7n[T41rlhf/rC0IA*dIJEr297<BC]g`oO@W=i.bW<RM8'f\n5U'%$$F1dodj8kb`-KK89lZ-^Jph)]q@+OQ^YDP"\f=%;LNX*LZ80/G3!d1.TYOrc+n[\U6ObDe_;I4BZf\DlJ6B=B\latW[C"NTjm(=8#nQ/i>66:BqtfuW%.T6lI8pmIjGqVf-k'!`-Mon11Ch216>u,C(RN(NJa"re:B@OADmWBR]4]2Y%fsaR]3cr=X_rZ %:>h/BSBVo*SJ!K;!LqQZh?X'<@R.j:6elHL=rdL\M^%$iU,*DliKaX>Mq!U9/jc2EmZBI?<[m1/.+]3O3-W,s=F3]MVkV2=aI-QtKFgZ%to;S'se^ZG4bGS\HJ-U$I,mo.:G-&X:n9pI,Y*[ijE@P-d6rih'@D]#K;QO&pXs"S>UPB'-*m.T1Oha.4<\*K$T@m+3$.X\D%Fj-u[d#s4?N]#^$0)r&G9Z6e3;"j9,#],kKG'IWho8#Z %:57EnnW+E!-Bj/&4c1dp/'heim8u#j[0Lon]OB4/]04BL8&rGn*m&rgr8keGWTZsE:Kp<P+jhK?o>*R=2Y.I_-.s`V=\tjR&MNnFOQ6N#s>7JenQ:Otemp>;-9!>X=K6jLi(;89S]S*r]2,Us`W4KXn36cC>;0CRBEGDT4;0C,`3q,hVG04K*KG_a#f!6X4I(mhS=:O)Q7Tb,M6qX]Og)!qL?'Vf9'jbR)9e0u]0>>eRG,\0bd?+K@ %:p]bD"[::Msa_'Ik,1>/ek,>#7h]K%Erj@VED-FSQ!]Y'p4N4$q3=^<;QmJbVAkSp4*^kU(CWB'&M]RCZUCjI1:CgEsT:N%^n`)n-_19(2e@'p3:]t,!:,*PRYD.>'MXXPb/fJ7a/a&jjDKF4RaNHsRa1(9;<E,5;a&n0d'b:T"Jh'eX'oE=IWXl4HC(h5YQ2MB:"oF\`UI6qX!&[eFU)GXYC%=SR7NeD.W^tX6[n<IYY]SDmg)R4D %:ojI#bg5`I/eJ\<iBhQ+"Wfa,^+[KsRs+]h/YM*cM)E(QU'lU9-kh&]po0n"`28A6ooif=:D*IO'Jf_]N4/n^ek/nf*P^-9cTMj-7-U(b1?4Oq;NK:NRG@!/,r?uN.qRl*mO/'(QU[kF+YuH[.dG/=rN,lVF6rQ.Q6mQHglK+dEpP,18G5/#rLP;39jRZ5]WSnPl-VAP4.TYP89N**MC2NMi;i\s=[4;%YRi;48;>W+gYUNeBN<jYK %:NET<qFuU>Fjf2-V-<L8Hh1Gl]TX9,<OCl[$/\jW?$W&BPmo!D=WK]eL&ORnFhC2s[7^sDV+`s2*kLX0;'geZQTU&PL+t;foZ<$7[Y;0Opge,aF.[,$!="Et*nOuo@o*pY('Ht_e$#a(7-%*GcQ$QiY,;"5h/+r*ZO0lhdYLIt^khoH$>MbFAhu+.h!_lgh8L02iop_m8iR*&X53kKd`KXM.VX_gdRu2qRe!-ojRkje,`]8I'.AHeA %:j_ol7OUt5)$,$e99)'A44c,&]p^'ZUjP*3:Z,i.G:^id`"&8"hR4.>saa4?AE$aA-4e'P5YH*_Vf/7+Lda\RQl^H&s])&3I/a8_PpM?`kWTe12'E-H/50W*:r1"[0$o`r*-<&Z*C4-&9R!/M/``;;AnsPKL!,5%ca*rTP"S*b\(+PH(nHFMRO?MR?Ka+.)k:6BYMM8nL[J1[RWQL8s)09W2S$c`tf">eA=FU$DT8GWeg+^lQhMj[e %:r0]sqlV"f-#nk6*(hiQTVK<*t!@k^4g<G[VVS#Y^0H>W4>`W!M2786;6E^NoaHpPHR,A*!T6eMq?9isdL@V'qF>59CC]c3MQ:Osgj:MJ$W2V?pb)%sR`_5p'B.EO-2(aql]eHgKW?uT7`?#_OB$9eD`gQsL9@Q^(/!-``&YP^]6%hb$%A9T%QdjKnF0qrkVeM:Zk%K=XVJ0t0c-^9:_P;r%?0,3j=*[PaQ/@u/O^7&\\$#9P*)*!f %:b,Z6A;]k9V?oF*YQ]R(#l-UNr-YAQ#(0ESEP;_m53uT3FM5Z-=!nI%37VN8&5Y^K,8m=,!:jqqY'K*QM7jcA?qBaM2'D-)Nfh">/F@ZVH+]7k!XA^RhM6hZ4WtgSU\$n3_7457GI:f-Ub37&(d/T[.N1.-BRX4eq1Kol`9oV2Q7X\S>)G6qLKC3F09DB>+4lLC?lD8qXSm.c!UU>Ds;f;8p?WsM&hW7dN2/Z.]ibNG31V0[<<_^\I %:]Q`74B22X2ALMe%Sc"@?!0snP.4@Y$F0nOV*%I'X5:iH4B$84L>OJ1;W-_bgDX2l,no9OE*8/bVR?2%(KHH31VWtZE[DK[JCE3q7WT@h7XaTU6V,h+]S]iUD;@Ii8q#a@r/.!$k.BiYPm97n0o<cAfJ'CoU<4eI2c90$Cn!l/q!'i,A6EHEt7*/Qqf=b5:h)VISm<u,)r9'kfrpmJ.p7IP5@)f%1;pu^j@'34Fm*V`]<M/I,mQdQ^ %:X&4,1@hT'5P"6m8MgE_iS+'L<@t`/Y9",t)1?7YG-p1pEfF(6T]GFUK?^I.`M9AmVp$$kKCOK4UA\ImfL2)eJ6%/I]9hf?rKDPN@:"A+p#PI>*2lU,U:)S+26CN?:3bAlqje:u,1[S0=fMM6Y[<@pdLT2^3[A1BJqL&Y&qmJGfoH+^&WeppmqFqg7hEX[E'MZ?ia_@"PMm/it':#m)-85]LN,<:eboTcr"h0OnYC5];jW=Fi%feP\ %:]fN6Q<iFk*ou^j9<TTtj[XG>caS_<((dXKl%W]][j]RU=*0_+XI?^9`;;"E4<3I(-X6""P;8#qMY*S1s7.pBf3c8!AN9p#bNg4iZ1[sKm=niW-U=BC2YeX?CX-So>Z+^B1'59dTb7Z$/HdP6ML:4Cd18-@Y"[jn!WB]ec.W/>T^rVhreO8=)D*(T$8;JV@K[?:.6mRT*kMlSH`er"t;tC"62l`9HOQ;,Jnn1Xl1F!F!8/!n3'MqN= %:NrY%%N+1.%Rdb/P")S@-WfVG)]&L2*=pr*ElA"<3[%\S=W_:h8U0)\[oeIdl"N;LZM):<OOa4eTF]mi(>./uLe>4,UX)TeIW2hl:";W*P3j,?l;8T9T'",r<%SNL+5tHfX)8ZqPVS'o+0W)cRc)Z#hP]mP&H'MOF=ge7O[E_@5eJUOj;rZ'epl0BSY+--Rm#.aZ5^=^cUgb<1Jp1'#_S)TJ*KGR3e3!@!M$N=>;X`*?ocC'?'VPMa %:h!``OD',EWC1M]\9kdlu4ZoC3qVJ-#H6f;\k*8nrW'Bm6d.jHClI"uDZuj@2Wdc*/U#gMqQL[Xofi5;BfqmOEe5WL<@[Es6DQ;4mhF3;WJ"3=bl#o\Jrg9M3qX]r;]tktr?D1;"##9r'oUBJW@6S0bDuS45),%_&)FM^b&FOj8J1E7@Yp9_nbLBoQ@73.I=$(mIr'C@AT2u[m1VHu\3`"UkgK!9H`m)9o&+ar1-I78iGN6HaP2J2e %::BTCe$X<]C'9[3UI'E4^K1]QmiVeKceesP'bVpQ!e'%]sl7IMJ>@'NSr_1$4nhs,&35>N`+Fc1;Rq'Zd**4WP]-uPXo=\\2^Q7\Z53VbSUTh"eq>hXZ4ENc_17h/^NQ7uei[C3dVB2i&7P<f?b(nrZjGs<#>U=Vi9DQoGGBoH,f"%%F!G!#E@u;-SiUeq@9NK#37]?7bs)&')G),uS46WrHjs_B&1FN*u%jnQ^l!N:5s"9^_RTOP5 %:s-k5?b]qgpr!%LmhIA4b#L(OY.[ePR12fYZq9s28Q4Y]M['M/#b;H"sOF\R09N2P'_Oj4E''&p"K^>LPS2GngGgRk;#fJc5;Zu'UGQW./e4Kj\[jluKIt3)SN!+>LBTPXpKVQBnlk:]ZggF&?SsG:j!!@_-O@[>mUaWl/W+?&>SC:"Q;-cIf#)-J`@Rn@g9N4Zc_Q0G<K\tDjK^>KQU0^5JZ*h?BHkFj9<tdKQ0ebEe.Jei_$A(^_ %:Mo,8Y<P:h]Wpf_e;S,?Rm$7@%3?aVp?<fYIU.E3*<oTooR:(>;^EGn[?2b$t2NeAY\<EO,X1q,k0?rYbF+#PojY+N4-*F*JZRH7]$OLCL)43KR,#KX;$Fa.Q;#lpo#0'2-fi!6\"b,lXUj,^_o(>bQp>e1H_UltE/&(73[hW6sgWD7[[ZUXuf"ZfGUTO1Y"TuLGO\"!2#eCSC8A#jQ+Clkmk?0%NM$L,FRUoLoHAeL2*^FPYHklS9 %:73Rg4N<JEq,$Z1,i1+afX;3_Sl4,NQINK^^X$tuiXbo:O%=rJ#O@1QfJ#(m+5skkofF=06-E8j#bblk8SIbmU%%4%lMS]H-Mm/!>9A=!Y5Qk(P&7KjBJ^l%m0U(G>iIQZu!t8uZ7^9nT")E2FmFOb]F^Y5bicSJ`R;:<2&s`+%HXo)*G2@)mq>MnB9[j1+9>5;n_9WtTSo8=_74)\:o0H]&W%-afIu.-LDH$=B"FUW@W;GQe"/%24 %:aJg)2MBL5^&>h:%&=T@[pp`2;oWgbN\MXXQGV"JqM^XIM5JY("&JE2:lTsV=U(?Q>4FaklOI_UX3a&2IBSr/+_s8*3iTaom=]dZ\qltB0g;9$<dXsLTjt;!hKq3d5)]<n@,%G%2`bsEC622!*iT1&2dFH!6N2sDl(qA3H"sUDL$9mp:&)Ik(nWudlSHH866'if)r$t#V;$^c^5](W$:P]1BW&Y,%$&W\X"%O4TK^U]IJdBEM=$oQ? %:$q+U'=EP1^&j_1,6O_c.YE7?pg9Q?JY#SEMgZQb/=oP723\QY5o<f.[`bQ[N;5Up<gGhFPe4al)7+G.(ZM=B05%B,ch?6>G?Hk#.qkPX7nGi[Gfd%3\$e-,r,!%V;Y[>&]<,G&oaZR&7pni%80g"*HT3GOiQYkif'Q$8\A5d^W7F?Hd$lfj%&\=lmT"0aHT.k]+JWLld955`)>kfL2;Ac"X%J78cn[O8A9Rrr4i6T0c2%uQK;u2$Q %:JqQW&.LL[NZ7.inc\d9PCbcbQ,A]Jo,0q1;'<V>'MQt:'YUQ5g";nX06m>Jq5W&d(*^PG]Jg:uZ92SfH+@TaT'Z2(UWBOsS+=@YYQ[&`W_.aZR-QM-]+&NHc7k\Z>D"4DQHC5'eg!@u#4(Y/W>(,%gNsAr-i&-p.DfCK1I-"&geu;euJ5750,:6/=<]Z,o)d].o;::%;",/?A@:7b"M*uaol5$>%5S7$_EI^I-R,<e?j>j%AJ7\nd %:mr$*^FuZ>M/_Gs:s8E_g1u4RgF'Kd^q0FO\Hi.CET5R2^EFY4!"1Gq3AY>qr`Nl@\CVg<ml*ePiS#\F2^=d(5qV/,0$0pStQgN)m%#@]97.kiS?;`BqQ]:G@U1[K#2]C=lM]skWSK5fk6=9m;1&bHG^1?VO0m;Pq^-ZTgqX$>b(L(qn2>I)M5%[\&0qu.B:Ka#j%*EAG@sdX-Gtkd=M:UK,FFP:&B^%#C(c"r_ZVBU-I!^=^[OrIh %:$!$c!PI%5*c)_6oL[5>fU,[giNFGkX<.`G5qES0*0Ap8I8YY0N;1*im7?h2n;JUQra2XiSo;?ulDg+X&1,clF;C@m!AKp$5G_nm;rV2]$;aaPO:??A#GdP*E8n3(gl#=,eDXNf\]%_3`GJerdl$^,>I+c=2HBeqHo>RL%3b>%#&(rN`-eA-YNA$F^->s*;[M^n$L$1ke-6^T"m\[H2?&DE+Z9iL&0pkbL;-gB+I*JeWs$5+Q<m`[O %:14aY;GX-3&X""XNe4HjGPiUXjN22K3V?Q^e<_V!th]f.Q"G%8fjJeY3A552!r71JQ.rXm@M(4WO>Z*2En/,)A]M4FN4Zop'"k.g+GEe1C[#n$94,`*nYLM-E6ltD6mi9c6<L_.O"A#P3q5Jc3\-+s%iGEtfXAO;KS.#.E3-r$+#?l*$Js$j5CLCj%#W\.t;F6s:NQ@a3Ss[j_M$;ZsZ(Ua-'.H%@XPZ154c%9+<c4GMm_425gZn3X %:P[S40EC?=mS@E!<<H`;'-gG\*eRgQ"BaAXPk97K-2Xh<nO$:BTCb.#aq]cs8@ga'A"tsB)XZ;3kpAJ""Fi$GLCVq$uDq.glA]>@kD2TK5C[G'QDFG-VY,#Ph05PaQ7/_@>.,4*8.jYfc48fd`\T#Dq[^@9(U6oFjfFAiIcTpca$29.q&rtDGZ=>iYLsaP/ZD3[gM4$5Kfs/tFPi/pa:j2Tn9JNO96[%jdVdefUMX:&54d7'-_)8j^ %:)S:h=c8ob!:Il%;.ShTh@33$!;Da@r&RRVc6Z=cH-i3]UQ_&HMbnKVQ"O($g.I?EE:APeH-CO'Z*&>a4>@2T>PRGNCA#CPb#fan@'R&8dkop[18j#EUnBpE[b09R\c(Tmr,dIM9(%b(+<S3lDP+$E"*a=l3Rm&X+03b81f-aZnZ6b@5:W2W7>ChGS`Z$m`J4*#6a7m4!r&H(q*m7Tiq<JMPAYQc\=>)*NG5$=,()VI/:R#[p*7(lr %:7F;F.+CW,oCpFmP-N;5tD1/THX&kg.D7`)P>5gGr0s*.[X)51qCfdY[^%Dm@fsWCsH3`AZlp6k;a&PR]WPk'J#KpS"FT3Mt>P(O24K07<U9sqe*aN7am-?;ZQ'7M%p7CTGJSFJHpp.2IdaB`q9f]C0K1@0W4\4J9WNOM6>L'\aQGQG03HQ%B;lA&bfq#B,oFC.p(>Wl)hR/l=`V^]L<9W`Wm,Fq`H?ZP^lp>)CVbGT95AXo_J)HN= %:m$CTo;=d,,fsT17IBEaeX]<b'&@/>pGmc>KL;+)5'4/!^GR<1HHt#":3fP9!o+([K"QoI+f8^ARS+^%X2&lO(>=,7QCS!i;807ra=6&S*<^gA*1N8UJ,#QMpZrp8iK,>5N11[+krABqdbF_Y(Z[XT3ZnnI@A'nO>`uFb&55O>$pXphX$@Q+L]kj.JS3Cr[$T<9W,Z,dT4Vm16[ek%Oqe<niVbC%ter\-U$Fm<#MD5cU#M%=:*-_hL %:2Oh7O[GIuM#b.e7esiBnZRiE)9rn\kN=llLZl/XK\>3<gWeFIn#Q^IQaM8O`OC7Pga4RRAR9lZf8@J7OQgCLXZooci+fq7IXmoOJ<OmhnmjfTclH"kpP;5J!l@M'ITK8_ORoq!LeS=IrG37M$^%p!8f\^%Af@r35`%Gr=SuSL4b=@<Id0X'"1\99k1](4;Nd&LfnM6lH@euU!/90k\0s+><p9sU%VbGUaTq`pq`7^D/Ze$QYA.`lS %:<V$e1iX3#i+%M-tKt_#WO6:`07.!2-OZe1u/0tpO+O4%d:.3XcEskuTr/PO4=VZe>D$E03Ojm]BFk<>n_?UR`ktb=k-f8QLLG'V\-RVZ$Oi-KFALDV69mIU%&aeP=FB<J;VQ`FF,#0=J_S<2cW>J.qV[YqAiY'+8_^#l&46d.,'Q?G+]DR>!&&092C/<L9+>!9_Lb6#MZc,OT&^f9eXYAiJ)me.*91/_&.f?pPCn5TLX?3t\b+tL^ %:X`%I^.2+T$a;O]02<SVZTWbgS7#agjS?:MX8;o/4_H*Xk`L'heg%rDlW>J[#E19:Y\1udS?1B[N0CLO[>i6sVldmcUbboF-9>TPB=s-ifUjX<W_+giG^.8D_;1h-)ZRTE,.)N5+_gn`!X0Tp\n;ZHBhNcpkC[#,;h7SYPK$oE_$LVP,oK`s,'dR@b`Zds3^mE)lV?$lfG#0^r$T+M]Qk1LAM(%J$$V"CZ)`1.'(D]T)Ilp,*k9?kX %:HQimRB9>^krf02bJO78;(`=uhW'@E(8f$Bf(e)TF6Y(e\&Hq"<$.#B"KL^u1*5eDTCfpE5rp7GB7PT@u.;V+U*JWkkb*=NY9Q61!.p!#1iP<tl.:apJ&B&;nC4(P_KD[#.e_@+.FuCo.!F*P\fHEN"lA)#RTEr/`)qb%h!Z0:3<>a$X>"\%Q^%8HlB>;uDmc_Oa%GFTWf.pjhJ52U+DD-NHS+K13LM!48DgJ,M[Fk91$2R`VILlTY %:C9c_$'D-lFC,'M1"H&IOq2tXF='rX+qEo's/ur;<b;D1p5]MYrR/IVddq#LcD#Y_<oAs#dm"e/Jm`qq&<DjO>85UYX$SlZmO=Xgs7YfZ8HctZM64U?(;p+@DD26f\@HAn<!S$9SX!7'J@Zc&c.]XP";qQLD=O_ne6DR;[/-rfoWZoqb=F5S:<1[@6jiLO&"&H'H4o(V;-YK8&\T7Ri?>/\H&N8hqce9LDXP2'S(YlT`W-+_K,'Yh+ %:4I>)J6XDkVE6(espY9'm7(@Zk*:>[54\@6!0"'_aBjLZ9[N4O,'?,gAmC7cBh*Kl*.dR7@CCH_`n.$oPU]g.'WPLcY\L[)VT(&H09(Ct3(jjm".)h'BckL<9@toXRa$Y_$;OVt]E<?n<S9P`Ui5KY,;64+U`mpQr%:!G/e/_BWXbq?3I1fk#,`r^%B>H\F6'oItr$t#V;+hM%&#bHt>_G^7-7[5scY\:Ym&([[fI5\[>WiQ2Ph[e$ %:iMZ_YNAV"S<jr1#=?aJ*HSpURbYV=3.t+&gS4Ki"M7Q66MEs5FhnV+/A6p8g'Oeg6"lL;gJ\*K@l*+1:@I.rib+_VA@I/2GZWG&snYc"sJ>e7(T-?Qf'MRME!Cj.RLY.CPV*n8NKC%ub@*o`Gl$%.p/NOuq_;7;A/j]p+?qK1PMf*`[YSY?W;h@/p:coBU2Sd*/cj&Q14rN_Xam,jQ1:(m.l&ur\N#b,bm*13@kXA.qk1do2^u<U+ %:dgP:$^c28B8hXW,bI=qQ6,%Ze9OW<S[jQLlEaa@5RjWO/i%Q39oEeA0/.,a<k#!JD5_i#>[XN7dYC/UVKl%NXYI0HUoeoj)YH]Jgf3/VgAWp(L>dYCT&h]5"E:-lYd7<X]^)J0*YIr`(p.[a+?<Qaq/=6r*-B5\i$6OkQH6Zibgl;qD?Cbp?+,0p1,)EHl\3rsY]D0X`Tl5Forj:+dna/50RAd]'b9Z2f3oS&&e"mo4I.6OKTcb!7 %:mC_h>DtP"NbObGaD4NFZ?Q?Vp>:R0IUIB_b$_Q8)OgiK^7aFpSKX[Il=Ehh#MuIO@@uLe:@j/"m/_YcRkHQKV"d^'X^5M(/!AZr8RE;AXBs2</F808re$Z^kq,Cj9k_#q55mo#tJa%"a.7&G[;j!^p.)MMR&lZ?f[k8JsQ-+fdqpq&cFPb8rZCiD9hN#YScZ/nPm9_[?6crEV0U%bDBc]rIX,+=af2$Z[j.)2+^+i-K1/T:21e=65 %:]$1bFc'&cs)LF'&UmsCs1mfALFVNk4Ob7<TKSM)_*XF-OM\-6KAQ:#D%kqt'<1<Sr<$MA,r-K#6D[N,'-,D$/?:9J^..4r+Gh8IrFA"qn3.)5,$F:WFUI?A(dm8[2Y8Nu=a+=@*26,M$5-jA`1&AgV53C6(0r"&'5,?U<b%o@23q'%A&Ao\Nn5.S>0qd'7hWr[)U:SZT^k\`/+SrNPcA*F@iKT2!q.Edc07DN<8<i56p6'G>o9^Z+ %:MUg$"Md]HshVY1964E5o#Pq)n(4o"!LiA^`-Nkl_?n#Xh?X>Z^"BMo",qk"2;XgjNL?;-5'YXWM#9jplOB!K)\H;b8Xsg#,/g7;3-BY7llTat-2\UnAa@EtT6_^NUIH5`=-)P]FHtUoJhgquNVjJ?6p8o\_mt.%hAOb[*<>=OU]X`'=J\d]k67*%`7Jrb`A'+S!^O_K;eBtTlO;$SF6o@2AjTjLpktMXlq<q>#oSsfjI/b9sNBqa6 %:7#aRiG+`i76,J<8XV-JZ"DSa10bG,Y$oBRZ;6ph@hL[=3^l8h/'I'O(#b$Mk_WB_\c3ed76N83=;=g^<%3%m]C/ObMTVf[I3"/fA9R6<?._IJag)rc8*O1,_<Q:[,&6'Sp,Q,uOM$cYPU)**E!>^JGYc(F9o!f&,FM]d]#,0".#n"n=H"/f7@82Z2X^s'R$!28U@FGRf%5&gj/IO3Eni,J/!u"+$`Wj)"Sj`+GH36>n:/4k3oK?jG %:,GAHYbS,NM_@9`j0Cqe$&2Z"G2)<N"i6o7FC+Ui\\4#.;6t.Y7C>eZcmo+L50&ME3].U[?f,)pP67S&UYJtJmopbrtA,>:%SMP`2?Zn(leaK1[r$c5nKX&VU+ZlZmR(uR\';H#]$u#3h?S%ILoY'jR?`K8r%*nm1?YD\F^'M1rr"KcIN&hUN@[0L63h*u^,7*t,\/".[9GIDm*s"h*Vp3$56'>E.X1*^*r7-?;$u.`(*b<)&p6.D% %:7GsOM"8c84X:7)?%Tc.[n<YgX;dKhDe/-W?#QoQ3A>3anXUM4Z\:L2i$"Tc6K<j,DM-l#T(i3%96.H--=Nc9g_A(FGX+96CTdd0YhdJN`<$jr=S5b8&g3eRPAeht'du[Y*q*e],.oGuR(N12\MXnnfU*B'9CUbedZm'EGDn*m`^*4(*4IfmV/*D2eitdbC4j:O>mNaQ]>O*"rb:2G/-.R;@o/f@kGL^tP\K)m?[H`.dWuXSC<4Ze( %:ZD*tu-kZbT(c]O^@:#G?-Wh+G+3#GIK1gc[=5MYSDRE[0:<<fuSI;>abo#pR-"obJGM3af4##21R21TEj[=^@'LcOB0ebh6#aqW#TFQK%#`>j>,*Ags$lAa.bF4:'*>eO&P0HD&i/@MD?Q=0H^"2E[)gg%^bPP?2rPmIK>LU'ADggM4^-Qcsr"OFgDe$umPuVI<kKJ"u\PG6fOdQ(0gQW=9>GCapqp9b\b<SjOjH"3O5Q4W<Vg@lh %:3=3pEH62iC=+AZ8d@[dd/`iFK>>#E4EpHLXEfA9O54\Kb[m[,#-N<)E@&H[tf1t-Ijhu%(/NiI(Pt]s8eol0n"9.&Xk(Z+EK3JP,.=StI+jgCuRHW"*d3Er`^Gb1--.j4E?F:t#Mh.Ed,SCgn.L$q`8:;<5D2XS""kk0AF'%t\iM<F\Zu``B#<*I_-sbbO1)I`6q^iM.0#B=^_-lSjTmQU5F*F`"O+osF5'efM_BUd'Ig]a-Ba_G5 %:_/aq*N!FVRVPp.9kcdiQ]bV5ECbm\p9F1oq71^jp<^Bf0)!QUOMQ;eB'a$1pPC-ClNZPj^_Cpt>UfWE*c-M`tX4OFpM-h1o+dEFW6;!j8!aX7,"Ze_MTW?6>r-c1K(V&Je!miXPGou51a+&I[[_dj@1EI1`GE:\&?IM!#abKCsQN(`To8jf!3(Mr^:?p$;\ZeAA/:*@Y51N!,ZRNNo3<J'TR%9jNm=%L2ZQdJfLnV9bnSd1*$Le,J %:ql$.G?:3)A9FWq"AV`aSnlf;S(Y$lX"#jC/'"(Grp[Sq%`$c6gKZasIA^`\fAVhYkQ[*`KU-;)co"fJDRM0eELjYs!ZPSHTs&k"SCdG@[Rhrd"J%sblej\`]qdMUE/]d6;(rY-C;u#7[Rd`:G4"urOUGKp9;ocUYC$bLU*F@XXjn63'+6iH"h7R'UGPlg"gV:2Q/br?re>(j%Ii>q'5DQi[E4MIQmm-,TfA,0+O+tWQ@>"?`?$?UX %:hO!m!riPt<\h3ShB^4?REpT9U5IY+gS#.#^_^^dX:#FN^D]:c,T2%Zh9P7,"`Ac\OG>XR]a+kUXjGQ?8JtnIT4Nmb#p[KEtI\$mR<Z0!e7/`mIrAtP9h_Cm4(:Q7,EJm2KIYJYbcs+6X;[=\OI5<f8fjG*9X,g!6XfRE:$'PHXh!P^d2$SOg7*m%]>(`VE#u7)%K"'T_;kJ*nBAW"8#H(8F@-`!Mi615S0gt!$m<qn*Uk:ha``Qoh %:[>1WaCCbEpp+VhKlb:95CL;:,D4MC=n"$!Kl^aQf45#`;m>:%Tde%-`Pf"0T\3/1"4'$Z:[$rGkZ!RQjAFtsMA@EGD'-.6eU)MX1^t[YW,H>("^cQYJ,FZ<$*-d5eoIdcoVHSX)_[UEsOg/(4W!O)QBeuu5N'rQrD9ubKU=3sV:Kbo2]soZ:T3][q%(qQ(+Ylcj^cRgN0Ch9mbhH`i'q$e]mURkOB0q3;l3kI(2?UQ8YEVZuM^(,Z %:it:@_e%,j"liL4C$VYY`JP"8nDBs9(kl.R=.K9;#?W&(Nlt(ho.4;iHK]*#:`lM&ja^lN@UUZoYj^m3k'\?"?LYT\t"TV2DK-;]U=N,huLW`er'SV%=@#K6=JL,+FWD>)@Fu'(IcUb`[BJBJO=g4K7QGtM[b)ggD$1$dL6!)pnj>@=8G06dh?o!"Xa3O%LVQgM&EO`e@2]%i6?/T<e(Ke@2P33pn?`]"$ntD&F*F+U0i!W_-\LWjR %:Jb?77F&,/@/6t8H-fo^+#]cY"$l8=E)b0#NqYH%X!tmFpE!_giFCWeM>*rQf4]=\#.h.mZ$qF,0";,5S2__:$-FbPK)P6EnH`X3-j11rE`@AgK%jkj@0U'@9ecfZ`Ym\cr\A4/C/hff,^b%J]0N%E\eS#cN5Q7bqn%"LK67hs]X28ueF9u^.+eIOs8frbQ.BmpUOGOl]V?%L*lH/3r!_n)b;H9;PH6m\FA!$c"E>dNBir@bMnM;T0 %:?&@!LjA,%E,W$"7%4#E[/)f4ao_O)%#!46i=HS]i5WgnKR4(/tATl!9r+I3KB1(WV/:7DM+OB_@H"lUcEuj*lhrPlHI=IR>&``!o)5o\_$,4XsmI.ug2ksNmo1MiHW2GnBYQXjCPUNLO%9VVfHK$BtP%[]\C_D[U]d)2OV,q@$EJhX$+C"I>(nb+e;EkN`s)sIO_FDNd-.H_%Bd)dYK4edB,?URR/"JHGCVBu,QE5t2LRlci"]=LU %:Sct&JEt8mUb%hORIsR.alAq4H%IYOpYh8nRY>[?5X[Z<OTRMRA8-MQ6:&MO)5o5VGi>oEdO:lq#nI)e&oKMg/p<RPD^+2sHW/D>g@51&\?$Q?l$2/$R*T\[:J$GD)0CV9_!^8XE5s4GGRD#![+]X.s8==^=GI]\m)oNpjK37,J&A%=.fcVt?FmZ]54#lCB:]GkG$4Zb0jVq%<n)0LYZmW"M@o$@gnAK:4-i3`>,!GIVRjZ?ia/R5# %:ZGRR6ZF`mck_ILH@@+E9qI+J%pRk1gMimf+Y(@\8<WeC4&n*Nn8=9\K/d?4YN:(/n4Gn.P[P;b$M5tP;M"%;7s.54s+iZub'L($8T=(\%7IOT`-u5E==7:n\.pC'o=7<&r@r8fJdJKVDX\jq3os_/e)sKm4lVX8r'h)IBB&F.$M;!`c-_m\'E!bLlL.mK1Gn"D-#.<$!&Mr'uME@=`;-T;(m,Yc3>duA]/%aO+Mc?5uFn2-YXZ27D %:af\?Jf3[KVm<*<L]jA9.>h.BHrqkfks5Pd,-1?=BHF/lR:1G[-jD`O!/giOPDO!tSY1;X0.S[;hUT[d9<CB3DJLppK&iH`39fB&#;)'N[9fAnA;=UFU9fDT4;51q/GiQ\Rm!PF[fMW3@PJK7M&=noM'5l`ERm\0-J*bmVr@kR/p^sbY>8/giC.1%MPp*.kh?mQ\%i66*oO5(<'GB;-:^jXDMHcb@']uYV^)^p(k6Qj6GIlIQ6l64* %:QaH@42`o2%j?iGcZ&/G9l@ko.#rY4*=n<5p?p@<%7p/8h'/?cqfaKD:h*WNhgZ_^S=GQA<AoXm(-t&)X=0\Hkk]h3_2e!4a/Aa]4%.%nrZ$IUm+3(!\8;OLN9d7Pk:p(-Eg8U+hA60L(,e/k@ZUPZf]M'??b*6V`7X*RcJ$l%')jtWB*XI$bL7L/#'q0)s=W<+\KtYg=EO/=&Ke[%?0k."YPioN:0CdejG`c2Y$>pH?PPE04PChRb %:h`W7&J+b5D3JO4?5>Q]RrbEGLc[LZLr9!Plh=lHlT*K95,H-1mqs!pkp@LJX]D^^9mWL"<h<glQh/$usG$)?16T94a)q9@%@f5+*(6dMeO*J#ZrgCctGgt]/a4rd38p]Kl'V>*gV3:lW@55kenSaK^`"QkOM8pX.Ggb]1rk>;+-U)_F`.-Z?rZAkH`(]`9n(X7KNH!/g'B#^o%WtS;4X1tJ_)"FPG7`&FZl>W5@lOD-iPl[=D%!4R %:DTmJ]8iM4Yk/Q77PH8Ltpbgk*<P^#=/'k5R.X3RiAaVjY^9T0b,,h^8m_P`2<q1>/6i>A<.q\=nFar)>Fal9.FaqB(qeL)\^Fj[/1o9V5LOR:=k3`hXT_gtDkbf+9C`ghKF^I7Q06[!>'dXE51ugl!!gan#<QPrda7Cn\4S93L<Z:<'VF1)4DS!S7FW[)NpS-"@I[Dc%l.J1JnFE1qrQ)#::k;C&pZ^Z2^VTBf>8@.L%B'7YMqi:< %::id!"@u1d^:XqVZ,gpe,fKG#X+1US7U"'%IPe*L]X9gO>GH:LQmQmEdId`@ipTs#en3$<r]5S8X4s73nXXuZoOl;(V3(JXg:d*'tO!q^ZRd'#4,h\!(eqTfp=pI)];sV@_X:sc/S`eE^Gin-lK7oP=7.YkUprcchnSQMgr8./i7+6=cH2LoS/.1?IE.oB"b96^=gqZHY1Yt_$iA-HF11(a)iRK2B&JaJ8iFgoS94aD*FLfG\8_G[\ %:"hP/je1<6nApNcUQ8d5CceZf3"1;Ha?mNMDe"Z$;er?:SG=!r<l52`ATGpc+a"2V]_K\68qA?r]_$`E,G*2f*k!CQRdk&X_Fe=o<\kdG3rgfPHhb2eGVpN,ujIO)][N#hrVQ2hZm2s4Fb[c1h2YnF9+dP7QLW(Ru4)dAJ>%FY[ViTq0]On%hrC;q"]fh?ts2iX$TCQ.ZIU5qHkT='cOdr)a%VX%0p3J'WjB0VN?Bl1"0L:]6J/G:- %:mQ]q7TgdpEclG9dfY+CP-h.HqF)Pj'18XF;d&hSrhturNe\*&Gk[&D\]d@l_0f?N0o7Zi!URl$1fe<3l@ASa:*96Y\U#gK^mX8/\ih8>"0&s4AI.6m(,"'u]I)u.JWH@UhdCL-.XS_W"h<Ssi2bVt:A4`s$[hqZJgMk6QZJPA"bT647h9Wb*P!%1]F%k_5p$:UOWF4TAT0qV[qKKSN*3>KS$KR!)KqF,qJc%:!Z0qQ2]$KT;KJ;,^ %:qb0o^Y>a_8rnJ&kE*b/5]JFM!adP?X^gj2;*ar\`6KUfnU1Z;q#7ilW<4^-$@h7.=[PZQ`<ep+L]BMM7eGU=Fh(pH]%i).ThpSfVgOqQS?07:+-XTC3>HB><PO*iIJX\C-8%aE/XV*'`%nhCg/%4b,E(c=BmNK97q$+0L_=SD5]pQ'Yh-.6hY8:?.4\C$q2os[)4WQ:4Q,Rci[)I'`Z,L`D/=+?$@X4fhhRZi`NmQ\D_=@j'TiYak %:<->OL@>VJ&Lq5b(ZG^b-W3t-pZfX6+d'^<RA?UScMcs]8YucDA;s?K<8*dlS)XBT%6h^c?FC.T(*]*S%UP)qj]"`/^oR](=Z[7>Jkln\CBD;$sjS&]%I>gVBo+*Iomc7KEkLWM84*V8\jX=!EUNKopNHJUXU&3he\h>4LT9qt>iqq^3fVVl:7%KrNYk<jt7G[a2g%n3@@>3TW3Ph#BobFmgNF8ehJuCQ*%h"H9L;=QK1iB,ZV=]*6 %:o@+A`F;jI/d%U=Z2r0g_]#VKkEka8kIjJ;]28<JohUcS[K6qpk:^^Klb=[4j@S.ZLTO:F+jJ*3$_2s0=;?J_]Kd/9hUsONMO4J`51tI)#L[Mp!dsXZaqfaK3?i8/Lp@FhjHBJ35f_fR)oci57Z$?E:D>5g8nssU*%o2nZ?c9es[+=iP?-VM:X!*hu<eXU]q7sOgLZtrS0)t`IQ?H+&^2dSpo>?K7pj$VtW050Oq8Qj6Wc$CeHYXoa %:-EZmrbrR\2&hX"Zb$Xg%.-`oIcQB98k`goRdDj=GPQ,SFXju++:pZ32ME_V]$nk(`2)#XO(B$kN=i-6\\0FUf>f%$OH:Ls&^P&4P\tc(.=>2B%>`7-'@uE>Wh"@`4ZC&c&>A5hYMKAH%\@9N+\U>"Yl_-i@Jj\SnanTfHTRk)X`GG09[9i@#*;o7/0D/d9Eptl3?g>1SF)]m1QUGgeI^/ZVhuF!c?i_?T4np&T]VBpJ,g(JN8Mo;X %:?:d.3bK`+qcP7uGVJ(Fdad+"&r9C/a1$^ffhfg\_1;A.`Qrqp\),iH.9Z)n^W(pKKhe\8oCEFZSdPF%31mc9;C`ksNU92LM_+B)h@h+p\=@U7hYE:M2;5ATh$4C6m1%/FtaRk6AA)6H)?31e&D0VjXq,A,FJ?(ib@L^f=@ZFAMr>N4LXKf.b-T?s/PCfF7]#f/VH7,;caNPkMe.QbHB(52]Mhl[].#;g(GJrN[#OnkC;<$Q[4#dVs %:aaEE7PGrZ]e>%0D4H4L@bgBTt\EU`(e30+[PIHi?J%t!<a+#CUQcm[0f@VSD_Z*-ZTM:rFg%.0Fro81^46%(r.acbk8"@auPjbL<Gb7RJ7E,\dq1,T@_Y<C&hQNb<=Y)?A(i7*hR=nuQ%^R:o'`D6O"F4m#Bq**XCZDX$4#`)*-]=[LUp*rfUXm)ufK8*CUGfd6XVE%rMIfD<S1*;"M0DD'7bA/.+RD3U;D8(&a?)ltn`lm#'4loI %:EArD&=C"?7bI3kKnSKU^rB'UoJ"7:7S$q7Gb4eG<Z&U5ik?=rc)I"c2@Bn*q(@*.rk2g3[FJRguEA)U24qklq'.nHhh8@0i#s[o1%gURfdgN2]Dd]j,nHRFB!g"j3O*'L9gFYB!'WVLXEQJKY:H[IknYsa\NND-E'*YmK>!C:*lg?H":R>3XI_DO[d#qX>T:GS.``]k0ds$,1SrEQ4H)E`7k[(HA/I/nqi)<5nWnJ!D-'\Og:dKRr %:l;8o@9;!;(U82UcKi?2=dc8].T)TekU/Z(]A+oG+@tpkc1&F"jg!=5'k1<rY'CEqR9K@lA4NPB'5$TZX#0pg&Nm/<rj(85a`^@n["g>0i;ppU#4d0!BmmVf<.8()$U/R"A"$Ki^K@<rsK,hHEihlUH;YQPi-e#b8Ugm_S5N/#:YV\NRqW.sqaIJ=X:2iMiqg\nJg!+M$kQ,>mZC%WioR(mnl1Wp(WH:A[UNJdVNHIJ&U&.])Nc1:5 %:\fWMHO,hD[H[3*L]#6S:B?W$'D8,pa;l3?b2%Ja#h2[M3&T-Ih4"Q9-SJXU_Nei4[ET5Tt]PM@[5104[5MNcp9/QXPJo,EUWOff6fp[UT7Dko;D#M_ciqq!Nf[e8H;d!q<7p?D>BUTDmiuAi@\lij$[$[<!@X=I&&T"Fe?S=JXha\Y$.pk5?@\H@3^-.Mf'B3-riF9dAT>S`$HKdf[fn(\0oYA&ufRiM`S2*qfEA^Tg%)cC[3hQ%] %:JJGFfoP]p)jLGqXa_>Rr*ul&cib#HpdUJZ7`Fs)890BDnIXYHt03fe:Rlb_W?8Sqsqe=bDU@N`[Pg.^YlNR.r?pAg-Y8;"4PPpa?'eQo7N?!@rj;$iu.oltAdINpeF><s"1F(RnlV&2[WQVEMe(?^AUTXOMNk4eF7pUD0goNll376mA#6$+GR]*](%Y%HkVe@'_P<W<eR<lX]QusE;cW;U3^uACO'W\J2+)X/H<>7"sa_g;-CbdK] %:La!Vt;=">p[,_R1&Y"?jM6b:9W"SmSL'3Fp'#IQ*NqM-@`r*rRNB&YONTiEjb4"rD<$jhT16o=E$=i@dH<9(QUUKGVbP11t[bZ)KeC9;c[dLg:96TCoe.;/MhpcHLhh_80KGg^l,uQ;V[>/]"IZMdZN>\@reN(ppg\cUtE7.HFJ'BpU>cqk+^ZM#93LYHBIp9HG<QeY2dDj*aP,9J[,"KDY`3%p%.f2q&i(H6ma_\ds.U#E@3VMC+ %:![7JD;DmEp@2=u:pf2e0<csNBQD<PBrs(dZ6\4gWH<?AmNL''p#Xo:G2AS#&=KuaZ_7D305n];G.Z;,tpj$U]\h]6s[_cIXE&W^R+tX#L-F[*)m6uESpt6kBSr7Oeqg7:`a^Xf6qg<%9UEUb'YWMBt5[<J[^?nMu;%G^0iu><X'2Rdbk*m8RG03Qp%DJ$!QOr#E?]f8q?8.Y`<dV3meu#^kei54hc=J_ohg/ukh9BDLoZJ2@&As+, %:T9&k/9]Vc6R#d(@-1ZN;cc7rE6DImO[$$Pb/VKnG$jh^,@'H#Jm1A-pg/hf5R`,(-??F=Xq2'"%DpDM&cXqS(_>f9aHpA(piF"s]m:\\XlU$`/=]7M+qAq0rfA`R>9hJtjFN+$#C@g2M`l<*?53)D5n/:%X*^8V$Fu(I+:EP^4;0X`rN7Mim'#J*[rZbpe6VpjR+qZnm,^-Fb.^<OhXOl#>8]-*plAIW0ql]T@ejC_8&m*-MB0b#[ %:)u'E45c218SDMLpH0l1S0eg&+HUp79Z_+]\53V[4<^#;=Bdb#Fqe!q@I]"[.78pa'q)%sihCeh=nZ_0thR`Po&Qa&bmkA`:jn83=ZFof&]-?YFYlA#!qA\@d]0mrmZ%I6LkU#(*hn_C@pC`=PG4;Xl]d/:o\g*7=?oN2lKKZ;f.:uQ6.El:MC.B3>PiJDU5IZ8_r8^.&hS*kk`Q?CuqAnLJT)L@>NSM=U+/pS&7kEX'pU2F)&.#RX %:pTc77PuSFp+q3gp)bJ*bX/kn8p'0"+mNj(1)bc=)iR52C&??&=HAbn]/I(no$F)!F"MFg>!ue5oTHL-fjrOYNXtf[IYqbu6HMdYY^&>.?\+`O(9RT1&+RVICMB6f;4\lm"bULG=qS5tY\_jf7q>d#%r@o,VC\rjaYOENDd4I&q%0V(uAmdK`#;X9p7`iPc*_Fe\ClW$be()jHmMa#]NJjT72<K'j0tA@h_>eUc2sW]T)mAPD<,URo %:inC(28^T:(:eDe`1B0mTA,bmMk!>=gRGT0%9Gf)OA?2];/,QjVVJ,V]/Gn(nQY6^^IC)>-3/,R_MLGCT=>U<nAfoD\4(P(S][+V^>T"oXd+&I5.[qI&P0+giW_VIcp<pR0W)kI9]uF7_[IZOnD^%ZIZIiS@R)`Cs8/b\`dUBDUDAN+J=tG;q`R7V!.K6UjHgl!c?DL;>G5l)1^$,FOm-Y_=]q4[S$]DImUDNhFb[U,bElpcR:hBYP %:YaauKO\'RT0K$cG9b+I5>H=YW$grX0fIVNMZ!%'HR,tj$/1/+FdOZ9lb_!5`X8q5Odp8?`ZpDI8dtWQo6RJfj)U_A;Uc)mW440/Di9TemP,co;Ki\r?G)IP!!eV91Rr,A0)H*.c/:;c*W)k@0XbtjUlKi30f&ZNKW``#DXIOWo-CIK3/Lu"&k,3O1/Y@J=Wn$h.Chp"[U1GW8[`(F-[&s![g\0G,b,_r#=GeK]IMUgG"n&`Ae!#Wq %:Y7uEL.0Op6b<2!./o]P'!b^=oi1+n?9PuIJZQ-[F(Ur)'nU[>&_g]&T!o4(Fje;!o2LHtlLrBom-8k\aq(MZfAn9]!(DpJ>bnrOr.2.tB)^?dZ(0L&@Rr_sa,tN;5_GU)>'dOb!1uqWU4AVAiCc?\qNK&5"@E_@s@ktgBd[6HYN9O%G.EnM?/)'M5YK(J'R42Uj\82TJ[RA@@22!@pEs*Y&!2T;]Vr_+%2rE`2hVJ>!DkZr3#!-<0 %:"lSQf/_PIIFW'DB2lRWadWAJBg0pPA0'eo&DFs/)EO1\<TkLd4&V&Um68UaNK0O$->W?9":Aad7P&b$$TS<<S%5k$[ %:s8Tk7EN`5+_.oR9LbcIR,qKr[O^]&o<hJ,a9bTr?&+VqG*u%05DRXIf2X34o?o!)UMY2/J'bWPCnl$Ft[RV;.DAjJcNl.7Ygl-Mc)DeF`0idFDYI*RONumgl03(p>P<Xid?U<Yu<bN/U#(rQ=lhC;B?Pa",f1/ljbI.rDk9eUu5@&n%elrmF4MX2t+d$5Zqj@3Ad.)FnW-*Ldm0ugYW-$Y")3b4@2WelaV([;0(@Y<L//RjlrU]+& %:M5fk>d%g"+30!>'aC46Z/itl(Vp`lDh!?T(<:lUVMFA,pn@7fTUcMseZRYl.*eU-]N<FCWLAb[!>bW'[R9Uk'L\]/hFoOR`FW]enICu';?V'!c:T=65;"-p;IO]Gh!P4m1h-VjX56KC=k^GR7Nr`>AL&XF4Y<6"_Dphb^Y8t3(l_aO^WV[YaFh[n`rWg#A"Po]&mMA1`k7$0""a(<d?NT'`"5OW^q[[e@jO(PgT>nHlkKs/4Q3$cg %:QgRRs+/SD?E7;Lj-tFF__iL?K.'e$^J[8Q!MbMI[o#!Zs;4f*,Pi9A,:PI]!ao%2gH\=pkL]:s;5)VkQp`G+m$%[6`hsm4.4O;+K=Eg6H"'M_FCE%psXbr@<CbUp2aD?@LUT-_</2/:9UIE`W^[\7_(K,BbG#(#n5OLecEn9EW(rl4BrbP:.FOHO:;]7H@mQnRfb:O;:h=!b4EQFsQ=87dt;,2K[3JMJ.^R;$U'a"/6jdCq,^t^NK %:hj/1CHrE.pEgX$\cq.+QG4Q/kbDHN\%e94mXl;q@%"-O[fgNMMB(;F7HAZ?f%e=J7Jt6pSA,=*dnFP!U]K_]7daXYa_jDc0A,8`+k&N7)c2'ibjurP88_ZW5Np@Rp\s(3^Etf^_>CHse!:2eqU'SW`+U/F]6Hsa1R!UXX1&\f,=T*$lVe@U>#@mId?7Dj9D0V\^!sKIAH#LXp1M!6XCBX/kj(!cbAp\sQT)GERn@i6"8Uioo*^,YA %:?A-5S;hTBlREEeV6(Vk)EuNe9GM(U#c-CddcFHm-3T4FChC%,;OU+VQ_XU<V*CfR*bGCao^f&u&71aVQ2m>XPe4bkq&9"G9(U4F$H)m9V15OT-NCNeQ7g%T\T7D7g9=9GD*O:W(I5c(QIjlGSc7MD9`T+&7nQ+UEWS`/[4M&DDKO+L]cS/;N3J0iV)/E,ag7C)]m$ua?BBGgTg,Y4`S^W_h><gof)[n2D>!<hGlUTQIb!`WuQO`2k %:p)U>nB=TY58Gau.>*u-$bY]0/5Zeuf+oKUi)^M'Nqr;8i5>UZY0dTLlZXe9IjU7DX9`@&K=n9.lKgYT\WKklD@R=9^&Dc]>X#oQsD_1h0/loRB/Rqe*3SZn6QF@`6ecI`+i&`"iG_l`Ro[5]tXVAa+=\=63XAZPh#dFY.>7<&mP>iZV.NjPO]OKfc<[='LR-5dao2K3d`G')24:Yj*\/@)p1hJu[@u;T.lgqtVUVr3h47fPuD!]J& %:#!-=1A'7BUQ]r0H#2J:mpW=MT]s(i=_MUkMi<K!0A;\pVmjWV<]:.sW`=qr;[tnqh<jFY/jeIZ=[U]p074954^9YUn.?%C06(Vl96>:8[Jdu9+Fu*_BC!:sB`l,7-7j%:c+89\2:*4;g_f@T4ITY@q1"NcaYRoB?oibAuWt(4^Z+aCpF0#RKormOq@aW.rl/-TfZC=5C!Z&bdJQUG:")B#;A88KZ\'8H-HA:`C:X<Q1+,0%*,j5#J %:<m5)-MhVm&&<55dVF^>J0h@U_TT;8:qigt/7-XlRKLg>!DIEG-`\iGX'_>uS.$;M%:u("2-/Dh!P]VKSDD!'p^s**[A05gHH8A[k'1P9C9J)J-r(q?_$QHJaAdR=LLoO\D2L@K6WMm3a%st"jLq7.=ZWOsk7+L6tg%2VfU<_c;m!6]OU/"O6p2UUj6<uF%=+%dh9:-E$+S)=19p#<DM^"VBN5t`g8[a4C@HZ'\\]=EuA^]5V7V<aO %:5n5uCFkN2YQ]lS^Qg!.76$"9!RPgJG\oUOEZ2AG3Ee;C^;tHJMqjp&5EE9`h?B^h+oYmI%@.Ck_ks%,:_d7^/V9_Zu(DBKAbYj!EpK4b$9OkDVkqGaV2mZJLB#0L7QW^sm_+X1)g%4+MlRUo^cdDEfN/D8oa%msq24?iOHGs6AcdDFaJkP+):ihL@nMR<&@s)-)NHO\LTZH$XJ0KJg5`n"Fg#Ta%32%UU4]tY><]2m`3amo[0H<,N %:rV0pse;bTu8)J+,bFT]!X7(YcT0i96p\P!3V:'dr8*dlY)XH7"e<%H";+(?RW$1WHDRu`S7kYHNN'2FUV-[ul;0K-?F/M]2W?DWqPldN+rIVH<-%n^Z@@*,S7Yi+iq.k."h(ZP#TZJa2d2kHdWj"!3Qj4RkE[7pR=(;e`P?m!#ase!hYF6KdQ+Z_h,S^2.=>,I`#i<EIs!c])D3),Hh))RHitN^;c_h>Br8f@qhF65dN)9YcBi%B% %:j9rQ)4Te`A2NoMnSI`A%]0!d5?'C>tCnQE49gD`JiXRMpOLua,/10Z=0)PZFGNJ?P*Uil5L86U^Mk[=W@c&E=U>\QV[Dooo]-K^Z;-S&R`(oYf8;KEpTRLR4'@djMe_8OdqpqE`[H.(pF&$VUjSS-=kMFO?-St58S9*TNSTj5?b^C"+3Hr&J<<PP'>s0_p9ql7fYtC5i1I[/fdo6prYF>u4X66A.[5sPba#9NY-j$I,A*`k_mbP;V %:'HR4ea#4s08>9u.aXh`9(S]*<A@?3o(S^f2A@B&<(F893GDJfsiE"3P6n3t7ZuTmHB]EXhYTb-6A48V$o2$$[EgM!S%cmll>(==gk*dOnU@5C4hf7(_lTqtRa)'sGih;ok$dVJU'W6lq(W;GYaHGFS@T,o`OeoaPY\=mpac[4S)Q)_s5F\DG-/leq'TAS/o/'s^C-tFU'K+S9)c\.)K%MoL-;,)aa_(I46J&5o#*to=iSkOE3)=YU %:,>pOH`k3$.='[ZHk[^9ekXlm+d?QgnFJ[c;(pf:1N-]*k\+*/4Al]mH1.AX.(%VinkrLsCM?VB&6pjliKg%uj#nTt9q@P8F.kg&D/ahM(flleZAo*F:AiCO&`p)X]-X*CFoQUJGZH\B?,0P*HlgA<'XQW7t%agP(bihY6ZS<eZ5OZQXULr47Uf\?ip]*Ira\_2I!.#%3TK!V^lVKBDreo7?60Nck@'":G4u.B^IMS_gcH0J=H]:b1 %:NV,G:&u`'!W#_t+Ag*/aqfH^]nFs!0*)EZd6Yl?OO59ka4G"PKXEjG8RBG6Oq`1(n^=KV[J,?R,S&YO%XAR)j;t@AkBDi28C"-Lac/rtoXk%pJ'3c/HkZ(sWU,Nj>SogAKH5RWNJpu65/:]t#`!RNl?2ahQF8gX9WCd0*]48S]C_aahs.r*u;#1FhfpZV%Q;(=L%@1=NplO_j7%*!iq2[7(<7q5&+#mSf)T7&l8)JD%I7m[4WNXuo %:i3Ml8aJF0:SNCtNG-Jr,L]btsMW`+l4EKeAotRHEs3A,'Wup*8:R#'-l_at1X=*NhrPA*_=Rc4)d.lM0-L8DUi9,O<@CEhA@kFtni%Q*Y*YYN=QFN)*^GmFF7mVP$?6OU]2giMXp$7umW3m\C=dk3C93=^BZB6$edUWi/17:K]1;iKi16:CObUO*5WhFK>e16"G?r<&CCYDJ@a)g(5Ng+5+pb?mA<T&CHBqRd*Kic%6:KO/AlcL#` %:7XEqRVkW@4@?g19T6fX]@dj*fLbg7)4"ihI0-W3C_p+3`BuWV(RB]U)@hEn(gcWS)`iq+-TBmsb><&Abs0^ED;$?Oh$LdaEc<C0UT!^&*j#K?m>:Db4X9j5AU#):6:KJVO/c"0#`-:@(&b:tsrdF0!+gG1YbM6qM9j7,VZ$.XkrV>lP,D?-THO\>S"%5@o^*hs0&7GTe06WgLbWh-V)q9I-7J'=PQiB,q$@7Bqe9`PudlDXo8P+,% %:ld@nVG;@M)/=n6AH"J*2(!kDMGg6BpbHLO"ji62sA\5R\ptj/+1XdV,H)'u%*Nn'MqVPA%q`0\..3i79gYji]$kp[P:mckNb_>S,eQGYSPA/Dr>%6j*G^)n[[.l]/i^%bf,iouZj'<8en;#orQ7;XJdu+N[a4Q+lH4b:`Du]&`n[sY"&s(ds^phl65n<K=qU@!:<l0!?9T2bG:FM9]hW<5?Y7hFNhW6PrY7ltPguZp@ekrOc^B4Y< %:7<e@^*W0o:h>Eaoro3&%h0d9^'m8H*B#Yl<$jkDd@=MQ?q"jTn]Q]"S`LCpkH-i)-`UaO]H1s=kdiI;JjNcLTROZ`)IEB+6lmltK(:HV%6t]1S=D(C_)s3P%UfFOI2S=IX>BT)("2)E6CKC&0G\n&\nA!uA4K.$_ib:_=mrA4<nN%$A(S?fQ%G`2A11<C(82r"oh;QOT"qTBD8A*_lnDFf]M.]A?php_oHIT).T=f<5GeBd^<mu?u %:T?qm#m^*Ls]60IO_i5E+g=Jj6h&%)<[]P.kAZ!uu2U&r;\6S;/fA[;/j#7Ge=(%RNgGE=G^8gL&rDY.KIB7#Qe*L-(jtU.E4Z8JiK8s,J/&$HFNumbbJe[MnZd`Ug4OUtV0igcaEAF#\E'g:Uh\_76P'>(>OUWdr;SZ.r.u;NoQfZ,><ZoCEl6^QT&JZD,7.MMYDH<[j#+=N!LGgqNK0&d^kAi(I[6?DY[QqmL2iL7ZdfY89^h03` %:b^LV]PI?4r8\21:NDd9W;<SRE'23HtY%_-rLbL="`+U0GONfgu,0P,2A%%T'_hnocOVJg/HC1tRr#Dfu"/;X8b-&D%Qm8=5-5EY0,\3cDeEu61--F/t%4C\3(XtJ*StP+Z6PG,)_&-UE1baFa=4cL6q7;FN2]D3>5A_[WkSeAM1IX3]Ig%U>T_+SL9qoX^.6<QA6Wgle(Ka1;G_%JZ>2=r*jBm$_/%WETRA*a="-n\HX.f&aguj;Q %:BFd"TjW32Mf0hQeM4I56S(Bu-9C)/NXP3d<Yc2ohEa>/<i+/=_6BlaTKIHFG6^6,?YUQ%'asp&=nBZk[af7>1>WZ8Y<Ul;Va8?fR:!eKAP-Btk7)(RW)5k&hmH<U(PHrp8)SEr_A[3f2iDluOPA1Zi<AD_H>a8/:o=u0mWloX`W)^.GWs64WNs&UnjBZ*VO'%dbHRHn7A*p_9Y"k/Ai->XVm'?5^V,$1+MI,G-'tqi9_i.n+5kV+B %:cKld6HCTilhNsRgg*c$<[cW:YCG/_]o9M+4N=qtcn1sc=q+Al/armqA[kNAB=RJQ&S6;L$p[l0Pk0</0$X^Y$VS2<7$X?b1E%jJ[8"(cZSM7<5NZTB<?+o^,ce.i-4r!rc*bCCm[M/gk-F5'm>#9jf2Y6"^^`_qgR>EqK?9p0R/C+Vtk1PW;k)gDMbg"%aGucF7cZ8*-71iJ[RLG[qKY+?.-:`W"**/u/))8iNs6s9h*,RJBhkbn* %:@1Cs-^tl/m<?n!,Z1I2E9f3S'J5i>DB@cr:JR.is,SkISH1Yl&9b#OC=/#oRZ2P9jlsc:r<6Jl0c^Xar-8mS5#L>soc1>*do5$ifo>lfR`]VI9Bset+VT2`BBkf^^HL;HY.a7%#MOkFWCAN#.@h4E67,;HnITe)t]VY-\5COfZj!a&Z]P7QA.VQU"K",E[GR8#9ONp/87[Ktufu^U'1!_tf@\.jiQncqP37.4>l+UZ(JaDcWnsn_X %:V5!AK:qW[oU$+nUJ(9WK?(rgT2fQ*obq.91;?2'H:2,S$T]Nnj.Ju-[`4KucE0tKH*bFLq0G-;*./TJgdB;\1G5;Cf;27&@f^\*4U4#?Gp=K%IU/ON![_I))M0br5'MOi!^O'MN<Y*_gc`]sGNU\#Xn'Ruak)16KNrc*0L6`jZ<p+O8f_YS3Lou*IYRRFY&FEei@;Gc?5WA^cV:TPZUfsMCUiC5$a8`-;oC3$d"C(\cg9R!AAk#"9 %:3fC35VQpq.I70PP$eXa@SZ0HnM(RDXE_AhK]d6liB;t*OFE5j,,jM4;*?3Xg4/Fcfo7j2B4+ER-XbQ%[d%B\c:d_V]o4KGR@-3&VD:l]H^0WEqjdscGWg:t)X#os'^`I%!'$YA"j<8-3Xbu-]ndPO<VS16N9maL9:"p#gk)gC)NHpnbf04C4D-FfB0jC6UB+mXC$kClO`??0N9qi`)1>!Tlc&U\jRDSBjeSY,3i:XO]ak\ig#p$A@ %:GF<17/7\24;p5dZs*\G;1EH*uHX9)THsCe'D7>]HZf8$2AAqXAn1`n'eTG8YS<9mNmP_[7^4iZL4dW#DS6o<NkIIR^On?nSA2g!'b%__mQ7UcQ0DkX-mthfBdBgU'(ua@<-6DbYF+HrcYHdPG]-Su1]Z0Zk]Ho'M^W(H0^.#I-5$c92T5>dQ!B3_i,&8I-A1Pta+V?7sSH0m=%\=!ia/K9D%aN,W%fK6#29X&&chUC</<Z(=i,S+j %:I&Cl=Vp&s8L&[br)cDDbRsR3f/-p[-P55D7p>BWK"&"SA']_$']!CR]^85UF=^%?7rH2.AW*>e:*cY4]hclU&G^PfF[IJ[ZeZ9uDM:Re'o/?N0B!<#l\YS+STZAF[eX42(O3^8&b5_.#rO@-JXR,PEm:a%-QM#RIINF+2&I6aQIa67)K;DAH<UA%:CXcLpo/;sc7&dlPfo.kq"9LHO_[BAbPhsS9(,)#l[,G6ZEE1KEk@E&Me0M!. %:U<Rso7@SAi0Vcm$nnETDaTi!-3(+pJrhlHW#8>Gr$-Pqn0eqQe;kcrj&?[at(_SETj[EXK-&aTQS<+!o)Z7;m)lX!sGrofG;'.G)E>ZqiR1!SI%?6@`&2b7.1`Ec01G$BsCGkM'7V=7bF"ulH@*k>9THP7QW"30L!D6-UBu10rp6.3k9HY&Z\ZQ7sOl*/8j&Yq9O0%hnDB<Eb])(l`!.&75Ts5d1;o)9aiQr2EWRD>GefY&t6_\:j %:^qi;`p&f0qR3BW!=nc1MAFR2q=jW7"1'D6XHMWXH;/juK=W_LN%$&'FHK,h]2&p.o[JV\ahAItW0R+'oIh)G;2!]4d$sb@tV$>j]K`*GAKM'`:]>R&+^_Q.@T*<:%Qb`mo&/%[pYMZ;2TR<,mM[F4QC]#]Zrd"E6Bc+tNpC>@d;44TP-[p-BOW:bEe:4q\W#,(cVA@[rE%hoClIJ8/HgiC[9gm1uX*E@FigFKnotf\X@t^EVY1d\n %:`VbRIeOM0;r.B2EU$oFY=-?oCoL?4V;j-#@2To*`T8e(_U@MERg5FB:K1to/;b.@`>\W\[mVP@k_cQ[52W'>-'-d7g\0=nq'=Ig82ab7H[r>sdjc_lC<JW$30.[J,(ZJXp()ENA.E%RF<:Q^*U"4HU'82Jo9H4.-5_DKY-LbFG;h\#j"?rPrW[KVQJVQ+60>Y&FC!HP@=Rr)D`I#?%R;!:^R$"*!V!!<u#6VUK#]F+T>3lopm24V/ %:/8N1ZS_Ph)rRZj\e^uL3?"h/H4P<K].YGp*Z^Elb,?(Za#[_]n`=7esj88W0PR1bQ'EupmMDrf<\ur*9N+g]n)Pcg?iG-Oc^Lfr@+J^7"KY,*$K:a%fMP8ulMa8]dUaW%nVuRFL92QTO_Fg8B9F2nMcdVg4p^X%`p=&qparNmfJCFGj+WYTFUH`^1Y3Tm'FE0<$@<J?[m+ob-j.ts0G\XMp[s:9:oNr]b0>."@^=_p:r`Obf`n!Re %:@)Kf*dO!`m2a3g?khK?"!'M-?bjOm(o2?^6^mM2OqX^?>T#p7^o]Nt:5*Mi.pZDctcUbu??4ojH82O0oTo]]G?,<:`bHO$*_i"*+*kKRDcBE1ZHA?7seMY&V[;r#X@0$mm3I!_^\)t!FWj>I_q2E;a3<u/%/"R\>n>u=*6i9FE$^#KuE,7!gNub+E4^[aNI?[M9Dml:1Xu8h(*<ntB&gKWucVGQXS&pMqpJ*>PSn+Qj]?\du&9JL4 %:EEs5c9Ap(L+n<2oC'jq=f/d@cQCX(rD(*u+gWbe\9V>Ri;!TO@pt?i(=-QNP[6fdGi@!rO'I3L9iI>a3+s_YHIVNS6WYLK$cPi7h1Und.c]]M_)bcOU\u^$ZEjBgiYnB4*@O4VW1KG]#XmBB0S[s-rnRm.4``BCETjAlfgP(UIH`GntSf)5ucbW<I2).]^cbi")$)3uZHG!<=)'YlU_.d?Xa1%o6QE_9Q[tci(;_]>iW$,9_qR/[( %:;?NjTeM(tM>!\U['r>Vl.muG(#Uc>PO@63d1uWei2jM(,]7r80/X)Xm]t'SpW$uKK1Xm$r*P556"(nZI&/iP54J80g&>JNGF-Z<$eo7cRfl4%&N#l,A)5W*+QdPMuiLjhtd$6JE`tlBG<1<[TRgBQ!ekH7bJ(JhWm9+samQQ\M/("icM0+tWZ=sY)SM2etK]3k+n3LGS@>]nI0dT,<GO#+KgZVSTr@6EDf.1(D*>At$*ML=(bSsbd %:BWs'."!OraFq%?DG:5>a0[KK86P2rN]FWP=iR<YpYPM/0nnQ-2MS0_M)R\R7*kWcG>r8o\Z]5nLR^bBj[unqqgd[Uq)U;V9)ibZsd3C0gURR#VkV9lhE+n)O3mI6TD/Y/bDS6SM<jeNV/mVNI[bV=Sm^q4I1:nGOp't%mU>DQ>3G9RP!Eobu&-Fn,O;,VPju#Q1FTZoapgY#LRQ!&;cWrDfgC-KV"uat*%+(9<-aLI@Lp2_iVng03 %:XWF1PCcnU?bB8)Zk[^9eTTU@!5pb>Lbb1,YhW#L!g"4Sq?1d;p\qr:!YsTF?d^#E)Kg8`J?(K=q#\li2B(L:.D1Sd+lcI?5r?sHr[Aos#H(,[2VOV7-H.7G%N\fUc_Wni^ei$K[<@2)8TAtL9lA5DOcAi"4We&oT,Wj=s>f=Z_+31!6R:e%#V+4Pd9/dA;JE<-dnVln&!/6`dF,;k)\594+OVekL9:Mgj<_*,39-$,?<ae$k)!,Y[ %:)UlOaWM=b/Z/O3)B8+t!*fKHE"i)=tWG-Lckbs)Q%FX`]H;,(3fWZ^hQ)9YSH8#$,lrBZaU>Nrdlrh;L0sL=Fp8gf6C2blXC=%At&@Oe0_`b*-$ebCJ/!oDo[?GmEJn96f"O$EkK4Qsd`j:UP(X5/amj!U=B=D@O1'5+<W'd'BEm1Rs]YNE9j;8iAcjdlk.rtV5+8*k7+9'<P/QsY0pAU,d]t%0eC%rcC^U]Xu%DXckMr`JUZ86gO %:-Ghc>RMr:!=_F&om's,1GFVs=F\_f%m)(ITgkfd^SZ?60ohk$;C,_,.O#:J:cPb5qX7g2P>gDHadu'pbkn$A6du:'tPlo?MeAjJtcG`6%k@,[-(I,_,iqBhf3-(ZYo)3m7/C/Id&Gr)cjm71Yr-#"if4GoMrN:ab2s>F!k]VX1B`r2?#2\/,(-ee.J`ZVbB^dABVl]jg4&KYClU,[O2Kl@^^d6bC4I3\Y4'4A=i>q-n-E`sp4_c\q %:nHsM2RRGo1%HDa1<YYjo%:^9dX,>/=L2l?SPscQKNP!k#Ke2"IGLXcI*M-B6^rJmW]k9MV>DEr\dk`L.Vt;eJF(1#<IpU(;*%)g$DJ*m^[YsjipTs%LnCeLCR!O_t;\8V\.a;;eROl$Wf@bY@p34s]ZPW4]LmBs'Nc`W7p_:(HhDQ(9SN_JG:7`=I3nAf)c86C_]!Q_+NY`U#[JFW_-]+NGg_jebehgC-Hf.f1DMPD$!cH*H8B[CR %:.lmkdAS\u,kr+ukDoS*.].DZ04N8#JCaGP1>"`ieLftYJ0#VV6^_Rtd`/3XO&aWD:H2)0>>-;XmE#FNEXpJ(Z_Go!5n6uiELXP)5Pc.7P#aSYnY3;0!K)GuAn0ET+]jI+D^'.-b7tZK)kKIui3@n%cc<Ss6o/kV<XjEc5=eS3ZV\qP&WIlM.K1r6\lcPe^+!ICg;]1$U,'CeN!?=K^&]<;.5&4^dZC^;_VD-Jl7E0"D#8EC.-"Ugi %:l$mP<VYsW7Y*A[@2j!5nS&XlhTc[+"E1a:pDBj;l>';\]>opL5OPP4\6`+>entnH^.1MNUL!ls!9m?ZP&P*B!7KYS+:%!^kn2iF#U*r`GNt)!q$2>Xg`2>;Oln/]1*?S@*@GXa;*%Mf(B3$Q]l"S-]`<q^_KaCX2*_b3\ke+Q^IS_lL6tVF;/+!,+O/3qQW#KuV6tPg-luI/.E\GV0e/=aQn?QrknIg`'C+H(3mT)hheH/TaLIdUi %:J(RV$rBV.PI-E'0Wi'V`*nO:,DW:!sFfeQVZt>No5j<VHJ77jsXYejg%t9X*)8F8eJUa,I_[pBD]"k1sX.T/g/TQWkD7;r7fQ2hmI(VoEI<11ghm%m<of;I0>?m)*!?QguQbat7<%0MdIK+dSA<ife[O&A:XD"E8r=LnX<!mjE(VUD'NeAfCXlBoKT/V*47[EA/gW*&I2_2nJVaHDC:G^#Uf+-r/(M&C`Z[LKeJ`fJW[J_ZQ,!i<V %:i-l9)@'E44k!SlP^7hgR(`VU'pOnG,'p8hjWacKk\h@A#!$#nZ"7BW)i?<#^JS;<-aD<b^<<FrdU>Z=H/E1c2NPM2S38A-*a>>2HN)GcL&WSAM@LQCK2P*-#QL"*HgrVZ_iE&/__QS9SiE)L1n=5P#mGP3]CoI)A)-X?j$SC%)i^[$#%*ucRA&4f_%"2rrc,:/\+c1s3c_1o(U'T^S9d,@J,:hDC0fN76B&[2#jPYPTF^N]_lU>*a %:qF<QQ;a&_'a5kH$eI"UE*iMN[*=WYT.\XKTg:&/t(m&DPTbmi.*_j7i[eSYkUGY/Wd-!:cI>EANo.3=E:%Kq'G]pp0N667mYm7GeR0QtZbF4o?T&o@/E?:\de7Mqn#9tZ_ICJsgMu6FCV!*oL,ek'8/@m`hcL6%sJN2%neg>jsX+CVAS+u*Z'h!\(2Xt9=.ZgU!Y44Xn%Og9"L9Pos64t"kbkFm.fM)4a9[gD^h`^#WMlFSj7*([E %:O/IC*j.VlT&s]*Y4.fUdn$o[-@ZU,.9RAfu-U,*6R"pCG&]J6%oC0537,cj\H,tk(W^6?=%p31+'L%u.#F)/35(2o6&-#]/EeNk"]O;jo(^>1Ql)59<nW[jVaCeI4077pgngP6uM\9?QHqr#ZF=g:QqENdu6F"4WM>Ioo><$@/P/^EB:)8OYDrM!4(jH(s)1LLQ"VUXtQ@+293oO#B$pP;&;3Y6ENdlOM4eS*2K6s;b1-m8<']pTP %:`7>[O3UF3fjgja5WJZo,\$BS[<UKMGk#kF3DbC?4`?R/K%6SmUc\7CDebMsh/-na6j!X>+-/X;JaY]!\L;Uj]YejXImmWZ^HfNe<D[8KKh?9/(8`P::D[_VD0LbH5)1:K."6+/q&DuuWTm1eC0je"Y5;e6)Wq-A(j%T))TeH_>eSu&M-*r>ian2p\XD'&GH.Gl([W3KH2pp%l1n7"4D2D1/Vlo?[-)//HM?beR7M$TLBqdVnbmq(q %:r[b(-js]e55DZTS"Rlfo\EZ=Uf?(W(gsUU6]C+K;lRUf#G0iCs(<#-POo4Q]+#+%EIhjPA_0ENhR1:]16"o$'r+)'p&KD88&h?EqIGtn<Usa^J@RUUp&4Mao5=DcMIgSF:FLYH94,tDB/1`\!=N:p_ge"p)kaDj&ZHh(?,b%+5L"&6's7C^e-E]AIO/9K&K:a>.oSu<AdIq8pDc$b2ZLEeR[^2BP5I+PG"<'>S"<(Ah@'c=&*&!dO %:o*eGBd)Nm)nrO0b?Zlj84`AAaRof.o^O8JD*k<fk?VX9.*M`K$_cociY&cr)YDj`^(97$t$6jSEeDJZ!X`P%V^3"'m^2bt\GelrMB3KZ.-4[C><O;lid%\24]V21s_'(t[ll1fZ5a7%kF"Dh`(ib(>RJLuE^0@ciVA4U"Is>$g`*P%5^OL8WL[O[@ke^U,P?+SVO.0@bDs<ql<_E+'ZfrOs&t$WVR]M%uAm[c.<l"42YG_rekc/tk %:bAoL7jWH$;g;\UjWlsrT*8j'ZNtD]Sb_:0MNAsr4JX5`YflccGfj<pWSV-?Eha]RF&B=H/\M'Fsi?bu./XVfXc["uL'fpq=mgc)F]c;!=1>dAfU[5=01B.hDYQ<1ml)0=11L9&"WOAOe%L.K+X\&P7i7ks`.V"?*nZAPg1=MYc/S1NP/A`6o,MR%++,b_n,jUnXekDT966TX8Z&XISYR\N5(@Ir5AK.^3;P)(W=#rFr3]^EpTcJ.n %:dD]uDbd4@UNqNt66%bHp?',Ac+e*(PZ"na5_G<^%B0nbqX^X4lIHXa[a+jT!k0=Qd>BBtAKkg!MdA/F/f`bQ\F:MKc]/2*&SP2ZeMj@ZZ[.ID+FE!mA%9@Ug3-]/d6lg95V^s;KlAR4=;juSI/],i\pa/?A[@U.OS!-3-XlN'$90k-/Aa9tW>[$n#S?.&fBWGcHcrTCF#&T([YjWfa5RMu1gBG;Kns9'[:g9O(/4$q%VqQ`0mlO^G %:?9n/?Mk,6*i]#js=9)YUh+51P)94\(Tcp&&.r<WknVlZ4rgTjJC-@ORPHUP-=?OZ,_`-+0R[Jn$C@>p,_/m<VR/?G\hRhleoJ,lTeoBQgX/1&!iAg:TXeg8EoJl<L\g96/%tY\-?'6VaEAF]QKO^Ea'&B$V98PFo\^,`]F.uj?KK[ru@Wjo.8X3$oDu\\a9cVnekm]p,ONjX,+j5#aCp9+?apJ^GR2$j1H("bC4#tq-ok.DL.clXH %:<j;ggdUiUH->k,8,,cYrfeC?A&Vq-a.%BYB.*lI[\7&.`]bSlD1Fo&tS#7.M'n`L!5J*%tQddk+)*P9MTS]M=E26'))5<*%d3Os\MM[up<&`0RD47Dh'Z;ri5p!eTjr<ohB%G[DPpWSgU-NiQ1pC-#O0!F:MjnDn("^eT7"i[5->kM&WOjR0;JQ_P@1KraT.Z"2%_Nk3A(3!*S$`N!>,@Dr;(J,YN'rut>/t;(>DEqTeh\h"7!q"U %:/Ft].a*)I,Nni!pliZ&k)k-+hW1+%s8JGVVbGNBI8#Pk;$m.KCf/OJTS4!$\WOU.FbjeHZ]bSlDdik<`V]!ggX+TiFWf6>JkjS;Dj#c@aU`dB#D^oUmnRSR21X)P]Z?M#d2%%t$OF\1:`n,aG;#C`1m>M-&1d6f#IAVb/0O=?>8[ohc&T0F%.pHqK6C-pmL?Bh[5"o.R?9PV]]eWA>e8$uJ`i-A&&r+iJnB%0B=!<*Q%pg!^fmoZ* %:l='gOb1\\dgkO^6,%;P/PDR^IB=P5]Atdn"5K0IA5Lmle[fVS9Ad'/cSn>c84?M6:1$,BdoDHDU<#dLe^HBP<s1Lu6oY/UP5H.%VU@407q6Gs+Z>[S_^1,EdZ>Wuc^>`Kn=gR@AVG$6([ZbiPL%Fr\$KoMnc#B7;ZKo49lol!k`Og6t*^@/io\R<M`tr&L\sKYuKb/N)*mGN"e6RBDT>;=nYr7C*kIItf(H>Rl<nL'kXK\&8X@%_, %:dgUS[Vsa<H^+XTC":?4&fSe(Y0NAV\+e?sIKL$DE.A6RC&.RmpN)/_A?&%58J5>b3,DY]R\?t[j3a)2X-q_ge:mB2Q$q8jm62*3&MuO?5@5.g:]HRhB9t\?Ln7)!"m42K&M^StC(k/)rJH83Ob<.0n"^3aA%^?9\WaW8j`DD*\lmp>\"[m'i7dV1SX[&3<NmJUSSN9)A5p\\#Jk@do1T4i&#KG7!Sag5O?aPd84MbP&r6;]]!eFG2 %:mcX3:Jg>9/7;2I;pK3ieNAmK%rk3FF!!bR7S8FK],1X<lHkr=*WOfP?4aK-lHLs#r4U,KLI5T[U$lHB*VEWH_47^?iBUUqCWaXBOA;L/^93b.%Iaf[,EmB\']!Ul[H$?:VX_<`d=j\5F4O%Q"d%#NKi8gjMT_g07E.Y7_8KO<ke<%,<L[mjUJr"B'An$_%6n;+a)HdA)'B9OUeDO6;\0km:Zri@_?cV5A-C/'@+D,FWEagPt2"X0& %:Pcfjfh8FsZ$?L<bD(\QFFsiJf`@pk*LgT@[`\6]E5c/R21SN_D0K'qu<]X]49uhR\NaW1"J7CbQU8\`+q8D9!@]Fc04u)7e%c-SoC#/6$ZL4hcKUu>/#aqS.M6NV)ma[D+$OYI%R]%6ras0RP&[gT9,($7j+.m>9DSb`IM$(VN6n$bpOFJ4(XP.1`k/6)RMq[8co+?DaWOLC)c!#cKXjX/=K<ZM[jgr@T4sr-u"k`Fj$F%Q57V(&8 %:blE+hZS<f_U&.]SDM^G\pb7a0;KcBmLUC8[b:"FY3Q`i\[P0*LC3Gq]]E[h&G)sjsYW_HdHE573=-Ro91/ZTMXBNErf]Mc*U37$d;CTq'-ON'uR5$35SnD(d4Q^@t_]+\s1#Zn]I&IL4bLe0Q)]^'$p!\3=#:amm'ck[Q+<h6E9iS]J(KK&,nA4IsW![H&(kEC#aC%Ap@oY@d((d;GV,9;ZA%s52FW!:#AB#*`)mVsS2Iq;9@c1*T %:)mTPd(o%[7p,AX[oWd8,9C[I4)p-rh0CjRSqao9@U+R#M3-gSZ*&h6u)"J:-q=DrQ\j,?*]#R1G;l=fZ/`!%<d/BS/pXj#`:[QYf1r*]-HjO,jPkV;-9S?g.ZYpo]Q'6`aGt6M60K:0pL8$pOO[e8):a:^)1Sllc<JG")V/oKsZW7=e/5:ql_LX]a4%V$7XFE>!AB%AIN1Frrm&XZ4E&P^H53T_eTujs7^NID]UV-(uS`Z,c?TRF\ %:;l@C(CP<d+KPMKEDhFK%6Kr[b%nLTr'jOcO&tp's),c8AKrCPpZ1H%W?,lke11M+O`\';+G"FEC1#fl1-G/pIK6J@gA;<dLo![Gdb>,\uDa0pUl+Slo?QXAHI:V?(5miIR7Q-5b!/Z]h0&ceHs-/M'&*EjYX(BlY6IR3F->Z^L@1L;[B_6;pPNGr;bZL=QfJPa#DP#Gp@j)>@jb8:dJ0T)@h$rJY"J1F7'8),?Ch_?l$obG:rd'US %:R[PYs9[S+#8&'p(*N1,TP*mYPfcs9o--F0!Ors;!I\Tu^X/J_:;7\]$2+]O-jWj8L[ojGncJ-@@'"s3&k3Y\+'A`S0n9-$1kKLB5FH^B]=e9OnRHIcicZe_<1XE[jk>2DTe]]8A!H2Z#UjJ(5]PV`ml/$G=Du8rFFh[u9`6gpG'3#*_N3KDo2.tD:I:TmkmaI`.qgU0Q5B,!J6`'Z'fl^Y?l7Ll(f:UL+\/0'D]pS^!CI##+0jO%5 %:"pEc:<`S8+^A1kh`&^<XZj3l[*g`ArO6t5B?!?tuS?2V.QL:A+kl.!uI9:[K#Jdj=_X7Nq%c52e8'6@+#C5@eB9V`c@-7u-pPh$&%QkW%>OTGPB(mr`>5-Z!EU&M[V5=(hm(.E4I'%KTe3Wgc[R`V2Qj2sC:b6$l%/iF(eNm51A.dCucn>h`6s7%h3A3VsYcRZi1p=-!HtJg8IW"$m;)Y3SCKh5\qNWae`mkPu%Jo5cRb(io,2F8> %:;>P.`_s8m8-``R@iq98IA`NS<9"V6UbA]5_mnB=dZn.f^E[dT83UiOL["sC>g>"'W[91N-nffHq((3e-i?./]J\R!/43\g"kU?*$Vg5Eu4,P3GVce>/HM7slNZ"@m^bUV\^*OIkK0>Q.@S]Ia_CL5,Yk/<0R;&*WoJ/6-G9V@u-3e/kWE.CA0_XSB+%6`MX?==>DpXacm,9Z6[W<!P4[?.KE@-]:<1)JE]^iS<$$bDPaI->i?f+H\ %:MchBgf>.U\.2)u20S-md1F%W+k;),&*4fo9kE#2TYYX$E4?EH9>Pd(c)?jEZR:0Q1>p7au.6=\+KC6n9NQ\W6Fk^K)8Q=lh4!h2mPpbq8B>^^b#+?DAY!0ohMh\u9K0U(Bp79?th+O)?;l6jU(XhCFI4BSb%p&CQ=8-`ZBqC$BH2bV==k\.5?MP>^_]=!!Br%+X-\[I?a2PphYB`=X).ITR!Bf71bYA_5A6LC.F_.24g\Mc1X\/&' %:q"td[pQ#OFh%;3OACLL40!0Ir-gTX,d_2!"m_+nR7qC6M*1Or40JkM*5!gg;^Wj\G$9*#fCDoUO+e&E..d,I0RQeD%k;g#X]KU@Mh%t7?mL*1/04NPHS(G\QpEL]#YD0Or[gI,a-fJN_;@n&i3UR>n52g<p40na#ViL:0';gX=is0P3oPA-.6rsbV@kT42[H"Z7j4T=u?]sVRn/D"-pi:?fK,&h?,&Vk?RCsU'YA1a6KXbQKENQ$` %:N&Wt`4\ONUY*s&;mB1\eA`R!.a'AiVE\4JPLq$43G[?jd#W7tN@6P]ZBBt#=]!Mckk%#,RC7.=A]*U0pilVBn3LBf:(k1<\YOc!T%Z&6e0!_tRPJuV3DX>W;8i.t'[V>)kY)1OT-4V^D;QX:%+a3PES"fAs7P(Zf;pi(E-bEPE?Icp&F]m23TFrT3%Tf$MZ'$`a==GURk$p,Hg4?LaMQtR^)-[Fd?D1";lp<Y\/rPCX;qT8Af7eaj %:+/3=fj7;P*e.o7VX$HA&j)AV!7))6gZY)Loc&Sf)rNkjE<^LW2E*^.om"LJulYM!NS4bY=_9%Y$[hu/ZB2!VO;N+%(0SV"oQ3"V3@P@b>'(,9KB?r33&Dc40@4r2d!hpaRraS_g=sLV>[]sHN8(,(M&:5=rIS%ul*U+G&;HN?^fMPR<[G"@a@h7b9'S081Z_t@WAYr&Kp[)J!e)O@gp2A<@D:u[dH=k4)mO[VJ@F76B4'Q(QV1EIS %:Y\:(]B</T`VHPRL7'l"@QtREsS1P8q001sMc.5[cQf#FlO>JE6$qRu.O]jDTK0)b^,nf(SasZ/3+BV2n_l;YDL/Z@=L/ZVX*+->:0X'caE5jjSNcNFcCnMaT5#)@s:oGo#T?te07DbrN6MPI='^[L_2:1#6/WVm`0V.$<Gu#E3-p:GXqEm2W&O&h:"<hOC@&sR<>^"N1X-SqeX(a:hgOZUjMQq(>(s<$;j3\9/p"1f_hMl#@N.,l# %:ds,Jn7"]hm=/&@s.JP9;_Fg"?pnpT;Rp/^DI/'-nW7jTCqbC`6b$E4W93mm]V7r.-WFsWLKq/u<07QF6=9i$ZK7)abU$PA369-bLLcp4;:ejbk_Z"7-)ZEG`D=s(JlSVkcKtV$s!10Q-h*?g?K?P9Z']8.`iqJm.@Vjr4;=*H?ZLWe'-1#s#0tG'X@<V%=[aZFb\r'ZU@+n#YgJ!fE!ZM!gVCDEjc,@X`8Bp9N)nIlP!D_e1I$#rk %:B(=Ztc85(g;XllpJ`kfV9:qqQfY\5;b21U*Z%'"Jd/-BDQN$D0'(rcKQe`PXWU(@>Q/,+&P.frFm,#O/3HY:d9C'<kPBGd$dX<nVh1)PK5<c^IHU.>7U&/`Sr=.u))g$SYe9tun4q5*l$Jf'Am^kg[fD^Qn>I_'.><,j\/M5ef[d.7G[8FN-i1PFc@ERle$aZn[@V*N7na,h#mEuM/-d@0"Z+D\u"hU:`k_62YYU]ts?L=A4WK6T^ %:lr#3)2=OB)N)4]sE.Y/fr%5Od5<1MoUAC!6=hHk6a"OI;@uJOX>>/SXZqr[HcC_E)M,4sHpeP$)3+L[7<3$Gn_^9<S,qE4=bU*SWQ[T26ZhZ*i;6>.`IIZf]KX4==\AG,/2a8rYO<n_q.R0OfOKI<E<Rs>kO<qGSV-8-)YQpj#,L?iaI5)#b/"=FmM_*JNYI&MZiO#p"Vh<fEgq5Zt_jT^r3&E=H6^LENX8-dK7hYb@on)Re0a(1a %:WFEmUYD9@Ljm.O7ER)AS!AGV/!."psJlElC3]1apgR_G<S1,Aq;R!<C)H"J_@p:FhQ>VrlWnP%aFWhu^m4^lG"iRh+NaI<=ko;g0VMhtL5ma`t:?K*F`H*t"cciH%i]5G<B/MBG"(RZOo2nrL1qPI:Q!?,X,.g[=('3MhO1joP_@(D7i)f8MJ^\WSf'^h[2p.ikSh@/BhG2XM02)%*%_D,(F<?cRpMDW=St9q#[_]b(1?a:*W*Q^` %:K7WRR;Dfn;M1P3lZVP.J%#fZOpQDX50V5e>F&LH4V0,#<ah$qZl$f:2pMO;iPjWZ!h5efs>4>3UFhA^=f0h`R:n$abYo_2>rHsk%5?!pI1<_*DT/C5qK\)o+V\XU%;&ZMeXC3<0C?QSRP)7%#3;u_<?OYIm/Xs`i)RpR6EXj7S?d0)kYX:j%<D0Z5!E!%O!$3GIR;EoO7[EB:[nnID*+JG#`6L11$<'&W47I(_2s>]L'Y?PIhQ.UZ %:.bg6<8$3rgJF0q85WisAn4"Ff-9#<6ZkG[6h1.4lB?nCc?Gg#OpVWQ'qf#4&,91ei;X$Bb62-=mr,Cm!3s18[O"e"j>6?USp1q,8d6S]A8&3EZg,+L45pgIVKVI9k(hd')=sFZp?lP_$'I+M;@[ig5;Q\oh=c3if<>r8doTmlWc.Ej\1DXCRp5K/a@hiL;Z86[b"2T/`=<R=Z!\F/o1\"sY3ns"-S92NkVQj5t'?NNeY'Qn*_ZJMT %:(e\W$PKh:GM53^pc&Ibu8T-,c\N<Qd>$rg\f>K/?Gn;<h:mcki4>c'XU'I.#0RJ!.8X'MsA!%7[74H5'4"utiSCf18Ood"s%0*cD<$.M:s0f=jno%_@NPWZWc1#YnGei&Bs-B2)-\q-K1L4,WY[OHp5/u%LA-^pd;7`B_?2&;GC]bBa%D#o%Z"4kr^Wmg'[R9ei5t_Q,^BS1@$?X&FIuGsX?!@!OSZM^&QL8BFk^KDW4ZlM0.b:jF %:L=0'C9oU_Jd/@^<&qf5>fIFO@D_U%S[q^Zo1#O0K@k/]H9[la@6$;!PBTra[DgkarDXeZM;;ekg8SlJ6J#ab`%b/a,K^l!8LtXk8bA>=B=\gp,ac+KL(lNHCCn>)EQ>L8.H)fC.Iq:-+m$.m,SR<rm=39!hrRo>Uc,b_nn,ItkIG.N#aSV":2f(&*=.X$I&&68\qZSUSqaF92rBa0OM]HoS7-T/(G24g`r$VC8ji;D@HSMrGM;=aL %::RXr8Q57qGi%>i?gWSa<8TW#FX)&rN1mcG_SLsUY:RXp^>5-42XSZRpmc,=0^I%0+54LeJ(Fs>@>69SCq!h7j=<8-4!sc-N,AWB&JcfNSD3u>pNeN;g[L/eJ_Z)>_?oZ3I<G+h&S?2TU9D>J-FJ#@N59lZcjk#-bZ?_Ltb9e;@@WR.QbGM,VYrOD?@-'![hFM8-SjpeOAbk#\1/^$IlNLr#O4CA?0!5$D:=fA)9D9AFFMC];Y()<S %:IV*cZ07qN,K?m[+T/-^9B-E4]Np1WI_<4LIc^><91CHBZ5((Z"s5A$^?!?u,S?2V4QL;4Ck^K#LrN,@sO+Zku62,GoqcN'2/p+8u-b7E'd![`m59%2+%,K6amO.rDh/@LOh=#HkmWVdEs3<q)]9M_<++2DlbD(!$;_dqUJF4d4Gf]q:iD*-p5X)(`6rP4C12.MnP&OV`R4sdu.IhD<H-U;of)8o&l[FnkqsWp`GOtYsl$eYFCo<Ur %:mPujX@#CeH)&=QfLe.uN8OS%t@B:d)'2>!1XuJ##g6R_#h+T@;Z\4<cMKapV'?*G4VV&ED9r!i^q8UegpegOiW#Zl`HLSYs.G3*#gI<`oq1;=uHR9MEWk`(lYa(Vnl#r[lPBjscAF?qJ2!ea.Y>dq;*_kM[8>1dX-K4K@.%q-XC%Pk:l:@\ENj)+JI[%a>:LTFuA9p3M+]1/Rs$V,b4)t,Mags]Il2DJ(h>aKs%uYmDpL?Z%1gRO/ %:AC8R>b&IS<0tjZXr8plWdjI$th,!80NfDA+6]V1d#+IUJTH'#e'>DFnQVI3E>[$m:3Ec)H/`$HpT_i4kp[b]VIO58;*J=(p$m:ZL]OtXAN\i+Y;_`NX`S`lgKD,KWhU=0'O8g;SpE)#iq`gXQq\,:`s)QKb8Yu=[fl]L[Nas,!kR"i?`k_=Be.e)%:UK)'d`@mHmN<J)EjhJLmE\8R(n&;0:V4"%cT55'B.Vl2F3sl2V0acU.#2eo %:fR45]l,bAg5I3'Vs2c^^c=7HA^6;L@2dd6L.0-N0!\N@L??UJ.6k%2%<jY*ppFdb23ak!S%j)Z)^kUmg1K99)kn)NAN5h.edQ&0ARp'jc;<!b&)7sQ:G1k0.S(ACofKoh_BY($0jPcaX9EPO8iD;@m6mJB%@-F19["O9gdNEUt@3:G@4lUD%iP1C_]c'D^TmllAYPdZ>fPmj%QuD^?P\@btgSS_>\drF@MbTI(CRes'T9PO,5CMm$ %:_"TPPS4D&R#8V4Kl!#_Ub2ICDs'SXtkB3'<Rc\b;nU95"f2\]KY,9ur1>Ol?\o69dQ<q$8h3^mj46Qq-<:mS4r3<,UTL9IjiAYsOK2^1l`@V!:Z*rkOQrX04*>!YmrQFY:\P'>^1l\D1/`7(3Ta<@VW]<)bZgdRR?2"jdEKEm<2)tAq5JQ]"O*W,="oJGL8lL?r.t6>?pbEu'Y/56$Wkn\U3eIVA=;Z^GOeu;FO`^gO_TN^lRu6#- %:)+rBd=kA$Yr-/ZpqT)(#W>9($5@J/8@_.:i2Oh9NGqSDLmQ9+!mTDI@O56\g][E'>/U"?I2f]*3J+D^a1]ELGl?pLqrAd"s9qm0:8:I_0[iPF"(\'^"d6Rd/9ftWImm;99B&YHkLb\_%U%))VPQ'MfI[R'p)Ji=;!'_<#<IU2lPoJA?CP#n-Vl$MgU8b;8!t>j>U1(q;EV9V2Tu"ai,4r>nUhbCPBcPT,Kg4T3.]%WA"@L7B!DuuR %:*=p7O>h1t8Fg?-PZE3)kh)[[2Sg`o,ia<cK;YSoKSc=^&^+R^LA4%M#Lb3j=k7Lin@!A(^`S1-"r(R"oU?+\*4D6?3RQj5W[[Ae'??a%Cs1bqqe0(@?H&A;ej*>C4M(+<pYna!1E"%C3n-4P5:FIm#<nI*Xgr=XJQTnA^C(O.'O+Jc'aMaJf$L'Hpgo/Hq71D!BmR?!>egSoJ^@;RGcVJXM6Odud6J.L=7cEW9!uA'&?PY:?Fu;38 %:qQoiW?s=d/kimEm<LZ<sXi2\O)RX/o-E]s?80Y/,nt?U@_WhFdU'OS06iW7/fN20k>'5K/X2[Q5R3p>@R,<-\=:72Cbh\0FNI7iHm'`GaeF.18ZtVPXGOfOS+_3V53R?;;9`#]1[`b-5$R_G;F3Cptg.f2Pf.1Fd0Kf5?8cbMpX::I$:G\u'M,SPNTLDV2BT&S+Be\qV34NCn8Mk9[;nc6R,:UY,<m5`b>V3fOn,8apN4SqW\\e>X %:YHIIt`YNgEf<0TRa1luH'+;RO=sGDtj,;[CP)(j;j#tOtVF`Tjb2?QThI=OI)68#&O6OTDS:K@-K0.R?'/;MBpbl8- %:s8Tk71l4O.KF*?G]S40f.SZZ:GIR(%_hQ=MFgpimD2-1C_-;052FH_4I_Q?TATQssNLs#/Ptr-\IQ!1PL%V+)T;M-6BTTGL^,f\:)e9Kt)D=N^kWYi\!i-pPH>+*!6MbH?H(!KRA9H$]$r"G,7<jN''r\tF7FHJ#eL@fLSTJ2p01FTFeU17cKRUbLBq"B-AE%i@Kd;P]R6`Z",HDi&B+hchO@33%ighM+f^XWO4aiT/KSGiHN]"Ur %:5X[TdB&ZG#XOX45?[)O5*1,BOYP@JtIUCZuD[=%@UDpnd=*<>:"=&!Q)4WWd2gT-*7a*AMFX+!Eg:Iq!/HUgigGHPU`A$gVO?sRk5a2ZhiT>(m2kD-q`#E!qnk?\f1\(,EKePIUEqX=`F\k<mEr0.V-%)5-A]'FpFcc4oR-pN'#]j"dkFKZ(N-XSE)=qH``hYOpN%K*Y9Kbgl$p"T%LaqIoi[7PVdR6aKj1`2'jh[Zg!FHnt7Ym,? %:CU!$R^mB8W4IAOmF`]^p,4,6K`"$cp^g2'5VXV%+O,.\m%Gp7:DUB=XJTbc35eon[%]DhKhI^45e3\e)rGM.C=1a=_0u2c(7"]9aGd#V7,l0o-OkdpR2A:uc$L(aNk9>2da]HDNaMQtun:jm,B*P1]L^?Wp9LuhT[JOE"iXMg8f+`M9bIep'#inEWLdD"P^3Y8aT56ENO7HQ,VVI_Y;f7mqIGeL36J9k/#Fc@EfL%@C:;\T,^C.U` %:9:5KF<sXqiFSn1<goI,"I/,i'\nXT8A^5GtjZE=pOn;!iJ,!frL2eQk0*):4AX-g7H!TYdX"o02f=RHPJg,=H-)s).+KouF9ND1^oe6MQBiW@'GWcH<<F?R7&Abn,'epdaWhP%tE%Ss'RYh$T)C$_u.`H86Y0&4c^p7$Q\XfSlQY!A#n"jI6`V4["AE!\Y+^*g<^M<:>\^uZ7>?C=0&ZM14'&AC.`7qYJ@`SB6=*S,6!]eIVL^'%V %:5JE3ERbNTm2R`aR\Tp0%S#8$NGR&;2-X'Q%L=2_@;)^4$;b4JqMUK#\Dlq"DoDi2)JW:BBX2mNeXf,8E8ps+8J=l*RH@Z'Pef#GC&1(_u6+@t)JCNM3X)#8)(o]hVM,t/*7M6T=ej^YlZHs.+Z4sn)lj^h$W.kRZU1#0MCF'ng7P-q;$O`[p>Us7Q>@)&hBsBGINIUZV8<IT'e4YQFS"K7@QKoG!3,n"r`OhdS3/&=\Vm%qHG\B(T %:(%3"Mgrc!a^[qC'IOQL"*T1shSsb?$jk0(V8n:GRRbpSna`1\qZZ(Wo%27QGPpc\AVAX>'5gFrqZI`]j#nT6eXb\)5-Q3?V>*6o3g%..LA0_X;5JmSXPpTAXit:YRTRJ^2B$X=9.^CaTl8t#DA%\\D`u6<'\r!31'U!,DZ7r13dFZ<\Bs<_9L@[.*>h<pYFgBtR@Mqp<]AXIrr_+1>qPJ\0lUa82cL7+Qlc>XV`jbWnX1uQjdu>3] %:h=L^@+6GNoh7%+bV+hWtOS(@l+>Z`dH]=o,=,:gdM0Ec?f^m`-j9;\mNF;eQ*A25V7^.YlLPng[,M9[:_l;5OaE]>=eHBl,mP&gr=]B"%7(4BWYViQ"m<GO;#[;S!*Ar'Z\$6@5k*f`<WBc._3ef2q89#51#dM078.@1r2k1?3ri\jF'?S7ag`mSDpP)`A+^0\*6h.i<CFHpK67hmB`UX='o<erW]N1P)5^NK5D-g=f#og:?mZ*l. %:ipM^>L!HsN-(.lHp`(5MSVb;=kLc/$or.?b)I0%QiXiPL#VQB2<8,,.TsLcV.hgcm#Y:\Z&?WAa$OD6\E*]1NS^J(cbg6LO=Y(m3@ZadClHt[kHh4n[r2(RJ>O/r3rC&sEFS,AK*MPMGijp/)Um!l.$*-GgfK4bUG:D&c&f`rc)9C^^fIL5@4`h?a6ha-8mX$2E"dgK]M'@W!8^5nGph(n"T&*!@fhb)S?A+`l'Kqj#Xg/Y8&7n?r %:a:knr?A9=;.7c8"#>G#OfjM:'jk.a,?]"2tLU-)IkKnPZd,XW;k4m(qT$,FGb;l!RZ51dJm5u3WY+U#7FPtg[ABG!NkUd3(qk/;Q<"m*84:'>WRjJZ+D8:$s3T!FZ;7U@`6bJNdkO3'8YqU:H9U!Og?`lebpf$K;m-OLR,heb#_iEi*,e#&SBBR%^Q^K2J!JG<Y48YlqN@Wi<o\fXhLV%Or;_[qD@,Z97V+J$8J'Pl)DiZ\o]p9nO %:WNSX'E9P@ZXP:$<Elu85XDdurZm`o)fuSX,XmN2?^)(3:1ecPUbQjm+?*$]bSSI1"ca5GY.>W,'9r2#qT4Zmf][[hN'dCMd:a\XCMoN$Y`QuWQ[DoJC=3enW"3.Tp^!DcG;b&_^V;p#ug^2G!RRH%#1eg?!UD+C9R7O(NBR@0^;`G-q:6])U8C^=%XeUUt$2:3'_Gd>qa0](;;J8Srh2,A&<,tL>0DlUBbLJ=;?`?HNeReVMd$9dD %:'dra@b#VlKC@<ZjhUPS4=ln"3e9646cu:"aq0A?0'9")/L/V_q1:qSL?e4(:K;IBBR$l56?&Gtf/Ag,Lb\3TR#.i&*G$3BYjj,PRC*rmg;q^81IE2QhE31td9R$_''4*P8X_a$$3aLWSafOH31AraZCYHmphR+&cWu]9G:b[JTicf&Q]`N$t[PJV\BQb>Ic+30f`^Uh^_#lVNYIMD\5B%jp6I7D$[0UEt9T6B1!I$9%9-fu`&iF5@ %:jeS9)q:&q+6<S"8btVrV7+mYiF!_W0P>B3O0s8qj2J'`H\lP>]_mP5r&.VM[*!V73q6jk@qE,@2!o(#K=.b;97r?qLe0cMVM`Y.#d[a!t(hff2=tNOhZ6b]\McL:BZ_^<,A>VrJ_Q>Fp>5h9?bS2Y@3CSc1>EoP)b?m-N@>T,GCT_H0Fe*?*T3IU`cbU7[.n`QVYXD[!Pnh+H%<*%5XCSXJE!'=hA`$aa-/8*_b9g8\-%j*s&5>eq %:Xu_JUKq\,Ee05lLZd&j@?iU3<UGLP!hdS?_CI&`u1KOe0bhcSO$UJJhKLisgL5@-lC1J3dDB+QOcrpo/1ldRp\[Cd2HQ4!B>H9jXeQC%s,Zuo/Lhg$Jdr_]I,G$?H*>)a<>(p(DAMKS;(ei-,1o@$KRA:t&RtGEh>Wr@Y-]Ee9E3c1b@A<q&MJAb(eoGKio,I\llCYQ#RH*,=nZ\-7ljt6T4`'1"i+/mp,5-:p7I5*e2C%ptd+jh[ %:ENm$%e?/UW/a?3c7F;?U;>7:1AYhuJJ(S0UZD4SmLB\WQ3r&:HhIV5*V(fT9'(lE,Bf6^(Q=!9>Oj5,D_8.!Nptp3)Lk11nnk4BIMa;St&L'tIK*,!:4;o2M1U1k[64sH!K,PdTJ=#g$7sNR]Bj*D.p^10,CB@5$C][Yq5jteiJ^W9]*4XS9"Pg!FI[Q>7:E*)@,HR`5_/ak>bDZ.fNBa0ZDhG3BZY9bB=Ejt:&:J8+r$P4&DiglZ %:%8W>soi%:tr5to,6Wu+qGlE0k'=O(+1l7[VO6$U0$YCQJmLQ>J#5JudTBb9;2F0^0L6e7)CB`W7,g&O@ck2*QT_)+;4IU@+94F,LiLt-6?sQoaG2+)%TCO!e=fJoIK\JPg6^5i7=s2"2%B#JT%EF?Pka`I]Y_]b+ol-ISiI"&lH*[P-)k,C\&s$LMBFFNDNabupSTYrc3".H*GQdu6d"%E*_WhlnN`q,51_[?p-kZIAUELi2(nbL- %:/I]+^)A`7_<91moIh^#$B(=dm7E"JQ148THe(!;*S&P]tRTQ\]R#'He;m#.bCEC'2]82N/iZX,4[i?/D`*E%oO7h['ra$l0EV%6anW19On66)S\-NP&^n!'sC-LVC&dh4+msE!"/Jof]q*3ke8duGDniu+S((?sRp&6Imf?aDZ(m8MHs0CWudG(P,TVtmE?#<]#hM-kM+f]23@J@m1p_VShm"%7!O6L*a'N%4;%Q;T*i=-!_];SrJ %:UU:p+%rI9>;MK\O;oN(93uir9S!s-/Ypd37>*L'0dIKdSDR:i<d8m9DRn'WudnKZd;/&4fI5@HkkpN`N5r8LWkYG[,aC]hEDa.+$Dc&%(0[F]T6Z#F7^.Q)\h`g3n*q'^,%[Q1fe,"sH\COMJ:httt&l5HB`5EXd&+`bJ>]ntBn)Vc,7?7#cMB#dGgPd,_hP'NUKXo4(E?k80O>Cpg7i.cdF_<]D]&0NOm`gAXn;2B^i*1^f,[Xk2 %:FG3\03aU:KFhEd*:0DPA1XK^BQug-4.(pLp#t[Op2Fo\bVT<Kn^Ugur1O(caiE';SP[D\%rDfC,*$*Ro00U"%8*_)n(:C6N]#-H5]R,EJEiOgL6Jq;C^O/bME>.3uQCA]5W2$?)<VW-/1l94BY2CmTI%MGDH]>@G]S35+7MLm%*?n4c7VYA:i"luGoXC@"/s'.p7!Atp^DAG-]mu8"&9g[td8X'nrp5RJ6dn`qLH^>I?)sh3T/DYY %:)iP?Y9/.$>W0F/pq3?m#V-]LQeIAo,.K+3;S=!1uq$/Qo.n#r/.V$Blf#s]Ub,n-1K:s\fCIrs4<!_a3!(f!JJ$qYo#Rbc^Q)4b``2r$*[p56(f,!ldDr5*&eQ:>2n\qn;aH;l-V"(7>cl>3-^6%[SYc^ah@91TIn#VnIdbB`6\\XtpWU8kE[.hkBA=c^#A"mfJS7]<Z9f2VaVce=O'-1C(?1f+m^o@8`9]nh8/5/,-%,fo8i44Zg %:So)-rVT#:9HO+O+fNE<LiO"C!TN3FFWrnkB@=+K#>u$K(LlW")pOVNA(_0sd>Q@<hO76e#A/.EC_La\"F=ltSdCdg#P/8/@<3)\DIbmS;#iUbHrA5Lo!VS6Alu0c^At'V07$d-W:2_L!NYQN_4"K6foJQf3DKIQP8\2ZD?k72SHrY>8`ZE$gO=1d7#F[#7hutU=43I^Y<KtHDT>`Kk;-*BV\lD2K;Q![3J30_;`r%EiT;[--0Lc1l %:(!Sl);C0`/8qo@lJFBH7g5"91(F(HJa3ua\'%I)ZBWr-"K#]%9LB\("0U/NAq55L6,(oth,TbpjQE[2U5pecL'[g'3!)X,n-6D)K/MN0hdRnU?SN$RfXa"5^3ip&LH!lOEe["B?nP?,,hBFjX.1GG\Q3_9Fa&OJn".X1a<qo\`XRN:=gC1j.ah\VG8bYdnmX<+PLa69d-.18pJ=_qn!YDJ^gOpC#&gc+hD88eL6r9CgVg6[2K3`&_ %:F94b0#+9E^$9uND2l42^B10)Lr",t;13&kYO;_ABds(nLeq)`VfLWI!,h`g;Not>dhi@#BG#+Eu"`F4"SFr=r,UWU%$BP]o,-p^.U!P=;`'QB'E/,O;i?]S[(9@'urn4K9.)M$*3bNMB_'n]^L(ii__m/43H=t3<Q/6+8f45-(JbChK$J`bbgEW*UmH/:P2E=OQfbbZM$.5mXr.BqXEZAmei9B)jPA#?S(bT.lck.$Gi)[jq?r^OV %:X!6VE-D5o#2"cc6-).cYXut!S)ubM(]O<!*8LR<@^<prg##7]tMMZ8:--?Mup6J9L_Seu>+l,UuT69L3`!A@87:)^EPuaW<.dTTFS,2sG$i%Y2Chc.8Q:Q4u%e<GuB;gM+V\%9n6pQuF1QVLI23I&VE/WDn%F9V#\>l/>mUUCF6J-TsKs3/gD2,:NlsO^b6&W5hE0\,\peT[jL0#6V4Hl0[dJ^Yin1M,.fhmT^?UGM$6-i2nif^U8 %:-N;C,P4(r^T.f+a#Y@GZDk_8&(YVPk\$+X'(EZC\GNR]rkGf]]k:SW:G2bK)[I%>\bbZQNHK*5o1l:Y7\]iVW3+BpXL.&;3PHU/5n$gj#i[kU-g7-F@P3DJr,'JDNX60M'ael>^\GSbtW*9N@_&`N7X@:4AKKCEkTIV;8C&GNcckJ*dLskg*XY]+3Jrkj$-3gISO5\DbRO4&kRJ;].V?WCFcS1i#@^q7^9Pl=91c>Kg=<(l2oTJ/, %:652kW^=NEhO:Al@VG78J@8+/Y,[+m!TcqohODZ'W_>sYj=s-\F?#80`?"+t_kg7\2f*>Hs5ADS3(p9-W48_Zsn":<LiFOjU$mP!sPJHWR.8:9.Nqn@1WO?$d\[mU!/9rj(9qp+aJ$Cif'6ZK`[1^*Xi"'SljsS:;@Au3F$Lloo2r[S'1Ac:DRiG^W1gS%2]Bg@^G?HGNZ$04Wj+?-"%-&oL?.K\#Q`6S4g%G6?AEo"\m*+U>1bGU" %:1)8m,J1BM1&)tq$)@hnn-6CSL;QZS6`N\YF+ijeh_it'&"1jN,Jm*q+qAQXFYNmO,LTa4MXVkd)mtYMtPc4NHF@U\H6jG+5A9!+LYiDE,#M>!RZR#D889#EIXcn*D`j<e)/'&`&5qF@$WbQMLCc8+l=.+ZAaa$hH<a9^'Tl,;urg\k8-Ua9;RAu$6b\5W[Lt4dGEOhs.)BAHl1"Jq".:WSSAc47DQU?sg=D.5/@I'[kQgl@Jl)]Cg %:3[!a_j.$FaiOYu%,)=;^XP87ilpjo^>&Iq<Qh$4rf'DI$Q=Y%_>%_&1Zl>@&Jqg_/#iUhVRVp$a229?rd8_)61Y@XIgG@;(g7j#;IfJjM4)PMmcd$b6,Y*V,%un2=LR@;d%Uk'Ip<F!W/\TC?d9@VPK_iMZ>L5Xl\rH7:c8ujVZeA\sZ[.oRPIrNS\c1^0SD9IabY.%h'F,7\%;T#e[8jekEp.R=?H(\f`NtqkL;>gi'Q^iZjWP(% %:A<SBJ(3=S.fs!dPB04([VOBC<17PR57a/;D[:!mWWeZGa-p<hf"(O2%B8*C%[5Z;1Wr35;gS"lW/@nlOo,H@,hFe!sHGC<r'-^W9P\eb3-R<FeNO*Q,j;"f:mU]%K'bmceq!+fBI9mU^GqSDn-TTkWXO,SU=eW$q[i,$ggNti4:0V>h,Si3.\L[hDU('5D2nm2(1JX#JnC'30UM80.0X1h(O#2[t*+-r7HF9%Z*iru6J:m!c`GN`& %:Au"7_/c610)NJ!S,6I6;!3"IVA.=5S#t@:8!tBtF3sNKtL96M6=i3c5RgOpF5r;.$b(eNe2(/hGlCa!qf]Z&p7=8+^5SQiBJ.!U'%,1h]Xn%5hZUcZF<_3.X7Gc`HbMd;,;'-c#;&NV3mh2V6Eg39>Z=m?q]?I$a@fnrB<r@uD$VfP8%KH!uJ)9\Ho^SOHhO/oY.aqC1j"m6BFYg+_.'jmgU<HXc;,X]&S_+]9T-&IR>\l$_;qK,t %:NuPteAZ!RTOm'Rem,qrSD?b'11Y?H[I\)*r--Ch+JV,3NVddi#%":H3()A&(?r"5b5Ci47VKT7GU@_3:#lbDE'CO4IXb<0&q=Z0D`JTieGY/&kOar^SPb^Lmi6$*Sq,[:*"C,FUY.4UL%bn4IN&uur#*;90&Q7S3BFggPIf&s@Kf'M51&LdLI>pY3Nr=>9@aRNLY%SOLThKu-RLmI4%L<UbJboYe_R%qF>dWS'Snt!^D(<i:p2oLa %:WVL_,o'ftYChgS7:$&9j4em0:^+SFrlqRGt=''3/dFS*HM[@bDS-c(DB\78*Y-j\-g45Vh$TtV]Hs,i*XbLKn$tqN<3RjLXdb+)T1COqpQ;C,[+uA*GjUE9Sk_a_3r(#p\eAVR)N/jpK9/oe_bg<-q>csL)9NTi'PQgm2:Zfj!*XR4.CoWGI9eA6cC%,;R)(m"bb9K[=11b@1`h46-dS(X!VWeT2U=Kr^Mib*@dPc6MnRD`0l2@(B %:luQ9h/"=Zt`[AiId)MeXAD2'?r<U,&.kepe$ULfS2j9^#Kup\8/&/nXn0k2R0lDcpnRsSfOY3@jQQ9t138$h=>=SIkh+6A7QRX69iF&I!d(S(_BLp#glk.uarQ`:b%MV!ui,BWW$.8I44>cmrZ#a^`4s[+gJ</\W9[S#7LkTPmM&ig\+a?c=#'1`H2jJ,pN]P&_2kDY14K6.a5$fQomgJ'+5D*0k].?'t%k8,B[T#B)#C>\;/L:=' %:]<H[Ul,#>gs)2;:Amu-kHj4>SYgQKd;lN,VPRU3k;=in%^>a=kN8"XFCQu^t@.sB*lEIe8ajq&B=iX.HF\(s(AK;mX,=C]FO/DUQ(P6\OI`-'L6Fb*58@ng:U7jIrXMB#g`NMc<_d\l;/=[Bu6^J2nMu2ad#`bQ[Br\Qh.YA6d`ap;1$WGnV/3qruF:HL5q*>AH"[k&M^<dFP$g<WqK_5c/W4N=d$`j<LHkAJJr?,8Hj#62]FsXVK %:2Ge1N9l9lc_7GK-/%$7J>5biS?GH240q_JWPnkN%U3OKQa#OQ@Pu<@;)GZHZ%;3([3,9KBB<<p/bVgFLLISPPmdNtK5KN)\KmDDg^T$fA*Pe%"p9iAn0s<`F3fS]AMG-%JVX`4A"um"oD3Fa+VSTTRTFH`c0Q"#s:DfHV/-bD%YXfV#L'DdCXXRqq-*e5V0X6=+UBY5uA,@%bk0$j`e,g(S\X:0:^kL_W-YjW=::5%&KJA3Jp\$h1 %:WhlK,('g/HkTk!%@23AEs0MG?:f2#ch>q[11_BqZRFn[:?@0S=^"5#_XB;_Xp4g7i@mgJ^fW`cifR%P3@P<8FpYPRLHf<_+B/0rchuCF2\(8Ur?<G)uqs9jLgSa0Z$!bIgI(Y`]E)o4Dl*nW7RDssp@l9cVG)!>l$tj>g_h#,^%0bOGj5_hr<V1pL#8t_!?fEB_,^-KK[ok$.FOUf20/1t13ZYaiZoF$Z5Ih<33/o`]a&b7KS74I4 %:?5W1n2\Y'$+[sS'&9)+m4M@Q5(gtZ_OebU(W2fK$'['^bUCA_pE4=(Yaf#W&P6VMo1;o:[%&X^`,EHS!cpk:q?ndj>.RG).1'Uj3CX2M;lmMh$f,(WVX*h"p$?dni_Jio1&WZM;iiGpc_c^V0S..BodCF0@_qAX736k@9ddrp1r0r5cn<!3TrqV-cdW74b^G]LN+ME<SQdBRl^9X^4!`\C,":s(Pi'%L\$2Jl'Ng`Wk\/NlFCZH2; %:F-qqOK:BK/cdgDMpu#LuTRofJT5oVKld"]5r.Fc.df!AcrmAZudQJ+e\e%m9",cUZl;j5=JaWhUGb,eEIC_Yg$WD9h!^NYF<n/d(56)RL>oO]th^^lo\mDErJ%onH:"E:QT7.t3645n)"eHjPlXl0l%09df!"j."$4qXAGW^o!1E\ro!Vs88q7?RN`8:n,*Q/+_hr)9d4N_Vaoc`Sb3%mZ.n1"ZO>LY;S@t5slZp9/`ArA?rA2)j) %:J0Vb]0/Q15q>uF(<r:]bZX;C644u9gBIE1%@pA-UYE.lp+5#;#^ZrL(N\tnU2%,Wpga8t8i\,@cj]F4b.kj1K1_W'>9U84.'s9fC)%4Y3*j?3MYMHujJd%`aL&2>BBC:t-pSl:_W%1ts'$p+T23,k,^fLTE=1`X1naRRfL6W/T'Dr^R#k;_\'i2kK1:B;^bFe(o7G\.h0f[k!Wk8LQ,bN<8&`_RRMmLH4dYbb65b'M]i(p:#[':e9 %:g^$ZQ+V)Fh-5GQ(+i%WCZP/kWYMh`TVlAYAZ5V"0S)H?;mj5m)@:qPp=D=C/J':EPJ!6IZNo7e_(842Hb%,;_TOq-?(BKfq"`U[W<9VL.lddDjiEK],pcp/@>dXQ35U&o#$.Z#iKFQg*:2Tb;TCaKK)i0:-$`4/^Y`#"_V@OO%,OdPq!dnZYn,#:6":_<tNr-iB=h.nNO-c6m*=1D7nFNB,;HUtg]KG"..gOMT3\4=t3+uqFO"$n? %:LWDNL(>5,kH>F7p*Y/X;dSWcY1JmcfA(`5gY0'6kR4?1bNT)0j"rI;J"s7`_JuUV">ks(>O/9@Z)Z2qZIF8ueKl@rI9;`pU[&Gi.'p!3.T,n/C;$#SL4pTe4b6)eV6Y^G'U7gW46S4>*BM;^G:W(FT1dp4+Hq-PoIR,ebMZ>+h%c1"b!@'qhLmX-Tj2^Y<0n#j:'0(QH7HY'M"4&Mn@3(-nnoSXf5Y[]U*Cm3^EQl]hNg"VPM,LJ4 %:8n&gnZYY*0:\fH6NqK?d#<2)q+,2+jno\=aUO5&+59F-ZXF,9:6%77]Bpq^FB^LH1iU+Ou<"QG1Z-XQrWNCS"O;Q2]nmPo7nUN89p+0$ol0]!(gkS0P><!%1s-Gj\)/cnLLG!<m%&ruRDmPj2Hbf3rn1M(r(3"j*p\aNgRqp*+XlV/'L?QnO.Ydm:"8MCtX/<+]P7URe[19-RBkeZdXO_C2c8st+3d)mU%Ua*5PkcR\-UVf=eslNc %:(^"=[1,?9F`j-9D<g?`Q4eDGJMS'S%H8(]dW)cUBo0KUZ*-49#%gk??`rL`XYc*K]69r?ui!QfJdAi/>qu]^c/cU2GRhIUI^,9NErc:b\bL-q>m(Q,/bI=DpbPo0[nh'Q`Pl2b5+)!`$2,s,+I@S@#_bX"eIE#<RLI)>r/<n!pSBSI@(+'OmlgOr@(_nroD\jM=A`1(RDuS[DMrYl93]Ojj&*@:?cabEr%/+a#a\B0ajHs8/VEDL- %:Zkq0CIa20bkG$4MP*ad3:4U1q\@V*0;I#^1rMo`B(n9m"ZS_h?fs/IhrpJthEdQaFIiVk+d\X==^HDfO1Hb->V(@,Tq\-N06R2SXnTpX_WYsjKnlHJX-:_%[K!s_iZm@NE`iap<bqd2XfRh!bGrCb4"kjU-X!SQ7L6?9i>Qm9[N-NX*a*b]'1<RcAWq*4!RH12!a7qN?K&rh:nuJ]bPaB29/'XTse=tr3'-Y@1%Sj&b:6+C78t5VT %:S>"*(RX/cs5:_ea*3s'$5AuaT4F,dW5/bhXj-np!J0/EaPUABH`_Xf`=q4g2L7b^L+KG@9H@2XngmImQ`6T8^:m4c<_gCuR\@a_9%`t(>Ba7YeN77PNOfd\VH%#K;Yl)i^Ou(WV=`.^2ph>gV`$lH:ValrN'jNWJbfP[ITufc_";M&AFo2i#B2N!<?JhC4[`^"5WnhM)kRtgKciEE5)h@2hNe\BTY%C_>-3OT0Q:;lk5mnrb`Z#"g %:JI8ZMM%EZ=QTaKkY$R<]c[!_Vs7;]7VYOa$_Q%B#.dD/GiS@%5G^B+RA9e"<%$082h$r@l#Ouqq<j=#BL`%(8k72thYp(%A:B'3jAkb`p=Og"@mDQ1d>\Mg0hgUiHWo`+fni*%+abr2Jn9="IP8DiMbb%,LOc0=X7dCBd]E$-;Lds"Xs,?NGGK]b0:RH'Oe"ZgqK2Q8T's>/7:4ss2Dkt#XY$PdrX2,*^SVe991,Hs@J^[5LHl#?B %:M@4e<;&+EH$U6)@[le<](I"XT[ljKQ(Og0@Di?3>oQn7O=ALq:;e^\_Q+QT8T*,#<$lr3qs3N`S4I8JXEHr9`_)G&O;,t*BH@>qYD*tMh,PVS)DIQjN+;khQG\.k5]Lg'k-=XV?32(I<_@6^dBH<@-l,hf[OU\OU!`XqsJ?"QJiT]kC'9aZ@b'S0)ZCrqq7NjlbL<0KC%<5CYX^]3"KIKUY[`sKnUgcZ7ab9BBR?/KLPpV4?6\)X* %:i]dp0PU?A1YNdTW5a,&&A]RD?BfN63-2sO#h,"j[1-bg*gMgk=^-DE@-h:q+Wj_9n`kQh,-on#:pIf-sBaD,%ImrHJm4kZb>_oR7*6Bj]1&KBW\E]ZB,CF1DRoIncW@qEL"6Y_9VZJ78#D^jYA;gmrqj3WEJ^C40?3Ui-KSAH[*2HLE0]I).'+e0KE,#EO_f,qAc;6i,D)qHW?fc8pg4&98^HVLKZq5Yf0Cui-ENQ3G)tm/%mC]^Y %:Ou@F)a@A:&Pu_Lr`@pS!(0/b)g[WIt9@EB0X8*KiX(sJj7NIBH(R_W05SMWg1P_tB)4L/T=3m("k4RgP$O<J)[H@'2r4Fa%0XTo7V@]nh<cR_Ho$u3o1S7KkQ.0kfB0Pa11u;r`725CE)o=cDq<8&XLbKu<7+FP!-($],!2pH!pErXC?2&3eocP"8H:ZTjOkF>cfK`$%Yc'*=T[8i8cJ1[@H(5a9RlR!G-I&&ARlU&_Uq-/20BPo' %:oDe$@Tk[<hh#.&fL!l.7=87i=%l>/(7r+XXh^+l%iN])Gq00=3<JtjYVnXBnM"$oMiN!D;XcU#=OGm;W(KS0YBnI*d9?_=[^p5-AG4:L$d7gR`(678P='l+Y`:L!f^.uN/(3"j\,_V+$U2%4V-5N7XmAo7+%>:,D-"kj$TuC&'9AS1j+mi<$;,,X5;3b1T.X5_f=IclGc1nCU5;1=p9h(E*QF_IRK=_S>_n1Z?@HeM+h(o9*@(Q%" %:&Ws2kSp>b[n=TlPXJqr^9I2()^2'))9+NCZ$3rn,d=`'>D_0jj*@8FZ);\R$.`AA/.c+4te]n5SW0"3kTL/:a9o&iD1srq?Us:#2%YY,P#5CeS\9_sITdQh,cr2]n"%c/l)TI@tiS+j;m`YF3[V%+'[$6J.D.@A9i#Q.7W-]pshY!jQ\9'-WH1t;3*#-PiLHJ"*=VJgk6do>h=%0.u,pTmFHA=)!29prY_)@XJ0`,m+1WPeJ$tr.R %:6]VM$&E.(+WL@fHRh#ND7bh$aAj#,dDYjQYAOEnmOaGWmabD*BOF+gpJ0F49$;(LEiKnnZ<U9b#6,pDq=l=o^&7?;n6M-*]_uT,;?Hp-RqoSLYQ=,^@[+8beeStjBQ%iVmKilfX:j:mK)Y/4*Ao(2PqLC?&SRWU57THla(Z@[E*'_fG4ua"O/5@3fbFG]rXEf4s$^gHdAb:\SX_s*'iGX@XYkGQs@,c6rkuh4W?Vc]dQNre12EVU! %:aA$*Z?L;:n@gJQ3k%,.m=TtiNW/TYM,*[fq7$!_W6AP[-5SX^(huYCHloMut-M6)*68)4kTpK:V#OP2UO+A,13!OP[YA,74ELRM>StiWr]gZ;L,r91BqnBe+MZI]Fq?"!1Zi"mQ-8@cg<+uM?("#R9;:XW=+BtBRC;Wf[5I&aKDIJ'Dbk0-__DN*hE*7[UEJT'-3->:-$tBL[:^a9#iO"@Hp)F,,[:4>.:'beU3'j/e%l^IIig+h( %:fRj`8]g:0V<;jW>&ZR6'WbRo8f7@2IMC'"YW%-g6\!Z.>Ra;fp>%LYJLf^-(bTBG4WcE`q`c-'lr[M)_<9_48W\egMA:TUg`mJkUKMCGd_A3nb+lcu-`&q!b_HsEC-%,jF*"K\h!>oQL1!BbDAs>KsNQX##+SRYp4NG<Q19/'+i(0^'G=^:i2&W-FK2#O>ltAidCQ_Uuf5$ju]h)X<=kqntFWIco/d'*t%mGhiGYC?$p.dQT<:On$ %:T=Z:m]:7KIk#G:/El1SZo6X63EV:brql!Uk7[="GGM)oB3Kk\f7UOD+.Lk@kNGK]e+DD7K#g<>UpI!&q]K;PhD)e&'2KKMj%M'<+H9hJg*Hr_lZ5Mi>8>3AAfIXoF:"E:;GmffL@OSTh+g;^`/;-8R+V5HW.,f7]+fZl?.MUm2$nB3CTE7O3LjFWr^YiL6jN0YFlLA7rGagrVplE6.f>(lOlbSRGL)u:^I@T^srEF/J4\q,,[m"a! %:<OZ+>CiBS[afeDA)g\<k-DRT\i@_3MVGbMJ<MgZ$87b.Z<aQ4\_o0B'*t'G>p4X2)%a^?<(7^Bb-cD]Z*:(^TJAo#8(/`+N.ULuK(;(M3'n`qF67r!G-B:O3e_$01HC>-pb@TWhK&`X^E!^!=:dS,]>Od]T^\L_^(&5dL\,Rl,'#1]Rh`mtl]ROaPpF_0Yl.t6\iPjLg*khamh\jKf6W32-;R)XD&68,5km/Q2EO:U()-,-K8[?:S %:<@85CqNHl<).nmL13%uP&2;634K-W"9kITP5f>g)LBMVA"tI!YIn$a6%Gja?T,t>3OXA1"@sR'JTJ$6T1iY&X4@*3a(64B.32.N<`!*UV;)K"d'-JoPG:MPS*?hHZ_UZms298/(hOjof<?4#sY7p11!Hj.tXYQnK2,]u%//bJ%E<oO_bg9mh35Q`..e^,DJ:BghrX]WMIi(s*R\M%3N)HfP!A%gb-fkE-AJRO2el8^IFXJP'1HrO5 %:$cc;;.DX^c-o6mI4MVbB*]"t:YUDKMQoV.M7E%Ju'>dY='E%?ejaPJQQMWi>8++^Y?b-4(rk\OG/UYDT.P]?L,;'E`O`Rd4NB%6TT'HS'd*MZslJhdhajT*KE_W`1KAY.&C%.V"hBgmA#'i@%-%+@JhE`U.p@sOHD#_T>;Tt*4CmQt[>$'f!gKkMM'/mGJ4ifOuLN&PSX3.l;g98VeC24&EE^F#/E>@4_TcGrn8SHL5VIs*)d9N8a %:I+m#Cc_/^\B6LWf6jkhi[^d_JJi=RIdipSaV#su^TjkM:PU<KKkAS/Qi%mcPD;)6#picE<W,?#ZXHZ;"I><AlW:=[F;NQhQ-Zi"b\*<P3L8<pj(k"k(/Wu)/-bW3\*4;OF?b\/:Z<4TS6G`AH->j<X4Wmd^3<<KThgm6)C`%90]iHR1WZu:`"'R4B;S)b1^K<\A5K@-4Y3S8G`W/k90ci7$C'Xi@<kJ(Pi^'YiO8756ks;DQGhE"< %:dsNV:HP#f7!RnJfA3(s%l'>#aCRUFN@O9LR7OG<_,;P>5OU:DQ7VO)pG/s(M5\^00?e-06]5N;,n(rkH[l%cb_Eb;ZfX8JO4\\bsai[qN7A"J@hO);oDm5P@@TW8+W9fT"Ps':PEmNk7=l[Ql2W:Hf._h+L8>TblS2j`[c-`Jim/!:7R5J#_:hU@i;.YD-Vk>>?\u$cD)Ujl*9$;-r[,`K9:>!qqSK5B4U7rb04Ro]KpiI,I\SL[3 %:foSpsN2l&.^@TZ4[?I1b?oKDhI8=$pi?&JWN2l3/\%nS)8*R2+R=AW?>Ik#_HLIfUe(;h9@(h5<#:^G0rILPN(!.\+1R9DJ)9Zl./?^((^Ct*)P;!2H5"qb[9-S3N!5*'c":LG@]Ruls,lSKZ8D[[d1`ppQJ\2k63CVEU,b#0;=k(]M$+FUWYo<ar!,0tnS.u]D6\*8qb7@A4\*5E1`f(Y:102JVZ,4H3.6GO_`-of"!?XM&EC86u %:PdHeEi^5i!-*)t>l-,M7r5,sm2RLEunl'1N6rd4-1VV0TMmOX77Gbf#>A9Wq@=E=eW"cVSj=;8";ETqQ.;#EQKH2Y97*FiUZon6G1;=rOJb5al00asQ&BQD3fg#4TiYSuF6quP?B_n;03loY%eHT"a"/k[1eet;SZ+'NhNBTsqRT]Ei.*+l`g/9D+do%NPBdmnqV5t[hjbT3Y8SE\KD7N6oTsVlsac7YqH[/'>B0L!9<d=l(JVZBC %:%1S%$-?DtAieO#oU<7uJ=MBLD=*`6k&AE55B6)qpL4&1PmO;h#AWV"=>Q.<+=t3Wgq9+eaMF:+-*A*:2dtDiH5)=jYKn'i0QQUsU"P%s?$3V*<H%UtfTEBbbmnMDaZ$CM,M`S@['*(7gdoQa(6XRf];+GOKa)nnkUT^!'lr:Bu;r,Ggo(&f[/\LANDrB7I\5oN2XmZJl,hOi>)6:oI7N<NM[\Gt-!rY=0AsH5)rhg.'C^;,?4^R!b %:4L9T&'FDG"o*'rs_o[^iO=o282+#W-?'\J#p%ZVsc<+*g(Ku[QMF0RPeF3;dIU7c3ns&Ldr*lqA4P!c%?guGbX_%u0*shrO_X1CBOo5U6=8.GRpt6fZjR1u(r9WMM1`9;!-a+YXL><i@n6p<&(gmkFd6\L:\,ZRuH'*fDd3NZ@^M`ET\QQV_r7X%`EmleUp^ImF5a,&_dqg,@\YZ4ZCA^8Eh.9Bm4lG`ZSuCqY\0-:tA!Gd*N]MVr %:1nTibZ!Zo+],sgrWhRIT%-$JkS)Y+ZFG)(O\rMcC\gb_Mlg#-KBC,tF`HVJWYMp3Zbt="p)Va@9WKJDO$#1S)Dh7H^KHLT]bZ$me5C^NYmiMNl$'udS`cE!Tm(Y@JgY3S+R2$/.cAh7\XJrY>/g;[]ED9O)>Ia$u$G(>OT?BaJPFpIe(]QKu2NRIk(DuBCc7rr-b+_!V>/_)RN4r\RR\.jEb<7ca640hMWk.>3,ul_=I!'u?%\Huh %:k*Vg?!RV]mR$mNqSPpCr7)fh6eU06Gp6]3rbX$,ej9WLY7$=Z-`eC<0qA6GGVmqT]L1h&sm:S$5:VY+*\'?pdO3OKLA5%_2KRLkaamCZ0_?)mCkc=UD8,TWBdrOXEg%aUV95/DR@q]7+L5%.96.UCH0q>R+"rRK/<c"2K5CAktMHUl+mkT6`af&B'r$A=!N.ESApQsf]2e`Gkp9ofA'hm@&:ql4GWKm194NX4#=]F+_[jlkgJl$Su %:U8kS8:`($><`H2:G_KKdG+Z-%-B?ut3*9??GlbZtN=2bP,mFDGS.p$)"2F*u8khe*oTMZ;e]tXe,H@VP>!OPVNd\dJou>^CpZM=2(63>9%'`Xc*_Ik$+WC/$2nYrK04Ob05?^ZXW]TfB9"`(B-Pl0ghto<#)OLI9J$n8lC!*";r1/aM0u-U!I(0hf3&P$])%[q3.9L8"A&8$@Hb217YA[#aS@;u/X/*,.@6sn?pYJg?Wm1J?K_a_6 %:YH9,+FT&-Km];^T5s,ZP*8r-`#g*Z#>#<1W.LV&V5_XFtPE\qu$Win+A<D%`J&n7M10*&Y:ZRQoRu>"hbk:"W7=CN2D>3'dH%213J+2JM;;]dQ]),e.[IQRs;it;^f(kjn)-(IY7$C6\eQnX8)d?Xb!1-'[S"XA%TO\V#=pWMWLaU6H@V_ddrd^ZIb,Cc?0S39G&-JF0!Nn=H;$3OG`&2/LnoQ[)5b`IVD1G8UhY*DDlp#nY>Zq/o %:IlQ=BBuHOBHu+WIP#]N3nFYpp75gZ6lZ`>I*7u3H/W(IehgaN]$I$B^CG&;E;)P>ZN`6ol\TikDrPf^RLrOBA;s(,))?\&0N1mf,(jo5\OtF`l0%_$D<_9i6km&be^hgPZb[52c83]g<<GgB!Jgq4FI95&&oh3Ic@Bjg4"Z@t5c@s7F&X&!b>)t5S`YOAp>CNWq!cM&%lYq>.1DQ?`^WBU/3H2I_\7]C(B3[s;2HQ,c)bqDeV8brl %:%26d.6AspT?cD:A+NPC-dF6d:Db()Cb`rpE$YuZ^W%*rZRT)0bqh0)i44%GK=:R4)QgOl_j?V@q&I"PU5KZH%Xt=9L\<$ICh(KSE'$NgjO=GaJ?oEMY#<@#-FY%(g#e<e*\Ld+/F^RKf%OmnO.4cIB@L3;Wj:j/PZE_b;"UfX))e.d#*=HbPO]l<;Y_Z/.>eQI/$QkX@P>P?WL65FRHGLAME-2hT(F1.DnqIt^Gstu:UY_d^3Ppl, %:S0C7T8.]6$4QWimR-&5OR:*S%T,/GrVQAS<CHaY&Ec-i:a[.(-VI0V=RH29**m5[QfCNE<SMHk<re%\]e+@slGJnF$GE-U1N2h2YEMV$eDTPOJjOA`)XZant2$[J'O]IRk=4%HslS.:S>R^&(G(<5e19([7GX8??Lb'6p!.5qsM!,5O'8-UjU1Rf'K7Es6_Bk"d4=Mmo\gn`)oU25Oel+K>i="<g@pF7>l?*UV(*(tlNU$!C!h4R^ %:<V_*%AIF7XAIkI7$TZm3c=_^;&OGD"Y5Ak)6AR.a8]:am$'7#+R>iZej;;>tN\H0X['SGBp&4Z/9t.4m5^%1ic;#WUP16O32n$-olf<l%hXB0\b(aC?[[Ck\DDc"kU&@<rmKkVf(J@4)q!?6@/;oTZ#7b7+@QURXAp@+83BO5FSQj9,NQWd\mq$)sb;2]lF'7/Z*nr-H8S/`OhBMXGnWF'E\k'M7)-'Cr8SknXNup?i&fYh*o2.iO %:)O-31bfhdY;%\hCjIeV$9h+5a7G,h]%jb/B0GYT'8b,&gPg/VT%g/n7C`2!sXg(j+q(oI,f0-*!8IJaPYp75!K"YN]K@K+L$X6OQ88>0I.>k^3Xf+=X;C+D';.$a^C?d*lQ$C3T%5pd@6_CW#"l;jP)<:DUQU!#>6:SCeOF=)='^ZYD8%=OWEO2'4]g7?'+<h2L1#NE@1r!>9_V;eh!n\5'E@tL[2:Vc[D<-B&n(_@(r!85I[;Qbm %:)5Y0?>hCI(OQ9b]2%08oMC,*5i;E&>d]ib(_^keb0p'9/(3Ps6?OmluRFU+7i2au^JS^]@AZ8DIp2%\BZVhIhiAF<bJ^af83umgF3"-F\3!.Ng[)+9>$:qN*:=qi-W[r:&1\.W3Wj]XfVXM5K=_18MT$HWsabD.g&T$$B"][EllJU3!Ti1PG3]=$PW)TshN\,pfpd/6Y+RDfB-[CEG=?i5c<D?1-K74csUe0e!T?r&EL>GR1Z7Bs' %:?f+E39]&b*<q!*XU9?l+"7\pq^+2qJID[QSVqOr:Tmam/4u=g8k^+SCiqF_=oK'qr"&.15Qe%Mal[QPm5C%PI[8k.oer'7_>$9`i*s)WM@nPKfJkTP^o&*OVq4f08ao`FJj(#i(Pm?LKLYpi/$rms1NSsOfqcaQ_3/-8i5#<<pgm-drKQ\AsKgF-FBRUP;^ii5dXX;s6hTOBi_QT>3<?;Ck(U#t6,R9&/n1g,HURc3*Z<*bR.<sJ0 %:PDZ+ue0hK9f7:DAprM\%jFR>1iZmpBOU#'Eo..fY(gok:$GUU_$b9Kk@t&^HBXuU#(k-V&CD^G\Litr%&[&[HiW_7XSIA0eIJpn&SK03M4%g*I42ZD-p3rjI-Zl]1o1Y5SoSj-!'JY=?%CDD`TG6Ledgr>H]Ok6:R5),L]4CJ^F3,\A"#8:pd'+2eanjsacuhF%,ToVb^U'9A0sn8DYO+CMlEUoJ_Yn!?F+<CM[<>5f52j^ml7L7S %:dY`BEq$Y@Q8ZP#hk"g2ohA+6M?]6-OT$aN^&kiLWXaW$`h](!1>*YJE5BJ)?=p9s=m)qY4N*-0_mtXpW3[2H&-:7>^hd\4PAYPM*nYdMD,P+H?JS>\1^HAlY0QT,O`ER);Q_nEo`:*[d6(2!5QTnRW(R(Y/*60/0^oQ;l&&R0*`1q'&-?K1a\YEf6.1R$d\5G=5X,I'ShOhm,e3no?EUi4#qoR?DWr0D"1aS]1;4j&?#.(m^G2^mn %:E!\Y96I3h#Dd,]`ML&e_76QNcqM&9Qb8B^J/kGo$(F5.^r"p@\!NE;2-5Ku4_q)]"_97<LH,sSE/s7_q2R=:i*m9&L'F-f'NpZ":d,BaH$]$d[U>i!'B[q.:6jjC*\O<S^pFm!SdRX#"EK6%YZj(s/2Ugeh_XS[$r;bMe+^]A=[:+]0]Nf*n5rQCT1tc[;5rOPUSg;p@X+kRI=0ec,9gt#AI,ntl/)tUEO$RC/X4Mgr&'H(R^qVsN %:GWXI[\H(g6L?sh_MpD>*Dnqkc(N+5O%A.VAP>R"nfLSOqU;*U`UXWfgN"Xh)U"A3_LrO6tKuJ(@GiRGP+dD(tE:lWk"jnQ@RajnaOrJeAXf0::;Uja+W,L?(2&a+c^&R!S4rM7fCV$.fi.Ghs"K0,R6t5,`*=Fj&OZHaj_cHYaPhNk-a'qeFPrcGAA^OR0TkZj.6P`sUV:>CGP&*^j=&Qf5Mco+9r*VP0.H$ct@JFUQ(I11",:/HI %:=9"%Wf[S,jUjh23Z5N>58c=tMZDg,L"df/&N2AtSfp>XBa)+08eNS!o$_5^Ml4dl=j*,%"g;c:[WLGZ9Wkm>8D!L/L;Uaq*fq]j&V+06F(:#%p")Mf9fM");BEnrs(*7I]Kp'h;:Hc/Mj!Mn&_23l4R3o`h(0U8;C;ua13#2tFB[!I>ULK*(c"(%(:._9EVc%fsYq&Ud5a"ou2&TE&l**'/rr71GCq#%&5<qG$n#mh8+02$,<V<d# %:T;8*V=$L;>"Ue?q*G7\L6a"CmG.!qKIH$nMkObGJE9Lp[R0h+`a7MD+R[qGSTikFFSR]:b.I4lbY'JXEF>KY>[dgHB(6=TSQHp&IW%QsRhtkT"FN2V)lM`5a7:!MOFcK:#oZcJqGBe[ZjH>O*#J39mMh'N7(hllfT`mCUKC?R:br3"mHG[j$iFTSu[o$YfS8hM&3]Gj2VDrCW]&"s^VRK_OFj'if"Pr=*3^@i+<l-e%`V(cj'dHhb %:>V3$,6l=12*+GYAInR-Eck.H]d2+p=Qc<Pm%1-V;HX;f&$O9d9hMtLWcJR:0YGY88c9/TtrGKQ*ju6#4d.=AoZd@!:_T?cb,r6OOm'\cfE^1;K[&u(j?8+[Jn7FE`INJi,039*<Ka%@TQiD*@a+@[SQ)d5-*(2k,jf1T*GS<S,!<s>gO$a+ZBJ=0K)nGg<>TF5cbk3Bp._Gi9+8QOF<K*Ke#+>qA<D&Ti6fp%`/&K0M+:&NXY3=O) %:J&3R]LJ0SJIt?'VGX%3g7[<.1:K#jWXCS75%0o,6J]gW<Yae*@6;9p(]u%e'S08[Z3l&`dkpVl,Gf9aH%SL4iOa)/_h7O_u`eG.<24R*YL9m6UkJ!MG:b+6oGVjn6Z'H)I@R#A1OBJ#:XW&>ukQ6]7902J&cOMr\7H^)aT8i\OPHbj)$B9N:<,oj_Aej?W!)P6JV_d7a(hZ_9ZjChn\*i>urb,f:Zu"qHrqPlIR]NIu:Q-JF4C#\U %:`5Q%)pnMEcTIP!"@XbMu9kdIe2uNZ<r_iNbIf.$.9i*]gq>fBH"@usjX+@:Z"9T88!5o&_J4:M;E=a1AA=spC-6iY">B?h)E[`j/!.Pt,UC[gWQ-JB*#$_>6P3R_76V1$]DNJcrdVB)s4H7U&RFU(nfZ_T3+%,2a^s:`*J2+UlhS&j$`"0.\ZS6k&.o@?MpC"aJjC`947R>_rL>%]u#NeO4]1g^>N%f>N:(G#2%1#^^gF^2@iNruo %:lmV,-QJZ(`+HM9/Qu7X[4H7R2J_rHT4fX8)I*JkQ]O_&jV>4+o(W_5_&cA*_Dc"t7F9'(u:dcAghiqL4fohZN<^D7t$pTPkNJ/T^%EUn]*CL(F\iY,u[m'4-pAi+a"HAQ$ld>Wrd?bht#6tJT0B$MS:3:*nP-_31<p*`5q4*@&2fWa&m-EHOg!=r:o5NkIcJtHC4,5kP3JT[LG)gQKkIecZO7P[#A'S_W003Ha^?b^Lq6fg@[$n-S %:kH?Lu/l"%E/p`k#/flY@?&H4XEr!VljAO0t^.T-+Q7hQ1]"%BQl0gCWAX#i\b=%[nQS=bFQc1R30'ccN\En7@\/]KKj`8r6ZHI*OLG$nYhR\)Vq6&b#R<1K\;3sY:7orMg>ZXDhVp;*=V5pe8U2-`DYNr(Wdgae9f8\1;f1jhMlG@Z%]#D5th)a@-h(G6eG=6XEG@#JnG?af<pK[GnpJL\@Q$:L6WcL&/k&AT*>1hBS[@D#$9Bns= %:f4qHpXpn[+\[H\SFm\>Vk;pt4\Eb!`nZJ']6X@T7_d+(j`ji0mh;Z#he`(nnop"cFf?:<U?15BhFa`ZRhY!q=\-m)T %:s8Tk7URRI:Z^]f'S"#1;I^c%hV;2&hX6`m)XfbkQ2]oN;DOoR/\Fjt`lo)`*lk\Y?eSV2<4L[kjV/E?h2RmUFgZ*J(m?lWG\+=K=h/9hfG'iKIO5";kc<YCUh;-km\E@u6h7^&)VgCGuMXE@Wlaf#qpMk-;hT<HdHXHN`mN^N3mQp9ih.O>QE0#0Lm_6\hPPYjaII=B.-f!b<5Ns3\U->p??(Y,h9:o!e6sii!?=-:]9cp+%K<5]" %:X,kU\dBCdl)@aM+(+in.MW6J,^m^o:(-'.&H8n0\J@9#`P/6`nX-1qafk#W8?Otj!n:SVu8EQh<TBTe/Mf[mHEe?B%cB%;6H#P(?nh=!_J6uU\7a=ZAM3Bn$k6ZXgXa_Bs0t>Mm)[QI:!LD]UgWhiGcl"gGnZeVmp2%W4^4)!/L/ZG7SiW_*W_.Tc=[9d[O!F0,j;!,.%Z)u^(#Z8Pr*]ZVa@gPb6,j%lK`p.#s)5*eT\hclqrl.! %:BqpchI42A43,\_CN[nBR'?g>HV\KQ9m74b;6;^ZoT.4OSXbHPB?CsNu2eU>sbFp%Nf06T-0Pun(BHZrZd03U`oQrR#j!d$AERX/PFLDp4dFiF9<X39I'P'>u(6/b2iOEe.3:8eii<X<+CoJr*WIOUUQNW1=;&QEI<f2$J\t/3EM,FSL,9G[PiD1Q=kt'$;,<LX_*r<c^G)i$Ukn!'?fJKggX5BU8<]W(b*#\s(p]BF7A-)WunUS<- %:,^pdh#-Op*IN32':>1)H3@3.Fi>>g$MsCUkd1t(k&C-#LICUt2F6<+7>SVL5`@jhaJ(>N%VVT()(%g[PUuAu:);u6^/TD4Kc9>K'W'VP11PgH=<%.F\!3'_Qp#Pt"lQC/h$Ip@'r-*7+eR.8pkNqJFcG+F'X?Q!*!r>P0B=OkN)kL7'/YSru';A@k/3"l5^lSr!T!Y"B#Nq0`XMstHRL`m?E/0<b/-@\Ii5o)`/;Z16:og7oLc!=o %:^1nh2Al`_`%B#+!HWtKo<Bo=i:F1*>cHopQ:rBE`7R0K(:<j+D+4+?uc$?A)lW/Md>T'/<I6_/^3@]aTf2Op3a3qrA](uf)\,IT'<.CHSXM<]o%>;W/\,t@Eof!<p^amK>mr6'3ClZ^,j8k=]>Kg>m7+FW).N/6612]J#GU0\U4%V!`/mXTGq7E7gr+V\WZZ>a^(![j5B2;FcCea`=`0hW\S=pU:Ar".^$uH-.UmsS>_O4T.P$dp] %:dOSs,Hd\_8Bq.>mEqU[lc<_,r:gPU:g"^<ILbh-B3(#(SbRT-E)%CjhE:tUbB5.gA?9.m1NB-mjb1XC+3."Gk4\Ld@^s?MH1HX)G6RUs=%Y)UR8#g.Ble/0]S:.8MdOSs;e!RHp<mJFU_V'.m$u0t.HIeDd&ncBdEJ@60R2u9a1P:suUhuk-7p<@KQ9cP)V,PYJI+iUQJCg%D(rQEX.7l]-0aP_NMps_%[C6K_Aqq:;k_,JZ>oGKA %:i@d3d.:2SRd?$'hB/I0*?VX3h@n;6B`gfV$c8)<7R58jV1'M<Q;*sZ?;,/0(&NN3+)H%p$?ZN$hKp&j'#1k,j\Y\Jtd/Yt_ZlF]8go[(a;W5hjS@qP?=db%hM6g`KS=pU:Q4/8bR5P^O12\pZ9u:&AFNmsK2!,5'V*SrC]LsJ<gR+0aK5k2FriFDQS&AGb7*a-c3D5+AjNN8O87'V_-fHUP]&rAR2!-?mQ*Yk;E0d+UK/n3T<,,<' %:cJ&;iRlF&qa;I#^B?BY0S/"__ZU.5C/"Eb&/"4JJ'sVd[//?Hf'5'!X9$5h[XM5?[aUgI"-fcfrrfT(`<&lIsKX4S@RPS%h9@NmA[$<FlX$_cQYoIcWGB1u\48KS&aUgI"-fcfrEdCK8+!.c\\+GaRYOiq/M$DAc@SdKD$j@%c%-@-gL;.,A%%#T[%=c0Y[]r"Tb>:KS)Eg/G,jh5.-@5fterE&#,*"nb_b^rrHIW+E8p.QB#4MoW %:ZCs%,bejr$a!(<HqW!<&L+;,Er'nRGYdR%\)@Rt<b>8r*-SIsOqWIUCl<5@Oh$iDTCm@"5<sdA>^+gf*K__))bt*j6?^'N%?_G\@*FhI[2q6cqOko9'3aSkYU#'i>a44K$DVtlReV$q>3o\k6Xl72a>R,P)YW,!%pfA"_oHRInc9DA_F"RZk?ZY!<=</ut8U2a=DI"&1Ye!'Afl;hA*^tpJe;'Z_T`JhDlf*ZQL5)[l;["SIj89Fh %:%(Hd^n:ksuUof-4#qZ8@PB7Ppd*rh[1Xb61#JB5MlhYi>-i*_)+05:1>UT"Aq%&DO^*Cr6bc[XnH9VO6p-EGMs5?L0/o$Xs#<mmn^K?93>]>EU=q8%lL:3U>c2GZIODBddh`32]9i>B5'IEZ5F9LDF6`23WFYEe3l=&lXf<dJY:#_WTDS=tXZrh6s"n5kPef/p%r:d:,JRpT!%+$!3nc.BR]qO'()EEElB`>ogH:&dsSbhdg9l-nT %:1dJEMDs5Jl)g]:f\M)Red*J:u6[rT'-k*V\DXF/XU#>hR)2ira(9/DMQEbW$r-%%qH4"l:*PbA,5c^SZ!NkK(r)P*%IB_ki0EcJn%7?=]bod+)qb[mAE+!CQ_*<eF&Yua;pdeKAN_1O62*U!(#NBfH$9lKAT-*FpX?,#^@kloJc)/2m^&AJ5WE&o%2Ne-@lAnS)U=h6WVOp+R5:?hpd$2>.?:gZO`["<dOuPH*M,T5KO*2eWhD-$3 %:S+f!Eb$gTns/o7s<YMCc8:oUA:_Q3[O>tK=_ks%t2/uY0&ndCd]oj4u`[&j7OuPB(M=ZNk\0Ys,=URL<lMC(^:_d0bU'c"G^HR+RXJq>l;"JK/-P@YeOLW(;C"#QaM:"mc>X[<<9&c!j-?6;U`2+nR>Xfuf[Ni%/e3k==3#$+:Oaf_BG)pN#R)A?3"oOMnW`IjK=p;K/L=JljN%qE=l!Xs^@>/,q&jFpFCHc0F6L+0SIl[/K+'HSk %:]#P7\4u]=rF#3@^`K&8Zconr@T5C9K/G=#W9W`ZsAg;"OOglVBM-CEND>IPf4ml'3igt6dik@5rENbYGr@(:E&;ac]8;&^ue%6jfC!>l5o!qfD5=>=62.]KEUj4c7&rB3R8Jr!VNnEtoW?rZZ6K3"5VUq.,A/^YV_Fige'I97s'#3+^#V@QhLb7r-+q\!Z_b4jXMA)&Mn@P'`l6R:mg/u6Cp))(&dDm1Yf^ou2eMtIC,ck<I`k@lL %:f;r:Q@ohP5]eo\tQ@dZQ`9MP.<akj`oH("Z:-YE/e4TOLpnMS5J'!/r?f'@#0\i@*H8c/&\$Tj6E-WOS2[p:\nG//nVq5)Z];X/b^O0SRo199QT+[d#L1_ID6@\6A/TMBqQWRHL(4M!0pb^dSpr").^O8[UHYJ$-M!AE!]2MO!EL5(6[C@%(`>c>*n2L9:)u`FGl9"R+?<MtRH^_8:hTG-('WcaM<ad9MK2n;-&?@KBq=gsS%;P%d %:pbf,0%+$&oLB/qtg1/'DmN8NZ28Y/O4cGE:l5([_LpubsZ0nMaVlUejZt0u@6u%(.@WGM/:;eWHV6-n0O,A&pHIRGbC+9llg<NAC).ar\WA1_BM8i4YgsW@j?%BkE7U6W>>tL;f8T[a<'&BW7l;NdX+;1@dfLQuCE=OT!KPjohDjPo\]e/J"e!S+s&SK;p\k0nX8Oug>fkpR*5[o*#Db3LDRBB-R87N9R=\6i.K#Bc>+uHM^mgl6N %:&r-RG\F_Qj8GlO^5<-*"s3%[L0u'uDNA\4q&+(n(YICpC`dGeC2LQ/cKAVYWPH\4A?*d]YNEIiNA^rR?X!NU&=LPQ@3c*dqR^(':<r_iO,uNtc;p7LdASlg[UKUhb$(kdfJ(XD_S;"5Tn]rJ.rfsY^XH^_P<j_F#3<c$TLej=q:[B`cc[XPRlJVao4VdiF_Z3&S@B*bM@C]g)iIKmGiJ-<ZiNk86d:ga>/7gXUg>N,tN\FF,@PU%6 %:9JfcR5IR6q2p5=Jcl>Dmr.hZ0Ta>Ug='H1T-J=,GR\R,74CFFb5\7$.XI\@:2*Mag]sVeNik14md/$?s0o[($6OU6q&9rZ%1<5em:cCgV0\O*>dnO2eEHPT,>YlgrEgbn3H<Ib'N=YpFK6?;?;7,o`e6s^q8Hr[WG6Jf>YA<`feKoT'a49SI9-"M,kZ0fPO(WT=d9/hsCYF]l]K'm"GWMl9GP]4YB2Bdo<Y$7=ilmJapfTNiQE/>l %:(`R19!6?`*K\I=r^]Vm4S)t]'JQ)LFr,B`)e#KMEo8?S-Z2"ns*JYJ[[-N]'+S'-aQ:\HcCtdI5D/*m>"ogV?@9K-F>/=_"c:)_Xr<-Ulldc#X)VQQqV1U?8?SJUU`f?_"4`Y:R@VfiHP`!#9"EU7W%`Ze%/mW9PN?O#%[]M;!2JO[g$THR:_Wl9[JscC9c*%oW0!FLnp"-ALJPDh&if)\I,t(dX]RnG?)7riDXG1TY6'=habAQPO %:,a\H%9Pn-jd8.Fg_X2t1DfQm2lENd9H-6t`oCp9UN;_8lN;^/jUq7q3"/.i+oTfT<K=#Rus$n"BN5P[r%1:+K:rVn&nbp6%1nen+P[uhNe^4XQp-5,q1dX5&V]->/,LkMss%gD^QU2W-N.X-/it/AmE?s/g36Gic<K*\5ff2G%VD<t-*C4o[>XisuT5B#J\!Ub*(Uh"sD)$rd1tu(.TpYL@$p=L7G.lTX.Q%kGZ`VtSkdn/2NI"jt %:W]&pe.;!:<J5CIa2IXn4V9)dFB@3L/@^\/WC;Qb'HQcj'YouP).;gq'fsJIA/;n.2$?$L3)LXnY4/)q:3PTuOQ<Y442id9ZLq^=L].E7%s3<Oa?7"lBkH\rs[Yt!B:XRe&KRBN.h\ilii^m#)Bg19pW3E32%3T!s>D^@r=5!9gF%-$dGZ""#nm[oZ:q;SaiKr&Mc,R"f^io=OFCf4Id`Bq>&()6sX_'CRKc,.Q-]f3+fpNFG"SK!K %:F#(&kO,"!tO,("1L(KJ'2eV/XeI]H5L9XoO(7]6RnEiV*2W7jViS3BGD!KE.U1<0-aIg$;6m9ro5SPO?'$26l1dom$#L9&2LbkdpY$GV%1Tua*Q2gPP_Y<q=&Oi&L01^Q^E$MC"$kGbH#1F-;B8ns9S9<>)<;#!L<VZ9a(S[;7i=*i;r9g7nET7gDL0g8ZL$LN*P&)QE$rpe1/.cm[c,F914@Roca`9dKq=`8FT/Kq>'IC4kPR'j! %:,ejZQJZ9b;[gDeL40m-Pjp4a,f<E!>jp>,H(IFCtq&LV%@p(_^j^[9IWVUG^U\;Rp1+,o+.;Z,j\l/ajnKS2D@oh_^eV9oiKEuQKgUO_N&640:gYi#q#]C6C#;`Z.j\?*?dWr:h:)b?=QU-g4[C4*]+l"a'L7;]I#i!(>@"=r'f*Eai\?V;h_Lt9bce7@cJoI`mKW6a7?4(].UY,?:+,&,)f!E39FMbTJ!iiiSCPBBST<mDQGM9De %:`sYu2jC,cVA`<1IU8VhiGsqGgE.[TPE=#Ldr)X$$!nU%RhR^m4T0+\3B=GI-LoP#0b="OpJ^AY27hi*8O%#>kd(b9QofE^k?aCGDr6;>PWoc5j/NS?O9:2L*84;ENs(ePOlJG&*?FDQHdl4$67GT2GCI[0hU1<;d$rIhn&5i5#b6ml!]%EXlpB6?BT37ct7AnKoW1("9]BBgTNR6pA2kof<:*3Gp>uaWjX?M=,oBl((@YT?^$WGrc %:;&0!4XEW;V_@5FP6>kbi<*Pu&j2?&qqFjZEen:/RopLu;ooY54WV(h&$O9%<35E]F^sG#hGpkcn2j/%Cqj6g9:Q]Lo1K/O'DE9PXAbH5bn^Q`<o=YFgn[+'fkMkjFisDV[[F+b?\G`9`gX3PB@>mtm6r\#?GYE@-.lU\cBeSFrq^iCW[=6IJiQ=,eG+ccS_?F#I+_!3mprjAb3"1<j:WsM:(XJo!W*9&p4lLJS4rZsMWZ\q]AL5r? %:Qqb[V3!`TX]k,THrZL!;D\OCq2G_sO]GN]$m9P(*E1O$g,-!QgBJ8.Xop)XnZr+>[Aff]SB:!SH`[11UkE58T-&-:0A\s)U1YJWa/VQ]$EiR,<h&(b*BYV_A?$1QOdb+=]Xi<:U(#tcP`WoEcS+/e4An3cOCC)Z<$X*/@T#/[]LKMebH\<4.qN=J&<I"N>%BEWKN:=\APgu/C$dY+j7oc\j[tLY#hcS-\5/PdZlWL?Vd"[s4-I.&j %:+b*h[rX`CX^HhR1oIId[>=YEf]!I%YG$l`!ft7]$Pr\LL;,q=8%cL!VQ%[I92'@9#XU`?^>3.6hE=l=7Tr!Ehd<@F8<!V^r\$$6Q-4T-'SZ"rIF6+a"_Q@m#=QKd?!6;DQV5&`Kk=]2f2&8k!rk<]3PqUaMYkHX]6r_\UHq\eT5)eu*P8T%7)rQWL=k/<ViE<cX_M;bb'>>k%6]"csA93]<l.RcQV6O=O[G'a?'R#mJkq.RV$#n8f %:LGkNXpo2Rj`^h?,@Ks&GRmk5PG=L^t_aQQVgGDt%g_o'mb<;rfAT-PGI;0VB?"b\*0C$Og:Ne]iGkl:dUpnFP#"!]o5f,#t'*r(qpI&"MIY/43VCc4mrqD)TVn>K!^2f-c\>'97Dm,!Fh"?5%g?PpFKETWC$upLA@>)rGcm0jjgCW=ck5>_Yq34)LpFOsK!WI)8UTeI[F]N1oBL4AE3JaX!F=WspS'[6SpNe"L]@iY_RW(nZf0(5a %:PoVc=6.69E+0P"QAsIceS/Hf_P=`/nKb0a+N%NG]7XZGgl!m[EWc:ZkoO/#0/2e%LI=A?@W/BH96\s:C[p`D6(ua]Fa-_g*rGDq^T,)(gCCMZ`+'/XY<F$UR6EGB>f!f=gE3/g>f%e\?fR%*fWlipR/8VCaL3`1C7@=,8=%$":>8ddF[Oil^SL'Zmq3+$><SMN.ODntFiN'6>$$VBQNiLkVRgF(;[M*P.@j/K`PC-B0?<g$7#@#i% %:I=NKt],OLiaO2)W'l96c`0lAm*b[<hnB*$qkPaWd0-h6l@u/`#HOq6ZV;A69eD<OISja(XkeT$-(WoVt=73O-6@r,a6bE\WE5^4,m\\\f6lQrqll($jdTe_BNSodhaK@>RfeojUA7VNdG89,K[Ul9F`!c)]$aMP%]nE`0%Uc_;S@Brb2bkL.d-`MpgtgNEX2M=E+YLfL<oRRM+`??\jr"XGj8<C)"BH_AN(]-<W-a'b#cpuXQ(Z]C %:9/ZMqN%sS.;-T=*NS6uTKrb6K7W#8ISW3R?5P=8OggJnFNLGbGq69(FOZEFT+FG/Mg4h5oXb;`uBT/mj*@-#KH\K!UoHmOLbX"Y/E6Ig=R)(b8)*<6X1ZSgR/oFt5$uRAu!5G^3?uFEu$fBR;V1:k?Wl,=Bhk1XVY21amchS.TFC..1jN$UpDIo[YAsW]GC&u'Kk7,Tul@JGuaC5JfjA\ifPB!q20XgnR0XakfkY`pif8FuRa>JgK %:'SnA*Q%[cJ))6\'%nGUO]OT/sQQ'B$pMCMA0MEA&9\0e2O,cj=?(!XGQK([+TEq/[LmchTVjrC@WMFA5a9b`,j"/>j1kg+Fhc5nV>[sp\/eR6pG=L'hj&O31/DoV+_Q+RK.&A&a=r?"R4)BVUo;@9c)g>.f\CqZ%%-B=N**k?+=!qfp^D3:c>Rbo,A5m+NgFQTXfHiP@C3amZRVP3Th28`Z]Fc3lUkrN2MBddMX7e9d(PV0"$,jKt %:MCc7Pd@[=ukT8B.H#..^kdoOad@+Rmh;o[+<?3R#\*coN"gY#RH^,m)7,>6pU4+>H[g`(NM#+$!1Uh!'KR#X\5fC/>O#SJ6DKQpr'YZLLq2J`E<965I=LcrH'`7i@P]5g/mjr+>Qbq8tQ[^Q/6^tO3\BVP<\;"0EfW>.Ug7D8:J"L_1\o-%.UiEGIZ!-)%s/8qU2'03ZmZF.<F>=mp`^-X04"G,72&J;cA8S61&8'O:[:,7:M<g=, %:@D]<4%o>-"o2Xa;bIaiUb6u0qiAXJ#eaNV$KG2&R-:_&2<s]L7^beBqiENGja7m@Y#mbKR2W;0>"rj/GU2\o"%N?DO-lfr#)liaXX<8KXm)K>&HS-;/4IL?WW#,0B?APU>?&Ap2'"nQ0f:GDJS\$Dljm2A1M/T;F$1gYue`9]3m'uS=Xdi/c[%)6X;cHM2GL9GdckBr#rA1qh&RYNGrF\1tOdSjU191127LG8:%fO10I_qhcNWV*] %:?SUq88(8>!ZX"b[dNk3!@5_;OlZZm&0Rn!U2R$.Z_B'bD&^f4'\3sd$^2L*.qbb5XO(onK>_Cq"VAoh_\0K5@ohCWIeSC1K(`IQG>"b7/cbKMc?h+l]:&'_DSp<pF32J_]q?j<%J-)7>^Ec5/)Q(WT$L"d!NQ[4>lO=FM]l-^Sh2;PSJ*Y#Sg/fE`'X/;a<W*GM&S<->b;p`77lYP`/4<GH1j'S"q(uS+%TOnK)`Rs4<<HX&afD]r %:F()d+bcboSY]*B`2Q4G1@DVP5R#HU(UP,TE+`,M:8Vm<DPRVA.8r282\*!g]RUa@d`^A8&\5>V7-<1_82aZ[77s\I<5F9A!bung>31lq=d2=T6Bc<.9K8&^XMRB`B@c81L`0sU/Y_DCRYr9f,J\ji_08VPqU'^.qHm>_uXZ<ED]U:%ro#sg13EIDupU[Z/MHM#Ef'&8^f]ZXZ_Qnq-U2&E]m:*1:@>&49_1^[Yk+bX=9c,.a,HE"h %:aQgpbVS*Uj)V*5G<%YhuSl?WJA<fTU.+i2:.rQ4cL^f@T?u%Q''Ut]MYK<TO*\''MI@%(Fip*1>U/sZ8-6m8^Ze.BX0jF%/82sCjN/4L\Dqi4a7:QWCmat8/a2sLC=uO0#XM4?U@G(ccTE_rUfp8S*?fI5NlW-kLmmIu/lE.#*NSJ__XPm31+]c]fNNgEnKp]`5mH;Dk))nkB3^I6"i12Fsms),"q?!W7qBb1`FD^5+h*CuniVf8o %:Dgc@n(pJR_VL#It51sete.t8d(iS,SMH`=<l"%GDKNmsa'Y>j3aHXiG#.S!W,+V,oL,@IbT7=E(CgDLEf\AT@cr=NnqF]E?61h84R-iZ)[ofYK2,2Y$`E0_q-cBjD)i1*!aOf]YV9.@kh5MdQkRb\6EiMTKf6GW-Xo#lSecX&1XQ.qo5g#Ch:'$6pL:,Wj4uWtF6!J*;'RdRT=)lUo_KlAmC2'm>p4+0Qj<iHVo9SqIZDOW_6UZtj %:Yn/o=*qIN%<pL#i`/JNY-Z=lXO+.hJJP0'=:,Q7:N/qi/HLcu14f)t+9qJJN)p_A\2S@m9CaK4_.OEs7F0j?CSmnJ4f.!C9CT<+XWfe%TWV*g?L4/W#@2p5W7J&UsOK``@4.;,BNf@a?E@&M%Zh<,K_Nq<j5Kss^Hpu`2AsY(jUP_!Q'7C@OAFZ.YMa$1\=F>0+dHCK@;?bsP<5eOQ/[jU8=hH5bg%n7>K`+J=<IGF,>4n[2`qCfV %:':-6ZqK+7j"+KQ_:7rE;@shs;ApeI.:47m0dpu.#pA)00[ToZhT(kHfQ54g'Zj,fdQ/N6&)CX;6O\-9J0O&t$]*@-R08MV9q6S)QMhjC,9<gs]^5*j0F3k&ZQ#A59pq!(Of8LArMNMdcHZB#&S7O`;7-!F/KS?tRkc=(f=7J5IrIfl:E.jX"dEUN?[hjo^,;V&B.8NaV5:=m*DQiC3`U#*#L0/?R:r4auI*lK9k3j_`WlD97%gQ3D %:NOOhW*@EZ]<F&e>MRpcDCtL7c\X;\'XlhS\kp:X.b/-2"s%->Wa>H@ZU%`k)e/dN$T5V"K[Lit)W+tC>;p<iD-YqnoSZlH"?possqac7)ol2;?21MBg/`IddFEt<^^"CV0CY`X`QZR)20LnZ4]DQEObO6nH16mkui=p[+&cU<\*.R7;=#)0XY06mp&"?#:lDeW!0XX(_lJh5f5',=!LU[iVj'@5H>aZc3eD%+IRL4h%G_mH<WeuXN %:7^'ZC20kQSnYZ\X'dlTr=H>%b[*F;$GZHjj;'G5UPS64A9k]%Qi\/7`J+$ia]lO`#>.57Z<V:![MPbU4ZTeqH'6^<7*YDDcYF<Gc)-.?8*]]e\2cj*-q,)E`7J21'[$c&^>8NCp_q6G7n5iIGjT4]43`FP3$c2mjKU3<7RRIf,HZ(&YH%Kd[h7p:R<Mn&ND4aNHX>#)7,5Q?73(b_cV(=,2160_hIsFGaFGm?9_fVK"MoERd@/c-M %:;V"-/[<+2RP)XqdVkqQeRAk:Lfp+14=]i8cSX31fLfm4^&?G5nnN[,Yh8F0EdNN)e_`l9o@fd%!=@anN$g)[df&!i897,3oXt8>bUIEYR2A@jdWM\K?dFlt9qMV_m;;+029=srdXV:r5]6c-7iTY3HMQA\q."TNRDm@^gh3s;&*0"2oV.$g;7DqZR#&@pkkVA.^4"h0bm-.4FK5BH$._LpAEE:kSM:=iP^bdLEDNXL%W+&_6k>PO; %:5QaM;SbOZgC.l`^:!'+bXCV3hR^F-XD`6@kq,<n\8hQqc1i%C'CkDr;0X;KQhgC2(-c1KGrkd5G1U=[-Ca-!cChS#\=QB'DP>Saaof5oa\E9D#@G-GT=C's?J\ou`_q@e1.:M!rUCbfh`j%C?/;q:B<S0@M8X!(1MVLfF>INHaQoIB(V*LQ8h^McT;p3b?_0[U<`8`Km#g5EIAM>3Vr?JhLBNa"X=B%njaf*qbq'`4!gcMNulErG, %:&2B?F`UQC2#g9RAA[,,A@JmR&Lg%6QbB$cP`L"G^_b5k#jA`IN?R]C+<l&-RWt8k.pXHK+J+6!cJhWN8/C6VSEZa<f/8.2+`OE?CGWKV)6qlO\%3m<+-`8%$k4U=$af%69d%+,oh!6Q9^Kj^[f"t'[g$'.n6?r+Q'IUu$Aug_ce<[4G5KstI'W5d/Zca-WXmmoI-l"Z<GXRo>4ASVhlk=MD6L1,Xluhi_$BS9<8+HiT!IIMg=JFfT %:$@+&qPep$!,s/M$0KXkea>;?tPYt,OlW+9P`&)=bb#i@/pE-e0Ijk()7!3JAk>-Le.=WdQcjIV#ODX>NX\aTF!CWUjc/XI;B5-sHJVB/<q*grX"e7[D$";%AfH7$JoA"_QZ0ZD;$(K(r_JVmE=]9/pdp4s7nTQT`fE+ML^'Y,+U:?(eSh2K*VeU7P7SuaVCs,kE?Y%>Jfd`@O>?NJ2:fK=maU</N?H)2uFabE@mPKF1YVFT4iM>^@ %:,PT!V+>m@rqbCPqonA&F[<sE-+D\"=RAuD`@^]b?Kk3^=UFJc@[9:[5$.c&!->IS$frCoK[q2V[0="TAZ;nsu>IJn'Zd0,T<$8bO>qX?M&;mH+\J-:4rq;YgKL?*Phi;?\#LA(-LsK8Yk>1?bFH'OYGlbbB)e;[Nn=5'"&7%fX'c%:S74Is[J\p2)bo#I<Hi465]H^ddQTA(0\m6-ubl25hZcZI%fZ'[TfV/6Q5c(2Q<N2gZ%/q^P %:VhQ?Z2%6lk/Z_!*h/qI,J9@Z%_beZo0Fe#VL;@).A2CX55P=9:1f7FD_be:se-%$PYbAX]W*qsJ"_-N_[&p$?V6+5*F[asPW,dRIl8;%!?YpU\TV8E)r>f@BCQgRm<PH<0<0\1[^YUM"^A8&7AA;?f`.l:FXJa5B_I;'r6:>/]K@EoM;/\e?`ZGt3EiSi]9PJCfZ-Q3ebUY7na3Z*bRR69ILH)<WE#K5Ok:$1c+%HVW*$b<E/4B:6 %:E*rdbg^3kZG__(]m'Sg1ZK3J$LD@3PRLBC=I@,k\V)21U.LjMT$^8-18i?E]Pd]i1gtSa3\[SnCf\o%MpPqin)u6%SlB>;\-j.9?Mqa@iZV2>^Ip\P37QH-[Ee&NYa\QRd!0<X4@L;1o_Y4MO=aX"i']9,],`Jq2:?5RnAUm,,KF`m5_b=7&J,mOsH!FMMjm/Wcm-_1%WA<@*l#'.@O.W<*8a/f\LJ:)n_ket%K?huZ!C_QaYUF#, %:I)%+,*)03u@CA@[YKBTkD(L([[Yh?q1)_dFhZ#qLZU`1.jA4]5RjD2,aG@5P>CD@Vq?&;BBm%h&`Xn"@jA`J9>Of%2X3WH)eX*QFK>Wr,EmI^JU-Q(&?Ad$8@*Y[IrUnTdD#`ih_OHn@.5)fZW`PdiaiP#A>FgNVY<:"7"=roSE<g&,>P`)mfPYDckYgY#`<gRJDQBhd9BiAL;E]d5685"u%o4.VBMTTe",oOcBu\iGji5!R5Q\*( %:39*Hf>N7*MTTiEgPh*tW@pc=l)5([IIflCSH=Jqc!u_g>JP"+Cj-7AEg(8L^[?iWoQ,c6b5loGm_NggbQSONC#p2usodMre3ok8$m81WmO[DWoOUb;0U)Z'P*,p/^ki#XtEI_PPj4_^]1-a?.2H2Ih2V'a/<JEkgl4^_tEcMEjTAG:J0uDQ-7mS]u&?7L;oB(@?NT"r=9pLi*Y33;A*=!&A3m[t@\r`<mnW=i=L'@B#-B90nVnbfC %:U%#t$2fh'r/UPO,?(VeEmX!)Cr;P*49Ffl$5l4'U5:L+#.7.,4r+\au;Ir@Cbde,E!O!('$K$g/bk1tfY41I,Y6:Js(*J=g"odO8q-i`0Hh?'tM)&*d.tR1RG$QS;2s'm'._\7)&G%R8FeC_o9tV.(nHs[('8j.8HnBCNjjA]r!Tuh\Y*kbGo$]4PPE^pHA11eDXu>@=UU=?Rdc9Ai6,rB"Wd4!Qq.Hl&Mn%/"ra#=p;l2%nMD<+T %:l/D<(^j0#XqIa11-E(4/_!1Ds``_aXEFK[3b1rT;)+ph_e,##=:PcCh`ASS(hNR8t)5]f9=LN:8fh*+CY;Lun-.rPrF>3W8L%tLr$ro\Z@uV-p0BHV\S+bR]+Jb=<q8tg2!AtA;iHqVR\S_rp`n44E5/<IC#O=C/Ff]I7mc.^3"!9,W\7=G&o*B*T@*+5[_+@*TbpT%03JQH_kHM#nq,;]Y!JF;5;1E]fO](SGmNtPZ&ugO7F1[3. %:;8>UiYcs_g2-;CO9J(]:QBMQ+5Ps(uZlT1\:+]K^.8)(lC/?N"Qd)PhI3.&?BQ9k:f\?X)SU*DM7N9N7!e*W6=`YqGL\$`o2)bq0S\K+RGp.h^+Cb[2m^.[e$I4,B6>"SFJKGr*+9ZL*6f<`6=91WGUi#Vik945c?43rhMr:VRTl>TA@976@BN3^ai07ae0s1_*WZIB/bQX<K%u.@FJcj`QjiRoV7Tl^l;O/c4U!mE=%HnkKj)'Yg %:DGP)L,r8f%`J#B"%gT6tLg$2>)S>huo`N1Z6a0@OI0`qq>0+.'3M^hhZ<g\7C]J85\L(]/K=J(P^Afqmm&MfcX?6-2?-J^CK#0^2G`IREAfh**)/C2L?tU:D[._>mk>+Il4q$f2&h^HO1/jDh54k36E1f7lQ%tpU4q5<+p8*p!b%>4CZ;oSTCf7^Z:dF0UT[%#+*=Ua"Eun_!rSXkPVVVlORS17hXf)1rrQXud01184*\E0@K9h5V %:&NF1#Yi[=ngL#\cK;6q:%X3XapP_1`)1l/MJa7--irV3jdLZ`J5;*9=f$WV%#)Ck!C*=#`AI(LlK>VQ<&5<+p&@e)L+ZR11mtBU)6X22Z:;8F'T5]o9j,Xbe$LoX,E'S9rV<h7V.!q5-b'q=(*)I+p4-`1_Y@AZTp?TtrQgG-0K:K012%C2fp`V$F+RqI*d7p[4Gd[JeieVVW3=<2J_>%gPZkKIq=+f.)M.;oF/UZn*[6o*.[_4!o %:!YMu^>)l*mBT91t_Q8M3N=MH\rsf!4Im4CY!I_bGGZI9$GJHu)F8NE5KQ9sNY+1)K\Z/RBa2Z7]-!6Spe4^0GAgqedKhA_X<*>u4<-B[pRF`k-Pg^,`acCf[;<$)e*HE\#nA6=i^;]NV'lhS^\1@PtZ[@umHI1T$4o9EsJGTDs?t9AgQ2kJ)N8>S9.VFtK#FHfYXFJ:Y?%5Okn046,=:aLUQW(GF63\hJQiL`M@4;mWJPtlrQ\Ok3 %:@p'L*Gpt7Q_8C`p$.$X[+;Q_->"b6bEA6?+Vi$-LMg%K=P$@TdUu?(qj]p\hk!\hif0>/^\7lT7gQjIJ\QueR+O",g,@T]^h$I<[%Nlb$3"r"]l<V9BNGT!>b*c51=d3mo\P\"d\Q9s:EK9ugfIl&f(&KOP9]`47Uu3ml@:sK1F]e#S4hGeVe-LpC]r88#::[H2aV"d5/%9J'LYW];@Ys%E4$pIfn>jVZf2)Z4Y!Y2(b."L5q=[)[ %:(Vt!L%MSc45@=BE4^;u*Ff!^[E*fkAWhnL&e7\rn+j(8U2Pu6B;laR*VO]gF;0j3Aa-,Q"#LCM\Y*jch;F-`ka<CbcU:@PhNr@a1\Z=LamOJhI%t!dAjN<eE$!h@'VX8rn2;B*(b]V[-nVm?O8QBp0<7>`s,\?7<V6!QYV)0ksb3Gb%9W<-7FAAeb#):1f(gqRt%-)jD^&\2M&A`RB%uqb6#X/e&++O@_I_Que\(97pF/>o%e6A/5 %:\8@:plPj]]$2#lak?b^M?E`6iHgaaZm*l"$!9Wi8OtMstrs7$J2uVN]p`KIW:P8K?TD7^7)aF5co[Wpg^[45H^]*JI!D8#;:rM't.Jb^l./L,4d=2U_rYqSFe_-^RQJ<S]'0l()p-4BXI.ba6o>gmlro]1RrHFn5pTIKe5O;8>5D#X0#o*?a9Mp//+tS2?B^_-5_Om3i^!@KDqHlJch_[bZWVu:4'`B,Hkl1cSrteUU\jm?*pAbUj %:$`^Q5Br-Qf=DI-m7>h)::]K<R.Jf#b70fH4qO\i,AY8nQ_2g9=^\e^5:hljuI9MNt-`0F_^-pAbNue/[Y>KE2qt;H7EDZ:/J>-s97DJI-75-YoOnuF!iD3.0qL"F"T02oIY>Y!omSWUXJYG@/MZ.@fk^+sZoGJ&\;5?Dc7J%t%8:S?Ed9h7if4g,LXr[H5HPHEE;"Q\sU/-W?r868(Ls.f[m/9^V7":qr^&RmP7=XOZDq#KcI6#'l %:Q$n1`=Xu&he,T4$Va/Ye%#Y$"VWcpnUPO0dc+e>mYO-fX*mn'-,Q7E^7@tUuoW&[SF-!&f!C]3\MZ-YRkhgZ:U7[0EicV%\m5i+VGTEd0(Ff48%fV9]W$\pEhkTCrJtbI6MLL+*qR?2I,%o(sg\W7qiD2#4^!@KDqY]7Z9i4W"NBN/fTVr$O%Z-qU`?%I\U>bD357NZ;_cOLVeL+8uT?7+'(]'C\n_fE#M$M'+FMM5I=_^pM=M0t% %:h4sND<.5'Orp<,8oYV&9rq)h(IXrfE5-6+#-^LS)'Y`s3oSWt3H^,chd;,f]QU0"J-u(P,mpDdpTak"s4tT4u'2t\j5B3*[o"aaIm]3]SHaL;U"_VBfoSJn'='qVS_De2XIi;MS:IL-?Hq)<K<E`3uXmtKm[#@8.a0bd?(MKKRP1Poo[-J$Jiq9*2T@%\YBrPecb-X$0I*`LVQB5btrTeg;:hWPV[f6Y;kYJ!kqk)2JM-m)*kN0j] %:fqW*[>,Ir=AQo)M*\DjE@6)`@rs;lm:IND*k;-:\iFSi[285^r=Q@T^"^:mbB_f9.Q@3WHH)(F.bPim2#[\/qqk)2JRD2?%C5XrQ1=1%F>/&=im->7[0eB*5:Qc=h`%p'DHq"L7%/[>q\_a+C#.3HaV-mK8HST&97bY0J8UR4f)IMl]5,2]f.P8,VZtr"NQ_<H#Bc4ZR$W87I7=A?Cn0b)%I6OE;X(eQ8QhPj6HiP`/TOl0NhBZ4s %:>jg!+W?nb(]hd!A?h)k+qg:lVPGY2=$#iCFD8#iRd.6p]QG8c#q8kd'QlejJpHL6:n.kO`I6OFfmsC=c^OM<1IfQkRK:q=%0eGW[&hQXeR25I0Bu-F/(A180k-+cbbs2%0rtV#=Or+))?fTB0POi-CpkQhj*rI7;l8$7>pdYkooW**6@s`=tj.Q:A!8W-ZkW\f$?D.1b8@OFnrFtJm57u`Jo92sVT]i"/pnqJqkb$P'kar#IcVIG/ %:IhiasF%"F%r>dOg"<`4D;P07!r.uk#T.a+7k77Ip9i5cPs7ng8IMEQj.!4r3&k,%Vl['?E4Q$j\OaE]g&cT^,EpjZaje"<9jZiY,J,\\^qs".Ol2Q2$UBa#'nCJX"*;ncJT0)i!_9p)C%lsrJK8YBGi)^D##O`.'#PSIa#Cl=&+$00E&,uBWJ*GG^JE;jir\o;dJBA.I#iO5$-OBYEr<iN3.)o']/27I'^Hgl=oB8[GpWqdh8G7f2 %:]0A@O:];qnG47SpZCa1E-iMO3T0MmF?[hk?j);S0nbK)=If/k7j5!?^$QT,3Ypt6N"2"u;l;+o\GD,Ro%fsmc.%5Q's.>uIG6/?FOIf(ceV8NEPl8ZNV`7iV7mHgkmd4KSrMr$SrL.IfpqIpLj;XR_(+emVY#+/?kL/J>%7$'q'L"_$3;Th;s,3iU"/FP$&=q`o]*3G&O)"86TD\7-hu0D-Wqbque_U2smJ7X6g&/MQc-NQDn&s6D %:Mq\ZTq8I8AU&1t$hu'>>rPWo0\pMg2VjG\AS)X9nqq5Q14s+l1qrYB%pu6D%.BYl#go`R(nVU\$d1*^[?(MRYn2!2nM_?(=S"G+M\_V/;o>MLV%hG;Yki\QkDHHJJq_'SjDXk<ma)aB9>8ZjT[`uOCq.,p4?2/2Y^"@f&-bf-,r9Eg!G_C>ZF8'bFkl'd]]a_.]q:531b>GLS]e/$o]@C`ph(NFE#+>e0r.M22"B/sfgH.LZDK9\= %:)rDC?EIU;/BJj"HU\L\]`D:mAUCY)q?EHukmUhO1UM'4k+:J?(Bs0YZ#C/IYN$3o-I(bna+k85(g%R@\Y=r?]^:4@\9+%^Imd^29fDkWP=1;=V[_:*"cg]iLCGd#cheG!_eS9c>k')iH^N9/srU(L"'sZnr9YK?C$#VJEVk6T8#/P\jn_Gkbs(!1#@@@&L0.c9@cUSc$n9-utJ,^:b$3/2<X\.;?EP8jt/MFl%/*YT.d`\O:,]t!e %:Y5\4lmCV-MYPcQ=p9ts\heKe1S&aE#284.aqMMAE9/?=ofOFfdDsoG:'u/o@dDoUQf$O/(`Vn='Ct1_L\r4<[VP_(8No#4R(JO##\@ij+[YlG*mH?J*3gcN;[I`ZFdPA+o]3.)P5?q+Dpd)UFMsLopf8JQ!SWbSB?JiLMXtFAAjk%j3n_3j'b:8#9KlH+2oBZ5.m-aD%E\IZq`2*8`H<9F5]BdFKI]r^<q;^YiMoAcS5CQ$GWTB[? %:X648>F+&aUj(mg"41G(*IV@C5@YEhr/=oA1Cn[#MhnoKk&+FbLN4*s!Ii)bq<YN&mhKH*j!JbWc9MHd>6i6Jt)ucEe6snUucb7')h\+0,2-`\uhX1(0&ir)LMWT?Mf[]UO>s\@kVAIV$aiX"^4R]>_KH>'hD\3Po?`h)'+nbZtL%j&Sl%bA:SJ2ei\Gb0:%#!0elas2$eIoTNDXE]Jr8D\mh+6%Kfj;&]g+FZDDR>(GLkUHfk"92` %:J!$goJ,Aa.ok+'^IV=(WpM<V20_aReC>>?OIr4T"/+<;OV=hI*[(bB)l@l_EiA18c=@SPKqm5tI&j:R7DR>(5'+Y"c<U\aZg/6b7RRc7!H@,GLkhGu26.sON%sk3:b]`&p'j;*]ZKNUMnJ/'rQdgTM?<q,L6g+6u.m@0sVN6b'D/fFV4LaVGUYhO?WrKW0bC@KtiR)ifNUIi/I74`Es,-Y:&Z'n=)l?qf4^'LGnPiB[&\S';&(]&b %:l`5kjk*MjdbAJ+:S\b$cf513@gX4HS<D[IS*4MJ_DP9M1D[^!=G0@L'5;R$72TpZfmJFLa=iJfVUC]$#UY5MBXJf>fEP-N_O^ELgFLHDg?Fi/hE;b4:EF4"0h=\DAG("L?k54ueNQ1,j":94'/C\aucM@/0lLjCW5C&Lqrmbf>F56?PO$CFp>%b2Z?Y0F*`;\gB%pEgtb#MeqM#$o?#>c6-eVFaZHg)EOY6@oeIVBqVdd-;hY_H?B %:[)>?Fh-9oF>-j]:+fa_Ki8XW\4mD(<pXgRlHYJ:/D5AnDh7`]&Y')VjGHfeJGI&i&h;3%K:%K[:*Oka+=2i[](#RoS>!D,8j4\EY*BmS&Ur%et7)c5)*aN@/1Yqo#2(^jpA$a$FMWW`d/f(qbf@tK>dW?Rne]%EfBqK`di'e?SGk9@B(l'+YmH_%^Ta<l1^V()Z$5=pq*di5N"pGJoH"kE^d!C!7E-:o'Ca&VVNhbb*f/:inE:Jo7 %:=`rd1Y=]L6])=hmn@(IUqn&nP0jE]lNPjQFlW7^gMrVd"H$.`.X]Dcp*qHnaYX:(1Zut=&9)d(*-JQ][mH)AY_UmVW,%&A:U<F-3p<LKS=dIEMMoXkif7shggUFY;EV1O3+'DojJE]^CqT'dU1:q&_njNam_pdTpHWAmSlW(/dWEoHkmC0:5.Xpk.?$<4\W#sBCK(*7AMZ*ghG>saV4aMG@a52&^9-\BD?@62%`C;NPrTeQDgoLg9 %:B5fA47&VJ^I9hQ2`co8c_lJMtrSZ4o&M:-R2Zqe5=+#6ae?=`:,<))nk5GXq-p0RCY2??q1Ycn__W_!.&LI'&g%OEEVH6<:jo,%BCnfW*NV!QgK(KR3s1(ed?Znof1Zr6Unho*0.'9DrHar3Q2]c"Rc0IM\>;+8MRke=B5p#[X_i"O&VL+i8In-\7$g;/A?=#qV2qqENnc%VUE<1q;^SBIPZX*<?41fqrU47;;p+J(3ldnIlKc4r8 %:&DaB?o,-'T[jb;-29$,4>5',4F*^h#[h$4U(6,KcmV_KBlcr[cRb.*=O#F30AQ`"feV)Y'q_CD998dn,Pi2<ua'VE&+>c05]1!UAQPoEc_;h`[G"u@cG,+"(Y=;P%>A7`U+4%JZ%E><\pkuG]QM/t"00]6l5=EbAfD:6=HE1GOQ\/DKc!+[fSHnY@QGt:9``bLq"1%"ZgF?C1JA@3Th!/d"j/VfI_$`n'R9Y3PS,tqXYJ,Mb_&UD^ %:\\-iI]DDHTII"OkgN(#NlF]:U<jUJ-qlS=W(L&8l<VtkHgY`!Rj7MtbG;q6=iU9m$IbXHqIemRPqAjFes$:Jd?Ng3iDUDOhn"0RZAP6f==SlsMC7,S^MfdW83LV<+n$5sk\7cU!ju8:c;/l.]\8E,SQ1lHh(%9VL`cW9u4gnPWiOeF!Vk^TANpD?-01t6446X0BB+qI'E80nBh[RVeVq:+JgCHDS4D@%(HdTHFlX[Wka,P0r=p!X? %:pi,*Z,JV\KLJAH$S^ZEjbpiW-?grT^p$).Nml)$<gCNJ&fjXT!]Nej!1cW4;[i-?9f68!k-f`22jFIQ3P@<K$g2.U\j"8Z-^@E4WBCNr&2`o5g4Ct(,$bptU,q&/,^h#3m.BbD^h7cU1DIXS+SW+lG2?2D*Ujp2^TCNK>\A`q+[eJoWq,'mOFRIQ]53)>hWWqr+g>bao59/#6#C+;q!%^?B]YWcM6N<Nfn@L-!EH\jV*s`0OQq"im %:IWDYudgr4fn!=.O.?W@\k_F0T"9#^dc0ig5kolT0P;dBIGAu<-gpt%Y-d+%IPLi!6$(4ppa=@LSUV&lg9FLi/0QLYlT#\/Ah6uF.gUW.(`QUtEcImeVI!!Hu0o9)P+o8pC+mf(#6cm1U1EIZ'$:8>o1oggKNJ1perod-_2otr>'Gl#8n1m,^0Se-d_g='-r)%pe]T.>CP-QD(6e$5H_UTtVnjEsrI%c".1!AT5hp$Ahk5=;s;;\e' %:dZ<;\4CI:[]:HfaN!a0*1^i(3l&a*N/kWPgZXuf2FErBQ%BCR=gV+bHS0Um/r1F]]7D_BB5N;c1%f-Q9.rcXL#.DYbnFCS]cPjjYQmEb1GX/,deFN%CU"S4tQQBI&EV]1mEN>0=`_GVN.9Nn'lq,SH%bF,KI(W$a7R'Q[T#")r:[A;-p<<"$4m#Fe1/]+WbU;d1%u<P*Ll(T*J*0o2DpMWBkWaAIoJ].M7l`ql?g;l/*(lcd1K0.O %:,hiW0]2HN+fY+t=4F)^m1B_>uJ9q#Y7@ni8$#c$E2>"p0qQ?=hs)C5.D9q?a%/Pg__onE--!^"fn^4kW\X*>O6OT^mIWX>#P3,UW]8(Wulh+sLf4N)NT`5>)Gk_=QFt<F0Rr3P^lq[.@P@sAVE8XQ,-1I^-T)&!"Z5KnnM-@cqC51$D!=@YjA"Qa83hY[YYDs^E/\a4Kl1UsKcDn#LT`':<EN!.AG/2'@MU.sj<l-^7Qqc:028'0n %:Zt^Z,9>SUH7amu_n'7Z34^0a%_P&T]Wj(+!YXu*QqpR[>H,cQ!.i+-eJ-#+3[R,aPdcN!>o@S=Zf%qs1%f9[^2J1^DAdH;u%J/r?DgADd2$pnJKC9;Z=1r)f.q4\(Nj<\6r)BFU(.6?Qa6k5a+Sn1#@=Lnh.mKFM*U#q#>]L+eQ*mDIe:DK08+,Lg=d'#GRPUeSdqC126dq+XN#u4JYWPVMMF2BeH"R:N08+i3,cu-D/\9otKLct; %:qoH?S^K&^3UZaoQP,6P*N\,T7=)1B>BUt[F3#!k1:!sD63pndqV1`'SbD*ZA;Q'PJ%<VCU0EP#=[+$(1q.pm9_P<]H8'Kom<l-Y(jhfTCW?jYc#-OK4mhUe0k6tBD0\c\c_tF-IOI.9]+;1jA5\`;IAB"P#F^]Ft2g@r1oV[t-49!-pCR;dV!%W7k=c%Cu`f$(7qeitBc%'IdDe^:`Pm&.603U\,/P[1FT0.;8TsG/j?@8e6"`\F. %:[)a`unc6G``AItZ#k+0SX3D5JfF!rMKSQh,J$WE?pLd'<hrJ>Z"2V-*)hE7nL@])".@f(4o';:IkS73E2![sp/lWH)h^giTZafVFogU_me<LWUAWj@OgBRIF:,Mk,\62DU4nDb0LKWuY2_Jpj"-a:;PB]&Zj"qRom[BSnhoS2+0P^!PSV!-&lQ%H.$7G(6`m+9ja@s^m9L8tQ6?M>UMKn7?dGMfiWe6Pma;mG6%!-VQj$?J!Phgio %:SI@DG!9e%GNK]J1[<[K\NX(e),lT@]`C\e<P/KlDN@(ibUF/k(;W9J1NgD7H(O8;<5I!)uDMU<\)<QoQ`?Bo0b.tDP`smkc4<S(g*Od5h_rIX]dI5j^YbG`[&NH@2%Rp=SF3;/Q`@N&n&T^R-&5KR-bn$=i,K:Xn5-e";m0>/sEkk*\/,E&f(3-/QLbkDc`#LkSn^a._EB$%],^ab`P,?pWJ72eX3:7NX%c^&fp97s8&Tc0HW-Hem %:4WPr*DC+8QPEu<N=A(V?grd4Q$qS#YP->P$#t)=h%[;9%(p14]L[pX%b98u569+`@`?G7S/`GAk<mjbr9Lu1TOWCOp %:s8Tk7h@<T,ODo;RF9#`G`?BK)*=qY68dF;8[=jU8VF[*2#>SS\7=I8p!M:0ZQ>h9c1]><!pq9CWB2CW#buGT>%c0Ba%XE%?BjkKk4d8"C@GI#g=X]Xq8[pkbkqKG$p(=d"m-W"uEK*>,\,bKNq,'3+e0I.V"th=01Er@p(`eY!AYMI[^q9,r%N#ZrdANSp6e&/.3*-_V:E<;>*l(edk0WrZ4:)3dFI:U&]Q(V]_RO?8ag,".Tb3U) %::b,HaC;.1#^DmgZ:6Z7`rh;l3MK]^$R/p'hZdr/dGWA\T/F$m0o!^DC$Pg\Wd;W<RE)@K4)3>B<8r)AW)eY$qrqrWK&2F6W?KltZ5Aml^>:PSq`>:M:Z?!k+KaQ=>fC'i-/R8A&&GKJ,")27Gdt(JPEPn:O+B$TJr1rOPOb@E@I?YVb@qu5F`_!YZTc7Q/<_Yl0r5nNQ\C][6+q'["LBc%oAif4s9NKf,pVThZSMpFqR(keR%+P5l %:ZJ\3-3_r2!,'N4N\$8T<H(d2SNf.$Wk7?F&1TXII/.@LR&$_=(KIo)6?15n^01MUUiP\7ad^-gJZJ[',km(n,c(^2aKVqNk$SIC.4:eYH0n?%k)on:3s0rdl"#k,b>U#^DOD5D4cWV&'JVQ(6]]'K-=?Y$M&%jW<kiA08#8bBOX-ju9>C8i7o*e<BYh`=mL(O^)1W?'X!k8XJ<pt!JX>o9c.ucEG&$9fo!G@1)V8Gjs2>sGB\J;?h %:SM^u?J7t!2>/G`Oh-&^*!Q3)Gl0pZNFqjo&/E'u*]gJ<eSV#FSiDA_g*H6@<L-rm!R3=fb.LlIiF0pW!06J,P"4B%Nm8Ce5i(]\POY&%j+Niea*(j.Na?peG8U(b]'#>_-;=qml,@,W;o8Mm_B:$@>FFddQ#O$pK273q\@5Xr7IKq0-f8DN;FQ.*4_e*)+TuIAJj*7ME^q[>k`pB8+Qc\f!*,;KQVObM/=UA$"T"p$t8]s3jp-Zhg %:XjfmdbiTqfWcA,m_eJI1Q;pL9<iM%)T0e<+oeid8cZ"'hf'%Tj\mR8pXX-m89L8to-/cfnp5UMuN>dQP:(c72%(hfABaGk1npGWkqMB;85RXcZ8$0&%&m*20Xb?Ie\1hFNar/'DgseA=DcJjVpPtS@\9<Dgjc!Eb&ddEdq+:mB7,6JWD[6&g>LS-.V$!lMka'EL%#A("YVVV,j&V`Mq7FebaaeW'CF]E%VG`iW-8HPbZ?QA45H;F& %:D2"o!0;>Bl@7Ja<#5C.9!Me5olP-0;L_aP="T>hJ**Eb[J-g>Lb0$ilUaG%fKt#(4`3#0-EcHR7(L.l0IZg3hUW2G6b(.%=>:Gjo1fA.9G;1OYJKotmT[\0j'PI=R;:!udCC[$2nDa@#mWrNPLWp8OdXLD<bHapak?sb6+(*!V5sS\s:Va5Up?m15PiQu@C'Ic37I5N'FLXKW[l+#](a+FJrt$EZRJL?3SE.j:AujsW5i\T5^]h-q %:IDZ0LnaMpeg.12Ok4gB-D%6G/j7EcT%r^=2oFkI'n5_IULcN<u_kB4MDTa#7H&S\K#)t.j!P-oQSUM<.N]4X"=cS>!4MYq"?A3Bi[*G?XN@SY/7VPT6K#WWUJpu:U_R0Jr[l.5'k=q,L`hCh7f`CQ:\qKB_>dRr9M0'Vc5[EVnGMYTN7;Ktb8>1#Y@$6O^:J/KNB\XF;[_h,,#h5+Lqra_@e"?=Je06/tH:(d"5TPj-DCpXJ'-<D, %:)GIf>C(<Mhg`$-FEacL/'gIj8TGFR1FYlj5LsS,1#GhMfj4[ZA>0;PAr5MR7L8KIG3c'`Td(#KJE<lb$(:HOP[+:B=mUe<_n"F`HFNaiO%LXg2&"'5[IYh8R6K;f:!0+UlEN"o;[7IeiT[_p`1_*nXi5jl5aL1;;c9Oj,d5Zu6l+,38+OV1/_&;e;@fXe:^n2H3?%m9IZoj6H3(Ne)(_Y'sF&MI'7#u=%?hgm]M?)V;EA!bkN2W3* %:%Se[IZi`9cjM:H+r$59CY!3#5!&u_6Y!`J3CR;eaLX&=1j_@6!/fDr12fJVAkX9\ITGj[sZDZZ;gIDeM=N-uoEqu1B]Zl-LUSJHV;KIX&)TVL=_IU^Z'Bq7p5:JGG)Ksr3)M]"F-Z!q&G85m0<Q^R:9_,'WT1J,G@8"KMa62L"Tq[J,O=mOo4CJ/qe/W4#h9F+#]EOW1$!ZBZJ=5t<;072dl!KO*%Fd.nifVI3e/ZnMgoqlpH_B:O %:4AQSJ_Nd:c-/i7]W(D5H,n(FBd4,fh,7/Q$>!q507cRO%8'R_=BH34H?Z6u<f8.'h$294OKZ?s@7BK2u?R=[1``kO2)[,Sd6`?ZWjUJ=ad$d3>RQI%@7^Ju7V'k,_KZbVart5+nJbfUN1S(H^Hd((=,Uqb"o+#Zb?]koSS!%2C:sXF_Roi&CL@mgFZR,Ic3,1eF&ua939.kAXm#H4][r^bk]g2O0KPWfq2o8ToG>jX.HTts[BcKLt %:nDY"3&YsA4X(OCZ(oQR>T?T6"g"Lt`pk"lC8_OR%h1-eF*+JTCO9dZ#i<c:X;+Z6h;"$mb)d<5R<)b^Wp&aok+<;jjA-;Mq*Q!3I3aa7=$e1<m>P^(iKV8\$9pPsS4!/&dZ4\I=b!6sLKWSZmUGu4QQ0='T=%`>JE*E/L2*]Z6+lVr/Y9E%i/gq1Io$o"eW_.Nqj.+YDj,7kTnY5[Lno&d?Z'?s+(Dg\B5giko?.(d,X%IiY-gUT$ %:YAqX9$aZ"^)-45%2$ql?fE8?6i=[Cu,.=Ajp7Y1R5ULfFKL9]e6,.hCAb4Ua@4r9#P7+uo_n!Wga,aGJ@6@rc^lKcrJjcZW'F?`N<!Z#"a9;tfk^O_pkS_Bh:F$?!fC=`0W!o2+%%J#;aH*/h'89?-?5HUi,@R>HFRq1BG\&a"4;9<tN1\,;TTt2aKuIu5aM<?eG!IcXR``b^P>K_hp*qRt4!<dhLRLS'NC`rIAOhEc1G><;1+b,k %:gBs(_HPDrZd/c#LbD/O$b/.\DGd0&*Np3/_=KN;?H<2UO&B#P0O=#qtRR9W-["MYYC9S+;P!Z7?8GJXR@eM,HVLKA@2p<HC9sFM?;.pG&`1d>XiU0NP2+o:\b#gZinB0poR$jX4MF;k]\Ap$/TL>P3!p^7p<O-Y^+gh$/jGah:")/7A4k9BA/RtQi'ZLmZ@WNo5/\*QKKM;F5)23&rs7Aj;EG<gd`Q)"S34+ha'&ca8*B1*RNmg#R %:Z2EKd_9(;A\-AD#keH=Ql\gT&er)X*,=#:)30Xo<KSL-Z#e;Y,+Zuj/5i'670XRW_LN0X+STlj89Mu;q48GP7k*eY+_s.5C#ZYDuNHtiUP;(;GE;,n5j1`/[lH98<rMh@0S-=2\<l,]0pK&]#X(H%b6cG`>!%9/PLF4TW1B@(!nCGja7fUBggh&9aL+\q'PRb4@.uK/-$CJ$&Er!n/Rrf=D5WuX![=gaE+>3uCJC\>c&Pk&@5g8:J %:&@]%W^tqs+-c4sGhJ.,5,^c1C9#?d8U=<7ZM@6>]ktg<OKNc_`l)lRmaM@<SF'#40dC.#n%'1F?Gi;Ct%,si3S;C2RrTUHG%R(t3jR2f@Lc&`=Ma$?H5'55@dXd0UTlK,1NAu)5iHT3]J7LA(4\bshkD@A+&r[D>9d:-i70b1,W=!aZ*gT%*1e0$s_f"HOl-_pSeFSt%DEXYL+uo1hYj7]2oRUtK!q!H(D]RYF0G$@>oOH!>4l##. %:Z-YYP&hbQtXVus?>Wm]UXP9!M:Y\5b@71/^X*()Y<c0i`fpQO:J!8u`)MapEXj%=9;-N3QOspM#O3W]8As14GGLl0eh&LO%2`6A6A)dX5G<fqGl,R2nG$\/4!1*>P's8FYgh"(q/&Z2Q/msYWUNnd[_aUZ/gr,<j)#9:-X!!*$"F[`^S;9P-E2d.4j5P?6lg^MPF@?GO<+/N#'(K<HV!neNM%o/A#0s!AK9Z%*QOG0-\H;`np#^<R %:Dac.n@F3:uW=7K*]9Yg'nl!Fs=g4'.35RpUA_>*Xf"1J=7#XB*_Vl+?/rbB;l_`B$L_7uHpA16sLTXSn(H+F?"*#e;oO!uc(brhp4YRK\]JD/_Cu8F4R<NURYmGO*"fr:o(^]4'Q]']uFLq*SP@8.,1k+@6<]UY3*iL2^cG2mlbXNr+AI`9Hdhg]!NkBcak3rA.jmY^D."%l/IVZ%&\F>a[R`ZM`as0k4N=LTCJ7Xj,Pk'[$$e@f< %:1`un@",qni,NTI6IY!Yg)5QUgOd++k)8^T2a/^JU\R%`)GVbA>$fD'PkpOANiN3T9e<P]XSIJK>)(m6n#rc>T_P5nMOVB!F"sbp,gU%HLS$bLEFA&^Wbi%8fb)^g`[!Pgd*da*n_!qD@,QNTl(-:W<[qD-sSgp5Q%(Y,rECb9RUOeY-)(Sr5YX%DZ/HHt'>/L+*D$@<aoEXb^=pNnt(P_?VQEUt(,_"tMW?`Iq!74=E5DImG&j14W %:jg"FaO:DA-OYC[dd>2lU]@tC(;L^+n!*3<eCE46].T#U/LX3ial!mo7>6bUS+>S%u(r9>m`4)_OEf62U^<XCKn;P^R*ag3-mq2?kP&Qdl(NtZK@1m("_*6^:)/:\r37TW(hee0049LNolgSSaF;XmeFHDYSJi/h^!$gE^esXs;iS+!Mj#mB:DV0[5!/X[P%:>qeEHe?e=ED+sL19ZR5dM)PGICUb.L[4"OYID0"'`=*R[&eDI[2lg %:Z'K?fG#_tSI>;-2ZdQb!.f4GLe(`;9QiVi*Vla3oH8Q"!Q%:^ndKoo\dZ5t\$e;pNS>=:2o)SDLNA]Q2htU@[R_COr4MY;=*3#<)luD/ebs=m2+11me%,/kCfnVub<YNKlaB\*6FJWn&>No+!\5aim%bbAkO><(Fj?i[I`,1ttNa5cYMQjB!Dk0LnRqO=W*iW+N=JS!:]?-k$<p@CVbB4X?^JP3HGEH^B0N@Pmj^[GOA9Bc3h39?H %:+V>OhrVkBXn8p.DjgsfNom@%3fij-(l]';#NW_Dq%Al.-F9NJr"0A4Ae^pc;i,%Ml)I&i"57at2^/F?*itZ$'lb^Z2Nctqb#Qa3.dW;BJ(^[,7ap%FBonV(a#=u-`B^2o!lqeo=e%9/*m#P=NV#<QedTB4%=d\<s1GIa/IA1k/4"m-eYbp`q9e0KG%^W3bji>fko^#8J14CbA>6A:</0E1K<@Y=93mqHl3Vr7tlX`?@p,!bO3G[Tj %:?0g@]m)s?!GUlrgKWPC!=\hgh$D!`tYRn,R)Q/0$RGhjrP1:5OdW\r;YZ`qV%2.Wp.(kdX-H-<DTb\!c%#6qb*sOPSYT1OH@_L/M,,l!P>FI[=?2R+I);=@($R>L6qNjm=VE[[$80PW'69U[^347!YMPVPNCC\&6-(\5_UZ4F^ZMYYJ"<ue1W7Cs<*V[HJ2i0Ej.sK#*)^F:EL@WcUX>5R>F4EI.c@['uY]+9,D+[:GL4hNBA,3Qc %:agTP\9iMrGV+o)eGQ8qQ94BF@b4eL53p=f8*,6&u;4A_c4OIT"nF_JjE.2<7/rU%Z*MNMG>bP[2L3K43&],^d4Q;m&@@<K:N[;@/Dj?"QR0cc95faR%`i^Q0J%(VMrK\'#hMMbp/=UC/`#FLB#`$c]>Nu2(h757Z@U!!P`C>Q$K3]r2g<qX6r9>;[:;53t>5=%CfOJWWL_KC."Nfm<k3K-h@3XY<C#i@aOA&AKaj?Yi?WO];A:+tL %:h-l+=L9h^NKjQl8NfTGIlh^*)-&7!t.MjE6Ad"5obsWhid]G/gZ3^rrb0-DiR'60`4`=kG%Yd>DmU.q6@Pj,2L0cDD:3GmGnGEUB&Xk,bID[k&KM*Q:*1BjHE(Fh66PaV:>M0N(%d?\IdAEkADo4P'6Qc*iV1PZ')Csci2-r:uKp8uEE<sW!00hN$J414.@,5k3b"D/S[^*t./#lX-``*<-papZOFi7_r!9,HW<VWp];K=s^F\_2# %:/?[9GH@&%2dPH".?!k_,9sg<m`.CMK!0T.3Y&dYlp"L!X'1`EFY2j&,#4IEH4^>\A)7sW5*kE&3EOO!lK`7MlrW@:k4>FYlF,3)-[E+1tLJ-teW]1^YddUdXJiV;k7CIO!e!6,&A/lJj;ZJFKWs&,:\tc[='n&#<#u*L>9N_\GOT@E*IB#+am%%er5@jZ-.#Le#>SMr+P[UZc,I_6j<FUu-C"4W@<TAiU(f4q`Ug6?XKV[1"j$IAs %:9,N"h9>C_0jml9<3?BkmWA_;cR@A/$3#!s0,P-[Q^r.`IiT,Z/[<[NdN#EAp.V;"4UTmGV_m!tj)OBkF/KFk7^qQ(o3%a)_(XL"-Zpts']NFR>ERFEu'O4$>bos!a*.\d,]IM\OJ+(sGkG(Vnbb7p<=.j`H8e!3=QD3#@&Z3\_?m?F,!HY6iJVif8FWT]m>j(4`*cbsp"=MCN,-01BBNHT."b(B37*OTjek0Jab;Jq+P]0^JhY2*M %:gg^5`bOt)/V?>dDJ\qE_auD/JJ`7E;Y-fl`Y@g[)OmjS(6=!$t`j&*K7)Bb;7>PL8pU8^\-gGJR)Q9_)EXeeM<!Pd+^FUm</mZbF0F(9HKdt@L<>4]>KM-aV6/-/C``,]drl,>D$Ch[K6ElI55iHK`\nM]p?N*(),!8j3R<*$LLE^/6Q'GUj:WCB#TWZK^FG3c-c2@Q=4#0[+OZlbf>jetP1GH^[+8Vhf14qlP%K/#'\2494['MZE %:W1sfT,;\O!To2<($)>B<XNF)6*VE+PSap9O0l>#h7a1>tikj(-cJ`[)<ZCeo7lV!qi6m?I;rtm9$fkd@f$`FXP:LbUnbh(6%TOK$%GR^&7NcqkMU/"!fq`@*)96X((@HdM!goL@E9p[I@/=pn%@8jn>4#Eg`?X,`PJ3_sGfp)/ST$:'"&-6%KL/]7"$\hL>9,tF#u#5d-V#3se6(qL=t'c=2aM,C5L7+Wd:DmF398(&pOAT->5Qb? %:AVbaBFVX;Z8#p$8qOkb!BJ'0u7(U#f@'e-NGDSZC3o"#7)oYA*E+q;%Xot)'$/Z/6nJpgtj^L=pSbRM(WB5%Z#'K#]#aekN8&u,7IHg"<acG?b/.(?]eC;;S&'/Ki9$r;uUH],9^r?$&X_Snkki+U_kpXGlA?/EJ8Y`Fs@;8G%J(dfRG%(4Z8;@Lo'b45E%dt"M0G)e*O/8#6XB[EG#UgiKCq*LMXqNnZ(kO5BT/Pcc#\+"s,%TkV %:k^u/Qfg')10.s;9@>(:ILN+iV,FR-10S.u\:fg$![W9L&Be[L27U;Lt3^e_q^gCLR<FHjK_b.d:BA('T>A_OMeZ<#!?)O;'SFY-b"F@!SP^Xb=A+s>14RYs^,T#JY`6(fDHGa(K==;E!\iDY$[RckbfM1*7s%1'm?.YZ?BSJr`Z;hqg*6N@i1G(UTJbgX@@tPIW6P"aTVZ04.m*eP`D6BuK0EZj:eg_4!CuJ29S6(N1)3?jW)b1R4 %:/`AQ\^<p@[pbl/=MS-jO&j=p5PtMb9?ujJb(;dZ2_!qE>;:g@Lh#Oc2hEMB80=hKiM2O_Sjt9_,q'P@>12sOY.-bOt2eZr2IF^6B*'<u\*Kq0f>Wp2iFVri$P7'!?f.7LdBb&t;)O%eZZjXKp.kn*r@lP[dkQ"8C>(0-4oqsBAr5YZn!k*X$<@l)90)&D`ADkb*p/+o,`X&Wg+9e.&EadWQ`T[40AJfal[asP$Ikpt0e/Jfi)Gu:] %:N`ptpV(J6n)[YOQ^*?<Hit7JW(]VUd/K]QkPhch0RU)%0Y]`?=$cM-$:=%iL9PoNu+A>OMW-r(c)]h7O!1:[\UQU<:6r!k`'`-;+IMgeTfhNlQ,MtbRS-mc$"(U93H5#$12C30l!>1?/U1?-ts6b+^\'.e<47lu=oT5=RqAXP%:rRroC&5Te'VF+?P_A(5<,r6WSgK_d2`%6?-B&W7PH%P%.XF6=25mQe.ld0oPL[T/JZ`tU.=.U< %:>48r^)6b,JF?h+a4]fW&EEP+1iUVL-e^"kIM1AK]P;aKPf4t,>MTul,`IpV!WKM45@EN%'gf#XjC'd[;jFR\\V0WUIVg?m:1orXPFcE:8%MdCp-AuhfCbS;@qI%\k)P%)Ej9KR?C.jkAC%!`F+R!YFVWC'E3.u/:9#<Nce[#Vs%UHSYD0\K_dY?tiTc[o1R@-?,d36r+X[k9r@Oj.C,?:5tU5N&W!&+B$,B@4)BuiB[S=0qh<a/7b %:Y[$P,[=]ae4I$.*i(fYKM&K;<i11#a"rRn&)ap9h@<4'#R,LlApY-0JfHF#5T*H2>^JPX37b._VrBOXA]#)-qL1He*3)o,?[[YW'q(foBjpcaKPrGNT-Q"h:5OqDl`Qk^TjJIc+FC;3YDo'S(9b=H98E(/fP;U^lUa3T?i*EY?$og;roZu(rNOk]OZ%R,8*$11gDiqc#:[-/.-B'/Zp"clZr]FT9X6K,e:;qf#>25stQ']5o)qJ]= %:E&AWom>R5F%`PD*E2%?$9u8u_MOieAh9*N-g(U'/r,??Qd'ol4'X(?N[-osDUbJOFgq9PTI'gL>BHkp?E#2F8.%_'1G#C=$l7*cGCaqfeani8/>t)X)WUU)_K<SEJTJ#O,O?DiLI0+:nl0rS*pWSO-BIsqTC36+G<o5UKkea;ES-"])a'5*SLpPj7[NtKPX5\Cd3u"cQfh0X"j/jn=Rq^_m(U-/30YJ85T`6a,r.1h0LkLt9l;HjB %:Wd*qQLW5&$!?H*<K-kjd%<g%6#sqWYUkM/toNJI!m/TCla!T/E/%<Df5YAmQ*/Yp4dddiNMj:H8*.'R>a1(0h8p1D<Q42V"*7C\62GS]PS\,B@8K[&i-rH^X23]fEd-ms^0G![/!XC\7.kulR.ffi:`mS2/_W:gTHDn;!j*3\g"$dg*4@20WFDV"*6[oP`%6\&OJ"C)Rep-Km=5V(&5bL@UobjD$M?fOB#a+U%if1JmIAaoNKuge( %:XU&j1jY&Z3&,N(DKoJFg9#Df/7@+(oaZ4..60ge%.gb5e*\1Z>_2G_S'gthU7c6&L:*+)=$IkV8033<JF,67o9+0ClJeTIsk\j:#M+NjH"T=+Q%i`:pre:ond=_B-bQ!Ef]Qld,#K!oA`LOi6"R;_qCS.pe4i?AMUigo!fi3q#epaaE<HMWECJ3W,VE'mWW=sR-$uu1"i2n23?mgj22]hEFgf.]qBC5&m+1R+9,&K;McSmCfFG#+1 %:Ltn!@J]CmWJDWf=Rk\ko^iDB^/Pa,F%Nf/]`cA"?hpBY&T!)-22]3rG#<^MYXF]C46/UYtY^K(_nltB5&rgMsXNNIb4g+U32=8Pq9-eDE%R4;!4MrA0qQTm2LkAedrRbUd%Q4>'Fm3q5X6@@J8962rOURK_&-WEK+3T(b[n7K][8JV.2U,Ykd9&L?YX/fKJe#?TZ/Q=V#f5qo+7&]U:;qb'&Xhc%&7Rj36datoF?"9%2uum+@dMSu %:B>U=,m2IUe0H;X>Zml^&)=$4,(r3pA>K]tMBO%M=TRZCZk[-M<`AQQ48(8h7*'s`OlN"[elo"EY0%L&rECpJqVEs7\^nLXV#27$$:(4hC9JjQ9)g'.M]J],:\9ET2(dHTI,>g$#E<sNa9/neSC,JB+2XM)C^ZSQ*0JEQJ?j\[+--uk3VQ6e'cStf0ioGl1CZ+Of*?=[FXPB&BS0]h['P3jf!rscnEc'o9^D<cOZI6OV)2>Do^M/;L %:r"qKU1tImbQ2:%Od-i@hpSP47>M6eTVGI)e\/%_iW#H3a.jktT7Q+)`J'2FSe30(Me+\"]QhhCt5n^(/lqsP;3Es%.;g.8\*lO,:W%.'_GjA<Tg]%&?kQ"6r--h@iZWFlJM3F2/hJ.-Te#CP*kM3(&2h&YL;Ls/?"(#]D*-CsID:H@h'!^/,-1i9O+1<m*nN5Le.a(%mn)LP!&%,AK]hq5KiEDTH%K5LL0(g/,s,Eg`8-]F$F"h:0 %:BnaY"bgI%<qMbiB+KXg"QeYW\-)iO.YW@_4HDSNu:?U</f<K;<)%[,H_hiJ]M[g/aWj/3QCP[NT[L.fXFJh(C16AfP8/OdBBjiW,^lCV-j[q$;GjC>Q<FC%^^m;5D4+Q&_9#(Y3E],cqI`+*caHaeFgAuE5WKQ`Nh)(r?mbf3-Ze7hP]&u'He`uW`^27U4T3^?l"ipei%,'>kJVfZ(4t1Uk"qCn.="]F:TZsZp[n^F3F)XuKYPs;. %:+>ch:&Mh77N7="?X7;mVEMTW.*?LeGOQ'+S`ri'%l=39ei!KK#\UYMM:2$.QE3bc^*#%OF>;`*oHD<sZF,g$*chU9rPo1:ml?>u3f#73!\VJX!/RX*[M[URKRr7=eEq9bQ>V\qhHd70hk2N;(%eN)__a8jZG!9D@a'46bMk3OAj36MJbb8`[6ALGPl.,td&cRO`[W5'5Hp>8u]rT"HVS@&e:b`$._^B68^bLV1Pc'DsN0*t,MYi[M %:fHdN7+l&G]$#im`P<'5Y'$g-k+S!I9$r]2e!-mUUpRLOeqPe01'+Q&Ccp53*g^a$roCD&F0h_9UID=kSg=*o\kmIC"4nb_B!=`p`'*\buE/[`7^#?4F)+pRF*9n#dl3D2JR3720]^cq@V=3d[K@HD@+S6bH-*$#a^&]-[QG4<A6m/>+8kHVA3e4Bt;LQf?GBYnNYBB/hf>TK?@Nb$:!jq2mmE0@nS/R/`fK2q;OCnh3cWE2n'7lsc %:n9^Cfb9)Z^`LWite<^DF!&#su(52MGgkA-UPj60]V).;7OCZm4pl1GU2sQkp>D+Md2B"6?EMkkXXfMV=Y"f_96)$s67De@p-"/I3=;)'$ng&*Q'#)+76&O$]4g=c$,7psE`N]dj_&W:_W90amCS3\p6W@)=%:NaeA3/87"0cgPkdZlH38-D3DiKRTKZ7^9c"nlI*-0*,r6<Y$8M5<I'k89`;K#&5>+W`<R=8Cg?mSK9^jE<-RUGKR %:*ci`q'-QrV43s]X_P(8'MLg]K[8R62_Urt2;R(+O[\L,(iW.$OTNTeR'.a.bCm[S2oZ^G-fo:puP@L*O"WI:q*&2anSR8XqTCHB:J=Q^h!];KP5?0<9B/5^p?NqeG6_[JHnWOq5A.76';,+#3111`_p+MQt4KP)'0Z#h)*6&S3GQ:$M.ZAH,3D1@shKl<Hjt\&pm7a1u'&K@]>*=Er"e,^7jlOfE!0U9'2h,3;?04s]gN,!fK9=DZ %:2OV^ldG^9U\M+Qkr(Hn8M(@3eX\`d9I&C\r+EI$<j-5b"Co!?:Ugbn6"`?i0,^eB)JND8p5_H)@[IaQM,^\[)[u([ZU+4MLF%_StlHCF,c_*6sTGs0D6sfjS3jQFWKC:FbPa1!7M:j]27KD&ABY9UQ?p,2S+XCC<:%tD6J#DrJDk3W=NrsMl^W'JJ%1t4V7"1Nm<`JK%LQ7t5$NM)H%s.h3Xj"m*U'"MZ'mlL+'e[g?kZ?T0!Sd9W %:^fqc1S"M`OGNG/r![MFK<gI^%O(o3cJQ6&5JESX#r?kNB'G_"9Dp*`qS\`-F4GlMOK5-?YHRh+#JX@YaYbb<#Q,5mq9DC5>#+>elI;`ok<n;i+?!7Pb,)9+YjEZ9bp2qj.M6ll?%LaSa^,uDYW7L19S`1P?,JF"d!89;&+iWh)PKF/d!"G:P7D:$r(6/t&X6(bUIuH_sjAZ-dK1ss*=c(4*RWP-Di%\8l&O>Bp:MUsfWTGNI=VT/$ %:^>IE3B5#$AG9@f`&K'R'50]chAb%gi^5r>qdK+!YK9Yt^73Yi^RgY<ac9S_/X27tQ5/jp3XQARbiDSI.Z8iF<]N$pJ<B;gMRuJ=qi7?SfZG2Io.7HI+U,>.h!e-AR6&'#+Ic)rf<>kXAmXM2r6kKrl<kUj_m+-::WJ2aSAfF&OL>j>G$Y:VF^-,I],lGZnY]>J3"TY[QiC9V@0gBY0hKii>/CE<WRE0B^3'12&JGlKZg"ajaT8su* %:qT=jrDd:C-TF*J3``V3j!5K1>Kbnrb)q4Z#oM6QKk&@m/AVSj4VHmpW@3#=dVfX&!qC2m5!SDKeW.T)C6SC@>.N>mel;Roa7RDk93\5M+lTfMrL-\YT0J*BL66^Z/P`\<h6d_K=$%%[^S&_eurK5YITg,R9XZaF2i.g5[Q'LZ'N>dRe"tlLC!L'<)g`.gpk8/!gJ,m6IQiANK,G7#L0*I:H%b1tmOoVPF)/QSf1epWPQdBkN[6?s9 %:<&.u#2T2<>C3d,t.$bXPA1-ir$s[sF:7c)H-&d2e.e;#i/K"ook_7JA+<+[b-2iG)l=6jS-V*4!,2oNTkMWP12$qSBag7B\-=\no[XO/:F`3ucp$lXOG#("-4?u#Wr'gkT4YIdi%R&Jr`m2q&l.f]:'?SBk%rj7()9*t.TmmOt70X=[>"`G(+)H!0F(js-BUkIk3bn^COmqp<KlQ<sW=1To81,jTJP$ROraB@6>8`7t)HW3Z[b36g %:A;4)]H@"St7DI8Z*0pQ?lmCiUcN=0h.1'W3g\N,d"%ar8(/l6@X__JMF6H@X(/X%T>5eR>kmKA!`gK!]69ebS;6I+Q:+@5/@DZ6:6e>Pu=>6554m+$E<)*Qs'#qV?ZD1TF@.6I_0/cYjZ9Qh<!N?GtY^#JN6b@m8H@'9-B4[05QamfaR7#RR.S(G+^bqEhJ#f:CXi=Rbd^TV5j]$dHF\^J!5Z\-T5fdUY:9ZQ&CC$8M?"+9S6=jQ< %:Lg<VakTjcjUE94A*2n'eOtb0ogss;=(kKt7[OGJnLN'%rX_a$eNNsBU`XFgq3!N8\Q2Kr"#:YJm8T<)4W,M>=X1*9eU^6pHMX.t&c5^'mC`n+>WIfff(s&Q%J[6eL!2&[M_K:[9bu=!<h%W@B^rhr7X+FH#rig*u$R"Ta!B;PpQd)uYG$u\PWr9A<_!"l1GWR6&%BlPMk3c*hrOG)uf*Eun=mQ(<E&)#U=)pk)`pjK$$sZgQ<!sIo %:U/P<^%YX)#V4WFa")uaWl%d=Ll-kU]eriB=Dj:<\NjMV&WZTdjjHG.QXDiFhh&$a+UaU'D?]]q6,7s$#5Urh#6hR5.@C:Zq$ATa/8M-3\-b'Nu<k>)VB-iKQmWhR8c0>Ap!)a[q`Dmq?[`Wh>>.OQN<'-:C0![I'D+[jGHrPHl^.SSX@KZZVk;3IBWLFVP7_fP^3E>i?^rmdC;="P!BJW-q(Hk0,U;l&\8j40g;e*l]<YF$57D%gO %:@9cdYIc2]t;(<j"RQHf,4*3i[]7BB8@*[]i7hqu3Y7_-8WK87Mh#7Rq_nI8\R0TJ#:2bN$MQ8V]jU@^8-`_G#=NI#l.TSkq3:*:W[=9ncD8W(MZ#9S6!anaUb&`R=Q3Q'gcoXV>A:!9Yj:kdfii8OHGkJKW7uLlaRb0kA&iQ>Q8P%8Q37OBTlm]*&P;b:6DIB:Ur>JQ-nepDgi/g.A'fRjI*1@sYcai%smel&^!o/;E-%dQnBGh0@ %:MHDlu(I(dkVU,io7H<Uc,7Cp;O%7Y[LWVk&hhbX]J>cNhWWh[0^i)e/%((7V'r\T)ZI8('=iI)GJWP*&*3'8/%Zgs^YR!2Dhe"b4NaS]KK]ND#@g&N++V:m?&6fIHk+kh1%i8&^a?raV>oNWnER$`4Q%TYu$'4,c&Ic$'!7D3c[`3d@8rVu$C*R0H&.)Facq+b1X==OO\OL08GtA;7KlCUROYE6MbR_c#A2>2K2o)hOp;W[%HoY#F %:5hGBu@HFYnHSRP;dEC"R"U[lNQ9h?-6eoHPY*[+YZ]Q2Z`Z)rS>9)-Si78GEV%7XF&fOb"(D&S;i6]a8.B`5s]pnIuZtf6>Td/"P$k@1"!f%,(V\8FK;h6R(4_mNDG=Qj,f`>TMr/uan^'eNDj]Qk5MCOFM!>-L?QMsY3\C^\]SHPF&LdT*#)6eTRCiWEn.#JpHI<e*9,5WeQa3Ah.K6c6k++UgULWYsDH^d)I+FMU7m?N@BhIWKV %:nZhpcb5RX,Q4cYU6b0ERmR8Yj8!"o\+pI8.&X_J\$dGC!rRXcCE7?jH^Z%6SFsck).0+TLkh/I3SL0dCn.t`c/6EDD#bl!B_Hk,.]p/a=.5X?ON7X,(.uT\%aEiPuL%S[":fhj$[bJ>,TB$+fd#07]kPubVB+!ep;-.!1<bOM:-!N.74_HQP82+fHc9a4_;:k18NhDVXgtQTt5imZ6AP15dF`gmhE\Sc/?^dO&I^6!7%+I.(XblrS %:0W-pA8uj8)HtNgkV_k*%]!eM;M<t;i?UJ+#8B<:W:H.BQ7Q\DrkRKJ*oECX'S50/e01p$b%'dj`Z?9#r,H_aZqKNu$i()N2_CWYLII=tV8#P0HiQ;T)M7su^^i^Aq_C.1(Zcd)(iKh^9f"kB?oVhmB3qB:+'0HAfb?l`/]Zb.(Xrkb=nSqium?.<7`pcV^D>7kYGBXgnbAV#a<]fX]_6jt-Uk@$FR6k`:Jh7g9N2qD[eSpKiNM0Le %:+<a\B3\Ir8o*s--"f6dk`L`^`lJQEFOMY:>k+dU,(<g4UOl2)+l?>!ph2RlWeY?]Y(T_W(l4ZT1c5dYGNMOf\9Mjnc%Gb\<_/TL0mCcMr<F"eBN+I9E#Kep4-.Dg4!WCCCF+RqHL7QeA-84"ln[pctBX/&EGoU?O-uN)k+E9M_ZA`eL3=kTmjq-sAj/C)D0SUh)4@M8O#T]70)HJX&gXsYpmDhQuK;7.Oo/P&\NjhD;%j:^1B%Ucs %:q7*7t=%!uTpVAn^N>rQRDR)3]XIR,I0kk<LSW<LeD/_m)Z3VhCL@&<%/&:P&]h<YVB4rEu(pCRQF)2JSLlEG%N_u7&iamn^WH#:\.6O?lA#%&b8Q!2M"ZJKLYS07kVVOVPItMMZM.=f:LFS[t1Jl*Z-dIgZ+^>,NcSNRh/HtP[.9sUM>R!<aDmkgJ)lW91\kM0#nk#Y"8qs,Yq$;pE%snP<KMeTr&*!p#bChKU*PSFW2ACLn)]<u: %:.Nu\=RWIX/0eqS7hTeH)i*<f-C>iVtC-I"uo[DJH#&jU2!H&.\0a5;HF$>b_5]'\ANuQ>M\>#AIk^YF-A*eU&Q]?F,)bNFT79iOT_>f%`i%b?^d-4$*]c59W`KESU<85l[Om>-7l!O8_Yj,fT0Xj"#.'!_IaHeb7AaRh@ODo:)8?l]_V-ZdJ_uo?!HCjnaBhQa33n*%?3gc)<\N=R@Dr(bTF:Y25N)o@'/@$4$?V_R*[p9pE!2d/* %:P+;T>n)3E@pS"h!WJf*_3'1@:7ZrKRCGoLo9]>7BGN3DM]SKd6'Jln6I1ji))2:Xhj-t:99ScV/$WNHFN'Q+L4A;Bk@1?:S`--I96T^[FbJ\s__ks&G1bS62Y@_Hc^rB(MO,kB=Q(scBho#t[INmSX(jB#'.u1:.P!ds=f`;QmSMhJ);iR'K1Q5S4T1G:Lg<+u*&9hb9%b1uXRDD)jlqqfE=uhuOQ[8;Y2cdFN@*d!k=e5PIbQm3I %:$?.^Fq/K9lcpEN"q<#b=#W#)cKMnVMO4Y<HTq^H;oPW)*24L^55E<h()T%%&7(3GEE!7^aR"^I!j7jY%PtTq,8N:Hu!uI1rHDQ9,Y-XD%7_ft*%Tj4[^"`MQ>jd$53>BIZY)X;^]?7I,-:r<0kmsdJ%OZ/%Q9tU5?N0<PNSs;9HJuuX],HGK;,n4dECA!B#8eK67pYSY)Z;=_Y">]T<(C63jd)2scQG9QLUu>QV%/T?/Y5kRMmNJ) %:_s.A[`*472L:S-A\nd*^4Q%O825s7D3U/Xge2eT"nW\gRdOp#BdQZr"i1rpjiTI0*;;>&1]SF(QNCnV1L1dINBiF<tMRDR:k5i(o.]k\;O1M(EX"nWITs!cAj7VXS=ZN5ZcV[a`,-N<J;Q1KepC0dJ$C=?4%5?2*?.35rUt5T!j!^5%fL:ceqU0s=Y.Uep"SEK5;E>B.PIB'$nrd=\-_M(AP"?iJh-%!)!:$T$3&j>W@1;@Q;5?b> %:LFUY^-&IOG9o&VWpn(jOS3)!$lc3Cq9_"a7!'j&h^Mo2@T;rTF"0b=be<BkHIV08i;d:\Es'<5@(cQYm\GoHSS4ARa'WA(5APb$D6>ulm)?E\^[[IRZoaKZl`IZ+uns8rYs+8I\\"#TA!k<2`!hb2V;M%oR>r]=toS-t]DD3\UkiBVeoh&K7>O[Qk]gC`ke$S5rDQS'skgD&Tr8PSD_'mGI_WLWU"*Jb&Vk'N>rA_D+[qJC,[?`3q %:5!GI$Qkm2uCj4f61[:C62KME-7uK90S@X-*-muuX5]!$GU"J;SL[?OFI3NI!ronY0%KR;O<Hi*+@%3h(+V*UQA]u<WfZ6-2Q:I&+q^A?r!M$1=In0.kp-$^<G^p%q9>C^[@+K'VT\.`RAY5T.`2O.cnDnE/'#mSmH^+9ok)0`k00U3H4.?jbKJTQG<;g*iCiZ=bNk``_P1kU]AoZfr<XqO0rRY>JRPL^d7/1\)lkje'I&!,K$%5u& %:&&9W5#tpM4i-!N:i,Ll!Cln)DY_LQ,BRcZ[fGWQ@'8FO&W?EmX8H;OlX`cjh)+0`f_@u5_"'4.rQ],`Nac[<&4R#$XU5'-CfDlEU0O9s!+%Tq$SZPk;3<o>N,.2,Z<s9=\>\s5LR,u:1>jHCrB"42=,0:.T]TG)Hp/P:4a'k#1_\5#L,*/5:XY=-b^&rg0>R?mm+6R10,W8l:RqZgT'4([EU^:,Z+l3@+5PGGWn'WPah2Rna[+<m- %:f)@RM(X9qA7qe,nc_L+=(-^d[6$7-E#KNu%qk08*(1or9eiNAPa<`UG'."aK//K1s$%M=o'6d82.A?7'qi.T-<cTO^Sib'FVH#a5*T[Ec2G0=ma/:U_h?!WYaX`M`lk_r&GBu&Y?EO,3jH@e9bBo)+C$?TBnd`t4%bGn^+M@G>D'5prDYgl>qfhQTH5Ep@.^*bN^^Ff;L#8W$K/NsB8H92iQLZB=D=EIT2isBg-b8Dneq4[Z6d"/$ %:Z>RJ?6eh@s@htKWe2^>e2Ld,^YW^$<&HHhKB[o)f`g[t"1MpfeH"h`mOsHKtNe85+"ZmCb6?GlfMdg\<AifR*=X>!3Gai4%L00CQ;CCc^>/NPLAf"D12cHLSh>e/?p#mab":EtNECNSF`iM+*EYTBhqOU7sh(0Vl/:Lt:Q5I[1^uNXmKJte%2l0%iYYL?<N^npjSi%d2`C6U:054`3WOq2+HgVd#*d>sda5$6\JWY_iF%BYrQ@tr3 %:n&,k1q992#\J<_k20HHAnAiQD:6n%^lN3VZ2tO7uRKCanGF8&XfU9fV#7*:HIc:Jn`#Bu]F[b9j<h!dYi0\C//#;!rKpr-G^lmS`ansOp[?53#b'.LG%*dFC!5F>rj9c-C`2dJk\!@d^pB,hS1qh8:mt/Oj>jB-]M]@h&!qj*r5'[EOTku^oY[WiV63AjY6ej8[-+J9:XsF^@4oZ=2S3W3U*qSpoApB!+N4of:aQU"1K6K+@Oq8Y) %:9Z@D5'ckPFn`6FUl!oJ.a4$inCSe2EY!nYqYaq6LMJ[.fVmtHmKl(.0?nEL@h3<Td.$NuTH;Kj6&SH/;[fS2U'Yh\Vp\_mLgj-gkNB]UK<hi/qK\,gk4H:M"'N@qN:q3mI,eulrA)3CP%cTllkQGEPSF?N.>qAJTNfi%(JKssA[tn7D,eP_S]M1mHR$s:B&KX21+uQOs@kS62)=r@d6)pFmF_W`Lf\q%4K,fY,RU=,9#G-cV]JP)3 %:nLd^2JTUe:H>.j?<lV\mj0%$l*(t$,D)I?Ij8c!Acs^F!E`[pN%1R]4:s7VQe.=@":laRr4mWa.``:k%cMH>U\n6<0BPD5BV6+@34T#KS@m7PrY3c)h_mZu6!H^^6jCs.%)fC?6YB_"l&]jp94$d65/9)"(9WI3VD!)BJ0Xe)QLMQ15R)@!r7]33+jUVY-JML$e@V[L=HLJQ%bi1!2nZ1(Cp+H9\(^Ku]oId9XD3@e*QMsl[Ei6nL %:S.!YngS$^iZ7[K/?qE>?&$RrRQhYM+iR'^Wqf.c*LbNQPYZc;P:!G>H=^IOs>AoQH8GouC5&7%okf,\/dt3r+i<4H?pcIAT)m>,=(AqU009[s$I7!Z:>u"Q=!%LcZN%o]:=h.0>cN?-r]-OuMjkJfL*PnMBa,QoP@E`]rB>!(d5j3"*_17j+O4U?!2[5(K!8>;uNZ67UFpqM`4Eq4aBb%IoRF#f8DL7#%O)Wr[icNd`&4:m9=N>-2 %:!7]@#a37RV^#kF`I4EPR>K+cOE9##ni$shVims9P4uW1DM;4qU\:A1K#*KDh>`PE(IOaidbnP_G:P,)0%#=gH;<Te@.6()jH6,OO@)s5%P3#lqXQ,40&.+#l_%W'R80?o,gId2#G>R0$c"mC(480,Q:Kl,Ih:%--a`=g0Xel@VD';/LB5#/$dF.dkrF"rijgUn>d[tT8hV"='SHR7.IHmU7qQHeFE[E#TE4jN5nf:9$ce+VP4Q85U %:YQpi8Oh*R#CXVWn^d`7*qJkQj95l/u'&O-*E@AY<Mce+J$SK]rrWMj:.*7?U&n":=cj0J-(?4J$]P>/&22ZN=ac@*JB3+>XHS^8i71'#0+mHiL<+L*mrDLF"D!#rokI%"-$:Gg2'naQ-hX1S\A5Fg*a_U%%LY8j.kSP?G3men\\$cPu<Lm7hFW_XIJtrX=GoL/!I8iD7r)n.O>LQuEn.M;no_:1a]QR=dm_T,9?VJ#5%tdSR4?h?" %:RTY$[Y)/'-[MQVnM#aT1%&Leg:JP:0$e2V`V.0@QjAdHglClJ-H]#-_[c'2+8PoFYU;B:Urd:#p9*dVKaf9?F[aL81Q=OQ9=PQdV<!!(m1K_/t@;D#D,tGQeh6@?[L\nX'Ca-A0DNf3(oFLmI<e0hCAa$^/['Fa;hMeG$kG*gq,!r_5LD2'/a5K,86dXPiK19[G@BaG\B-<a8NF@]#HZ*nneJ+R>'HQ5`D_dN`NgeR$d>LK0LWqEa %:Koau/-krjCTRV#YXg,4hkUF/!LKbq!\227-lUTDE7E:3_iCl/Q;3<cA&9G5:E9iM6#=S9%;BS]p6d?7Z+aPPus&]S;I;sR@#IFN0[,M:5bE9^T@)_(YR;nb+UTj.qqudYe6IGmV<g&l`LKT!s>9:0X%K1aaUEp?R9L:<1H(:VeSOo\lNRU(6m]_>CZ5dQI6)'L7niD]NZT`YDN(;.;@"`Y:2iDaP$`0i3W;or@n=<OI`XP`*A-?Ig %:47_sPA,?b@?\EY+INsJdJb'7Db7Nn=Z^#]d<'TSU+X5Vk*q4&9!#GX[PB:1Z<gmt-9?J-m(LftW4.2VUf[dhJ!1"mfPB273Ea_b:H+:8X7Ao((Cd]%(P@i5#Bc:F9`1%<"Ne[Wo\9[HLl5rjk_Lf*IK[LObrGBG#c4-g%c=Y#^"6D'rJ>T&Dju;ZbS9Ps>`1o'p2NK@<s$4$M]Sfrp-g\0*;@aKFXFQ92"p#E[@'C&=0h'JK$%XUi %:R8[5qh?Zd:&=RcngTEOKB9MJ4B1WcWM/FXd^@>D`Pl_ASo7rn-)o9`M,U*UF`bsXr6us?*Mpu;s%/Sh,g-?.q.%KXc,DA*C!K9UEVCrpWS\sa/m-h3E?5S*Cn8X\jMBNX;e=NKg**"Le[nENMN=;%^<i](^aj+J*#*:N$'!EO$Ym2=NG.$BF?qkX8_"DWS&G[@=C9/31@-@:B9Y0XLXPcqi%Z]L,CcW-RK)RN7Y,mA^'_rWlQf7.Y %:*U1gP_o]P5YKV@`qsY$V&&u"09n64al_<BBBmX"p!*+87,EKnG)g-:Ce+N55i/?@c.4)1s3a&(I]Q=l''S.F5T43QnDGG&SMjfXrPcf-dX;7n7,`.`8SDrn1#@r\9R9=@U'#5c^:HK]f'[[RZ&'CjXcoE9[N@'Tth15S0n-j7hY8@<8i)#r!2lO8kU[+0heY*b3S*^>"#I0i9"I-Np6cO(q\&#aL4l[\Fiq[:U0BqR9q#tfJHgC-q %:ZY9+n"cC1c0P]Q+TN3rjF.DO-g'GJ3p9*7hBMBXnH7+5BcmW;`fX@s1+sC1t@;9$Rj(9kZ(;)fK[?)i`5^n]e0L0`VnBr*?I`6%*N-u`i?=cV;2o#N7]DHlOOPg\#%[hHs_)LDDU5RR6Q8#ITcQNZH#@-%\E,\H'#QP4A?F+:-&0Wc(++X71C,NY*p?5&+EP*Gn6TI#8]Cul.FQSt@>(uu9?5QtC/]%Vr2nO*XTL*MuJ\2s8[]1A- %:0LN8j@Te43%CfN05M.BJ""Ys>o+$DDMD+>e[KT3cFY+K;j8frl@VRG#?C:n;HCp2VS-!j"M3ZV;&V4_S@4MWeqd&W&I:Oepn.#hgO[Up+)I$4+=UWPPVCjC&4!l$Y\PU"m:oM.TAfcJUDhtHgfJfT7d`Q<)5&UEh[mu99%m^+m)#DuQc*&"%$a%?;Z<EIe2k_<>6<^KF'Tsnk#W`6TKGVK<<hVlZ,=3[G63KgE*&WmNP%7kAZc*.q %:7N4+5<&AlbOc>$58Ek[3+A=TI/3^:c=q\L'?%OQ3Mg;&t1/UT(M"(F!_3GMm`Q(hrJgF\la6\8=*'P>C(NToV;\8R?MMT<6ZeiS;<&<+9&O>pt0o$!]9YqUMMXt.qLd6[eJd6gjdc8t2&_ZOag%kn*pGREOjN+</2OC/49`#>3qN/%g1[*3KJjZ.H[#H,C#B[#@bL!;$N1kS+[N<]OBlV(q@B6(t3(-e$?Dl^RL*R'd0HM=EIbl*n %:.?<6/OIG\J=$<@qXlUiag`>f"SH_&fYdQsL/3JH[10cdpCpZjr*ZM7/fG?P6g^9_$41+Il4@YP^2@,_SOZJ!gA`^=GBk&<@?cioH!!/uI[(76-]49JJ,%M1A(>90YS26D3<OgI:+md<mhp9YZeNmRaY&N#Ni]^"1j_gV00&LV>^\JmV[&%@3!B!:UBq7EuJBO4bZ2e*k,XjZ%kma?'U4jN(jRl'Z=upWB^,3D,>n.r-f-IrJ!!6gs %:PZ&5+JQmY.p=%60Ru'@DVZ]N44&?GGq.T-6L>i1oot08W&9p\D1dqJ5P"S0L$ma4W@[<ueRg^p;H#2"":g:tHSq[C]C*&26HS"+>)$*'f7tr@nU3dJRJ5/fKe;d/k"b+tA_*D+Y5'HH3W+BrQl&AD(8</nkJ[<4^KMSjVpMH2ET[gg[OrR8WO<^E]!R*MiS_#h58/Ue.Y>,qt_t"VaSi3$7b,nTYHqPTgKXFT77JrDADLJ+-?`f^M %:erC4Miu[<&kqs>d'DbPU#m&[DRcj;u5djG0p3kLA:C*r%J8tiK!e(:2RHe+8eaU!k66\%FVC<l0a/@l%oJM"ML]B8# %:s8Tk76-I;HI.h>nN;hDhAp=i&-6[Jkl>R't=2L6=-MB(D:!nN5_20aH\_'_97^db>iPU)&.Ls52a@/s>L$l`_"s@kl@)/)(=brBRaWELf,8hK]i5<u=KLcWp:Xk[lc_-pGFrjLHO<"F"0r)A]bNIMV%,mWT$^_+'/-(1hf19JifOO)Qr'h4%;bm)l0$Z>^XQGW(U%lbjTbh#9Y!Dh][%A^rArd#_?sjg8m\rX?M3=_;7@.$GeTO4E %:a;di4^imcSZrM51^r?*i0"O$>[[H"RRlR>a"7@gF`[r:_aoX`""hJFt!T`l<*.-%od,q1/P9Wi<fSFSC?$HSN683*L?0YP@"S^Umb2E@JeA7;5fC''N;3;L,g]qOAejk]2ZEW2M#EVTDeQNip5X5J=nj@7%:>P4g3F\0Q\.8SbU&tm"Xq6l;XTp*l)3rTH'p!:q7Jc*[nHNEP1'%?L_HTN4R5bgtY81Y#3Y/1=e%>RGHBMn2j>mE3 %:!,JErHFfkC]7<Z6+`p@h#dE<C<!"XCA`ut,7W&GJjXlQ_CbmrBS44-:_]B^@T)C&um\!0am*nig0#P8UD2!ZJ.U!t'6Q7)N-%r'RH3.]M@&&7fnf-'8$Gbmh+r*((G^dej$ER9-3aPE>j;l,!(]e(T_8;%i8VR:#DXSX@5eg'U:Fo\E7im3'`AFS(BG1a&7"8YV:$us&)6=s@;+7Yg%tJNa_JK`J[7.<uXr%f4Qo`F9luY&$>;QQ' %:],ad<M?gB6O:D7+,-,,\=90O`a(;[rXfO\X)M8A?WH).JEj7(V_I-R]br9Fa3;+Q9L15m09upJNYRTTog#O#-4:7Um/:Sc_E7rGO.3or:p%9SJ"nks3O)_=Z1_]]>!\VZ7lP,Q2!OuVI,']BI3/*(UO<f&kjDLnHH6>*-[$+(E[9g7F"R,8?&i(EbhG78Df^uXJU806#1!D[4!?Bts@3LUuWHPejd?^"0O!o4Ii[R)JDRa-Y)"d'' %:,WV]Gl$6V&a/D$Vfl%9q650qu;FI,W,-D=Yl^%/\KtJ4m]TbF-I'.8$D%dP"A4S4\/=@[PlJXJK(#TJKF(3`aAKodZJY3,u$T]HmK]-n*6AZ.G+*6B"_Bg`q9)ct$4@ec4'^^EQ*FTU-Co]KfHJ(>C1pA!./`b41G]n^C2m"UurB[+\\33CKiODat)Zgl//tPB"*O=$d#g4e%WgAZ#%k("8dh&,C"SH"Mp#No:KHpni=6$S#_jh=G %:-K&YLh8!L/G$>nI;#nTl!%lue_BR2:N02kgnj,J94]XfmZWf8g1CV'GlH5M9;Ll_(,8sTZVP;Yl'rh@<1-EI]AK@J(+CDQQ.L[Wa(.[edJ;nBY1,#MXJ?BZ-a)EU#%TTra_5e6Z4Z98fN_pC`4Tbs><eHMHA0U).@%X$#hb=e?O:S%p([qiQF8-eF(Mgii;>,+-!I]D-i)$MpF%%MdJFd#9GQu#al\b7n!\D"^Euj3?01<_<Lt]dY %:f5uZN]VHr5*Pm$h>kYGigIb?"9W9<Ekl<=sH-rAX$nn%Af.8rn+B++JMlhRgl`XH5*q5=qYNdS(RRQB?Q:k+C_6JGJ%PEsFKlM>+U`JCQP!>a,i+aR=_D@!^M5baO9\)XF!M-_+4lF@[d.V>X$neeFqA@VX!49?*7L#41&JCrYeZK%\X!0I\'$=l+/M)mu$hd-r^drTK-#uOW!Z_udhA]>7$*1=q\CHY*/N&igN5<m_7R^d>,9e?0 %:8DH)A1[*UMN2U?o3(#bp!a@KHI)5,>S;o7-K&+0BLFAGP;'(T>Ct#\T7(4j4[DacWarO)!WJ13O-%L'cWs#M1Z<Y6L9MWhX_%mWA]pDYNrR">*`H`G#==$f+*DFDJnn9!q0a7MH#Z9SL(lJ*FB9N?%bp70aBPqUDGC_-$r>?.h.^9in@4j?*PP#$COp)i_T\%3m`5SF%-!.>cc[`!i;3RNjZ?06QePg\m>$s2BkYaKBi8>AtL7\`0 %:o_Q?'',8Z&T7j+K>"&M\p^+:(V"e1)&ZFe(dB_79B.LGQcIlEJ;%n.)\FHhoJ)T$J]Zf5X#'(cp>S]#:Q6WZu;JPn4emr.qV!n_0*CCj"$ogD]6f<B?)qCU<Z$mJ"MagTI$>9L:6-*O_?D"G&&hMutKu?V49q`Xa7QD?Aa.U2tl_C,DYUja@5'jEZ1gr`ZIL#RV+f4[$Ulf=n5TTC&Os(@O_>1+#,,2fi!TJ(Y%#`C7>SakW@N='I %:a?`&oHXJ;,D3N6U*_:OS<`01,M<qM!bVckrTldV1AHjj]$1?jYUkgQPCnQ7[;&EWJ-4;/WqIAHh:aU+E*"Ifmm*pA^l\Iu!jW0-bkUfifnZ/tR!@/5?76q^-:56#pQ9JS9pG>A5.ncH=GYnZ!mJ$cYc5`^@D(j2^N=`"8U^J5CP6DIF>@1^#"U`s!IHLX0d!*O(pB0Z5b[@Lj]gp$(cOi6SZ:KqUUoT1PdOF5kJG^#9_S<r4cCjE- %:82K6Bm9BD.H#3=;^&=ZlBt&R*M(iAHR3ufQB6=U&ooa'd-@4bR#I04=D!oq5Q'8fmqM`iL"Vj.PaZ)B7/UC3@K(BUNM*#e4S4f_eJn>3DYjqdOkcc^Tae%o)-@qMTm6CmUii9r;".n-?`8W7kf!Tqho$YTpd5T^ml5NrEN4qS4SHtAQU;a#AR7'7\G,Q)(]ZW/J_m?^G,4ildUkn65/Vs<9)Vf:KeDb9_%a_V7SK'fb%iFelZo$-= %:RPL6UDFC4*(0%NbQpc4.Q"hGfL%1\,VV+9HOr2Ds!F.T%G.eC&Y!*^GBsc%R`P^haPZ-#6UK?&['SbOpl8er,7LRth"%CrcEA(Q`CV(=Q+&>n!,RZU%O#,]rb\HD",d't1/)90C4\"4k%]GRPG'O9a*adsM5!sS1F0<<q<ZEpWaRfedTNSC\V$D,&OME$TKBPpL:$i7@s5jM.7KJMMqF'>Z1VebQ1'"h7D;cQ)_,`Y@/J!C!p8!6N %:OF.2a-QNM%;HR4L.sn^M!1*59/85/_X2@D>/iqU8dF",N*aAK#b^f9jUdji?cARu-3+;G!!E-C8(-TY!;C7BdUnF,?5rR6:6etH3U,A%_8gAn^5<t?o3>2:0ol+Mm^u%^T$n>)0Fb92E\m8bqhud^#jLc(J4eZX@2gsTr"A5EV[knsOTrs@&%.DZ$.r`pQf^b.E&'k6c>f5YWTZSq4hVgCtX_'r$YdNh[Jq6Eb+I5!ErM]VTh7D%s %:-j?B8)B1EuC)%]rYu_=S!-c*#6Pme>/^^+kR*os(U7;6tjVcE67N(AP/p-)<H=SQLgq*/SAVV?<cu"6[iHJ'l(hF3Zg(/#97ljG-4N`js[j-le048h_4a@6QH9_Yhp$;kl"5K<%(@VuobIFogi&-)cZ)7Z#"iAt+rdahL1hFj2KP+[LN&nXR>?DC%X2%T$#):Q^df@@0a[h!N+kNIV!3[sPWi@^mQ)a+bh>od#/M<XHi^hIZB%W_r %:+g<&F_unVRe]Nm+>R)r%Ht"?)!)0AIGtsoq=Pa)LaEbrO"+UUi/d+?IJYN4KJnFhZbihILa]^sU*9t2\NgM(!UbN,u0"0aR?Mgg\?=56/+hduDEqHd?*M;>_q+P8@\KeXa%G"\"!&nf+3CX7N_Ub_"lIfc:C!+eT"ATMkd/S"LYI7:/fb'1'1_6(h3uuDcaoUuXp<NdJ!`4[ArM`&K/#q)nghm9?0Zp:(C!tp&,WruS@4g6t:W(6/ %:=CO(C"K:bU1Ot>aDAS9qGT[LsLOajaW<j!<0E>,'/R9<+MuUR$9g7PVTm7LRVp8cu9XlcmbWpc4mc1S=\4#pB>7%[]h,6?9ZT,pIdhI6uKVpkGKWWNtPTK>PCOn>=O>r!W!TYg=)5-(a/!l,9[YQW/%*JN$V(q,?j/+S)Z,B*d*<1k=-bLC$&lr@];"OED"#_8&LP(@JI:h=U::XR/AoZ3LW-@XaSC?(]&B=5?fN,@d/rkMh\TaA% %:Vqt=$=!(.;mLU.^).8:s^ii0K.i\q>5(@];"*ep[p6t_3!(aN)%qf?+<;:!3.;nid_t!Et&$XDnAFe+pHUDGH!>)+ipS]a4#;JeKN%>4a)G8*A=d.mS]uVfi"O\t*]p,\uBqYuqHKF6j7)XCg3YR,W-WX<?JTR1m*lYf2mG,L7/``iC0a\:dH,0$Ke`U>Km"VIcn'WR&"(lMR2Ap&Z14dHFQjX9a"'$/s?onS27fDgBL,9Fn3l=79 %:FK,$h![\P)h@/u[3cTlcIN#-hHCG(8ml\om`S>95oUr4[fCIT>nGqQ+8h]0K-KlOAGll7#&(K:n+"k*a``tnn'Ft0l!C00nJc9\Z9Q"j$*g7A6)]9IMiW+9DCLHf7fA;oQ\$]fASSbjlBm7.YjMe457(JSqj[oM%869*^CPsH'M7NgY!9\l!Q-0=DClnikif[-%i_)I,W\QT01XC.%bcf-$a_R's>&3STp)*k9bO+_@2rqPf7uG;p %:MSdB)f3Z@ErRWk:J8lu=`N%m$_>iFV"kl<UI`^j!iifm^%^2a;T#?THUtJlU'pfm>!,RR[]@oVDpnD,kB01d[)V<9Z>kSRG'2FgW$-CN`67X^m)OfKU4TlEV-aC?<\+S:enq/Z>ReDV"]\6'b;$^4rCj3K9cM,'MrG0(@`!Amh_7?[2LdipZL86gJP1D_\U0rhVl%s@CCJE$<0Y*@!W=;tLr:;CpT^%mtVm9t<[7Kn^YW"i1-=Z#X %:66kq:O;64KBEHH+*OsA+$$cf>8uH\!SPIuE$<nHVA#Vj_5U$Z$klF\"N#Uqq0Uih[E,e+)8%[Nf89>*<'&8%g0ZmH3!@M=2/4=)GQ923s,]ni"!GPMWTQgNX46t;_ef6n1+ZnZ@1!-*@47s$3\q^1r\Q`Q]P5'"^-EX9d5XQX6^D0$4C[q>=,N84b%)cfUTF!`Xhf[4JH_?_dal8dC%<.6^.Zm2b7oLF;7'?>Zco%cli8/8in(0'2 %:(_.aWm_%!i1c/`DPQtH<'pP5m$"7`;*@HSMZGj/Dc>5@r>L/1N5\-.0I^KECC=RO$r+9.8s4U\I&!,@#4or+u$(2CV1ISf,.gSRfaQqN!?C4Hm*[FN#8^Y6d@oi8`Fi[\1lh7OrJSP^%o:^6#2'QaN4X]s@PL[+W#RSG$h4OFPj^>C&XI9IY)O6mFmgPC?SXAB&2@"*s=FqGa</*/"?IXVa"^!#!B<b?R?(_G2h*0VjT+hc$`2hTY %:1,nt).pEb#_o:rB6]/(BV5(jV^_0/k0os%_a4>d1eeNEe,\$rea<2l9f6ggt)ak5b%Bai0&b#pUp_iE+\;)HtP^QF\XZ#+r@mV5^V$NMAQo65is,-]d-d*!P8.<A^e=-_sOe<T!=FaAU3F!hc..$eF&#=T'('q-HJ&GLa8Y7;aTEoZYnci6;D86\W&k@:='.2La+[-=^ST%YlM/rTI"fYiS@/\&QX:79bEppf_r=7]!NC?JOf3)m[ %:&G&m,JXV_m(!.]X8:(pHaJH(N&F7u<^HW0KYm,!7Q?s#-SVoCVLo$/=4nWk>n"r^c!Z-%fQFt+VASY^,g4Q"o1m\FM$CuB,4BNNQSlG-d_$b9,YhH146H-bSl@Btl*;'U%WFc]1Zm'bG(An<N_*RI#f\2g/:kNj"*o7U3S=kDdV#3P/ls+gMlemk6JD/q0g>3sdq?\GO^\Z4cG8T\Md?mcL.q_4O&)J:^?HuI2W;:sI45(go[gSW0 %:@-=0:!j%_em7_nkS]$b1dpoJg]`X3p0E0:%@iT9[[[>^s*`R<C8JD9mlTE)h%F#T0;0K@`4ea]#_$V*L2W3!6K4VWb6c:to%4qd3H$b8\1YAgV^"'DW^"Z1b]b4UEH2.Ud,JGIbolmH9!4\/0VbiH8Jmd,RY`9D+BnA5gO:;e</jW:PNYX__8d[kI?'#U-L#S&g3(BQ6CbZ!_W%7m/3N6m+.2'/.>!oN9cp$)B_jJ[h&K9m!PqX>Y %:W^@EF8IQ^6:Mb8]-/Z[MS@*nM3k+q9%-hgup-qcMB>DJB%9"4UnO4E7/U:h(pjK5U;hj^@BlG:fXPmrO?ram0Xf_$D4;6:5N&o&i78W@13QWu/ec7pAIf,Pl(kal4+D:`rRbY:TF$O.<Nlg1&D,@h9=XK$GP:>m\#W`4pb?QX:$0XbCB(%V)'[<no:.;q]-_+5M5l/c?%q>S&3u>jarDG^OL=`@58VAUJKl['Q%"^E'Hr]"h[OM5> %:oP\Zh?p$])I3lU:"PP.&BHVkdMZbqq+%j'D^9pOs3Z$tC&7>?i]2^?W`e;mU]tsRdL%e+CiOE(o+@39)?;bW^%[kdeWrmPVq0==_^mgL<@PIQ!nT.mefIfu-;h'f@'8t]G/122bS7"\r?kT4g#[LG6A(C@NOj684cY8Y\#A5uR^D/j&*;!%o.8nLfSacJj".UDEoQ<NaE7"fA9Z@\TOluhhk*D:FWO7qu?uq')n%J<'/F+]Il\c$> %:Em*0nShk4+E/52<#m#a2H4s(&(MSKqY_3C-b"4i'[,.U'H,sY#9KYK.k6YmcFEh4P[e;C;Dj("@\"^7aLDmfrP2;IXj9b4PImY0"-V(#\e4`u@P5Fn9c)09Ql6?oj>Rc>4#rr+0d+?clP!"C2acuD@59q(i%`\S9dJXR,T%Zs2HJ2e[?-Q8cbfW9C[ID0J[($:KUO]grgBW)cZKs-:Y<PX&f$d#0b"sU3S\ZZs6@W!`%iur!*q'8m %:6X2YtkTZ$R5>:fi0rC]C+io)<]EOt6DL\/p.^37BDr',q%HrCr(Lu"4NfOG%*:Q?6N@GIi5ghpu%tc+n3"s'f+?(H_S.bsekNnp"UY".hX]B]AEcH*&<ff!aIXGEI+kICeSers?d]>Ael>Oen`^:2F6IPB5-I:BNOCYGR0!H/g6f8PHYJlD4$MV8+SUf01*1F]#Jc5tl`Y#RVl6dgSp1@%C)m;J?",+J$kcL-Q(*ZL'p"]5QpaG2S %:A2@S&DHaKCJBiF&Y1mCqjR&SpF%l"aNt1L^ei1_^^&^/0A[[e%i\c-)P/:+kc1/IQQGr<5iUF5o8&AI4&l_O\na[5^Fbanu/K"\CKNNRcfemQ33n/D%G[C9LF,;W5[lng0&>_M'&5RtU*5%oBX/1lt5oelC3;'Ik-s76HX]lKEk9+tN@Td^-,:S].egnsN:2WWk>T:20GpX!1@L')Br5W.qs)1cS-+Hk]&^'El&-uFCo(S\%r`'@X %:bH)=^HRO_nfXtY2DSdkTKEoRKE`O4E;]?#5'?T=m#0EPR_D_cqWW#;/<ql`5OT1WP`/`7K/S$JA,PC>VbH_/Qb*0s6[/B]1kh:YO9;5fS]oV6)%D^N9Xej;Uq,"koJVgd#+`1nkjE,T6C!<=^T0)9N^"-L^'O2Rg=:r37,5NkY:ueqZK9tPp'#8EDV"%!LB&[4d.3$6C#MZCi/Fj?3N^rmBVGiM:4m\%i\4G_8_::%M(7jZrIu3#H %:`q_5]bIA7kIe]@jBt8NAV/dS*&`F*.qb1*_A/^:7aetWe"BgD8;^%hD":r7=4h9S:N7!*'o<\Or[3sl5$\o/9L?;.oGIBLU6Bfa[[1aQ:%D"+*7$n2!qen4g!"ucE@&+Nm#Y,KXOSXuWL>b_RqqKfXcle6kI98u#SJ0p,oNIq(Oprl6B`p"=8rM-=X$pIq*2J?2EV=/2LdaAE*"gp1M9Le)"3:P@(E(_kDAplfc?^l3Ic-ASVB(jp %:F*ZI`J'`p!)b"Al%#hOTc^0&95%Qjnb.JIt:g;3rj2oW@0Rb_]nu8pI-6=;H$edj3*5KIC/-==U7j9.@EBtF.LmABa%3,Zd./W<""*!kb&DCOMaX<i;e<*TnkX.nj8Q-0gK)7QEE5VdN=<bFQ1h(%MT(.KA,u`*A<!HY+X['jH[#f0ZnErb`@I565L*:%<W!b]rl<tL?Nj`T2'4!(/;XDlb:#;('1p_s6:nhUeFYX0^J^tq*\mt-6 %:i0/Mdq^(F*R;rNF>kBu_a`YTE8d?s9N4ks'P/-uPGsRs9-s15B@TbuY"i/B2`[eW_b:Xe'=j"2dVV9u81EB^%(OenN;5b!$([ZV`a$(g(NP4\LgY'27[VCUmrKYWa]Ql<+^2f56eF,B&L-g&3R_FkB8FTBY^o"Wn%E523MUUb"!nH22]a`k&0F%IqJsm"(_j,nsKjkO(g1rYo5Ea6`]gNeeaMZaGnXQ7*_,N7^ou-tr(TJ&PQSBRg %:D8XMZa_MEPp5\87X/TUHXS3q_5cTf2HM`@_r5CX0M-#V0^,?A4C(J`Md'fqJ[V8^\nfW;3d<?#.bDOQ_HIi?`YIWH)p`LUZ-K#3B''tQ^?Yp?f?)Te0(pX8pbLtP9:@,@dDJOlf-89)LU+C&3l3TsJ_2XEZ88TO9_,H]jd,Mfa)C5.`(T1riB`iP*X#D`\SoeLp)QpbEI<"f#SsTb9&@I)-&N@aQeW"f<08b35&*jsO?Q8J[4oR'+ %:<=Hk;>B3mWpf&3\q8jJQa#U09T+$G)AGe>.3R,<I!f_Q0%4&2.p'D^5S,ne][TqW>.3"/Ns25n0il;_fZ<m0,E_BBUnW1$ckHI2<q8<O*J_)7p[<\%*S(8=^c&!?pIRVbr4RI[\CRPo)&d"_:(V<jB90aKW_^r\Y/=`q]p-X]a03i@#bTl(2`Hj$MXVIWSKE.DT-l1jZr7[i'G9HM&a;VS+3;:r8ZJ!-VT>HL805FR^K2+HV7E3:< %:XL0X$n2*Po/8YIh8ieL\+[o\86i5d^R2S%b+6J>m\9Ze\^OG/(h/2qChhI@sQi3W?]Fb,"BEK.@aHn7;TBs\YF5VX5h97-E`Yf8Y_u@G2ZT/o\("35hI"p"TWL;n8=aTY>Bd8BZQ7QPqfnuil%Imc#i;QIFa!b.@`#'M=:Sle02,T@')dC0&q`S/CKWO2=YR7=U0s%cek)`CZko1DWQXjbRpI\%7S>80s9(DcC.Z$+sj#)_uVhCS# %:2=>;Z;:I%h-9m.Ze`1Pj8d(Y?5HkYmP!5BuH<QM(Zd4D(G^&TgQ%m,TH5O&F/9p?AhUD]E$adTUJ#4!b2D@V1l8u'gFeETUKP7BSotWO3jcC+Rd;cYL8fPZ[K-[t)iO"3J2i=.2Mos;djirm;&a4ks,3"k:Rc_HW;G@>K<]dgC'gPj1^,h%DW'#0$cKpIuG+#,1=_\%8FT[61anlB:#l$@=m5<oCr&r3_A,mB3*e!XME)BG[4NR=u %:8/`fd/-7b/I0_]gra\8fnm-/#NIucS5XATeg(ChT2pFek1;B5e2:<Y)f#<<#-@R8AOZ!c1[u;.tKm0[m4QV_KrSE?#IBU+geun!!2nEskg-b<#5.CD@cftkQf:K&b4Bf@0iu<(=?/?i:d9FkWU@_F+QTsW+YotR$06drY61%Etk'+a&Z5;Jioc.T]>*mjI!TbQW]cZ;4Kg!6jF?tI$--A+u63IWJ)XI.;D5Ke9&IR-=fX@mD>c#\" %:\:iA]8&96_BqINZ_1F&8K*Q'(4OU#bJ2_c&^b)Vn@I55][kiUK-5nmU;^&X]+:h[&S7ka4)BLLO2>5-<'K*&Y3S"Dn9u\P'k\KY,"r)EBpQ.o%BW2.KXpn"+(;dKEa\A<?,Xc=+J&bO&BGmB,QXLdn6$p\#(m=>s;B0Cp"]A(M'578<ZB#)sE&)R6Q,M"&-F.>AWe<KB_Jqn^k$)<34\Ft5pUs"1K\3Z`Q?<]4o\;kAiQN!6qT&;= %:1"^-s5;Sp=:f=YdArFYjm&:_^,Zn2C5+u',.OEQ_3<J(ub='R[1DKM:L`Z*$3j$DtL,\u&'CutlEYRf#jHf&9/g*^Vgh=-9o*EcbU/DU6+uRkG9'.pC-;o9-]m1),C&g:R#:Qu;@P@/+P_-/ljV*X%=h"l#fVpp-P-LGoYH;-,2/d&oS.1\%I`kU<:hu+>b4.Zl^q!aD;B$<!/F43EE*en:D8Q?K-o6rC&3h88(+"$#`YLi2,*FX= %:;*LI4@G>YO^JE&nd)]sP;n7:a?rs,l\ahGa<UCN\aa=6rID=W"0mcD=rHXC@^oL@]'OdeY#YAqJkA%98aD;2g/OH-T8'$uR$\#LCk>pNqSMRcI9X`Zi2t>0r&CP<)W4VRn/rjOG\1bs;;`ZVi[<gO/CgJC#O_bTXauei"aPS,bm/^%iI3@cT[,X;i!uOX\il*<.)1S#@G[Z1).']jc?$Nj_717,@kH%tD#L%b%le4L)An?+nNZP[j %:L$1J1!'6q'A4NRd[*)'[,!nQ_GFsSnA_$><Gj;T%Q>IEQ<Q%(@\r"^,)b:<jT+oKf7(o_3rH%1T$ET<>6_8!g4Un\`]*BQPQ@KD]r!!ZVWBSUPKdnrP+H",bMS%dL`:Hf(4u)F*bG1_a&^-?Y;ai@n5e9;>TU1i!4uUUuZt7]D$;T5Yn.)1Oc!<aH)B4\0&6%#%Z&V3gkBW'"B<Zcf1+SS7[DQY3^,&Oud%U53fWq[)Ef;SbeWB^q %:ltK'Zk=fs>TKcJTBA,6s*'p9fpS@54"G98<nJg2-4]1'0>?5;_(WIssU_dfP@)Hlk;l)g(p4Qp*#9P:I2PuEmqUN4p?oVS9G9A]kRN6=)i;ubDS4cDhQWO^+D1DC/*B2(0n:X1BRQ],ApR8`YXN2??3aI-CjiON$PulC,aJX5-@prj7)Y3W=LB55[[]`c^]aoLP-d1gH/W-6[,LC<M=hKo>"(Esre(ihV!Be`qaH76`"?ZFt1GWXU %:&J\pqE*ZL4@j,j2>V-$?L9!R?&:P.rZ*aT\rd[E.+LFgm.IfAE1>iZg\fD7BcoLUG;EKM^;bQ(n-RTCH!\90oQr9nu"1<;F!Fb*3oU&Gh(?)9;Fbm=JTp[MBG+<:M<>t#@F:E5#iYY@/;<ZG**R]^`p+Z9#Caj5X&X3U"oigR0"R%+;PW@D@3tg;r3KQ#EOb<eH8CU>MpT7hs,+LaL\4@GI%uL:.005Y6#?oe&f:>jY2HP7Pf6"6] %:-[*lIhhT%Jg0qb,ejCaA>-u38q<C6/W"%g4F'>'oq)cB@\gL>oFRZNPIWMoJT]5RAhkp-1KH9cUWt!#I,)e;1%P.H$:f0$#f8c`QP!43;CVgSYGG;I^P#*EnX$,7E_Z;KZ:ddnp*"!,Cr)Pec]K[W]MKhu34hHY-gYmuNJE)BjmIJl\HJf8HFFi>SJ\>G"dr?"+`$FVU@1HkXBSS`>T(X9G(Ki(!&)bRh:$XW!4#$2I5/Vl9)VIl+ %:oD4Ohp7&*GA@QMpQ,.Y743VE(W2q7rBS4aFi!u6]!&0M=cb3X9s&,m-_[#>lZeo6Z7rC(YpC_U0/-EoM`]j8OeclZ<B6r/][N=KVq`91*WDg/(Mn,;\dn*jI@"S:#HFSHshg$>p2Rmt'Dk)q$Me'i;$#c[*/i\Oec@<Snom#je_NAVOd_`A&!mt?k^PkTaBL<tl%ej@piX:b`@\,!83*<7:Fd,]L&4:i>QA'Z`3r3)r%uc!JjP5aM %:3)3c8Y6L\-#Bd3eVTiP`ghqD-OaiS%!H."`aCdK!V'B,4@cbVpT+i0?"Vl:P4St?9+@=!gY4u7%!T(0a/?j^F1l.6C5N`GR)gJ-3eI#W[I2HH#rm,bO%Z0MCrjQIO"e>`W.m1&=-49UbS7-.C<F]U-0EWda06bUI5t:MgbAe2WOaD%7L8bX!=L4ab?d"o`-QjA*]sl]<HZVD8I!'];^*H(K$f@W/.f>c7IVp@#-M'I_09RhX0i)Ok %:7kAN2&oYJoM6Z>_da4,Jcl6u738G]A9Po=FOXoMnFna[LU^c[!27HM\a(^%W1nNsd^,EdY'-2">W(9t3SsWBudc",(HYl#3/W00aPSTofJ@<YtbIIt[bF5(-G!7['gGh_gKN5fh;U0[#'c9L/_:-n\0+8Vd0\",[8FHV&)$HOS!0Vk/P&-XR/J<pC3X%SSqZ+>\YA$AkUK&52?D;'>NXVa2dNJpnKb4!(%FsbtrcN#6!5`]?I5!_J %:9XK?urNajKhGu)*/\5uZO6(q/US0*5mr>hKR,nNT6!>e(S1s%=eK0BGPVV@;qj>hnWc"Ogn1_VagaJ*<R&XU)UqiMfY#A?ohkh'j,O_uMqrY:pY(khUTWl-IQW9nPCh78jjN.4U@c^)=)la1WFN>`V%AGPA$*\NuG,[n^La^.&Bb)8F\T%-["2?_oLAWUDeqk*"R(mpt+QpD_2GZr,ak`W>M_j-N5I8NC9gNM.NIp0PBb+Bq]:@H` %:#aDA]NQ%CMLD0ul]UmeP>L*'>@7i5jIb"_/K+Hd#D1H%'_*N^8]X!;oDdI4JB+Dg-aBkKToCe\ch9$JOo[iQgS&a[EUpYr/.*h\KE*Xbd=M9"6^h!q!X.%:j2U>qJ^dtPrBK`lk-T<^5]LZepW&%Y`_(E/18k5#"Hf*sg&'g@NA8,X$oO6q6Thmm+*`>WFX9WU6p-=@bA#FS1fdZ'$SssiL22eT%D;I?%+BlXOm2BBr45"o:Eh[$` %:k%TIh-m6dMDdF])0abS$V[]YcqNFHd#&VB@;D0ni0"=0m8#!s1UNb"Q;Uts>NQq'rY+L)m"0D3M3AYg[BS-SYiLd"2>ig_&Sh-)+>C<b?9a;b*\b^CY.MS(=;09=$\q;_SJp]k(BKDr^R*SFu[J9&,0pJe++#FGf:r1OZX!ahWEnHV%_t]"'B\L7_D]YYU6W7%l?4bRCP]W/,p)[mLiT^h0]_4VB3^3>iF_FOo"150X/d`;I;:S>0 %:V@?plat6m8P-I$(hM0PI3HBlFI4feRh=5Y(BOPQaFi%nL9\YC$m##7O4Qq+6c."b@Coo'M<@g3g]G"W$A4+fMZ=+[!b$:@aWc9Z^8bt9E0AgY_"9/inA8'O:miG/U]5=-)dfr6h,/u@TSL>(o?ea@FQ]\kP9:)O/0nK,*$QGCUj&uNcD$qUL<+F/oQX!NqdA:qUmp1=k*GKh6n'*)If*5+e@ak*sUo6n6!'5X0'qnAeO3$Lj0ONtK %:S`WI2QTep37iP20kdZe4p*+2]C08u^GbKuf`7N9ieY+93DBVh$M"o@9A-2'K'r+\pbTK0Fb"@G!8WWU7Ss3,#,E)2s=s/e_<"T0aLVY>)[$K\I`[14bEqQ"_<WV+gHP7i-!aL-411)PM=#!LE^2p]O[N#p<i')T@jd@@M0rqZZTQ07DmPYB`gJDibN@>1nJH4b!'o/Z-nDh]HL(MGYV/e!jg&M0(Kh,q(Y;J8B_RU]CBgSe'6V$=" %:RdYjN:G3k6AWJ#$#a1Pu[3=*@[Uj"2QZbs&>K7>*4efk**b<PrqU*P>(f38hrQ'j/!t%8_1BG.Vd+SKEXG,K;_45lhN7h%e.i;*k8j8Fip'G:"f8MtS'4F7kj5<.pq@T.rYs>jVcJ!,%;fJ;."VL96>>!DtYF)@^:%G+@9kk2`M-ZjCX%4dejeMrUAHJ\8bs:j,2.P$6Ii%NDQEb30;c`6/pcC6>D1:<[q(>B(b5M^m1+kXlhq<rl %:LdWZdla@=1<?QmaV&Y0`.o]!P&d.i&aRA#';+.];1au?><cWM%=]E+t;S">Yp6/^]6CA87%nEEe[K_JqVjNoh_n^Bb?<@i6KKuTq:(A\J_]=kiO'C1.R"&:i;Akq#N(]iG.6HapGP,?4joD,Q,1'WReCT,39[r`EJtZ_gCC^q@@[.Ir4^#&53AM,^!k?.7aePCB:fuWfWmYa-.nU`EOIS<5*ZbCJF+XE+,"[taG9>*[GrH#PjaTWj %::]QQX==>l2JL>7&4T3WVg#c/i'2Y(3`)C&e.E(1gQ:PQbjLF?n(uXnGH^(SQp0ej`f\-Fm<j&8+"1hb>&E(P_KaQ?\ga&Y14H5MZFE[;fA`DQ6K&lUsNd35V81G`jGnD];rB#8+>tG(mO=b6N8r/"B+-h?*+X)>U2'<^#J(+ZHXSboiq5Vnj"^4/dX*a<*=kWD6m*>Ff'^Yf.`LcpC8PV<j0gJRah+;5d_fbkO+L\TPBk9I^i2[_k %:#_A&"gji1.U=^'6pN/t$@KbBs`@kl:W*8S:NQ>eBF.U+.oJA"4Cm0l]9u=AW';QAJmhdu<8sB_+-@Ii;OAIK5B-E'%rV/gfO69>eZ+YHr3+u'U65-=->`(MZT6Zkr:N4+o]>I4'$9ZIWcmA=.>!tI&hmn#GC007.b;+;'n(PSWo)6-%kN++iN;X6/)a;/9VS#T9J1'G/jJ`cE-9'B`DW#O>JS,n>[3F.("lGS:4ia%k6PAlB\]F[Q %:#gbaH!o9MkI<mcNM6HfP4ZqW8mC+k)88UTt@GNMN7NiS(AUoqYE?5MGAucV;L1)Z^jpp9K17fhg^Mgu7,GNZTFPEMWZWmWAEM]%^ljKdCrRVutX_ZHlm@iHV-)lRHl+k.G-S/(N4c%hMB[40)bQMpe]U7[!BEL7RM%jrEU6sOog]#u-*>r]:fTrOY@h[1K9R"-ZEBj7(&H^`Ipr[#I90;9Z\Y+b3(+8ckQG*oekO=/mlYpX4Gi&\L %:KEguoo,Qpc1`t:QAi(fos2``_U54J&bc!QH3er,j^8QEIa=b;geEcIDR]tQnpX<ANZ8[e0Iu1Of*7-AZO`nd73ZZWe&">mTT,@$b/mj++.PX*QYhNDM!)X;1&rMUAVM.Z,&+mCL)-T:`K7P7fH.j-HW:'F\';P%j@8,$.aR/7t^g5TbMK:?ehGH!P\hnG7oLo:!eHVW:0A+[+Je9b.0<B"4P19,)bL>T2,*@#[6(,QTn47X@HobMd %:-G(p4=W9mU2l_J.biH]pdJuRcH4<Lb2CPbA<Z<7-TISCWDDIC,;L%C>dKm`SGuL+T034GZP+L7Lh%\Ms*J=Dj=0unBBa+D=Au]WK2HR`OR:;hSUtQt1+Q'!pA\)3P_H[UsgnV?a4A#)2emt'kb=B2587$oFk#RXdfFHsKS"NAEh,HHS,LRD8LIgAm?e[]Ha*sCBZ#+U"3[=aY`i`63IdW^,:*>J(:LU&]nNJCf<ZBC#L`)h8WhTnN %:Qn^=>-QAu/?aBtDNYWJXQ?CVj`*V8F]kE$LI[ab*>leqj4i]"9H/@W6#/hPY@(IrqW160j7'>WU8[6jpQ1sGS[\lViW7T$e0k7Emn+N;6WU8^(S"Tc,aO@jK%]qf5E(7dOKMapK+@rR?#^cZ;7$,4Bd7P`Nh+&U[-g%)8%k*:,n%-bM,iaW;AW_*de0<0M'b4DDIi)X],1<3(kUQ87Dl$cFGN;PtP>.(7H7L;c6eHl-T90E\a-+h] %:OR&h$c%X',ROHZ3bZ-D1\l"t'4CQqGjKrU<$#JInb9M(4hfp`MQm&77T\:27>9W$.&3[rp8sYB)WV*R(9XuZEV[]B+=/D6jO+b^*QIB4N5`.i9W5ZS<-!UQrB$g\PNS1^OVSo2Afd\:EcQo;5-8P="!;)]3FFZ+5_7c.?+ZuDO!_$KdEsNd*k5C.)R$fY;NRLLelA4q\\%mA'2shckjCWude%rY=-NjRUG2=o'$W6tg6bS=,c.1&( %:KdBa%KH=giK[W!cNd9'\qN+JC*DilYlC(eP^Pd_WCdc6',\3l&=RR]U%7uDTrsd(lI?+oFKPT-Ca%6pTejcT*W1Zr8_'e6#PsPaC@#kEA%UW+L?7"@/&.*_*_mN\M@"INC0V$M4M1G;RT.u6MRj0_XNo"Bj(-GC\TjbEip(_',C,\%-q&*FB=AYNQ7:d]C2(Ch82n%`Po<1C6D0[YTdj2/36n<7Qa:W,a:G0/:6oD8j.!Cmhn2&s, %:kCR'QonTZ<Ko#u\#-o][(8B*7;F1Y4()'gnJV)h1MP*.A<uXPAb+<!!j$+4W7e4:]%\l2!fUfs2Y5/]+GCUadibo!,h3N:=oNA%P8;T+hThrr$c#/b`lL)8r?OF]'c!`]!Diu"DrlN=IHH33;S)^NJCBO*S.`o`>*/W(S=%RgN"or`nlD>$GlPTpOYM#!+H4HB]g$tNbOJ(8Q78k\J\/<0.oBMO;^hM>@E_GB@#,$"8p0PE^%fLt? %:Ka!lWiZGjVKZgi&"YQ)j2JFOBV!am0Gp+X!Q5m79e^lT5/&;Pe#a@5D0pk0,F4c&7^U5J/#@>u9-eCclfNdf0-:N`0UP^0GH@69`[l,cui*T,Vk#k3A]SMC0Alcu'S$]6eWC'UXF]n[IOK58gMu^S`'fq1HlWu(pYI"<jWHrGkTnTmL>*P4PjCptaXUg=Jn?7c8i"ajb0?WS1#4mLKQ+XCGiTJr8LBtDI8UFP^QC//32hi_Tll8I- %:bUQHX/)<sM'SKMP][@kZ5!&)>gtJN)oVqK&,7e)CUhRD<qkKLig-@>%\/1&l-$.D7?P%'.:M9oW`G,"Xqq@\kTtPE2ME>R\:]Y[q#i\SWO`Z"C,`t#HQnMF=X*X!;#;K%8X[9aoA,FQ0*ckn+"*FcYcMdHUm!o_2;W@/$2Xj:`@=ohX+S%AQ;0Q342+Uo5Rau0b!XUU0IOjB",*cLLG=W9^84\W5/[1k2_%-^t.61dT8Q$DAek9ML %:=Xs<t)dhu')\gi072hUQ+@JbC,7:hl-&';S8K0'[ka[tRg&Y.+,7Ub8+c$J>5[EX!m@>kq/TsmMMMf@T$YVUrAj(Cc?X'+Fr_C[][5>JukP^<;Hu*m7Md@CZ1_"-]gt8`gOV-L;nRS=D:&;sLjcZ2+]Mg1s!O3BJSgAs!-S%SoTO\;M7eZ\4<6CaY/3Cl<ple*-F@ag[=,RUbDa4k1k!O?_2qjoiHm@],:bA8TmZAK.\4&-iTL!KO %:qMlYtBk1dBKBN<Kg4(Q;3omU:Bm!J+^3sCE8oJ813nuI^SN-UW7]d2u_0AsC)uGAm`M@]TVH/ZnMUihPQpr>b8mg8_lA4Z"d3'qi>6h?.k)ZntMt((=2_#[Ikc%JC6gIg%%Jjsthd%M^QggW9'r*q92.`LDiiE(4`gr(rM.':S2tMqNX(q(D36g+$:%i*pYtSi"H5#7+aGPTQOtgCoaMsjc"fQR*b9.L:7'eOGMXG^B3k1f(2NqY_ %:P"Glf+6hDX:#V;mb]jkD_"hX83+2ZpZGtuU^H-'r$t_uJ,'uWq_!XI4o1^gsM==M[ne7>"=qCE<_Z8J)=nc^/_rf//g-/UuA=`4%@p\uaLCg\[b)tXR9,`pS1ASlV:pr?1_Qk2*6GZpsSj_8H'-%+R!S%S5P/4coZ64[BVW&GGf]imO9N(]*$"?uCJ%M>g_[VKhc1<df5'Y]FghQoT.X<NugFu6]b]s8sJbOL!gItJ<g-m'>@f*rC %:e<@No*_+Vl8`dpJ1YT`>'cA%>L&o'Y7Yg\6;&jkad@h"sjd?8u$TuAMDurq0LXLGYio/H0KT%unj#VCdCJA;.H,NQ.L3T++\)VInW\34E_1Pa1FgVIKHO^j2Y8ZT1K#W"igJ^'o#$4Q7DsgETjK(MHUFnYTQ3C?+]9[`HbhoF5LW%*@pK=Z)%d?.X*6VYmV6^Y3ZR/npILooYn$C(fRrg!-'A-qi!]ZLZg-@V[JhK\!0GOoerd!9L %:#oNHtNg?o*(XnVf+FsF`'J:^!_3^*K!'d=:?:b,-DdXkA*:K&WVs*(/QqQgtbsDD7/ZrA\D(X]V/'A60fK(+JEItJp)^'W$afp!"f4m<1)-d?6)f0U953:0m8]^/]U4k0K_O[n0mbJP#W+qQ1bI^s;j/tPT1Oi$q.T1O?mW77<!HrPG0U@lbh%PE5!b0m!U1,B5"&`QZDrL&uXf^rA2P6Hf8&g?5ZiL3%.Q4A%(uo-L3I43*>No\0 %:PdCHXCFlkI`4qEm"'4%=*YtoZ2M`3U]a&5,B2KS#9RLbDB`g82S!Oe<bg+Ff55+G'm-g0a7nJ9,'G"6G_Ef"UD3uR_$ZTHG(1g5Fm@i`n.=)nA*.^"u-=8+4+$j?+',K94I4LQ^[L_A\lbq@kg:i<tY0n8e4a<<`PkrRMj!Y$ncZ;FM97@]m@WEPJ8UDR`C#4?GW_,>mHfqa:FW3\uc2nfNU?U)[\0kbtSH)WBD+Yc*4Hnc\Tsa6J %:E:BZiOpol*1JJoN1aXsU'891h;+tkjmCKjfV6CSCR\J$C(m7sS^s-s$$RtJU:kNHm&hrlF)r*N;]*%Tnf*:acW1jBP>t<U6>qMjcme3W:L?6V'\s>B!K\7X-].UKVICrW#R(`)6&!he%,JThFs.Wm2>`>N/INEe%+b&Z=?\_I##Y(BOMe$0]d02aAH2Opc8RuVmK(I[uhs,V_;)mX4%q>e)j/H5B3!-XYq_k7A0W?RAMg(nEeiR$R %:+cg!3a6MfLOMD68iAEX4U0p,po5$r$!Oc\5ZpEjP41[R#\pCk<"HJ2\UE$XWSi..Ua$Vd])c5B?erLlfh,[A$.Q=Pd6tc+u#8`>+]QpFli0Yu7KC_!>>ne+BJKHoaO3cQCk7ln;q0X=<_7][P:KH`Bfc8q!0"sO@2GY:e-e1>gIe04lFRo)&#<Z,5jAq-Y>6>,ZH-#,^"+;`ggH:Cm`Hl<+a0+./PakkC_-]D`JU9=O)orN3(1tnR %:KJV\*lk:3B;Z;iRfYk5(NS@(SpG^<mVQLZJ^j147G$UY>:QqM9'WE3J/j*#eHn7f-83k7&T:f[a[#gjO]aP&DbiU$F-&J])-@jX/daB@;itO$i3dD]#e-=phh>C,5M(7V?0rdPJMiWhc+e0JZhsA54U(tHhJQZfa&@Kmiab;clU_m7Dh'`18b_&/o6=<]K\$kZ*H1Z5U9MhV70bf+]',YB9<t9\aJ`"QpT7k11(Xkrrf+S)"hOb6I %:9o8Rhr-Gu?2\0_-$ZEj*o=u\ITN>T*<ADFdH(YVRChh'_;Z@._YO`[02MfmWHX`uO50)I1#%j9fMh,h8W&>_6:D=Rp5QBKWA1M\]U*,<D&^dID[(Mj%rA^uM5sj\gcJ^s%KCC&f@QZ^l5)7(nX*4)OlI[5T&ZH9,]CoRT&AN=c%\%bsK:ji8-u=3"oj].e#38@GhtcFT$_=fH_/MRO"\:U2g;#H)kPT]'6K;b16V/R#$(&%2\*T`n %:D,=[)/*WBK&K6'_bn@`D;22Ho]cpUdgYPD(>RfCpSqG*MATPR/D1KVR.@TdRlB9Z'\mN24Qh=0\eMm7BX;#Umd_`P[EQK=OeG\s@#44^8K%L&RqAVhbjrM#>n'E7;<(8o`WU\\0*++sI=oS">.mF\N'e4@s@Fe6*ZiS2iFW[Cj&fK2&^kQCfF0!IbiZu#MZiO%)#,35Yd7"lT3EI8N?k)P?+N3h<)rQ7u.!4T^H1b3C:u#gU\$qPD %:5%,)$+RgrqTa`-b2u8M\grs5fCBJHUjC?:,F00DtNAtFLpnp"]UEC'g/lr&GV7s&:UTF'j>;^H==\7=44Hk&'G+cK+V^)RrV#oG:$uh);VTX5D#q&<o%b;\A`is&r3'*R?pGS;LUNE`C;"o#9Mo@(umj*-\'#f[]9ARu+;O>'[E*`unBZT_k*^HYc9_KGEb5H%)'5<(3VC6K'(FcVs_*^>Mrg7@$.KjLXp7dZHU=5Qbj>"u=WK`Zn %:O]1Y`60AXVUT+ZMXR)nsO;l<]e-5trmYF.B`A;'!;7f('jIZIBF:l]Z+oH/+,bihE%$u8Cg0iRR*suB=mY/^U;c+=%"XreuFU0Qe>Z.kQ2C+D!pMHM6j4_;]Xp%)CSB\A]Lk@p6o<a'SoK"Ti+*."aK]U:.oh^B)c.tLO6_nO=Us"'2-EI_pBEQMWAb4i?\9IPO!BW?0pQ.nq!]Kc`=p>k]8K,VTcmp&@&O"0="rbD&6'dL\,M]bJ %:EGqCFE7]]\*I&>n)[+KtSjHR]V`]lX9tT^!D]Cr2>:%te?Aj1si@#KrdeGD1[gfA5bRb?"J[3[6%4238W>mEoj+&T0WX7WUD6W2$"#K=%b1D39p^e?6NucUPrcrN=bWQ<4cWnI66d6>a1)&66)2d$#^532+-.8MNlu$SkTo<9)m$D[TJ<^WK@J!rR-4Xm#9##tpW,F]`M*`M+*_M(sXcp'1)&nPn#UBEol>uPTWCto=1i_g(VS+*5 %:iF`'WKLc.;g&RNInMSkEpf7j+8l\TgVk=.]>g@#Y2"m>RmAKbHch;VEoiA!+fT=I2\O;%8jq<BdFF.-u24h4,SCRon]A!@n.N7F2Ub/EU-1257-j!(/?j4Lc-Y8#J;!k`gpb#sfNU2I>h_O.>euAm>F\'&*.<V-7PLZf4o[4c["]9lqq8np*AR4T)j9#e)cjf*dYjeOL5-/8g#5[jKG#I5!]6!)_YZ7D>;j'hF_.4bUOJ8g?2NZPV %:3B*EPCbJHod8P\N7s.jLABRS<0*FCHAe'tKndH?:DU&T#RXt1*4M!O\Uf8;6DrWahThqL8!*-0-=@$i*%3c/o/:o:,"g;^FF"8SGB<?#b6tD(5"bVoFTN83W7`g:B'MJT!C$0X7Zpm_RQ10TXACVq9_?fXe:,3n4+b^AJ%]Zj]ZujS78orP?ATN9PD&7NOm.=1)P2m>75m!8FfC+n::HN$mV?,?m2iZl&>d[oTCGmL%%>br^gf>9; %:]\6IAjhbkaI60b_QLspE`>B/:S#FOGk,)."+IrS3IY4F=N.bZc7G8t^P*0u+i`JfIq)P+mLQq<m)aq?+Muo.,r0L;W>EW7]ot$Yg*P9f48MA$61L+^F`'QR0#V$9A],om"*eX//nu1d';3]j<?#F22VNOS#M4obaT^(\Tk!8%)Qggd+GBf]M0\-Gm;5^?k)niV,[<jTh*7](<`Yb^"j.m7H-)/e3"]MqcqU;?t.5_q=bbYO-`h[U( %:;[t!6e(TGQ3o/pE[Bk$kSmDX>'ZFsCLj)&WrU<nrWUr)V]H&6):Yte/OJb5RJ4UJZ+FiuhX4*dRrla+8>:$m@Tb(_rP7*kj5n_TsPSB58jKrg%@ig]=>OlUbRhY2mr<#.D>pm+Lg4S-W;Qlp;\("!?UP!V3Ce/);C*=jE%+p;+>a:,25IhY24ORFiX=s!-GjiJ8T+PfMo`<rHGMI/<o\i8d(l0+kK.pn'STM)i49?ci4n1N@!J9QK %:g45t-b&4LF,]DFtg9Ig74Dc4k$hB=2[(LZ`!JNhUkt?_Vg-)+rOc>pd4RF;TH4)Yb/i+p!lAmo],k&]"n9-d2@M=>`n"[3\T+/l1\\(B15_Ci*J['M+8#d?f6&h?7mK"DJ$_\"h)N1;%Iu(BF,=?lR-eC%lnF3mq?9hhN9.1;"('?S5`+\9lYRg*XJBrrt@R-B53pn1cUsWK#UrW0*OB>r_["5u@O`IK'ArA6Ra\*7_dg#E(kdI-# %:JXuj%ip^JOC76P!g7WQ#rG/4+(d#I&$>#eQZYU,_,!/k&<hQCP/qika7;*!P3$8/;m:l_hY(udfq45TWL1GI06.WK4 %:!!!rf!!%Wa&kb30m):D;2VPs[37.^+2rVS.f7fB.koLRmEJ/@L!!"GfghZ`u&j5^kUr)(fL7/)BKt$$k1l*:qP0"o$5dNc=!!']=SEOt7C5duG?Q2CVFSGh9VTLP84D?rD-PA`$UPRJX!!&Ni@^0jm^Wi?U<e@4V;Le`IF0\/]=Y)6673fa:2-%@H!!(Olm>XjH'S_s<@Mn-01pd5_^$oROBE/8?fE6qoBp@$:!!'&_\2QDH.[Td0 %:V>soLb*5mSf0]N<p](`R/%KmF9!4XcfnZhD!!(["PR8]bdN8+GjG$:4$\A?Y,+5O_#4bqiN$(ltMl\K(!!)phg!,A!iGpDh1r63&=UtK4'Z!K/P7(`D'=ud$jdL$m!!"ZhhJ*/G5nc%9A+t;@MAcHp7ujU&O\gbsj)j[aJ[oa%!!!HtI8".$g=AfP_A7<^kWf+J3AG%6fRk8NHgo%Upc"jl!!&!!$)Q+O%HJQqKVRlCZ/#B[b].l% %:=coXk60I4CL1'i7*XOML!!&ool>AP92.4,[jY\o[,CBIk[QDKX6]!RH$$-)e.^o[,!!%:BOI&#(G_b+1a@(2a.7jL>[sdhCkYBj):h;t'`GmLU!!%_Fh**i1*<_BN[R2EGS72Hu5-PRZ.6Gf9Q#>2>2mf),!!#MQo=:2%A^R8?;O"4Jh)bT:R^V#+#`>bJ[%_O$ZEqV[!!#?4ceHi6nc?MG9mCKER\p,c4a:LNVX)3[/X1:<kA[$r %:.[6)j!!(7qZj,M':m0qOG^Vb"YlOh)SZCHNnaBFl3oeZCf?fO8!!#Q6(-@nk[)77]4>SUQdT?JLX/tuE)`6rqV$T>t,*7N/!!!bZXh?pbXcX8b%\oZ6V?[)$\1t7SX\d2aHnsn3c-^Ji!!(]>_6)_!h1;Lc>fV]NgN<JrV6AV0'^NacZh@3R`B^ts!!&b(gF<_4)q\7[^mP6^&nCtBRD_$;S,dEam2LN`]LP-3!!!1f:TJ3tfjBA6 %:Fr,>uqm_ImV&B=6DJ^a5d@uROgS4eLK\=hM!!$R'3B'-gq%)r$iht*VfKT?9qJ#Wk6UJ9cZiDGZ>$ufW!!'KY&?#gA$W/JhG?m-h25^ES@(E!]g7[0$C_+rtj-/1.!!")t01i9QD'6$WIi&WNeF3G<A<cqr3fY7=e$O\[C/3Rq!!%T"U9e*P"d-QBCGW]>"]#*uBQpMR?;eTjfT7^lh=aG%!!#/e@tNn:O+9D;c59CcC]"/4.XZ[5 %:C&#7kC>:W8/`CG!g$3^T!!#]a2W%Or7*$1l*\p&qa5[."aX)Od7I,cfIa"&gd0<K=!!&gbrfNV6]iWn)W"$E%/kQ*D]0!:k^SsA^..s$r:/8AD!!)"([(K&F>&UHa[U)N+)dWLEcWdN6U<^02._k."CmF'5!!#h=0V0#Dp5SQfRT%&QG6n6L8)OF5K?bX[UPUSV'l"?)!!)sI^!@T"Cg+A;][+N_$'P>h3Ti4"J+`oHqK+diOk!N( %:<:?L%!!!!l[aV6ZFP6hRT/k5+Ho_6-j^=t<fZ5[bH^W_/>XM@l!!&dlQ8]%j8l<1iVbsd1SeD)(nLXc\_k\8kd&(0n'312i!!(:MYt=,!Rl*pe1#Q]Tbrbt+Bp#a:ZsfeYQRu>K;(]/1!!'>'O?!fFFHA7`OE9WM2iI_:Ab?Rlp/'#nRN6+GW5l)T!!#SfB.,&p?(qMR_tJrKBo`5o,?Zkd+DQO7Yjj]u2DcHh!!&D;'r0#>*bCfL %:`4!;A"S5t>PW&RBX@BosFqF$V)C:%pE+t8A!!(iI:tNZ8<ma2iWF@/M[=J;Xgnm*^U2@e39S58s)oSYZ!!)R4$Al%X0EfFh-UeF#'Rp)_8Sg8!%l,RG!^=97hm:8h!!%Y8-@TZ9o>">8?&WRhq?R'$9*eRa]Um-!!:UA_*d2Z%!!#B79k1':I%=4\Y@WcV?6T@L*Ko2'F3nNPB_:<54hNBn!!$c*=c2gRA,$\2"9'W^&#B7+gq)[S %:l_nfH[t/EAh3268E>Rn1!!%^79fbm&jc@:;HAe_#8jE@VrhQ%C@E1)>'J,QX""ajN!!)IKlje\h,]f3s+=f9g4So*Ym@O6f%V]%c&La$FD;=Nl!!(a-GFL8*mghH,mlk!*n^RU>qSr3tTO$U@n*>a94rFfB!!'nij_'$)4dsKR0:rZVY(coVTD6h60)OPjjRelOJZr>W!!$0)^iBUE/$N90jU*P?@(?[G!m;<\+9;Qe!<]L?(p/ZX %::NQcS[IT=7!!)ubQ#Ee+XT"d@^Us>hX+(*LDtWS&re&aN\FRn0n*U[H!!(jb59.-bYKhnZ"so3/J*$_2s1J9Sg[iO^+!+cpT3biO!!*&*qW$:BO,blR/k;fU+2.^Ts&mccIK%2u^\Qup^&53@!!%A8^%^uaO#.^IkZtLaeXHO=bt"CSroD2%.9'E12D<CS!!"*Ra&c'.D"Y4X^&.(h\+]k&LbF,GUtPb6d:Xi5g%9Ve5QIAU=Wlf- %:gcQY#`ucC/T$%ABT=hc9!4n[A?d1c_7>U>P)E](c7K<F\d@YQF)]-83dCP\)j%j"^!:glmbGJ@=(UM08j<!%qB)hp*iLTnqn^Yf1dXp+X#kq=!!.DcOoOrV7H[KpX4If]32?3a7IX+*:><W`_jB(N^$W`Jl!)L1%8/uWc(SB!5cX08.d/X.WkM%Y<d#j'3BQLoJ+k)VT!/RKkb+j2XF2$)KGB/"W0`V1]A'2N\Yenp(?MrXB9g7;` %:Q_UY_!9*9(rc3Uoa'Z""C?qMDl2UgVYLRr7p$Xc0J$2]kBO(62!*J9e$^^C0`](7O_[l:HaoDE"ZP?iu?9[mDhA>+PmNbs9!9\R<Y:m(Smk-8*_b'%dg&M+s(NsQ@?N84kU,eF$,K0BX!2"Z7I-p#/rBZaSHDuA)k5YMFq<,0*kI"s9HK0?f[I66Y!.FCDG^f@hjD#-:aOZumdf9AH0f:s=rpnV2p[Dhc!<#ap!"_EOUYu?d;s'g# %:qt"uU$I]>KLB%<Qo.qt>r[8bS'Qr]*A+OaA!;L#'9J%6Tja6Z1d!,Bh(B=I'kKf(+1M;$m$n]GZ/B%Yj!)-qr1Of;mY\0i^FGM[G3rf8Y(I,G-*E*Fip2K,8mT6.`!4.a<Zf@2GZ?(DX)(+;V<WE,\_J>nMlRc4,&$oj`l1ANe!;e?+i*m(sH@ufuVJJP1('">hZWVX6Bp1]?Hq=8mkL\$&!5DW"9;D#$pZi7\8jCjYp<*F9;!Eb\ %:=u6kA`-#A`m:A)9eT>uo!!#>KJ)Qcq%)kn-/QdnX\W6^j^qe?9.o40T/`dcG66+h@!!#.ESDDNW?f[6<41fQ_rP\a:g=*&t2kE7[rH`a4e_ss!!!%;+fg!p<Ac(=,Wuo+2I4#!pJt(3<RA]2f.r?A(cQBp6!!'['FcW\#Vhjuh@CGY0s1n[8-17KVb%Yu#3PE0)I)rRN!!($H=CN:6<$!ZZq;NG2ai"/Zg?5m,T<E[j>?_cu8E0XT %:=m]qK!!)buE((Sd`0/[M#<c/1`UEj--hEi]=QW5lm@L^-k5ed@!!(V2EcKCb4m1E]]f1AUir/oXJt:l[KD0F7-0%?tSEubE!!#.E)5$NdTAJo5MgUD[e'S-q0>]5(Djo'Hs(_APs&`TQ!!)bD^3]MXYDNID]r<)qW`fB&mI;)a<i/bHHAIF:rXa_N!!'(CUN,ur58[.uO.U*3k(3R5Yj1T(1f@O`G6McSkciM=!!%B2WJH9DUI)u- %:r#L]M=.Z;@*/adsZX!,S'pF"_k.%?u4@S.I!!%;!5.FsiU7^Df-d,37T-t*J)IqIR-:TGm"5kQ7!oFP)J//%`!<;=KJL068Dj#HeGn*OBp](<h6AP&'/)ON[Z+a7g<a/],!9%Q%2QbHMnHp6<hd(N=nc/Z+AUS..s8??e3WD$AWNWr7!*ECaGI]r=s)Rd>rVk45r;Zi;2cfq5m]4U?Q'LfcJrG3[!)1e`l]XiB\%]?Bo\'(Sc>!Mj %:oDelDkKcZk(MgDVk/slOO(XUU!5:*l#qC43jd0%tFeucl\GuVM[;ru:>ab*Umu3:1'ho):!;9ql-D5jIkb*EO0tP$^ScAcId8H>A?@K0Y\/,'+WitLa!<;n;rJTGqf,?n._]Sj6?N:(/q%I*EY@h(+8*T:.NT<S0!9mS.P-$lRHiEZj(LK:3WrN,_GG"htd:YD[!'\,[J,&^;!6V'_NKnnhoP*@=Zh:5U[/^4'UG!PY(Q[0T2_Z.A %:XK=WmHh$_.!!R/UT3kq#[@>VQ7pVe&=TAG)q,8fYc@7@Zn\80*o'0Q^!*T9$X+,!ZYHRrnlJG_BRfEGhIr"^qYPt<IJ%YVR=9$qR!9udUr>2O7HM-0srnGtQ[f?F)moTP,l@3(;:TM7FqO^gh!<:7-IpN"kCu;Gg:=#!)h#IFVLB%'L^A!,ZrqFtCTta_1!*rb'J,_J*gWF_hMuDYMiW&tN?Q(Xq53r2e3kk:-q"ZQC!3U_;?)Pll %:I`&Y;T5XW2rnhXr]Dqs0dsl)lQbLS&X8gX,lb!&p!;u]n"45nU\H#>*QiN=>B`J-LART%aAH2d06?73iBN/[O!,qo>;-3eu!_>^fFCeEcD.N\I!!5JcH#7#/CdW#IF)q<^!!(ML6tp.Q!!1GH;fm%oDJ&qL!!+cMATDj2ARfgrG%F0a!<?hE!!7:/F?'A2F`_1cDerqa!+g0N!=2DBCijAYDes?49HZZ9F$'O/9lNm;C,,kkCBAqf %:!;T?5"99VGn4d'e!:*?V"osBI847B+87b7U@6k"t:dRMV?NC3o@0oVA@WGmt!!%9E!.@:PASl!rF8u;#6>Q]'De!P_!0U"b6tLFLEbTK7Dh&BQ#i&NoDfT[p!S:@S#64e%<%nkl@P@dG%fd&)7mogb49GUp:i[6MDfABG$",[l@qB1nEb,4PF@Q<sEa`p#Bk((`Gt\9I6t(1G<X9fO!)-6!2?3a&9PJBU:glQn?V:D3+TMS#b^Tml %:4pQ1@E[VJ!!8(lco1_tg9,0,];aNh\57_[JAH2]`6=FqL@lFJu5\pE#0NeBD"TSTkD%9-TF*(i.!!$M?!!*d/ATpIWASu#Y!-uDt8In]&!ejN\F"mn_"#BoW!eaT<'lQkNEf:!B6SK!*&j64W"cu2fB6?6E!6>EX9P&*_;#p^5<,$5lIgc@l<'DIc!^[Fu!L-Uq3<3.n!3\n8Bk1d9+HR-C;fHZ7!Wn?Z@:s4aA2aWp#E2(WP7l.= %:#^C;sDN"PrWDm;FATD#VCfgZL!!.+<3!j#2B06k0N`0_)FCT!9@"ncA7!3'_H2muZ63oUPC]FNo6I6T4%QFH14sU2j<,uDbF&*d*!!,_R(BFML!!'r2@<kTKQpt.DAThX$J3eP`!g?)T7r3*fHiO0g:Ng/%&6K!+3Y#sb#X0C5O\]q)@qg%1Dup)3$'d^WCiu3\QUY%TBOPG5"9N(()/B4\9`[9]>Y,ZK>66Vb<C:\AE,Tf3-Z`(L %:?iY:E+>O8&7riNjDu]kc6#q!a90mc&$3G33!bF@r3WinR*)^3UBjjXAJnR7K84.3-E*rbLCH2DS!d'h6!#Wie0EKN$O?ik4!!1FH9L/YE!!(XOc2[hEc2c,ic2c,ic2c,ic2c-4!!(;#!@Ijp!%.ao!%.ao!%0N%!8(ib_#se#1BR%Go)MGcF9(ff(c_`;!:WJY!*'"#G62n]!(-_do)Td<ciS;Z!'L?:70%6+!)*AGCB+?';H$\E %:">Kn6,VoY%!&$>8%6":=!:tgF!D>i_!d#nu!D>?Q<L![U:B^b?0`e7j!Fl+h!EB9ShtKJ?70*Fe!2fgp!2ffU!)3NK"%<2S"][hh+TrK>!rr83#k%g\"AK#Q!'(*,"TsY`K`K!lJH:H)K`Jpj;\H)-rBC9J!'pTN!)jb0&cf,Y)DMkK!ET7Y*]Y+83<5"G?P`a-!*pLK)i=]X2$'$g!=/aB!d0$9:B4f)3?!`K"TgI[>lp&gLZXpt %:N<5.@aS7H-#r;TB*\.:!4W][dQNE$t!=X$"#QeN<?2o%-"cb)7#\OE?#`UP@<=1H(7gqZ`1FbHl5:ST/LM&Ct!gj%J6O,mW0b&,n$FKp:Md$3N1Kt+`k=Yfm%p9*>$U4_T#qZ/]O*qA=&75SBMN7s#!6l.k.;JsFMZKdl0fM$GD\>PE!gkbK@n@L<O?!;fNneOS@0&/,2\#k\*(_50&)72+6NT+G4"^QSmQ1D+!iZ465lka7f"m3l %:@fU!=9+=#t9L/Ya'KH@!IJf4/!'(Oc#s1:W499p:9*@fg5mhB?9*[0VciEs5>9ucA8Lcq)6O7]u#XJGZ#Qg!\"%*>G!!!([rV:@78HD0^0b$2^9gf&:(-O!?"\Bb&![RjQ!gPbkJ+AOi$:=m@!i6&\'K6Lb).?6(/SP8Z%0Dfm#Qe@hN\_R"B`q!53t*o>3=/,IW<,UR!_<A`55t[M2#q7l@fS:b56,dg'laV`:2'h_!!"SN)(*4F %:!%e0N/H>eNs"+3NXT1Ql]1PR#0*Y74"XaOi-O4B6#APUkC*s7$-O4B6#AQa65ld7a5l^sW4%qt"76O(&8n.ig-NON:!BC3;8--NrIn<:%3]R9-A+K]rYsQ6=:IS/9>gltO"#0gF>o@TS!8-T;lMpr"1BpB9!KCSP"Ju4O!.R6/9*d[h<G+Nt1M8WJ0qSKn2[+O4@00((0`c%orVo"^MZSG1/H>c&!!"rZ9HaE>+TVQp!!'tC^n3`c %:.00E#!!#:h;0,_Gs8Ri\0)u&,!!:%BaT-5^/HPu,!!6d70*hV4!!(1G.00E#!!"/G"sX0Ls8OYN!%e0N0*VhV!T>1n-T)--Ej$-L.UaPr!CHsG!Qb>`!<<)@!6G5_!6G3a#6;jHaT0E_aT0E_aT0E_aT0E_aT0E_s8U1@aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_aT2A@aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_9LV!8 %:aT0E_s8U1@aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_aT0E_4]DAF>Fpg/9`RHZ5l`EE"bC)H2?HfI"?-DN@!uES!CI%jjc*^9!'aY.YuA=t"@WGd3]-mpYsiC/;DS;M@g;u5`rp$<Ka$cBlN#*.<<Z#'=(Ff*mg/4ZlN$5NlN$5Ns8VBb5mK[U-PQ];&+9QE!<tXQpC$!`5mBUT,mG8@"9Q[XlNR=gMZ?$VVcE+#8HBt<!f$kla4IdM %:!`'+g!$_gR,m=]+!=30=+U/jA('":]%KpVV-NO?[#"8nc!9jlP"Q9XP!$_RI9`[B]Ms2T0%3ZGts8OYO!)!M^!9FQ+#"&A:1`.YC!%e0N/H>bu'-L!ODl5Z(h*YJ;GMdFr'kIP1&opbL9+/iA8H:mUWBgM;%L>9$]:hjt[JM`^*bD@""<P)W9?@1U!'pfT!$qgPRgLiF!]'oXJ):Z'%RgCU#<N*e!/CP;!`^rT,7F`A!b2RMMC+,5 %:*[(Xt.gZ4%^T@SqZg[s=<A>7F-Ue>+<HMpd7hIZae$MOQ/XZV9YO)<a"^q^-"AoA'D$2j%9=Gs*!b=Y"]`>aK7fiY&/HYu=!K.$$!3#rg!$_RG0,"Q_RW:asi=\Ed:IP>GcM`Lu7goHU2ZhGJ6NI3>!t9)^2$8+3.09T+*03)frV]Y=3u9=I%>tKD!Z61dn0J5L4TmJ@MZlHX-Q``:)bZk,s7q-RDZEuMNrVfVM#c'K2_R#mGJbSn %:3Hq;=M#oaeF903;H1p%Z!:'XN!:'Uc*^'p31dqE+*d8`#@gP:!n14M=o.u3"1CXdN!'B:4#rMbR11^QE$8DT.*<f(Zs8P@d0b1fb<t-Mf!K@[c!f6nG#=/@K$Vpddc:a9u(7PIls765!$U6(9#\='I!(-a-"X-eN+T`?$!XM.#5la1N5lgM+mg;-?><P[l!DA=N0a^Q&!Wn,o3u=Y/8LZ(i"%rq"O#$o)F*A1`&6BEU(.C>qNt>7r %:"b.%(!fCUmD*6bZ4Tp9*gcmo,"FU@I)G($T!BhmT!)!_d!,E)H5s5]Ee\fY3F#_N(!008i9K*MC1e.NIP6'H/"?-AQjZc(#$Z@=U"*=QL#;lgA!*9_#"p)DW",T;Hs8Pq+<=:Sc6UWd98ImO@Rg"EJi=AQ]N<OM8=U)tJM#dSUNrt@A:C"uAaT0E_B`Ld-LB`G4K`Hf,K`Hf,K`FOA^]-)#<A+S0CD:OiaT0E_aT0E_aT0E_gE7#; %:aT0E_aT0E_5B),P9LfsX(V*<b#nSBn,U!785oM0X&0V)h+T`?0$'6_FO=^d#+WqIB!Yk\7+T`?,&ATk+W$MhM+XRmH!YcdZ'HmMl+T`?$!YcdZ'HmMl+T`?$!YcdZ'HmMls8O5D'HmMl+T`?$!YcdZ'HmMl+T`?$!XL56W$Mh)+UNh\#t#h&Z%W13!<<(Q!/1E,!/1E,!%YF(-Oin'%tt";!/1E,!/1E,!/1D%&h(J42$9hSHBfnX %:g-<;-fj!/nqZ;g7mRuk>AH4mO2=arPqsTg*-/er/!Cm8K]$Q$.73F<!=TLA\f.?t&/H>c&!!"SN!<,/6!!"SN!%e0N/H>c&!!"SN!*oTo!3)M$B+$d51CSKt!e6i)57g'L6h!\D7IdJkV%Q2t!ff/+3V-tR@fRYb")m(;,m"3t&ooW-![e!U-NOR@!A=]\R/qGA,sr,U$7>i]QN@-d>m)GU$!RFc'(H-.!@IsZ.ffr($=-:Iq@g!o %:5la\9:C'H2>p*W4!$)=HE<:7aMuo%?a@cPD%T<@$cN';\P62'l9f1X>!]:*82ZQi)-QrIc!`/V^!dthWs1^Js4XB=nlMt]#AHGRWVZ8F[<GMRX!X`cF70>%A'HmMXs8VBlW<B+!VZ<Up,6TnL"9>P-VZ<UpVZ8"F*\.:++T`AF#<r:6,(3QZ*rsqP+?<="fE!Zb!71dF5;Q19^Gc1I!/1E,!/1E,!/1DN-NaDO0`aQ?Ns)We)(fen %:6NQKQq#YI7@fVJiK`G`e!`2H;!d"E%!:r,MF<lA:Y>"uso034K!(AJ5!&1g9^Ceam %:!!!#(!.b2o!:U![!;Sn\!d"H9!d.iM+8kp7q<J%H!:'XN!:'XN!:'XN!:'XN!,DQ70`Uns#n/["P7,J4aT0E_aT0E_aT0E_aT0E_W;lol!$"?Z!d,Xn%*8N-"/u=Q1B@"Ici??35lcE85lgKV?N=F5?N=F5?N=F5?T`]9?o]*7!&GNR!q62QD$"2d3rq2>8H8e<+92FQ3rnaML.5ufFCdjO@rGm#!+c-2s-1q&*mF9= %:~> %%EndAGDEmbeddedDoc %%BeginResource: procset Altsys_header 4 0 userdict begin /AltsysDict 300 dict def end AltsysDict begin /bdf{bind def}bind def /xdf{exch def}bdf /defed{where{pop true}{false}ifelse}bdf /ndf{1 index where{pop pop pop}{dup xcheck{bind}if def}ifelse}bdf /d{setdash}bdf /h{closepath}bdf /H{}bdf /J{setlinecap}bdf /j{setlinejoin}bdf /M{setmiterlimit}bdf /n{newpath}bdf /N{newpath}bdf /q{gsave}bdf /Q{grestore}bdf /w{setlinewidth}bdf /Xic{matrix invertmatrix concat}bdf /Xq{matrix currentmatrix mark}bdf /XQ{cleartomark setmatrix}bdf /sepdef{ dup where not { AltsysSepDict } if 3 1 roll exch put }bdf /st{settransfer}bdf /colorimage defed /_rci xdf /cntr 0 def /readbinarystring{ /cntr 0 def 2 copy readstring { { dup (\034) search { length exch pop exch dup length 0 ne { dup dup 0 get 32 sub 0 exch put /cntr cntr 1 add def } { pop 1 string dup 0 6 index read pop 32 sub put }ifelse 3 copy putinterval pop 1 add 1 index length 1 sub 1 index sub dup 0 le {pop pop exit}if getinterval } { pop exit } ifelse } loop }if cntr 0 gt { pop 2 copy dup length cntr sub cntr getinterval readbinarystring } if pop exch pop } bdf /_NXLevel2 defed { _NXLevel2 not { /colorimage where { userdict eq { /_rci false def } if } if } if } if /md defed{ md type /dicttype eq { /colorimage where { md eq { /_rci false def }if }if /settransfer where { md eq { /st systemdict /settransfer get def }if }if }if }if /setstrokeadjust defed { true setstrokeadjust /C{curveto}bdf /L{lineto}bdf /m{moveto}bdf } { /dr{transform .25 sub round .25 add exch .25 sub round .25 add exch itransform}bdf /C{dr curveto}bdf /L{dr lineto}bdf /m{dr moveto}bdf /setstrokeadjust{pop}bdf }ifelse /privrectpath { 4 -2 roll m dtransform round exch round exch idtransform 2 copy 0 lt exch 0 lt xor {dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto} {exch dup 0 rlineto exch 0 exch rlineto neg 0 rlineto} ifelse closepath }bdf /rectclip{newpath privrectpath clip newpath}def /rectfill{gsave newpath privrectpath fill grestore}def /rectstroke{gsave newpath privrectpath stroke grestore}def /_fonthacksave false def /currentpacking defed { /_bfh {/_fonthacksave currentpacking def false setpacking} bdf /_efh {_fonthacksave setpacking} bdf } { /_bfh {} bdf /_efh {} bdf }ifelse /packedarray{array astore readonly}ndf /` { false setoverprint /-save0- save def 5 index concat pop storerect left bottom width height rectclip pop /MMdict_count countdictstack def /MMop_count count 1 sub def userdict begin /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath } bdf /currentpacking defed{true setpacking}if /min{2 copy gt{exch}if pop}bdf /max{2 copy lt{exch}if pop}bdf /xformfont { currentfont exch makefont setfont } bdf /fhnumcolors 1 statusdict begin /processcolors defed { pop processcolors } { /deviceinfo defed { deviceinfo /Colors known { pop deviceinfo /Colors get } if } if } ifelse end def /printerRes gsave matrix defaultmatrix setmatrix 72 72 dtransform abs exch abs max grestore def /graycalcs [ {Angle Frequency} {GrayAngle GrayFrequency} {0 Width Height matrix defaultmatrix idtransform dup mul exch dup mul add sqrt 72 exch div} {0 GrayWidth GrayHeight matrix defaultmatrix idtransform dup mul exch dup mul add sqrt 72 exch div} ] def /calcgraysteps { forcemaxsteps { maxsteps } { /currenthalftone defed {currenthalftone /dicttype eq}{false}ifelse { currenthalftone begin HalftoneType 4 le {graycalcs HalftoneType 1 sub get exec} { HalftoneType 5 eq { Default begin {graycalcs HalftoneType 1 sub get exec} end } {0 60} ifelse } ifelse end } { currentscreen pop exch } ifelse printerRes 300 max exch div exch 2 copy sin mul round dup mul 3 1 roll cos mul round dup mul add 1 add dup maxsteps gt {pop maxsteps} if dup minsteps lt {pop minsteps} if } ifelse } bdf /nextrelease defed { /languagelevel defed not { /framebuffer defed { 0 40 string framebuffer 9 1 roll 8 {pop} repeat dup 516 eq exch 520 eq or { /fhnumcolors 3 def /currentscreen {60 0 {pop pop 1}}bdf /calcgraysteps {maxsteps} bdf }if }if }if }if fhnumcolors 1 ne { /calcgraysteps {maxsteps} bdf } if /currentpagedevice defed { currentpagedevice /PreRenderingEnhance known { currentpagedevice /PreRenderingEnhance get { /calcgraysteps { forcemaxsteps {maxsteps} {256 maxsteps min} ifelse } def } if } if } if /gradfrequency 144 def printerRes 1000 lt { /gradfrequency 72 def } if /adjnumsteps { dup dtransform abs exch abs max printerRes div gradfrequency mul round 5 max min }bdf /goodsep { spots exch get 4 get dup sepname eq exch (_vc_Registration) eq or }bdf /BeginGradation defed {/bb{BeginGradation}bdf} {/bb{}bdf} ifelse /EndGradation defed {/eb{EndGradation}bdf} {/eb{}bdf} ifelse /bottom -0 def /delta -0 def /frac -0 def /height -0 def /left -0 def /numsteps1 -0 def /radius -0 def /right -0 def /top -0 def /width -0 def /xt -0 def /yt -0 def /df currentflat def /tempstr 1 string def /clipflatness currentflat def /inverted? 0 currenttransfer exec .5 ge def /tc1 [0 0 0 1] def /tc2 [0 0 0 1] def /storerect{/top xdf /right xdf /bottom xdf /left xdf /width right left sub def /height top bottom sub def}bdf /concatprocs{ systemdict /packedarray known {dup type /packedarraytype eq 2 index type /packedarraytype eq or}{false}ifelse { /proc2 exch cvlit def /proc1 exch cvlit def proc1 aload pop proc2 aload pop proc1 length proc2 length add packedarray cvx } { /proc2 exch cvlit def /proc1 exch cvlit def /newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx }ifelse }bdf /i{dup 0 eq {pop df dup} {dup} ifelse /clipflatness xdf setflat }bdf version cvr 38.0 le {/setrgbcolor{ currenttransfer exec 3 1 roll currenttransfer exec 3 1 roll currenttransfer exec 3 1 roll setrgbcolor}bdf}if /vms {/vmsv save def} bdf /vmr {vmsv restore} bdf /vmrs{vmsv restore /vmsv save def}bdf /eomode{ {/filler /eofill load def /clipper /eoclip load def} {/filler /fill load def /clipper /clip load def} ifelse }bdf /normtaper{}bdf /logtaper{9 mul 1 add log}bdf /CD{ /NF exch def { exch dup /FID ne 1 index/UniqueID ne and {exch NF 3 1 roll put} {pop pop} ifelse }forall NF }bdf /MN{ 1 index length /Len exch def dup length Len add string dup Len 4 -1 roll putinterval dup 0 4 -1 roll putinterval }bdf /RC{4 -1 roll /ourvec xdf 256 string cvs(|______)anchorsearch {1 index MN cvn/NewN exch def cvn findfont dup maxlength dict CD dup/FontName NewN put dup /Encoding ourvec put NewN exch definefont pop}{pop}ifelse}bdf /RF{ dup FontDirectory exch known {pop 3 -1 roll pop} {RC} ifelse }bdf /FF{dup 256 string cvs(|______)exch MN cvn dup FontDirectory exch known {exch pop findfont 3 -1 roll pop} {pop dup findfont dup maxlength dict CD dup dup /Encoding exch /Encoding get 256 array copy 7 -1 roll {3 -1 roll dup 4 -2 roll put}forall put definefont} ifelse}bdf /RCJ{4 -1 roll /ourvec xdf 256 string cvs (|______) anchorsearch {pop cvn dup FDFJ exch 1 index eq { _bfh findfont _efh dup maxlength dict CD dup /FontName 3 index put dup /Encoding ourvec put 1 index exch definefont pop } {exch pop} ifelse } {pop} ifelse }bdf /RFJ{ dup FontDirectory exch known {pop 3 -1 roll pop} {RCJ} ifelse }bdf /hasfont { /resourcestatus where { pop /Font resourcestatus { pop pop true } { false } ifelse } { dup FontDirectory exch known {pop true} { 256 string cvs (fonts/) exch MN status {pop pop pop pop true} {false} ifelse } ifelse } ifelse }bdf /FDFJ { dup hasfont not { pop /Ryumin-Light-83pv-RKSJ-H hasfont { /Ryumin-Light-83pv-RKSJ-H } { /Courier } ifelse } if }bdf /FFJ{ _bfh dup 256 string cvs (|______)exch MN cvn dup FontDirectory exch known { exch pop findfont 3 -1 roll pop } { pop FDFJ dup findfont dup maxlength dict CD dup dup /Encoding exch /Encoding get dup length 256 eq { 256 array copy 7 -1 roll { 3 -1 roll dup 4 -2 roll put }forall put definefont } { 7 -1 roll pop pop pop pop pop findfont } ifelse } ifelse _efh }bdf /GS { dup hasfont { findfont exch makesetfont exch pop ts } { pop pop pop ts } ifelse } bdf /RCK{4 -1 roll /ourvec xdf 256 string cvs (|______) anchorsearch {pop cvn dup FDFK exch 1 index eq { _bfh findfont _efh dup maxlength dict CD dup /FontName 3 index put dup /Encoding ourvec put 1 index exch definefont pop } {exch pop} ifelse } {pop} ifelse }bdf /RFK{ dup FontDirectory exch known {pop 3 -1 roll pop} {RCK} ifelse }bdf /hasfont { /resourcestatus where { pop /Font resourcestatus { pop pop true } { false } ifelse } { dup FontDirectory exch known {pop true} { 256 string cvs (fonts/) exch MN status {pop pop pop pop true} {false} ifelse } ifelse } ifelse }bdf /FDFK { dup hasfont not { pop /JCsm hasfont { /JCsm } { /Courier } ifelse } if }bdf /FFK{ _bfh dup 256 string cvs (|______)exch MN cvn dup FontDirectory exch known { exch pop findfont 3 -1 roll pop } { pop FDFK dup findfont dup maxlength dict CD dup dup /Encoding exch /Encoding get 256 array copy 7 -1 roll { 3 -1 roll dup 4 -2 roll put }forall put definefont } ifelse _efh }bdf /RCTC{4 -1 roll /ourvec xdf 256 string cvs (|______) anchorsearch {pop cvn dup FDFTC exch 1 index eq { _bfh findfont _efh dup maxlength dict CD dup /FontName 3 index put dup /Encoding ourvec put 1 index exch definefont pop } {exch pop} ifelse } {pop} ifelse }bdf /RFTC{ dup FontDirectory exch known {pop 3 -1 roll pop} {RCTC} ifelse }bdf /FDFTC { dup hasfont not { pop /DFMing-Lt-HK-BF hasfont { /DFMing-Lt-HK-BF } { /Courier } ifelse } if }bdf /FFTC{ _bfh dup 256 string cvs (|______)exch MN cvn dup FontDirectory exch known { exch pop findfont 3 -1 roll pop } { pop FDFTC dup findfont dup maxlength dict CD dup dup /Encoding exch /Encoding get 256 array copy 7 -1 roll { 3 -1 roll dup 4 -2 roll put }forall put definefont } ifelse _efh }bdf /RCSC{4 -1 roll /ourvec xdf 256 string cvs (|______) anchorsearch {pop cvn dup FDFSC exch 1 index eq { _bfh findfont _efh dup maxlength dict CD dup /FontName 3 index put dup /Encoding ourvec put 1 index exch definefont pop } {exch pop} ifelse } {pop} ifelse }bdf /RFSC{ dup FontDirectory exch known {pop 3 -1 roll pop} {RCSC} ifelse }bdf /FDFSC { dup hasfont not { pop /zh-gbscript-1.11 hasfont { /zh-gbscript-1.11 } { /Courier } ifelse } if }bdf /FFSC{ _bfh dup 256 string cvs (|______)exch MN cvn dup FontDirectory exch known { exch pop findfont 3 -1 roll pop } { pop FDFSC dup findfont dup maxlength dict CD dup dup /Encoding exch /Encoding get 256 array copy 7 -1 roll { 3 -1 roll dup 4 -2 roll put }forall put definefont } ifelse _efh }bdf /fps{ currentflat exch dup 0 le{pop 1}if { dup setflat 3 index stopped {1.3 mul dup 3 index gt{pop setflat pop pop stop}if} {exit} ifelse }loop pop setflat pop pop }bdf /fp{100 currentflat fps}bdf /clipper{clip}bdf /W{/clipper load 100 clipflatness dup setflat fps}bdf userdict begin /BDFontDict 29 dict def end BDFontDict begin /bu{}def /bn{}def /setTxMode{av 70 ge{pop}if pop}def /gm{m}def /show{pop}def /gr{pop}def /fnt{pop pop pop}def /fs{pop}def /fz{pop}def /lin{pop pop}def /:M {pop pop} def /sf {pop} def /S {pop} def /@b {pop pop pop pop pop pop pop pop} def /_bdsave /save load def /_bdrestore /restore load def /save { dup /fontsave eq {null} {_bdsave} ifelse } def /restore { dup null eq { pop } { _bdrestore } ifelse } def /fontsave null def end /MacVec 256 array def MacVec 0 /Helvetica findfont /Encoding get 0 128 getinterval putinterval MacVec 127 /DEL put MacVec 16#27 /quotesingle put MacVec 16#60 /grave put /NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT/FF/CR/SO/SI /DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US MacVec 0 32 getinterval astore pop /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute /agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave /ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute /ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis /dagger/degree/cent/sterling/section/bullet/paragraph/germandbls /registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash /infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation /product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash /questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft /guillemotright/ellipsis/nbspace/Agrave/Atilde/Otilde/OE/oe /endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge /ydieresis/Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi/fl /daggerdbl/periodcentered/quotesinglbase/quotedblbase /perthousand/Acircumflex/Ecircumflex/Aacute /Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave/Oacute/Ocircumflex /apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde /macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron MacVec 128 128 getinterval astore pop /findheaderfont { /Helvetica findfont } def end %. AltsysDict %%EndResource %%EndProlog %%BeginSetup AltsysDict begin _bfh _efh end %. AltsysDict %%EndSetup AltsysDict begin /onlyk4{false}ndf /ccmyk{dup 5 -1 roll sub 0 max exch}ndf /cmyk2gray{ 4 -1 roll 0.3 mul 4 -1 roll 0.59 mul 4 -1 roll 0.11 mul add add add 1 min neg 1 add }bdf /setcmykcolor{1 exch sub ccmyk ccmyk ccmyk pop setrgbcolor}ndf /maxcolor { max max max } ndf /maxspot { pop } ndf /setcmykcoloroverprint{4{dup -1 eq{pop 0}if 4 1 roll}repeat setcmykcolor}ndf /findcmykcustomcolor{5 packedarray}ndf /setcustomcolor{exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop}ndf /setseparationgray{setgray}ndf /setoverprint{pop}ndf /currentoverprint false ndf /cmykbufs2gray{ 0 1 2 index length 1 sub { 4 index 1 index get 0.3 mul 4 index 2 index get 0.59 mul 4 index 3 index get 0.11 mul 4 index 4 index get add add add cvi 255 min 255 exch sub 2 index 3 1 roll put }for 4 1 roll pop pop pop }bdf /colorimage{ pop pop [ 5 -1 roll/exec cvx 6 -1 roll/exec cvx 7 -1 roll/exec cvx 8 -1 roll/exec cvx /cmykbufs2gray cvx ]cvx image } %. version 47.1 on Linotronic of Postscript defines colorimage incorrectly (rgb model only) version cvr 47.1 le statusdict /product get (Lino) anchorsearch{pop pop true}{pop false}ifelse and{userdict begin bdf end}{ndf}ifelse fhnumcolors 1 ne {/yt save def} if /customcolorimage{ aload pop (_vc_Registration) eq { pop pop pop pop separationimage } { /ik xdf /iy xdf /im xdf /ic xdf ic im iy ik cmyk2gray /xt xdf currenttransfer {dup 1.0 exch sub xt mul add}concatprocs st image } ifelse }ndf fhnumcolors 1 ne {yt restore} if fhnumcolors 3 ne {/yt save def} if /customcolorimage{ aload pop (_vc_Registration) eq { pop pop pop pop separationimage } { /ik xdf /iy xdf /im xdf /ic xdf 1.0 dup ic ik add min sub 1.0 dup im ik add min sub 1.0 dup iy ik add min sub /ic xdf /iy xdf /im xdf currentcolortransfer 4 1 roll {dup 1.0 exch sub ic mul add}concatprocs 4 1 roll {dup 1.0 exch sub iy mul add}concatprocs 4 1 roll {dup 1.0 exch sub im mul add}concatprocs 4 1 roll setcolortransfer {/dummy xdf dummy}concatprocs{dummy}{dummy}true 3 colorimage } ifelse }ndf fhnumcolors 3 ne {yt restore} if fhnumcolors 4 ne {/yt save def} if /customcolorimage{ aload pop (_vc_Registration) eq { pop pop pop pop separationimage } { /ik xdf /iy xdf /im xdf /ic xdf currentcolortransfer {1.0 exch sub ik mul ik sub 1 add}concatprocs 4 1 roll {1.0 exch sub iy mul iy sub 1 add}concatprocs 4 1 roll {1.0 exch sub im mul im sub 1 add}concatprocs 4 1 roll {1.0 exch sub ic mul ic sub 1 add}concatprocs 4 1 roll setcolortransfer {/dummy xdf dummy}concatprocs{dummy}{dummy}{dummy} true 4 colorimage } ifelse }ndf fhnumcolors 4 ne {yt restore} if /separationimage{image}ndf /spotascmyk false ndf /newcmykcustomcolor{6 packedarray}ndf /inkoverprint false ndf /setinkoverprint{pop}ndf /setspotcolor { spots exch get dup 4 get (_vc_Registration) eq {pop 1 exch sub setseparationgray} {0 5 getinterval exch setcustomcolor} ifelse }ndf /currentcolortransfer{currenttransfer dup dup dup}ndf /setcolortransfer{st pop pop pop}ndf /fas{}ndf /sas{}ndf /fhsetspreadsize{pop}ndf /filler{fill}bdf /F{gsave {filler}fp grestore}bdf /f{closepath F}bdf /S{gsave {stroke}fp grestore}bdf /s{closepath S}bdf userdict /islevel2 systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put islevel2 not { /currentcmykcolor { 0 0 0 1 currentgray sub } ndf } if /tc { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { tc add add add 0 ne } bind def /fhiscomposite where not { userdict /fhiscomposite islevel2 { gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore add add add 4 eq } { 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and } ifelse put } { pop } ifelse /bc4 [0 0 0 0] def /_lfp4 { 1 pop /yt xdf /xt xdf /ang xdf storerect /taperfcn xdf /k2 xdf /y2 xdf /m2 xdf /c2 xdf /k1 xdf /y1 xdf /m1 xdf /c1 xdf c1 c2 sub abs m1 m2 sub abs y1 y2 sub abs k1 k2 sub abs maxcolor calcgraysteps mul abs round height abs adjnumsteps dup 1 lt {pop 1} if 1 sub /numsteps1 xdf currentflat mark currentflat clipflatness /delta top bottom sub numsteps1 1 add div def /right right left sub def /botsv top delta sub def { { W xt yt translate ang rotate xt neg yt neg translate dup setflat /bottom botsv def 0 1 numsteps1 { numsteps1 dup 0 eq {pop pop 0.5} {div} ifelse taperfcn /frac xdf bc4 0 c2 c1 sub frac mul c1 add put bc4 1 m2 m1 sub frac mul m1 add put bc4 2 y2 y1 sub frac mul y1 add put bc4 3 k2 k1 sub frac mul k1 add put bc4 vc 1 index setflat { mark {newpath left bottom right delta rectfill}stopped {cleartomark exch 1.3 mul dup setflat exch 2 copy gt{stop}if} {cleartomark exit}ifelse }loop /bottom bottom delta sub def }for } gsave stopped grestore {exch pop 2 index exch 1.3 mul dup 100 gt{cleartomark setflat stop}if} {exit}ifelse }loop cleartomark setflat }bdf /bcs [0 0] def /_lfs4 { /yt xdf /xt xdf /ang xdf storerect /taperfcn xdf /tint2 xdf /tint1 xdf bcs exch 1 exch put tint1 tint2 sub abs bcs 1 get maxspot calcgraysteps mul abs round height abs adjnumsteps dup 2 lt {pop 2} if 1 sub /numsteps1 xdf currentflat mark currentflat clipflatness /delta top bottom sub numsteps1 1 add div def /right right left sub def /botsv top delta sub def { { W xt yt translate ang rotate xt neg yt neg translate dup setflat /bottom botsv def 0 1 numsteps1 { numsteps1 div taperfcn /frac xdf bcs 0 1.0 tint2 tint1 sub frac mul tint1 add sub put bcs vc 1 index setflat { mark {newpath left bottom right delta rectfill}stopped {cleartomark exch 1.3 mul dup setflat exch 2 copy gt{stop}if} {cleartomark exit}ifelse }loop /bottom bottom delta sub def }for } gsave stopped grestore {exch pop 2 index exch 1.3 mul dup 100 gt{cleartomark setflat stop}if} {exit}ifelse }loop cleartomark setflat }bdf /_rfs6 { /tint2 xdf /tint1 xdf bcs exch 1 exch put /inrad xdf /radius xdf /yt xdf /xt xdf tint1 tint2 sub abs bcs 1 get maxspot calcgraysteps mul abs round radius inrad sub abs adjnumsteps dup 1 lt {pop 1} if 1 sub /numsteps1 xdf radius inrad sub numsteps1 dup 0 eq {pop} {div} ifelse 2 div /halfstep xdf currentflat mark currentflat clipflatness { { dup setflat W 0 1 numsteps1 { dup /radindex xdf numsteps1 dup 0 eq {pop pop 0.5} {div} ifelse /frac xdf bcs 0 tint2 tint1 sub frac mul tint1 add put bcs vc 1 index setflat { newpath mark xt yt radius inrad sub 1 frac sub mul halfstep add inrad add 0 360 { arc radindex numsteps1 ne inrad 0 gt or { xt yt numsteps1 0 eq { inrad } { radindex 1 add numsteps1 div 1 exch sub radius inrad sub mul halfstep add inrad add }ifelse dup xt add yt moveto 360 0 arcn } if fill }stopped {cleartomark exch 1.3 mul dup setflat exch 2 copy gt{stop}if} {cleartomark exit}ifelse }loop }for } gsave stopped grestore {exch pop 2 index exch 1.3 mul dup 100 gt{cleartomark setflat stop}if} {exit}ifelse }loop cleartomark setflat }bdf /_rfp6 { 1 pop /k2 xdf /y2 xdf /m2 xdf /c2 xdf /k1 xdf /y1 xdf /m1 xdf /c1 xdf /inrad xdf /radius xdf /yt xdf /xt xdf c1 c2 sub abs m1 m2 sub abs y1 y2 sub abs k1 k2 sub abs maxcolor calcgraysteps mul abs round radius inrad sub abs adjnumsteps dup 1 lt {pop 1} if 1 sub /numsteps1 xdf radius inrad sub numsteps1 dup 0 eq {pop} {div} ifelse 2 div /halfstep xdf currentflat mark currentflat clipflatness { { dup setflat W 0 1 numsteps1 { dup /radindex xdf numsteps1 dup 0 eq {pop pop 0.5} {div} ifelse /frac xdf bc4 0 c2 c1 sub frac mul c1 add put bc4 1 m2 m1 sub frac mul m1 add put bc4 2 y2 y1 sub frac mul y1 add put bc4 3 k2 k1 sub frac mul k1 add put bc4 vc 1 index setflat { newpath mark xt yt radius inrad sub 1 frac sub mul halfstep add inrad add 0 360 { arc radindex numsteps1 ne inrad 0 gt or { xt yt numsteps1 0 eq { inrad } { radindex 1 add numsteps1 div 1 exch sub radius inrad sub mul halfstep add inrad add }ifelse dup xt add yt moveto 360 0 arcn } if fill }stopped {cleartomark exch 1.3 mul dup setflat exch 2 copy gt{stop}if} {cleartomark exit}ifelse }loop }for } gsave stopped grestore {exch pop 2 index exch 1.3 mul dup 100 gt{cleartomark setflat stop}if} {exit}ifelse }loop cleartomark setflat }bdf /lfp4{_lfp4}ndf /lfs4{_lfs4}ndf /rfs6{_rfs6}ndf /rfp6{_rfp6}ndf /cvc [0 0 0 1] def /vc{ AltsysDict /cvc 2 index put aload length dup 4 eq {pop dup -1 eq{pop setrgbcolor}{setcmykcolor}ifelse} {6 eq {sethexcolor} {setspotcolor} ifelse } ifelse }bdf 0 setseparationgray /imgr {9948.87 8060.14 10544.1 8902.03 } def /bleed 0 def /clpr {9948.87 8060.14 10544.1 8902.03 } def /xs 1 def /ys 1 def /botx 0 def /overlap 0 def /wdist 18 def 0 2 mul fhsetspreadsize 0 0 ne {/df 0 def /clipflatness 0 def} if /maxsteps 256 def /forcemaxsteps false def /minsteps 0 def userdict begin /AGDOrigMtx matrix currentmatrix def end vms -10130 -8439 translate /currentpacking defed{false setpacking}if /spots[ 1 0 0 0 (Process Cyan) false newcmykcustomcolor 0 1 0 0 (Process Magenta) false newcmykcustomcolor 0 0 1 0 (Process Yellow) false newcmykcustomcolor 0 0 0 1 (Process Black) false newcmykcustomcolor ]def n [] 0 d 3.863708 M 1 w 0 j 0 J false setoverprint 0 i false eomode [0 0 0 1]vc vms 10156.0404 8491.5296 m 10155.9044 8481.6775 10159.0846 8472.6331 10165.4321 8464.0634 C 10157.4287 8456.4363 L 10146.6564 8467.1826 10139.7981 8478.5362 10136.854 8490.8099 C 10139.4893 8489.3973 10142.5015 8488.5961 10145.7008 8488.5961 C 10149.5135 8488.5961 10153.0803 8489.575 10156.0404 8491.5296 C h 10187.7124 8446.6715 m 10184.7113 8444.3035 10181.5073 8441.9619 10178.1005 8439.6431 C 10174.68 8441.9729 10171.4881 8444.3095 10168.4947 8446.6715 C 10165.4205 8449.0971 10162.5593 8451.5505 10159.9108 8454.0357 C 10167.5902 8461.3741 L 10170.5624 8457.8019 10173.9538 8454.5112 10178.1031 8451.1581 C 10196.1365 8465.6152 10203.1469 8482.2105 10199.2783 8501.0251 C 10178.1397 8501.0251 L 10163.4398 8501.0251 L 10164.1472 8503.0007 10164.4532 8505.1295 10164.4532 8507.3485 C 10164.4532 8510.5228 10163.6644 8513.513 10162.2722 8516.1337 C 10178.0438 8516.1336 L 10220.1112 8516.1336 L 10224.3685 8489.4407 10213.5687 8467.0735 10187.7124 8446.6715 C [1 0.65 0 0.3]vc f n 10130.2032 8507.3481 m 10130.2032 8515.9073 10137.1416 8522.8458 10145.7008 8522.8458 C 10154.26 8522.8458 10161.1984 8515.9073 10161.1984 8507.3481 C 10161.1984 8498.7889 10154.26 8491.8505 10145.7008 8491.8505 C 10137.1416 8491.8505 10130.2032 8498.7889 10130.2032 8507.3481 C [0.3 0.15 0 0.1]vc f n 10243.1803 8454.1436 m 10243.1803 8453.5355 L 10245.0249 8453.4098 10245.0668 8453.3679 10245.0668 8452.194 C 10245.0668 8445.402 L 10245.0668 8443.4106 10244.7524 8442.1528 10244.1235 8441.3145 C 10243.4736 8440.4758 10242.5514 8440.0568 10241.3356 8440.0568 C 10240.1406 8440.0568 10239.2184 8440.4758 10238.5685 8441.3145 C 10237.9396 8442.1528 10237.6252 8443.4106 10237.6252 8445.402 C 10237.6252 8452.194 L 10237.6252 8453.3679 10237.6879 8453.4098 10239.5117 8453.5355 C 10239.5117 8454.1436 L 10233.6634 8454.1436 L 10233.6634 8453.5355 L 10235.508 8453.4098 10235.5499 8453.3679 10235.5499 8452.194 C 10235.5499 8444.9411 L 10235.5707 8443.7042 10235.7594 8442.5933 10236.1158 8441.8803 C 10237.0801 8439.8262 10239.2811 8439.323 10241.3356 8439.323 C 10243.4109 8439.323 10245.6119 8439.8051 10246.5762 8441.8803 C 10246.9326 8442.6141 10247.1421 8443.7253 10247.1421 8444.983 C 10247.1421 8452.194 L 10247.1421 8453.3679 10247.2051 8453.4098 10249.0286 8453.5355 C 10249.0286 8454.1436 L 10243.1803 8454.1436 L [0.05 0 0 0.75]vc f n 10250.3426 8454.1436 m 10250.3426 8453.5355 L 10252.1873 8453.4098 10252.2292 8453.3679 10252.2292 8452.194 C 10252.2292 8443.8929 L 10252.2292 8442.7817 10252.1873 8441.9852 10252.0827 8441.2934 C 10251.9566 8440.4131 10251.4538 8440.3293 10250.3637 8440.2455 C 10250.3637 8439.6374 L 10255.3318 8439.6374 L 10255.3318 8440.2455 L 10253.9692 8440.3501 10253.4661 8440.4131 10253.3404 8441.2934 C 10253.2355 8441.9852 10253.1936 8442.7817 10253.1936 8443.8929 C 10253.1936 8452.257 L 10253.2355 8452.257 L 10256.2332 8448.0434 10259.2099 8443.851 10262.1657 8439.6374 C 10263.5491 8439.6374 L 10263.5491 8449.8881 L 10263.5491 8450.9993 10263.591 8451.7957 10263.6959 8452.4876 C 10263.8217 8453.3679 10264.3248 8453.4517 10265.4149 8453.5355 C 10265.4149 8454.1436 L 10260.4468 8454.1436 L 10260.4468 8453.5355 L 10261.8091 8453.4309 10262.3122 8453.3679 10262.4379 8452.4876 C 10262.5428 8451.7957 10262.5847 8450.9993 10262.5847 8449.8881 C 10262.5847 8442.5303 L 10262.5428 8442.5722 L 10259.7968 8446.4294 10257.0716 8450.2863 10254.3674 8454.1436 C 10250.3426 8454.1436 L f n 10270.8804 8452.194 m 10270.8804 8453.3679 10270.9434 8453.4098 10272.7669 8453.5355 C 10272.7669 8454.1436 L 10266.9185 8454.1436 L 10266.9185 8453.5355 L 10268.7632 8453.4098 10268.8051 8453.3679 10268.8051 8452.194 C 10268.8051 8441.587 L 10268.8051 8440.4131 10268.7632 8440.3712 10266.9185 8440.2455 C 10266.9185 8439.6374 L 10272.7669 8439.6374 L 10272.7669 8440.2455 L 10270.9434 8440.3712 10270.8804 8440.4131 10270.8804 8441.587 C 10270.8804 8452.194 L f n 10273.9584 8454.1436 m 10273.9584 8453.5355 L 10275.1323 8453.4936 10275.384 8453.4098 10275.8034 8452.2989 C 10276.4741 8450.538 10277.2498 8448.4417 10277.9832 8446.3456 C 10280.3522 8439.6374 L 10281.8405 8439.6374 L 10284.5235 8446.8696 L 10285.3829 8449.1962 10286.2216 8451.3345 10286.7248 8452.4454 C 10287.1649 8453.4309 10287.4163 8453.4728 10288.5483 8453.5355 C 10288.5483 8454.1436 L 10283.9158 8454.1436 L 10283.9158 8453.5355 L 10285.0685 8453.4213 L 10285.6136 8453.3794 10285.6347 8453.1699 10285.5298 8452.772 C 10285.2991 8451.8501 10284.6495 8450.0068 10283.8946 8447.912 C 10281.7148 8441.8998 L 10281.6729 8441.9417 L 10279.7233 8447.3253 L 10279.0733 8449.1479 10278.4237 8450.9913 10277.8786 8452.6671 C 10277.7107 8453.191 10277.7737 8453.3794 10278.2769 8453.4213 C 10279.367 8453.5355 L 10279.367 8454.1436 L 10273.9584 8454.1436 L f n 10289.6096 8454.1436 m 10289.6096 8453.5355 L 10291.4543 8453.4098 10291.4962 8453.3679 10291.4962 8452.194 C 10291.4962 8441.587 L 10291.4962 8440.4131 10291.4543 8440.3712 10289.6096 8440.2455 C 10289.6096 8439.6374 L 10300.7197 8439.6374 L 10300.9711 8443.2641 L 10300.3423 8443.2641 L 10299.8603 8440.7064 10298.917 8440.3712 10296.2756 8440.3712 C 10295.2904 8440.3712 10294.5358 8440.4131 10294.0954 8440.5807 C 10293.6552 8440.7694 10293.5714 8441.1258 10293.5714 8442.1528 C 10293.5714 8446.7857 L 10296.5062 8446.7857 L 10298.2881 8446.7857 10298.3719 8446.2826 10298.5607 8444.9619 C 10299.1895 8444.9619 L 10299.1895 8449.3849 L 10298.5607 8449.3849 L 10298.3719 8448.0853 10298.2881 8447.5822 10296.5062 8447.5822 C 10293.5714 8447.5822 L 10293.5714 8452.6552 L 10293.5714 8453.326 10293.6763 8453.4098 10294.3471 8453.4098 C 10296.4013 8453.4098 L 10298.7913 8453.4098 10299.2733 8452.8858 10299.5666 8450.7057 C 10300.1955 8450.7057 L 10300.1955 8454.1436 L 10289.6096 8454.1436 L f n true eomode 10308.0337 8446.4713 m 10309.2914 8446.4713 10310.2558 8446.0731 10310.6121 8444.6474 C 10310.7589 8444.0605 10310.9896 8442.4046 10311.2202 8441.4402 C 10311.5346 8440.0987 10312.3311 8439.6374 10313.568 8439.6374 C 10315.2658 8439.6374 L 10315.2658 8440.2455 L 10313.6307 8440.4131 10313.2955 8441.587 10313.1068 8443.0123 C 10312.855 8444.8781 10312.4779 8446.2826 10310.2558 8446.8276 C 10310.2558 8446.8696 L 10312.2262 8447.247 10313.6726 8448.5674 10313.6726 8450.5589 C 10313.6726 8452.5714 10312.4149 8454.1436 10308.7464 8454.1436 C 10302.6255 8454.1436 L 10302.6255 8453.5355 L 10304.4701 8453.4098 10304.512 8453.3679 10304.512 8452.194 C 10304.512 8441.587 L 10304.512 8440.4131 10304.4701 8440.3712 10302.6255 8440.2455 C 10302.6255 8439.6374 L 10308.4738 8439.6374 L 10308.4738 8440.2455 L 10306.6503 8440.3712 10306.5873 8440.4131 10306.5873 8441.587 C 10306.5873 8446.4713 L 10308.0337 8446.4713 L h 10306.5873 8447.2048 m 10306.5873 8452.3616 L 10306.5873 8453.2422 10306.7341 8453.4098 10308.1175 8453.4098 C 10309.6689 8453.4098 10311.4297 8452.8439 10311.4297 8450.3701 C 10311.4297 8448.1691 10310.2766 8447.2048 10308.2432 8447.2048 C 10306.5873 8447.2048 L f n false eomode 10316.9595 8440.5807 m 10317.882 8439.7213 10319.6217 8439.323 10321.0892 8439.323 C 10324.7996 8439.323 10326.2668 8441.4402 10326.2668 8443.5785 C 10326.2668 8446.052 10324.5898 8447.2259 10322.1374 8448.1272 C 10321.4664 8448.379 L 10320.0618 8448.9029 10318.8879 8449.8043 10318.8879 8451.062 C 10318.8879 8452.5922 10319.8104 8453.7242 10321.5713 8453.7242 C 10323.374 8453.7242 10324.3803 8452.6971 10324.7155 8450.58 C 10325.3655 8450.58 L 10325.3655 8453.5355 L 10324.6528 8454.1017 10323.2272 8454.458 10321.8019 8454.458 C 10319.2446 8454.458 10316.9806 8453.1792 10316.9806 8450.4124 C 10316.9806 8448.211 10318.7414 8447.0583 10320.9424 8446.2826 C 10321.3198 8446.1358 L 10322.242 8445.7794 10324.2335 8444.8151 10324.2335 8442.9496 C 10324.2335 8441.1469 10323.0807 8440.0568 10321.2149 8440.0568 C 10319.2446 8440.0568 10317.9446 8441.587 10317.4207 8443.9348 C 10316.75 8443.9348 L 10316.9595 8440.5807 L f n 10332.0455 8452.194 m 10332.0455 8453.3679 10332.1085 8453.4098 10333.932 8453.5355 C 10333.932 8454.1436 L 10328.0836 8454.1436 L 10328.0836 8453.5355 L 10329.9283 8453.4098 10329.9702 8453.3679 10329.9702 8452.194 C 10329.9702 8441.587 L 10329.9702 8440.4131 10329.9283 8440.3712 10328.0836 8440.2455 C 10328.0836 8439.6374 L 10333.932 8439.6374 L 10333.932 8440.2455 L 10332.1085 8440.3712 10332.0455 8440.4131 10332.0455 8441.587 C 10332.0455 8452.194 L f n 10342.838 8453.4098 m 10344.0749 8453.4098 L 10346.5273 8453.4098 10346.9677 8452.9485 10347.2191 8450.6638 C 10347.848 8450.6638 L 10347.848 8454.1436 L 10335.7527 8454.1436 L 10335.7527 8450.6638 L 10336.3815 8450.6638 L 10336.6329 8452.9485 10337.0734 8453.4098 10339.5258 8453.4098 C 10340.7627 8453.4098 L 10340.7627 8441.587 L 10340.7627 8440.4131 10340.6997 8440.3712 10338.4568 8440.2455 C 10338.4568 8439.6374 L 10345.1439 8439.6374 L 10345.1439 8440.2455 L 10342.901 8440.3712 10342.838 8440.4131 10342.838 8441.587 C 10342.838 8453.4098 L f n 10359.2249 8439.6374 m 10359.2249 8440.2455 L 10357.0658 8440.3712 10357.0028 8440.4339 10357.0028 8441.587 C 10357.0028 8444.7943 L 10357.0028 8445.2974 10357.0658 8445.6118 10357.2753 8446.0309 C 10358.3446 8448.1691 10359.9167 8451.1039 10360.5664 8452.1521 C 10361.2793 8453.3049 10361.405 8453.4728 10362.8096 8453.5355 C 10362.8096 8454.1436 L 10358.2186 8454.1436 L 10358.2186 8453.5355 L 10359.3506 8453.4309 L 10359.728 8453.389 10359.7699 8453.1584 10359.6023 8452.7601 C 10359.078 8451.5021 10357.6527 8448.6304 10356.5415 8446.4502 C 10356.4996 8446.4502 L 10355.2838 8448.6512 10354.1937 8450.7687 10353.2716 8452.7809 C 10353.104 8453.1584 10353.1878 8453.3679 10353.5022 8453.4098 C 10354.7388 8453.5355 L 10354.7388 8454.1436 L 10349.3097 8454.1436 L 10349.3097 8453.5355 L 10350.4206 8453.4936 10350.7139 8453.3679 10351.1752 8452.4876 C 10352.3491 8450.3282 10353.586 8448.0015 10354.6131 8445.9263 C 10354.8437 8445.4861 10354.9275 8445.1295 10354.9275 8444.7105 C 10354.9275 8441.587 L 10354.9275 8440.4339 10354.8648 8440.3712 10352.7054 8440.2455 C 10352.7054 8439.6374 L 10359.2249 8439.6374 L f n 10238.464 8475.594 m 10238.464 8476.7679 10238.5267 8476.8098 10240.3505 8476.9355 C 10240.3505 8477.5436 L 10234.5022 8477.5436 L 10234.5022 8476.9355 L 10236.3468 8476.8098 10236.3887 8476.7679 10236.3887 8475.594 C 10236.3887 8465.9092 L 10236.3887 8463.8758 10236.0324 8462.8699 10235.5292 8462.2618 C 10235.068 8461.7168 10234.3134 8461.3605 10233.5797 8461.1717 C 10233.6846 8460.6478 L 10234.5022 8460.6897 10235.5081 8460.9203 10236.3257 8461.2978 C 10238.2122 8462.1569 10238.464 8463.897 10238.464 8466.0352 C 10238.464 8475.594 L f n true eomode 10254.1152 8463.0375 m 10254.1152 8463.6455 L 10252.8994 8463.7502 10252.6688 8463.8132 10252.2916 8464.9032 C 10247.8475 8477.5436 L 10246.2961 8477.5436 L 10244.0951 8471.3386 L 10243.4455 8469.515 10242.5649 8466.9993 10241.8312 8465.092 C 10241.391 8463.96 10241.2023 8463.7082 10239.8816 8463.6455 C 10239.8816 8463.0375 L 10244.4934 8463.0375 L 10244.4934 8463.6455 L 10243.4036 8463.7502 L 10242.7744 8463.8132 10242.7117 8464.0227 10242.8793 8464.5888 C 10243.2357 8465.8465 10243.6758 8467.1461 10244.1582 8468.6345 C 10248.8537 8468.6345 L 10250.2583 8464.6307 L 10250.4678 8464.0227 10250.3629 8463.792 10249.6921 8463.7294 C 10248.7488 8463.6455 L 10248.7488 8463.0375 L 10254.1152 8463.0375 L h 10248.602 8469.4309 m 10244.4307 8469.4309 L 10245.1014 8471.5273 10245.8352 8473.5818 10246.4641 8475.4264 C 10246.5267 8475.4264 L 10248.602 8469.4309 L f n false eomode 10266.563 8477.0405 m 10265.6197 8477.4806 10264.0264 8477.858 10262.1191 8477.858 C 10259.5407 8477.858 10257.4654 8477.1035 10256.2077 8475.699 C 10255.0127 8474.3571 10254.3 8472.5544 10254.3 8470.1858 C 10254.3 8467.7331 10255.0335 8465.7627 10256.2915 8464.505 C 10257.5911 8463.2051 10259.6453 8462.7231 10261.9931 8462.7231 C 10263.6701 8462.7231 10265.5989 8463.1843 10266.6048 8463.7294 C 10266.8985 8467.2299 L 10266.2696 8467.2299 L 10265.6827 8465.0497 10264.6134 8463.4568 10261.8674 8463.4568 C 10257.5492 8463.4568 10256.6478 8467.7123 10256.6478 8470.2485 C 10256.6478 8473.6864 10258.0105 8477.1454 10261.9093 8477.1243 C 10264.0475 8477.1243 10265.5359 8476.244 10265.9341 8473.7702 C 10266.563 8473.7702 L 10266.563 8477.0405 L f n true eomode 10275.695 8477.1243 m 10279.4266 8477.1243 10280.286 8473.3719 10280.3279 8470.2904 C 10280.286 8467.2092 10279.4266 8463.4568 10275.695 8463.4568 C 10271.9638 8463.4568 10271.1044 8467.2092 10271.0625 8470.2904 C 10271.1044 8473.3719 10271.9638 8477.1243 10275.695 8477.1243 C h 10275.695 8477.858 m 10273.3891 8477.858 10271.6702 8477.1454 10270.4963 8475.8247 C 10269.3643 8474.567 10268.7147 8472.6593 10268.7147 8470.2904 C 10268.7147 8467.9426 10269.3643 8466.0141 10270.4963 8464.7564 C 10271.6702 8463.4357 10273.3891 8462.7231 10275.695 8462.7231 C 10278.022 8462.7231 10279.7199 8463.4357 10280.8938 8464.7564 C 10282.0469 8466.0141 10282.6757 8467.9426 10282.6757 8470.2904 C 10282.6757 8472.6593 10282.0469 8474.567 10280.8938 8475.8247 C 10279.7199 8477.1454 10278.022 8477.858 10275.695 8477.858 C f n 10290.9093 8463.0375 m 10294.0955 8463.0375 10296.15 8464.1903 10296.15 8467.1042 C 10296.15 8469.5777 10294.3891 8470.6678 10292.3557 8470.9403 C 10292.3557 8470.9823 L 10294.3261 8471.3805 10295.4792 8472.5963 10295.4792 8474.2106 C 10295.4792 8475.3634 10295.018 8476.2229 10294.1796 8476.789 C 10293.362 8477.3341 10292.104 8477.5644 10290.4692 8477.5436 C 10284.411 8477.5436 L 10284.411 8476.9355 L 10286.2556 8476.8098 10286.2975 8476.7679 10286.2975 8475.594 C 10286.2975 8464.9871 L 10286.2975 8463.8132 10286.2556 8463.7713 10284.411 8463.6455 C 10284.411 8463.0375 L 10290.9093 8463.0375 L h 10288.3728 8470.4791 m 10289.8822 8470.4791 L 10292.4814 8470.4791 10293.9071 8469.1795 10293.9071 8466.9574 C 10293.9071 8464.442 10292.1881 8463.7713 10290.3854 8463.7713 C 10288.7083 8463.7713 10288.3728 8464.0857 10288.3728 8465.3853 C 10288.3728 8470.4791 L h 10288.3728 8475.7616 m 10288.3728 8476.663 10288.4358 8476.789 10290.0706 8476.8098 C 10291.5801 8476.8309 10293.2779 8476.244 10293.2779 8474.0846 C 10293.2779 8472.0304 10291.9575 8471.2129 10289.7773 8471.2129 C 10288.3728 8471.2129 L 10288.3728 8475.7616 L f n false eomode 10298.681 8463.9808 m 10299.6035 8463.1213 10301.3432 8462.7231 10302.8107 8462.7231 C 10306.5212 8462.7231 10307.9884 8464.8402 10307.9884 8466.9785 C 10307.9884 8469.452 10306.3113 8470.6259 10303.8589 8471.5273 C 10303.1879 8471.779 L 10301.7833 8472.303 10300.6095 8473.2043 10300.6095 8474.462 C 10300.6095 8475.9923 10301.5319 8477.1243 10303.2928 8477.1243 C 10305.0955 8477.1243 10306.1018 8476.0972 10306.4371 8473.98 C 10307.087 8473.98 L 10307.087 8476.9355 L 10306.3743 8477.5017 10304.9487 8477.858 10303.5234 8477.858 C 10300.9661 8477.858 10298.7021 8476.5792 10298.7021 8473.8124 C 10298.7021 8471.6111 10300.463 8470.4583 10302.6639 8469.6826 C 10303.0414 8469.5358 L 10303.9635 8469.1795 10305.955 8468.2151 10305.955 8466.3497 C 10305.955 8464.5469 10304.8022 8463.4568 10302.9365 8463.4568 C 10300.9661 8463.4568 10299.6662 8464.9871 10299.1422 8467.3348 C 10298.4715 8467.3348 L 10298.681 8463.9808 L f n vmrs vmr vmr end %%Trailer \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/stex/jacobs-logo.pdf b/Master/texmf-dist/tex/latex/stex/jacobs-logo.pdf
new file mode 100644
index 00000000000..6e9afa1ed60
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/jacobs-logo.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/jacobs-logo.png b/Master/texmf-dist/tex/latex/stex/jacobs-logo.png
new file mode 100644
index 00000000000..0bbe28c44fc
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/jacobs-logo.png
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty b/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty
new file mode 100644
index 00000000000..3004b99b7ba
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty
@@ -0,0 +1,54 @@
+\RequirePackage[ngerman,USenglish]{babel}
+
+\newcommand{\mikoand}[1]% joint work with
+{{\large\sc Michael Kohlhase}\\{\normalsize\green{joint work with #1}}\\[1ex]\mikoaffiliation}
+
+\newcommand{\miko}
+{{\large\sc Michael Kohlhase}\\[1ex]
+\JacobsAffiliation}
+
+\newcommand{\mikoJacobsDFKI}{\mikoJacobsDfki}
+\newcommand{\mikoJacobsDfki}
+{{\large\sc Michael Kohlhase}\\[1ex]
+\JacobsDfkiAffiliation}
+
+\newcommand{\JacobsAffiliation}
+{{\begin{small}
+ Computer Science\\
+ School of Engineering \& Science \\
+ Jacobs University Bremen, Germany \\
+ \end{small}}
+{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}}
+
+\newcommand{\mikoboth}
+{\begin{creator}
+{\large\sc Michael Kohlhase}\\[1ex]
+{\small\begin{tabular}{c@{\qquad}c}
+School of Engineering \& Science & School of Computer Science \\
+Jacobs University Bremen & Carnegie Mellon yUniversity
+\end{tabular}}
+{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}
+\end{creator}}
+
+\newcommand{\JacobsDfkiAffiliation}
+{\begin{small}
+\begin{tabular}{c@{\qquad}c}
+Computer Science
+&\iflanguage{german}{Sichere Kognitive Systeme}{Safe and Secure Cognitive Systems} \\
+%School of Engineering \& Science
+%& DFKI Bremen\\
+Jacobs University, Bremen
+&\iflanguage{german}{Deutsches Forschungszentrum f\"ur KI}{German Research Center for AI}\\
+\end{tabular}
+\end{small}
+{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}}
+
+\newcommand{\mikocmu}
+{\begin{creator}
+{\large\sc Michael Kohlhase}\\[1ex]
+{\small\begin{tabular}{c}
+School of Computer Science \\
+Carnegie Mellon University \\
+\end{tabular}}\\
+{\color{black}\normalsize\url{http://kwarc.info/kohlhase}}
+\end{center}}
diff --git a/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty.ltxml b/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty.ltxml
new file mode 100644
index 00000000000..c580ea36045
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/mikoaffiliation.sty.ltxml
@@ -0,0 +1,33 @@
+# -*- CPERL -*-
+# /=====================================================================\ #
+# | quiz.sty | #
+# | Implementation for LaTeXML | #
+# |=====================================================================| #
+# | Not (yet) Part of LaTeXML: | #
+# | Copyright (c) 2004 Michael Kohlhase, released under the | #
+# |---------------------------------------------------------------------| #
+# | $URL: svn://kwarc.faculty.iu-bremen.de/kohlhase/kwarc/projects/content/cnx/xsl/latexml.xsl$
+# | $Revision: 9990 $; last modified by $Author: $
+# | $Date: 2006-09-20 13:31:37 +0200 (Wed, 20 Sep 2006) $
+# |---------------------------------------------------------------------| #
+# | Michael Kohlhase <m.kohlhase@iu-bremen.de> #_# | #
+# | http://dlmf.nist.gov/LaTeXML/ (o o) | #
+# \=========================================================ooo==U==ooo=/ #
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('LaTeX');
+
+DefConstructor('\miko',"<author><name>Michael Kohlhase</name><affiliation>School of Engineering &amp; Sciences International University Bremen, Germany </affiliation></author>");
+DefEnvironment('{creator}', "\n<Creator>#body</Creator>");
+
+DefMacro('\red{}','{\textcolor{red}{#1}}');
+DefMacro('\green{}','{\textcolor{green}{#1}}');
+DefMacro('\blue{}','{\textcolor{blue}{#1}}');
+DefMacro('\magenta{}','{\textcolor{magenta}{#1}}');
+
+#**********************************************************************
+# To be extended/experimental
+
+#**********************************************************************
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides.cls b/Master/texmf-dist/tex/latex/stex/mikoslides.cls
new file mode 100644
index 00000000000..2c0c85d07c9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/mikoslides.cls
@@ -0,0 +1,100 @@
+%%
+%% This is file `mikoslides.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mikoslides.dtx (with options: `cls')
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesClass{mikoslides}[2010/06/25 v0.9 Jacobs slides]
+\newif\ifnotes\notesfalse
+\newif\ifproblems\problemstrue
+\DeclareOption{notes}{\notestrue}
+\DeclareOption{slides}{\notesfalse}
+\DeclareOption{noproblems}{\problemsfalse}
+\ifnotes\else\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}\fi
+\ProcessOptions
+\ifnotes
+\LoadClass{omdoc}
+\RequirePackage{a4wide}
+\RequirePackage[notheorems,noamsthm]{beamerarticle}
+\else
+\LoadClass[notheorems,noamsthm,10pt]{beamer}
+\newcounter{Item}
+\newcounter{paragraph}
+\newcounter{subparagraph}
+\newcounter{Hfootnote}
+\usetheme{Jacobs}
+\fi
+\RequirePackage{stex}
+\RequirePackage{latexml}
+\RequirePackage{amssymb}
+\RequirePackage{tikz}
+\usepgflibrary{shapes}\usetikzlibrary{arrows}
+\RequirePackage{url}
+\RequirePackage{amsmath}
+\RequirePackage{comment}
+\newcounter{slide}
+\newlength{\slidewidth}\setlength{\slidewidth}{13.5cm}
+\newlength{\slideheight}\setlength{\slideheight}{9cm}
+\ifnotes\renewenvironment{note}{}{}\else\excludecomment{note}\fi
+\ifnotes
+\newlength{\slideframewidth}\setlength{\slideframewidth}{2pt}
+\newsavebox{\myframebox}
+\renewenvironment{frame}[1][]%
+{\stepcounter{slide}
+\def\itemize@level{outer}
+\def\itemize@outer{outer}
+\def\itemize@inner{inner}
+\renewenvironment{itemize}
+{\ifx\itemize@level\itemize@outer\def\itemize@label{$\rhd$}\fi
+ \ifx\itemize@level\itemize@inner\def\itemize@label{$\scriptstyle\rhd$}\fi
+ \begin{list}
+ {\itemize@label}
+ {\setlength{\labelsep}{.3em}\setlength{\labelwidth}{.5em}\setlength{\leftmargin}{1.5em}}
+ \edef\itemize@level{\itemize@inner}}
+{\end{list}}
+ \noindent\hfill\begin{lrbox}{\myframebox}
+ \begin{minipage}{\slidewidth}\sf}%
+ {\miko@slidelabel\end{minipage}\end{lrbox}%
+ \begin{center}\fbox{\usebox\myframebox}\end{center}\hfill}
+\renewcommand{\frametitle}[1]{{\Large\bf\sf\color{blue}{#1}}}
+\fi
+\makeindex
+\ifproblems\newenvironment{problems}{}{}\else\excludecomment{problems}\fi
+\newlength{\slidelogoheight}
+\ifnotes\setlength{\slidelogoheight}{.4cm}\else\setlength{\slidelogoheight}{1cm}\fi
+\newsavebox{\slidelogo}\sbox{\slidelogo}{\includegraphics[height=\slidelogoheight]{jacobs-logo}}
+\def\source{Michael Kohlhase}% customize locally
+\def\copyrightnotice{\footnotesize\copyright:\hspace{.3ex}{\source}}
+\newsavebox{\cclogo}\sbox{\cclogo}{\includegraphics[height=\slidelogoheight]{cc_somerights}}
+\newif\ifcchref\cchreffalse
+\AtBeginDocument{\@ifpackageloaded{hyperref}{\cchreftrue}{\cchreffalse}}
+\def\licensing{\ifcchref\href{http://creativecommons.org/licenses/by-sa/2.5/}{\usebox{\cclogo}}\else{\usebox{\cclogo}}\fi}
+\newcommand{\miko@slidelabel}%
+{\vbox to \slidelogoheight{\vss\hbox to \slidewidth%
+{\licensing\hfill\copyrightnotice\hfill\arabic{slide}\hfill\usebox{\slidelogo}}}}
+\AtBeginDocument{\definecolor{green}{rgb}{0,.5,0}\definecolor{purple}{cmyk}{.3,1,0,.17}}
+\def\defemph#1{{\textcolor{magenta}{#1}}}
+\def\notemph#1{{\textcolor{magenta}{#1}}}
+\def\stDMemph#1{{\textcolor{blue}{#1}}}
+\def\@@lec#1{(\textcolor{green}{#1})}
+\def\textwarning{\raisebox{-.05cm}{\includegraphics[width=1.2em]{dangerous-bend}}\xspace}
+\newenvironment{ttitle}{\begin{center}\LARGE\begin{tabular}{|c|}\hline}%
+ {\\\hline\end{tabular}\end{center}\vspace{1ex minus 1ex}}
+\newenvironment{ttitlejoint}[1]%
+{\newbox\boxwith\setbox\boxwith\hbox{\begin{tabular}{c}{\em joint work with}\\#1\end{tabular}}%
+\begin{center}\LARGE\begin{tabular}{c}\color{red}}%
+{\\\box\boxwith\end{tabular}\end{center}%
+\vspace{1ex minus 1ex}}
+\newcommand{\putgraphicsat}[3]{%
+ \begin{picture}(0,0)\put(#1){\includegraphics[#2]{#3}}\end{picture}}
+\newcommand{\putat}[2]{%
+ \begin{picture}(0,0)\put(#1){#2}\end{picture}}
+\newcommand\hateq{\ensuremath{\hat=}}
+\newcommand\textleadsto{\ensuremath{\leadsto}}
+\ifnotes\else\sf\fi
+\endinput
+%%
+%% End of file `mikoslides.cls'.
diff --git a/Master/texmf-dist/tex/latex/stex/mikoslides.cls.ltxml b/Master/texmf-dist/tex/latex/stex/mikoslides.cls.ltxml
new file mode 100644
index 00000000000..a8870d52036
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/mikoslides.cls.ltxml
@@ -0,0 +1,96 @@
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RawTeX('\newif\ifnotes\notesfalse');
+RawTeX('\newif\ifproblems\problemsfalse');
+LoadClass('omdoc');
+RequirePackage('stex');
+RequirePackage('latexml');
+RequirePackage('amssymb');
+RequirePackage('graphicx');
+RequirePackage('tikz');
+RequirePackage('amsmath');
+DefRegister('\slidewidth' => Dimension('13.5cm'));
+DefRegister('\slideheight' => Dimension('9cm'));
+DefEnvironment('{note}','#body');
+DefEnvironment('{frame}[]',
+ "<omdoc:omgroup layout='slide' ?#locator(stex:srcref='#locator')()>"
+ . "#body\n"
+ ."</omdoc:omgroup>\n\n",
+ afterDigestBegin=>sub {
+ $_[1]->setProperty(theory=>LookupValue('current_module')); });
+DefConstructor('\frametitle{}',
+ "\n<omdoc:metadata ?#locator(stex:srcref='#locator')()><dc:title>#1</dc:title></omdoc:metadata>");
+DefEnvironment('{problems}','#body');
+#DefMacro('\defemph{}','{\textcolor{magenta}{#1}}');
+#DefMacro('\notemph{}','{\textcolor{magenta}{#1}}');
+DefMacro('\textwarning',"");
+DefEnvironment('{titleslide}',"");
+DefEnvironment('{titleslide}',"<omdoc:omgroup ?#locator(stex:srcref='#locator')()>#body</omdoc:omgroup>");
+DefEnvironment('{ttitle}', "\n<Title>#body</Title>");
+DefConstructor('\hateq',"=\x{03C2}");
+DefConstructor('\textleadsto',"=\x{219D}");
+DefEnvironment('{columns}','#body');
+DefEnvironment('{column}{}','#body');
+DefConstructor('\uncover','#1');
+#Define a Beamer Overlay Parameter type
+ DefParameterType('BeamerOverlay', sub {
+ my ($gullet) = @_;
+ my $tok = $gullet->readXToken;
+ if (ref $tok && ToString($tok) eq '<') {
+ $gullet->readUntil(T_OTHER('>'));
+ } else {
+ $gullet->unread($tok) if ref $tok;
+ undef; }},
+ reversion=> sub {
+ (T_OTHER('<'), $_[0]->revert, T_OTHER('>'));
+ });
+
+#Take the "from" field of the overlay range
+sub overlayFrom {
+ return "" unless defined $_[0];
+ my $overlay=ToString($_[0]); $overlay =~ /^(\d+)/; $1;}
+
+#Reuse the CMP itemizations, only adjust the \item constructors.
+DefMacro('\beamer@group@item[] OptionalBeamerOverlay IfBeginFollows', sub {
+ my($gullet,$tag,$overlay,$needwrapper)=@_;
+ $overlay=$overlay||T_OTHER("");
+ ( T_CS('\group@item@maybe@unwrap'),
+ ($needwrapper ? (Invocation(T_CS('\beamer@group@item@wrap'),$tag,$overlay)->unlist) : ()) ); });
+DefConstructor('\beamer@group@item@wrap {} OptionalBeamerOverlay',
+ "<omdoc:omtext ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')()>"
+ . "?#1(<dc:title>#1</dc:title>)()"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p ?#locator(stex:srcref='#locator')()>",
+ beforeDigest=>sub {
+ Let('\group@item@maybe@unwrap','\group@item@unwrap');
+ #$_[0]->bgroup;
+ useCMPItemizations();
+ return; },
+ properties=>sub{ RefStepItemCounter(); });
+
+DefConstructor('\beamer@itemize@item[] OptionalBeamerOverlay',
+ "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\beamer@enumerate@item[] OptionalBeamerOverlay',
+ "<omdoc:li ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<dc:title ?#locator(stex:srcref='#locator')()>#1</dc:title>)()",
+ properties=>sub{ RefStepItemCounter(); });
+DefConstructor('\beamer@description@item[] OptionalBeamerOverlay',
+ "<omdoc:di ?#locator(stex:srcref='#locator')() ?#2(overlay='&overlayFrom(#2)')() >"
+ . "?#1(<omdoc:dt ?#locator(stex:srcref='#locator')()>#1</omdoc:dt>)()<omdoc:dd>", # trust di and dt to autoclose
+ properties=>sub{ RefStepItemCounter(); });
+
+#We ALWAYS use the beamer itemizations for the slides:
+Let('\CMP@itemize@item'=>'\beamer@itemize@item');
+Let('\CMP@enumerate@item'=> '\beamer@enumerate@item');
+Let('\CMP@description@item'=> '\beamer@description@item');
+Let('\group@item' =>'\beamer@group@item');
+Let('\itemize@item'=>'\beamer@group@item');
+Let('\enumerate@item'=>'\beamer@group@item');
+Let('\description@item'=>'\beamer@group@item');
+Let('\only'=>'\beamer@group@item');
+DefMacro('\putgraphicsat{}{}{}','\mygraphics[#2]{#3}');
+DefMacro('\putat{}{}','#2');
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/problem/problem.sty b/Master/texmf-dist/tex/latex/stex/problem/problem.sty
new file mode 100644
index 00000000000..aec05910e0e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/problem/problem.sty
@@ -0,0 +1,116 @@
+%%
+%% This is file `problem.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% problem.dtx (with options: `package')
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{problem}[2010/06/25 v0.9c Semantic Markup for Problems]
+\newif\ifexnotes\exnotesfalse\DeclareOption{notes}{\exnotestrue}
+\newif\ifhints\hintsfalse\DeclareOption{hints}{\hintstrue}
+\newif\ifsolutions\solutionsfalse\DeclareOption{solutions}{\solutionstrue}
+\newif\ifpts\ptsfalse\DeclareOption{pts}{\ptstrue}
+\newif\ifmin\minfalse\DeclareOption{min}{\mintrue}
+\newif\ifboxed\boxedfalse\DeclareOption{boxed}{\boxedtrue}
+\newif\ifextract\extractfalse\DeclareOption{extract}{\extracttrue}
+\ProcessOptions
+\RequirePackage{keyval}[1997/11/10]
+\RequirePackage{xcomment}
+\RequirePackage{sref}
+\srefaddidkey[prefix=prob.]{problem}
+\omdaddkey{problem}{pts}
+\omdaddkey{problem}{min}
+\omdaddkey{problem}{title}
+\omdaddkey{problem}{refnum}
+\newsavebox{\probbox}
+\newcounter{problem}[section]
+\def\prob@number{\ifx\inclprob@refnum\@empty
+\ifx\problem@refnum\@empty\thesection.\theproblem\else\problem@refnum\fi
+\inclprob@refnum\fi}
+\def\prob@heading{Problem \prob@number%
+\ifx\sref@id\@empty\else{\sref@label@id{Problem \thesection.\theproblem}}\fi%
+\ifx\inclprob@title\@empty% if there is no outside title
+\ifx\problem@title\@empty{:\quad}\else{\quad(\problem@title)\hfill\\}\fi
+\else\quad(\inclprob@title)\hfill\\\fi}% else show the outside title
+\ifboxed
+\newenvironment{problem}[1][]{\omdsetkeys{problem}{#1}\sref@target%
+\stepcounter{problem}\show@pts\show@min\record@problem%
+\begin{lrbox}{\probbox}\begin{minipage}{.9\textwidth}}
+{\end{minipage}\end{lrbox}
+\setbox0=\hbox{\begin{minipage}{.9\textwidth}%
+\noindent\textbf\prob@heading\rm%
+\end{minipage}}
+\smallskip\noindent\fbox{\vbox{\box0\vspace*{.2em}\usebox\probbox}}\smallskip}
+\else
+\newenvironment{problem}[1][]{\omdsetkeys{problem}{#1}\sref@target%
+\stepcounter{problem}\show@pts\show@min\record@problem%
+\par\noindent\textbf\prob@heading\rm}
+{\smallskip}
+\fi%boxed
+\def\record@problem{\protected@write\@auxout{}%
+{\string\@problem{\prob@number}%
+{\ifx\inclprob@pts\@empty\problem@pts\else\inclprob@pts\fi}%
+{\ifx\inclprob@min\@empty\problem@min\else\inclprob@min\fi}}}
+\def\@problem#1#2#3{}
+\define@key{soln}{id}{\def\soln@id{#1}}
+\define@key{soln}{for}{\def\soln@for{#1}}
+\define@key{soln}{height}{\def\soln@height{#1}}
+\ifsolutions
+\newenvironment{solution}[1][]%
+{\hrule\smallskip{\bf Solution: }\begin{small}}%
+{\hrule\end{small}}
+\else\newxcomment[]{solution}\fi
+\ifexnotes
+\newenvironment{exnote}[1][]%
+{\par\noindent\hrule\smallskip{\bf Note: }\small}
+{\smallskip\hrule}
+\else%ifexnotes
+\newxcomment[]{exnote}
+\fi%ifexnotes
+\ifhints
+\newenvironment{hint}[1][]%
+{\par\noindent\hrule\smallskip{\bf Hint: }\small}
+{\smallskip\hrule}
+\else%ifhints
+\newxcomment[]{hint}
+\fi%ifhints
+\ifextract
+\newwrite\problem@file
+\immediate\openout\problem@file=\jobname-problems.tex
+\AtEndDocument{\closeout\problem@file}
+\fi
+\omdaddkey{inclprob}{pts}
+\omdaddkey{inclprob}{min}
+\omdaddkey{inclprob}{title}
+\omdaddkey{inclprob}{refnum}
+\clear@inclprob@keys
+\newcommand{\includeproblem}[2][]{%
+\bgroup\omdsetkeys{inclprob}{#1}\input{#2}\ifsolutions\newpage\fi\egroup
+\ifextract\def\@test{#1}
+\def\prob@num{\ifx\inclprob@refnum\@empty\thesection.\theproblem\else\inclprob@refnum\fi}
+\def\inclprob@keys{#1\ifx\@test\@empty\else,\fi refnum=\prob@num}
+\protected@write\problem@file{}{\string\includeproblem[\inclprob@keys]{#2}}
+\fi}
+\def\pts#1{\ifpts\marginpar{#1 pt}\fi}
+\def\min#1{\ifmin\marginpar{#1 min}\fi}
+\AtEndDocument{\ifpts\message{Total: \arabic{pts} points}\fi
+\ifmin\message{Total: \arabic{min} minutes}\fi}
+\newcounter{pts}
+\def\show@pts{\ifx\inclprob@pts\@empty%
+\ifx\problem@pts\@empty\else%
+\ifpts\marginpar{\problem@pts pt\smallskip}\addtocounter{pts}{\problem@pts}\fi%
+\fi\else%
+\ifpts\marginpar{\inclprob@pts pt\smallskip}\addtocounter{pts}{\inclprob@pts}\fi%
+\fi}
+\newcounter{min}
+\def\show@min{\ifx\inclprob@min\@empty%
+\ifx\problem@min\@empty\else%
+\ifmin\marginpar{\problem@min min}\addtocounter{min}{\problem@min}\fi%
+\fi\else%
+\ifmin\marginpar{\inclprob@min min}\addtocounter{min}{\inclprob@min}\fi
+\fi}
+\endinput
+%%
+%% End of file `problem.sty'.
diff --git a/Master/texmf-dist/tex/latex/stex/problem/problem.sty.ltxml b/Master/texmf-dist/tex/latex/stex/problem/problem.sty.ltxml
new file mode 100644
index 00000000000..0ef5044333e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/problem/problem.sty.ltxml
@@ -0,0 +1,55 @@
+# -*- CPERL -*-
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+RequirePackage('sref');
+RegisterNamespace('prob'=>"http://omdoc.org/ontology/problems#");
+RegisterDocumentNamespace('prob'=>"http://omdoc.org/ontology/problems#");
+DefCMPEnvironment('{problem} OptionalKeyVals:problem',
+ "<omdoc:exercise ?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')()"
+ . "prob:dummy='for the namespace'"
+ . "?#locator(stex:srcref='#locator')()>"
+ . "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
+ . "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p>#body"
+ ."</omdoc:exercise>\n");
+DefKeyVal('soln','id','Semiverbatim');
+DefKeyVal('soln','height','Semiverbatim');
+DefKeyVal('soln','for','Semiverbatim');
+DefCMPEnvironment('{solution} OptionalKeyVals:soln',
+ "<omdoc:solution ?&KeyVals(#1,'for')(for='&KeyVal(#1,'for')')() ?#locator(stex:srcref='#locator')()>"
+ . "#body"
+ . "</omdoc:solution>");
+DefCMPEnvironment('{exnote}',
+ "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:p>#body<omdoc:p>"
+ . "</omdoc:CMP>"
+ ."</omdoc:hint>");
+DefCMPEnvironment('{hint}',
+ "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
+ . "<omdoc:p>#body</omdoc:p>"
+ . "</omdoc:CMP>"
+ ."</omdoc:hint>");
+DefConstructor('\pts{}',"");
+DefConstructor('\min{}',"");
+DefKeyVal('prob','pts','Semiverbatim');
+DefKeyVal('prob','min','Semiverbatim');
+DefKeyVal('prob','title','Semiverbatim');
+DefConstructor('\includeproblem OptionalKeyVals:prob Semiverbatim',
+ "<omdoc:ref xref='#2' ?#locator(stex:srcref='#locator')() "
+ . "prob:dummy='for the namespace'>"
+ . "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
+ . "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
+ . "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
+ . "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
+ ."</omdoc:ref>");
+Tag('omdoc:exercise',afterOpen=>\&numberIt);
+Tag('omdoc:solution',afterOpen=>\&numberIt);
+Tag('omdoc:hint',afterOpen=>\&numberIt);
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/shading-l2r.eps b/Master/texmf-dist/tex/latex/stex/shading-l2r.eps
new file mode 100644
index 00000000000..39a8ebc4cc6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/shading-l2r.eps
@@ -0,0 +1,458 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (shading-l2r.eps)
+%%CreationDate: (Mon Jul 9 20:57:19 2007)
+%%BoundingBox: 0 0 716 3
+%%HiResBoundingBox: 0 0 715.911 3
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 eq
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 eq
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-none or 1-RunlengthEncoded.
+ % hex color packets.
+ %
+ gsave
+ /buffer 512 string def
+ /byte 1 string def
+ /color_packet 3 string def
+ /pixels 768 string def
+
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Times-Roman findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 716 3
+userdict begin
+DisplayImage
+0 0
+715.911 2.99963
+12.000000
+716 3
+0
+0
+049DFE049DFE059DFE059DFE069EFE069EFE079EFE079FFE079EFE079EFE089FFE089EFE
+099EFE099FFE0A9FFE0AA0FE0A9FFE0B9FFE0B9FFE0BA0FE0B9FFE0BA0FE0CA1FE0DA0FE
+0DA1FE0EA0FE0DA1FE0EA0FE0EA1FE0EA1FE0FA2FE10A1FE10A1FE10A1FE10A2FE11A2FE
+11A2FE11A2FE12A3FE12A3FE12A3FE13A3FE13A3FE13A3FE14A4FE14A3FF15A4FE14A3FE
+16A4FE16A4FE16A4FE17A4FE17A4FE17A5FE18A4FE17A5FE18A4FE19A5FE19A5FF19A5FE
+19A6FE1AA5FE1AA6FE1AA6FF1BA6FE1CA6FE1CA6FE1CA7FE1DA6FE1CA7FE1DA7FE1DA7FE
+1DA7FE1EA7FE1FA7FE1EA8FE1FA7FE1FA8FE20A7FE20A8FF20A8FE21A8FF22A9FE22A9FE
+22A9FE22A9FE22A9FE23A9FE23AAFE24AAFE24AAFE24A9FE25A9FE25AAFE26AAFE26AAFE
+26ABFE27AAFE27ABFE27ABFE27ABFF28ABFE28ABFE29ACFE29ACFE29ACFE2AABFF2AACFE
+2BABFE2AACFF2BACFE2BACFE2CACFE2CADFE2CADFE2DADFF2DADFE2DADFE2EADFE2EAEFF
+2FAEFE2FAEFE2FADFF2FAEFE30AEFE30AEFE31AEFF31AFFE31AEFE32AFFE32AFFE33AFFE
+33B0FE33AFFF34B0FE34B0FF34AFFE34B0FF35B0FE35B1FE36B0FE36B0FF37B0FE37B1FE
+37B1FE38B1FE38B1FE38B2FF38B1FE38B1FE39B1FE3AB2FE3AB2FE3BB2FF3BB2FE3BB3FF
+3BB2FE3BB3FE3CB3FF3CB3FE3CB3FE3DB3FF3EB4FE3EB3FE3EB4FF3EB4FE3FB4FE3FB4FE
+3FB4FE40B4FE40B4FF40B5FE40B5FE42B5FE42B5FE42B5FF42B6FF43B5FE43B6FE43B6FE
+43B5FE44B6FE45B6FE44B6FF45B7FE46B7FE46B7FE46B6FF46B7FE46B7FE47B7FE48B7FE
+48B8FE48B7FE48B7FF49B8FF49B8FF4AB8FF4AB8FF4AB8FF4AB9FE4BB8FF4BB9FE4BB9FE
+4DB9FE4CBAFF4CB9FE4DBAFE4DBAFE4EBAFF4FBAFE4EBAFE4FBAFE4FBBFE50BBFE4FBBFE
+50BAFF50BBFE51BBFF52BBFE52BBFE52BBFF52BCFF53BCFE53BCFE53BCFF54BCFE55BDFE
+55BDFE55BDFE55BDFE56BDFF56BDFE56BDFF56BEFE57BDFE58BEFF57BDFE58BEFE59BEFE
+58BEFE59BEFE5ABEFF59BEFE5ABFFE5BBFFE5ABEFE5BBFFE5CBFFE5CBFFE5CBFFE5DC0FE
+5DC0FE5DC0FE5EC0FE5DC1FE5EC0FE5FC1FE5FC1FE5FC1FF60C1FE60C1FF60C1FF61C1FE
+61C1FE61C2FF62C1FE63C2FF62C1FE62C2FF63C2FF64C3FE64C2FE64C3FF65C2FF65C2FF
+66C3FF66C3FF66C3FE66C4FF66C4FE67C4FE68C4FE67C4FE68C5FE69C4FE69C5FE69C5FE
+69C5FF6AC5FE6AC5FE6AC5FF6BC5FE6CC5FE6CC5FE6CC5FF6DC5FE6DC6FE6EC6FE6DC6FF
+6DC6FF6EC6FF6FC6FE6FC6FF6FC7FE70C7FE70C8FE70C7FF71C8FE70C8FE72C7FE71C8FE
+72C8FF72C8FE73C8FE73C9FF73C8FE73C9FF74C9FF74C9FF75C9FE76C9FE75C9FF76C9FF
+76C9FF77CAFE77CAFE77CAFF78CAFE78CAFE79CBFE79CAFE79CBFE7ACBFE7ACBFF7BCCFE
+7ACBFE7BCCFF7CCBFF7CCCFF7CCCFF7CCCFE7DCDFE7DCCFE7DCCFF7ECCFF7ECCFE7ECDFE
+7FCDFE7FCDFF7FCDFE80CDFF80CDFF80CEFE81CDFF81CEFF82CEFF81CEFF82CFFF83CEFE
+82CEFE83CEFF84CFFF84CFFF85CFFF85CFFE85CFFE86D0FE86D0FF86D0FE86D0FE87D0FF
+87D0FE87D0FE87D0FE88D1FF88D1FF88D1FF89D1FE89D1FF8AD1FF8BD1FF8BD2FF8BD1FF
+8CD2FF8CD2FE8CD2FF8DD2FE8DD3FF8DD3FF8DD3FE8ED3FF8ED2FF8FD3FE8FD3FF8FD4FE
+8FD3FE90D4FF90D4FE91D4FE91D4FF91D4FF91D4FF92D4FF92D4FF93D4FE93D5FF94D5FF
+94D5FF95D5FE95D5FF95D6FF95D6FE96D5FE96D6FE96D6FE97D6FF97D6FF97D6FE97D7FF
+98D7FE99D7FF98D7FF99D7FE9AD7FF9AD7FE9AD8FF9BD8FE9BD7FF9BD8FE9CD8FF9CD9FE
+9CD9FF9DD9FF9DD9FF9DD9FF9ED9FF9ED9FE9EDAFF9ED9FE9FDAFF9FDAFEA0D9FFA0D9FE
+A0DAFFA1DAFEA1DAFFA1DAFFA2DAFFA2DBFEA2DBFFA2DBFFA3DBFFA4DBFFA4DBFFA4DCFE
+A4DCFFA5DCFEA5DCFFA5DCFFA6DDFEA6DCFFA7DCFFA8DDFFA7DDFFA7DDFFA9DDFEA9DDFF
+A9DDFEAADEFEAADEFFAADDFEAADEFEABDEFFABDEFEABDEFEACDEFEACDFFEADDFFEACDFFE
+AEDFFFAEE0FFAEDFFFAFE0FFAFE0FFAFE0FFAFDFFEB0E0FEB0E0FFB1E0FEB0E0FEB1E1FF
+B1E0FEB2E1FEB2E1FFB3E1FFB3E1FFB4E1FFB3E1FEB4E2FFB4E2FEB4E2FFB4E2FFB5E2FF
+B5E2FEB6E2FEB6E3FEB7E3FFB7E3FEB7E3FFB8E3FEB8E3FFB8E4FFB9E3FEB9E3FEBAE3FF
+BAE4FEBAE4FFBBE4FFBAE4FFBBE4FFBCE5FFBCE5FFBCE5FFBDE5FFBDE5FFBDE5FFBEE5FF
+BEE6FFBFE6FEBFE6FFBFE6FEBFE6FFC0E7FEC0E6FFC0E6FEC0E7FEC1E7FEC1E7FFC2E7FF
+C3E7FFC2E8FFC2E7FFC3E8FFC4E8FEC4E8FFC4E8FFC4E9FFC5E8FEC5E8FFC5E9FFC6E9FF
+C7E9FEC7E9FEC7E9FFC8EAFFC8E9FFC8E9FFC9EAFFC9EAFFC9EAFFCAEAFFCAEAFECAEBFE
+CBEAFECBEBFECBEBFFCCEBFFCCEBFFCCEBFFCDEBFFCDECFFCDECFFCEECFFCEECFFCFECFF
+CFECFFCFECFFCFEDFFD0EDFFD0EDFFD1EDFFD1EDFFD1EDFFD2EDFFD2EDFFD2EEFED3EEFF
+D3EEFED3EEFFD3EEFFD4EFFFD4EEFFD5EFFED5EFFFD6EFFFD6EFFFD6F0FFD6EFFFD7EFFE
+D7F0FED8F0FFD8EFFFD9F0FFD9F0FFD9F0FFDAF0FFD9F1FFDAF0FFDAF1FFDBF1FFDBF1FF
+DBF1FFDCF1FEDCF1FFDDF2FFDDF2FFDEF2FFDDF2FFDEF2FEDEF3FEDEF3FEDFF2FFDFF3FE
+DFF3FFE0F3FFE1F3FFE1F3FFE1F3FFE1F4FFE2F4FEE2F3FFE3F4FFE3F4FEE3F4FFE4F5FF
+E4F5FFE4F4FFE5F5FFE5F5FFE6F5FFE6F5FFE6F5FEE6F6FFE7F5FFE7F6FFE8F6FFE8F5FF
+E8F6FFE9F6FFE9F6FFE9F6FFEAF7FFEAF7FFEBF7FFEAF7FFEBF7FFECF7FFEBF8FFEDF8FF
+ECF7FFEDF8FFEDF8FFEDF8FEEEF8FFEEF9FFEEF8FFEEF9FEEFF9FFF0F9FFEFF9FFF0F9FF
+F1F9FFF1F9FFF1F9FFF2FAFFF2FAFFF3FAFFF3FAFFF3FBFFF4FBFFF3FBFFF4FBFFF4FBFF
+F5FBFFF5FCFFF6FBFFF5FBFFF6FCFFF6FBFFF7FCFFF7FCFFF8FCFFF8FCFFF9FDFFF9FDFF
+F9FDFFFAFDFFFAFCFFFAFDFFFAFEFFFBFEFFFBFEFFFCFDFFFCFEFEFCFEFFFCFEFFFCFEFF
+FDFFFFFDFFFFFEFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF059DFE059EFE059EFE059EFE
+069EFE069EFE079EFE079EFE079EFE089FFE079EFE089FFE099FFE099FFE099FFE0AA0FE
+0A9FFE0AA0FE0BA0FE0BA0FE0BA0FE0CA0FE0CA0FE0DA1FE0DA1FF0EA1FE0DA1FE0EA1FE
+0FA1FF0EA1FE0FA2FE10A1FE10A2FE10A1FE10A2FE11A2FE11A2FE12A2FE12A3FE12A3FE
+13A3FE13A3FF14A3FE14A3FE14A3FE15A3FE14A3FE14A4FE15A4FE16A4FE16A4FE16A4FE
+17A5FE17A4FE18A5FE18A5FE18A4FE18A5FE19A6FE1AA5FF19A5FE1AA5FE1AA6FE1AA6FE
+1BA6FF1BA6FE1CA6FE1CA6FE1CA6FF1CA6FE1DA6FE1DA7FE1DA7FE1EA7FE1EA7FE1FA8FE
+1FA8FE1FA8FE1FA8FE20A8FE20A8FF21A8FE21A8FE21A8FE22A8FE22A9FE22A9FE22A9FE
+24A9FE24AAFE24A9FE25A9FE24AAFF25AAFE26AAFF26AAFE26ABFF27AAFE26ABFE27AAFE
+28ABFE28ABFF29ABFE29ABFE29ABFE29ABFE29ACFE2AABFE2AACFE2BADFE2BACFE2CADFF
+2CADFE2CADFE2CADFE2DADFE2DADFE2DADFE2EADFE2EADFE2EADFE2EAEFE2FAEFE30AEFE
+30AEFE31AEFE31AEFE31AEFE31AFFE32AFFE32AFFE32B0FE32AFFE33B0FF33B0FF34B0FE
+34B0FE34B0FF35B0FF35B0FE36B0FE36B1FE36B0FE37B0FE37B1FE37B1FE37B2FE38B1FF
+38B2FE39B2FE39B2FE3AB1FE3AB2FF3AB2FE3BB3FE3BB2FE3CB2FF3BB2FE3CB3FE3CB3FE
+3DB3FF3DB3FE3DB3FE3DB3FE3EB4FE3FB4FE3FB4FE3FB4FE3FB4FE40B4FE40B5FE40B5FE
+40B5FE41B5FE42B5FE42B5FE42B5FE43B5FE43B5FF43B6FE43B6FE44B6FE44B6FE45B6FF
+45B6FF46B6FE45B6FF46B7FE47B7FE47B7FF47B7FE47B7FE48B7FE48B8FF49B8FE49B8FE
+4AB8FE4AB8FE4AB8FE4AB9FE4BB8FE4BB8FE4BB9FE4BB9FE4CB9FF4CB9FE4DB9FE4DB9FE
+4EBAFE4EBAFE4EBAFF4EBAFE4EBAFE4FBBFF4FBBFF50BBFE51BBFE51BAFF51BBFE52BCFE
+52BCFF52BBFE52BCFE53BBFE53BCFE53BCFE54BCFE54BCFE55BCFF55BCFE55BDFE55BDFE
+56BDFE57BDFE56BDFF57BDFE57BEFE58BEFE58BEFE58BEFF59BEFE59BEFE5ABFFF5ABEFE
+5ABFFE5BBFFE5BBEFE5BBFFE5CBFFE5CBFFE5DC0FE5CC0FE5DC0FF5DC0FE5DC0FE5EC0FE
+5EC0FE5EC0FE5FC1FF5FC0FF5FC1FE60C1FF60C2FE61C1FE61C1FE61C1FE61C1FE62C2FE
+63C2FF63C2FE63C3FE64C2FE64C2FE65C3FF64C2FF65C3FE65C3FE66C3FE66C3FE66C4FF
+66C3FE67C3FF68C4FF68C4FE68C4FE68C5FE69C4FE69C4FE6AC5FF6AC5FE6AC5FE6AC5FF
+6BC5FE6BC6FF6CC6FE6CC6FE6CC6FE6DC5FE6DC6FF6DC7FF6EC7FE6EC6FE6EC6FE6FC7FF
+70C7FF6FC7FE70C7FF70C7FF70C8FF71C8FF72C8FF72C8FF72C8FE73C8FE73C8FE73C8FF
+74C8FE74C9FF74C9FF75C8FE75C9FE75C9FF75CAFF76C9FE76CAFF77CAFF77CAFF77CAFE
+78CBFF79CAFF78CAFE78CBFE79CBFF79CBFF79CBFE7ACBFE7BCBFE7BCCFF7BCCFE7CCCFE
+7CCBFE7CCCFE7CCCFE7DCCFF7DCCFF7DCDFF7ECDFF7ECDFE7ECDFF7FCDFE7FCDFF80CDFF
+80CEFF80CEFE81CDFE81CEFE82CEFF81CEFE82CEFF83CEFE83CFFF84CFFE84CEFF84CFFE
+84D0FE84D0FE85CFFE85CFFF86CFFF86D0FF86D0FF87D0FE87D0FE87D0FE88D0FF88D1FF
+89D1FF89D0FF89D1FE8AD2FF8AD2FF8BD2FF8BD2FF8BD1FE8BD2FF8CD1FF8CD2FF8CD2FE
+8DD3FE8DD3FF8DD3FE8ED3FE8ED3FF8ED3FE8FD3FF90D4FE8FD3FE8FD4FE90D4FF90D4FE
+91D4FE91D4FE92D4FE92D4FF93D5FE92D5FE93D5FF94D5FF94D5FF94D5FF95D6FF95D6FE
+96D5FE96D6FF96D6FF96D6FF96D6FE97D6FE97D6FF98D6FE98D7FF98D7FF99D7FF9AD7FF
+9AD8FF99D8FE9AD8FF9BD8FE9BD8FE9CD8FF9CD8FF9CD8FF9CD8FE9CD9FF9DD9FF9ED9FF
+9ED9FE9ED9FF9EDAFF9FD9FE9FDAFE9FDAFEA0DAFFA0DAFFA1DAFFA1DBFFA1DAFFA1DAFE
+A2DBFEA2DAFFA3DAFFA3DBFEA3DBFFA3DCFFA4DCFFA4DCFFA5DCFFA5DCFFA5DCFFA6DCFE
+A6DCFEA7DCFFA7DCFFA7DDFFA8DCFFA8DDFFA8DDFFA8DDFFA9DDFFAADEFFAADEFEAADEFE
+AADEFEABDEFEABDEFFABDEFFACDFFEACDFFFACDFFEADDFFFADDFFFADDFFFAEDFFEAEDFFF
+AFDFFFAEE0FFAFE0FEB0E0FFB0E0FFB0E0FEB0E0FFB1E1FEB2E0FEB2E0FFB2E1FFB3E2FE
+B3E1FFB3E2FFB4E1FFB3E1FFB4E1FFB5E2FFB5E2FFB5E2FFB5E2FFB6E2FFB6E3FFB7E3FE
+B7E2FEB8E3FEB7E3FEB8E3FEB9E4FFB9E3FFB9E4FFB9E4FFBAE4FEBBE4FFBBE4FFBBE5FE
+BBE5FEBBE5FFBCE5FFBCE5FEBDE5FEBDE5FFBDE5FFBEE6FFBEE6FFBEE6FEBEE5FEBFE6FF
+C0E6FFBFE6FFC0E6FFC1E7FFC0E6FFC1E7FFC2E7FFC2E7FFC2E8FFC2E7FFC3E7FFC4E7FE
+C4E8FFC4E8FEC5E8FFC4E9FFC5E8FFC6E9FFC6E8FFC6E9FEC6E9FFC7E9FEC7E9FFC7E9FF
+C8E9FFC9EAFFC9EAFFC9EAFFC9EAFECAEAFFCAEBFFCAEAFFCBEAFFCBEBFFCBEBFFCBEBFE
+CCECFECCEBFFCDECFFCDEBFFCEEBFECEECFFCEECFFCFECFFCEECFFD0EDFFCFECFFD0EDFF
+D1EDFFD1EDFFD1EDFFD1EDFFD2EDFFD2EEFFD3EEFFD3EEFED3EEFFD3EEFED4EEFFD4EEFF
+D4EFFFD5EFFED6EFFED6EEFFD6EFFED6F0FED6EFFFD7F0FFD7EFFFD8F0FFD8F0FFD8F0FF
+D9F0FFD9F0FFD9F0FFDAF0FEDAF1FFDAF1FEDBF1FFDBF1FFDBF2FEDCF1FFDCF2FFDCF1FF
+DDF1FFDEF2FFDEF2FFDEF2FFDFF2FFDFF2FEDFF2FFDFF3FFE0F3FEE0F3FFE0F3FFE1F3FF
+E1F3FFE2F3FFE2F4FFE2F4FFE3F4FFE3F4FFE4F4FFE4F4FFE4F4FFE4F4FFE5F4FFE5F5FF
+E5F5FFE6F5FFE6F6FFE7F6FFE7F6FFE7F6FFE7F6FFE8F6FFE8F6FFE8F6FFE9F6FEE9F6FF
+E9F6FFEAF7FFEAF7FFEBF7FFEBF7FFECF8FFECF8FFECF7FFECF8FFEDF7FFEDF8FFEDF9FF
+EDF8FFEEF8FFEEF9FFEEF9FFEFF8FFF0F9FFF0F9FFF0F9FFF1F9FFF0F9FFF2FAFFF1FAFF
+F2FAFFF2FAFFF3FBFEF3FAFFF3FAFFF4FBFFF4FBFFF5FBFFF5FBFFF5FBFFF6FBFFF6FBFF
+F7FCFFF6FCFEF7FCFFF7FCFFF8FCFFF8FDFFF9FCFFF8FDFFF9FCFFF9FDFFF9FDFFFAFDFF
+FAFDFFFBFDFFFBFEFFFCFEFFFCFEFFFCFEFFFDFEFFFDFFFFFEFEFFFDFEFFFEFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFF059DFE059DFE059EFE059EFE069EFE069EFE069EFE079EFE
+079EFE079EFE089FFF089FFE089FFE099FFE099FFE099FFE0A9FFE0AA0FE0AA0FE0B9FFE
+0CA0FE0CA0FE0CA0FE0CA0FE0CA0FE0EA0FE0DA1FE0EA1FE0FA1FE0FA1FE0FA2FE0FA1FE
+0FA2FE10A2FE11A2FE11A2FE11A2FE11A2FE11A2FE12A2FE12A3FE12A3FE13A3FE13A3FE
+14A3FE14A4FE15A3FF15A4FE16A4FE16A4FE16A4FE16A4FE16A4FE17A4FE18A5FE18A5FE
+18A4FF18A5FE19A5FE19A5FE1AA6FE1AA6FE1BA5FE1BA6FE1BA6FE1BA6FF1CA6FE1CA7FF
+1DA6FE1DA7FE1DA7FF1EA6FE1DA7FE1EA7FE1EA7FE1EA7FE1FA8FE20A8FE1FA8FE20A8FE
+20A9FE20A8FE21A8FE21A9FE22A9FE22A9FE22A9FE23A9FE23A9FF24AAFE24AAFE24AAFE
+25AAFE25AAFE26AAFE26AAFE26AAFE26AAFE27ABFE27ABFE28ABFE28ABFE28ABFE28ACFE
+29ACFE2AACFE2AACFE2AACFE2AACFF2BACFE2CACFE2BADFF2CADFE2CADFE2DADFE2DADFE
+2DADFE2DADFE2EADFF2FADFE2EAEFE2FAEFE2FAEFE30AEFE30AEFE31AEFE30AEFE31AFFE
+32AEFE31AFFF32AFFE33AFFE33AFFE33AFFE33AFFF33B0FE34B0FF35B0FE35B0FE35B0FE
+36B0FE36B0FF36B1FF37B1FE37B1FF38B1FE37B2FF38B1FE39B1FE39B2FF39B2FF3AB2FE
+3AB2FE3AB2FE3AB2FE3AB2FE3BB2FE3CB2FF3CB3FF3CB3FE3CB3FE3DB3FE3DB4FE3EB4FF
+3EB4FE3EB4FF3FB4FE3FB5FF3FB5FF3FB5FF40B4FF40B5FE41B5FE41B5FE41B5FE42B5FF
+43B5FE43B5FE43B5FE43B6FE44B6FE44B6FE44B6FF44B6FE45B6FF46B6FF46B6FF46B7FE
+46B7FE47B7FE47B7FE48B7FF48B8FE49B8FE49B7FE49B8FE49B8FF4AB9FE4AB9FE4AB9FE
+4BB8FF4BB9FE4BB9FF4CB9FE4CB9FE4DBAFE4DB9FF4DBAFF4EBAFF4EBAFE4EBAFE4FBAFE
+4FBBFF4FBBFE4FBAFE50BBFE50BBFF51BBFE51BBFF52BCFF52BCFE52BBFF53BCFE53BBFE
+53BCFF53BCFF54BCFF54BCFF55BDFF54BDFE55BDFE56BDFE56BDFE56BDFE57BDFE57BDFE
+58BDFE58BEFE58BEFE58BEFE58BEFE59BEFF59BFFE5ABFFE5ABFFE5ABFFE5BBFFE5CBFFE
+5BC0FE5CC0FE5CBFFE5CC0FE5DC0FE5DC0FE5DC0FE5EC0FE5EC0FE5EC0FE5FC1FE5FC0FE
+5FC1FE61C1FE61C1FE61C1FF61C1FF62C1FF62C2FE63C1FF63C1FE63C2FF63C3FF63C2FE
+64C3FF64C2FE65C2FF65C3FE66C3FF66C3FE66C4FF66C4FE67C4FF67C3FE68C4FE68C4FE
+68C4FF69C4FE69C4FE69C4FE6AC5FE6AC5FF6AC5FE6BC5FE6BC5FE6CC6FE6CC5FE6CC5FE
+6CC6FE6DC6FF6DC6FF6DC6FE6EC6FF6FC7FF6FC6FF6FC7FE6FC7FE70C7FF70C7FF70C7FF
+70C8FE71C7FF71C8FF72C8FF72C8FE72C8FE73C9FE73C8FE73C8FF73C8FE74C9FF75C9FE
+75C9FE75C9FF75CAFE76C9FF76C9FF77CAFF77CAFE77CAFF78CAFE78CAFF78CAFF78CAFF
+79CBFE79CBFE7ACBFF7ACBFF7ACBFF7BCBFF7BCCFF7BCBFE7CCCFE7CCCFF7DCCFE7DCDFF
+7DCCFE7ECCFE7ECDFE7FCDFF7FCDFF7FCDFE7FCDFF80CEFF80CDFE81CEFE80CDFE81CEFE
+82CEFF82CEFF82CEFE82CEFE83CFFF83CFFE83CFFF83CFFE84D0FE84D0FE85CFFE86D0FF
+86CFFE86D0FE86D0FE87D0FE88D1FF88D0FF87D1FE88D1FE88D1FE89D1FF89D1FF89D1FE
+8AD1FE8AD1FE8BD1FF8BD2FF8CD2FE8BD2FF8CD2FF8DD2FF8DD3FF8DD2FE8ED3FF8ED2FF
+8ED3FE8ED3FE8FD3FF8FD4FE8FD3FE90D4FF90D4FF90D4FE91D4FF91D4FF92D4FE92D5FF
+92D4FE93D5FE93D5FF94D5FF93D5FF94D5FE95D5FF95D6FF96D6FF95D6FF96D6FE97D6FE
+96D6FF97D6FE97D7FE98D7FF98D7FE99D7FF98D7FF99D7FF99D8FE99D8FF9AD8FF9AD8FF
+9BD8FF9CD8FF9BD8FF9CD8FE9CD8FE9CD8FE9DD9FE9DD9FE9ED9FF9ED9FF9ED9FE9EDAFF
+9FD9FEA0D9FFA0DAFEA0DAFEA0DAFFA1DAFFA1DAFFA2DBFFA2DBFFA2DBFFA3DBFFA3DBFF
+A4DBFFA4DCFFA4DCFFA5DBFFA4DCFEA5DCFEA5DCFFA6DCFFA6DCFEA7DCFEA7DCFEA7DDFF
+A7DCFFA8DDFEA9DDFFA9DDFFA9DEFFA9DDFEAADEFFAADDFFABDEFFABDEFFAADEFEABDFFE
+ACDEFEACDFFFADDEFFADDFFEADDFFEADDFFFADE0FEAEE0FFAEDFFFAFE0FFAFDFFFB0E0FF
+B0E0FEB0E0FFB0E1FFB1E0FFB1E0FEB2E0FFB2E1FEB3E2FEB3E1FFB3E1FFB3E1FFB4E1FF
+B4E1FFB5E2FFB4E2FFB5E2FFB5E2FEB6E2FEB7E2FFB7E3FFB7E3FFB7E3FFB7E3FEB8E3FF
+B9E3FFB8E4FEB9E3FEB9E4FEBAE4FFBAE5FFBAE4FFBBE4FFBBE5FFBCE4FFBCE5FFBCE5FF
+BDE5FFBDE5FEBDE5FFBDE5FFBEE5FFBEE6FFBEE6FFBFE6FFBFE6FFBFE6FFC0E6FFC1E7FE
+C0E6FFC1E7FEC2E7FEC2E7FFC2E7FFC2E7FFC3E7FEC3E8FFC4E8FFC4E8FFC4E8FFC5E9FF
+C5E9FFC6E9FFC6E9FFC6E9FFC7E8FEC7E9FFC7E9FFC7EAFEC8E9FFC9EAFFC9E9FEC9EAFF
+CAEAFECAEAFECAEAFFCAEAFFCBEBFFCBEBFFCBEBFECCEBFFCCEBFECDEBFFCDEBFFCDEBFE
+CDEBFFCEECFFCEECFFCFECFFCFECFFCFECFED0ECFED0EDFFD0EDFFD1EDFED1EDFFD2EEFF
+D2EDFED2EDFFD2EDFED3EEFED3EEFFD4EDFFD3EEFFD5EFFFD4EFFFD4EFFED5EEFFD5EFFF
+D6EFFFD6EFFFD6EFFFD7F0FFD7F0FFD7EFFFD8F0FFD8F0FFD9F0FFD9F0FFDAF1FEDAF1FE
+DAF1FFDAF1FFDAF1FFDBF1FFDCF1FFDBF1FEDDF1FFDDF1FFDDF1FFDEF2FFDEF2FFDEF3FF
+DFF2FEDFF3FEDFF2FFE0F2FFDFF3FFE0F3FEE0F3FFE1F4FEE1F3FFE2F4FFE2F3FFE2F3FF
+E2F4FFE3F4FFE3F4FFE3F5FFE4F4FFE5F5FFE5F5FFE5F5FFE6F5FEE5F6FFE7F5FFE6F5FF
+E7F6FFE7F5FFE8F5FFE8F6FFE8F6FFE8F6FFE9F7FFE9F7FFEAF7FFEAF7FFEBF7FFEBF7FF
+EBF7FFECF7FFEBF8FFECF8FFECF8FEEDF7FFEDF8FFEDF8FFEEF8FFEFF8FFEFF8FFEFF8FF
+F0F9FFEFF9FFF0F9FFF0FAFFF1FAFFF1F9FFF1F9FFF1FAFFF2FAFFF2FAFFF3FAFFF3FAFF
+F4FAFFF4FAFFF4FAFFF5FBFFF4FBFFF5FBFFF6FBFFF6FBFFF6FCFFF6FCFFF7FCFFF7FCFF
+F8FCFEF8FCFFF9FCFFF9FDFFF9FDFFF9FCFFF9FDFFFAFDFFFAFDFFFBFDFFFBFDFFFBFDFF
+FCFEFFFCFEFFFCFEFFFDFEFFFDFEFFFDFEFFFEFEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/Master/texmf-dist/tex/latex/stex/shading-l2r.png b/Master/texmf-dist/tex/latex/stex/shading-l2r.png
new file mode 100644
index 00000000000..2eabe7a8b17
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/shading-l2r.png
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/stex/stex-logo.sty b/Master/texmf-dist/tex/latex/stex/stex-logo.sty
new file mode 100644
index 00000000000..229aa300eb5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/stex-logo.sty
@@ -0,0 +1,5 @@
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{stex-logo}[2009/08/07 v1.0 sTeX Logo]
+\RequirePackage{xspace}
+\def\stex{\@ifundefined{texorpdfstring}{\let\texorpdfstring\@firstoftwo}{}\texorpdfstring{\raisebox{-.5ex}S\kern-.5ex\TeX}{sTeX}\xspace}
+\def\sTeX{\stex}
diff --git a/Master/texmf-dist/tex/latex/stex/stex-logo.sty.ltxml b/Master/texmf-dist/tex/latex/stex/stex-logo.sty.ltxml
new file mode 100644
index 00000000000..4426caac2e4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/stex-logo.sty.ltxml
@@ -0,0 +1,18 @@
+# -*- CPERL -*-
+# /=======================================================\ #
+# | stex.sty - Implementation for LaTeXML | #
+# | | #
+# |=======================================================| #
+# | Not Part of LaTeXML : http://dlmf.nist.gov/LaTeXML/ | #
+# | Copyright (c) 2006 arXMLiv group | #
+# | Released under the GNU Public License | #
+# \=======================================================/ #
+
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+
+DefConstructor('\stex',
+ "<omdoc:phrase>sTeX</omdoc:phrase>");
+RawTeX('\def\sTeX{\stex}');
+1;
diff --git a/Master/texmf-dist/tex/latex/stex/stex.sty b/Master/texmf-dist/tex/latex/stex/stex.sty
new file mode 100644
index 00000000000..1e0dfee38aa
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/stex.sty
@@ -0,0 +1,22 @@
+% sTeX: a package for semantic markup in LaTeX
+% Copyright (c) 2009 Michael Kohlhase, all rights reserved
+% this file is released under the
+% LaTeX Project Public License (LPPL)
+%
+% The development version of this file can be found at
+% $HeadURL: https://svn.kwarc.info/repos/stex/trunk/sty/stex.sty $
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{stex}[2010/02/04 v0.9b Semantic Markup]
+% we pass the options to the appropriate packages
+\DeclareOption{extrefs}{\PassOptionsToPackage{\CurrentOption}{sref}}
+\ProcessOptions
+% now we require the respective packages.
+\RequirePackage{stex-logo}
+\RequirePackage{modules}
+\RequirePackage{omtext}
+\RequirePackage{statements}
+\RequirePackage{sproof}
+\RequirePackage{omdoc}
+\RequirePackage{presentation}
+\RequirePackage{dcm}
+
diff --git a/Master/texmf-dist/tex/latex/stex/stex.sty.ltxml b/Master/texmf-dist/tex/latex/stex/stex.sty.ltxml
new file mode 100644
index 00000000000..497f48fe576
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/stex/stex.sty.ltxml
@@ -0,0 +1,23 @@
+# -*- CPERL -*-
+# /=======================================================\ #
+# | stex.sty - Implementation for LaTeXML | #
+# | | #
+# |=======================================================| #
+# | Not Part of LaTeXML : http://dlmf.nist.gov/LaTeXML/ | #
+# | Copyright (c) 2006 arXMLiv group | #
+# | Released under the GNU Public License | #
+# \=======================================================/ #
+
+package LaTeXML::Package::Pool;
+use strict;
+use LaTeXML::Package;
+
+RequirePackage('stex-logo');
+RequirePackage('modules');
+RequirePackage('statements');
+RequirePackage('sproof');
+RequirePackage('omdoc');
+RequirePackage('presentation');
+RequirePackage('dcm');
+
+1;
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 5d8c3669f81..896fd2ee733 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -290,7 +290,7 @@ my @TLP_working = qw(
splines splitbib splitindex spotcolor spreadtab sprite spverbatim
srcltx sseq
ssqquote stack stage standalone statex2 staves stdclsdv stdpage steinmetz
- stellenbosch stix stringstrings struktex
+ stellenbosch stex stix stringstrings struktex
sttools stubs suanpan subdepth subeqn subeqnarray
subfig subfigure subfloat substr subsupscripts sudoku
sudokubundle sugconf
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index ca1504c8f11..6b59c2397c4 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -626,7 +626,6 @@ $Master = "$mydir/../..";
'springer', "die 'skipping, licenses not checked'",
'staves', "&MAKEflatten",
'stellenbosch',"&MAKEcopy",
- 'stex', "die 'skipping, make-based, generic .sty names'",
'streetex', "die 'skipping, nonfree'",
'style_showcase', "die 'skipping, until JimH advises it is a good idea'",
'svjour', "die 'skipping, license and packaging unclear'",
diff --git a/Master/tlpkg/tlpsrc/assignment.tlpsrc b/Master/tlpkg/tlpsrc/assignment.tlpsrc
index e69de29bb2d..06fb2570e97 100644
--- a/Master/tlpkg/tlpsrc/assignment.tlpsrc
+++ b/Master/tlpkg/tlpsrc/assignment.tlpsrc
@@ -0,0 +1,3 @@
+docpattern +!d texmf-dist/doc/latex/stex/assignment
+srcpattern +!d texmf-dist/source/latex/stex/assignment
+runpattern +!d texmf-dist/tex/latex/stex/assignment
diff --git a/Master/tlpkg/tlpsrc/background.tlpsrc b/Master/tlpkg/tlpsrc/background.tlpsrc
index e69de29bb2d..3d1f5887f71 100644
--- a/Master/tlpkg/tlpsrc/background.tlpsrc
+++ b/Master/tlpkg/tlpsrc/background.tlpsrc
@@ -0,0 +1 @@
+docpattern +!d texmf-dist/doc/latex/stex/example/background
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index fa5e72ecc0d..0bb60391756 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -582,6 +582,7 @@ depend standalone
depend statistik
depend stdclsdv
depend stdpage
+depend stex
depend stringstrings
depend sttools
depend stubs
diff --git a/Master/tlpkg/tlpsrc/paper.tlpsrc b/Master/tlpkg/tlpsrc/paper.tlpsrc
index 8310c487646..0c6ecd9961e 100644
--- a/Master/tlpkg/tlpsrc/paper.tlpsrc
+++ b/Master/tlpkg/tlpsrc/paper.tlpsrc
@@ -1 +1,2 @@
docpattern +!d texmf-dist/doc/latex/aiaa/pre2004/demos/paper
+docpattern +!d texmf-dist/doc/latex/stex/example/paper
diff --git a/Master/tlpkg/tlpsrc/stex.tlpsrc b/Master/tlpkg/tlpsrc/stex.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/stex.tlpsrc