summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/algorithmicx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/algorithmicx
Initial commit
Diffstat (limited to 'macros/latex/contrib/algorithmicx')
-rw-r--r--macros/latex/contrib/algorithmicx/README4
-rw-r--r--macros/latex/contrib/algorithmicx/algc.sty49
-rw-r--r--macros/latex/contrib/algorithmicx/algcompatible.sty89
-rw-r--r--macros/latex/contrib/algorithmicx/algmatlab.sty68
-rw-r--r--macros/latex/contrib/algorithmicx/algorithmicx.pdf2899
-rw-r--r--macros/latex/contrib/algorithmicx/algorithmicx.sty786
-rw-r--r--macros/latex/contrib/algorithmicx/algorithmicx.tex1768
-rw-r--r--macros/latex/contrib/algorithmicx/algpascal.sty44
-rw-r--r--macros/latex/contrib/algorithmicx/algpseudocode.sty92
9 files changed, 5799 insertions, 0 deletions
diff --git a/macros/latex/contrib/algorithmicx/README b/macros/latex/contrib/algorithmicx/README
new file mode 100644
index 0000000000..97b93dc13c
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/README
@@ -0,0 +1,4 @@
+This package provides many possibilities to customize the layout of algorithms.
+You can use one of the predefined layouts (pseudocode, pascal,
+c, and others), with or without modifications, or you can define a
+completely new layout for your specific needs. \ No newline at end of file
diff --git a/macros/latex/contrib/algorithmicx/algc.sty b/macros/latex/contrib/algorithmicx/algc.sty
new file mode 100644
index 0000000000..c42b44f2d1
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algc.sty
@@ -0,0 +1,49 @@
+% C ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@sourceforge.net
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{algc}%
+\RequirePackage{ifthen}%
+\RequirePackage{algorithmicx}%
+\typeout{Document Style - c/c++ environments for use with the `algorithmicx' style}%
+%
+\ProcessOptions%
+%
+%
+% *** DECLARATIONS ***
+%
+%
+\algnewlanguage{c}%
+\alglanguage{c}%
+%
+% *** KEYWORDS ***
+%
+\let\ALG@cbegin\{%
+\let\ALG@cend\}%
+\algnewcommand\algorithmicbegin{\ALG@cbegin}%
+\algnewcommand\algorithmicend{\ALG@cend}%
+\algnewcommand\textkeyword{\textbf}%
+%
+% *** DECLARED BLOCKS AND LOOPS ***
+%
+\algdef{SEi}{Begin}{End}{0cm}{\algorithmicbegin}{\algorithmicend}%
+%
+\algdef{lS}{For}[3]{\textkeyword{for}\ (\(#1\); \(#2\); \(#3\))}%
+\algdef{lS}{While}[1]{\textkeyword{while}\ (\(#1\))}%
+\algdef{lS}{Do}{\textkeyword{do}}%
+\algdef{Lc}{Do}{While}{0}%
+\algdef{lS}{If}[1]{\textkeyword{if}\ (\(#1\))}%
+\algdef{lC}{If}{Else}{\textkeyword{else}}%
+%
+% *** OTHER DECLARATIONS ***
+%
+%\def\ALG@beginalgorithmic{\let\{\Begin\let\}\End}%
+%
+%\newcommand\Function[3]{\State#1 #32(#3)}%\textit{#2}(#3)}
+%\newcommand\Return{\State\textkeyword{return}\space}%
+%
+\algrenewcomment[1]{\hfill// #1}%
+%
diff --git a/macros/latex/contrib/algorithmicx/algcompatible.sty b/macros/latex/contrib/algorithmicx/algcompatible.sty
new file mode 100644
index 0000000000..075f8512e2
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algcompatible.sty
@@ -0,0 +1,89 @@
+% ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@users.sourceforge.net
+% Based on Peter Williams's algorithmic.sty
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{algcompatible}%
+\RequirePackage{ifthen}%
+\RequirePackage{algorithmicx}%
+\typeout{Document Style - algorithmic compatible environments for the `algorithmicx' style}%
+%
+\def\ALG@noend{f}%
+%
+\DeclareOption{noend}{\def\ALG@noend{t}}%
+\DeclareOption{end}{\def\ALG@noend{f}}%
+\ProcessOptions%
+%
+% *** DECLARATIONS ***
+%
+\algnewlanguage{algorithmic}%
+\alglanguage{algorithmic}%
+%
+% *** KEYWORDS ***
+%
+\algnewcommand\algorithmicend{\textbf{end}}
+\algnewcommand\algorithmicdo{\textbf{do}}
+\algnewcommand\algorithmicwhile{\textbf{while}}
+\algnewcommand\algorithmicfor{\textbf{for}}
+\algnewcommand\algorithmicforall{\textbf{for all}}
+\algnewcommand\algorithmicloop{\textbf{loop}}
+\algnewcommand\algorithmicrepeat{\textbf{repeat}}
+\algnewcommand\algorithmicuntil{\textbf{until}}
+\algnewcommand\algorithmicif{\textbf{if}}
+\algnewcommand\algorithmicthen{\textbf{then}}
+\algnewcommand\algorithmicelse{\textbf{else}}
+\algnewcommand\algorithmicrequire{\textbf{Require:}}
+\algnewcommand\algorithmicensure{\textbf{Ensure:}}
+%
+% *** DECLARED LOOPS ***
+%
+% lines...
+\let\ALG@loopmark\ALG@x@nomark%
+% default line and marks
+\def\ALG@startmark{nomark}%
+\def\ALG@blockline{noline}%
+\def\ALG@continuemark{nomark}%
+\def\ALG@endmark{nomark}%
+%
+\newcommand\ALG@compatcomm[1]{\ifthenelse{\equal{#1}{default}}{}{\ \algorithmiccomment{#1}}}%
+\algrenewcomment[1]{\{#1\}}%
+\algdef{SE}[WHILE]{WHILE}{ENDWHILE}%
+ [2][default]{\algorithmicwhile\ #2\ \algorithmicdo\ALG@compatcomm{#1}}%
+ {\algorithmicend\ \algorithmicwhile}%
+\algdef{SE}[FOR]{FOR}{ENDFOR}%
+ [2][default]{\algorithmicfor\ #2\ \algorithmicdo\ALG@compatcomm{#1}}%
+ {\algorithmicend\ \algorithmicfor}%
+\algdef{S}[FOR]{FORALL}%
+ [2][default]{\algorithmicforall\ #2\ \algorithmicdo\ALG@compatcomm{#1}}%
+\algdef{SE}[LOOP]{LOOP}{ENDLOOP}%
+ [1][default]{\algorithmicloop\ALG@compatcomm{#1}}%
+ {\algorithmicend\ \algorithmicloop}%
+\algdef{SE}[REPEAT]{REPEAT}{UNTIL}%
+ [1][default]{\algorithmicrepeat\ALG@compatcomm{#1}}%
+ [1]{\algorithmicuntil\ #1}%
+\algdef{SE}[IF]{IF}{ENDIF}%
+ [2][default]{\algorithmicif\ #2\ \algorithmicthen\ALG@compatcomm{#1}}%
+ {\algorithmicend\ \algorithmicif}%
+\algdef{C}[IF]{IF}{ELSIF}%
+ [2][default]{\algorithmicelse\ \algorithmicif\ #2\ \algorithmicthen\ALG@compatcomm{#1}}%
+\algdef{Ce}[ELSE]{IF}{ELSE}{ENDIF}%
+ [1][default]{\algorithmicelse\ALG@compatcomm{#1}}%
+\algnewcommand\REQUIRE{\item[\algorithmicrequire]}%
+\algnewcommand\ENSURE{\item[\algorithmicensure]}%
+\algnewcommand\STATE{\State}%
+\algnewcommand\STATEx{\Statex}%
+\algnewcommand\COMMENT{\Comment}%
+%
+\ifthenelse{\equal{\ALG@noend}{t}}%
+ {%
+ \algtext*{ENDWHILE}%
+ \algtext*{ENDFOR}%
+ \algtext*{ENDLOOP}%
+ \algtext*{ENDIF}%
+ }{}%
+%
+\algrenewcommand\algorithmicindent{1em}%
+%
diff --git a/macros/latex/contrib/algorithmicx/algmatlab.sty b/macros/latex/contrib/algorithmicx/algmatlab.sty
new file mode 100644
index 0000000000..e274a7dfa9
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algmatlab.sty
@@ -0,0 +1,68 @@
+% Matlab ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@users.sourceforge.net
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{algmatlab}%
+\RequirePackage{ifthen}%
+\RequirePackage{algorithmicx}%
+\typeout{Document Style - matlab environments for use with the `algorithmicx' style}%
+%
+\ProcessOptions%
+%
+% *** DECLARATIONS ***
+%
+\algnewlanguage{matlab}%
+\alglanguage{matlab}%
+%
+% *** KEYWORDS ***
+%
+\newcommand\textkeyword{\textbf}
+\newcommand\textfunc{\texttt}
+%
+% *** DECLARED LOOPS ***
+%
+\algdef{SE}[WHILE]{While}{End}[1]{\textkeyword{while}\ #1}{\textkeyword{end}}%
+\algdef{Se}[FOR]{For}{End}[1]{\textkeyword{for}\ #1}%
+\algdef{Se}[IF]{If}{End}[1]{\textkeyword{if}\ #1}%
+\algdef{C}[IF]{IF}{ElseIf}[1]{\textkeyword{else}\textkeyword{if}\ #1}%
+\algdef{Ce}[ELSE]{IF}{Else}{End}{\textkeyword{else}}%
+\algdef{LSxnE}[FUNCTION]{Function}{End}{65535}%
+ [2]{\textkeyword{function}\ \textfunc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
+%
+\algdef{SxE}[SWITCH]{Switch}{End}[1]{\let\Case\ALG@thecase\textkeyword{switch}\ #1}%
+ {\textkeyword{end}}%
+\algdef{LS}[CASE]{Case}{65535}[1]{\let\Case\Case@continue\textkeyword{case}\ #1:}%
+\let\ALG@thecase\Case%
+\algdef{LxC}[CASE]{CASE}{Case@continue}{65535}[1]{\let\Case\Case@continue\textkeyword{case}\ #1:}%
+\algdef{LC}[OTHERWISE]{CASE}{Otherwise}{65535}{\textkeyword{otherwise}:}%
+%
+\renewcommand\algorithmiccomment[1]{\hskip 1.5em\textit{\% #1}}%
+%
+\newcommand\algnewfunction[2]%
+ {%
+ \expandafter\newcommand\csname #1\endcsname[1]{\textfunc{#2}\((\)##1\()\)}%
+ }%
+%
+\algnewfunction{Line}{line}%
+\algnewfunction{Scatter}{scatter}%
+\algnewfunction{Plot}{plot}%
+\algnewfunction{Zeros}{zeros}%
+\algnewfunction{Ones}{ones}%
+\algnewfunction{Load}{load}%
+\algnewfunction{Size}{size}%
+\algnewfunction{Disp}{disp}%
+\algnewfunction{Min}{min}%
+\algnewfunction{Max}{max}%
+%
+\def\Break{\textkeyword{break}}%
+\def\Return{\textkeyword{return}}%
+\def\Global{\textkeyword{global}}%
+\def\Hold#1{\textkeyword{hold} #1}%
+%
+% *** OTHER DECLARATIONS ***
+%
+\algrenewcommand\ALG@beginalgorithmic{\let\leftbr[\let\rightbr]\def\[{\textbf{\leftbr}}\def\]{\textbf{\rightbr}}}%
+%
diff --git a/macros/latex/contrib/algorithmicx/algorithmicx.pdf b/macros/latex/contrib/algorithmicx/algorithmicx.pdf
new file mode 100644
index 0000000000..a142d0135f
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algorithmicx.pdf
@@ -0,0 +1,2899 @@
+%PDF-1.2
+7 0 obj
+<<
+/Type/Encoding
+/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
+160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
+>>
+endobj
+10 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F1
+/FontDescriptor 9 0 R
+/BaseFont/KUVUVS+CMR17
+/FirstChar 33
+/LastChar 196
+/Widths[249.6 458.6 772.1 458.6 772.1 719.8 249.6 354.1 354.1 458.6 719.8 249.6 301.9
+249.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 249.6 249.6
+249.6 719.8 432.5 432.5 719.8 693.3 654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6
+471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.5 510.9 667.6 693.3 693.3 954.5 693.3
+693.3 563.1 249.6 458.6 249.6 458.6 249.6 249.6 458.6 510.9 406.4 510.9 406.4 275.8
+458.6 510.9 249.6 275.8 484.7 249.6 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1
+510.9 484.7 667.6 484.7 484.7 406.4 458.6 917.2 458.6 458.6 458.6 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576 772.1 719.8 641.1 615.3 693.3
+667.6 719.8 667.6 719.8 0 0 667.6 525.4 499.3 499.3 748.9 748.9 249.6 275.8 458.6
+458.6 458.6 458.6 458.6 693.3 406.4 458.6 667.6 719.8 458.6 837.2 941.7 719.8 249.6
+458.6]
+>>
+endobj
+11 0 obj
+<<
+/Type/Encoding
+/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/visiblespace
+160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis]
+>>
+endobj
+14 0 obj
+<<
+/Encoding 11 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F2
+/FontDescriptor 13 0 R
+/BaseFont/MCOAAW+CMTT12
+/FirstChar 33
+/LastChar 196
+/Widths[514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 0 0 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6
+514.6 514.6]
+>>
+endobj
+15 0 obj
+<<
+/Type/Encoding
+/Differences[0/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft
+161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus
+173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade]
+>>
+endobj
+18 0 obj
+<<
+/Encoding 15 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F3
+/FontDescriptor 17 0 R
+/BaseFont/FTGPAX+CMSY10
+/FirstChar 33
+/LastChar 196
+/Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8
+275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8
+611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9
+820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7
+666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8
+500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4
+444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8
+777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8
+777.8 777.8 1000 1000 777.8 777.8 1000 777.8]
+>>
+endobj
+21 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F4
+/FontDescriptor 20 0 R
+/BaseFont/OQGBBN+CMR12
+/FirstChar 33
+/LastChar 196
+/Widths[272 489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6
+489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4
+462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2
+734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6
+272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6
+544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6
+489.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611.8 816
+761.6 679.6 652.8 734 707.2 761.6 707.2 761.6 0 0 707.2 571.2 544 544 816 816 272
+299.2 489.6 489.6 489.6 489.6 489.6 734 435.2 489.6 707.2 761.6 489.6 883.8 992.6
+761.6 272 489.6]
+>>
+endobj
+24 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F5
+/FontDescriptor 23 0 R
+/BaseFont/LUZJQO+CMBX9
+/FirstChar 33
+/LastChar 196
+/Widths[360.2 617.6 986.1 591.7 986.1 920.4 328.7 460.2 460.2 591.7 920.4 328.7 394.4
+328.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 591.7 328.7 328.7
+360.2 920.4 558.8 558.8 920.4 892.9 840.9 854.6 906.6 776.5 743.7 929.9 924.4 446.3
+610.8 925.8 710.8 1121.6 924.4 888.9 808 888.9 886.7 657.4 823.1 908.6 892.9 1221.6
+892.9 892.9 723.1 328.7 617.6 328.7 591.7 328.7 328.7 575.2 657.4 525.9 657.4 543
+361.6 591.7 657.4 328.7 361.6 624.5 328.7 986.1 657.4 591.7 657.4 624.5 488.1 466.8
+460.2 657.4 624.5 854.6 624.5 624.5 525.9 591.7 1183.3 591.7 591.7 591.7 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 710.8 986.1 920.4 827.2
+788.9 924.4 854.6 920.4 854.6 920.4 0 0 854.6 690.3 657.4 657.4 986.1 986.1 328.7
+361.6 591.7 591.7 591.7 591.7 591.7 892.9 525.9 616.8 854.6 920.4 591.7 1071 1202.5
+920.4 328.7 591.7]
+>>
+endobj
+27 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F6
+/FontDescriptor 26 0 R
+/BaseFont/PCKLZH+CMR9
+/FirstChar 33
+/LastChar 196
+/Widths[285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6
+285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5
+285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1
+799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7
+770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9
+571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3
+542.4 542.4 456.8 513.9 1027.8 513.9 513.9 513.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 642.3 856.5 799.4 713.6 685.2 770.7 742.3 799.4
+742.3 799.4 0 0 742.3 599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9
+513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 513.9]
+>>
+endobj
+30 0 obj
+<<
+/Encoding 11 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F7
+/FontDescriptor 29 0 R
+/BaseFont/DLKTLK+CMTT9
+/FirstChar 33
+/LastChar 196
+/Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525]
+>>
+endobj
+33 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F8
+/FontDescriptor 32 0 R
+/BaseFont/SSFYJF+CMBX12
+/FirstChar 33
+/LastChar 196
+/Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5
+562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6
+875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8
+675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5
+687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5
+343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7
+593.7 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5
+656.2 625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1
+812.5 875 562.5 1018.5 1143.5 875 312.5 562.5]
+>>
+endobj
+36 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F9
+/FontDescriptor 35 0 R
+/BaseFont/XXVFAZ+CMBX10
+/FirstChar 33
+/LastChar 196
+/Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4
+575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4
+869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900
+863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8
+319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9
+319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9
+511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8
+638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4
+575 1041.7 1169.4 894.4 319.4 575]
+>>
+endobj
+39 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F10
+/FontDescriptor 38 0 R
+/BaseFont/SOTTXL+CMR10
+/FirstChar 33
+/LastChar 196
+/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8
+500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8
+750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8
+680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8
+277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6
+500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500
+500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3
+777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3
+277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8
+277.8 500]
+>>
+endobj
+42 0 obj
+<<
+/Encoding 15 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F11
+/FontDescriptor 41 0 R
+/BaseFont/HPNSAM+CMSY6
+/FirstChar 33
+/LastChar 196
+/Widths[1222.2 638.9 638.9 1222.2 1222.2 1222.2 963 1222.2 1222.2 768.5 768.5 1222.2
+1222.2 1222.2 963 365.7 1222.2 833.3 833.3 1092.6 1092.6 0 0 703.7 703.7 833.3 638.9
+898.1 898.1 963 963 768.5 989.9 813.3 678.4 961.2 671.3 879.9 746.7 1059.3 709.3
+846.3 938.8 854.5 1427.2 1005.7 973 878.4 1008.3 1061.4 762 711.3 774.4 785.2 1222.7
+883.7 823.9 884 833.3 833.3 833.3 833.3 833.3 768.5 768.5 574.1 574.1 574.1 574.1
+638.9 638.9 509.3 509.3 379.6 638.9 638.9 768.5 638.9 379.6 1000 924.1 1027.8 541.7
+833.3 833.3 963 963 574.1 574.1 574.1 768.5 963 963 963 963 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 963 379.6 963 638.9 963 638.9 963 963
+963 963 0 0 963 963 963 1222.2 638.9 638.9 963 963 963 963 963 963 963 963 963 963
+963 963 1222.2 1222.2 963 963 1222.2 963]
+>>
+endobj
+45 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F12
+/FontDescriptor 44 0 R
+/BaseFont/BFZLAM+CMR8
+/FirstChar 33
+/LastChar 196
+/Widths[295.1 531.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2
+295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1
+295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6
+545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091
+795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2
+324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1
+413.2 590.3 560.8 767.4 560.8 560.8 472.2 531.3 1062.5 531.3 531.3 531.3 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 663.6 885.4 826.4 736.8
+708.3 795.8 767.4 826.4 767.4 826.4 0 0 767.4 619.8 590.3 590.3 885.4 885.4 295.1
+324.7 531.3 531.3 531.3 531.3 531.3 795.8 472.2 531.3 767.4 826.4 531.3 958.7 1076.8
+826.4 295.1 531.3]
+>>
+endobj
+47 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1440
+>>
+stream
+xXK6W(#[ 5dHr3Jeok@^L>oIr]wɛ< ,o.+L\1]$~Ko^L
+lkjVz%j!tyeZU%0QXKLbAZ(E2j/qQ0Ljex-Y¥e$~մ=d|`#zow߶ݝg4eX 8
+vUM
+?l*\QuR0gɔf7Е$q.XfCn9fœ39Lm._gS6piMUWCER.ZhevnGO:M8;@Һ '& zR.
+ r$N,4mƏBF>~_ۘ#ҹ$=tcPsQ|)0We=,9% m,s<s-L*
+V h!@a*'c<̧c(G"8=MZt[Mn+e<F9wp 3s4uDa
+ްOeks3̞{5ѣݞ_Ōz™W/%k;5ED,88z`咰_]|z\ᱦBT@]
+endstream
+endobj
+49 0 obj
+<<
+/F1 10 0 R
+/F2 14 0 R
+/F3 18 0 R
+/F4 21 0 R
+/F5 24 0 R
+/F6 27 0 R
+/F7 30 0 R
+/F8 33 0 R
+/F9 36 0 R
+/F10 39 0 R
+/F11 42 0 R
+/F12 45 0 R
+>>
+endobj
+6 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 49 0 R
+>>
+endobj
+54 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F13
+/FontDescriptor 53 0 R
+/BaseFont/YSHDRQ+CMR7
+/FirstChar 33
+/LastChar 196
+/Widths[323.4 569.4 938.5 569.4 938.5 877 323.4 446.4 446.4 569.4 877 323.4 384.9
+323.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 323.4 323.4
+323.4 877 538.7 538.7 877 843.3 798.6 815.5 860.1 767.9 737.1 883.9 843.3 412.7 583.3
+874 706.4 1027.8 843.3 877 767.9 877 829.4 631 815.5 843.3 843.3 1150.8 843.3 843.3
+692.5 323.4 569.4 323.4 569.4 323.4 323.4 569.4 631 507.9 631 507.9 354.2 569.4 631
+323.4 354.2 600.2 323.4 938.5 631 569.4 631 600.2 446.4 452.6 446.4 631 600.2 815.5
+600.2 600.2 507.9 569.4 1138.9 569.4 569.4 569.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706.4 938.5 877 781.8 754 843.3 815.5 877 815.5
+877 0 0 815.5 677.6 646.8 646.8 970.2 970.2 323.4 354.2 569.4 569.4 569.4 569.4 569.4
+843.3 507.9 569.4 815.5 877 569.4 1013.9 1136.9 877 323.4 569.4]
+>>
+endobj
+57 0 obj
+<<
+/Encoding 11 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F14
+/FontDescriptor 56 0 R
+/BaseFont/JQOGWQ+CMTT10
+/FirstChar 33
+/LastChar 196
+/Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525
+525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
+525 525]
+>>
+endobj
+58 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 2170
+>>
+stream
+xYYF~_!e)bS`;B`@&;#hC
+8x׷]]{
+=-_}n)goЙd]r ELw+6A^q{*}{ nXqw_6^8q<ZWc {XRk}7P%V+f
+(IACw٦s~= ma/'T޿ar$С#)r5ںt?K ͯ~GL2 @9:QiEϝgy湔m:
+zqN2>wDu3ܲtWɉ;ÈP#ֿz&h72nU[{5Zp-@ 4LGkwԝq%of2}ƳNL+ 8-lnRgDHwrፌV|AvU1%KbUM8}wm+?hR)|/>Mɬ |g%c#b;CdJے@ŖQ=qJ'M 8`?R37N@ܻb&gue$:0@iJŮ>7Օ
+Q&3[ͬ5ǂ_~p
+2Qnv
+-=io.-$򽳸{˝[|?q 
+޹jn'n]^ Bqa喲~%.J V:~ydq))¤a_[r TB*<KI4 ]
+RϲD<zg,{'N y#:Im<Ti L'Phݐsţb? 'il-8ewyb{ŹH./$UW:zǹ 9(.a$J6:
+SH
+endstream
+endobj
+59 0 obj
+<<
+/F10 39 0 R
+/F9 36 0 R
+/F8 33 0 R
+/F13 54 0 R
+/F14 57 0 R
+>>
+endobj
+51 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 59 0 R
+>>
+endobj
+62 0 obj
+<<
+/Type/Encoding
+/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi
+160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie]
+>>
+endobj
+65 0 obj
+<<
+/Encoding 62 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F15
+/FontDescriptor 64 0 R
+/BaseFont/FQGAMG+CMMI10
+/FirstChar 33
+/LastChar 196
+/Widths[622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500
+500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9
+750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5
+762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9
+388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6
+298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3
+465 322.5 384 636.5 500 277.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 615.3 833.3 762.8 694.4 742.4 831.3 779.9 583.3 666.7 612.2 0 0 772.4
+639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5
+570 517 571.4 437.2 540.3 595.8 625.7 651.4 277.8]
+>>
+endobj
+68 0 obj
+<<
+/Encoding 7 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F16
+/FontDescriptor 67 0 R
+/BaseFont/LTVBNX+CMR6
+/FirstChar 33
+/LastChar 196
+/Widths[351.8 611.1 1000 611.1 1000 935.2 351.8 481.5 481.5 611.1 935.2 351.8 416.7
+351.8 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 351.8 351.8
+351.8 935.2 578.7 578.7 935.2 896.3 850.9 870.4 915.7 818.5 786.1 941.7 896.3 442.6
+624.1 928.7 753.7 1090.7 896.3 935.2 818.5 935.2 883.3 675.9 870.4 896.3 896.3 1220.4
+896.3 896.3 740.7 351.8 611.1 351.8 611.1 351.8 351.8 611.1 675.9 546.3 675.9 546.3
+384.3 611.1 675.9 351.8 384.3 643.5 351.8 1000 675.9 611.1 675.9 643.5 481.5 488
+481.5 675.9 643.5 870.4 643.5 643.5 546.3 611.1 1222.2 611.1 611.1 611.1 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 753.7 1000 935.2 831.5
+805.5 896.3 870.4 935.2 870.4 935.2 0 0 870.4 736.1 703.7 703.7 1055.5 1055.5 351.8
+384.3 611.1 611.1 611.1 611.1 611.1 896.3 546.3 611.1 870.4 935.2 611.1 1077.8 1207.4
+935.2 351.8 611.1]
+>>
+endobj
+69 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 2167
+>>
+stream
+xڝXKW0PU#@ܛwu9eU-0g S|xHINx7Q"$z>zcD(L{F
+EN}6[ev-~wеpxCz^OEw?wЬk6.yn?mEIE,ӵ>lZ&@"-uTlm"U㩛F^{?p&!H䙶[ʞw=1,y=tXCl-|,
+ЙPfW?v=TxBSoG qu&HMUY=hw5Hfq>t}ƪk39J|ZTgwب4~r!><v- <ml>5$7
+j@?Cϔ{ٖco80x5`,!ؚ̖̅
+'[Q6~><t %-q;߃~k D9]|~ ֚M.q
+kܺxǑC^jL."(iXw]$~:S_w<A-
+V\kf&0k߂mrq FoRsQ^Nc. e$ԒI";J%
+$ W5QZA:䆝)qA/YP!l:J!f7k 4)`Ilʳ1|
+endstream
+endobj
+70 0 obj
+<<
+/F10 39 0 R
+/F9 36 0 R
+/F8 33 0 R
+/F13 54 0 R
+/F14 57 0 R
+/F15 65 0 R
+/F16 68 0 R
+/F12 45 0 R
+>>
+endobj
+61 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 70 0 R
+>>
+endobj
+73 0 obj
+<<
+/Type/Encoding
+/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
+160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
+>>
+endobj
+76 0 obj
+<<
+/Encoding 73 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F17
+/FontDescriptor 75 0 R
+/BaseFont/PPCPCC+CMTI10
+/FirstChar 33
+/LastChar 196
+/Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8
+306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7
+306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6
+525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9
+743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7
+460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7
+460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6
+766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1
+511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1]
+>>
+endobj
+77 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 2015
+>>
+stream
+xڅXɎF+df.>xkЇ,)%E.%7
+K&">12E$7yC_6 7i"6X$)ߦ:;ˋ
+&y,* %xTWnڪ$[mcwyutDLCӁyvNUTg.v7;iDf#EƊfHjSiJ'2Fuq՞C'њvE3αp f-Pf!uygt4Mk~hjI_?[-ؑmbeo<@]AQCoXvK"IN.L.*wGJp6(i'XOکkݬmL[+P$~+1ȑ_{C#v{2=Dʹp3Vr&T̗>0a $,BA~OЉV*fiV&:vD)VF(vYL{yy  98/U"Ҕ+aMEe~p. Aˠ#NEi963}1R| &OWarad`*j@X^[@r5U"E"WZ+Q g)Z&"ܣXU߲ZH݅1*3Us@4^BX=̴m2*,%085>vK9 c}`+N!bkϓOJD0aePΫ_Gh>+ŅfQ+b&h!Np3Uk_ˀ
+8_ss$"c_ ikt'H(4Zɑwcё1˚Owظœo8_
+>R{Cf#vA 2'`BCEk"G8ɴ3KonZo&x#B .X]`]T`dʥF\q-NuzGb1( ٛdfa;2WLe ;`9x>z[[*U(~+u!2RcC"Ȼҝ*"NvaM!w]ì9QMdDiΙL:IHnE ,rO,C
+JybCY)[y2G mFLs](>e0?mdr-( >'#&Sc $Lw619P8kDwJ@ؕ̕?2+UV_mW\Qe p< %P910>6*k':M:x4L0( v-* ge,,[ Gޫ8@?oSП |_&`OkMTeZt.]d|Ս}y϶N6:Φ0'G3k掋]5JBS83eC'?LՑRÀ?z.8~gI% *8?@BDd~TkyvAS6(Wۍt'Փ'@"(KK_
+G:YX GR x={3z
+MKT{0Sk! tKV
+endstream
+endobj
+78 0 obj
+<<
+/F10 39 0 R
+/F14 57 0 R
+/F17 76 0 R
+/F8 33 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+/F9 36 0 R
+>>
+endobj
+72 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 78 0 R
+>>
+endobj
+81 0 obj
+<<
+/Type/Encoding
+/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
+160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
+>>
+endobj
+84 0 obj
+<<
+/Encoding 81 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F18
+/FontDescriptor 83 0 R
+/BaseFont/BAXKGQ+CMCSC10
+/FirstChar 33
+/LastChar 196
+/Widths[319.4 552.8 902.8 552.8 902.8 844.4 319.4 436.1 436.1 552.8 844.4 319.4 377.8
+319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 319.4 319.4
+844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 741.7 712.5 851.4 813.9 405.6
+566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 786.1 813.9 813.9 1105.5
+813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 580 591.1 624.4 557.8
+535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 557.8 635.6 602.2 457.8
+591.1 613.3 613.3 835.6 613.3 613.3 502.2 552.8 1105.5 552.8 552.8 552.8 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 683.3 902.8 844.4 755.5
+727.8 813.9 786.1 844.4 786.1 844.4 0 0 786.1 552.8 552.8 319.4 319.4 523.6 302.2
+424.4 552.8 552.8 552.8 552.8 552.8 813.9 494.4 915.6 735.6 824.4 635.6 975 1091.7
+844.4 319.4 552.8]
+>>
+endobj
+85 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1801
+>>
+stream
+xX[6~ےj `inVӎTUMHd9>68/\UxuXˏooUtu{JS&,KVmE}L?뫾xoh{e<~ɅbyW~Q{C1zѣlvp}YLxtjJӹ}'',NYN'3I@Vz#EF#jhW @دG?SofhlNE;XGGOrH
++ fM EdQ›f0n}Uk|J4*K`Kt:RҨ I
+ЍVa5t#`=n{gCq|VnQ4R 鄩2L
+77j'r` v.zdITkɣ'iOJ#S2jA>Q,h:e 31lA2%F̢-J# m]&8rKQAQ"BDyADdB, -l
+{~UVj'/T6pCA4f;FP]4Sq<[ObHjjN}"= gxWD L1g\eA﫮m,:}qL~78T MhCUS~e5ɋQ$ m$(&,Wv#"`&n2 pYLSKƯW{sQB2x\cCFqg$Z):CXUGrYm*+O9K* *&l:`Vbz"{KbIcLx5E`.j_84Mg1PàqXO‘^X9Pj3c#Ln&*Q{$2bZU)W.`N*Y&4r)GrfJ$k;
+jWذֲ>)9ٿ) WPӞhlKT%3>miX?<v
+=(k^'<L$1&DRL90wLT
+-k
+&l<n-lϙh BI.-Ȟ \A3N -֙5L0Ab1*\/{*W1i4?GE`VZ%=KPPd!t$`w)w֦m?<۷noFDqm5Me g
+endstream
+endobj
+86 0 obj
+<<
+/F14 57 0 R
+/F10 39 0 R
+/F9 36 0 R
+/F8 33 0 R
+/F17 76 0 R
+/F12 45 0 R
+/F18 84 0 R
+/F15 65 0 R
+/F3 18 0 R
+>>
+endobj
+80 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 86 0 R
+>>
+endobj
+89 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1997
+>>
+stream
+xڕXm۸_YzO
+T.q'ypi;
+gQ
+ 
+mQj
+)$d`e@1o*|`Y0
+endstream
+endobj
+90 0 obj
+<<
+/F14 57 0 R
+/F10 39 0 R
+/F9 36 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F13 54 0 R
+>>
+endobj
+88 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 90 0 R
+>>
+endobj
+93 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 882
+>>
+stream
+xWKO@WG}MQVJ=8 1 0*߻GXg
+8+ *Eb 8Dt^@Կ?sEDH vYk>D瓱<8
+(sx;_qc` aYq<MtJ<9{8!yk`;IlŽ@P{7pg;#sS{xv\-MUv] ZR<d9"Tղm[A٨铳0'$ЮcCT)-C'%pC=â1y+FmU=t%φQ6zդ>N'5*Tfq(͒;NRa?1_8#̊n5-XXu4rgz20Щ?]1d9:M0swBɍcq tlnd.C#[@gc+L`ҕ~s>Pg!ފ5iJ,7JiKlJl uYބ/{hGrc C6k$Mъ[ݛ'n=G|;6ȿ,r%:_ŗ9ǣݶn iɳ$/-erkvȒ ( *p{t{0}Ԉ.b8庯NhJiq/W7~uw@Q?n .1+WMauyuiX~"~(
+endstream
+endobj
+94 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F15 65 0 R
+/F10 39 0 R
+/F3 18 0 R
+>>
+endobj
+92 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 94 0 R
+>>
+endobj
+97 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1028
+>>
+stream
+xXKoJWxaWRY0]0))QޙMMhy|m̳?y ^SOE`~!
+X'c4|H>Uͧ}-V @>%w̰TYF%x``RSkͲaqm%RK
+S-!ޘ?eV/t^^|؎O pu AI-N_Yݼrp fF;{v9
+
+(zd, t"DY$"ZY
+s( E0ϬR۹+ytC7/Zzy>V R\O{<vmȌ"]ֶKC06NIon]q]d.κaƾΊS`+˓wtImвA_r/4^&7/x/7g-vر<wch{oD7RiV7vY! '-BnlR]vH9A;70v@NX;eT81#)JvO>oM*-ų"'837_,ʼnq6:g|/q;u&z5W:ur ok95Yׅ}Һgt#`V
+覦1_
+endstream
+endobj
+98 0 obj
+<<
+/F9 36 0 R
+/F10 39 0 R
+/F14 57 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+/F18 84 0 R
+>>
+endobj
+96 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 98 0 R
+>>
+endobj
+101 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1623
+>>
+stream
+xXKo6W!-P1K@&E)Z=dsW-D+m%ml Ii驗]V I{*V9*DU&flmΚbEW_WT4_Ŕ\gmyn`qyהFJ\T)B$7'@LWY:U#'!!j6*.Cn& Nܭ&K7QL^j#n$e/:z.Bn/M\JK \LE-fQy$3C=SdJo6)1$=ˈY8p\^D76e<H΢von]s}\LP/ч:fv1Gs-LTB1vR8aM[c%Ul-P~Ka{CQ͝f:)e` wԶ튦j_@n+7S5> _\,hC UsmG۶)+~oǀ0X<*붫P4)-u*7Uڹ[t5O2.PPu:p vR^īmp1[w?ԃF%1O$SÂ \9pRhiblKjE]O5ѫbt>\R-`y*.("a3
+um;5Ēɨow0Ay(}]ݓ+Vuma&AiQw [h|u-c$_70]~G@Gi 8K SO{ӂj GVkv$jꭶ駥|$fs嫯j/ >oZ?;K
+r ϛ*l/
+ ɐj#;d/_ucOoӜH5YjL9 f. fp ]Pzz7<K`/eD6)G^N/@44ItLL$#w$$u*ڰZ( z'Pj^vۖa*W&ԙ
+4 J7w'\Ybn?=ʃL]p/2dߖeTB`^o18o9^5mҽt-¼,uh+؆YD6~
+endstream
+endobj
+102 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F15 65 0 R
+/F18 84 0 R
+/F10 39 0 R
+/F3 18 0 R
+/F17 76 0 R
+>>
+endobj
+100 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 102 0 R
+>>
+endobj
+105 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1493
+>>
+stream
+xXK6W 2Z1")RR6i EaX>)˖l{ra!>gyp."E~~_rMXW YcvP [~x "f"etC5lAPLEtǃsdBcv$0**1%Ru}*[Iy([<9G,ܥjMUP jL c/St{:6BkPA &?@bv't
+ 6
+FW
+(pc"X4x_xz(Ac5Ȉ4v3Zٙl+T+7wFl84$4*2,
+ )nkb@IElEkOR1
+Nk.a+1QQiaRe
+^
+JY'S`ұiBFPJxɦۓp&4rO'Nu֝w3
+]pa[9=(}%6t‘Jcἅ[GN݁(LZfHyMeh.Nʮu[dGĪa0r!JM:'-EĭXyw7֘i
+endstream
+endobj
+106 0 obj
+<<
+/F9 36 0 R
+/F10 39 0 R
+/F14 57 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+>>
+endobj
+104 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 106 0 R
+>>
+endobj
+109 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1900
+>>
+stream
+xڭXYo6~ۚOI
+80$apG Č]ל [x!a;ϧ)žK7<N𶚿ʉt0 jrHMT_ fA3ⰷW>*cg'ZsG^,"h*~u\Mu,\౟ڥӲ)6JqH7++t]%6my^nc3eqSX;% {>mab,)#":)^Ju ~ #1V,:kn[V ЈȺ:#Vs2c̨i"@m̵Jwl~S`c;SKdYU/(^{(f(Xݦ%:Cdg%[p cXѦbtٜ5kyc2aaiáR:?5k}cwc[X`
+v! 7HV"XMQ$701(3]6g +kd5.Fo羰{./n+4=L'LMt޺>c53 Q]чE.Ps&Tt(yXgz_ Dt\tRQw{\oWo׏7'
+X<A C wWrGh) Um&lj/iAw=M;ڬ# a+lH#yE[3!D\RƄj  IN7ĕ"!߫>, v:8`csbEFe8nzCo:[Gb xdw 4wҼDTr}1$\pFMDk
+bh!B
+OVl6[2OAaU.t ]zdBt+A7\ h[y@WSF/BFh3&<m_qOSF&ЅĔ^0LrG(iA85Ӆ]
+endstream
+endobj
+110 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+/F10 39 0 R
+/F9 36 0 R
+/F8 33 0 R
+/F17 76 0 R
+>>
+endobj
+108 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 110 0 R
+>>
+endobj
+113 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1360
+>>
+stream
+xXKo6W.K$MrӢuQq~ȉY2lyA!)ٴ(+N@/! gyPFY~ n`8@" "A᯷! |Iv<
+42uwmyjI
+T_nk*q bhQ߇~hI's#f=UshH^d]%2p\FsO
+dvދrsK!-f MKxCGHBB2%
+u+OӒ
+endstream
+endobj
+114 0 obj
+<<
+/F10 39 0 R
+/F9 36 0 R
+/F14 57 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+>>
+endobj
+112 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 114 0 R
+>>
+endobj
+117 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1757
+>>
+stream
+xڝXK6W7Wz&[H/==hmV,̃dKf{1%r83fȫnW n&+)EH8\m"-z#
+]otYqS wU*mWOu<Z oB& ȵBD:b :U8v*=ۃXo1{2N`Ix1k;PT6
+0dz"|3nuƯK2xaV%#1wJt_ G0oEAwv#q`kF1kYְu=O2UHPv~Txv~аI缘[t7%|w":]^W3 cu2s@h?=u]̭kR=4h@k%RC[̟ˁ5T#OZOJ)t\m]&
+?nu9 xk2$GR}؆(jRڍN]i
+J>`76W顄z)u0Җgw&gVPAS3vs_fBzGL$xT
+\dS>0-KZo{h٦ ~rlNr>ҭŏC \$OyH8Q>,Sn-
+b3#ԏ>X u"o≢킂T|=gB=lxP؏ͿlǴrϻQaW8Z :Yϊb4uC\E#m]Z6.$Nb׵*Eo R/` >#}eOumSFić;th]frՏ'y< sվ9VKM/f]A  |ަM"/' Ap:;ҋ"YV3/gǎ9o,=NE| ~iHhrh+S"#ۄqQ:., <#i5uW ]nWPZPŵ(rgGS>5KŎzz:1Ӡ+Y2>qtlN!8 DIBy|ie!Y7A=!uy3\c(Aඖ2݇;\ RLI8rߋl`Щ\4)W
+_.
+@U&h,@]^ˋCV!6l,,Q_̶B8.p{ǕE`'2IwAK J/@Hm'jg5l&3O)84rsrGvwR3.(4l?fQUl_Gdz޵/l1F3U =44&
+endstream
+endobj
+118 0 obj
+<<
+/F8 33 0 R
+/F10 39 0 R
+/F9 36 0 R
+/F3 18 0 R
+/F14 57 0 R
+>>
+endobj
+116 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 118 0 R
+>>
+endobj
+121 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 2142
+>>
+stream
+x]o6b>td6X-zח
+
+~vI` ;i]'&i
+^A] |c6U:<>GT~o'AI@媓dRy^0Nq.t>/2c!D \iП8g Mqb.T|8En&FH!I(XDA}"2]Q҈xe>۱tPƉ:Fo7A-rJ(*چfVd9X
+EgsfgP=|.cQ%;S] ,%8vG2nxsEz5n@ܶ pMPNuw?|~xs %_\Op8 34tk$\5
+ei]ꪎ0t-r_i\]}r_m땈)}"N0XQxWaiGg0>lJ/X_tr+X`ZBC޵RRa(yPRT߹.&quKJRER2PA{. HL:PX\"7z^ UoB!Pw(YYr1rBܯ "n,Z"o\m 9sJJf/8|U%0Zt!cLx%Ē Wuӊ@0
+ hE3!T86}Wo( 01_"0jTVּtۼL[#oP(1'?@v>Ҏ
+WzޠDCszz.mm\*(5Ul^2pP6<*k\LJdfV\YC/! dsהB.Tɾ|\WK얍K`Eqׁ9&|.|Ζn~R$h[PM( gL  BiPopO E$BǙ8S;{L*h&2RrA^N> #p5w;`Jw vpL1.Y޿5"܈`fr ;p=yLi5XAt(QKH&̃R86{W.JNVXqr? .`TKSeυ{HXTL m^voNz+ .d<ʂ6q'7A/>RGCt}[҆1 I`<\,p1PNM cFR
+pGu}^ViʃhkѴw}*3ȣ
+endstream
+endobj
+122 0 obj
+<<
+/F8 33 0 R
+/F10 39 0 R
+/F14 57 0 R
+/F15 65 0 R
+>>
+endobj
+120 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 122 0 R
+>>
+endobj
+125 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1047
+>>
+stream
+xڭVQo8~_:H*uޝNڮKBh4* ۮ8(' {o;>}ѯ?OȑLNvbxBnnc,V-zu-8Zo>߁Gv5ïڅ Krm,sݼ&A~!g ~"ya%%&|"9R1>C-Ͷ\
+6ILP<,璉@;d$WrLF % -F
+-g20(I~"҆],B%K)Hq腒Ɉ3
+)|w5ƃml֊VѠ+eUd74 eLsX0&X6"74ݒɦcБQ`,eP71 3S^4ٴ]O]_7Ka'H>Fhܴ
+nz#KcqcأoeĒI񎌕1hg0-"8G/8087i]['Ҫi^,nl^BVGW*ᴥ- [ޮ_Ԇ:Uw
+7<F|p8 0B}@O_z갯e2955_.]_/W_*s^T;5ʞdH{~iȑ`Kʪ!9^98ykIS{!^V<8y<Gճ,C 82!pXIMNN-ŸU:w4G<aPkmQdtB&W
+9?4ZKJ[ A~5TjrS-Fcrݛ r/
+endstream
+endobj
+126 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F10 39 0 R
+/F8 33 0 R
+>>
+endobj
+124 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 126 0 R
+>>
+endobj
+129 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1485
+>>
+stream
+xX[F~@jb)0 CZ)IjZVY{ΜpNJ}}:|,<>,}摗4k/,\,wwaWe2_ޜs]_frww~nk2J
+b5n^ΓA$N.)
+&< o0ڀkpM&Ș kh#'8 Ax7AϢجx#9ф8(,IM
+uz.]:Y,d
+]XL|X4Hb&l-fsD>x~> Ev|A 97"Fz.Y> 7s_ޙQΖ3}sۯ8Ҵ=hUӨdߕ٢0ein(H7+c褮"J.+41K##!t4+qinͶ6
+9GnH i8?^;rAكwh? KǐH~voYP4W (;b-_
+CGAƭؖcAKE4*MIܘ5sڒcX Y*ivu dևЊg,h?6#a6&5ACG)-lae~ܷ}Gzv>.S,Jfoꤛ `&I2G%XmOņ]rv[O%7J_mĺ_irx j:G^
+Ë*WhlAbd80c EIJK[Iu5uˎi;幭ԖD!{񞂈2^M1J/Fl:m,]?:l-'~6- 0'SȂ˻jĻ.HErntO_a'
+endstream
+endobj
+130 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F15 65 0 R
+/F8 33 0 R
+/F10 39 0 R
+>>
+endobj
+128 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 130 0 R
+>>
+endobj
+133 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1018
+>>
+stream
+xڭWK8@ً#-Շ\民rpI&8
+ӭ(}6iMWr0,lYP5BRc`3LjaE˶q&uysӳ=$W;m:xLߟWxI5gE݆'JªEFJZj\l9l@/`mh({|ବY=%Mؘ|+ c/]O6ۆa)=z=RA ^hC.Ľѽno;kwV}K?/p|#_Q߬`i\n|Ev@q$ v6t|70̱~,TzduKu>M!_oymsXM1du"Dk<IfZ<"6,NZGњo!-vi|C>?& J_qZ A+h+ f>cR]/(7ρ˽"uJۆC_?N1EoG`>v¦؛@Pqg
+Moz.|w-@IQ
+`ɿ(d\Aڜ.z(Zg<} 2n*l }7bl p<X=$ΤCIBC
+-It]L:܎I#w%oϲ`f( #W{x
+endstream
+endobj
+134 0 obj
+<<
+/F14 57 0 R
+/F10 39 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F8 33 0 R
+>>
+endobj
+132 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 134 0 R
+>>
+endobj
+137 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 878
+>>
+stream
+xVKo0 W=)ږ%@P`Î= E(Q趮vB~c2i7;Q4r<ONt6OXJU7(&Dֽ?#s6 Y:;n"FkWIv63RuﭔsQ1v
+bnn
+/yUT'mjJ9)Q:ֳ(#\doF 9܍*d]?2F $r`T+{&2P4>j<%)!.-\^M^"ZuD3'3F웝TzÒÀ:Q_^S;ή!s,Ξ]H"ǰ}ZJQXRis͏jj_WJulkM
+endstream
+endobj
+138 0 obj
+<<
+/F10 39 0 R
+/F3 18 0 R
+/F14 57 0 R
+>>
+endobj
+136 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 138 0 R
+>>
+endobj
+141 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1329
+>>
+stream
+xڵX]6}H`CڇjJԇ>ɢ%j$jS03cO|8_h$bJdxaLi><$VS^/?zI
+T8 &)߱F$E"z b-
+T~l )ƭBrhc *UV2-i8&Nr'pf6yu{ U\^n
+ޗx-I&Ϡx,1dg;GR}C" Ov6Պ5p7[:,qMVSz[(ӵ*6n77QNξ?LwZVi/J}ޘ;k&!
+endstream
+endobj
+142 0 obj
+<<
+/F14 57 0 R
+/F12 45 0 R
+/F9 36 0 R
+/F10 39 0 R
+/F3 18 0 R
+/F8 33 0 R
+>>
+endobj
+140 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 142 0 R
+>>
+endobj
+145 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 2183
+>>
+stream
+xYKW{6WKT l&Kރږeob=U,h{'@MQb}_UQZ, _TE*-tJX~vá|oMݷ˕*tcn?+
+*XUU+rVܾvȜJev=pOOM[بm/EMYr=c:tȵCK|zB/Vp/KiaZ!3]I !CA[Snm[&8Ef NI1BËIA
+.4I^'fz>mE.Ynݡ~?{?Mh
+3#ܮm"[sd@nj!Ju{(!/+#(G1}ae$V(8Ad8R 0xP//$
+*;b@T9Ϧ=R b$jI9T 3 Apž4@^2N #A
+)|a_UvtA( d7rۑ`]G D
+R @ ጻ ԌIH1&ܵ\^g%\QG*Fqez3%‘ؠgT YX/g {1~v">4SdaL2FN[&pRaOР(_6|?Xm0n]X"^ eW3ŵ/3ܸigF'M0Gbԑ;0093 AKĬHQu0kf;C,F&'u84PsT9,Õ3u1]0 X1j]澤(&t6˸#F%6J@q49Uz{v=Mv2ǎk/Կb"s1|
+C!|ſ4OaevwCϯ^'kyji=B,%|ÂBP>wylP
+
+endstream
+endobj
+146 0 obj
+<<
+/F14 57 0 R
+/F10 39 0 R
+/F8 33 0 R
+/F9 36 0 R
+>>
+endobj
+144 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 146 0 R
+>>
+endobj
+149 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1167
+>>
+stream
+xڍKo6Z SbadvZhW]Ɩ3H v
+OC#zߚ-u/~X /$t[o2ɴSqkpm֮k֬[u֍s~׬.Cds>ڱ?_chӐ pq͢ 2m]ΟVL&_}ڙ!׊He)iu5V)XϩRR \2R;=kzJAM[;`l{j mlwSS#{EJW(("\Cp"=dK){sЎ'~^ LFJW((UK(|lBL[IBղ#hDZ=
+-!NH
+eKJ*2psw%h" mv;0loEJW((5Gf<Vs{CǝMqFEJWȕČ6Ռ0ϵ'=xVY䩥`
+Z IC\((ik*B<n@@x{{Ӆ)L<RBAk{zḥ7>:j+{G
+Zo0r y$ƣ"+٣3FK<w3{0"4sO<'x[BL1`.Rڃ3FKYD{ GK@ sTe2]iܽ+sOL'z[B$!E\((^T7f*|#B'ǿ+*+I`..eymKن$ aXH0r%QU?hE 27PY|Qzo
+s<FKu>҃?,]~r2Wsdp
+endstream
+endobj
+150 0 obj
+<<
+/F14 57 0 R
+/F10 39 0 R
+/F9 36 0 R
+>>
+endobj
+148 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 150 0 R
+>>
+endobj
+153 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 662
+>>
+stream
+xڝV0+8 bphD^vjC:$[{ 68!=̼7c$]u)e!Mh,9+ڝ)Q,Η'
+G`0#Px<2KQ ?0@9ÊL<)/.Qü΢ebL.cz08
+sg͘1oSD$p !` ',
+#ry!_ّfeϣhi\q!v;<qyI!E5aI!W\RO"ՉBU{1.12!.w@1m'WXT4bOiܝ*z.ŝ$DV6i| *M6]ƾ0]HU,E!1v2+<Ϫ
+F+;{
+=Bu%^ZxG7$HRG 2s㓅
+endstream
+endobj
+154 0 obj
+<<
+/F8 33 0 R
+/F14 57 0 R
+/F10 39 0 R
+>>
+endobj
+152 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 154 0 R
+>>
+endobj
+159 0 obj
+<<
+/Encoding 62 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F19
+/FontDescriptor 158 0 R
+/BaseFont/BPGRXE+CMMI7
+/FirstChar 33
+/LastChar 196
+/Widths[719.7 539.7 689.9 950 592.7 439.2 751.4 1138.9 1138.9 1138.9 1138.9 339.3
+339.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 339.3
+339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6
+506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6
+1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5
+594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6
+530.4 539.2 431.6 675.4 571.4 826.4 647.8 579.4 545.8 398.6 442 730.1 585.3 339.3
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693.8 954.4 868.9
+797.6 844.5 935.6 886.3 677.6 769.8 716.9 0 0 880 742.7 647.8 600.1 519.2 476.1 519.8
+588.6 544.1 422.8 668.8 677.6 694.6 572.8 519.8 668 592.7 662 526.8 632.9 686.9 713.8
+756 339.3]
+>>
+endobj
+162 0 obj
+<<
+/Encoding 15 0 R
+/Type/Font
+/Subtype/Type1
+/Name/F20
+/FontDescriptor 161 0 R
+/BaseFont/HDXOFJ+CMSY7
+/FirstChar 33
+/LastChar 196
+/Widths[1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9
+1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8
+585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.6
+646.5 782.1 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9
+1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8
+523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3 339.3 938.5 859.1 954.4
+493.6 769.8 769.8 892.9 892.9 523.8 523.8 523.8 708.3 892.9 892.9 892.9 892.9 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 892.9 339.3 892.9 585.3
+892.9 585.3 892.9 892.9 892.9 892.9 0 0 892.9 892.9 892.9 1138.9 585.3 585.3 892.9
+892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9
+892.9 1138.9 892.9]
+>>
+endobj
+163 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1177
+>>
+stream
+xXKo6W(,ߏ-ZAjk%v8DJ<ړ`s8oY .1šP,m!XUW -]R_6l /w ;VVxEU׷^~]v-{MNE("@
+ VipZ3}g
+Wqu2gYiHȝnGNA C;˝nO) F4xmup mJtAA\$Q (*>3K!(("j*1
+F$vFH f@$4W9Tii)ΖɃܰ@x
+hHvl?Tr,
+*"hp
+H'ιl0
+d:E n=R*%,'dOGR=QK6W!FQ3|LYaҀz^I׽S LFzn"5.3挱{aSwegۯm4q-ixʮ.@GӉMD"la%q]RGfHd6S=V3LS&5^Ax<z*ԷHU' ic^NUdboW1Z aq*x׀ JOf'k ^nBUV16n3
+
+ņ5|JOX'y:)>Ki_6OY= a#0a;o Ś(!)C|e#sx3Rf8c'_"CiΜN/=Ur]}].g{yӧ(\=a,4'hc╠X;<M8rW8j A|&Dv2?t9;4! ?M,I&>32eDXc\:K%!1OY~d|e!L3|BF`=iL!ΑW$_29R*N.$KtGQ=4i^^w?Ɣ
+endstream
+endobj
+164 0 obj
+<<
+/F9 36 0 R
+/F10 39 0 R
+/F12 45 0 R
+/F18 84 0 R
+/F15 65 0 R
+/F3 18 0 R
+/F19 159 0 R
+/F20 162 0 R
+>>
+endobj
+156 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 164 0 R
+>>
+endobj
+167 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 649
+>>
+stream
+xڭVю@}WЄDL+렠>n}ٴ/b6#\!{XXv4#93^PzxJ)XAHlXHJ2ey!d4 FbŤXF>[ﺋٗ[4T&(J8m:s)pNHHLb{hIa u O23fqp|JAgr%\s Q$N!v|^cީ?jRjB5isK pC-UmD~ڝݭ70Rvd`pVs醸<Y0HZ57 /,UZTHN]ٰ+;! z0kl=UyUxܔ.ŶsTEg.kA2'ML(3b]fcIl[Q~>4`hr+Ѭ/b*1'9/&yulࠀ¯v
+endstream
+endobj
+168 0 obj
+<<
+/F8 33 0 R
+/F14 57 0 R
+/F10 39 0 R
+>>
+endobj
+166 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 168 0 R
+>>
+endobj
+171 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 1135
+>>
+stream
+xXK6W7 '%n \
+AkwfKDn6If8o*RyS!)(Q,M
+HVیccŮ9@Sgi)ڨ\МExp;FX@\ hmYc$JΈd}/ICaBL,QEsѮ}OJ$29yU )"N
+:2& 'ܳY6 "k 6^ss[ =m2%u42q9 !R*=LIb B6oS Ԋ,Ce>Mnu4b{r4|H1@rc8} ŋ<m
+Apl$%/׌9pف$Ĵh큻.OlFcn"fftIϚg4PbhP}qxr<Ǝ\Hu7g,-37h6Vε,h2)SPS|a? ysZB=mjYEprNԴ[YHLLA#0;DɇT¦Qfb,Qb 
+?C
+endstream
+endobj
+172 0 obj
+<<
+/F9 36 0 R
+/F10 39 0 R
+/F12 45 0 R
+/F18 84 0 R
+/F15 65 0 R
+/F3 18 0 R
+/F19 159 0 R
+/F20 162 0 R
+>>
+endobj
+170 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 172 0 R
+>>
+endobj
+175 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 437
+>>
+stream
+xڭO0=
+ӟd&ᣢiˑ1Su5_"/68$Ůo :cƱ([lQ/cE5= !
+endstream
+endobj
+176 0 obj
+<<
+/F8 33 0 R
+/F14 57 0 R
+/F10 39 0 R
+>>
+endobj
+174 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 176 0 R
+>>
+endobj
+179 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 577
+>>
+stream
+xڭUM0+|L2q
+>n%΄шn'^ܓIf0F9A8e<JzTXkZ`SV\5<wtbJ~?1:A-7IF޾u3isd,n3nzf0Ԥ$yDɤh88i>,'ğ6=yĨ=' T|֞hKNs)7ܭ:1+e-%
+endstream
+endobj
+180 0 obj
+<<
+/F9 36 0 R
+/F10 39 0 R
+/F12 45 0 R
+/F15 65 0 R
+/F3 18 0 R
+>>
+endobj
+178 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 180 0 R
+>>
+endobj
+183 0 obj
+<<
+/Filter[/FlateDecode]
+/Length 334
+>>
+stream
+xeN0D|]:qGf-pS7%qzةTuud'$r.p8{S3:q(&h96(_k" ĔL}3_Ds'RBG߃Awަ4ͻwH/m\*ެ\˪BBdwy׵bc&d{%;mVR{mj;_"(vmn(iNeE3ʦa ܳXP8Ӟ+ɄPHqFxq5ڛA+[艌jvZKRi11ݘ
+endstream
+endobj
+184 0 obj
+<<
+/F8 33 0 R
+/F10 39 0 R
+/F9 36 0 R
+/F13 54 0 R
+>>
+endobj
+182 0 obj
+<<
+/ProcSet[/PDF/Text/ImageC]
+/Font 184 0 R
+>>
+endobj
+9 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-33 -250 945 749]
+/FontName/KUVUVS+CMR17
+/ItalicAngle 0
+/StemV 53
+/FontFile 8 0 R
+/Flags 4
+>>
+endobj
+8 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 714
+/Length2 2452
+/Length3 533
+/Length 2993
+>>
+stream
+xi8Ǔ}dHck,ɚH3h̘,ه,e %BdBeilӂQ\sޜ;y7>s[F
+&D S ,2 1$H
+H0BR@-@YSSЧ*p@"|IX@P {$,
+I
+(,H>X XdtD ee
+E
+SpaDF_S]ŭpCRAF}BSUH7UHj7+Hf1/R/Ll`Q;oU{ uv^I'/Vi1ŎonQ:Ӡ3z
+b5J: sEYEEw~[Ioz{knf^sTz݌: "r12F0F|K
+m/^_AGJv'DJD.1r|`~#_JnI5MYESnDڭJu].6#yHm_VZR6En¹'p5ݛAj{'^4t5YnZB.J3CƉLt@$,ʬ[XFCa60 /lLᏎ􊝊Pkws<: Rt:kBN\h /aɆ1]kL3R\7JQىOl?ۇWkh5\nh8
+Rop|]>Xb=Qd$_L15hc\\sk/b.zLjsz(@tBԷcChu]
+aOkʊf~3Ãͩ XҘ(v3bS&I 9tlUKo58EF4]{C#coOFvB{q/sO['utu|e)>PK)-;OQy@0) vհN)o6sv)I7wJw& .z"{:vq\mU  hcߠr}uo;Δ+ck^>lC W٩ @uO~18رw,mb/aO]`FTb8P4=֒P>!39.Qsg:mӱOv]-ҼzL")fhzm~2LB`V͘'z7ϊ=p2T2<
+2y%ѐO+fߵylDބS%!{U_/pg8;rxhpYjABt%ggö__F'?oJE8
+wc8Ʃ(͡l(S0suճD}L;Mgp曾0<mq\^ ŒeiO~9F]abQ0D1%=
+rF]w
+#-_g4h夶
+Xgb5ܡ;'6dCáR'+Ng+=5At6Sx{*qBDj QBci%/rAXnS~fi=(<$QHq#
+endstream
+endobj
+13 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-1 -234 524 695]
+/FontName/MCOAAW+CMTT12
+/ItalicAngle 0
+/StemV 65
+/FontFile 12 0 R
+/Flags 4
+>>
+endobj
+12 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 715
+/Length2 2721
+/Length3 533
+/Length 3261
+>>
+stream
+xy<kOcwwY`",c,ca0nQdl!gIjcy==?>޷) k.
+(B ll
+DP@M
+C
+z`1Ń %
+HP$H&hC8׏]#
+
+P~w$~d8wJ\WNϮOy#{g}42>p+# XOt)"CCw_%@
+Sث6ΐ('7fTz[GWvh~AY*a|r2t\7-l24Gbeh vzRJ zvV. R:VMS0Ϲ?BWdl\h_۽J# ZibVI_q:%XjX';PIR-DˌyLV+|%Fy# g_=PW#?g>{kOzS^v=:\?Tv&u4g)9Ⓖ51̔zW+~̺-Is-Ky2J?dw)-/T
+gZ T.C@ny)cBYŸ8%Z\6
+}.+{kJjMm %R"; ?qJ.5&^ҕa LT嫲 s$M.8Q?ӵea)*c2}X.d ?i<>ȣόTSY-GG N?
+;i{qHfMȨ/
+|s"[4rvwcħF{͔}L3 s=ӻajIY"w}Xc&+:[_a;j>|\H.-K;8`Dh<vӱ! \s/jםdO9.|-`۴'yLy뒙܌0*Ш^`M&!۶:).s"m\sCsR!zP
+"%ݝu9Xp}<5"+}޶%=AsÿI;'ЩV;kW;.DezMQ}'%7[#
+^2yǴ35q'nTϑ8i_QU[nNKSSpvXqs,hGy]iFM
+Ͱ*W2%S˱bBק$usZH{T鵜W'6Cf>hX/?}#!1Z yI''1H}3>cm@@lȖ#l $nXul
+*x7{[QB%9E}p<3*tO^~#
+endstream
+endobj
+17 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-29 -960 1116 775]
+/FontName/FTGPAX+CMSY10
+/ItalicAngle -14.035
+/StemV 85
+/FontFile 16 0 R
+/Flags 68
+>>
+endobj
+16 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 724
+/Length2 2335
+/Length3 533
+/Length 2882
+>>
+stream
+xy<!HY"e3%$Kd<d0f طPNC"K)$\9ns_~>~SA`)@VCz#0 DqD1 p]]8`&
+8
+b2&hPy]M^Z]P u5tR] lEr4ڊ;oȉUk_Py7dy"o#8펙@ՃcgM8aK]ݟ|l`9Z\Rգy{ k<Mo2=>Rr*Idjg閮}UTਜ਼]_&nȁh>{;]}dvsYKPoۗȭ gG^S>pk_Kg-DٛVJul+2tL@>5~R3V~
+4E/ktYdl婬?ePXb !vnfgQK'~LNl{^XB3]}37SBC%XA=BzǟI ,rrU$V
+[|5cﴩ7tV2S@tak | NmN[#V()>LwƑԺ[aCBbne%J̱Hqn={2n,bs,{綌F:Vf'LIWME)89ރ{k«5" fǴ9=~1νCjeVX5Y4v9Z*B\Hq,Џ61.:1]pK~0y!{T %>|AƢ_w5C/~izgųoᯫCSrhnM_Rh<SNz99Ew+?Ea<C6P9&,~OvQQzd3c"\O"O\}ߤpw>~ͽ3U☆A`1LzZ&hmeuEgy'58b%\iu3Nrgʦ:gВakV
+T^= ulj%pyNܛ "[GX"Ɠ\ܯԢN4'VᔯC)&VU/<yuG-q{o7J1vl07pa~|KEϣWsĥ/ &!CjL Ćdf}z_Pt6{On2,Z7ke߭Hd]Ê#Ԍ.^kYY7428ly"^M3^h]k }3z*yAS6ko<eWT鎊cYhJuE#U磥CYݭ .]P%94zw #Ƿ>aV,^nig|tB:GMk-̋&[N) nç6č.ַAOu2t=tI|R&%ckU%_*tKC̸1IH@*W49 ky8O@m<qzQ%KWbt?vo9b.^\2)渙t]Mgv?άP<ą33zׯ! 1OgVVX=9 u(k沜eYǬt Ic{^ D)|Gbq?ǟ[/QOmm,) 
+JHpD j W#Di=o̦ gr΋M1 >5-jKBJm l}C ˡ<w`BDtzI {Fho^od 'I"납K,k5pb.L.B8WA^ \`Gu29 >VIшQ ]^T0,ziW0uQ'Ԕ_^O D&zH^?
+endstream
+endobj
+20 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-34 -251 988 750]
+/FontName/OQGBBN+CMR12
+/ItalicAngle 0
+/StemV 65
+/FontFile 19 0 R
+/Flags 4
+>>
+endobj
+19 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 714
+/Length2 5120
+/Length3 533
+/Length 5673
+>>
+stream
+xeXkiiFzA)afZPBAPRJ:so{}>}}=s>3k䓃:Z”|@~ 
+Cn5Ŧ ں9
+a
+HD}OnS}S!0=!4e98m`1Eؘ"zI5sHd?:䝝VD%LhdL˹Y;IW4GmՏ6^>GnPTa 4"̍+x2Ep握NMG̴?'EF<MS0@ E8tR<ԈY*D(VDORư<*st9;sCEEJrtէS䔗eZ@IˀZg8$>nXQ i Hj:x|4qWrTI
+E2d'Nrhέt#SEO S#ZՍnL(N_.S\ gv/"XsF\u{d :
+Ou
+iIgT-~=..S:$هJzDYI/C-at].caaj]]H[CR}Ofx_GX34čXdvVjo0}*sB:ɢBz}Ȟ%,Mk}Ɗ&0c*ǢzaݥԖnk谋z@iX#γc6mM;vmGeDd7qc[VЛON?oC0D;}-z
+q(6ރ`ZIy)7QF?V23kك6"hΙtUo8`y6(`5(+kYztOG Jwd,}꿞hyC(LAo{$yX8qz|D7G{hM^Hk
+N5Nx}4~~Yv#\+ЯtItlI1CfWx@bf Lٌq8+ SćNJ۞]Sؗz_7g<Mk
+cnd1M~(">89}$?i !{q"
+sg/<h8@[*ݖzW8aۄotr}^*i*`>E.̴kmޅvÜ(Z1)]IYxz \m5vk?i.#$%xTxjqQ醾 [j9 j/7?  ;eW5i2 Li˸f8+x!+>)
+>OJ` yU,_La~Ip.g7>QWOp2!x%˧YjuP$[*]V,p/B$Z~~*Z2!ߚ/צr#?VMKXwR@&AѴ 6 Nt{I]z PݡskmJ?+}w@ڭ *:}aWd0S;_<$$X$ ~fducp{zU?ꫮ\TT?~^[1/pڃ3⌢fN쫎 H݊ M)Ond9;v4T@TK+bl/$ݤz1SsoI}{r|vyEܗ
+Vz#`R\)/LQJT+:GN%O
+Anwf3dG_>ɱCr9_yq&hjqMoZ :{z.fysCGM=Ԧ*EP;dYKe=]ZXG~hQO1jj
+U}WiwE$}O8%5Z1ɯ- Ucp? ,'Yu}vh5ˌuQC]4i keM,[вa5d Wͳ?_l굳V,$E"dR"rhUr~V>k|[>jZ[B 2 |]9{ IaSl{y B"v\4_fycs+Q,=__?BY[Uc3bX5* = nW-ف.%''|!6>O& ]!OYnp\<ׯFC9k2WպO'NW_ie%?b]ЍϽ+*~j0OpGe3RT2䥕j
+@U-.Nه=[Dy޾wqv!UMiۛ[$_%䊥/M!ƴ[+SĶ0A cD,+mSךݮ>3j z<90y%o^-:+<2y+o+X,㯰)ӆFԘv̑לlKgpSl
+˟oZ
+E?!E ;'(x3a""zڌݷa[ u]3Ƥٷ}Q:G!K"ZT;RI+!JcI_,0aam e9IO-EZ|LN b{θh,e}Uh6 jg@&ߍӏKAg
+ V{%75qp|Zp(w .&[ *e^>':u!ɔM
+endstream
+endobj
+23 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-58 -250 1195 750]
+/FontName/LUZJQO+CMBX9
+/ItalicAngle 0
+/StemV 117
+/FontFile 22 0 R
+/Flags 4
+>>
+endobj
+22 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 713
+/Length2 2856
+/Length3 533
+/Length 3397
+>>
+stream
+xy<T- eɚLJ`PT>b 3BBDd -B VZ,)Edܪw?{_9s}\s/Tg;J{t @!&V'}BBM
+13do.]Q*$ 4PB
+ĎN$` (J
+H(?εYՔo\*2|98X䵴W{)KJ>G5C /lUOJ\=|>șM7 <p(}LeBr .Ӓ׎ah 議]m{mvS [ήø~WR{;͎XȥTfM1&Nff+=Twvs+Л/(o]c-
+/HL`~R[J>%cvn bGQzn
+ۄwr05w
+Xr4mg]Bf1QPɂnX#|y).':/!mNd;p5)` 4pLgOqB:<z/fa¬'jdx(#"9wHIm.7m杭; vtq|cm~s
+q2LK0'YGoǙ]%bZDS L=B'ej%U#B6 )oY&%5z,H|L
+qIPL2('
+n1ShTaoW1wl8Cƹ[u2_ W!W^1:xyc'dWBݢ*)
+endstream
+endobj
+26 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-39 -250 1036 750]
+/FontName/PCKLZH+CMR9
+/ItalicAngle 0
+/StemV 74
+/FontFile 25 0 R
+/Flags 4
+>>
+endobj
+25 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 712
+/Length2 5682
+/Length3 533
+/Length 6239
+>>
+stream
+xeXi$$T$d`bnPiA:]>uo\ᖅ"`JH37?P(Uq#
+g_T(b  D YH{G3]_]@Y;#
+sD5_h`P?]g-\ai K;)aP0
+huB`y5ʜ<0pԿwg8pw!?￿" #,:O2!ݽE?OP( ?p',*jC8} k `0s¬l*8;.F3ӮYןG KA#"[\9<.8:tx+sjbpL&f{-o,;F| .2lqD|3۱
+M&ƈ`
+9\eYkteUt9|BcPV_j8KSC3"XDpj/8b~L _ėXݯ/&RC+en֣StH-5̞3"SmK&n1n7ff^&h>K:`#jX46i
+U嵑>/-iVM&<k-N#/uLY31~*ۄ8>GI 2q@ ̌P@_#Zu1!5)C[r<8e4\?/(Ӆ@aK  ],?)L?O+Z/ɖ!\I25(y>K` B*⌿G-XA%6?uxQ$3nqTԣ6:܍ݘ߹'9փVCȘf2E)?R0;rMێ [*$k
+s Z?]_tL$?-8.C~$pǺnYIJu+jNL1y#P&{p$\IF1lܻ8$X󻤓C QXǍ"2/Fz9l1Xv%;ʯAA79 "~KpS:˯1ך"%]akun#Z=lusyD~)?/&t{r}Z
+N Qh업< I"w˿0
+ԛoW[B=E+ dga=\Dg3-J~NpK[_7PKDs C7 U%lOQ R[vb[Nr$dytFĂظsZiORA v9wVb)ƆOPlfd6l$YtX6pЁȷ
+TE2GܔᱜiCd@0Vl=x)'ѕZ+CDfP /\"PemP. l>#]+w5 (G
+WLa٨p{pd<Z.ڋ-JELO֋IDOF_&
+]P a7i6ێ;e1w)Ŭxr) 2և,v||J|F%)mxwq}IN:ޒf2Pvjy0E;jeb'\?m;I߹xY|81}MR˩8ffg
+@hOD2>~WiM0c\`uC6 w@uǪ
+Ԃq~e3brT1oP
+Ȼm潲}xј-LIƋooFtdˏg1h4zdM.;ys6 B
+KI)kڒ[Hqѹ%-R}7Wzͳƀ" "7F큺jB * gӄӽF
+l QkI-V0*]x(:|$DitGn=
+"<AHy"kǔ_?qÿ?ضqtY3鲇%Gq|hf6Ǜ'~ѬZZ#☖jgg&5.:*+S-#RˬuXOXZ3sNk9g3_,tfu6brL }>0v,;i7jQ-V*Zhgk>^Zvt>}h\H.fk쯎2ԝPnUIHKFFvtz[;66Sag \}oVxn)Xa-J+ӟ+б)Cm ]B ӭUcs~wҔ<chv}тNC BCSWF&d_~OX.V<0iS0C %Irc U'O:W!oi+
+pLU,_?{λz/ QrIjglQ)MԄ=ե&L,2μyQ @ϋ ޱY$0L?u8R-!Uqq(O2$%c}ㅟ%+wK`x\IӨUS[/`Lk6Dv^JOZ՚U;NwاtO)&rZc)T_ؤ[n h'}(~u;V2ީM 03xm&'^Sm}k)WӃd/M}QL.FvԽa<dE!D5%y|M}q1!JkeXŢ_]S\PYVH;jfxdp}[!\sQW۠]g&fy Q*+ᘽ?麐zLwǭS,ai%4؆tW^\ޜ^O oj>V;ȝciu>y.@M[yǩ6DH~L89&-Bk =ET8Pw<x) 9c:!kQЃ;zo-#c&~/U<2?=;GOR 螺&, \l}/.;(3vvCtgt,O4qBӈ^8dvU1p[f q"YFMM3)R2!uRc$˞ƭ~;>\(:`:mTp,jL-Ct#gh%Ѓ)syA"9]ͨê/̰Nţ@6]Ps!';ˑHx?ce}4
+Rq9Ϻgfd~P}EvCiu*v졹v1^`WUT-(eCX%L|C굻7<>ukcKC4
+2 ! {fS ĀLNӑD4|4AV'N"%3ζ kX.[vھ(3<<"(/`j
+~1XrBmjmaƈ&uݜwͺٺF}:l|ìC;@D֋$k-:GAk&P)WNM79?ZBܮ۾VߺT+AH a ʘ_ʒ/TRd* i8_2AoYu J`n2&*u?u!>u.=g7~g;^6Щ7ƦhQ^V<<-
+endstream
+endobj
+29 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-6 -233 542 698]
+/FontName/DLKTLK+CMTT9
+/ItalicAngle 0
+/StemV 74
+/FontFile 28 0 R
+/Flags 4
+>>
+endobj
+28 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 712
+/Length2 2631
+/Length3 533
+/Length 3166
+>>
+stream
+x{8% ˈ5.100Ea$0f0Q"*[$wȝv)`K$) Cvg<Y~w}ֻLnD':L,t:@HqtP@"#'
+G#W(ccj`0\kji(M@GH?)D_x
+ h##Z?  # nA<$3 JrUۯ<pzD/$q֫û?-Z'm(^ On^?d+8<w/q+Vhz&<tuV>#<Bȥ4~萗yIXtz6U_'̯fWtb
+MPrVW5f޳L 2'B ^>-{O`;ǘ}juh1TONʾWW!^dG|<v;mfY-ZuC ]{?A;5iNKdF 脜ڕ2ܝ2Hk$+3؅I8L:UCAděMhwRgELyT-wմ~R펀_mÉNqdZux`gZ Ul _ҝ;scƱ#~eI;YotCW_DE#;3=~;̈́s1:b(Mh3`|.+/Vz;:1SU/-zJX*3}i=Z6Pɯ|:bѥ_3miJ5N߷R"05 LzF9}ouol>>:ʺ.L4LMxwbklR.=gYu[@mꗲ4n庘1Ggbb^sK 
+7_]iб~e5'te6TUƙu[R%9r }wº!l"Ԫ/pNve"+he9a[;o <3/ (:*澮e#";re.ȭ j3ј}+/ QG8e{A7XKzg,MyTHMk&iԘ$:̺R>lQTQZh;3pxB@n8d+a5w,UC,
+K6I@}1 r34ʑ
+bŞ[<׹p)34nŞw:؄5ջ^#ZA)(UD#ܰ/+Sl?y}B/ W3r)\Cm/*}]NM>34Qf:^~h
+ HH6^ruX´@$DlcNvDT9<]qSG z=nqk3%UrFUh /+AsI] (:?ev0.qS87)c?B-i$.1>]> biJV䛰VA v愵 `yҊnFpd#[>~w u/
+{23'·uHMgXփYNDJӖr8ZЫn*[Lc8߽(hOȊ1)rrװZ"ʑC"I7=y".8ZEOZBJ-.<6MnAu١dCS簆{(|%M/O5_sX 3]eC<
+ okm[7. C~Y> 88_4=
+;D,a281gîڛHR**&C34l LS2"b $VpZ[c-`䚒<;1*?)#}A*;$5g
+W22N6ơAߡ|C(R)߼k"O)26m 8bWDn ;]`e$Ccb5Q- uan,w-.uF6&=7ρ|ݕɉ(H hy<cw}dj5غF˳AYaNtA*ݽgp7{Cy]$7޾+풽EG7;h΀ U[d?,hT6Fj=e5PS}n3ixz=jjhuV*.azumQޝv'7L"harO^2%<׻6X#|Wнibm3ZQJSg1YǂfXN)"-Hb7SZޘ32ﴹ|iX,
+endstream
+endobj
+32 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-53 -251 1139 750]
+/FontName/SSFYJF+CMBX12
+/ItalicAngle 0
+/StemV 109
+/FontFile 31 0 R
+/Flags 4
+>>
+endobj
+31 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 716
+/Length2 8026
+/Length3 533
+/Length 8577
+>>
+stream
+xUTq wk=6\hq`]C;- Ҹw39{g͹2kfMKjU HC "#Qprc00ȸ@nPGYD#,rrxDމ`
+g`O
+,[P@Ysw?og%| /9FV6!ބgVm|YrO42/P["(&펙}DhBϭq7Y%r`F*vcIĠ-{"ͩ iגE>[bNn;R[m-Ä>>w-/g+IFjC{u3#Gui xOsabo~..S)5;y"d-kӳ
+0sK9ueb/Ԑ4a=h`u* (t)cy9d7(kU.IY`KZk<((?,̂N7֝O>).FQН`ynGgI?<t3ϩMHf=PcV? AYԮsk7"C@xFf7[;oAk_WО+÷bx7dAcFWw%6u}<4&6͢NEgȣ 0~lKhl:K'7G05^:K=!oX!?9 !$0u6#S`M}C8r˞="%*ީ1aPfeu8 t,ܤeyM" p$$TfˡA
+iny4[i<B̠nâħ^Z=8FYjW#Yw%HD5>~i_Kw
++,ӿ6`[ R_&ԢleS>OKf_'!";_Ihޛc]QnNJNpXXW=MXWW̸_?Sעxu@p@M!ub-1
+:^)C? @Z8Sʐoc,5.a6(X8rI1H{?x{f6HlU_PKeدqj4O|S5Z< | ~Em.<s 59!%5G0 x<'%m U_!]޾DlrK=IՖ/Yl>L",1~p8kH}B
+o){nͥFf綃x:i]in"lvK3' O@hQVÇw]s-1]E՗=9҇ck!3G/:@O^39ޑ̭m$ϹZ&D
+=HWw5|#_Gjxz3;=_<f]$b+ B~Pv{q؈Q:F
+4̉]){yDQƎhv,>ӆ
+ecGZs[v$KL .Sinj8X(ÏQ[TF}WJaRo.(j|-d)nt{kAp *2ߟ[y5[B30̻
+L*\{~8 vVح]=V2>k܋[W)XsFJ U+7ra<L4JT&~LV޳|޼ahod`]ڷL+ƧZŖ!O#J ֕0d+}0(sE
+k(U\:W
+ĶN[r.m@"5-)+[U[WE6 WvfLjU|q@>c͈{AWvћ2b++wYN)t
+O4Y;!W⇚<Qeֺ#93o[n'ewlXYʽHf)ʚ~}h{!Y
+bjNe!dгXC0ʼnG20"zX^d1ޔ&y8q֖^)Tv p0e<In;  7z~WCH4uS.C]UMg1j8UP~^NoaVbu$A4o5ۦJxk.퓵C3cu<:9E4p# 4G*l0voپ65)GfLDId'4L5NOuE 5cK^CIW1D&psZ8j?,F=& s։2i{5LAN1cR$%YĭN\'mTPH;򛫐oDJ>k;H)IWkq
+87q5K*W(0n۬JRu=쬤[QXdVm;xZ݇xL u QU)%E.~eWmK+j.ۿ 9gVEKY$E]n}F1k )O;a-J1xG#6 EC=?ǼC=sr1
+U&O/ pz[ f8m:h_IPm%[0V`yŤPP8tVmvC9F2 $NҮP57' ʶ!#i>$[i[NC&ҭ>OBiND'%]yE huG++^1 )^*Sۊ+~闀Nv&j͙Prn'@+uM
+fRᾒ;7Z` ܼ=|-߰FqҹjVL/ N'/mTT6k (0rD4]mF[{E|oBi1
+N-ШStaЯ\{H ]^S{e?Rn}jf5Jֳ:fr `Wzflk>+ -}xdH ,MN+1)',zF`tf|8~O&+SFㅓ]&!GuF){gWI%yiZ@F;,2ZdY>,607{G)$QΡ2e.ko]M;T<
+JmнQ-h
+Q;gX
+0bkN֎Z -?'Hqtg L!K 7hƨFOn~x/J[kܜέ7($-c|&5csc:6Uӣ"SB%bYߛݐ۪ذpQʇqM CVύA+}ޟY`ՋE+a
+ƛ l i?Ж2psȃwu<h68X2G&kk
+FA5c KG?w!\Q"r?aeg|Rjxɘ[rf)% Ka:r\Ҵ7ESb;^U*HL;?u2b^ʐ=j~jl:>;( HCʚ7|ϝ8R_=J1dc6 ]z_{:$RcFioT˝GuL뗐XLD4"xψa/uOnQHln2If +
+%h)ԁ{"S-PIJmSaU `//s&S 9=jHCwuO}^>HRER1l&GOer%6\ lϤGڗQq*N:|ߍ.^ͺr:_^H;BHsIf]]`8n)Æ
+b߄(
+MTDD8*[5 ( >3.ƠYd:A@g/9^8n@xۮ (Hm% ޮH7/IC+n,Iʹg.9E><U!.G&bѷܯ !Ip,t^zy <+SǛ?]-IY6&؝vzuW-b):cxPDћm_ECF|0kgzlÙߟ̦ *48;3Ա~^r:cftoi,"4T ;TlsA#N>Z쑪Kx Tr_;3/5Y|';9q"F<bKĈ\W A:vxY%o^CBf `yv#=b]M3pڟ{f;o/QCPYT^])y$)1-OvMɅ/cQONa&FF`%"XX4h4O>f9>䇩6Zv&'P87 IZt%=\Cl0mzK!d\m
+:FKaK8ΧNow8|I /yx>ߌHP+/ffczab1$nTOY4gHz6}?ҳZn[1d\36ݥ˪xc]"̰OAn\ b~֕:'$~黓*
+ܣh }B70?t A ÚM{P,;p8<"Lĸ@xIH.:I? qVx²sH=;j[d b
+[0rJ @i3CނJj hB{_K[I2(q܇{Ay?? -xT*Jifbz˸@G 2ɪ)Q.o4 ؍ېE:RО)"53Knr2rqu'A7rƪ_8Х0v<_c&d6 |a@rH%
+k:o4 (ѵ$ӕ<?N/Mf8\|}a*U:.]䣾׭0(T/WwDžf%g?LwKO_BDa?z)W.S8Z4fNcjUZYVghcO5d:۩QgL}u<ߍ_fb]Vo|b, 'ԡ+\EIJujYlu'_a?cB Gu@
+h]CruC7\{E2-%A%+u$55Ę8Hd&^~5Fm'í]
+A<.GpR [5)%=Eߓ$жbܢqhLKR-j[Ο=y1dCWb1$V%m"]B' 8o}JX
+9(iuFizM<7ϼly醑 rszSX-$E"m9U)$FxP$">S#]%2 Ye>)O$"$m
+H7Z$u1L_,bG]~<z@DEF*muԬ0&J݈[KGd󝍟<Ĥ/rMyŇYau!U8B{_tE1!&1/^*.?)<1xnVc4S(۲ߙ:Ň^3"տ7#p%Fw- 7: ^1؁C`!L_X̂wJ~OalIZ c.۷ Vk9LfA*%R~D8*5{dW'u餹Gu-
+.Mzh-M_ס/k]=ʩpߧ90g*6OFĸX&(hN)%L)6W11T VI)пRfƷSVy}@ǘiocе|
+T>QtQiP=(ߴdkR\U{ 3~]goYD{J~:Zb`}$2)]+N `HL #u|/ m}U~|s3>'͘}Ȼiͤ{Ũ}GKi#QyrG˻FL))E@wDۛ"Qp!M^~Djà<Asobw<-~"{ac֪L(73YJuóX"FM}BIB^ N&z{.ŷ|$$j7/eC:@;=LU,C]ZXؔNCc_n#(ZC=%2Nv>6OGxzU!a' `7G{-
+endstream
+endobj
+35 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-301 -250 1164 946]
+/FontName/XXVFAZ+CMBX10
+/ItalicAngle 0
+/StemV 114
+/FontFile 34 0 R
+/Flags 4
+>>
+endobj
+34 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 721
+/Length2 11493
+/Length3 533
+/Length 12048
+>>
+stream
+xS&_曶|3zӶmVVm۶]iVڪmݣ3'".֜gbƺX$*B&FvL L
+-2
+MP;ߎ}1[(PB tKfdӻY6vs 뵵(p_Q9G3}0 Ia6DR;l] >
+dɵj7^:PM5}zG󬊞kce6!W%T'I=Gɻ1N^JKr,;&[mԢ<Fqkb7/,D0sU½2`1+-ع@,ta+ݟff0,Ð)^`m\} 7Z8AraF"z e[pe6'")1t|mtL8QJ s?JAq 'Sgõ?m#_
++X|}b0> :"I-265==d[1Y/˜iǝ.$2GWj'EnRX1Y+G%aۻƝ%8IK6?yE-F @Jw誀,+. 9u-5SFFm&6_W%(_deXE.DfaLΨcMkFZa{@K-Đ+G-ߛ|Y SoޤLJ?x_ԆH?aQЪ?1S}y鲇;ܖz5 `<$;ci L 9hE
+z3]E>~"@ mXKGЅ(R/΄f(A[&~<XQe獌Y@ǵx.5oN؆`{C7JZ~wʊD7̴qrs=^ryY?`kR$q4C!˩XYalRP0,2Z땮ZVx&־?ɼהϾ4XchB{fȫxՑkr~U(jpu"K7f
+C+90Yz*T{lR{ZB.jTv5a
+8Bۻ(. *lo(v
+* fܞG[3 8^& yd:U
+dRXWS.\K= "UƦjk-[ .1!?ζ*d@P;/Edn/+iw~RD͊?թ2VPiHhȢ
+oBEF40hK;\o< ]db!} .tK8']DpOD-B]7).I5$cxL2h#tج`̡?ZxXƒ
+׮;-R# 7Hq"{e
+`ێ@]l'\P&A9Ѭ4;C3( ? T 8Q hEd|)r*hv̹|$ 9Rư/ںAuI|Q,OG#mXy Jd:d(8%i6/p,_v`9jس\],zOpN?u,چ?'`\a:*;>(un]x
+gsLwZ8su5"Kc)&@#ZR=_&3N;AdGә5t2l?3]R(ͥC8cLx^Ȧ`n))orb}sn,?_WET+t<ngP:p&V,8ۂ.QœJM`=(6C_h8\˚q>+wds\o+ö̹Ҏ? ?ɋ[gOS$bR2Eb:頻'TIY˴ʳ]RiaINrLci*k8S[H!&i.K"IajOwM1lT}&T.AFz٪9?1_nмAJ=m2Tln
+PYJuWV+r T0j^|RѠa ^oRÓ ?6]|nݲ3K:eܤ)ecBMyFA62?Q?^ DI=((&Fǻ H,e2m+@N0Ɲ<EV~̺h]6G2YXBvIDK =ۦY(g:yh'29=8N̊+G;7D;4 jٮkql
+ōTPmzFq5 v{
+纴wSKSS
+yYk漁 M]sfTbeGR^~Lye 2 Sl7v¬>n팜̜| My.8S<ӇS5 WV=fp]۸0\%Lz4f@@"#
+z7x42*%>6wԘV>;֩΂Htl7PA Piߨj{ ?+4Ot`hS
+趑㍷P>Ug !ҵm!0vz8Y6~w#P;/|TZ̼*^ ^c3@;9~h,
+)Fhi,챲c"R&z "wI""I3}] jntGn sZ2C
+#Wmi2(h^+Ō8 1NQ2dvTriQAw72j|W+҆[cs_fh~=}-?O|ϡDW{,ޛdtWe#jfBe<i\UB ^?.ɧkٔ. VL*m(g1bk͏@
+ePf[#՛[5 dž_c %Af&b?E3R}&Mq`uEeц!
+@.aG^}B3A+@6ja/
+{XY'7AJqf~UyvFÎ6ue2paַlyڍb<ЭkV́SH\1Yaj@fY}!Mv|i|=~)+w<{f0S?zQ`zsUxY,OYƃ%
+&=jz
+ӵd/
+^zY<5,D^NXJS="ե
+iY(vI*^jߛY+Y"'[J( A('eZ,Yf8J7FKz(<I17ArP<ْNtS{b nvcJ(ALj{L#9 L*1hr$TQFiuҺF(9$y85 o胞V)^F;Xsͺ4.#v"
+nuEO~r&JcI`p3u2Cghlz1 'IJ!tB[|X]Q)kjM8%oP[ps-gW 3"~V}G Oը88>{Opx @E/0`0k1dz~ |[8QtjS,=K&~kA6*~#LqAb+?lԑQ{-п)a^zE7M
+%}TIN%{"N/pK<#:2 } ',GӕAv%.(/BҭxT<jo ъWZıTTX9ً\"wI?q8C$@" >yi.Xrҗ6y4I2qyHOaLpVIs' *'hvz#*'#J`y`_q8n#OHn@>&zvβnKX啘JMadll\g!3Įg9a_tͻ6|գ|oC{LcƬwF3iSDyhH4Rw7ʼnUmH),d6VjT͟M&jal9),Cz>ܷy*8뜄=<JDoK Zk{EVyv:sMv. 2Ab(P}SWم\$ww׿,kᒻrؖ`:st<o!茑@~M k'ޥn2-Z)7㤊 (U$'XAUmP>,KNe.۠A:It335m9_KP4gʁͺ1=8uj Uv|[~kbu|
+t*cEd_rhxB%^[/4^L)<seqf8#!\wWlSyڀ)bÙwu2-#u8VZ+Ev2QynN~H6$<z
+
+vi\۞ۺuY'v$I{x^xfU4d\F{lxJ.6Ѡ5-j퓮*Oae=2x(Dfۘ`= f bYKټ0 [_-#śׂ2"k11j ӟ`oq}m<R1fF^]fc!4&4%GY`nƑUQ8)1}9Zox49KTx3,P ^th" gW4^va)ח?_l4XEWPc: a>Ymn0ҡ7d4&N Sch*:\xfLXk[Ma795lf3粲DǹXH@ݺ 훦;jyTƴkV=4,uLK|&,!'Jxp11"䂮KXR 5)MS!1`ukzqJt
+syѲMpuͨXGfxl*yZKQn^ (CE9Gw%g"ܦne'4_`-j|bݸ'sϋ/$>hsu[e n[[dkNJZz;7^fķ }?&kSx~a4s>rΦ_Ӵot*em.-#
+2S ?Y'Ͱ;iy.L;vS>PnJ N:RLš/P h"pt,/s}
+0U$^+pnscp<-- dqqpmMiR!Eh{Ygts) B MU{qφQCf1Rf{DM1|EVG$B6:*p6~ Km7oiFzQ?#gqUU'kZ5o8K^4cumf֫|E
+2CenS
+"%3YY0CsW<^S$v@J$R=mj_s*3}zb%sӼz9G#鶖3G/J 8É,$~Ui$ԠoAU r UBP@ x}wvN|pEh+,p=/8۩w!(ݝ͍rN<;U,q|[48)#SVIWW̭? $
+@bO.ow77#JI$'cˈS {`ͻjPS͆iXf<z;mqBڄ0ޓ ! F㚑`ty/4qk\4tuDo~KaP
+r]=OPlwηM<YH&5I ӳ.PbJeW!MRm4Z͠J%_#'MQkv}$
+r@m&ў 6t)bptkHQLwme\24PIY UmE xPj[Yq
+tqK_/m@ߚJ C VGg݆%z<u [~J8^n̷%W
+pB8 >0h-,ruJFP`YDo]q3#ROf,U^7' ZrvO
+PTBt~~ߴsKXub3ǾVct dxe%;E*67_2fRX91EWSu|$(~$
+QE<ߑmVI^au|`1ʬi3rA#֬41!LOOFϧE
+f>[xyUV=ކ7W(9?ClΥ,h4BZ{H]5U/54:$W D횗 W: X%&& nN\xz{0
+BkMp21V^V
+&ߕHzz <B
+~gsГcyk$L5neyٸkB¢4㙡 :a⊽bJ|CMηӭ@͔f-MFy zMY01E7<,b.^(
+??u_bIr$ 
+-_W 馰{Joj@ԝ۟Kh|̪2!JqƇUidGSlɞ,Ň)P3Aɒk
+r,D<~dt|ƏSqčx;E St۬`3mއYS_մ;^_^p' mL m MY
+endstream
+endobj
+38 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-251 -250 1009 969]
+/FontName/SOTTXL+CMR10
+/ItalicAngle 0
+/StemV 69
+/FontFile 37 0 R
+/Flags 4
+>>
+endobj
+37 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 720
+/Length2 15276
+/Length3 533
+/Length 15833
+>>
+stream
+xcp/]vqb۶m۶m+Ίm۶m'+<ݧλϗ]۩5W_cΪn2"eZA{#S1{;ZF:F.#ALNŔ 35gCwt4pP
+SK5u46XcblhP74u
+' ^Lb66rW%upu1uڛ:wdMM,]m{UX🔥yS;O@,!CeOQEKi@2#Lbhgbd?+7-+#?TY:J
+r&0juvI9Ӆ -'"LGҳW|N#&X3 kL'n,/S(#7@;+6+.imX&wl
+"
+s^/?[ FdOEIh!h jhA:e/ZW *7]!Oؕ?x3*mfb?Cyn"佻U_`<%VO=k.MO?F%<a_`Q&*KVH(CvuI{8P>o]ZM5)
+הߣ!otF3fe9'ى2
+/m&4CP@V?OvD& )!kg:rYZ˸^e =JoY\¯ -EpޟL OqOJd1]/fnw gX zVR
+I/ڱ_a>&[03> ,ZAjVPBɨ;cDMx$
+EL&/qI$ =s)S=ST0d-!dT$gezPy=hƤ>w^6ʖ,"gT<Q#ُMvf*, *$z0 =q}P$nr/Hڪ֌I\|5Gu&&.^nJ8a拏C wWpf[tBT
+EԪκo@e7N_WKHls+zSY|+ #ϻ)j'i3f2f×ԡmS/Ч><B vZ鐱C"^9:h^EEK+-y> +MD$+p98O!hn?oO0'eRV/cΦFݲ^=\1!3dShi |6:G>CtMlee÷&^#c9f2c mY\2U ΐpvn28XsI'W`)AEY\vWAmXEE<$$C?ܮ+sQURU6ܥ}f^HE/bųKE r7618!*('
+ J}s]PpZ #,GB$&Ie I[lJQ J}")ϗ`zf2v<V6/'RgXM(%&YJ$j
+bQhS
+TrP}aF2gi)~]^*.wt6<u,c]dm*<@IjusZ /sr_uh-Ѕ q>wHАrPi+?o5_kҺ+yKeo1qu-բYD?&y?3_ukM&KάP->h#<g0<,"pa9YZdK=,)ش{2O> 1'O= '?{̨ /;)_OZnumݖs YKC3 7kj)Cldչ :Hk BdFEtYVnti0QtCy 39D/4F;tC[!#|_mWu
+YŹ9vb<{_@k"xxDԜu#\i;rtw-%o34d z)&zuP5KcݱőlwR_Cp_eCp} 0~3IJڼBUy9~i^|TDS7kriG68D'xr9'wAoV*9nsvB^
+nfSj<iS BF۞{D٤ <lk {p9~ZaT Ǒ@`*P0zybIeW?Ɍo=Iz0YX^97f4D+V
+;{BpSwzVO"E:?YjX h4
+DSTEة
+qURG"L|Ć eeO֨Dq% !I?}mU Xu
+v|2l%=0
+8S {F{}N)hxD
+#)5͉^lJM~-HG?ҙ%@zKTDAyWGNp)nԩ1g(;\5E10 Wƨ?еU"kgvM
+;!g'-7$/\_fˤ"WDXSgZ3;++]}0mICEX0 V;d?8t%d/_!75_1V:
+ 5|M9w䁀%cRֺK
+l6!5E6PWNk#C;KРqC5\wϰجj <Q?8sD(M<d
+JOL[rĠ.sh߁Zd+Xl*SNΏA#[Y!J-Ӏ߉h +9P 1`k\[ZF-iF)'[
+L1νV c/t1O;bG;Suİ@hJd>. ߯R"4
+\[aMތ%ݞ=(W[H@+-n맹DtkJd7߱ܦU1lIuƸӣww'u74gD%}<g欔h{rciSP~:y w~.7?)J>Gl7af,ovQ!i0Y5{
+NγBs
+=<N>w_Zi
+":Y %[G4_8b%(֯\rKʐ"4(\w\LɃ鋾[ >9
+D-KFL`Z\?4? wdîX &7wXtG#
+*0\6JCvAWz#Y=&S<PN1SL GTCbPrA&=
+MdMev9؉R."Ծ` Wh%K~`F+L!,U+M(6fԊ2,׸S\ k+f:Y-Ҷ&X91aW;;zmG!U5Cx{Q&r#6H^%;i_N&[{ QV3.K4(2lA1q2kkO" h
+b?7P(3.lsy@G 3X=N@D$Re9rWO{Ge &sLXu u:c<77hcpHemf8 zk*,J +>(V$YKRre<Is 36ja_ b 5BjkJ8nȢ٪^Ѽ\Þj[pXȚ#{-0Rm$k?R.[
+6,q^Ci^(97V9Ӵ3mӜ.khIp2r∧onH0u9/26 tB`mSoN/Ү?%9>ҪkVܚmWWnLOQ~lN5n7Tǐ1+ӡfJv5 G vNY<%A7p:4~*Hх'=[cO+U:އԯ%F3:,r!ε H\:ܞxHo6l@NtӾ
+de)ɠ!=Ov9osfe 3pT)EN r'6&Xnw+N|UYrQ K?g *+Ro
+"V]Ql]C zo ޗf\h&CP@B0 Cz+KC:%)MofImx3$]9lDqu/O"ZV0 NY!
+gr+xUYwB |9_LgаMnԤ~~K
+Jh^d>ueR7%":V#9]bfH.;Dbp+>೗1 ]*Z7qn{*0tT~ #/+8O` d|Kk 7ӎh2׵QEՇE՞ɷwhE9ւ_²%Owz2(NZˆ#F0d݊TV׸̏`Cw+)9ּ8z
+ZE0Ҋ7܈SFw#[3h
+R;\d*" P(xHڨ+?uV",q7/vU0o0$p .u,H* VJ<M#uwMZ|]V7125״<_(2a릀fߘg%G=Inxe[1I
+NHp&ɢ
+H -2l]Hp$Kmg'aW ͘3SkS:MK<΂)\Φ^gy?dàe<Mt=ct6g&T}(SL ϰjqҏ]}W ![8gyĈnmxx[-.0">%gH'9ض\-<Ks߶ԺXc /hz9<݈٢Ӛq <YzRYm%o$n/"/&E evo3 gL^RH3r?ޒ\7JEӺ4(Wr_c'D
+,q_xNIkL;BD kDrR
+8!%:qO XjF΅Yiz02cL!`)KCf!p@)ס➧1;1Xk&*)e}gU/8MԮG~/z|du #04 #ι1
+
+aub!(:/2d2&$ҕOFE1U8\O+)&7@zZ{1hZ}:fMAxY4l
+ tR4m}ۆKp(1PH_*{_gn򇏔pn[?cThUmc}<y}du\b.l <~Y 7ؼeY}F
+mb][Y$UTxl1r>*$6C$D?4 [hwsz̼$LI~BrΚ$J ?pTYcT6CoQpj/H7:y/jԔ+j.Vf)cAF&| -}#V3;͒*Xbg7vB+tܪ/'*Oَ˲FxEo8%J} ]V+': %" I :'8-)oi{0A[P'-%{$SJimL 8mtג0
+,4{h˞ݒxQ2{.;Qn{PAzBtL^2Jp":Y! WܺQbA^f6-}W-sySSRl5{kuyYfSE۾Otq2VV>}s}L=n$
+0Dq5ğ8a6`v5 UV [߾ɡ61FRE6
+SAWm_?[Piiz\ q_^?S,ra,euS1qJ(qD<vwD(ݏ] G(%`QP9bL=a`c|=6p\䩙a43&'%ul=g;hvy7B}mƉ}΂ 3H mZ:NYc(`S[ a!Z<O^N,<tfKsPNlߨPF/L-hD#;!WY%hk&P6xU"PUfy1BMwrߏ;DgF(\y<7l(-5 _X;c3Vl-o7 6i!",o)K=31 VwCTٙe1܎`{?;pc;4*%ܣUD[g˄&(fi,ZRb #Lm :!@eNDT*-tG
+aOpnzW!,i%Hks>:uR#A~@́;Ң
+`}sa¶,t#(@,[ҩZU_Ҳב:mF3lB}p_YYqKJٍm
+%Fh6QUB0$Tq`"Eh("% wFg'd$GqK\ e2K)3ONJ|kb'\=MHNzc&kMu҄{P*0^y/LE;/$3K4نl1z|kW>8nXٮh4ފuq7{gl?}CNO-gf& "ÒwAAS;w%C/#h^ R؁JS/$wq8R*DܝDN&gf4A?yЇX%4_* a\i#mE<XHT}̷%8%|0EJ\Bad><x)sTgpxj&m MJJ2!&GΠog oUDD= "!ٕ'7 7Gbۧ(fY^%/gdulMO@n}9\ ^W2@3gQ V7¬KRgȣ@)0b zH(a2vp?D<LInYp pȲ
+{z·>i0kzɨ V n]s;$n2ނX fNc)$D<;rT<y2['wbOjd?ԋǑtD{l-ML~+?짖.CB })i#?Uz&/۟2rxCa;}ZF<{; #P;B~%w!Қ̃pr-,nGԛ.10q(
+&a<[K?8K$沐ݧ'lY5/NpɆSͅʹ#j!Nzg#[<р]B^A<
+pS{ zQ S uu̖*N\(H5"_ŎDžl5WQR
+ܙoO?*-
+^ծW6EcSAq7|"0ٕ,<d.p@i;#Is4WɕqZ0]8)ɮ6H_EvZ7! NR.,EBcJ;Kd*('<kV}..De=i\2,
+Qpn]jaG+>376pm q,X}3ມc>QRsy"<Ϸ"-?]bmbR7.qaURě3fQZ-}ѮͦMnf y ~,odt|w%U-+rP':%Cz [Cn
+w^̓ s3F̢X8b{IMmpS#-x]Ω,38Ug7_ϱҙP)at댷Y*IKvUTxY
+9Pz9?ldE pK
+Z#/fBkq$L\ u%rݍ8,#njqt5ZPc_g2V摏 qMwv@`a"40_V=j>\ooQ= U?xG.^t]pb5񞡶3+䭋":fV.x+pG"'I(TN8i%C ry|F+ugp_M1^*Y9gb]g-sdg1kevS+-EQ#,ΝlY"HG=4p zU[{!i@Z)7ZSkY4VҒ_E F{K}YJ<bP+0:zz0ŞY~ArTq^XhlP{' s.f9QRW@z!X]2Gkz]acGJ' 8`uG=63zr{g{5_{ +3ĸ̧;~.< \[I3?#t97Q
+endstream
+endobj
+41 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-4 -948 1329 786]
+/FontName/HPNSAM+CMSY6
+/ItalicAngle -14.035
+/StemV 93
+/FontFile 40 0 R
+/Flags 68
+>>
+endobj
+40 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 720
+/Length2 751
+/Length3 533
+/Length 1267
+>>
+stream
+xSU uLOJu+53Rp 4S03RUu.JM,sI,IR04Tp,MW04U002226RUp/,L(Qp2WpM-LNSM,HZRRZZTeh\ǥrg^Z9D8
+@WT*qmKdgaqn99~ A!S U[PZZZ4<6Ԕ\tYϒĜdǼT]C=cSDf[fEjJ@fIrBZbNq*X<5/);D#/Wɀ̼ʂTj0RQfB!P!Xh%d+$$0_Qkkib`hld`naV.4/4E ,\ZTWN @i0JMHM=G41^GVk—Ww8ws,M~&6M=w3ܓizan5gα6w."?lQI;iaz˰8=ٗc/–8XsýZGKl8n.zAmjQY0XuuC,U{.YGq'^KQx`5,V)ij:91Uz8wlSBAO},F@+dz Ig߅sDEx\w`F<4
+_0^
+mB?=jiy_?/emuVs
+sI+".ճZdaIk4VAZQlHm-m
+ )?>})snevf;5I:&Vj_JMwvRjͯhP)['M:g_71[G
+p6as=}8p.<*`mȒ5ߌWll9mW2@Ĵ;8
+6p0, HIM,*M,
+endstream
+endobj
+44 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-36 -250 1070 750]
+/FontName/BFZLAM+CMR8
+/ItalicAngle 0
+/StemV 76
+/FontFile 43 0 R
+/Flags 4
+>>
+endobj
+43 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 712
+/Length2 6440
+/Length3 533
+/Length 6989
+>>
+stream
+xUT{q޸[pw{@8
+
+t=Ln~܂"
+_Nc;,9FE8\ƽN&>XK2ڪߟ+)x/Yf3$ޞO捜V|{ =Epp
+ڌ{t[^hAW#3#،
+c*$& c6|Zۏ*}B'm22$ W(vd3L&&9:ǃ$vDY"; wqə_UX
+#c\&q4"|2VV~NZ luE*>.uY}V<oT? th(ӸK5E&p-3OyU2ؑXX1ojʝWCl!xyL@S65ms+Zr v)&{8QG.~"#O8Bxelp_Z5EmGd:lrjRk?( L@n4N3eJ{ }lUA{ף%r0]'FnS]IZ|~n&&<N/@Qnhv&j>ᡠ`cbQ\
+RnbO2;׾#Ol(|>Cl㞭oQvzB5O)W{E?
+Fw4CrhEp&qN#˜n{J̌{KT־a=:nFKD[TY9!-5" 4XW(g퍟3bÌ*Ix5ྍ\Z@gpv:h
+!n>e 
+M䏶36cB$q~ Nb<Tf~ [ˈp!OжdZ>q>XS|dm*luЩDg-qkt]ZAQۤ.o'o29'ݕe"/]Hs>B#$g~>.OUf.!㻰}iY/45$RA!\vt@D Hgt|}_6t M(GH^SwO7:*r} #udj'̏Ҍ:ݎ|iiqqzwol϶X,:xjxeewqq&S7%쨿m=4Xߡwg
+49+̬ax&
+WOaHtVG.+q7 !H?1w%^vq?u{ʦk-͡&}FIӻ5W_7I6<YY#7v оÍz."ͭrg&m KYvLq w+^}Z$[Fûla5\ flQ HO*{A5
+GIBŃ
+f.1G򰮭:g Gf@e163dM",> pQ}4*bґG^aޑ$3dg#P$&pㄸ}t
+5M
+ ^B @g e2"z@[v%
+:]hƼg3Qa':,fmb}?jUnNc^x0;\ֳ1dà4x0)Vgxwnmҿgj8wIr$Ibb<<ngqcDT
+j¤ԏ`_ẑپFH):!m 0bUF*/6\6>Su*k,Dc/ὸS0;k c;;obf6<d
+i VplAm*k9jy$/s#MۻD+'J[hL-@ͼߋz:8CߗH);WRԖOr%?b6nbaI6ZH|]6~N\{xJ&7Dfipwhp{D QiˀX^J;F"ɘؑq7h?9Of%lZ'{x>z!S}<3AΎxҌz\m'` ЀE|\ WUrU\b/K/% RJ5"?l_mWG$}wĵWiK0ϒ#`qˀnQ"GbaY S vJȷa }GN){JѮ]_LȩERX Oiߒ 12+[(_T^,rF\<^m1*G1Wcœvw2ټ -^_+`Wm U.V}`-y68 5us:{PnR\u2el.{Bb65rVDULkNůG "p@=!q.qW0K.vxS~ Hk ߷yu`
+w[=(Zc;8+7iQ$&Hا@M!z(s8ԈQjmZ Vc=5 <.ǭ+j{S "rkߌfohIH mlf<_ԴDzi5w
+bX2vͤl!]Dtmwϴ^If?)zFǷKnυ#H|bt[m@[xlCݯsR-[ ڋ@]/z 5ϟnx!yL!>]: {ʚ6ݿP7Ipl7:i78V^bFhh/D
+endstream
+endobj
+53 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-27 -250 1122 750]
+/FontName/YSHDRQ+CMR7
+/ItalicAngle 0
+/StemV 79
+/FontFile 52 0 R
+/Flags 4
+>>
+endobj
+52 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 712
+/Length2 1325
+/Length3 533
+/Length 1856
+>>
+stream
+xi8\iE4QإTEط)SI:ʡ)U%XHPi 3֔},%!-ֈ$6$e
+k59<>m ,H hT1f
+AÀDI٭0d`K%A
+׻rhDJp <mΎ} 00F .0C!bx
+a.
+@Pt:Hel_~?`:  `7=GO/=쇟=/ZWy2/Ap0491 4$vΟS0WZYJz]ƗќigFށiM~_ȼ ?i6l?k&7w N|;yWMwrҿR%J}jOWaURL'm NO/5KkI²\ϥʾeSON]_}sQmggk\Ņcp؊_e ,xw%'ܵiܛQ9k3x)Nʑ6<1 r!
+ɶSx*qOh2|/|jUK=?>9=׽?KEɒFg)ྙ.GN'jT- qŸ࿤&].b\;6L)z?Z٩(gtϖHT-x5a:lmLl+=t}]'|ݓ72P7TJdY8C<9on_6>] \EHX>%lZl|x!p*?z~zkFv\h0OY}ERʰ+#Ec
+|< )ܥ],颤-g+S$SOjrtz'YoMuvG].ёmj"!*i-tBy* sۑlgeX[q72uwc(b9 ӴС-ߍasOZ~nxbEtaܴ iiy[O_%Up߈bd㚥LRqvm-\Mj+{Qh~!2;+Sihƚٌhޏqä3$|-6_xaI=,@ZVR<TȍGrۼm0*HS@5ܺN(iSڟXZɫpFRT+L}xJ;HouG6Ȣ"ǏiaܨVrK*Zdݯ
+Q*q=\/ج|>ɴr{oJǜ>o t} pQjĹյؿև5LHVH(1̗6%<r69Ӆ~28IXf36*ߋPDbn?$YWlDd4KN9Su!f$<c1zUe0|P.q]'UDpֆBD?
+cIT:pSW, xMtCy\zgF]I7霼5w)K㪐kco)8i23h<= '
+endstream
+endobj
+56 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-4 -235 731 800]
+/FontName/JQOGWQ+CMTT10
+/ItalicAngle 0
+/StemV 69
+/FontFile 55 0 R
+/Flags 4
+>>
+endobj
+55 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 719
+/Length2 13288
+/Length3 533
+/Length 13845
+>>
+stream
+xUT%֥@wwwwwgqwwO!%=qunz]Xs͘+b$j "掦@IGWF^: 3YBhj n
+D@
+ bt63q
+X?lKz#lK΁ltrk"@!8s"aޏLf{,9ZQX n5=Q>ݦ9 ԃGê@٪D,LԞpWVk!J22)n>)oĝ*Df#I)rqU9 zCOb(ԍޑ0H"<9 R<̟^ӽk 7XpUp&b^!R#Q>Z^
+bℊwͅ`&8ѹE86U3!d'd_#9$-0/fO(vq!3MȒ(5<x'Z/b?< /<̢~MZ6=gz4",/WZ)LRlA >BY>,> 
+^<
+6!4L(􏮕K^,~G4 l6|n}d}Nbg,UœQ0S.
+NąT{ 5kCP29E{9s{]H4t9]Ƹ؝״v-:reIC{
+P;`'x M 5P3TfΏ3K|Ѕͩ윲+^2RTޘcbv6{|-IJц}m>+*u@c\$(rU8,Q:BPNIh}E!AJ>P|hW@HEpe<BRxVQ=M\$n/%SKe))m<|\*aIh2l;KuGlMy{ 5 УԂcl3>JNkRɨa~1֋IϟL2r2[ĖgnB**jvϔ/ B\".cBT x+cL5'[מh#Y+a~!YKf,]>^&'D1q "Д
+:eziSܷخoUTܷX?Eٚ.))ܔ |%7tlOB{6A^ ҡ{ϩՋ(7
+-)߶ܥ>D0\u2fY~C7ULC =jL~(1 )(lƠ݇_tƩ0pu}x1Sp a; Foee'2+}(7 /8.ESyIsI.mm
+i349uDd`GC~ ıxyӱgC.f{¹ ~-Gjê
+ Y$SM)Y*%D\0˵/ړXH4$M2BY.Tcq4*]'3M358etԲ#XfnnM*G XGX8(ſ<8Nޱ/~brEs!f^D>T_F Ԋ}y橀Q 0$:pIN`$̗&KeMF5@xOepUۛ#^od~tr.p&:!z:)۟1ܞ8z0MN+1a^W.(z6.ލn&C`?$@/J{
+0ʀId[6
+F@ ]ҧؠ屨yho?n`="zPS,V|Ma}}9t9d&YdNavG̾+y2$#{X_udېMQ gw[+am~GKNGek)* шWSN!!!I|9Ȓx2Juf\Ӛo 2{
+E7Ӊ9)Ns\˜ahkl::katR$j|Aʤe
+%Jp|;!Ii2DXz\)8^3LOK)0?Z4P[=iqoܾ
+om#+
+]v th}<|VɎ&<Qq= m'4$^ bi{ 8߫@TjWPFNCiλnWXCkꗺJ|;}KS+1J6ߙ=joD뿎rb`#x% (!`FQ>5툓*"|;rF'tn~{%g몘:n~%|6m]h6N+Jninw|Zj
+^¤IpD~g[3ݕ
+8kO|>>WJ6pW-FN|SJ3}4e)ΧሧG=XF&$ӶF0x3U QR5ᯡ;+c0|uI#.͢1ܧ0;:v Xy+ÏdxpQFs>NXUkp/IҪUc-#,x]oD(I+v財>i16unh&`߆2c鲛Iъݒ\O4#qFy:h:=]Ռ*GY;6R/R}U| xJ7a׋0#Y'ja/6AdS2Кv6uxE <eQa]Jsy]jV)l~<ǿ&U nl7m@5cR]>;/O$DMDƱC= Z7 Q2A CUt6{P04G/gm 8cQ`UUd]Yʞϟ?F2yC"p/T-sA_52';`mt=]+dz~εR1fԮ=
+~mԖEb=RA#{|{wNfo͡ y.`ޯ#paYN㡏ԝ!?@G*pڪ_@m}- ([3pu/
+ޱ1 b]ݤ%āR$z5meߤ)1kKyX۸7dBxS}^TG|Η蓴DV=򽢭fX~ԝ>wݹ~UvߤEWs# y]O%#9Τ˝{ />P#,; N0cB!Q=é~bB<|#)ظ, WZCITh15-jQYtQ7wQL`ң gU)@kRt=@~x(.MYpX[1xsj#Qkj'(\`[]jJ"?+sbGml O8jYl4<ik&PoφPAgݰ0?:z(PdbU"rR@eb] ܖz~09:c0ca?fARc O,5
+q&衾#KIk%ۊTcIs]9soe[AMi
+5E.Pfm=|C<%~"w5UD9FOU=aFEMvm=B?ۼFN 9LQ{@0ht]}r@/ů{Ol|%=^e*`~SETܷY,IΎ3 YmIi;i
+H$1٤CUhF取ao-x$N/%[k8ҫ6Qp?P;WzsSa?<g&0q/gyD#$;mWvp'hNc~ICd af<}zfU+J,mэ6[d57xX[.M,㏹}
+[>|.@A99zMR%Oa|hƾ|U hu6@aE<"ϓB)]o2; M)Y1\o` fĎz`bfiObǯr:UrGެ3|eu.[1I0`q4JpHV/kuO26dn#ryU6(yɠjvZR m@YAݍ<Ho|!sgSvo
+ÔͻKZr$q.w)xE:a3bevolg2G^ M=qZ%A GH2$)a_$OTYA9n*7;u>Ol{
+`1xT%W
+Voo1`%[hrA_uIXLBokGCTbRfO̻)vXh
+%/Z
+K4lp%ڮz21; k.j_=/B>(D2:8eiHy.rorca`eyT&T(-Vڮ$݌ H=~DPk3)#dXa>H*J~-)
+ͭ<*qxw?9DȸRYQHCCjM`F/ Mwx'E
+=ij8FOn}YRnQ6s8cn4nu('p
+R`'9D7tӆUϲKښJ<M?shȕV1Qw>pJ C1RV4e_ eeW ԅq{9ꩉ|V*fF :!vd*Dk(Ž?FW@RMY\Ws?>Yf祍zaQ\eMb)@Y<* &]Dq CBtjx:yFW)!K`Тu%O썍tSuڇ[)9^r)kd- _׎LG^2A@aKͨÏ 2$ű2 =-΁ {bNWd皒c nns.dtޝ=f%HѴ˱Nu~I.<=jK~#&xzs
+qjTf/5
+
+->ǡMM})VRfF sضBTC8kR`<cx_qNY}VZh Oڌ5-JbDhIp/4$/Z͕z~9L .D~ OY\܃z{Y3G8=V]4g]e4|&#2{RWi
+>zq:1:ci: ËXIdI P |K["_KQY~eez6?&t&a%=By$DV}c<Mپc㒡 Ά0js~!U6bk.Xo5oMqZǗr1IPΛ
+f Sސyq--Y)Ok9ۼQS?ԉGT⣫G.t,R`g&u,9#WọʂzL.H(켈y :wdF[B~O:5 -W"?k h#\`&Kq5|EXfEU;p$/]$~y03i]er[lRJ߿KLD.$-4!L]0H{7JBz̫KRk mW
+Z}@wX szϢ?.R$-9!v~K9j4ED
+ 0͎O?!IZŽݽД)QGppsAe8V
+&̏@C`ڜἰ-D\Fו["QyX;ELhCKy}Hbu Jo*ސ[F1V5}zmQ3_fB7NlzWNߒӓ i7c&@ "c:
+[3~'ˮ*|z~~/[lrYf6r)W`%qwFP ,d[<J»a=OA4%X 
+WXj"'z4<7{YdACd2vI=V,/{ )G3͠i iqc8^gaۮ\>Z 0XH 3y87\\}m۝?
+N?Yqp905 N,J)ΣwNƶΆ9Xgs ~8NS
+xiwMvx*dSgU@q`y99!_R*"n46C~Y%#%*f٦ܺvJmJN\ٱ<UGK+ 7n)B$"mZ4+} Qs ;[Ly
+sG6S>5G;:Fi}kYUdcv~$xݓiس()aNvU,?M<8*>I&.[Yړ Mz_$aG7b"ϑ#kyHSɷ\~23 LR5ecjbK#RWJ&bWh݌0e \3 =}QA> t {~|X!/9JA#U'ebM3ȯn
+ڄ&;a,o7ay#TLnX]b!L]:,'[ |!XZO
+ڶw_ :FU@@,$tMjT e5P;Qb/ȃI
+ /FvÝYt6K#7SܻH!%DrLVxe@2ܐCi%x
+3Qi
+M?
+LUjf#Efͨ \0%ȡbe`+2QMmQ)7񆇝:z_` B&׎t Ko::9M*D6q=!EMiqT98>T}]g^ p6D~YVb 5BՍ@ Z5˼ 'Oڄ⮬@+ ym=+E K\Ĺ
+-)Ca<f{Y h9&m0
+1Qy%*ʨv b=U:7A"Q.* L!|0(c*#IGN
+Uנr N 4wq؅kA
+ydko+AmJ˫ :M@IO>Þi^v8#۽qDdOI[ 3FNqQFpF&nIWYq>_vIV[Jd(Bp)l$vjh%YGJR_~ª1m?^ךÏ)
+ rt,6gh6>ח.Op7 A! `khhgu!{gy\nbXE_s9nS.Tu)V Z2ՏfxzRꬥǍtyxNe0lLJ:+/NhJ
+rP7ٹh́^ #!B.Z#p~r&,i ml*lr,_8}i/Kv}<s=6dKEp6_an?ބ +5McgQXln
+$RLH}ǺFȏ(1c絴H6v?LkrghYT :2s<T.+!zXCCG+Wg|b
++\Z(_1sw|`+kTiE)!cW%UARI{T5-uD@t}eD
+W
+QO5(fi}E UE'LVVl|*W0 @hS:.VU9 *"\=# 5a'RSoH̩TX+8+j&q\\X>i1Ov-5OH?(&hɾ fy 08:ڛ8" _"`
+endstream
+endobj
+64 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-32 -250 1048 750]
+/FontName/FQGAMG+CMMI10
+/ItalicAngle -14.04
+/StemV 72
+/FontFile 63 0 R
+/Flags 68
+>>
+endobj
+63 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 727
+/Length2 6670
+/Length3 533
+/Length 7232
+>>
+stream
+xUX\ݖ
+w 4\ ܝ@p}sswc|k^ m=n[Wk+ Dr* ^5//6 ptCPQ
+3 vD8
+/_1?]pyyAvnC@LO*YYW
+Gu|c;?MB}6ء~`uR<<eE 2m[D3ۯT#F_7syHV.!ܵ5!#=Q+^垎QHd}!աI)tSG@HɎCWX<|lmv9JD"-iQl7.Ga'E"S["Zo34뙸%lTqX AM y<O5>Fl\ra!{"D[3{>hd@>2Չ s\J2d<QnO-Hu)D oepw/I`^XZyt=aa0ՈWp$g'>6=˴XzLb0#ycBwE$v9L^֑u tW(82YpΏHZ
+ԫה%IT`q'[:$$޽I~k$v;⹜0K<,қ@(=-{fD$6c t<-<#JS!sU@%E6yend;tXZbkbxëVӁ<M,cS Zt^D 6 6ca{h|r{=ŎRt̷;K.!V`Gon͠ѧe Tk@A$Q a7" ,?T!>`Zĸ/ToQK?%
+ |l#C sJͷ#̚nL)8:&y|=CzeDrp7 ?Q.d|D#wi4>p*baUT GALfjĄ6߶)@0D8RTӍd^n0E5 n`zQL]od8t Bzv. gwL wQO@9o&~y!1mWͬu̜u|oUA'y=y+
+j柧L]tW8k2 Ňܦ6 l$懤ytHHNP86[$_<cc9;hjZ!:052JI ly0l@1M"(IUoRx(Vq\ ҧ6 [읡_#3`} 7*ѫ]pVW\LV~KIy#Ʉ~#+ ҙ.짊^hJ5A:ewoE嘷ST%Y8 Ex$\9R)!=҅,dl<BHn8J;) '␢4]5;ݫRh=^DmIf%RՒ:. [^/l{|j{¯]9s+ H{(%\|-Cв8\+Zm$o}U*~ig~$6HP { ?Fi}YE⒱Q>OɆPP9`I?zCN
+Db Im Q؊Y>PA%{ZNdzO9ZbZyy21Yd%ydHx0]jd.m}6 vΒ":QJ̥ ݼNƏp4tC%>ıU+&^fahQCpuK/DuoWWϭcK–#XP+C
+9Z2wF]wAVyn^"[G.UbuoF2ZXIOUC
+2J_4MכE<XߛswIRavyf1y:a ϗ V[z~^
+ɸBK{I U"xH{v;B=*
+a
+5QKaCk\},fJ{W="24+ܵ&^+UD \@d.KO*>EVH3#0焍
+6O3wnQh?s[/`#>1+&!WXRfOꡗ^ȵ^ _ 8٤4(yE&RcP9;w:f8-OlD>af.{b$N<'ҢHDx?mK;m^B&}D^r{dL=ma)̼DDIf$r`BiS|bMUµۙ+Ò%!==EtxK$Cxء*qp5&{'bIE`3`(͙ɣςdr;vxW2!ÏjZV㦏{0ֈaێJbB6iQPNX5Ҳg7Q>1,ڏ$?|lyEgbO.#UⲢF5qL/Uf h}>]->\jH3#ST3?tRŻ'ĺKR5(!ۥH%LCf7 )=pUx글ɼo&Xwڋ-S:P
+ZەEf~xVKh  k̓y1P#2JX"3v0'4>`6Lۍy=AZt/?xζ_.PYh3OhoX.>WaXKl#r9
+(ǟy
+fmN=OcG3*l1Nl[a >h$措Œ8,n{V:gTc0 k52k̠ҏbo4puٙEIdޭM@2Յ6u쟵B'V?CXK 3!bSRO׏|i]-O3?5!ܸ
+~Q)!2UV^<{ qЮPoWS'dr`Ig,|d}"C&V4M.M1J͠|8#$༰>+u<&9ekg_*8]4BC'ހ`5BH/*7[{%_xAt@ h!?xjuJ4k2ׅQ' oy,xoѾZOP|̜emJ ]W;cΧy%P2͋ˍ9K'_W]/7(I/䆏pډf* Ñ '@Wzo]Ѧ9ohbX5]ybN?#|/9 Ys٩:-̟B^/92S>UdGRsauR!.
+v)'6pb:U8_>x4jgs!ԇb8ψCؒ.VKVt.'4V
+v+TsK$g=(jV՗T;E] G_'YneLc,P3sj,M^X~ P-6*uy:mhJ8ȭv (lJx"u*E{04tZ8x@s)jT=T5RC5=S7ɛ:MKwgwy!'
+daL0ݫ='JO<Yቲnn .U7 L"N ?VVZ4lu'un]XQ_xreS c ̛xa7w_}P)ӆSԱH,峽9{'S/rt#I5Qx.3%r;*D r09zxc/[(ƒ-D};t &MWC(˲*Ơ+6#=Ӑ6_$FKGz(7Ho댘;Rݐt$K<=V苘"zGӦa'ҋVGƜf矺 92Dx6rZ
+_ЇBGnJ?"(1IHy-S݇I eo=*~1ճ7DC|Kɨ9ymW?49p7[ٜC£Hև .mgU ̿-m
+`1Ѵ3rž^Jh}ljfc˅}dB?z 4CF*oi*\sf 9S
+޴̹ͮkJwa;79vS]Vh|-|60(p?
+endstream
+endobj
+67 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-20 -250 1193 750]
+/FontName/LTVBNX+CMR6
+/ItalicAngle 0
+/StemV 83
+/FontFile 66 0 R
+/Flags 4
+>>
+endobj
+66 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 712
+/Length2 1158
+/Length3 533
+/Length 1688
+>>
+stream
+xYTwK$Vc" 2`Y$0BjA$
+
+L4񅰀D!J,8}`L RhVp.vlzxf諞F0MyQk±
+ڿwPkkNٓzH2;5=7ϫBJRvcw\kC_IcЍ'=5F\5nK`EL"8GouMdB?Kn\`}u\b8 ]xaSո;O'wTT, u.rk6gs-3)gm"/k&j*Jh`a4:kovQC7{V ȯAnM. ^C:6죙y焖O&2FpʪaQCvh"/,aLwF2ZNMOޅM<
+endstream
+endobj
+75 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-163 -250 1146 969]
+/FontName/PPCPCC+CMTI10
+/ItalicAngle -14.04
+/StemV 68
+/FontFile 74 0 R
+/Flags 68
+>>
+endobj
+74 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 728
+/Length2 6322
+/Length3 533
+/Length 6881
+>>
+stream
+xeT\ݖq$@p Npw
+*,VC;,{9ݣ?wwܽ5|\~{l mv)%H- QQpspqIc10ȸ, v.β0[H 3s sca1
+RܤC]M:^&Lo.?YֵM1F}0w1^-<Ϫ6go{>1E u5fȓ2KV֡
+GTʗ&gX(I);5Q@vh2Nu
+e[;]i&~},/6$<f</~VmQ%2/ gq^Z" L"5LPKz1>t/"7^5uUI 'MLA5z]<C4^X{F$eeZV+Eu
+^\FMr ]\?L"bfS~{iq
+ npĶ)OC)e".M.8Ѯm="{a>=T+N&Z^LޔV /蠥Ȋ7:lMw̆ pxa;gh& sE{1d8s,'<Ij>E^>.e&YؓDj !_LvkCx1\dRi!3`>m[nH^@@hWZ%jԇçZKQq9)wKe8ZtQ^8/§:lkfƣh=Mνq׻ 1ӑK>E-{>¥keyy>Ռа5dCdP4H{u)}`@c1u۳
+׊顁{
+;5$nq-_p^}/e1,(0$>kKȢd>cj3pgjvVn~ʖuǩ;5čI}1]X=„n&̹+ǎ~Jxi:%٭{rh凙voYˣ֋4^+p0gRF8ߗU~6Bm䪲pmIKZ,/]I*#!w3o7A\LQV_Y%'D
+
+eN8kх&H!f8ffmXNɸr%*Avb#@ q)(݅Z63i
+1fM S уES4k_LHh/F7'}uD}V9?i6'g/$KL O ]hEyjpȮ697wQ[*!pq"FDwsCu.И|xP`[ io&
+"}gg_-.@IDW|ݷ(zBaCԿˌ#ku#9)9ڜ,G!ō<t= 1@2VB.կnܖ& ƌ;ȅw!MT߀4>*-\w-!
+qv kZDa\5E+\U tЉO<
+T यՅ%UCIWK~S!bԏ51C^B L"Av2 ;`ڧ~ECpᝈr ܻ`+ VB7'M_I/\90ۮ|F\Amܚ$eUȧZK Zh5.?=!Y|37`-mGeilf8l<HPqD
+c|boH \?"¸7_?mRWKhe <(8/>#"f=)GuSuH@[g y#?^ ɋ%lPw+ ¹jA%mS b
+j-1ZA3r}HteOf*8
+t
+
+Ƣ2qJyLSf]XP%]Fr?W'Lƛ7'sOW9lyw.AE|
+J[+V?@]8VA]BMAWkgM
+RMw!l'C[Hgk\ 3 i-G&JE`Fp}@Bn5Ƕ5M|<XA @(Y]Wxh_;pCiu|~֤SV+*xC 5
+L\(v8 y2;=Vb%!C0 cB#Cuu&y%HMRQ_^}9ÍR(dtUab;@"| FdP
++eZ|~녪mH(E#&BD坬Y ۜvj/hJ=4jlb~8((D4z>rOYh+z
+E;twc_k)v}Qn\'hG\mt("RZY;ěV5ȐA9=ѯ;2?cwt/*+0==Har7B#ʔx;gX(Nn347;ҁ>A퉵YJSo,"A_AkA8kLX5WiD @N[dzD${Ndc^{:coa 6#F'XOu3zҲ>L.#P/,yeD8cS%W(fzqzeNL]'fGj[4&bJ랤kO]du7-Hn!oe4@; &:SZQE07JZK>ԵR' S `~c+"!#zA?ETsl075QY^ =^); 2/:M<V.$Օ//V w
+endstream
+endobj
+83 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[14 -250 1077 750]
+/FontName/BAXKGQ+CMCSC10
+/ItalicAngle 0
+/StemV 72
+/FontFile 82 0 R
+/Flags 4
+>>
+endobj
+82 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 720
+/Length2 3944
+/Length3 533
+/Length 4498
+>>
+stream
+xgXSۗ#% JD":H @B!tEA&;X%"M5týw3_o9_z{ko[& 0#\ eA*z*&*`XHãC4J˂22`d%ee@
+3
+ųDn#.4m^4ɊP7VoG-1͆L4o6,ovI$pmeY?
+ߘ|d9vɶL[iK7 3 $I$IM,ٱ#y'][X;hReO-~KJL~+Mm2Sro翷A@PM~(P+m*lo0cUSB/`g|D@_ A'IwKD`ڀx}ـԡ9'IAy;uvx} Xu3:qҽ+ֿ/̬vAZ0Agv𖐚g|Yj;l0wA`P,NK"70CfL<|^qiadK\8R[&6,'W5$3Oϗq6
+zHg7zߝmʦ qbRt10sR7ad=Ld<YgU<^v+<a{(Xdm^E^A6PJDr<PK)/:^/ԩ[*s9&HR[MΩ~&&fVQ/PcƲB
+yXnq~8Jm
+o`R v #*N[gkj!8'N/c R>ʲJޡD^Cڂ'\J^UxaGHI0Ky?jdži8; 2za9wΜ,\S)(9Kں[SWWhUciu"fheY=cjwgi:Kү 4PdY'dh6zEDt{ކd BW^XihhCʏ_"0dV8H-[]sdyИtʩ95*1 FM,)Rr&%Zz^,V+~eT ѓ'f[F|
+Jw{b dV2=L;r\o[6mF@Zr$sHYɫs kI (T+~x\k
+3:~3mnDu> HCoU~>.C:zG G1 HpZ+="$Rg
+;MXA?6(+o,Kw+{[~a̼ZpΩRD]=k~Zܻ9ˁ7>Y-M.n,n>5򥽻iPE.<d|:sQ큰2N^Q
+yΒ`Z`N9AųN͗vO*LeF]d9V@h.t;Ռ;$DDfN{Ie%
+&&>^Dg6 θڝy9='W(P:S^}^s 8u%{ w:J6[U%$7ŽED8s +c{g/+cDM"j풵G 6Pi"+1o||#`zZku{ fQ^a ޖmސ4B=7S"pDdoR7I`;Ytw(.1!#g|vс`C_\} .|nS;pYQ_NZWi@>E[Z9RdU|j=O4cpopv`<JOr_m`iSy2&|}"IEպ$!6AqpccW*MK J <6+tӷ1a~2oSQVhY'y}Dj8j5-\4%So;=;B;4\x帽WV}\hz j|P37'訅JgNH8E{@1@n/}
+endstream
+endobj
+158 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[0 -250 1171 750]
+/FontName/BPGRXE+CMMI7
+/ItalicAngle -14.04
+/StemV 81
+/FontFile 157 0 R
+/Flags 68
+>>
+endobj
+157 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 722
+/Length2 1384
+/Length3 533
+/Length 1918
+>>
+stream
+x}<T#,HX[bs0a,ɘј3\yXyZW!\OEy(OY-V뺃׵u9|~=?ug7%hTĂ#,q85j1`S
+X9t$8hZkm
+ `@,`[G"&;# RQ"-wƷškly\{n7!p
+$
+[wUw cv.* 5E*_Pr?4P'oQP;o촼|)~RnZi!H72ԡ_ss(fWE/5W!扉Vn<qOxQꀸフvwz 5Y_r"vr2!*;?Yh1r=l}]#^婷DT;0E}67>+5.9pjbY=Q L48$*wo@ vƺjoۓ.>zt泫5ӟ'ò3>KZ _hOg$\;ľ>Ό*кkK(ڏ7zW7DV`v}D Zr0g3>=uhAϯ<$n0:+3#>Wl\Y*̖ixX=ҭ½}Y"~-vr|? (5ΥU+`Vh_q>eh:jrU"V)˰x'jEu?v:!B0:}P鈚hyˏU{ZqSm3*?O@g/ez /:߈Qpa٫ȣa
+ﷺomsynp/fT
+;CSޗ%N֤оRŭ>6;"o+>,GVvJm5Ke^#-hhiiJ ZXwB MEm%cz?q~^]2dȂBTe$
+YR>Ȏ}4<7i4-}c3-<k{ROm\QaJA|etnIF[n"A#AUj}}T=5 Qb#]n7&ynQwylw}H@gz̯lፙ)yǹ(3U+z*1,o7޿9XHt[ײFb߻ZN޸d]cgv\GOҗ9.*CM̿ޥ=R\(>fNXmKr)AZe=j!ɐE1K^go5ۤ$ܭs;3,S'ky31֞]פ9OnKyy)5[8=2dq8h̺P@[ӽTl|<t4} 6ν7ґ̙ }Y+3ωU&"Ab tqFdy"_s5&8rf.--tNEp@1+d{n_ii-(BV&Rntw?x Q`ΠAP
+endstream
+endobj
+161 0 obj
+<<
+/Type/FontDescriptor
+/CapHeight 850
+/Ascent 850
+/Descent -200
+/FontBBox[-15 -951 1252 782]
+/FontName/HDXOFJ+CMSY7
+/ItalicAngle -14.035
+/StemV 93
+/FontFile 160 0 R
+/Flags 68
+>>
+endobj
+160 0 obj
+<<
+/Filter[/FlateDecode]
+/Length1 721
+/Length2 621
+/Length3 533
+/Length 1132
+>>
+stream
+xSU uLOJu+53Rp 4W03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp2WpM-LNSM,HZRRZZTeh\ǥrg^Z9D8
+@WT*qmKdgaqn99~ A!S U[PZZZ4<6Ԕ\tYϒĜdǼT]C=cSDf[fEjJ@fIrBZbNq*X<5/);D%Kɀ̼ʂTj0RQfB!P!Xh%d+$$0_Q LC
+FF
+F
+C2 KS=]L , ɥEEy%
+ר€ĢĢl..
+endstream
+endobj
+1 0 obj
+<<
+/Creator( TeX output 2005.04.27:2303)
+/Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks)
+/CreationDate(D:20050427230307+01'00')
+>>
+endobj
+5 0 obj
+<<
+/Type/Page
+/Resources 6 0 R
+/Contents[46 0 R 4 0 R 47 0 R 48 0 R]
+/Parent 185 0 R
+>>
+endobj
+50 0 obj
+<<
+/Type/Page
+/Resources 51 0 R
+/Contents[46 0 R 4 0 R 58 0 R 48 0 R]
+/Parent 186 0 R
+>>
+endobj
+60 0 obj
+<<
+/Type/Page
+/Resources 61 0 R
+/Contents[46 0 R 4 0 R 69 0 R 48 0 R]
+/Parent 186 0 R
+>>
+endobj
+186 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[50 0 R 60 0 R]
+/Parent 185 0 R
+>>
+endobj
+71 0 obj
+<<
+/Type/Page
+/Resources 72 0 R
+/Contents[46 0 R 4 0 R 77 0 R 48 0 R]
+/Parent 187 0 R
+>>
+endobj
+79 0 obj
+<<
+/Type/Page
+/Resources 80 0 R
+/Contents[46 0 R 4 0 R 85 0 R 48 0 R]
+/Parent 187 0 R
+>>
+endobj
+187 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[71 0 R 79 0 R]
+/Parent 185 0 R
+>>
+endobj
+87 0 obj
+<<
+/Type/Page
+/Resources 88 0 R
+/Contents[46 0 R 4 0 R 89 0 R 48 0 R]
+/Parent 188 0 R
+>>
+endobj
+91 0 obj
+<<
+/Type/Page
+/Resources 92 0 R
+/Contents[46 0 R 4 0 R 93 0 R 48 0 R]
+/Parent 188 0 R
+>>
+endobj
+188 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[87 0 R 91 0 R]
+/Parent 185 0 R
+>>
+endobj
+185 0 obj
+<<
+/Type/Pages
+/Count 7
+/Kids[5 0 R 186 0 R 187 0 R 188 0 R]
+/Parent 3 0 R
+>>
+endobj
+95 0 obj
+<<
+/Type/Page
+/Resources 96 0 R
+/Contents[46 0 R 4 0 R 97 0 R 48 0 R]
+/Parent 189 0 R
+>>
+endobj
+99 0 obj
+<<
+/Type/Page
+/Resources 100 0 R
+/Contents[46 0 R 4 0 R 101 0 R 48 0 R]
+/Parent 190 0 R
+>>
+endobj
+103 0 obj
+<<
+/Type/Page
+/Resources 104 0 R
+/Contents[46 0 R 4 0 R 105 0 R 48 0 R]
+/Parent 190 0 R
+>>
+endobj
+190 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[99 0 R 103 0 R]
+/Parent 189 0 R
+>>
+endobj
+107 0 obj
+<<
+/Type/Page
+/Resources 108 0 R
+/Contents[46 0 R 4 0 R 109 0 R 48 0 R]
+/Parent 191 0 R
+>>
+endobj
+111 0 obj
+<<
+/Type/Page
+/Resources 112 0 R
+/Contents[46 0 R 4 0 R 113 0 R 48 0 R]
+/Parent 191 0 R
+>>
+endobj
+191 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[107 0 R 111 0 R]
+/Parent 189 0 R
+>>
+endobj
+115 0 obj
+<<
+/Type/Page
+/Resources 116 0 R
+/Contents[46 0 R 4 0 R 117 0 R 48 0 R]
+/Parent 192 0 R
+>>
+endobj
+119 0 obj
+<<
+/Type/Page
+/Resources 120 0 R
+/Contents[46 0 R 4 0 R 121 0 R 48 0 R]
+/Parent 192 0 R
+>>
+endobj
+192 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[115 0 R 119 0 R]
+/Parent 189 0 R
+>>
+endobj
+189 0 obj
+<<
+/Type/Pages
+/Count 7
+/Kids[95 0 R 190 0 R 191 0 R 192 0 R]
+/Parent 3 0 R
+>>
+endobj
+123 0 obj
+<<
+/Type/Page
+/Resources 124 0 R
+/Contents[46 0 R 4 0 R 125 0 R 48 0 R]
+/Parent 193 0 R
+>>
+endobj
+127 0 obj
+<<
+/Type/Page
+/Resources 128 0 R
+/Contents[46 0 R 4 0 R 129 0 R 48 0 R]
+/Parent 194 0 R
+>>
+endobj
+131 0 obj
+<<
+/Type/Page
+/Resources 132 0 R
+/Contents[46 0 R 4 0 R 133 0 R 48 0 R]
+/Parent 194 0 R
+>>
+endobj
+194 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[127 0 R 131 0 R]
+/Parent 193 0 R
+>>
+endobj
+135 0 obj
+<<
+/Type/Page
+/Resources 136 0 R
+/Contents[46 0 R 4 0 R 137 0 R 48 0 R]
+/Parent 195 0 R
+>>
+endobj
+139 0 obj
+<<
+/Type/Page
+/Resources 140 0 R
+/Contents[46 0 R 4 0 R 141 0 R 48 0 R]
+/Parent 195 0 R
+>>
+endobj
+195 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[135 0 R 139 0 R]
+/Parent 193 0 R
+>>
+endobj
+143 0 obj
+<<
+/Type/Page
+/Resources 144 0 R
+/Contents[46 0 R 4 0 R 145 0 R 48 0 R]
+/Parent 196 0 R
+>>
+endobj
+147 0 obj
+<<
+/Type/Page
+/Resources 148 0 R
+/Contents[46 0 R 4 0 R 149 0 R 48 0 R]
+/Parent 196 0 R
+>>
+endobj
+196 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[143 0 R 147 0 R]
+/Parent 193 0 R
+>>
+endobj
+193 0 obj
+<<
+/Type/Pages
+/Count 7
+/Kids[123 0 R 194 0 R 195 0 R 196 0 R]
+/Parent 3 0 R
+>>
+endobj
+151 0 obj
+<<
+/Type/Page
+/Resources 152 0 R
+/Contents[46 0 R 4 0 R 153 0 R 48 0 R]
+/Parent 197 0 R
+>>
+endobj
+155 0 obj
+<<
+/Type/Page
+/Resources 156 0 R
+/Contents[46 0 R 4 0 R 163 0 R 48 0 R]
+/Parent 198 0 R
+>>
+endobj
+165 0 obj
+<<
+/Type/Page
+/Resources 166 0 R
+/Contents[46 0 R 4 0 R 167 0 R 48 0 R]
+/Parent 198 0 R
+>>
+endobj
+198 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[155 0 R 165 0 R]
+/Parent 197 0 R
+>>
+endobj
+169 0 obj
+<<
+/Type/Page
+/Resources 170 0 R
+/Contents[46 0 R 4 0 R 171 0 R 48 0 R]
+/Parent 199 0 R
+>>
+endobj
+173 0 obj
+<<
+/Type/Page
+/Resources 174 0 R
+/Contents[46 0 R 4 0 R 175 0 R 48 0 R]
+/Parent 199 0 R
+>>
+endobj
+199 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[169 0 R 173 0 R]
+/Parent 197 0 R
+>>
+endobj
+177 0 obj
+<<
+/Type/Page
+/Resources 178 0 R
+/Contents[46 0 R 4 0 R 179 0 R 48 0 R]
+/Parent 200 0 R
+>>
+endobj
+181 0 obj
+<<
+/Type/Page
+/Resources 182 0 R
+/Contents[46 0 R 4 0 R 183 0 R 48 0 R]
+/Parent 200 0 R
+>>
+endobj
+200 0 obj
+<<
+/Type/Pages
+/Count 2
+/Kids[177 0 R 181 0 R]
+/Parent 197 0 R
+>>
+endobj
+197 0 obj
+<<
+/Type/Pages
+/Count 7
+/Kids[151 0 R 198 0 R 199 0 R 200 0 R]
+/Parent 3 0 R
+>>
+endobj
+3 0 obj
+<<
+/Type/Pages
+/Count 28
+/Kids[185 0 R 189 0 R 193 0 R 197 0 R]
+/MediaBox[0 0 595 842]
+>>
+endobj
+46 0 obj
+<<
+/Length 1
+>>
+stream
+
+endstream
+endobj
+48 0 obj
+<<
+/Length 1
+>>
+stream
+
+endstream
+endobj
+4 0 obj
+<<
+/Length 33
+>>
+stream
+1.00028 0 0 1.00028 72 769.82 cm
+endstream
+endobj
+201 0 obj
+<<
+>>
+endobj
+202 0 obj
+null
+endobj
+203 0 obj
+<<
+>>
+endobj
+2 0 obj
+<<
+/Type/Catalog
+/Pages 3 0 R
+/Outlines 201 0 R
+/Threads 202 0 R
+/Names 203 0 R
+>>
+endobj
+xref
+0 204
+0000000000 65535 f
+0000186997 00000 n
+0000191887 00000 n
+0000191532 00000 n
+0000191737 00000 n
+0000187161 00000 n
+0000016491 00000 n
+0000000009 00000 n
+0000069741 00000 n
+0000069557 00000 n
+0000000913 00000 n
+0000001906 00000 n
+0000073033 00000 n
+0000072847 00000 n
+0000002883 00000 n
+0000003885 00000 n
+0000076603 00000 n
+0000076408 00000 n
+0000005501 00000 n
+0000079785 00000 n
+0000079599 00000 n
+0000006452 00000 n
+0000085760 00000 n
+0000085572 00000 n
+0000007369 00000 n
+0000089457 00000 n
+0000089271 00000 n
+0000008368 00000 n
+0000095995 00000 n
+0000095810 00000 n
+0000009336 00000 n
+0000099464 00000 n
+0000099275 00000 n
+0000010079 00000 n
+0000108345 00000 n
+0000108155 00000 n
+0000011025 00000 n
+0000120697 00000 n
+0000120509 00000 n
+0000011961 00000 n
+0000136839 00000 n
+0000136646 00000 n
+0000012879 00000 n
+0000138405 00000 n
+0000138219 00000 n
+0000013819 00000 n
+0000191637 00000 n
+0000014820 00000 n
+0000191687 00000 n
+0000016334 00000 n
+0000187264 00000 n
+0000020586 00000 n
+0000145694 00000 n
+0000145508 00000 n
+0000016552 00000 n
+0000147850 00000 n
+0000147664 00000 n
+0000017517 00000 n
+0000018262 00000 n
+0000020506 00000 n
+0000187369 00000 n
+0000025907 00000 n
+0000020648 00000 n
+0000162005 00000 n
+0000161811 00000 n
+0000021602 00000 n
+0000169537 00000 n
+0000169351 00000 n
+0000022549 00000 n
+0000023550 00000 n
+0000025791 00000 n
+0000187555 00000 n
+0000030062 00000 n
+0000025969 00000 n
+0000171534 00000 n
+0000171339 00000 n
+0000026876 00000 n
+0000027858 00000 n
+0000029947 00000 n
+0000187660 00000 n
+0000034093 00000 n
+0000030124 00000 n
+0000178717 00000 n
+0000178529 00000 n
+0000031092 00000 n
+0000032091 00000 n
+0000033966 00000 n
+0000187846 00000 n
+0000036319 00000 n
+0000034155 00000 n
+0000036226 00000 n
+0000187951 00000 n
+0000037428 00000 n
+0000036381 00000 n
+0000037336 00000 n
+0000188232 00000 n
+0000038696 00000 n
+0000037490 00000 n
+0000038592 00000 n
+0000188337 00000 n
+0000040573 00000 n
+0000038758 00000 n
+0000040456 00000 n
+0000188444 00000 n
+0000042298 00000 n
+0000040637 00000 n
+0000042205 00000 n
+0000188634 00000 n
+0000044453 00000 n
+0000042362 00000 n
+0000044337 00000 n
+0000188742 00000 n
+0000046045 00000 n
+0000044517 00000 n
+0000045952 00000 n
+0000188933 00000 n
+0000048021 00000 n
+0000046109 00000 n
+0000047941 00000 n
+0000189041 00000 n
+0000050372 00000 n
+0000048085 00000 n
+0000050302 00000 n
+0000189328 00000 n
+0000051639 00000 n
+0000050436 00000 n
+0000051558 00000 n
+0000189436 00000 n
+0000053356 00000 n
+0000051703 00000 n
+0000053263 00000 n
+0000189544 00000 n
+0000054594 00000 n
+0000053420 00000 n
+0000054513 00000 n
+0000189735 00000 n
+0000055668 00000 n
+0000054658 00000 n
+0000055610 00000 n
+0000189843 00000 n
+0000057228 00000 n
+0000055732 00000 n
+0000057136 00000 n
+0000190034 00000 n
+0000059619 00000 n
+0000057292 00000 n
+0000059550 00000 n
+0000190142 00000 n
+0000060983 00000 n
+0000059683 00000 n
+0000060925 00000 n
+0000190430 00000 n
+0000061841 00000 n
+0000061047 00000 n
+0000061783 00000 n
+0000190538 00000 n
+0000065285 00000 n
+0000183522 00000 n
+0000183329 00000 n
+0000061905 00000 n
+0000185751 00000 n
+0000185555 00000 n
+0000062902 00000 n
+0000063914 00000 n
+0000065166 00000 n
+0000190646 00000 n
+0000066130 00000 n
+0000065349 00000 n
+0000066072 00000 n
+0000190837 00000 n
+0000067523 00000 n
+0000066194 00000 n
+0000067404 00000 n
+0000190945 00000 n
+0000068156 00000 n
+0000067587 00000 n
+0000068098 00000 n
+0000191136 00000 n
+0000068952 00000 n
+0000068220 00000 n
+0000068871 00000 n
+0000191244 00000 n
+0000069493 00000 n
+0000069016 00000 n
+0000069424 00000 n
+0000188137 00000 n
+0000187474 00000 n
+0000187765 00000 n
+0000188056 00000 n
+0000189232 00000 n
+0000188552 00000 n
+0000188850 00000 n
+0000189149 00000 n
+0000190333 00000 n
+0000189652 00000 n
+0000189951 00000 n
+0000190250 00000 n
+0000191435 00000 n
+0000190754 00000 n
+0000191053 00000 n
+0000191352 00000 n
+0000191819 00000 n
+0000191842 00000 n
+0000191864 00000 n
+trailer
+<<
+/Size 204
+/Root 2 0 R
+/Info 1 0 R
+>>
+startxref
+191985
+%%EOF
diff --git a/macros/latex/contrib/algorithmicx/algorithmicx.sty b/macros/latex/contrib/algorithmicx/algorithmicx.sty
new file mode 100644
index 0000000000..bfb7dabafe
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algorithmicx.sty
@@ -0,0 +1,786 @@
+% ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@users.sourceforge.net
+%
+%
+% *** INITIALISING ***
+%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{algorithmicx}[2005/04/27 v1.2 Algorithmicx]
+\RequirePackage{ifthen}
+\typeout{Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style}
+%
+\newcounter{ALG@line}
+\newcounter{ALG@rem}
+\newcounter{ALG@nested}
+\newlength{\ALG@tlm}
+\newlength{\ALG@thistlm}
+\newcounter{ALG@Lnr}% the number of defined languages
+\setcounter{ALG@Lnr}{0}
+\newcounter{ALG@blocknr}% the number of defined blocks
+\setcounter{ALG@blocknr}{0}
+\newcounter{ALG@storecount}% number of stored but not restored algorithmic environments
+\setcounter{ALG@storecount}{0}
+\newcounter{ALG@tmpcounter}% only to decrement things
+\newlength\ALG@tmplength%
+%\def\algorithmicnoindent{-\ALG@tlm}
+% \def\algbackskipbegin{\hskip\ALG@ctlm}
+%\def\algbackskip{\hskip-\ALG@thistlm}
+%\def\algbackskipend{\hskip-\ALG@tlm}
+\def\ALG@defaultindent{\algorithmicindent}
+%
+% conditional states
+%
+\def\ALG@newcondstate#1%
+ {%
+ \expandafter\edef\csname ALG@x@#1\endcsname%
+ {\expandafter\noexpand\csname @@ALG@x@#1\endcsname}%
+ }%
+\ALG@newcondstate{notext}%
+\ALG@newcondstate{default}%
+%
+%
+% *** ALGORITHMIC ***
+%
+%
+\newcommand\ALG@beginblock[1]% #1 - indentation
+ {%
+ \ALG@thistlm\ALG@tlm%
+ \addtolength\ALG@tlm{#1}%
+ \addtocounter{ALG@nested}{1}%
+ \setlength\ALG@tmplength{#1}%
+ \expandafter\edef\csname ALG@ind@\theALG@nested\endcsname{\the\ALG@tmplength}%
+ }%
+\newcommand\ALG@endblock%
+ {%
+ \addtolength\ALG@tlm{-\csname ALG@ind@\theALG@nested\endcsname}%
+ \addtocounter{ALG@nested}{-1}%
+ \ALG@thistlm\ALG@tlm%
+ }%
+%
+% algorithmic environment
+%
+\def\ALG@step%
+ {%
+ \addtocounter{ALG@line}{1}%
+ \addtocounter{ALG@rem}{1}%
+ \ifthenelse{\equal{\arabic{ALG@rem}}{\ALG@numberfreq}}%
+ {\setcounter{ALG@rem}{0}\alglinenumber{\arabic{ALG@line}}}%
+ {}%
+ }%
+\newenvironment{algorithmic}[1][0]%
+ {%
+ \edef\ALG@numberfreq{#1}%
+ \def\@currentlabel{\theALG@line}%
+ %
+ \setcounter{ALG@line}{0}%
+ \setcounter{ALG@rem}{0}%
+ %
+ \let\\\algbreak%
+ %
+ \expandafter\edef\csname ALG@currentblock@\theALG@nested\endcsname{0}%
+ \expandafter\let\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
+ %
+ \begin{list}%
+ {\ALG@step}%
+ {%
+ \rightmargin\z@%
+ \itemsep\z@ \itemindent\z@ \listparindent2em%
+ \partopsep\z@ \parskip\z@ \parsep\z@%
+ \labelsep 0.5em \topsep 0.2em%\skip 1.2em
+ \ifthenelse{\equal{#1}{0}}%
+ {\labelwidth 0.5em}%
+ {\labelwidth 1.2em}%
+ \leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep}% Ok. the perfect leftmargin :-))
+ \ALG@tlm\z@%
+ }%
+ \setcounter{ALG@nested}{0}%
+ \ALG@beginalgorithmic%
+ }%
+ {% end{algorithmic}
+ % check if all blocks are closed
+ \ALG@closeloops%
+ \expandafter\ifnum\csname ALG@currentblock@\theALG@nested\endcsname=0\relax%
+ \else%
+ \PackageError{algorithmicx}{Some blocks are not closed!!!}{}%
+ \fi%
+ \ALG@endalgorithmic%
+ \end{list}%
+ }%
+%
+%
+% *** Functional core ***
+%
+%
+\def\ALG@makeentity#1% execute the entity (#1)
+ {%
+ \def\ALG@thisentity{#1}%
+ \expandafter\ifx\csname ALG@b@\ALG@L @#1@0\endcsname\relax%
+ \let\ALG@makenobeginrepeat\ALG@makenobegin\ALG@makenobeginrepeat% this entitie ends or continues blocks
+ \else%
+ \let\ALG@makebeginrepeat\ALG@makebegin\ALG@makebeginrepeat% this entitie can open blocks
+ \fi%
+ \ALG@entitiecommand%
+ }%
+%
+\def\ALG@makebegin% executes an entitie that can open blocks
+ {%
+ \expandafter\let\expandafter\ALG@thislifetime\csname ALG@currentlifetime@\theALG@nested\endcsname%
+ \ifx\ALG@thislifetime\relax%
+ \let\ALG@makebeginrepeat\ALG@doentity% in infinite block I can open my block
+ \else%
+ \ifnum\ALG@thislifetime>0\relax%
+ \ifnum\ALG@thislifetime>65534\else%
+ \setcounter{ALG@tmpcounter}{\ALG@thislifetime}% the block has 'space' for another included block
+ \addtocounter{ALG@tmpcounter}{-1}%
+ \expandafter\edef\csname ALG@currentlifetime@\theALG@nested\endcsname{\arabic{ALG@tmpcounter}}%
+ \fi%
+ \let\ALG@makebeginrepeat\ALG@doentity%
+ \else% the block needs to be closed
+ \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\csname ALG@currentblock@\theALG@nested\endcsname\endcsname\relax%
+ \ALG@closebyforce% I can not close this block, continue after it is closed by force
+% \ALG@makebegin%
+ \else%
+ % the block would be closed automatically, but this entitie can close it, so let's do it with the entity
+ \let\ALG@makebeginrepeat\ALG@doentity%
+ \fi%
+ \fi%
+ \fi%
+ \ALG@makebeginrepeat%
+ }%
+%
+\def\ALG@makenobegin% executes an entitie that can not open blocks
+ {%
+ \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
+ \let\ALG@makenobeginrepeat\ALG@doentity% an infinite block must be broken
+ \else%
+ \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\csname ALG@currentblock@\theALG@nested\endcsname\endcsname\relax%
+ \ALG@closebyforce% the block must be ended by force,
+ \else%
+ \let\ALG@makenobeginrepeat\ALG@doentity% I can continue / end this block, let's do it
+ \fi%
+ \fi%
+ \ALG@makenobeginrepeat%
+ }%
+%
+\def\ALG@dobegin%
+ {%
+ \ALG@beginblock{\csname ALG@i@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
+ \expandafter\edef\csname ALG@currentblock@\theALG@nested\endcsname{\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
+ \expandafter\ifx\csname ALG@c@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\relax%
+ \expandafter\let\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
+ \else%
+ \expandafter\edef\csname ALG@currentlifetime@\theALG@nested\endcsname{\csname ALG@c@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname}%
+ \fi%
+ }%
+%
+\def\ALG@doend%
+ {%
+ \ALG@endblock%
+ }%
+%
+\def\ALG@doentity% the number of the closed block, the entitie
+ {%
+ \edef\ALG@thisblock{\csname ALG@currentblock@\theALG@nested\endcsname}%
+ \expandafter\ifx\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\relax%
+ \def\ALG@thisblock{0}%
+ \fi%
+ \ALG@getentitytext%
+ \ifnum\ALG@thisblock=0\else\ALG@doend\fi%
+ \ifx\ALG@text\ALG@x@notext%
+ \item[]\nointerlineskip%\vskip-\prevdepth\nointerlineskip% bug: if there are no text and no lines, then this is wrong
+ \else%
+ \item%
+ \fi%
+ \noindent\hskip\ALG@tlm%
+ \expandafter\ifnum0=\csname ALG@b@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname\else%
+ \ALG@dobegin%
+ \fi%
+ \def\ALG@entitiecommand{\ALG@displayentity}%
+ }%
+%
+\def\ALG@getentitytext%
+ {%
+ \expandafter\let\expandafter\ALG@text\csname ALG@t@\ALG@L @\ALG@thisentity @\ALG@thisblock\endcsname%
+ \ifx\ALG@text\ALG@x@default%
+ % block specific - default
+ \expandafter\let\expandafter\ALG@text\csname ALG@t@\ALG@L @\ALG@thisentity\endcsname%
+ \ifx\ALG@text\ALG@x@default%
+ % block specific - default, language specific - default
+ \def\ALG@text{\ALG@deftext{\ALG@thisentity}}%
+ \fi%
+ \fi%
+ }%
+%
+\def\ALG@deftext{\csname ALG@deftext@\ALG@L\endcsname}%
+%
+\def\ALG@displayentity%
+ {%
+ \ifx\ALG@text\ALG@x@notext%
+ \let\ALG@text\relax%
+ \fi
+ \ALG@text%
+ }%
+%
+\def\ALG@closebyforce%
+ {%
+ \ALG@endblock%
+ }%
+%
+\def\ALG@closeloops% closes all finite blocks
+ {%
+ \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
+ \else% only if it is finite
+ \ALG@closebyforce% the block must be ended by force,
+ \ALG@closeloops% the command still runs
+ \fi%
+ }%
+%
+%
+% *** Low level block/entitie defining commands ***
+%
+%
+\def\ALG@bl@{0}% the BIG block
+\let\ALG@bl@@\ALG@bl@% the BIG block
+%
+% Create a block
+%
+\def\ALG@createblock#1% create the block #1, if it does not exists
+ {%
+ \@ifundefined{ALG@bl@\ALG@Ld @#1}% needs to be created?
+ {%
+ \addtocounter{ALG@blocknr}{1}% increment the block counter
+ \expandafter\edef\csname ALG@bl@\ALG@Ld @#1\endcsname{\arabic{ALG@blocknr}}% set the block number
+ }%
+ {}%
+ }%
+%
+% Get the block number
+%
+\def\ALG@getblocknumber#1{\csname ALG@bl@\ALG@Ld @#1\endcsname}%
+%
+% Create an entitie
+%
+\def\ALG@createentitie#1% create the entitie #1, if it does not exists
+ {%
+ \expandafter\ALG@edefcmd\csname #1\endcsname{\noexpand\ALG@makeentity{#1}}%
+ \@ifundefined{ALG@t@\ALG@Ld @#1}% the entity text is defined in this language?
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#1\endcsname\ALG@x@default%
+ }%
+ {}%
+ }%
+%
+\def\ALG@createtext#1#2% #1 = closed block; #2 = entitie; creates \ALG@t@#2@#1
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#2@#1\endcsname\ALG@x@default%
+ }%
+%
+% End and Continue block
+%
+\def\ALG@endandcontinueblock#1#2#3#4#5% #1 = new block; #2 = old block; #3 = entitie; #4 = credits; #5 = indent
+ {%
+ \ifthenelse{\equal{#3}{}}{}% execute only if the entity is not empty
+ {%
+ \ALG@createentitie{#3}% create the entitie
+ \ALG@createblock{#2}% create the old block, if needed
+ \ifthenelse{\equal{#1}{}}% whe need to open a new block?
+ {\expandafter\edef\csname ALG@b@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{0}}% no, just close the old one
+ {% yes,
+ \ALG@createblock{#1}% create the block
+ \expandafter\edef\csname ALG@b@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{\ALG@getblocknumber{#1}}% ending the old block opens a new one
+ \ifthenelse{\equal{#4}{}}% infinite or finite credits?
+ {\expandafter\let\csname ALG@c@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname\relax}% infinite credits
+ {\expandafter\edef\csname ALG@c@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{#4}}% finite credits
+ \ifthenelse{\equal{#5}{}}% default or specified indentation
+ {\expandafter\let\csname ALG@i@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname\ALG@defaultindent}% default indentation
+ {\expandafter\edef\csname ALG@i@\ALG@Ld @#3@\ALG@getblocknumber{#2}\endcsname{#5}}% indentation is specified
+ }%
+ \ALG@createtext{\ALG@getblocknumber{#2}}{#3}%
+ }%
+ }%
+%
+% macros used in declarations
+%
+\def\ALG@p@endtext@E{\algrenewtext{\ALG@v@end}}%
+\def\ALG@p@endtext@xE{\algrenewtext[\ALG@v@newblock]{\ALG@v@end}}%
+\def\ALG@p@endtext@nE{\algnotext{\ALG@v@end}}%
+\def\ALG@p@endtext@xnE{\algnotext[\ALG@v@newblock]{\ALG@v@end}}%
+\def\ALG@p@endtext@{}%
+% starttext defines are more compex -- care must be taken for the optional parameters
+\def\ALG@p@starttext@S{\ALG@p@s@process{\algrenewtext}}%
+\def\ALG@p@starttext@C{\ALG@p@s@process{\algrenewtext}}%
+\def\ALG@p@starttext@xC{\ALG@p@s@process{\algrenewtext[\ALG@v@oldblock]}}%
+\def\ALG@p@s@process#1%
+ {%
+ \ifthenelse{\equal{\ALG@v@start}{}}%
+ {\ALG@p@endtext}%
+ {\@ifnextchar{[}{\ALG@p@s@getparamcount{#1}}{\ALG@p@s@simple{#1}}}%
+ }%
+\def\ALG@p@s@getparamcount#1[#2]%
+ {%
+ \@ifnextchar{[}{\ALG@p@s@getdefparam{#1}{#2}}{\ALG@p@s@param{#1}{#2}}%
+ }%
+\def\ALG@p@s@getdefparam#1#2[#3]%
+ {%
+ \ALG@p@s@defparam{#1}{#2}{#3}%
+ }%
+\def\ALG@p@s@simple#1#2{#1{\ALG@v@start}{#2}\ALG@p@endtext}%
+\def\ALG@p@s@param#1#2#3{#1{\ALG@v@start}[#2]{#3}\ALG@p@endtext}%
+\def\ALG@p@s@defparam#1#2#3#4{#1{\ALG@v@start}[#2][#3]{#4}\ALG@p@endtext}%
+% the rest of the crew
+\def\ALG@p@starttext@nS{\algnotext{\ALG@v@start}\ALG@p@endtext}%
+\def\ALG@p@starttext@nC{\algnotext{\ALG@v@start}\ALG@p@endtext}%
+\def\ALG@p@starttext@xnC{\algnotext[\ALG@v@oldblock]{\ALG@v@start}\ALG@p@endtext}%
+\def\ALG@p@starttext@{\ALG@p@endtext}%
+\def\ALG@p@indent@def#1{\def\ALG@v@indent{#1}\ALG@p@setup}%
+\def\ALG@p@indent@{\def\ALG@v@indent{}\ALG@p@setup}%
+\def\ALG@p@credits@def#1{\def\ALG@v@credits{#1}\ALG@p@indent}%
+\def\ALG@p@credits@{\ALG@p@indent}%
+\def\ALG@p@end@def#1{\def\ALG@v@end{#1}\ALG@p@credits}%
+\def\ALG@p@end@{\def\ALG@v@end{}\ALG@p@credits}%
+\def\ALG@p@start@def#1{\def\ALG@v@start{#1}\ALG@p@end}%
+\def\ALG@p@start@{\def\ALG@v@start{}\ALG@p@end}%
+\def\ALG@p@oldblock@def#1{\def\ALG@v@oldblock{#1}\ALG@p@start}%
+\def\ALG@p@oldblock@{\def\ALG@v@oldblock{}\ALG@p@start}%
+\newcommand\ALG@p@newblock[1][]{\def\ALG@v@newblock{#1}\ALG@p@oldblock}%
+\def\ALG@p@setup%
+ {%
+ \ifthenelse{\equal{\ALG@v@newblock}{}}%
+ {%
+ \ifthenelse{\equal{\ALG@v@start}{}}%
+ {%
+ \PackageError{algorithmicx}{Block or starting entitie must be specified!!!}{}%
+ }%
+ {%
+ \let\ALG@v@newblock\ALG@v@start%
+ }%
+ }%
+ {%
+ }%
+ \ALG@endandcontinueblock%
+ {\ALG@v@newblock}{\ALG@v@oldblock}{\ALG@v@start}%
+ {\ALG@v@credits}{\ALG@v@indent}%
+ \ALG@endandcontinueblock%
+ {}{\ALG@v@newblock}{\ALG@v@end}%
+ {}{}%
+ \ALG@p@starttext%
+ }%
+%
+% param handling
+%
+\newcommand\ALG@p@def[2][def]%
+ {%
+ \expandafter\let\csname ALG@p@#2\expandafter\endcsname\csname ALG@p@#2@#1\endcsname%
+ }%
+\def\ALG@p@undef{\ALG@p@def[]}%
+%
+\def\ALG@p@ons{\ALG@p@def{start}}%
+\def\ALG@p@onS{\ALG@p@def{start}\ALG@p@def[S]{starttext}}%
+\def\ALG@p@onc{\ALG@p@def{oldblock}\ALG@p@def{start}}%
+\def\ALG@p@onC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[C]{starttext}}%
+\def\ALG@p@one{\ALG@p@def{end}}%
+\def\ALG@p@onE{\ALG@p@def{end}\ALG@p@def[E]{endtext}}%
+\def\ALG@p@onxC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[xC]{starttext}}%
+\def\ALG@p@onxE{\ALG@p@def{end}\ALG@p@def[xE]{endtext}}%
+\def\ALG@p@onnS{\ALG@p@def{start}\ALG@p@def[nS]{starttext}}%
+\def\ALG@p@onnC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[nC]{starttext}}%
+\def\ALG@p@onnE{\ALG@p@def{end}\ALG@p@def[nE]{endtext}}%
+\def\ALG@p@onxnC{\ALG@p@def{oldblock}\ALG@p@def{start}\ALG@p@def[xnC]{starttext}}%
+\def\ALG@p@onxnE{\ALG@p@def{end}\ALG@p@def[xnE]{endtext}}%
+\def\ALG@p@onb{\def\ALG@v@credits{}}%
+\def\ALG@p@onl{\def\ALG@v@credits{1}}%
+\def\ALG@p@onL{\ALG@p@def{credits}}%
+\def\ALG@p@oni{\ALG@p@def{indent}}%
+%
+\def\ALG@p@main#1%
+ {%
+ \@ifundefined{ALG@ps@\ALG@p@state @#1}%
+ {%
+ \csname ALG@ps@\ALG@p@state @other\endcsname{#1}%
+ }%
+ {%
+ \csname ALG@ps@\ALG@p@state @#1\endcsname%
+ }%
+ \ALG@p@rec%
+ }%
+% STATE : <<starting state>>
+\expandafter\def\csname ALG@ps@@]\endcsname{\let\ALG@p@rec\relax}%
+\def\ALG@ps@@s{\ALG@p@ons}%
+\def\ALG@ps@@S{\ALG@p@onS}%
+\def\ALG@ps@@c{\ALG@p@onc}%
+\def\ALG@ps@@C{\ALG@p@onC}%
+\def\ALG@ps@@e{\ALG@p@one}%
+\def\ALG@ps@@E{\ALG@p@onE}%
+\def\ALG@ps@@N{\typeout{algdef: 'N' obsoloted, use 'nE'.}\ALG@p@onnE}%
+\def\ALG@ps@@b{\ALG@p@onb}%
+\def\ALG@ps@@l{\ALG@p@onl}%
+\def\ALG@ps@@L{\ALG@p@onL}%
+\def\ALG@ps@@i{\ALG@p@oni}%
+\def\ALG@ps@@x{\def\ALG@p@state{x}}%
+\def\ALG@ps@@n{\def\ALG@p@state{n}}%
+\def\ALG@ps@@other#1{\typeout{algdef: Ignoring unknown token #1}}%
+% STATE : x
+\def\ALG@ps@x@C{\def\ALG@p@state{}\ALG@p@onxC}%
+\def\ALG@ps@x@E{\def\ALG@p@state{}\ALG@p@onxE}%
+\def\ALG@ps@x@N{\def\ALG@p@state{}\typeout{algdef: 'xN' obsoloted, use 'xnE'.}\ALG@p@onxnE}%
+\def\ALG@ps@x@n{\def\ALG@p@state{xn}}%
+\def\ALG@ps@x@other#1%
+ {%
+ \typeout{algdef: Ignoring 'x' before '#1'.}%
+ \def\ALG@p@state{}%
+ \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
+ }%
+% STATE : n
+\def\ALG@ps@n@S{\def\ALG@p@state{}\ALG@p@onnS}%
+\def\ALG@ps@n@C{\def\ALG@p@state{}\ALG@p@onnC}%
+\def\ALG@ps@n@E{\def\ALG@p@state{}\ALG@p@onnE}%
+\def\ALG@ps@n@x{\def\ALG@p@state{nx}}%
+\def\ALG@ps@n@other#1%
+ {%
+ \typeout{algdef: Ignoring 'n' before '#1'.}%
+ \def\ALG@p@state{}%
+ \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
+ }%
+% STATE : xn
+\def\ALG@ps@xn@C{\def\ALG@p@state{}\ALG@p@onxnC}%
+\def\ALG@ps@xn@E{\def\ALG@p@state{}\ALG@p@onxnE}%
+\def\ALG@ps@xn@x{\typeout{algdef: Ignoring 'x' after 'xn'.}}%
+\def\ALG@ps@xn@n{\typeout{algdef: Ignoring 'n' after 'xn'.}}%
+\def\ALG@ps@xn@other#1%
+ {%
+ \typeout{algdef: Ignoring 'xn' before '#1'.}%
+ \def\ALG@p@state{}%
+ \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
+ }%
+% STATE : nx
+\def\ALG@ps@nx@C{\def\ALG@p@state{}\ALG@p@onxnC}%
+\def\ALG@ps@nx@E{\def\ALG@p@state{}\ALG@p@onxnE}%
+\def\ALG@ps@nx@x{\typeout{algdef: Ignoring 'x' after 'nx'.}}%
+\def\ALG@ps@nx@n{\typeout{algdef: Ignoring 'n' after 'nx'.}}%
+\def\ALG@ps@nx@other#1%
+ {%
+ \typeout{algdef: Ignoring 'nx' before '#1'.}%
+ \def\ALG@p@state{}%
+ \def\ALG@p@rec{\let\ALG@p@rec\ALG@p@main\ALG@p@rec#1}%
+ }%
+%
+%
+% *** User level block/entitie commands ***
+%
+%
+%
+% algdef{switches}... -- the king of all definitions in the algorithmicx package
+%
+\newcommand\algdef[1]%
+ {%
+ \ALG@p@undef{oldblock}%
+ \ALG@p@undef{start}%
+ \ALG@p@undef{end}%
+ \def\ALG@v@credits{}%
+ \ALG@p@undef{credits}%
+ \ALG@p@undef{indent}%
+ \ALG@p@undef{starttext}%
+ \ALG@p@undef{endtext}%
+ \def\ALG@p@state{}%
+ \let\ALG@p@rec\ALG@p@main%
+ \ALG@p@rec#1]%
+ \ALG@p@newblock%
+ }%
+%
+% a lot of other macros are provided for convenience
+%
+\def\algblock{\algdef{se}}%
+\def\algcblock{\algdef{ce}}%
+\def\algloop{\algdef{sl}}%
+\def\algcloop{\algdef{cl}}%
+\def\algsetblock{\algdef{seLi}}%
+\def\algsetcblock{\algdef{ceLi}}%
+\def\algblockx{\algdef{SxE}}%
+\def\algblockdefx{\algdef{SE}}%
+\def\algcblockx{\algdef{CxE}}%
+\def\algcblockdefx{\algdef{CE}}%
+\def\algsetblockx{\algdef{SxELi}}%
+\def\algsetblockdefx{\algdef{SELi}}%
+\def\algsetcblockx{\algdef{CxELi}}%
+\def\algsetcblockdefx{\algdef{CELi}}%
+\def\algloopdefx{\algdef{Sl}}%
+\def\algcloopx{\algdef{xCl}}%
+\def\algcloopdefx{\algdef{Cl}}%
+% algloopx is not correct, use algloopdefx
+%
+% Text output commands
+%
+\newcommand\algrenewtext[2][]% [block]{entity}
+ {%
+ \ifthenelse{\equal{#2}{}}{}%
+ {%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#2\endcsname\relax%
+ \expandafter\newcommand\csname ALG@t@\ALG@Ld @#2\endcsname%
+ }%
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname\relax%
+ \expandafter\newcommand\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname%
+ }%
+ }%
+ }%
+%
+\def\ALG@letentitytext#1#2% [block]{entity}
+ {%
+ \ifthenelse{\equal{#2}{}}{}%
+ {%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#2\endcsname%
+ }%
+ {%
+ \expandafter\let\csname ALG@t@\ALG@Ld @#2@\ALG@getblocknumber{#1}\endcsname%
+ }%
+ }%
+ }%
+%
+\newcommand\algnotext[2][]% [block]{entity}
+ {%
+ \ALG@letentitytext{#1}{#2}\ALG@x@notext%
+ }%
+%
+\newcommand\algdefaulttext[2][]% [block]{entity}
+ {%
+ \ALG@letentitytext{#1}{#2}\ALG@x@default%
+ }%
+%
+\def\ALG@notext*{\algnotext}%
+\def\algtext{\@ifnextchar{*}{\ALG@notext}{\algrenewtext}}%
+%
+%
+% *** LANGUAGE SWITCHING ***
+%
+%
+%
+\newcommand\algnewlanguage[1]%
+ {%
+ \@ifundefined{ALG@L@#1}% needs to be created?
+ {}%
+ {%
+ \PackageError{algorithmicx}{Language '#1' already defined!}{}%
+ }%
+ \addtocounter{ALG@Lnr}{1}% increment the language counter
+ \expandafter\edef\csname ALG@L@#1\endcsname{\arabic{ALG@Lnr}}% set the language number
+ \edef\ALG@Ld{\csname ALG@L@#1\endcsname}%
+ \expandafter\let\csname ALG@bl@\ALG@Ld @\endcsname\ALG@bl@% the BIG block
+ \expandafter\let\csname ALG@bl@\ALG@Ld @@\endcsname\ALG@bl@% the BIG block
+ \algdef{SL}[STATE]{State}{0}{}%
+ \expandafter\def\csname ALG@deftext@\ALG@Ld\endcsname{\textbf}%
+ \algnewcommand\algorithmiccomment[1]{\hfill\(\triangleright\) ##1}%
+ \algnewcommand\algorithmicindent{1.5em}%
+ \algnewcommand\alglinenumber[1]{\footnotesize ##1:}%
+ \algnewcommand\ALG@beginalgorithmic\relax% for user overrides
+ \algnewcommand\ALG@endalgorithmic\relax% for user overrides
+ }%
+%
+\newcommand\algsetlanguage[1]%
+ {%
+ \@ifundefined{ALG@L@#1}% needs to be created?
+ {%
+ \PackageError{algorithmicx}{Language '#1' is not yet defined!}{}%
+ }{}%
+ \edef\ALG@L{\csname ALG@L@#1\endcsname}%
+ }%
+%
+\newcommand\algdeflanguage[1]%
+ {%
+ \@ifundefined{ALG@L@#1}% needs to be created?
+ {%
+ \PackageError{algorithmicx}{Language '#1' is not yet defined!}{}%
+ }{}%
+ \edef\ALG@Ld{\csname ALG@L@#1\endcsname}%
+ }%
+%
+\newcommand\alglanguage[1]%
+ {%
+ \algdeflanguage{#1}%
+ \algsetlanguage{#1}%
+ }%
+%
+%
+% *** Defining language dependent stuff ***
+%
+%
+\def\ALG@eatoneparam#1{}%
+\def\ALG@defbasecmd#1#2%
+ {%
+ \edef\ALG@tmp{\expandafter\ALG@eatoneparam\string #2}%
+ \@ifundefined\ALG@tmp{\edef #2{\noexpand\csname ALG@cmd@\noexpand\ALG@L @\ALG@tmp\endcsname}}{}%
+ \expandafter#1\csname ALG@cmd@\ALG@Ld @\ALG@tmp\endcsname%
+ }%
+\newcommand\algnewcommand{\ALG@defbasecmd\newcommand}%
+\newcommand\algrenewcommand{\ALG@defbasecmd\renewcommand}%
+\def\ALG@letcmd{\ALG@defbasecmd\let}%
+\def\ALG@defcmd{\ALG@defbasecmd\def}%
+\def\ALG@edefcmd{\ALG@defbasecmd\edef}%
+%
+%
+% *** OTHERS ***
+%
+%
+\def\BState{\State \algbackskip}%
+\def\Statex{\item[]}% an empty line
+\newcommand\algrenewcomment{\algrenewcommand\algorithmiccomment}%
+\def\Comment{\algorithmiccomment}%
+\def\algref#1#2{\ref{#1}.\ref{#2}}%
+\algnewlanguage{default}%
+\algsetlanguage{default}%
+%
+%
+% *** Line breaks ***
+%
+%
+\newcommand\algbreak% for multiline parameters !!! needs fix
+ {%
+ \item%
+% \hskip\ALG@parindent%!!! not yet implemented
+% \hskip-\algorithmicindent%
+ }%
+%
+\def\ALG@noputindents%
+ {%
+ \hskip\ALG@tlm%
+ }%
+%
+%
+% *** algorithm store / restore ***
+%
+%
+% store
+%
+\ALG@newcondstate{mustrestore}%
+\def\algstore%
+ {%
+ \renewcommand\ALG@beginblock%
+ {%
+ \PackageError{algorithmicx}{The environment must be closed after store!}{}%
+ }%
+ \@ifstar{\ALG@starstore}{\ALG@nostarstore}%
+ }%
+\def\ALG@nostarstore#1% save all infos into #1 and terminate the algorithmic block
+ {%
+ \addtocounter{ALG@storecount}{1}%
+ \expandafter\global\expandafter\let\csname ALG@save@mustrestore@#1\endcsname\ALG@x@mustrestore%
+ \ALG@starstore{#1}%
+ }%
+\def\ALG@starstore#1%
+ {%
+ \@ifundefined{ALG@save@line@#1}{}%
+ {\PackageError{algorithmicx}{This save name '#1' is already used!}{}}%
+ \def\ALG@savename{#1}%
+ \expandafter\xdef\csname ALG@save@totalnr@\ALG@savename\endcsname{\theALG@nested}%
+ \expandafter\xdef\csname ALG@save@line@\ALG@savename\endcsname{\theALG@line}%
+ \expandafter\xdef\csname ALG@save@numberfreq@\ALG@savename\endcsname{\ALG@numberfreq}%
+ \expandafter\xdef\csname ALG@save@rem@\ALG@savename\endcsname{\theALG@rem}%
+ \let\ALG@storerepeat\ALG@store%
+ \ALG@storerepeat%
+ }%
+\def\ALG@store% simply terminate all open blocks
+ {%
+ \ifnum\theALG@nested=0\let\ALG@storerepeat\relax%
+ \else%
+ \expandafter\xdef\csname ALG@save@currentblock@\ALG@savename @\theALG@nested\endcsname%
+ {\csname ALG@currentblock@\theALG@nested\endcsname}%
+ \expandafter\ifx\csname ALG@currentlifetime@\theALG@nested\endcsname\relax%
+ \else%
+ \expandafter\xdef\csname ALG@save@currentlifetime@\ALG@savename @\theALG@nested\endcsname%
+ {\csname ALG@currentlifetime@\theALG@nested\endcsname}%
+ \fi%
+ \expandafter\xdef\csname ALG@save@ind@\ALG@savename @\theALG@nested\endcsname%
+ {\csname ALG@ind@\theALG@nested\endcsname}%
+ \ALG@closebyforce%
+ \fi%
+ \ALG@storerepeat%
+ }%
+%
+% restore
+%
+\def\algrestore%
+ {%
+ \@ifstar{\ALG@starrestore}{\ALG@nostarrestore}%
+ }%
+\def\ALG@starrestore%
+ {%
+ \let\ALG@restorerem\relax%
+ \let\ALG@restorereprem\relax%
+ \ALG@restoremain%
+ }%
+\def\ALG@nostarrestore%
+ {%
+ \let\ALG@restorerem\ALG@restoreremovesave%
+ \let\ALG@restorereprem\ALG@restorerepremovesave%
+ \ALG@restoremain%
+ }%
+\def\ALG@restoreremovesave%
+ {%
+ \expandafter\global\expandafter\let\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@line@\ALG@savename\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@rem@\ALG@savename\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@numberfreq@\ALG@savename\endcsname\relax%
+ }%
+\def\ALG@restorerepremovesave%
+ {%
+ \expandafter\global\expandafter\let\csname ALG@save@currentblock@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
+ \expandafter\global\expandafter\let\csname ALG@save@ind@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
+ }%
+\def\ALG@restoremain#1% restore all infos from #1 in an open algorithmic block
+ {%
+ \ifnum\theALG@line=0%
+ \else\PackageError{algorithmicx}{Restore might be used only at the beginning of the environment!}{}%
+ \fi%
+ \def\ALG@savename{#1}%
+ \expandafter\ifx\csname ALG@save@totalnr@\ALG@savename\endcsname\relax%
+ \PackageError{algorithmicx}{Save '\ALG@savename'\space not defined!!!}{}%
+ \fi%
+ \@ifundefined{ALG@save@mustrestore@\ALG@savename}{}%
+ {%
+ \addtocounter{ALG@storecount}{-1}%
+ \expandafter\global\expandafter\let\csname ALG@save@mustrestore@\ALG@savename\endcsname\relax%
+ }%
+ \setcounter{ALG@line}{\csname ALG@save@line@\ALG@savename\endcsname}%
+ \edef\ALG@numberfreq{\csname ALG@save@numberfreq@\ALG@savename\endcsname}%
+ \setcounter{ALG@rem}{\csname ALG@save@rem@\ALG@savename\endcsname}%
+ \setcounter{ALG@tmpcounter}{\csname ALG@save@totalnr@\ALG@savename\endcsname}%
+ \setcounter{ALG@nested}{0}%
+ \ALG@restorerem%
+ \let\ALG@restorerepeat\ALG@restore%
+ \ALG@restorerepeat%
+ }%
+\def\ALG@restore%
+ {%
+ \ifnum\theALG@tmpcounter>0%
+ \expandafter\edef\csname ALG@currentblock@\theALG@tmpcounter\endcsname%
+ {\csname ALG@save@currentblock@\ALG@savename @\theALG@tmpcounter\endcsname}%
+ \expandafter\ifx\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname\relax%
+ \expandafter\let\csname ALG@currentlifetime@\theALG@tmpcounter\endcsname\relax%
+ \else%
+ \expandafter\edef\csname ALG@currentlifetime@\theALG@tmpcounter\endcsname%
+ {\csname ALG@save@currentlifetime@\ALG@savename @\theALG@tmpcounter\endcsname}%
+ \fi%
+ %
+ \ALG@beginblock{\csname ALG@save@ind@\ALG@savename @\theALG@tmpcounter\endcsname}%
+ \ALG@restorereprem%
+ \addtocounter{ALG@tmpcounter}{-1}%
+ \else\let\ALG@restorerepeat\relax%
+ \fi%
+ \ALG@restorerepeat%
+ }%
+\AtEndDocument%
+ {%
+ \ifnum\theALG@storecount>0\relax%
+ \PackageError{algorithmicx}{Some stored algorithms are not restored!}{}%
+ \fi%
+ }%
diff --git a/macros/latex/contrib/algorithmicx/algorithmicx.tex b/macros/latex/contrib/algorithmicx/algorithmicx.tex
new file mode 100644
index 0000000000..a92c017f7a
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algorithmicx.tex
@@ -0,0 +1,1768 @@
+\documentclass{article}
+\usepackage{algorithmicx}
+\usepackage[ruled]{algorithm}
+\usepackage{algpseudocode}
+\usepackage{algpascal}
+\usepackage{algc}
+%\algdisablelines
+
+
+\newcommand{\alg}{\texttt{algorithmicx}}
+\newcommand{\old}{\texttt{algorithmic}}
+\newcommand{\euk}{Euclid}
+\newcommand\ASTART{\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}}
+\newcommand\ACONTINUE{\end{minipage}\begin{minipage}[b]{0.5\linewidth}}
+\newcommand\AENDSKIP{\end{minipage}\bigskip}
+\newcommand\AEND{\end{minipage}}
+
+
+
+\title{The \alg\ package\footnote{This is the documentation for the version 1.2
+of the package. This package is released under LPPL.}}
+\author{Sz\'asz J\'anos\\szaszjanos@users.sourceforge.net}
+
+
+
+\begin{document}
+\maketitle
+\begin{abstract}
+The \alg\ package provides many possibilities to customize the layout of algorithms.
+You can use one of the predefined layouts (\textbf{pseudocode}, \textbf{pascal}
+and \textbf{c} and others), with or without modifications, or you can define a
+completely new layout for your specific needs.
+\end{abstract}
+\tableofcontents
+
+
+
+
+\section{Introduction}
+All this has begun in my last year at the university. The only thing that I knew of
+\LaTeX\ was that it exists, and that it is ``good''. I started using it, but I needed to typeset some
+algorithms. So I begun searching for a good algorithmic style, and I have found the \old\ package.
+It was a great joy for me, and I started to use it\dots\
+Well\dots\ Everything went nice, until I needed some block that wasn't defined in there. What to do?
+I was no \LaTeX\ guru, in fact I only knew the few basic macros. But there was no other way, so I opened
+the style file, and I copied one existing block, renamed a few things, and voil\`a! This (and some other
+small changes) where enough for me\dots
+
+One year later --- for one good soul --- I had to make some really big changes on the style. And there on
+a sunny day came the idea. What if I would write some macros to let others create blocks automatically?
+And so I did! Since then the style was completely rewritten\dots\ several times\dots
+
+I had fun writing it, may you have fun using it! I am still no \LaTeX\ guru, so if you are, and you find
+something really ugly in the style, please mail me! All ideas for improvements are welcome!
+
+Thanks go to Benedek Zsuzsa, Ionescu Clara, Sz\H ocs Zolt\'an, Cseke Botond, Kanoc
+%Szotyori Zolt\'an Csaba
+and many-many others. Without them I would have never started or continued \textbf{algorithmicx}.
+
+
+
+
+\section{General informations}
+
+\subsection{The package}
+The package \textbf{algorithmicx} itself doesn't define any algorithmic commands, but gives
+a set of macros to define such a command set. You may use only \textbf{algorithmicx}, and define
+the commands yourself, or you may use one of the predefined command sets.
+
+These predefined command sets (layouts) are:
+\begin{description}
+\item[algpseudocode] has the same look\footnote{almost :-)} as the one defined in the
+\old\ package. The main difference is that while the \old\ package doesn't
+allow you to modify predefined structures, or to create new ones, the \alg\
+package gives you full control over the definitions (ok, there are some
+limitations --- you can not send mail with a, say, \verb:\For: command).
+\item[algcompatible] is fully compatible with the \old\ package, it should be
+used only in old documents.
+\item[algpascal] aims to create a formatted pascal program, it performs
+automatic indentation (!), so you can transform a pascal program into an
+\textbf{algpascal} algorithm description with some basic substitution rules.
+\item[algc] -- yeah, just like the \textbf{algpascal}\dots\ but for c\dots\
+This layout is incomplete.
+\end{description}
+
+To create floating algorithms you will need \verb:algorithm.sty:. This file may or may not be
+included in the \alg\ package. You can find it on CTAN, in the \old\ package.
+
+
+
+\subsection{The algorithmic block}
+Each algorithm begins with the \verb:\begin{algorithmic}[lines]: command, the
+optional \verb:lines: controls the line numbering: $0$ means no line numbering,
+$1$ means number every line, and $n$ means number lines $n$, $2n$, $3n$\dots\ until the
+\verb:\end{algorithmic}: command, witch ends the algorithm.
+
+
+
+\subsection{Simple lines}
+
+A simple line of text is beginned with \verb:\State:. This macro marks the begin of every
+line. You don't need to use \verb:\State: before a command defined in the package, since
+these commands use automatically a new line.
+
+To obtain a line that is not numbered, and not counted when counting the lines for line numbering
+(in case you choose to number lines), use the \verb:Statex: macro. This macro jumps into a new line,
+the line gets no number, and any label will point to the previous numbered line.
+
+We will call \textit{statament\/}s the lines starting with \verb:\State:. The \verb:\Statex:
+lines are not stataments.
+
+
+
+\subsection{Placing comments in sources}\label{Putting comments in sources}
+
+Comments may be placed everywhere in the source using the \verb:\Comment: macro
+(there are no limitations like those in the \old\ package), feel the freedom!
+If you would like to change the form in witch comments are displayed, just
+change the \verb:\algorithmiccomment: macro:
+
+\begin{verbatim}
+\algrenewcommand{\algorithmiccomment}[1]{\hskip3em$\rightarrow$ #1}
+\end{verbatim}
+
+will result:
+\medskip
+\begin{algorithmic}[1]
+\algrenewcommand{\algorithmiccomment}[1]{\hskip3em$\rightarrow$ #1}
+\State $x\gets x+1$\Comment{Here is the new comment}
+\end{algorithmic}
+
+
+
+\subsection{Labels and references}
+Use the \verb:\label: macro, as usual to label a line. When you use \verb:\ref: to reference
+the line, the \verb:\ref: will be subtitued with the corresponding line number. When using the
+\textbf{algorithmicx} package togedher with the \textbf{algorithm} package, then you can label
+both the algorithm and the line, and use the \verb:\algref: macro to reference a given line
+from a given algorithm:
+
+\begin{verbatim}
+\algref{<algorithm>}{<line>}
+\end{verbatim}
+
+\noindent\begin{minipage}[t]{0.5\linewidth}
+\begin{verbatim}
+The \textbf{while} in algorithm
+\ref{euclid} ends in line
+\ref{euclidendwhile}, so
+\algref{euclid}{euclidendwhile}
+is the line we seek.
+\end{verbatim}
+\end{minipage}\begin{minipage}[t]{0.5\linewidth}
+The \textbf{while} in algorithm \ref{euclid} ends in line \ref{euclidendwhile},
+so \algref{euclid}{euclidendwhile} is the line we seek.
+\end{minipage}
+
+\subsection{Breaking up long algorithms}
+
+Sometimes you have a long algorithm that needs to be broken into parts, each on a
+separate float. For this you can use the following:
+
+\begin{description}
+\item[]\verb:\algstore{<savename>}: saves the line number, indentation, open blocks of
+the current algorithm and closes all blocks. If used, then this must be the last command
+before closing the algorithmic block. Each saved algorithm must be continued later in the
+document.
+\item[]\verb:\algstore*{<savename>}: Like the above, but the algorithm must not be continued.
+\item[]\verb:\algrestore{<savename>}: restores the state of the algorithm saved under
+\verb:<savename>: in this algorithmic block. If used, then this must be the first command
+in an algorithmic block. A save is deleted while restoring.
+\item[]\verb:\algrestore*{<savename>}: Like the above, but the save will not be deleted, so it
+can be restored again.
+\end{description}
+
+See example in the \textbf{Examples} section.
+
+\subsection{Multiple layouts in the same document}
+
+You can load multiple algorithmicx layouts in the same document. You can switch between the layouts
+using the \verb:\alglanguage{<layoutname>}: command. After this command all new algorithmic
+environments will use the given layout until the layout is changed again.
+
+
+
+
+\section{The predefined layouts}
+
+\subsection{The \textbf{algpseudocode} layout}\label{algpseudocode}
+\alglanguage{pseudocode}
+If you are familiar with the \old\ package, then you'll find it easy to
+switch. You can use the old algorithms with the \textbf{algcompatible} layout, but please
+use the \textbf{algpseudocode} layout for new algorithms.
+
+To use \textbf{algpseudocode}, simply load \verb:algpseudocode.sty::
+
+\begin{verbatim}
+\usepackage{algpseudocode}
+\end{verbatim}
+
+You don't need to manually load the \textbf{algorithmicx} package, as this is done by
+\textbf{algpseudocode}.
+
+The first algorithm one should write is the first algorithm ever (ok,
+an improved version), \textit{\euk's algorithm}:
+
+\begin{algorithm}[H]
+\caption{\euk's algorithm}\label{euclid}
+\begin{algorithmic}[1]
+\Procedure{\euk}{$a,b$}\Comment{The g.c.d. of a and b}
+ \State $r\gets a\bmod b$
+ \While{$r\not=0$}\Comment{We have the answer if r is 0}
+ \State $a\gets b$
+ \State $b\gets r$
+ \State $r\gets a\bmod b$
+ \EndWhile\label{euclidendwhile}
+ \State \Return $b$\Comment{The gcd is b}
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+
+
+Created with the following source:
+\begin{verbatim}
+\begin{algorithm}
+\caption{Euclid's algorithm}\label{euclid}
+\begin{algorithmic}[1]
+\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
+ \State $r\gets a\bmod b$
+ \While{$r\not=0$}\Comment{We have the answer if r is 0}
+ \State $a\gets b$
+ \State $b\gets r$
+ \State $r\gets a\bmod b$
+ \EndWhile\label{euclidendwhile}
+ \State \textbf{return} $b$\Comment{The gcd is b}
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+\end{verbatim}
+
+The \verb:\State: stands at the beginning of each simple statement; the respective
+statement is put in a new line, with the needed indentation.
+The \verb:\Procedure: \dots\verb:\EndProcedure: and
+\verb:\While: \dots\verb:\EndWhile: blocks (like any block defined in the
+\textbf{algpseudocode} layout) automatically indent their content.
+The indentation of the source doesn't matter, so
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\Repeat
+\Comment{forever}
+\State this\Until{you die.}
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Repeat
+\Comment{forever}
+\State this\Until{you die.}
+\Statex
+\end{algorithmic}
+\AENDSKIP
+
+But, generally, it is a good idea to keep the source indented, since you will find
+errors much easier. And your tex file looks better!
+
+All examples and syntax descriptions will be shown as the previous
+example --- the left side shows the \LaTeX\ input, and the right side
+the algorithm, as it appears in your document. I'm cheating! Don't look
+in the \verb:algorithmicx.tex: file! Believe what the examples state! I may use some
+undocumented and dirty stuff to create all these examples. You might be more
+confused after opening \verb:algorithmicx.tex: as you was before.
+
+In the case of syntax
+descriptions the text between $<$ and $>$ is symbolic, so if you type
+what you see on the left side, you will not get the algorithm on the
+right side. But if you replace the text between $<$ $>$ with a proper piece of
+algorithm, then you will probably get what you want. The parts between
+$[$ and $]$ are optional.
+
+
+\subsubsection{The \textbf{for} block}
+The \textbf{for} block may have one of the forms:
+
+\ASTART
+\begin{verbatim}
+\For{<text>}
+ <body>
+\EndFor
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\For{$<$text$>$}
+ \State $<$body$>$
+\EndFor
+\end{algorithmic}
+\AEND
+
+\ASTART
+\begin{verbatim}
+\ForAll{<text>}
+ <body>
+\EndFor
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\ForAll{$<$text$>$}
+ \State $<$body$>$
+\EndFor
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\For{$i\gets 1, n$}
+ \State $sum\gets sum+i$
+\EndFor
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\For{$i\gets 1, n$}
+ \State $sum\gets sum+i$
+\EndFor
+\Statex
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{while} block}
+The \textbf{while} block has the form:
+
+\ASTART
+\begin{verbatim}
+\While{<text>}
+ <body>
+\EndWhile
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\While{$<$text$>$}
+ \State $<$body$>$
+\EndWhile
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\State $i\gets 1$
+\While{$i\le n$}
+ \State $sum\gets sum+i$
+ \State $i\gets i+1$
+\EndWhile
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\State $i\gets 1$
+\While{$i\le n$}
+ \State $sum\gets sum+i$
+ \State $i\gets i+1$
+\EndWhile
+\Statex
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{repeat} block}
+The \textbf{repeat} block has the form:
+
+\ASTART
+\begin{verbatim}
+\Repeat
+ <body>
+\Until{<text>}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Repeat
+ \State $<$body$>$
+\Until{$<$text$>$}
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\State $i\gets 1$
+\Repeat
+ \State $sum\gets sum+i$
+ \State $i\gets i+1$
+\Until{$i>n$}
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\State $sum\gets 0$
+\State $i\gets 1$
+\Repeat
+ \State $sum\gets sum+i$
+ \State $i\gets i+1$
+\Until{$i>n$}
+\Statex
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{if} block}
+The \textbf{if} block has the form:
+
+\ASTART
+\begin{verbatim}
+\If{<text>}
+ <body>
+[
+\ElsIf{<text>}
+ <body>
+...
+]
+[
+\Else
+ <body>
+]
+\EndIf
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\If{$<$text$>$}
+ \State $<$body$>$
+\Statex [
+\ElsIf{$<$text$>$}
+ \State $<$body$>$
+\Statex \dots
+\Statex ]
+\Statex [
+\Else
+ \State $<$body$>$
+\Statex ]
+\EndIf
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\If{$quality\ge 9$}
+ \State $a\gets perfect$
+\ElsIf{$quality\ge 7$}
+ \State $a\gets good$
+\ElsIf{$quality\ge 5$}
+ \State $a\gets medium$
+\ElsIf{$quality\ge 3$}
+ \State $a\gets bad$
+\Else
+ \State $a\gets unusable$
+\EndIf
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\If{$quality\ge 9$}
+ \State $a\gets perfect$
+\ElsIf{$quality\ge 7$}
+ \State $a\gets good$
+\ElsIf{$quality\ge 5$}
+ \State $a\gets medium$
+\ElsIf{$quality\ge 3$}
+ \State $a\gets bad$
+\Else
+ \State $a\gets unusable$
+\EndIf
+\Statex
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{procedure} block}
+The \textbf{procedure} block has the form:
+
+\ASTART
+\begin{verbatim}
+\Procedure{<name>}{<params>}
+ <body>
+\EndProcedure
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Procedure{$<$name$>$}{$<$params$>$}
+ \State $<$body$>$
+\EndProcedure
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example: See \euk's\ algorithm on page \pageref{euclid}.
+
+\subsubsection{The \textbf{function} block}The
+\textbf{function} block has the same syntax as the \textbf{procedure} block:
+
+\ASTART
+\begin{verbatim}
+\Function{<name>}{<params>}
+ <body>
+\EndFunction
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Function{$<$name$>$}{$<$params$>$}
+ \State $<$body$>$
+\EndFunction
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{loop} block}
+The \textbf{loop} block has the form:
+
+\ASTART
+\begin{verbatim}
+\Loop
+ <body>
+\EndLoop
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Loop
+ \State $<$body$>$
+\EndLoop
+\end{algorithmic}
+\AEND
+
+\subsubsection{Other commands in this layout}
+
+The starting conditions for the algorithm can be described with the \textbf{require}
+instruction, and its result with the \textbf{ensure} instruction.
+
+A procedure call can be formatted with \verb:\Call:.
+
+\ASTART
+\begin{verbatim}
+\Require something
+\Ensure something
+\Statex
+\State \Call{Create}{10}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Require something
+\Ensure something
+\Statex
+\State \Call{Create}{10}
+\end{algorithmic}
+\AENDSKIP
+
+\noindent Example:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\Require $x\ge5$
+\Ensure $x\le-5$
+\Statex
+\While{$x>-5$}
+ \State $x\gets x-1$
+\EndWhile
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Require $x\ge5$
+\Ensure $x\le-5$
+\Statex
+\While{$x>-5$}
+ \State $x\gets x-1$
+\EndWhile
+\Statex
+\end{algorithmic}
+\AEND
+
+
+
+
+
+\subsubsection{Package options}\label{algpseudocode package options}
+
+The \texttt{algpseudocode} package supports the following options:
+
+\begin{description}
+\item[compatible/noncompatible]\ \textit{Obsolote, use the algcompatible layout instead.}\\
+If you would like to use old
+algorithms, written with the \old\ package without (too much)
+modification, then use the \textbf{compatible} option. This option
+defines the uppercase version of the commands. Note that you still need
+to remove the \verb:[...]: comments (these comments appeared due to some
+limitations in the \old\ package, these limitations and comments are gone now).
+The default \textbf{noncompatible} does not define the all uppercase
+commands.
+\item[noend/end]\ \\With \textbf{noend} specified all \textbf{end \dots}
+lines are omitted. You get a somewhat smaller algorithm, and the ugly
+feeling, that something is missing\dots{} The \textbf{end} value is the
+default, it means, that all \textbf{end \dots} lines are in their right
+place.
+\end{description}
+
+
+\subsubsection{Changing command names}
+One common thing for a pseudocode is to change the command names. Many people
+use many different kind of pseudocode command names. In \textbf{algpseudocode}
+all keywords are declared as \verb:\algorithmic<keyword>:. You can change them
+to output the text you need:
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algrenewcommand\algorithmicwhile{\textbf{am\'\i g}}
+\algrenewcommand\algorithmicdo{\textbf{v\'egezd el}}
+\algrenewcommand\algorithmicend{\textbf{v\'ege}}
+\begin{algorithmic}[1]
+\State $x \gets 1$
+\While{$x < 10$}
+ \State $x \gets x + 1$
+\EndWhile
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+\begin{algorithmic}[1]
+\algrenewcommand\algorithmicwhile{\textbf{am\'\i g}}
+\algrenewcommand\algorithmicdo{\textbf{v\'egezd el}}
+\algrenewcommand\algorithmicend{\textbf{v\'ege}}
+\State $x \gets 1$
+\While{$x < 10$}
+ \State $x \gets x + 1$
+\EndWhile
+\Statex
+\end{algorithmic}
+\end{minipage}\bigskip
+
+In some cases you may need to change even more (in the above example
+\textbf{am\'\i g} and \textbf{v\'ege} should be interchanged in the \verb:\EndWhile:
+text). Maybe the number of the parameters taken by some commands must be changed too.
+this can be done with the command text customizing macros (see section
+\ref{custom text}). Here I'll give only some examples of the most common usage:
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algrenewcommand\algorithmicwhile{\textbf{am\'\i g}}
+\algrenewcommand\algorithmicdo{\textbf{v\'egezd el}}
+\algrenewcommand\algorithmicend{\textbf{v\'ege}}
+\algrenewtext{EndWhile}{\algorithmicwhile\ \algorithmicend}
+\begin{algorithmic}[1]
+\State $x \gets 1$
+\While{$x < 10$}
+ \State $x \gets x - 1$
+\EndWhile
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+\begin{algorithmic}[1]
+\algrenewcommand\algorithmicwhile{\textbf{am\'\i g}}
+\algrenewcommand\algorithmicdo{\textbf{v\'egezd el}}
+\algrenewcommand\algorithmicend{\textbf{v\'ege}}
+\algrenewtext{EndWhile}{\algorithmicwhile\ \algorithmicend}
+\State $x \gets 1$
+\While{$x < 10$}
+ \State $x \gets x - 1$
+\EndWhile
+\Statex
+\end{algorithmic}
+\end{minipage}
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algnewcommand\algorithmicto{\textbf{to}}
+\algrenewtext{For}[3]%
+ {\algorithmicfor\ #1 \gets #2 \algorithmicto\ #3 \algorithmicdo}
+\begin{algorithmic}[1]
+\State $p \gets 1$
+\For{i}{1}{n}
+ \State $p \gets p * i$
+\EndFor
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+\begin{algorithmic}[1]
+\algnewcommand\algorithmicto{\textbf{to}}
+\algrenewtext{For}[3]%
+ {\algorithmicfor\ $#1 \gets #2$ \algorithmicto\ $#3$ \algorithmicdo}
+\State $p \gets 1$
+\For{i}{1}{n}
+ \State $p \gets p * i$
+\EndFor
+\Statex
+\end{algorithmic}
+\end{minipage}\bigskip
+
+You could create a translation package, that included after the \textbf{algpseudocode}
+package translates the keywords to the language you need.
+
+
+
+
+
+\subsection{The \textbf{algpascal} layout}
+\alglanguage{pascal}
+
+
+
+The most important feature of the \textbf{algpascal} layout is that
+\textit{it performs automatically the block indentation}. In
+section \ref{algorithmicx} you will see how to define such
+automatically indented loops. Here is an example to demonstrate this
+feature:
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\Begin
+\State $sum:=0$;
+\For{i=1}{n}\Comment{sum(i)}
+ \State $sum:=sum+i$;
+\State writeln($sum$);
+\End.
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Begin
+\State $sum:=0$;
+\For{i=1}{n}\Comment{sum(i)}
+ \State $sum:=sum+i$;
+\State writeln($sum$);
+\End.
+\Statex
+\end{algorithmic}
+\AENDSKIP
+
+Note, that the \verb:\For: is not closed explicitly, its end is
+detected automatically. Again, the indentation in the source doesn't
+affect the output.
+In this layout every parameter passed to a command is put in
+mathematical mode.
+
+\subsubsection{The \textbf{begin} \dots{} \textbf{end} block}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\Begin
+ <body>
+\End
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Begin
+ \State $<$body$>$
+\End
+\end{algorithmic}
+\AENDSKIP
+
+The \verb:\Begin: \dots{} \verb:\End: block and the
+\verb:\Repeat: \dots{} \verb:\Until: block are the only blocks in
+the \textbf{algpascal} style (instead of \verb:\Begin: you may write
+\verb:\Asm:). This means, that every other loop is ended automatically
+after the following command (another loop, or a block).
+
+
+
+\subsubsection{The \textbf{for} loop}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\For{<assign>}{<expr>}
+ <command>
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\For{<$\relax$assign$\relax$>}{<$\relax$expr$\relax$>}
+ \State $<$command$>$
+\end{algorithmic}
+\AENDSKIP
+
+The \textbf{For} loop (as all other loops) ends after the following command (a block counts
+also as a single command).
+
+\ASTART
+\begin{verbatim}
+\begin{algorithmic}[1]
+\Begin
+ \State $sum:=0$;
+ \State $prod:=1$;
+ \For{i:=1}{10}
+ \Begin
+ \State $sum:=sum+i$;
+ \State $prod:=prod*i$;
+ \End
+\End.
+\end{algorithmic}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Begin
+ \State $sum:=0$;
+ \State $prod:=1$;
+ \For{i:=1}{10}
+ \Begin
+ \State $sum:=sum+i$;
+ \State $prod:=prod*i$;
+ \End
+\End.
+\Statex
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{while} loop}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\While{<expression>}
+ <command>
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\While{<$\relax$expression$\relax$>}
+ \State $<$command$>$
+\end{algorithmic}
+\AEND
+
+
+\subsubsection{The \textbf{repeat}\dots\ \textbf{until} block}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\Repeat
+ <body>
+\Until{<expression>}
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Repeat
+ \State $<$body$>$
+\Until{<$\relax$expression$\relax$>}
+\end{algorithmic}
+\AEND
+
+\subsubsection{The \textbf{if} command}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\If{<expression>}
+ <command>
+[
+\Else
+ <command>
+]
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\If{<$\relax$expression$\relax$>}
+ \State $<$command$>$
+\Statex \hskip-\algorithmicindent\hskip-\algorithmicindent[
+\Else
+ \State $<$command$>$
+\Statex \hskip-\algorithmicindent\hskip-\algorithmicindent]
+\end{algorithmic}
+\AENDSKIP
+
+Every \verb:\Else: matches the nearest \verb:\If:.
+
+\subsubsection{The \textbf{procedure} command}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\Procedure <some text>
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Procedure $<$some text$>$
+\end{algorithmic}
+\AENDSKIP
+
+\verb:\Procedure: just writes the ``procedure'' word on a new
+line... You will probably put a \verb:\Begin:\dots\ \verb:\End:
+block after it.
+
+
+\subsubsection{The \textbf{function} command}
+
+\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\Function<some text>
+\end{verbatim}
+\ACONTINUE
+\begin{algorithmic}[1]
+\Function $<$some text$>$
+\end{algorithmic}
+\AENDSKIP
+
+Just like \textbf{Procedure}.
+
+
+
+\subsection{The \textbf{algc} layout}
+
+Sorry, the \textbf{algc} layout is unfinished.
+The commands defined are:
+
+\begin{itemize}
+\item\verb:\{:\dots\ \verb:\}: block
+\item\verb:\For: with 3 params
+\item\verb:\If: with 1 param
+\item\verb:\Else: with no params
+\item\verb:\While: with 1 param
+\item\verb:\Do: with no params
+\item\verb:\Function: with 3 params
+\item\verb:\Return: with no params
+\end{itemize}
+
+
+
+
+\section{Custom algorithmic blocks}\label{algorithmicx}
+\alglanguage{default}
+
+
+
+\subsection{Blocks and loops}
+
+Most of the environments defined in the standard layouts (and most probably
+the ones you will define) are divided in two categories:
+
+\begin{description}
+\item[Blocks] are the environments witch contain an arbitrary number of
+commands or nested blocks. Each block has a name, begins with a starting command
+and ends with an ending command. The commands in a block are
+indented by \verb:\algorithmicindent: (or another amount).
+
+If your algorithm ends without closing all blocks, the \alg\ package gives
+you a nice error. So be good, and close them all!
+
+Blocks are all the environments defined in the \verb:algpseudocode:
+package, the \verb:\Begin: \dots \verb:\End: block in the
+\verb:algpascal: package, and some other ones.
+\item[Loops] (Let us call them loops\dots) The loops are environments
+that include only one command, loop or block; a loop is closed
+automatically after this command. So loops have no ending commands. If
+your algorithm (or a block) ends before the single command of a loop,
+then this is considered an empty command, and the loop is closed. Feel
+free to leave open loops at the end of blocks!
+
+Loops are most of the environments in the \verb:algpascal: and
+\verb:algc: packages.
+\end{description}
+
+For some rare constructions you can create mixtures of the two
+environments (see section \ref{setblock}).
+Each block and loop may be continued with another one (like the \verb:If:
+with \verb:Else:).
+
+\subsection{Defining blocks}\label{defblocks}
+
+There are several commands to define blocks. The difference is in what is defined
+beyond the block. The macro \verb:\algblock: defines a new block with starting and
+ending entity.
+
+\begin{verbatim}
+\algblock[<block>]{<start>}{<end>}
+\end{verbatim}
+
+The defined commands have no parameters, and the text displayed by them is
+\verb:\textbf{<start>}: and \verb:\textbf{<end>}:. You can change these texts later
+(\ref{custom text}).
+
+With \verb:\algblockdefx: you can give the text to be output by the starting
+and ending command and the number of parameters for these commands. In the text
+reference with \#$n$ to the parameter number $n$. Observe that the text
+is given in the form you define or redefine macros, and really, this is what happens.
+
+\begin{verbatim}
+\algblockdefx[<block>]{<start>}{<end>}
+ [<startparamcount>][<default value>]{<start text>}
+ [<endparamcount>][<default value>]{<end text>}
+\end{verbatim}
+
+This defines a new block called \verb:<block>:, \verb:<start>: opens the block,
+\verb:<end>: closes the block,
+\verb:<start>: displays \verb:<start text>:, and has \verb:<startparamcount>: parameters,
+\verb:<end>: displays \verb:<end text>:, and has \verb:<endparamcount>: parameters.
+For both \verb:<start>: and \verb:<end>:, if
+\verb:<default value>: is given, then the first parameter is optional, and its default value
+is \verb:<default value>:.
+
+If you want to display different text (and to have a different number of parameters)
+for \verb:<end>: at the end of different blocks, then use
+the \verb:\algblockx: macro. Note that it is not possible to display different starting texts,
+since it is not possible to start different blocks with the same command. The \verb:<start text>:
+defined with \verb:\algblockx: has the same behavior as if defined with \verb:\algblockdefx:. All ending commands
+not defined with \verb:\algblockx: will display the same text, and the ones defined with this
+macro will display the different texts you specified.
+
+\begin{verbatim}
+\algblockx[<block>]{<start>}{<end>}
+ [<startparamcount>][<default value>]{<start text>}
+ [<endparamcount>][<default value>]{<end text>}
+\end{verbatim}
+
+If in the above definitions the \verb:<block>: is missing, then the name of the starting command
+is used as block name. If a block with the given name
+already exists, these macros don't define a new block, instead this it will be used the defined
+block. If \verb:<start>: or \verb:<end>: is empty, then
+the definition does not define a new starting/ending command for the block, and then the
+respective text must be missing from the definition. You may have more starting and ending commands
+for one block. If the block name is missing, then a starting command must be given.
+
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algblock[Name]{Start}{End}
+\algblockdefx[NAME]{START}{END}%
+ [2][Unknown]{Start #1(#2)}%
+ {Ending}
+\algblockdefx[NAME]{}{OTHEREND}%
+ [1]{Until (#1)}
+\begin{algorithmic}[1]
+\Start
+ \Start
+ \START[One]{x}
+ \END
+ \START{0}
+ \OTHEREND{\texttt{True}}
+ \End
+ \Start
+ \End
+\End
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+{
+\algblock[Name]{Start}{End}
+\algblockdefx[NAME]{START}{END}%
+ [2][Unknown]{Start #1(#2)}%
+ {Ending}
+\algblockdefx[NAME]{}{OTHEREND}%
+ [1]{Until (#1)}
+\begin{algorithmic}[1]
+\Start
+ \Start
+ \START[One]{x}
+ \END
+ \START{0}
+ \OTHEREND{\texttt{True}}
+ \End
+ \Start
+ \End
+\End
+\Statex
+\end{algorithmic}
+}
+\end{minipage}
+
+\subsection{Defining loops}
+
+The loop defining macros are similar to the block defining macros. A loop has no ending command
+and ends after the first state, block or loop that follows the loop.
+Since loops have no ending command, the macro \verb:\algloopx: would not have mutch sense.
+The loop defining macros are:
+
+\begin{verbatim}
+\algloop[<loop>]{<start>}
+
+\algloopdefx[<loop>]{<start>}
+ [<startparamcount>][<default value>]{<start text>}
+\end{verbatim}
+
+Both create a loop named \verb:<loop>: with the starting command \verb:<start>:.
+The second also sets the number of parameters, and the text displayed by the starting command.
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algloop{For}
+\algloopdefx{If}[1]{\textbf{If} #1 \textbf{then}}
+\algblock{Begin}{End}
+\begin{algorithmic}[1]
+\For
+ \Begin
+ \If{$a < b$}
+ \For
+ \Begin
+ \End
+ \Begin
+ \End
+ \End
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+{
+\algloop{For}
+\algloopdefx{If}%
+ [1]{\textbf{If} #1 \textbf{then}}
+\algblock{Begin}{End}
+\begin{algorithmic}[1]
+\For
+ \Begin
+ \If{$a < b$}
+ \For
+ \Begin
+ \End
+ \Begin
+ \End
+ \End
+\Statex
+\end{algorithmic}
+}
+\end{minipage}
+
+\subsection{Continuing blocks and loops}
+
+For each block/loop you may give commands that close the block or loop and open another
+block or loop. A good example for this is the \textbf{if}~\dots~\textbf{then}~\dots~\textbf{else}
+construct. The new block or loop can be closed or continued, as any other blocks and loops.
+
+To create a continuing block use one of the following:
+
+\begin{verbatim}
+\algcblock[<new block>]{<old block>}{<continue>}{<end>}
+
+\algcblockdefx[<new block>]{<old block>}{<continue>}{<end>}
+ [<continueparamcount>][<default value>]{<continue text>}
+ [<endparamcount>][<default value>]{<end text>}
+
+\algcblockx[<new block>]{<old block>}{<continue>}{<end>}
+ [<continueparamcount>][<default value>]{<continue text>}
+ [<endparamcount>][<default value>]{<end text>}
+\end{verbatim}
+
+All three macros define a new block named \verb:<new block>:. If \verb:<new block>: is not given,
+then \verb:<continue>: is used as the new block name. It is not allowed to have both
+\verb:<new block>: missing, and \verb:<continue>: empty. The \verb:<continue>: command ends the
+\verb:<old block>: block/loop and opens the \verb:<new block>: block. Since \verb:<continue>: may
+end different blocks and loops, it can have different text
+at the end of the different blocks/loops. If the \verb:<continue>: command doesn't find an
+\verb:<old block>: to close, then an error is reported.
+
+Create continuing loops with the followings:
+
+\begin{verbatim}
+\algcloop[<new loop>]{<old block>}{<continue>}
+
+\algcloopdefx[<new loop>]{<old block>}{<continue>}
+ [<continueparamcount>][<default value>]{<continue text>}
+
+\algcloopx[<new loop>]{<old block>}{<continue>}
+ [<continueparamcount>][<default value>]{<continue text>}
+\end{verbatim}
+
+These macros create a continuing loop, the \verb:<continue>: closes the \verb:<old block>:
+block/loop, and opens a \verb:<new loop>: loop.
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algblock{If}{EndIf}
+\algcblock[If]{If}{ElsIf}{EndIf}
+\algcblock{If}{Else}{EndIf}
+\algcblockdefx[Strange]{If}{Eeee}{Oooo}
+ [1]{\textbf{Eeee} "#1"}
+ {\textbf{Wuuuups\dots}}
+\begin{algorithmic}[1]
+\If
+ \If
+ \ElsIf
+ \ElsIf
+ \If
+ \ElsIf
+ \Else
+ \EndIf
+ \EndIf
+ \If
+ \EndIf
+\Eeee{Creep}
+\Oooo
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+{
+\algblock{If}{EndIf}
+\algcblock[If]{If}{ElsIf}{EndIf}
+\algcblock{If}{Else}{EndIf}
+\algcblockdefx[Strange]{If}{Eeee}{Oooo}
+ [1]{\textbf{Eeee} "#1"}
+ {\textbf{Wuuuups\dots}}
+\begin{algorithmic}[1]
+\If
+ \If
+ \ElsIf
+ \ElsIf
+ \If
+ \ElsIf
+ \Else
+ \EndIf
+ \EndIf
+ \If
+ \EndIf
+\Eeee{Creep}
+\Oooo
+\Statex
+\end{algorithmic}
+}
+\end{minipage}\bigskip
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algloop{If}
+\algcloop{If}{Else}
+\algblock{Begin}{End}
+\begin{algorithmic}[1]
+\If
+ \Begin
+ \End
+\Else
+ \If
+ \Begin
+ \End
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+{
+\algloop{If}
+\algcloop{If}{Else}
+\algblock{Begin}{End}
+\begin{algorithmic}[1]
+\If
+ \Begin
+ \End
+\Else
+ \If
+ \Begin
+ \End
+\Statex
+\end{algorithmic}
+}
+\end{minipage}\bigskip
+
+
+
+\subsection{Even more customisation}\label{setblock}
+
+With the following macros you can give the indentation used by the new block (or loop),
+and the number of stataments after that the "block" is automatically closed. This value is $\infty$
+for blocks, 1 for loops, and 0 for stataments. There is a special value, 65535, meaning that the
+defined "block" does not end automatically, but if it is enclosed in a block, then the ending
+command of the block closes this "block" as well.
+
+\begin{verbatim}
+\algsetblock[<block>]{<start>}{<end>}
+ {<lifetime>}{<indent>}
+
+\algsetblockdefx[<block>]{<start>}{<end>}
+ {<lifetime>}{<indent>}
+ [<startparamcount>][<default value>]{<start text>}
+ [<endparamcount>][<default value>]{<end text>}
+
+\algsetblockx[<block>]{<start>}{<end>}
+ {<lifetime>}{<indent>}
+ [<startparamcount>][<default value>]{<start text>}
+ [<endparamcount>][<default value>]{<end text>}
+
+\algcsetblock[<new block>]{<old block>}{<continue>}{<end>}
+ {<lifetime>}{<indent>}
+
+\algcsetblockdefx[<new block>]{<old block>}{<continue>}{<stop>}
+ {<lifetime>}{<indent>}
+ [<continueparamcount>][<default value>]{<continue text>}
+ [<endparamcount>][<default value>]{<end text>}
+
+\algcsetblockx[<new block>]{<old block>}{<continue>}{<stop>}
+ {<lifetime>}{<indent>}
+ [<continueparamcount>][<default value>]{<continue text>}
+ [<endparamcount>][<default value>]{<end text>}
+\end{verbatim}
+
+The \verb:<lifetime>: is the number of stataments after that the block is closed. An empty
+\verb:<lifetime>: field means $\infty$. The \verb:<indent>: gives the indentation of the block.
+Leave this field empty for the default indentation. The rest of the parameters has the same
+function as for the previous macros.
+
+\bigskip\noindent\begin{minipage}[b]{0.5\linewidth}
+\begin{verbatim}
+\algsetblock[Name]{Start}{Stop}{3}{1cm}
+\algsetcblock[CName]{Name}{CStart}{CStop}{2}{2cm}
+\begin{algorithmic}[1]
+\Start
+ \State 1
+ \State 2
+ \State 3
+\State 4
+\Start
+ \State 1
+\Stop
+\State 2
+\Start
+ \State 1
+\CStart
+ \State 1
+ \State 2
+\State 3
+\Start
+ \State 1
+\CStart
+ \State 1
+\CStop
+\end{algorithmic}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}[b]{0.5\linewidth}
+{
+\algsetblock[Name]{Start}{Stop}{3}{1cm}
+\algsetcblock[CName]{Name}{CStart}{CStop}{2}{2cm}
+\begin{algorithmic}[1]
+\Start
+ \State 1
+ \State 2
+ \State 3
+\State 4
+\Start
+ \State 1
+\Stop
+\State 2
+\Start
+ \State 1
+\CStart
+ \State 1
+ \State 2
+\State 3
+\Start
+ \State 1
+\CStart
+ \State 1
+\CStop
+\Statex
+\end{algorithmic}
+}
+\end{minipage}\bigskip
+
+The created environments behave as follows:
+
+\begin{itemize}
+\item It starts with \verb:\Start:. The nested environments are
+indented by 1 cm.
+\item If it is followed by at least 3 environments (stataments), then it closes
+automatically after the third one.
+\item If you put a \verb:\Stop: before the automatic closure, then this
+\verb:\Stop: closes the environment. \verb:CStart: closes a block called \verb:Name:
+and opens a new one called \verb:CName: and having an indentaion of 2 cm.
+\item \verb:CName: can be closed with \verb:CStop: or it is closed automatically after
+2 environments.
+\end{itemize}
+
+
+
+\subsection{Parameters, custom text}\label{custom text}
+
+With \verb:\algrenewtext: you can change the number of parameters, and the text displayed by the
+commands. With \verb:algnotext: you can makes the vole output line disappear, but
+it works only for ending commands, for beginning commands you will get an incorrect output.
+
+\begin{verbatim}
+\algrenewcommand[<block>]{<command>}
+ [<paramcount>][<default value>]{<text>}
+
+\algnotext[<block>]{<ending command>}
+\end{verbatim}
+
+If \verb:<block>: is missing, then the default text is changed, and if \verb:<block>: is given,
+then the text displayed at the end of \verb:<block>: is changed.
+
+To make a command output the default text at the end of a block (say, you have changed the text
+for this block), use \verb:\algdefaulttext:.
+
+\begin{verbatim}
+\algdefaulttext[<block>]{<command>}
+\end{verbatim}
+
+If the \verb:<block>: is missing, than the default text itself will be set to the default value
+(this is \verb:\textbf{<command>}:).
+
+
+
+\subsection{The ONE defining macro}
+
+All block and loop defining macros call the same macro. You may use this macro to gain a
+better acces to what will be defined. This macro is \verb:\algdef:.
+
+\begin{verbatim}
+\algdef{<flags>}...
+\end{verbatim}
+
+Depending on the flags the macro can have many forms.
+
+\begin{center}
+\begin{tabular}{|c|l|}
+\hline
+\textbf{Flag}&\textbf{Meaning}\\
+\hline
+s&starting command, without text\\
+S&starting command with text\\
+c&continuing command, without text\\
+C&continuing command, with default text\\
+xC&continuing command, with block specific text\\
+\hline
+e&ending command, without text\\
+E&continuing command, with default text\\
+xE&continuing command, with block specific text\\
+N&ending command, with default "no text"\\
+xN&ending command, with no text for this block\\
+\hline
+b&block(default)\\
+l&loop\\
+L&loop closes after the given number of stataments\\
+\hline
+i&indentation specified\\
+\hline
+\end{tabular}
+\end{center}
+
+The \verb:<new block>: may be given for any combination of flags, and it is not allowed to have
+\verb:<new block>: missing and \verb:<start>: missing/empty.
+For c, C, xC an old block is expected. For s, S, c, C, xC the \verb:<start>: must be given.
+For e, E, xE, N, xN the \verb:<end>: must be given. For L the \verb:<lifetime>: must be given.
+For i the \verb:<indent>: must be given.
+For S, C, xC the starting text and related infos must be given. For E, xE the ending text must be given.
+For each combination of flags give only the needed parameters, in the following order:
+
+\begin{verbatim}
+\algdef{<flags>}[<new block>]{<old block>}{<start>}{<end>}
+ {<lifetime>}{<indent>}
+ [<startparamcount>][<default value>]{<start text>}
+ [<endparamcount>][<default value>]{<end text>}
+\end{verbatim}
+
+The block and loop defining macros call \verb:\algdef: with the following flags:
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+\textbf{Macro}&\textbf{Meaning}\\
+\hline
+\verb:\algblock:&\verb:\algdef{se}:\\
+\hline
+\verb:\algcblock:&\verb:\algdef{ce}:\\
+\hline
+\verb:\algloop:&\verb:\algdef{sl}:\\
+\hline
+\verb:\algcloop:&\verb:\algdef{cl}:\\
+\hline
+\verb:\algsetblock:&\verb:\algdef{seLi}:\\
+\hline
+\verb:\algsetcblock:&\verb:\algdef{ceLi}:\\
+\hline
+\verb:\algblockx:&\verb:\algdef{SxE}:\\
+\hline
+\verb:\algblockdefx:&\verb:\algdef{SE}:\\
+\hline
+\verb:\algcblockx:&\verb:\algdef{CxE}:\\
+\hline
+\verb:\algcblockdefx:&\verb:\algdef{CE}:\\
+\hline
+\verb:\algsetblockx:&\verb:\algdef{SxELi}:\\
+\hline
+\verb:\algsetblockdefx:&\verb:\algdef{SELi}:\\
+\hline
+\verb:\algsetcblockx:&\verb:\algdef{CxELi}:\\
+\hline
+\verb:\algsetcblockdefx:&\verb:\algdef{CELi}:\\
+\hline
+\verb:\algloopdefx:&\verb:\algdef{Sl}:\\
+\hline
+\verb:\algcloopx:&\verb:\algdef{Cxl}:\\
+\hline
+\verb:\algcloopdefx:&\verb:\algdef{Cl}:\\
+\hline
+\end{tabular}
+\end{center}
+
+
+\vfill
+\section{Examples}
+\subsection{A full example using \textbf{algpseudocode}}
+
+
+\begin{verbatim}
+\documentclass{article}
+\usepackage{algorithm}
+\usepackage{algpseudocode}
+\begin{document}
+\begin{algorithm}
+\caption{The Bellman-Kalaba algorithm}
+\begin{algorithmic}[1]
+\Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$}
+ \ForAll {$v \in V(G)$}
+ \State $l(v) \leftarrow \infty$
+ \EndFor
+ \State $l(u) \leftarrow 0$
+ \Repeat
+ \For {$i \leftarrow 1, n$}
+ \State $min \leftarrow l(v_i)$
+ \For {$j \leftarrow 1, n$}
+ \If {$min > e(v_i, v_j) + l(v_j)$}
+ \State $min \leftarrow e(v_i, v_j) + l(v_j)$
+ \State $p(i) \leftarrow v_j$
+ \EndIf
+ \EndFor
+ \State $l'(i) \leftarrow min$
+ \EndFor
+ \State $changed \leftarrow l \not= l'$
+ \State $l \leftarrow l'$
+ \Until{$\neg changed$}
+\EndProcedure
+\Statex
+\Procedure {FindPathBK}{$v$, $u$, $p$}
+ \If {$v = u$}
+ \State \textbf{Write} $v$
+ \Else
+ \State $w \leftarrow v$
+ \While {$w \not= u$}
+ \State \textbf{Write} $w$
+ \State $w \leftarrow p(w)$
+ \EndWhile
+ \EndIf
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+\end{document}
+\end{verbatim}
+\eject
+
+
+\alglanguage{pseudocode}
+\begin{algorithm}[h]
+\caption{The Bellman-Kalaba algorithm}
+\begin{algorithmic}[1]
+\Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$}
+ \ForAll {$v \in V(G)$}
+ \State $l(v) \leftarrow \infty$
+ \EndFor
+ \State $l(u) \leftarrow 0$
+ \Repeat
+ \For {$i \leftarrow 1, n$}
+ \State $min \leftarrow l(v_i)$
+ \For {$j \leftarrow 1, n$}
+ \If {$min > e(v_i, v_j) + l(v_j)$}
+ \State $min \leftarrow e(v_i, v_j) + l(v_j)$
+ \State $p(i) \leftarrow v_j$
+ \EndIf
+ \EndFor
+ \State $l'(i) \leftarrow min$
+ \EndFor
+ \State $changed \leftarrow l \not= l'$
+ \State $l \leftarrow l'$
+ \Until{$\neg changed$}
+\EndProcedure
+\Statex
+\Procedure {FindPathBK}{$v$, $u$, $p$}
+ \If {$v = u$}
+ \State \textbf{Write} $v$
+ \Else
+ \State $w \leftarrow v$
+ \While {$w \not= u$}
+ \State \textbf{Write} $w$
+ \State $w \leftarrow p(w)$
+ \EndWhile
+ \EndIf
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+\eject
+
+
+
+
+\subsection{Breaking up an algorithm}
+
+
+\begin{verbatim}
+\documentclass{article}
+\usepackage{algorithm}
+\usepackage{algpseudocode}
+\begin{document}
+\begin{algorithm}
+\caption{Part 1}
+\begin{algorithmic}[1]
+\Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$}
+ \ForAll {$v \in V(G)$}
+ \State $l(v) \leftarrow \infty$
+ \EndFor
+ \State $l(u) \leftarrow 0$
+ \Repeat
+ \For {$i \leftarrow 1, n$}
+ \State $min \leftarrow l(v_i)$
+ \For {$j \leftarrow 1, n$}
+ \If {$min > e(v_i, v_j) + l(v_j)$}
+ \State $min \leftarrow e(v_i, v_j) + l(v_j)$
+ \State \Comment For some reason we need to break here!
+\algstore{bkbreak}
+\end{algorithmic}
+\end{algorithm}
+
+And we need to put some additional text between\dots
+
+\begin{algorithm}[h]
+\caption{Part 2}
+\begin{algorithmic}[1]
+\algrestore{bkbreak}
+ \State $p(i) \leftarrow v_j$
+ \EndIf
+ \EndFor
+ \State $l'(i) \leftarrow min$
+ \EndFor
+ \State $changed \leftarrow l \not= l'$
+ \State $l \leftarrow l'$
+ \Until{$\neg changed$}
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+\end{document}
+\end{verbatim}
+\eject
+
+
+\alglanguage{pseudocode}
+\begin{algorithm}[h]
+\caption{Part 1}
+\begin{algorithmic}[1]
+\Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$}
+ \ForAll {$v \in V(G)$}
+ \State $l(v) \leftarrow \infty$
+ \EndFor
+ \State $l(u) \leftarrow 0$
+ \Repeat
+ \For {$i \leftarrow 1, n$}
+ \State $min \leftarrow l(v_i)$
+ \For {$j \leftarrow 1, n$}
+ \If {$min > e(v_i, v_j) + l(v_j)$}
+ \State $min \leftarrow e(v_i, v_j) + l(v_j)$
+ \State \Comment For some reason we need to break here!
+\algstore{bkbreak}
+\end{algorithmic}
+\end{algorithm}
+
+And we need to put some additional text between\dots
+
+\begin{algorithm}[h]
+\caption{Part 2}
+\begin{algorithmic}[1]
+\algrestore{bkbreak}
+ \State $p(i) \leftarrow v_j$
+ \EndIf
+ \EndFor
+ \State $l'(i) \leftarrow min$
+ \EndFor
+ \State $changed \leftarrow l \not= l'$
+ \State $l \leftarrow l'$
+ \Until{$\neg changed$}
+\EndProcedure
+\end{algorithmic}
+\end{algorithm}
+\eject
+
+
+
+
+\subsection{Using multiple layouts}
+
+
+\begin{verbatim}
+\documentclass{article}
+\usepackage{algorithm}
+\usepackage{algpseudocode}
+\usepackage{algpascal}
+\begin{document}
+
+\alglanguage{pseudocode}
+\begin{algorithm}
+\caption{A small pseudocode}
+\begin{algorithmic}[1]
+\State $s \gets 0$
+\State $p \gets 0$
+\For{$i \gets 1,\, 10$}
+ \State $s \gets s + i$
+ \State $p \gets p + s$
+\EndFor
+\end{algorithmic}
+\end{algorithm}
+
+\alglanguage{pascal}
+\begin{algorithm}
+\caption{The pascal version}
+\begin{algorithmic}[1]
+\State $s := 0$
+\State $p := 0$
+\For{i = 1}{10}
+ \Begin
+ \State $s := s + i$
+ \State $p := p + s$
+ \End
+\end{algorithmic}
+\end{algorithm}
+
+\end{document}
+\end{verbatim}
+\eject
+
+
+\alglanguage{pseudocode}
+\begin{algorithm}
+\caption{A small pseudocode}
+\begin{algorithmic}[1]
+\State $s \gets 0$
+\State $p \gets 0$
+\For{$i \gets 1,\, 10$}
+ \State $s \gets s + i$
+ \State $p \gets p + s$
+\EndFor
+\end{algorithmic}
+\end{algorithm}
+
+\alglanguage{pascal}
+\begin{algorithm}
+\caption{The pascal version}
+\begin{algorithmic}[1]
+\State $s := 0$
+\State $p := 0$
+\For{i = 1}{10}
+ \Begin
+ \State $s := s + i$
+ \State $p := p + s$
+ \End
+\end{algorithmic}
+\end{algorithm}
+\eject
+
+
+
+\section{Bugs}
+
+If you have a question or find a bug you can contact me on:
+
+\medskip
+\textbf{szaszjanos@users.sourceforge.net}
+
+\medskip
+\noindent If possible, please create a small \LaTeX{} example related to your problem.
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/algorithmicx/algpascal.sty b/macros/latex/contrib/algorithmicx/algpascal.sty
new file mode 100644
index 0000000000..0c9a57779f
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algpascal.sty
@@ -0,0 +1,44 @@
+% A PASCAL LIKE ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@sourceforge.net
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{algpascal}%
+\RequirePackage{ifthen}%
+\RequirePackage{algorithmicx}%
+\typeout{Document Style - pascal environments for the `algorithmicx' style}%
+%
+\ProcessOptions%
+%
+%
+% *** DECLARATIONS ***
+%
+%
+\algnewlanguage{pascal}%
+\alglanguage{pascal}%
+%
+% *** KEYWORDS ***
+%
+\algnewcommand\textkeyword{\textbf}%
+%
+% *** DECLARED BLOCKS AND LOOPS ***
+%
+\algdef{SEi}{Begin}{End}{0cm}{\textkeyword{begin}}{\textkeyword{end}}%
+\algdef{Sei}{Asm}{End}{0cm}{\textkeyword{asm}}%
+%
+\algdef{lS}{For}[2]{\textkeyword{for} \(#1\) \textkeyword{to} \(#2\) \textkeyword{do}}%
+\algdef{lS}{While}[1]{\textkeyword{while} \(#1\) \textkeyword{do}}%
+\algdef{lS}{With}[1]{\textkeyword{with}\ \(#1\) \textkeyword{do}}%
+\algdef{SE}{Repeat}{Until}{\textkeyword{repeat}}[1]{\textkeyword{until}\ \(#1\)}%
+\algdef{lS}{If}[1]{\textkeyword{if}\ \(#1\) \textkeyword{then}}%
+\algdef{lC}{If}{Else}{\textkeyword{else}}%
+%
+% *** OTHER DECLARATIONS ***
+%
+\algnewcommand\Procedure{\State\textkeyword{procedure}\space}%
+\algnewcommand\Function{\State\textkeyword{function}\space}%
+%
+\algrenewcomment[1]{\hfill\{#1\}}%
+%
diff --git a/macros/latex/contrib/algorithmicx/algpseudocode.sty b/macros/latex/contrib/algorithmicx/algpseudocode.sty
new file mode 100644
index 0000000000..fca966ac65
--- /dev/null
+++ b/macros/latex/contrib/algorithmicx/algpseudocode.sty
@@ -0,0 +1,92 @@
+% PSEUDOCODE ALGORITHMIC STYLE -- Released 27 APR 2005
+% for LaTeX version 2e
+%
+% Copyright Szasz Janos
+% E-mail szaszjanos@users.sourceforge.net
+% Based on Peter Williams's algorithmic.sty
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{algpseudocode}%
+\RequirePackage{ifthen}%
+\RequirePackage{algorithmicx}%
+\typeout{Document Style - pseudocode environments for use with the `algorithmicx' style}%
+%
+\def\ALG@noend{f}%
+\newboolean{ALG@compatible}%
+\setboolean{ALG@compatible}{false}%
+%
+\DeclareOption{noend}{\def\ALG@noend{t}}%
+\DeclareOption{end}{\def\ALG@noend{f}}%
+\DeclareOption{compatible}{\typeout{For compatibility mode use algcompatible.sty!!!}\setboolean{ALG@compatible}{true}}%
+\DeclareOption{noncompatible}{\setboolean{ALG@noncompatible}{false}}%
+\ProcessOptions%
+%
+% *** DECLARATIONS ***
+%
+\algnewlanguage{pseudocode}%
+\alglanguage{pseudocode}%
+%
+% *** KEYWORDS ***
+%
+\algnewcommand\algorithmicend{\textbf{end}}
+\algnewcommand\algorithmicdo{\textbf{do}}
+\algnewcommand\algorithmicwhile{\textbf{while}}
+\algnewcommand\algorithmicfor{\textbf{for}}
+\algnewcommand\algorithmicforall{\textbf{for all}}
+\algnewcommand\algorithmicloop{\textbf{loop}}
+\algnewcommand\algorithmicrepeat{\textbf{repeat}}
+\algnewcommand\algorithmicuntil{\textbf{until}}
+\algnewcommand\algorithmicprocedure{\textbf{procedure}}
+\algnewcommand\algorithmicfunction{\textbf{function}}
+\algnewcommand\algorithmicif{\textbf{if}}
+\algnewcommand\algorithmicthen{\textbf{then}}
+\algnewcommand\algorithmicelse{\textbf{else}}
+\algnewcommand\algorithmicrequire{\textbf{Require:}}
+\algnewcommand\algorithmicensure{\textbf{Ensure:}}
+\algnewcommand\algorithmicreturn{\textbf{return}}
+\algnewcommand\textproc{\textsc}
+%
+% *** DECLARED LOOPS ***
+%
+\algdef{SE}[WHILE]{While}{EndWhile}[1]{\algorithmicwhile\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicwhile}%
+\algdef{SE}[FOR]{For}{EndFor}[1]{\algorithmicfor\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicfor}%
+\algdef{S}[FOR]{ForAll}[1]{\algorithmicforall\ #1\ \algorithmicdo}%
+\algdef{SE}[LOOP]{Loop}{EndLoop}{\algorithmicloop}{\algorithmicend\ \algorithmicloop}%
+\algdef{SE}[REPEAT]{Repeat}{Until}{\algorithmicrepeat}[1]{\algorithmicuntil\ #1}%
+\algdef{SE}[IF]{If}{EndIf}[1]{\algorithmicif\ #1\ \algorithmicthen}{\algorithmicend\ \algorithmicif}%
+\algdef{C}[IF]{IF}{ElsIf}[1]{\algorithmicelse\ \algorithmicif\ #1\ \algorithmicthen}%
+\algdef{Ce}[ELSE]{IF}{Else}{EndIf}{\algorithmicelse}%
+\algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}%
+ [2]{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
+ {\algorithmicend\ \algorithmicprocedure}%
+\algdef{SE}[FUNCTION]{Function}{EndFunction}%
+ [2]{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
+ {\algorithmicend\ \algorithmicfunction}%
+%
+\ifthenelse{\equal{\ALG@noend}{t}}%
+ {%
+ \algtext*{EndWhile}%
+ \algtext*{EndFor}%
+ \algtext*{EndLoop}%
+ \algtext*{EndIf}%
+ \algtext*{EndProcedure}%
+ \algtext*{EndFunction}%
+ }{}%
+%
+% *** OTHER DECLARATIONS ***
+%
+\algnewcommand\Require{\item[\algorithmicrequire]}%
+\algnewcommand\Ensure{\item[\algorithmicensure]}%
+\algnewcommand\Return{\algorithmicreturn{} }%
+\algnewcommand\Call[2]{\textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
+%
+%
+%
+\ifthenelse{\boolean{ALG@compatible}}%
+ {%
+ \ifthenelse{\equal{\ALG@noend}{t}}%
+ {\RequirePackage[noend]{algcompatible}}%
+ {\RequirePackage{algcompatible}}%
+ }%
+ {}%
+%