diff options
author | Norbert Preining <norbert@preining.info> | 2022-12-16 03:01:21 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-12-16 03:01:21 +0000 |
commit | 14c4ab52b25f4384f6db7938c2666fdd0f75a723 (patch) | |
tree | 00da17c9471442a0486f7901e54e4db06e0a6174 /macros/latex/contrib | |
parent | 9e62b694b4955e33f16762e5c1f9f67bf736cf5b (diff) |
CTAN sync 202212160301
Diffstat (limited to 'macros/latex/contrib')
55 files changed, 3066 insertions, 2310 deletions
diff --git a/macros/latex/contrib/bibcop/DEPENDS.txt b/macros/latex/contrib/bibcop/DEPENDS.txt index 424bb3f506..6767eafad4 100644 --- a/macros/latex/contrib/bibcop/DEPENDS.txt +++ b/macros/latex/contrib/bibcop/DEPENDS.txt @@ -1,2 +1,3 @@ hard iexec -hard verbatimcopy
\ No newline at end of file +hard verbatimcopy +hard pgfopts diff --git a/macros/latex/contrib/bibcop/README.md b/macros/latex/contrib/bibcop/README.md index 08672deb1a..8a58d415f8 100644 --- a/macros/latex/contrib/bibcop/README.md +++ b/macros/latex/contrib/bibcop/README.md @@ -36,6 +36,14 @@ $ perl bibcop.pl --fix main.bib > fixed.bib This command will read the `main.bib` file and create `fixed.bib`, which will have the fixed and properly formatted content (well, to some extent). +If you install the package using [`tlmgr`](https://www.tug.org/texlive/tlmgr.html), +you should be able to use `bibcop` directly, without the necessity to mention Perl: + +``` +$ tlgmr install bibcop +$ bibcop --help +``` + ## How to Contribute If you want to contribute yourself, make a fork, then create a branch, diff --git a/macros/latex/contrib/bibcop/bibcop.1 b/macros/latex/contrib/bibcop/bibcop.1 index 8f92e42629..5cc7f77c15 100644 --- a/macros/latex/contrib/bibcop/bibcop.1 +++ b/macros/latex/contrib/bibcop/bibcop.1 @@ -1,16 +1,16 @@ -.TH bibcop 1 "2022-12-13" +.TH bibcop 1 "2022-12-15" .SH NAME -bibcop \- Style Checker and Fixer of .bib Files +bibcop \- Style Checker and Fixer of BibTeX Files (.bib) .SH SYNOPSIS bibcop [<options>] <.bib file path> .SH DESCRIPTION -The bibcop tool is a Perl script for checking the quality of .bib -files and automatically fixing found inconsistencies. It is not only +The bibcop tool is a Perl script for checking the quality of BibTeX bibliograph +files (.bib) and automatically fixing found inconsistencies. It is not only a command line tool, but a LaTeX package, which can check the quality of a .bib file during the rendering of a LaTeX document. All found issues are reported as LaTeX warnings. .SH OPTIONS -Various options apply +Various options apply: .IP --version Print the version of the tool .IP --help @@ -19,10 +19,11 @@ Print the introduction screen Autho-fix all issues and print a new content to the console .IP --latex Print everything in LaTeX format -.SH BUGS +.IP --verbose +Print debugging information too .SH AUTHOR Yegor Bugayenko (yegor256@gmail.com) -.PP +.SH BUGS Please log issues on the GitHub homepage: https://github.com/yegor256/bibcop/issues. .SH SEE ALSO diff --git a/macros/latex/contrib/bibcop/bibcop.dtx b/macros/latex/contrib/bibcop/bibcop.dtx index 36c8ac747b..de48e128ef 100644 --- a/macros/latex/contrib/bibcop/bibcop.dtx +++ b/macros/latex/contrib/bibcop/bibcop.dtx @@ -50,7 +50,7 @@ %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{bibcop} %<*package> -[2022-12-13 0.0.3 Style Checker of Bibliography Files] +[2022-12-15 0.0.4 Style Checker of Bibliography Files] %</package> %<*driver> \documentclass{ltxdoc} @@ -68,9 +68,9 @@ \CodelineIndex \RecordChanges \begin{document} - \DocInput{bibcop.dtx} - \PrintChanges - \PrintIndex + \DocInput{bibcop.dtx} + \PrintChanges + \PrintIndex \end{document} %</driver> % \fi @@ -88,8 +88,8 @@ % \section{Introduction} % -% This package scans your |.bib| files for style errors and emits -% warning messages if any issues are found (make sure you use it before +% This package scans a |.bib| file for style errors and emits +% warning messages if any issues are found (the package must be included before % all other bibliography related packages): %\iffalse %<*verb> @@ -105,40 +105,57 @@ %\iffalse %</verb> %\fi -% You may see warnings in the \TeX{} log --- fix the issues in the |main.bib| file -% and the warnings will disappear. +% Some warnings may be printed in the \TeX{} log. +% Once the issues in the |main.bib| file are fixed, the warnings disappear. -% If you use the |.sty| file (without installing it into the \TeX{} tree), don't forget -% to also copy the |bibcop.pl| file --- it is the Perl script that does all the work +% If the |.sty| file is used directly (without installing it into the \TeX{} tree), +% the |bibcop.pl| file must also be placed next to it --- it is the Perl script that does all the work % of checking your |.bib| files. The |.sty| is just a simple wrapper around it. -% Make sure |\usepackage{bibcop}| stays right after |\usepackage{biblatex}| -% (if you use it), otherwise -% you won't see any warnings from |bibcop|. +% The |\usepackage{bibcop}| must stay right after |\usepackage{biblatex}| +% (if Bib\LaTeX{} is used), otherwise +% there won't be any warnings from |bibcop|. + +% \section{Package Options} + +% It's possible to configure the behavior of the package with the help of a few package options: + +% \DescribeMacro{verbose} +% The |verbose| package option prints all debugging messages to the \TeX{} log: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[verbose]{bibcop} +\end{verbatim} +%\iffalse +%</verb> +%\fi % \section{The Rules} -% This is a more or less complete list of rules we enforce on a |.bib| file: +% This is a more or less complete list of rules enforced on a |.bib| file: % \DescribeMacro{types} -% Only |@article|, |@book|, |@inproceedings|, and |@misc| types of bib items are allowed. +% Only |@article|, |@book|, |@inproceedings|, and |@misc| types of \BibTeX{} entries are allowed. % Everything else, like |@manual|, |@phdthesis|, and many others are simply prohibited. % The mentioned four should be enough for everything. -% \DescribeMacro{keys} -% There are pretty limited lists of allowed keys for each type of bib item. The keys +% \DescribeMacro{tags} +% There are pretty limited lists of allowed tags for each type of \BibTeX{} entry. The tags % that are not in the list are prohibited to use. % \DescribeMacro{doi} -% Every bib item must have the |doi| key, which is a unique +% Every \BibTeX{} entry must have the |doi| tag, which is a unique % \href{https://www.doi.org}{Digital Object Identifier} % of the material that you reference. It seems to be a good practice, in order to avoid ambiguity, -% to always mention the DOI. I would also recommend to use \href{https://ctan.org/pkg/iexec}{doi} package, +% to always mention the DOI. +% It also recommended to use the \href{https://ctan.org/pkg/iexec}{doi} package, % in order to make all ``|doi|'' fields turned into hyper links. % \DescribeMacro{caps} -% In |title|, |booktitle|, and |journal| keys, all major words must be capitalized, -% as it is \href{https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case}{recommended by APA}: +% In the |title|, |booktitle|, and |journal| tags, all major words must be capitalized, +% as it is \href{https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case}{recommended} by APA: %\iffalse %<*verb> %\fi @@ -151,9 +168,9 @@ title = {A Preliminary Architecture for a Basic Data-Flow Processor} % Here, the leading ``|A|'' is capital because it opens the title. % The word ``|for|'' and the article ``|a|'' are minor words, that's why they are in lower case. % Both parts of the composite word ``|Data-Flow|'' are capitalized. -% Sometimes you need to violate this rule and use custom capitalization, as it is done -% by the author of the paper. In order to do this, wrap the words with custom capitalization -% in curled brackets, for example: +% Sometimes this rule may need to be violated, when there is custom capitalization, as it is done +% by the author of the paper. In order to do this, the words with custom capitalization +% must be wrapped in curled brackets, for example: %\iffalse %<*verb> %\fi @@ -190,7 +207,7 @@ author = {Knuth, Donald E. and others} % When first names are shortened to a single letter, it has to have a tailing dot. % \DescribeMacro{shorts} -% It is not allowed to shorten any words, for example this is illegal: +% It is not allowed to shorten any words aside from the |author| tag, for example this is illegal: %\iffalse %<*verb> %\fi @@ -212,7 +229,7 @@ journal = {Journal of Logic and Computation} %\fi % \DescribeMacro{brackets} -% The |title|, |booktitle|, and |journal| must be wrapped with double brackets, for example: +% The |title|, |booktitle|, and |journal| must be wrapped in double brackets, for example: %\iffalse %<*verb> %\fi @@ -237,8 +254,8 @@ booktitle = {{1994 IEEE International Conference on Computer Languages}}, %\iffalse %</verb> %\fi -% The year should only be mentioned in the |year| key, nowhere else. -% In the |year| key only numbers are allowed: +% The year should only be mentioned in the |year| tag, nowhere else. +% In the |year| tag only numbers are allowed: %\iffalse %<*verb> %\fi @@ -298,7 +315,7 @@ pages = {145--163}, %\fi % \DescribeMacro{proceedings} -% The |booktitle| in the |@inproceedings| bib item must always start with ``|Proceedings| |of| |the|'', +% The |booktitle| in the |@inproceedings| entry must always start with ``|Proceedings| |of| |the|'', % as in this example: %\iffalse %<*verb> @@ -311,11 +328,38 @@ booktitle = {{Proceedings of the International %</verb> %\fi +% \DescribeMacro{arXiv} +% If the |archivePrefix| is present, the |eprint| and the |primaryClass| must also be present and must adhere to the formatting principles of \href{https://arxiv.org/help/arxiv_identifier}{arXiv identifiers}: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +@misc{bugayenko2021, + archivePrefix = {arXiv}, + eprint = {2111.13384}, + primaryClass = {cs.PL}, +} +\end{verbatim} +%\iffalse +%</verb> +%\fi + +% \DescribeMacro{typography} +% All tags in each \BibTeX{} entry are checked for obeying the basic typography rules: +% \begin{itemize} +% \item No spaces are allowed in front of a comma, a semi-colon, a colon, a dot, a question mark, and an exclamation mark; +% \item A text may not end with a dot, a comma, a semi-colon, a colon, or a dash; +% \item A triple dash must be surrounded by spaces. +% \end{itemize} + % \StopEventually{} % \section{Implementation} % \changes{0.0.1}{2022/12/11}{First draft.} % \changes{0.0.2}{2022/12/12}{Documentation extended, more rules added.} +% \changes{0.0.4}{2022/12/14}{Extra checks for the typography, together with more extensive Perl testing.} +% \changes{0.0.4}{2022/12/14}{The \texttt{--verbose} option introduced, to enable debugging information only on demand.} +% \changes{0.0.4}{2022/12/15}{Package options introduced, the \texttt{verbose} option enables detailed logging inside the \TeX{} log.} % First, we include a few packages. % We need \href{https://ctan.org/pkg/iexec}{iexec} for executing Perl scripts: @@ -323,6 +367,16 @@ booktitle = {{Proceedings of the International \RequirePackage{iexec} % \end{macrocode} +% Then, we process package options: +% \begin{macrocode} +\RequirePackage{pgfopts} +\pgfkeys{ + /bibcop/.cd, + verbose/.store in=\bibcop@verbose, +} +\ProcessPgfPackageOptions{/bibcop} +% \end{macrocode} + % \begin{macro}{bibcop.pl} % Then, we copy the Perl script using |\VerbatimCopy| from % \href{https://ctan.org/pkg/verbatimcopy}{verbatimcopy}: @@ -338,12 +392,14 @@ booktitle = {{Proceedings of the International % \begin{macrocode} \makeatletter \ifdefined\bibliography - \let\bibcop@oldbibliography\bibliography - \renewcommand\bibliography[1]{% - \iexec{perl "./bibcop.tmp.pl" --latex '#1.bib'}% + \let\bibcop@oldbibliography\bibliography + \renewcommand\bibliography[1]{% + \iexec{perl "./bibcop.tmp.pl"\space + \ifdefined\bibcop@verbose--verbose\fi\space + --latex '#1.bib'}% \message{bibcop: style checking finished^^J}% - \bibcop@oldbibliography{#1}% - } + \bibcop@oldbibliography{#1}% + } \fi \makeatother % \end{macrocode} @@ -354,17 +410,23 @@ booktitle = {{Proceedings of the International % \begin{macrocode} \makeatletter \ifdefined\addbibresource - \let\bibcop@oldaddbibresource\addbibresource - \renewcommand\addbibresource[1]{% - \iexec{perl "./bibcop.tmp.pl" --latex '#1'}% + \let\bibcop@oldaddbibresource\addbibresource + \renewcommand\addbibresource[1]{% + \iexec{perl "./bibcop.tmp.pl"\space + \ifdefined\bibcop@verbose--verbose\fi\space + --latex '#1'}% \message{bibcop: style checking finished^^J}% - \bibcop@oldaddbibresource{#1}% - } + \bibcop@oldaddbibresource{#1}% + } \fi \makeatother % \end{macrocode} % \end{macro} +% \begin{macrocode} +\endinput +% \end{macrocode} + % \Finale % \clearpage diff --git a/macros/latex/contrib/bibcop/bibcop.pdf b/macros/latex/contrib/bibcop/bibcop.pdf Binary files differindex 09901670e8..e6683a73bb 100644 --- a/macros/latex/contrib/bibcop/bibcop.pdf +++ b/macros/latex/contrib/bibcop/bibcop.pdf diff --git a/macros/latex/contrib/bibcop/bibcop.pl b/macros/latex/contrib/bibcop/bibcop.pl index 8b900bbc35..ef5ee1f457 100755 --- a/macros/latex/contrib/bibcop/bibcop.pl +++ b/macros/latex/contrib/bibcop/bibcop.pl @@ -32,36 +32,36 @@ my %args = map { $_ => 1 } @ARGV; # If you want to add an extra check, just create a new procedure # named as "check_*". -# Only these keys are allowed and only these types of items. +# Only these tags are allowed and only these types of entries. my %blessed = ( - 'article' => ['doi', 'year', 'title', 'author', 'journal', 'volume', 'number', 'publisher?'], + 'article' => ['doi', 'year', 'title', 'author', 'journal', 'volume', 'number', 'publisher?', 'pages?'], 'inproceedings' => ['doi', 'booktitle', 'title', 'author', 'year', 'pages?', 'organization?', 'volume?'], 'book' => ['doi', 'title', 'author', 'year', 'publisher'], 'misc' => ['title', 'author', 'year', 'eprint?', 'archiveprefix?', 'primaryclass?', 'publisher?', 'organization?', 'doi?'], ); -# Check the presence of mandatory keys. -sub check_mandatory_keys { - my (%item) = @_; - my $type = $item{':type'}; +# Check the presence of mandatory tags. +sub check_mandatory_tags { + my (%entry) = @_; + my $type = $entry{':type'}; my $mandatory = $blessed{$type}; - foreach my $key (@$mandatory) { - if ($key =~ /^.*\?$/) { + foreach my $tag (@$mandatory) { + if ($tag =~ /^.*\?$/) { next; } - if (not(exists $item{$key})) { - my $listed = listed_keys(%item); - return "A mandatory '$key' key for '\@$type' is missing among $listed" + if (not(exists $entry{$tag})) { + my $listed = listed_tags(%entry); + return "A mandatory '$tag' tag for '\@$type' is missing among $listed" } } if (exists $blessed{$type}) { my %required = map { $_ => 1 } @$mandatory; - foreach my $key (keys %item) { - if ($key =~ /^:/) { + foreach my $tag (keys %entry) { + if ($tag =~ /^:/) { next; } - if (not(exists $required{$key}) && not(exists $required{$key . '?'})) { - return "The '$key' key is not suitable for '$type', use only these: (@$mandatory)" + if (not(exists $required{$tag}) && not(exists $required{$tag . '?'})) { + return "The '$tag' tag is not suitable for '$type', use only these: (@$mandatory)" } } } @@ -69,14 +69,14 @@ sub check_mandatory_keys { # Check that all major words are capitalized. sub check_capitalization { - my (%item) = @_; - my %keys = map { $_ => 1 } qw/title booktitle journal/; + my (%entry) = @_; + my %tags = map { $_ => 1 } qw/title booktitle journal publisher organization/; my %minors = map { $_ => 1 } qw/in of at to by the a an and or as if up via yet nor but off on for into/; - foreach my $key (keys %item) { - if (not exists $keys{$key}) { + foreach my $tag (keys %entry) { + if (not exists $tags{$tag}) { next; } - my $value = $item{$key}; + my $value = $entry{$tag}; my @words = only_words($value); my $pos = 0; foreach my $word (@words) { @@ -88,10 +88,10 @@ sub check_capitalization { next; } if (exists $minors{lc($word)} and $pos gt 1) { - return "All minor words in the '$key' must be lower-cased, while '$word' (no.$pos) is not" + return "All minor words in the '$tag' must be lower-cased, while '$word' (no.$pos) is not" } if ($word =~ /^[a-z].*/) { - return "All major words in the '$key' must be capitalized, while '$word' (no.$pos) is not" + return "All major words in the '$tag' must be capitalized, while '$word' (no.$pos) is not" } } } @@ -99,9 +99,9 @@ sub check_capitalization { # Check that the 'author' is formatted correctly. sub check_author { - my (%item) = @_; - if (exists $item{'author'} and not $item{'author'} =~ /^\{.+\}$/) { - my $author = clean_tex($item{'author'}); + my (%entry) = @_; + if (exists $entry{'author'} and not $entry{'author'} =~ /^\{.+\}$/) { + my $author = clean_tex($entry{'author'}); if (not $author =~ /^[A-Z][^ ]+(,( [A-Z][^ ]+)+)?( and [A-Z][^ ]+(,( [A-Z][^ ]+)+)?)*( and others)?$/) { return "The format of the 'author' is wrong, use something like 'Knuth, Donald E. and Duane, Bibby'" } @@ -113,20 +113,20 @@ sub check_author { # Check that titles don't have shortened words with a tailing dot. sub check_shortenings { - my (%item) = @_; - my %keys = map { $_ => 1 } qw/title booktitle journal/; - foreach my $key (keys %item) { - if (not exists $keys{$key}) { + my (%entry) = @_; + my %tags = map { $_ => 1 } qw/title booktitle journal/; + foreach my $tag (keys %entry) { + if (not exists $tags{$tag}) { next; } - my $value = $item{$key}; + my $value = $entry{$tag}; my @words = only_words($value); foreach my $word (@words) { if (not $word =~ /^[A-Za-z]/) { next; } if ($word =~ /^.*\.$/) { - return "Do not shorten the words in the '$key', such as '$word'" + return "Do not shorten the words in the '$tag', such as '$word'" } } } @@ -134,15 +134,59 @@ sub check_shortenings { # Check the right format of the 'title' and 'booktitle.' sub check_titles { - my (%item) = @_; - my @keys = qw/title booktitle/; - foreach my $key (@keys) { - if (not exists($item{$key})) { + my (%entry) = @_; + my @tags = qw/title booktitle/; + foreach my $tag (@tags) { + if (not exists($entry{$tag})) { next; } - my $title = $item{$key}; + my $title = $entry{$tag}; if (not $title =~ /^\{.+\}$/) { - return "The '$key' must be wrapped in double curled brackets" + return "The '$tag' must be wrapped in double curled brackets" + } + } +} + +# Check the right format of the tags for arXiv. +# See https://arxiv.org/help/arxiv_identifier +sub check_arXiv { + my (%entry) = @_; + if (exists($entry{'archiveprefix'})) { + if (not exists $entry{'eprint'}) { + return "The 'eprint' is mandatory when 'archiveprefix' is there" + } + if (not $entry{'eprint'} =~ /^[0-9]{4}\.[0-9]{4,5}(v[0-9]+)?$/) { + return "The 'eprint' must have two integers separated by a dot" + } + my $eprint = $entry{'eprint'}; + my ($head, $tail) = split(/\./, $eprint); + my $year = substr($head, 0, 2); + my $month = substr($head, 2); + if ($month > 12) { + return "The month '$month' of the 'eprint' is wrong, it can't be bigger than 12" + } + if (not exists $entry{'primaryclass'}) { + return "The 'primaryclass' is mandatory when 'archiveprefix' is there" + } + if (not $entry{'primaryclass'} =~ /^[a-z]{2,}\.[A-Z]{2}$/) { + return "The 'primaryclass' must have two parts, like 'cs.PL'" + } + } +} + +# Check that organization is not mentioned in the booktitle. +sub check_org_in_booktitle { + my (%entry) = @_; + my @orgs = ( 'ACM', 'IEEE' ); + if (exists($entry{'booktitle'})) { + my $title = $entry{'booktitle'}; + foreach my $o (@orgs) { + if ($title =~ /^.*\Q$o\E.*$/) { + return "The '$o' organization must not be mentioned in the booktitle, use 'publisher' tag instead" + } + } + if ($title =~ /^.*(ACM|IEEE).*$/) { + return "Don't mention the" } } } @@ -150,47 +194,79 @@ sub check_titles { # Check that no values have tailing dots. # Check that there are no spaces before commans. sub check_typography { - my (%item) = @_; - foreach my $key (keys %item) { - if ($key =~ /^:.*/) { + my (%entry) = @_; + my %symbols = ( + '.' => 'dot', + ',' => 'comma', + ';' => 'semi-colon', + ':' => 'colon', + '!' => 'exclamation mark', + '?' => 'question mark', + '-' => 'dash', + '--' => 'double dash', + '---' => 'triple dash', + ); + my @spaces_around = ( '---' ); + my @no_spaces_around = ( '--', '-' ); + my @no_space_before = ( '.', ',', ';', ':', '?', '!' ); + my @bad_tails = ( '.', ',', ';', ':', '-' ); + foreach my $tag (keys %entry) { + if ($tag =~ /^:.*/) { next; } - my $value = $item{$key}; - if ($value =~ /.*\.$/ and $key ne 'author') { - return "The '$key' must not end with a dot" + my $value = $entry{$tag}; + foreach my $s (@bad_tails) { + if ($s eq '.' and $tag eq 'author') { + next; + } + if ($value =~ /^.*\Q$s\E$/) { + return "The '$tag' must not end with a $symbols{$s}" + } + } + foreach my $s (@no_space_before) { + if ($value =~ /^.*\s\Q$s\E.*$/) { + return "In the '$tag', do not put a space before a $symbols{$s}" + } } - if ($value =~ /.* ,.*/) { - return "In the '$key', do not put a space before the comma" + foreach my $s (@spaces_around) { + if ($value =~ /^.*[^\s]\Q$s\E.*$/ or $value =~ /^.*\Q$s\E[^\s].*$/) { + return "In the '$tag', put spaces around a $symbols{$s}" + } + } + foreach my $s (@no_spaces_around) { + if ($value =~ /^.*\s\Q$s\E\s.*$/) { + return "In the '$tag', don't put spaces around a $symbols{$s}" + } } } } # Check the year is not mentioned in titles. sub check_year_in_titles { - my (%item) = @_; - my @keys = qw/title booktitle journal/; - foreach my $key (@keys) { - if (not exists($item{$key})) { + my (%entry) = @_; + my @tags = qw/title booktitle journal/; + foreach my $tag (@tags) { + if (not exists($entry{$tag})) { next; } - my @words = only_words($item{$key}); + my @words = only_words($entry{$tag}); foreach my $word (@words) { if ($word =~ /^[1-9][0-9]{3}$/) { - return "The '$key' must not contain the year $word, it is enough to have the 'year' key" + return "The '$tag' must not contain the year $word, it is enough to have the 'year' tag" } } } } -# Check the right format of the 'booktitle' in the 'inproceedings' item. +# Check the right format of the 'booktitle' in the 'inproceedings' entry. sub check_booktile_of_inproceedings { - my (%item) = @_; - my $key = 'inproceedings'; - if ($item{':type'} eq $key) { - if (exists $item{'booktitle'}) { - my @words = only_words($item{'booktitle'}); + my (%entry) = @_; + my $tag = 'inproceedings'; + if ($entry{':type'} eq $tag) { + if (exists $entry{'booktitle'}) { + my @words = only_words($entry{'booktitle'}); if (lc($words[0]) ne 'proceedings' or lc($words[1]) ne 'of' or lc($words[2]) ne 'the') { - return "The '$key' must start with 'Proceedings of the ...'" + return "The '$tag' must start with 'Proceedings of the ...'" } } } @@ -198,10 +274,10 @@ sub check_booktile_of_inproceedings { # Check the right format of the 'doi.' sub check_doi { - my (%item) = @_; - if (exists $item{'doi'}) { - my $doi = $item{'doi'}; - if (not $item{'doi'} =~ /^[0-9a-zA-Z.]+\/[0-9a-zA-Z._\-]+$/) { + my (%entry) = @_; + if (exists $entry{'doi'}) { + my $doi = $entry{'doi'}; + if (not $doi =~ /^[0-9a-zA-Z.]+\/[0-9a-zA-Z._\-)(]+$/) { return "The format of the 'doi' is wrong" } } @@ -209,10 +285,10 @@ sub check_doi { # Check the right format of the 'year.' sub check_year { - my (%item) = @_; - if (exists $item{'year'}) { - my $year = $item{'year'}; - if (not $item{'year'} =~ /^[0-9]{3,4}$/) { + my (%entry) = @_; + if (exists $entry{'year'}) { + my $year = $entry{'year'}; + if (not $year =~ /^[0-9]{3,4}$/) { return "The format of the 'year' is wrong" } } @@ -220,10 +296,10 @@ sub check_year { # Check the right format of the 'month.' sub check_month { - my (%item) = @_; - if (exists $item{'month'}) { - my $month = $item{'month'}; - if (not $item{'month'} =~ /^[1-9]|10|11|12$/) { + my (%entry) = @_; + if (exists $entry{'month'}) { + my $month = $entry{'month'}; + if (not $month =~ /^[1-9]|10|11|12$/) { return "The format of the 'month' is wrong" } } @@ -231,10 +307,10 @@ sub check_month { # Check the right format of the 'volume.' sub check_volume { - my (%item) = @_; - if (exists $item{'volume'}) { - my $volume = $item{'volume'}; - if (not $item{'volume'} =~ /^[1-9][0-9]*$/) { + my (%entry) = @_; + if (exists $entry{'volume'}) { + my $volume = $entry{'volume'}; + if (not $volume =~ /^[1-9][0-9]*$/) { return "The format of the 'volume' is wrong" } } @@ -242,10 +318,10 @@ sub check_volume { # Check the right format of the 'number.' sub check_number { - my (%item) = @_; - if (exists $item{'number'}) { - my $number = $item{'number'}; - if (not $item{'number'} =~ /^[1-9][0-9]*$/) { + my (%entry) = @_; + if (exists $entry{'number'}) { + my $number = $entry{'number'}; + if (not $number =~ /^[1-9][0-9]*$/) { return "The format of the 'number' is wrong" } } @@ -253,14 +329,17 @@ sub check_number { # Check the right format of the 'pages.' sub check_pages { - my (%item) = @_; - if (exists $item{'pages'}) { - my $pages = $item{'pages'}; - if (not $item{'pages'} =~ /^[1-9][0-9]*--[1-9][0-9]*|[1-9][0-9]*$/) { + my (%entry) = @_; + if (exists $entry{'pages'}) { + my $pages = $entry{'pages'}; + if (not $pages =~ /^([1-9][0-9]*--[1-9][0-9]*|[1-9][0-9]*)$/) { return "The format of the 'pages' is wrong" } my @parts = split(/--/, $pages); if (@parts+0 eq 2) { + if ($parts[0] eq $parts[1]) { + return "The 'pages' mentions the same page twice, just use it once" + } if ($parts[0] gt $parts[1]) { return "The 'pages' are in the wrong order" } @@ -268,9 +347,9 @@ sub check_pages { } } -# Check one item. -sub process_item { - my (%item) = @_; +# Check one entry. +sub process_entry { + my (%entry) = @_; my @checks; foreach my $entry (keys %bibcop::) { if ($entry =~ /^check_/) { @@ -281,7 +360,7 @@ sub process_item { my @errors; foreach my $check (@sorted) { no strict 'refs'; - my $err = $check->(%item); + my $err = $check->(%entry); if ($err ne '') { push(@errors, $err); } @@ -290,14 +369,14 @@ sub process_item { } # Parse the incoming .bib file and return an array -# of hash-maps, where each one is a bibitem. -sub bibitems { +# of hash-maps, where each one is a bibentry. +sub entries { my ($bib) = @_; - my @items; + my @entries; my $s = 'top'; - my %item; + my %entry; my $acc = ''; - my $key = ''; + my $tag = ''; my $lineno = 0; my $nest = 0; my $escape = 0; @@ -309,56 +388,56 @@ sub bibitems { # ignore the EOL $lineno = $lineno + 1; } elsif ($char eq '@' and $s eq 'top') { - %item = (); + %entry = (); $s = 'start'; $acc = ''; } elsif ($char =~ /[a-z]/ and $s eq 'start') { # @article } elsif ($char eq '{' and $s eq 'start') { - $item{':type'} = substr($acc, 1); + $entry{':type'} = substr($acc, 1); $acc = ''; $s = 'body'; } elsif ($char =~ /[a-zA-Z]/ and $s eq 'body') { $acc = ''; - $s = 'key'; - } elsif ($char =~ /[a-zA-Z0-9_]/ and $s eq 'key') { - # reading the key + $s = 'tag'; + } elsif ($char =~ /[a-zA-Z0-9_]/ and $s eq 'tag') { + # reading the tag } elsif ($char =~ /[a-zA-Z0-9]/ and $s eq 'value') { # reading the value without quotes or brackets - } elsif ($char eq ',' and $s eq 'key') { - $item{':name'} = $acc; + } elsif ($char eq ',' and $s eq 'tag') { + $entry{':name'} = $acc; $s = 'body'; - } elsif ($char eq '=' and $s eq 'key') { - $key = $acc; + } elsif ($char eq '=' and $s eq 'tag') { + $tag = $acc; $s = 'value'; $acc = ''; } elsif ($char eq ',' and $s eq 'value') { - if (not exists $item{lc($key)}) { + if (not exists $entry{lc($tag)}) { my $tex = substr($acc, 1); $tex =~ s/\s//g; - $item{lc($key)} = $tex; + $entry{lc($tag)} = $tex; } $s = 'body'; } elsif ($char eq '}' and $s eq 'body') { - push(@items, { %item }); + push(@entries, { %entry }); $s = 'top'; } elsif ($char eq '}' and $s eq 'value') { - if (not exists $item{lc($key)}) { + if (not exists $entry{lc($tag)}) { my $tex = substr($acc, 1); $tex =~ s/\s//g; - $item{lc($key)} = $tex; + $entry{lc($tag)} = $tex; } - push(@items, { %item }); + push(@entries, { %entry }); $s = 'top'; - } elsif ($char eq '}' and $s eq 'key') { - $item{':name'} = $acc; - push(@items, { %item }); + } elsif ($char eq '}' and $s eq 'tag') { + $entry{':name'} = $acc; + push(@entries, { %entry }); $s = 'top'; } elsif ($char eq '"' and $s eq 'value') { $s = 'quote'; $acc = ''; } elsif ($char eq '"' and $s eq 'quote') { - $item{lc($key)} = substr($acc, 1); + $entry{lc($tag)} = substr($acc, 1); $s = 'value'; } elsif ($s eq 'quote') { # nothing @@ -374,13 +453,13 @@ sub bibitems { } elsif ($char eq '}' and $escape ne 1) { $nest = $nest - 1; if ($nest eq 0) { - $item{lc($key)} = substr($acc, 1); + $entry{lc($tag)} = substr($acc, 1); $s = 'value'; } } $escape = 0; } else { - print "\\PackageWarningNoLine{bibcop}{It is impossible to parse the .bib file, because I do not know what to do with '$char' at line #$lineno (s=$s)}\n"; + warning("It is impossible to parse the .bib file, because I do not know what to do with '$char' at line #$lineno (s=$s)"); last; } if ($char eq ' ' and not($s =~ /quote|brackets/)) { @@ -388,7 +467,7 @@ sub bibitems { } $acc = $acc . $char; } - return @items; + return @entries; } # Takes the text and returns only list of words seen there. @@ -407,15 +486,15 @@ sub clean_tex { return $tex; } -# Take a bibitem and print all its keys as a comma-separated string. -sub listed_keys { - my (%item) = @_; +# Take a bibentry and print all its tags as a comma-separated string. +sub listed_tags { + my (%entry) = @_; my @list; - foreach my $key (keys %item) { - if ($key =~ /^:.*/) { + foreach my $tag (keys %entry) { + if ($tag =~ /^:.*/) { next; } - push(@list, $key); + push(@list, $tag); } my @sorted = sort @list; return '(' . join(', ', @sorted) . ')'; @@ -424,13 +503,29 @@ sub listed_keys { # Print ERROR message to the console and die. sub error { my ($txt) = @_; - print $txt . "\n"; + if (exists $args{'--latex'}) { + print "\\PackageError{bibcop}{$txt}\n"; + } else { + print $txt . "\n"; + } exit 1; } # Print DEBUG message to the console. sub debug { my ($txt) = @_; + if (exists $args{'--verbose'}) { + if (exists $args{'--latex'}) { + print "\\message{bibcop: $txt^^J}\n"; + } else { + print $txt . "\n"; + } + } +} + +# Print INFO message to the console. +sub info { + my ($txt) = @_; if (exists $args{'--latex'}) { print '% '; } @@ -447,57 +542,64 @@ sub warning { } } -if (@ARGV+0 eq 0 or exists $args{'--help'}) { - debug("Bibcop is a Style Checker of .bib Files\n" . - "Usage: bibcop [<options>] <.bib file path>\n" . - " --version Print the current version of the tool and exit\n" . - " --help Print this help screen\n" . - " --fix Fix the errors and print a new version of the .bib file to the console\n" . - " --latex Report errors in LaTeX format using \\PackageWarningNoLine command"); -} elsif (exists $args{'--version'}) { - debug('0.0.3'); +if (@ARGV+0 eq 0 or exists $args{'--help'} or exists $args{'-?'}) { + info("Bibcop is a Style Checker of BibTeX Files\n\n" . + "Usage:\n" . + " bibcop [<options>] <.bib file path>\n\n" . + "Options:\n" . + " -v, --version Print the current version of the tool and exit\n" . + " -?, --help Print this help screen\n" . + " --fix Fix the errors and print a new version of the .bib file to the console\n" . + " --verbose Print supplementary debugging information\n" . + " --latex Report errors in LaTeX format using \\PackageWarningNoLine command\n\n" . + "If any issues, report to GitHub: https://github.com/yegor256/bibcop"); +} elsif (exists $args{'--version'} or exists $args{'-v'}) { + info('0.0.4'); } else { my ($file) = grep { not($_ =~ /^--.*$/) } @ARGV; + if (not $file) { + error('File name must be specified'); + } open(my $fh, '<', $file); my $bib; { local $/; $bib = <$fh>; } - my @items = bibitems($bib); + my @entries = entries($bib); if (exists $args{'--fix'}) { - for my $i (0..(@items+0 - 1)) { - my %item = %{ $items[$i] }; - my $type = $item{':type'}; + for my $i (0..(@entries+0 - 1)) { + my %entry = %{ $entries[$i] }; + my $type = $entry{':type'}; if (not exists $blessed{$type}) { - error("I don't know what to do with \@$type type of bibitem"); + error("I don't know what to do with \@$type type of bibentry"); } - my $keys = $blessed{$item{':type'}}; - my %allowed = map { $_ => 1 } @$keys; + my $tags = $blessed{$entry{':type'}}; + my %allowed = map { $_ => 1 } @$tags; my @lines; - foreach my $key (keys %item) { - if ($key =~ /^:/) { + foreach my $tag (keys %entry) { + if ($tag =~ /^:/) { next; } - if (not exists $allowed{$key} and not exists $allowed{$key . '?'}) { + if (not exists $allowed{$tag} and not exists $allowed{$tag . '?'}) { next; } - my $value = clean_tex($item{$key}); - if ($key =~ /title|booktitle|journal/) { + my $value = clean_tex($entry{$tag}); + if ($tag =~ /title|booktitle|journal/) { $value = '{' . $value . '}'; } - push(@lines, " $key = {$value},"); + push(@lines, " $tag = {$value},"); } - debug("\@$type\{$item{':name'},"); + info("\@$type\{$entry{':name'},"); my @sorted = sort @lines; foreach my $line (@sorted) { - debug($line); + info($line); } - debug("}\n"); + info("}\n"); } } else { - debug((@items+0) . ' bibitems found in ' . $file); - for my $i (0..(@items+0 - 1)) { - my %item = %{ $items[$i] }; - debug("Checking $item{':name'} (#$i)..."); - foreach my $err (process_item(%item)) { - warning("$err, in the '$item{':name'}' bibitem"); + debug((@entries+0) . ' entries found in ' . $file); + for my $i (0..(@entries+0 - 1)) { + my %entry = %{ $entries[$i] }; + debug("Checking $entry{':name'} (no.$i)..."); + foreach my $err (process_entry(%entry)) { + warning("$err, in the '$entry{':name'}' bib entry"); } } } diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx index 5cf9cb4bc7..100de6d671 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.bbx @@ -1,4 +1,4 @@ -\ProvidesFile{lncs.bbx}[2022/03/26 v0.5] +\ProvidesFile{lncs.bbx}[2022/12/15 v0.6] \RequireBibliographyStyle{numeric} @@ -132,31 +132,20 @@ {}% } -\DeclareNameFormat{author}{% - \nameparts{#1}% - \usebibmacro{name:family-given} - {\namepartfamily} - {\namepartgiveni} - {\namepartprefix} - {\namepartsuffix} - \ifthenelse{\value{listcount}<\value{liststop}} - {\addcomma\space}% - {\ifmorenames{\addcomma~\bibstring[\emph]{andothers}:}{}}% -} +\renewbibmacro*{name:andothers}{% from biblatex.def + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + } + {\ifnumgreater{\value{liststop}}{1} + {\finalandcomma} + {}% + \printdelim{andothersdelim}\bibstring[\emph]{andothers}} % added: \emph + {}} -\DeclareNameFormat{editor}{% - \nameparts{#1}% - \usebibmacro{name:family-given} - {\namepartfamily} - {\namepartgiveni} - {\namepartprefix} - {\namepartsuffix} - \ifthenelse{\value{listcount}<\value{liststop}} - {\addcomma\space}% - {\ifmorenames{\addcomma~\bibstring[\emph]{andothers}}\space\ifthenelse{\value{listcount}>1} - {(\bibstring{editors})} - {(\bibstring{editor})}}% -} +\DeclareFieldFormat{editortype}{(#1)} +\DeclareDelimFormat{editortypedelim}{\space} \DeclareBibliographyDriver{article}{% \usebibmacro{bibindex}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.cbx index 4b6c71ce61..f8d7be9b39 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-lncs/lncs.cbx @@ -1,4 +1,4 @@ -\ProvidesFile{lncs.cbx}[2022/01/17 v0.4] +\ProvidesFile{lncs.cbx}[2022/12/15 v0.6] \RequireCitationStyle{numeric} diff --git a/macros/latex/contrib/eolang/README.md b/macros/latex/contrib/eolang/README.md index 43774079bc..27d09c503e 100644 --- a/macros/latex/contrib/eolang/README.md +++ b/macros/latex/contrib/eolang/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/objectionary/eolang.sty/blob/master/LICENSE.txt) This LaTeX package helps you write 𝜑-calculus formulas and -[SODG](https://github.com/objectionary/sodg) graphs +draw [SODG](https://github.com/objectionary/sodg) graphs for [EO](https://www.eolang.org) programming language. First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages) diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx index 402bcd4b8f..e553bd8c9f 100644 --- a/macros/latex/contrib/eolang/eolang.dtx +++ b/macros/latex/contrib/eolang/eolang.dtx @@ -50,7 +50,7 @@ %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{eolang} %<*package> -[2022-11-29 0.8.0 Formulas and Graphs for EO Programming Language] +[2022-12-15 0.9.0 Formulas and Graphs for EO Programming Language] %</package> %<*driver> \documentclass{ltxdoc} @@ -148,6 +148,10 @@ % \end{itemize} % Also, a few symbols are supported for $\varphi$PU architecture: % \begin{itemize}\setlength\itemsep{0em} +% \item ``|<<|'' maps to ``$\langle$'' +% (|\langle|), +% \item ``|>>|'' maps to ``$\rangle$'' +% (|\rangle|), % \item ``|-abc>|'' maps to ``$\phiSlot{abc}$'' % (|\phiSlot{abc}|), % \item ``|:=|'' maps to ``$\vDash$'' @@ -365,6 +369,9 @@ % \end{document} % \end{docshot} +% \DescribeMacro{\eoAnon} +% You may want to hide some of the content with the help of the |anonymous| package option. The command |\eoAnon| may help you with this. It has two parameters: one mandatory and one optional. The mandatory one is the content you want to show and the optional one is the substituion we will render if the |anonymous| package option is set. + % \section{Package Options} % \DescribeMacro{tmpdir} @@ -392,7 +399,7 @@ %\fi % \DescribeMacro{anonymous} -% You may anonymize |\eolang|, |\XMIR|, and |\phic| commands by using |anonymous| package option: +% You may anonymize |\eolang|, |\XMIR|, and |\phic| commands by using |anonymous| package option (they all use the |\eoAnon| command mentioned earlier): %\iffalse %<*verb> %\fi @@ -447,6 +454,39 @@ % \end{document} % \end{docshot} +% You can use the |matrix| environment too, in order to group a few lines: +% \docshotOptions{firstline=5,lastline=11} +% \begin{docshot} +% \documentclass{article} +% \usepackage{eolang} +% \pagestyle{empty} +% \begin{document} +% \begin{phiquation*} +% x -> \left\{\begin{matrix} \ +% ? \\ +% [[ L> ^ \times $.\alpha_0 ]] \\ +% [[ D> 42 ]] \ +% \end{matrix}\right\} +% \end{phiquation*} +% \end{document} +% \end{docshot} + +% The |cases| environment works too: +% \docshotOptions{firstline=5,lastline=11} +% \begin{docshot} +% \documentclass{article} +% \usepackage{eolang} +% \pagestyle{empty} +% \begin{document} +% \begin{phiquation*} +% \beta := \begin{cases} \ +% [ v_2, @ -dtzd> 42 ] \\ +% [ v_{33} ] \ +% \end{cases} +% \end{phiquation*} +% \end{document} +% \end{docshot} + % The |phiquation| environment may be used together with the \href{https://ctan.org/pkg/acmart}{acmart} package: % \begin{docshot} % \documentclass{acmart} @@ -538,7 +578,7 @@ % \begin{phiquation*} % [[ b -> ? ]], % [[ @ -> TRUE, \Delta ..> 42 ]], \\ -% \Delta = |43-09|. +% \psi = << \pi, 42 >>. % \end{phiquation*} % \end{document} % \end{docshot} @@ -714,6 +754,8 @@ % \changes{0.7.0}{2022/11/17}{New syntax sugar constructs added: \texttt{D>} and \texttt{L>} for \texttt{\char`\\Delta} and \texttt{\char`\\lambda} with a dotted arrow respectively.} % \changes{0.7.0}{2022/11/18}{New syntax sugar for $\Phi$, just using capital ``\texttt{Q}'' is enough.} % \changes{0.8.0}{2022/11/21}{Inside \texttt{phiquation} any text inside the \texttt{\char`\\text} macro is not processed.} +% \changes{0.9.0}{2022/12/15}{Proper handling of the \texttt{matrix} environment.} +% \changes{0.9.0}{2022/12/15}{Parsing of \texttt{<<} and \texttt{>>} implemented.} % Then, we create a Perl script for |phiquation| processing using |VerbatimOut| environment from % \href{https://ctan.org/pkg/fancyvrb}{fancyvrb}: % \begin{macrocode} @@ -790,6 +832,7 @@ if ($macro ne 'phiq') { $tex =~ s/\n\s*\\end\{split\}/\\end{split}/g; $tex =~ s/\n\n/\\\\&/g; $tex =~ s/\n/\\phiEOL{}\n&/g; + $tex =~ s/\\\\$//g; $tex =~ s/\\\\/\\\\\n/g; $tex =~ s/([^&\s])\s{2}([^\s])/\1 \2/g; $tex =~ s/\s{2}/ \\quad{}/g; @@ -804,6 +847,16 @@ if ($macro ne 'phiq') { (0+@eols) . ' lines are ' . (0+@leads) . " leads\n"; } } +if ($macro ne 'phiq') { + sub strip_tabs { + my ($env, $tex) = @_; + $tex =~ s/&//g; + return "\\begin{$env}" . $tex . "\\end{$env}"; + } + foreach my $e (('matrix', 'cases')) { + $tex =~ s/\\begin\{(\Q$e\E\*?)\}(.+)\\end\{\Q$e\E\*?\}/strip_tabs($1, $2)/sge; + } +} $tex =~ s/\$/\\xi{}/g; $tex =~ s/(?<!\{)\^/\\rho{}/g; $tex =~ s/\[\[/\\llbracket\\mathrel{}/g; @@ -820,6 +873,8 @@ $tex =~ s/->/\\mathrel{\\mapsto}/g; $tex =~ s/~>/\\mathrel{\\phiWave}/g; $tex =~ s/:=/\\mathrel{\\vDash}/g; $tex =~ s/\.\.>/\\mathrel{\\phiDotted}/g; +$tex =~ s/<</\\langle/g; +$tex =~ s/>>/\\rangle/g; $tex =~ s/\|{2,}/|/g; $tex =~ s/\|([^\|]+)\|/\\textnormal{\\texttt{\1}}{}/g; $tex =~ s/\{TEXT(\d+)\}/'\\text{' . @texts[$1] . '}';/ge; @@ -1168,7 +1223,7 @@ for (my $c = 0; $c < 0+@cmds; $c++) { } if (exists $opts{'data'}) { print ',phi-data'; - if (not $opts{'data'} eq '') { + if ($opts{'data'} ne '') { my $d = $opts{'data'}; if (index($d, '|') == -1) { $d = '$\Delta\phiDotted\text{' . @@ -1180,7 +1235,7 @@ for (my $c = 0; $c < 0+@cmds; $c++) { } } elsif (exists $opts{'atom'}) { print ',phi-atom'; - if (not $opts{'atom'} eq '') { + if ($opts{'atom'} ne '') { my $a = $opts{'atom'}; if (index($a, '$') == -1) { $a = '$\lambda\phiDotted{}' . fmt($a) . '$'; @@ -1379,12 +1434,19 @@ print '\endinput'; % \end{macrocode} % \end{macro} -% \begin{macro}{\eolang@anon} +% \begin{macro}{\eoAnon} % Then, we define a supplementary command to help us anonymize some content. -% \changes{0.9.0}{2022/11/29}{New command \texttt{\char`\\eolang@anon} added.} +% \changes{0.9.0}{2022/11/29}{New command \texttt{\char`\\eoAnon} added.} % \begin{macrocode} +\RequirePackage{hyperref} +\pdfstringdefDisableCommands{ + \def\({}% + \def\){}% + \def\alpha{alpha}% + \def\varphi{phi}% +} \makeatletter -\NewExpandableDocumentCommand{\eolang@anon}{O{ANONYMIZED}m}{% +\NewExpandableDocumentCommand{\eoAnon}{O{ANONYMIZED}m}{% \ifdefined\eolang@anonymous% \textcolor{orange}{#1}% \else% @@ -1399,9 +1461,8 @@ print '\endinput'; % \changes{0.1.0}{2022/10/25}{New command \texttt{\char`\\eolang} added to print the name of the language in both % normal and the anonymous mode of \texttt{acmart}.} % \begin{macrocode} -\makeatletter\newcommand\eolang{% - \eolang@anon[XYZ]{{\sffamily EO}}} -\makeatother +\newcommand\eolang{% + \eoAnon[XYZ]{{\sffamily EO}}} % \end{macrocode} % \end{macro} @@ -1410,10 +1471,8 @@ print '\endinput'; % \changes{0.1.0}{2022/10/25}{New command \texttt{\char`\\phic} prints the name of $\varphi$-calculus in both % normal and the anonymous mode of \texttt{acmart}.} % \begin{macrocode} -\RequirePackage{hyperref} -\makeatletter\newcommand\phic{% - \eolang@anon[$\alpha$-cal\-cu\-lus]{$\varphi$-cal\-cu\-lus}} -\makeatother +\newcommand\phic{% + \eoAnon[\(\alpha\)-cal\-cu\-lus]{\(\varphi\)-cal\-cu\-lus}} % \end{macrocode} % \end{macro} @@ -1421,9 +1480,8 @@ print '\endinput'; % Then, we define a simple supplementary command to help you print \xmir{}, the name of our XML-based format of program representation. % \changes{0.2.0}{2022/10/28}{New command \texttt{\char`\\xmir} prints XMIR in both normal and the anonymous mode of \texttt{acmart}.} % \begin{macrocode} -\makeatletter\newcommand\xmir{% - \eolang@anon[XML$^+$]{XMIR}} -\makeatother +\newcommand\xmir{% + \eoAnon[XML\(^+\)]{XMIR}} % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf Binary files differindex 87a430837e..4c9353b41c 100644 --- a/macros/latex/contrib/eolang/eolang.pdf +++ b/macros/latex/contrib/eolang/eolang.pdf diff --git a/macros/latex/contrib/msu-thesis/README.md b/macros/latex/contrib/msu-thesis/README.md index 27fea365c8..69748901f1 100644 --- a/macros/latex/contrib/msu-thesis/README.md +++ b/macros/latex/contrib/msu-thesis/README.md @@ -1,10 +1,10 @@ -# MSU Thesis Class Version 3.5b 2022/08/19 +# MSU Thesis Class Version 4.0 2022/12/13 Copyright 2011-2022 by Alan Munn <amunn@msu.edu> This is a class file for producing dissertations and theses according to the Michigan State University Graduate School Guidelines for Electronic -Submission of Master's Theses and Dissertations (March 2020). +Submission of Master's Theses and Dissertations (September 2022). The class is based on the `memoir` document class, and therefore inherits all of the functionality of that class. @@ -50,9 +50,10 @@ Documentation files: A template file: - `MSU-thesis-template.tex` -A test file and a test bibliography: +Two test files and a test bibliography: `MSU-thesis-testfile.tex` + `MSU-thesis-chapterbib-testfile.tex` `MSU-thesis-testfile.bib` ## Problems diff --git a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex index 2822bed850..8566aecacb 100644 --- a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex +++ b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex @@ -2,8 +2,8 @@ \documentclass[11pt]{article} -\def\msuversion{3.5b} -\def\msudate{2022/08/19} +\def\msuversion{4.0} +\def\msudate{2022/12/13} \title{\textbf{Using the MSU Thesis Class}} \author{\textbf{Alan Munn}\\Department of Linguistics, Languages, and Cultures\\Michigan State University\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}} \date{Version \msuversion\\\msudate} @@ -57,9 +57,9 @@ \thispagestyle{empty} \renewcommand{\abstractname}{\sffamily Abstract} -\abstract{\noindent\begin{quote} This is a class file for MSU theses and dissertations. It is based on the \pkg{memoir}\ class, and therefore supports all of the functionality of that class. It should generate a document which meets all the basic formatting requirements laid out by the \href{https://grad.msu.edu/etd/formatting-guide}{Formatting Guide For Submission of Master’s Theses and Doctoral Dissertations}\ (March 2020) produced by the Graduate School, including requirements for margins, titlepage, page numbering, section titles, sub- and superscript sizes etc.\end{quote}} +\abstract{\noindent\begin{quote} This is a class file for MSU theses and dissertations. It is based on the \pkg{memoir}\ class, and therefore supports all of the functionality of that class. It should generate a document which meets all the basic formatting requirements laid out by the \href{https://grad.msu.edu/etd/formatting-guide}{Formatting Guide For Submission of Master’s Theses and Doctoral Dissertations}\ (September, 2022) produced by the Graduate School, including requirements for margins, titlepage, page numbering, section titles, sub- and superscript sizes etc.\end{quote}} \section{Introduction} -Formatting a dissertation according to a University's thesis requirements is not always a simple task in \LaTeX, especially since the requirements are generally aimed at MSWord users. Furthermore, most of the work of formatting a document is supposed to be done by the document class itself, and not by the individual user. Fortunately, Michigan State University's thesis requirements are for the most part sane, and fairly straightforward. The present class file is designed to further make the process easier for \LaTeX\ users, by doing all the heavy lifting for you, so that you can focus on the content and not the formatting. +Formatting a dissertation according to a University's thesis requirements is not always a simple task in \LaTeX, especially since the requirements are generally aimed at MSWord users. Furthermore, most of the work of formatting a document is supposed to be done by the document class itself, and not by the individual user. Fortunately, Michigan State University's thesis requirements are for the most part sane, and fairly straightforward. The present class file is designed to further make the process easier for \LaTeX\ users, by doing all the heavy lifting for you, so that you can focus on the content and not the formatting. \section{Background} The MSU Thesis Class is based on the \pkg{memoir}\ document class. The \pkg{memoir}\ class is an extensive class that incorporates the functionality of many other packages into it. The class is extensively documented, and the documentation (\pkg{memman.pdf}) should be available with any \TeX\ distribution. I strongly recommend that you familiarize yourself with \pkg{memoir}\ as you use the present class. \section{Class Options} @@ -113,12 +113,14 @@ In addition to all the user functionality defined by \pkg{memoir}, the \pkg{msu- \begin{tabularx}{.8\textwidth}{>{\ttfamily}lX} \toprule {\bs maketitlepage} & Makes the main title page for the thesis.\\ -{\bs fieldofstudy\{\}} & Takes one argument corresponding to your field of study.\\ +{\bs fieldofstudy\{\}} & Takes one argument corresponding to your field of study. For a dual major use the \pkg{\bs dualmajor} command instead.\\ +{\bs dualmajor\{\}\{\}} & Takes two arguments, one for each of the two majors.\\ {\bs dedication\{\}} & Takes one argument (should be short), your dedication.\\ -{\{publicabstract\}} & Environment for the public abstract (unnumbered, uncounted).\\ +%{\{publicabstract\}} & Environment for the public abstract (unnumbered, uncounted).\\ {\bs makecopyrightpage} & Creates the copyright page (use \texttt{\bs makecopyrightpage*} to align the text on the left.)\\ {\bs makededicationpage} & Creates the dedication page.\\ -{\bs makebibliographypage} & Creates the bibliography cover page.\\ +%{\bs makebibliographypage} & Creates the bibliography cover page.\\ +{\{abbreviations\}} & Environment for the List of Abbreviations \\ \bottomrule \end{tabularx} \caption{Class titling commands} @@ -129,7 +131,7 @@ In addition to all the user functionality defined by \pkg{memoir}, the \pkg{msu- \begin{tabularx}{.8\textwidth}{>{\ttfamily}lX} \toprule {\bs msucaptiondelim} & Delimiter for floating elements (see section \ref{captiondelim}).\\ -{\bs setabstractnamespace} & Changes spacing after the name in the abstract (see section \ref{abstractspacing}).\\ +%{\bs setabstractnamespace} & Changes spacing after the name in the abstract (see section \ref{abstractspacing}).\\ \bottomrule \end{tabularx} \caption{Appeasement commands} @@ -138,7 +140,7 @@ In addition to all the user functionality defined by \pkg{memoir}, the \pkg{msu- \section{Using the class} \subsection{Logical parts of the document} -Most book-length documents are divided into three main kinds of parts: the front matter, the main matter, and the back matter. In \pkg{memoir}\ (and therefore \pkg{msu-thesis}) these sections are preceded by the commands |\frontmatter|, |\mainmatter|, and |\backmatter|. These commands tell the class when to change the page numbering, for example, front matter pages use lower case roman numerals, but main matter pages use arabic numerals. +Most book-length documents are divided into three main kinds of parts: the front matter, the main matter, and the back matter. In \pkg{memoir}\ (and therefore \pkg{msu-thesis}) these sections are preceded by the commands |\frontmatter|, and |\mainmatter|. The way the thesis office now structures the document means that the |\backmatter| should not be used. These commands tell the class when to change the page numbering, for example, front matter pages use lower case roman numerals, but main matter pages use arabic numerals. The basic outline of a dissertation or thesis document is shown in Table~\ref{structure}: (your thesis may not have all of these parts, but if it does, they should be in this order.) You can find an annotated copy of the basic structure in the \href{https://ctan.org/tex-archive/macros/latex/contrib/msu-thesis/samples}{\pkg{samples}}\ folder of the \pkg{msu-thesis}\ documentation. @@ -148,15 +150,13 @@ The basic outline of a dissertation or thesis document is shown in Table~\ref{st \item |\frontmatter| \begin{scheme} \item Titlepage - \item Public Abstract +% \item Public Abstract \item Abstract \item Copyright Page \item Dedication \item Acknowledgements \item Preface \item Table of Contents - \item List of Tables - \item List of Figures \item List of Abbreviations/Symbols \end{scheme} \item |\mainmatter| @@ -165,12 +165,13 @@ The basic outline of a dissertation or thesis document is shown in Table~\ref{st \item Chapter 2 \item \ldots \item Chapter $n$ - \item{Appendices} \end{scheme} -\item |\backmatter| \begin{scheme} \item{Bibliography} \end{scheme} +\begin{scheme} + \item{Appendices} +\end{scheme} \item |\end{document}| \end{scheme} \caption{Basic structure of a thesis or dissertation}\label{structure} @@ -211,17 +212,32 @@ Your listing code here \end{lstlisting} \end{quote} -Another common kind of list is a List of Abbreviations. The thesis office seems to want to call this “Key to Abbreviations”. To add such a list, you need to do the following: +\subsection{List of Abbreviations} +Another common kind of list is a List of Abbreviations. The thesis office seems to think that these should be formatted identically to other lists, even though they are not really contents lists. Because of this I have added a built-in environment |{abbreviations}| and a helper macro to add elements to the list. The basic idea is the following: for each abbreviation/symbol you add to the list use the command |\abbrev{<abbreviation>}{<explanation>}|. This command takes two arguments, the first being the abbreviation itself, and the second the explanation of the abbreviation. For example, for a list of abbreviations containing the abbreviations MSU and MIT we would use the following code. The list is not automatically sorted, so you need to add abbreviations with |\abbrev| in exactly the order you want them to appear in the list. \begin{quote} \begin{lstlisting} -\clearpage -\chapter*{Key to Abbreviations} -\vspace{\cftparskip} -\addcontentsline{toc}{chapter}{Key to Abbreviations} -Your list of abbreviations here. +\begin{abbreviations} +\abbrev{MIT}{Massachusetts Institute of Technology} +\abbrev{MSU}{Michigan State University} +\end{abbreviation} \end{lstlisting} \end{quote} +\subsubsection{Summary of abbreviation commands} +In addition to the |\abbrev| command, there are a few other commands to change the format of the the |\listofabbreviations| as shown in Table~\ref{abbrev}. Note that the List of Abbreviations written to the auxiliary file with extension |.lob| which can be removed along with other |.aux| files if needed. + +\begin{table}[htpb] +\centering +\begin{tabularx}{.8\textwidth}{>{\ttfamily}lX} +\toprule +{\bs abbrev\{<abbreviation>\}\{<explantion>\}} & Add an abbreviation to the list.\\ +{\bs msuabbrevfont} & Format of the abbreviation itself (default is \texttt{\bs bfseries}).\\ +{\bs msuabbrevdelim\{\}} & Add a delimiter if you need (default is \texttt{\{\}}).\\ +{\bs msuabbrevwidth\{\}} & Set the width of the abbreviation column (default is \texttt{.75in}).\\ +\bottomrule +\end{tabularx} +\caption{List of abbreviation commands}\label{abbrev} +\end{table} \subsection{Algorithm packages\label{algorithms}} Because the various algorithm formatting packages such as \pkg{algorithm2e}\ and \pkg{algorithmicx}\ (or its related packages) sometimes create incompatibilities with the \pkg{memoir}\ float methods, the class provides you with floating |{algorithm}| environment and the corresponding list of algorithms, so you do not have to create your own list of algorithms. Here are some specific important points about using \pkg{algorithm2e}\ and \pkg{algorithmicx}. @@ -282,16 +298,16 @@ before the contents lists and |\microtypesetup{protrusion=true}| afterwards. Sc \microtypesetup{protrusion=true} \end{lstlisting} \end{quote} -\subsection{Abstracts} -MSU requires you to have an abstract, but you may also have a public abstract, which is weirdly unnumbered and uncounted. - -\subsubsection{Spacing after the author name in the abstract}\label{abstractspacing} -The thesis office is very inconsistent in how it determines what it thinks is a “double space”, and this especially seems to be true after the author name in the the abstract. Because of this, I’ve created a way to change the spacing within the user document so that you can appease the thesis office bureaucrats without reporting an issue to me. - -Use the command |\setabstractnamespace| to change the spacing after the author name in the abstract (and the public abstract, if present). This command takes a value typically between -1 and and 1 where 0 reduces the space to a single baselineskip, while 1 adds an extra baselineskip. The default is set to 0. Depending on their mood at the time they check your thesis, the thesis office may want more or less space here, so use this command only to satisfy their bureaucratic self-importance. - -\subsubsection{Public abstract} -If your thesis requires a public abstract, it should go immediately before the regular abstract. Use the |{publicabstract}| environment for this. Please note that you \emph{must} have an abstract even if you also have a public abstract. +%\subsection{Abstracts} +%MSU requires you to have an abstract. % but you may also have a public abstract, which is weirdly unnumbered and uncounted. +% +%\subsubsection{Spacing after the author name in the abstract}\label{abstractspacing} +%The thesis office is very inconsistent in how it determines what it thinks is a “double space”, and this especially seems to be true after the author name in the the abstract. Because of this, I’ve created a way to change the spacing within the user document so that you can appease the thesis office bureaucrats without reporting an issue to me. +% +%Use the command |\setabstractnamespace| to change the spacing after the author name in the abstract (and the public abstract, if present). This command takes a value typically between -1 and and 1 where 0 reduces the space to a single baselineskip, while 1 adds an extra baselineskip. The default is set to 0. Depending on their mood at the time they check your thesis, the thesis office may want more or less space here, so use this command only to satisfy their bureaucratic self-importance. +% +%\subsubsection{Public abstract} +%If your thesis requires a public abstract, it should go immediately before the regular abstract. Use the |{publicabstract}| environment for this. Please note that you \emph{must} have an abstract even if you also have a public abstract. \subsection{Landscape figures and tables} If you have large figures and tables that must be rotated, you should use the |[lscape]| class option. This enables a pagestyle |lscape| and places the page numbers correctly on the long edge of the page. The option loads the \pkg{pdflscape}\ package which provides a |landscape| environment to place the landscape figure in. Before the landscape environment, you need to issue a |\clearpage| command and change the pagestyle to |lscape|, and afterwards, change it back to |plain|. Schematically, then, any landscape pages should be created in the following way. @@ -336,10 +352,10 @@ Appendix text goes here \end{quote} \subsubsection{Appendices per chapter} -If you need to add an appendix or appendices to a chapter, you must use the \pkg{[chapterapp]}\ class option. The code for the appendices themselves is exactly as described above. This means that the appendix itself is introduced by the |\chapter| command, \emph{not} a |\section| command (because the this seems to be how the thesis office wants things to look). Furthermore, per-chapter appendices should \emph{not} be preceded by the |\backmatter| command, which should only precede the global bibliography or appendices. +If you need to add an appendix or appendices to a chapter, you must use the \pkg{[chapterapp]}\ class option. The code for the appendices themselves is exactly as described above. This means that the appendix itself is introduced by the |\chapter| command, \emph{not} a |\section| command (because the this seems to be how the thesis office wants things to look). Furthermore, per-chapter appendices should \emph{not} be preceded by the |\backmatter| command, which should not be used at all. \subsection{Bibliographies} -The class places no constraints on how you do your bibliography. It doesn't care whether you are using the \pkg{chapterbib}\ package with \pkg{natbib}\ or the per-chapter bibliography functionality provided by \pkg{biblatex}. If you have per-chapter bibliographies, however, you \emph{must}\ use the |[chapterbib]| class option. This option lets the class know that you are using per-chapter bibliographies. Before any bibliography (whether global or per-chapter) you should use the |\makebibliographypage| command. Note that per-chapter bibliographies should \emph{not} be preceded by the |\backmatter| command, which should only precede the global bibliography or appendices. +The class places no constraints on how you do your bibliography. It doesn't care whether you are using the \pkg{chapterbib}\ package with \pkg{natbib}\ or the per-chapter bibliography functionality provided by \pkg{biblatex}. If you have per-chapter bibliographies, however, you \emph{must}\ use the |[chapterbib]| class option. This option lets the class know that you are using per-chapter bibliographies. Note that per-chapter bibliographies should \emph{not} be preceded by the |\backmatter| command, which should not be used at all. \subsubsection{Bibliography spacing}\label{bibspacing} Please note that although bibliography entries must be single spaced, there must be a space between each entry. This parameter is set by your bibliography package and not by the class itself. If you are using \pkg{natbib}\ or \pkg{biblatex}\ these spacing parameters are set for you by the class. If you are using another package for your bibliography you are responsible for adjusting the relevant spacing parameters. @@ -386,10 +402,10 @@ I'm happy to answer emails about formatting issues with the class, especially wh \subsection{Archiving your thesis for the future} Since the current version of the \pkg{msu-thesis}\ class satisfies the Graduate School requirements at any one time, as these requirements change, you may find that if you need to recompile your thesis after you have graduated that the formatting changes. To avoid this, I would recommend saving an archived version of the \pkg{msu-thesis.cls}\ file in the same folder as your thesis file. You only need to do this once you have completely finished your thesis however; there's no need to do it during the writing process. \subsection{Major Version history} -Previous versions of \pkg{msu-thesis}\ (versions 1.0--1.4b) were created for non-electronic submission and should not be used. Versions 1.5--1.6 (the first electronic submission versions) contained a |\makeabstract| command and a separate |msuabstract| environment. These have been removed as of version 1.7. Users who are upgrading from earlier versions to version 1.7 do not need to change these commands however but their use will trigger a warning.) Version 2.0 implemented landscape pages; version 2.1 added support for \pkg{hyperref}. Versions 2.2--2.5 mainly accommodated to the ever changing whims of the MSU Graduate School. Version 2.6 fixed some appendix bugs introduced by the previous whim accommodation. Version 2.7 fixed various small spacing issues, fixed a bug which prevented a new chapter page to be a landscape page, added support for the \pkg{apacite}\ package, and updated degree options. Version 2.8 fixed some spacing and capitalization issues and added support for the public abstract. Version 2.9 removed subscript/superscript size restrictions, added font size options and made small spacing changes to appease the thesis office. Version 3.0 added full support for per-chapter bibliographies and appendices, and automated bibliography spacing for |natbib| and |biblatex| produced bibliographies. Version 3.1 added support for an |{algorithm}| environment and a list of algorithms to combat incompatibilities with the \pkg{algorithm}\ and \pkg{algorithm2e}\ packages. Version 3.2 fixed some lingering problems with per-chapter appendices. Version 3.3 added code to accommodate the insane inconsistencies in formatting requirements that the thesis office requires, including a new contents option which hopefully should never be used, and fixed some numbering problems with per-chapter appendices. Version 3.4 added a starred option to the |\makecopyrightpage| command after complaints about placement. The documentation has also been updated to include more information about caption formatting and removed colons from the default caption format. Version 3.5 added user level way to change the spacing after the author’s name in the abstract, to deal with thesis office inconsistency. +Previous versions of \pkg{msu-thesis}\ (versions 1.0--1.4b) were created for non-electronic submission and should not be used. Versions 1.5--1.6 (the first electronic submission versions) contained a |\makeabstract| command and a separate |msuabstract| environment. These have been removed as of version 1.7. Users who are upgrading from earlier versions to version 1.7 do not need to change these commands however but their use will trigger a warning.) Version 2.0 implemented landscape pages; version 2.1 added support for \pkg{hyperref}. Versions 2.2--2.5 mainly accommodated to the ever changing whims of the MSU Graduate School. Version 2.6 fixed some appendix bugs introduced by the previous whim accommodation. Version 2.7 fixed various small spacing issues, fixed a bug which prevented a new chapter page to be a landscape page, added support for the \pkg{apacite}\ package, and updated degree options. Version 2.8 fixed some spacing and capitalization issues and added support for the public abstract. Version 2.9 removed subscript/superscript size restrictions, added font size options and made small spacing changes to appease the thesis office. Version 3.0 added full support for per-chapter bibliographies and appendices, and automated bibliography spacing for |natbib| and |biblatex| produced bibliographies. Version 3.1 added support for an |{algorithm}| environment and a list of algorithms to combat incompatibilities with the \pkg{algorithm}\ and \pkg{algorithm2e}\ packages. Version 3.2 fixed some lingering problems with per-chapter appendices. Version 3.3 added code to accommodate the insane inconsistencies in formatting requirements that the thesis office requires, including a new contents option which hopefully should never be used, and fixed some numbering problems with per-chapter appendices. Version 3.4 added a starred option to the |\makecopyrightpage| command after complaints about placement. The documentation has also been updated to include more information about caption formatting and removed colons from the default caption format. Version 3.5 added user level way to change the spacing after the author’s name in the abstract, to deal with thesis office inconsistency. Version 3.6 added built-in support for the Key to Abbreviations. Version 3.7 added improved support for \pkg{hyperref}. Version 4.0 implements the new requirements as of September 2022, including adding a |\dualmajor| command. Various spacing changes have been made which will make your document look like you used Word, but this is what the thesis office seems to care about. \section{Acknowledgements} -Thanks to Lars Madsen, Ulrike Fischer and Peter Wilson for help with setting up parts of the memoir code for versions 1.0--1.4 (now eliminated due to changed requirements). Thanks to Wolfgang Sternefeld for supplying the \pkg{linguex}\ spacing fix code, Leo Liu for the landscape page numbering code, which greatly simplified my original version, and Florent Chervet for the \pkg{hyperref}\ code. Thanks also to the following students who have reported problems over the years: Irina Agafonova, Ali Al-jiboory, Abubakr Ayesh, Julian Blank, Dmitriy Bryndin, Greg Christian, Kyle Crayne, Ciaron Hamilton, Matt Husband, Changkuk Jung, Adam Liter, Vanessa Maldonado, William Muir, Alicia Parrish, Neil ver Planck, Giacomo Romanini, William Sands, Adam Soliman, Erik Stitt, Eremey Valetov, Matthew Vincent, Michael Wojcik, Stephen Yowono, Ali Zare, and Yisu Zhou. A special thank you to Non Thongprong who graciously provided a copy of his entire thesis which allowed me to debug some especially subtle spacing inconsistencies. +Thanks to Lars Madsen, Ulrike Fischer and Peter Wilson for help with setting up parts of the memoir code for versions 1.0--1.4 (now eliminated due to changed requirements). Thanks to Wolfgang Sternefeld for supplying the \pkg{linguex}\ spacing fix code, Leo Liu for the landscape page numbering code, which greatly simplified my original version. Thanks to Florent Chervet for early \pkg{hyperref} code (up until v.3.6), and Ulrike Fischer for the current \pkg{hyperref} code. Thanks also to the following students who have reported problems over the years: Irina Agafonova, Ali Al-jiboory, Abubakr Ayesh, Julian Blank, Dmitriy Bryndin, Greg Christian, Kyle Crayne, Ciaron Hamilton, Matt Husband, Changkuk Jung, Claire Kopenhafer, Adam Liter, Vanessa Maldonado, William Muir, Alicia Parrish, Neil ver Planck, Nick Rekuski, Giacomo Romanini, William Sands, Adam Soliman, Erik Stitt, Eremey Valetov, Matthew Vincent, Michael Wojcik, Stephen Yowono, Ali Zare, and Yisu Zhou. A special thank you to Non Thongprong who graciously provided a copy of his entire thesis which allowed me to debug some especially subtle spacing inconsistencies. \appendix \renewcommand{\thesection}{Appendix \Alph{section}} @@ -438,10 +454,11 @@ Your acknowledgements here \mainmatter \chapter{Your first chapter} % -\appendix +\begin{appendix} \chapter{Your first appendix} +\end{appendix} \backmatter -\makebibliographypage + \SingleSpacing \bibliography{your-bib-file} \end{document} diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.cls b/macros/latex/contrib/msu-thesis/msu-thesis.cls index fe9b7b3a14..e58b843669 100644 --- a/macros/latex/contrib/msu-thesis/msu-thesis.cls +++ b/macros/latex/contrib/msu-thesis/msu-thesis.cls @@ -24,10 +24,9 @@ % msu-thesis.tex and msu-thesis.pdf; % A template file: % MSU-thesis-template.tex -% A test file and test bibliography: -% MSU-thesis-testfile.tex, MSU-thesis-testfile.bib -% It also contains a copy of the LSA Unified Style Sheet for linguistics: -% unified.bst +% Two test files and test bibliography: +% MSU-thesis-testfile.tex, MSU-thesis-chapterbib-testfile.tex, MSU-thesis-testfile.bib +% % % Version 1.0 2010/04/17 Initial release % Version 1.1 2010/04/20 Require etex package (fix problem with qtree) @@ -170,11 +169,21 @@ % updated documentation on algorithms and captions % Version 3.5 2022/08/15 Added \setabstractnamespace to allow user control over thesis office idiocy % Version 3.5b 2022/08/19 Changed default for \setabstractnamespace +% Version 3.6 2022/08/23 Added a \listofabbreviations plus helper macros +% \msuabbrev \msuabbrevwidth \msuabbrevfont +% to make format of the key to abbreviations match the LoF etc. +% Changed \onelinespace to match the fontsize (see v2.9) +% Added undocumented command to reinstate the memoir leading values if needed. +% Version 3.7 2022/09/04 Rewrote ToC formatting code to support hyperref better. Modifications to internal +% chapter commands are no longer required, and hyperref injection code revised. +% This requires an up-to-date LaTeX and is therefore only released as development for the +% moment. +% Version 4 2023/12/13 First version to conform to the updated requirements (September 2023) % % Report bugs/problems/questions to <amunn@msu.edu> % -\def\msu@version{3.5b} -\def\msu@date{2022/08/19} +\def\msu@version{4.0} +\def\msu@date{2023/12/13} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{msu-thesis}[\msu@date\space Michigan State University Thesis Class version \msu@version] \newif\ifmsu@dissertation\msu@dissertationtrue % added v2.7 boolean for \msu@thesistype @@ -183,13 +192,14 @@ \newif\ifmsu@chapterapp\msu@chapterappfalse % added v3.0 \def\msu@apptype{APP} \newif\ifmsu@singleappendix\msu@singleappendixfalse % added v3.1b -\newcommand*\msuappendixnumformat{\Alph{chapter}}% Appendices are Alpha numbered +\newcommand*\msuappendixnumformat{\ifmsu@singleappendix\else\Alph{chapter}\fi}% Appendices are Alpha numbered \newif\ifmsu@lscape\msu@lscapefalse \newif\ifmsu@stupidtoc\msu@stupidtocfalse \newif\ifmsu@mixedtoc\msu@mixedtocfalse \newif\ifmsu@plaintoc\msu@plaintoctrue % make this the default to see what the reaction is \newif\ifmsu@colonintoc\msu@colonintocfalse \newif\ifmsu@hyperloaded\msu@hyperloadedfalse +\newif\ifmsu@dualmajor\msu@dualmajorfalse \DeclareOption{PhD}{\gdef\msu@degree{Doctor of Philosophy}} \DeclareOption{DEd}{\gdef\msu@degree{Doctor of Education}} \DeclareOption{DMA}{\gdef\msu@degree{Doctor of Musical Arts}} @@ -218,9 +228,9 @@ \DeclareOption{bibassection}{\def\msu@bibsection{section}} % per-chapter bibs as sections in TOC \DeclareOption{chapterapp}{ \global\msu@chapterapptrue - \def\msu@apptype{CHAPAPP} + \def\msu@apptype{APPENDICES} % per-chapter appendices added v3.0 - \renewcommand\msuappendixnumformat{\the@ppsavesec\Alph{chapter}} % Appendix numbers per-chapter (now permitted) + \renewcommand\msuappendixnumformat{\ifmsu@singleappendix\else\Alph{chapter}\fi} % Appendix numbers per-chapter not permitted as of v4 } \DeclareOption{12pt}{\def\msu@sizeoption{12pt}} % added v2.9 \DeclareOption{11pt}{\def\msu@sizeoption{11pt}} @@ -236,6 +246,11 @@ \RequirePackage{etex} \fi \RequirePackage{etoolbox} +% textpos package added v4.0 to deal with absolute positioning of title page elements +\RequirePackage[absolute]{textpos} +\setlength{\TPHorizModule}{.5in} +\setlength{\TPVertModule}{.5in} +\textblockorigin{0in}{0in} % set up landscape page numbering % make a boolean for selecting pagestyle properly if \chapter appears in a landscape environment \newif\ifmsu@lscapemode\msu@lscapemodefalse @@ -262,6 +277,13 @@ \setlrmargins{1in}{*}{*} \setulmargins{1in}{*}{*} \setheadfoot{.5in}{.5in} % changed 5/3/2017 +\setlength{\onelineskip}{\msu@sizeoption} % changed v3.6 after more complaints about "double space" +% memoir makes the value the leading of the chosen font size (defined in memXX.clo) where XX is the +% font size. The memoir values are 12pt, 13.6pt and 14.5pt, but depending on who's measuring, they don't +% seem to like these values. Add an undocumented reset to defaults for future inconsistency. +\newcommand*\usememdefaultlineskip{ + \let\onelineskip\headheight} + % set up contents title % we use a private macro here to avoid problems with babel and @@ -271,8 +293,9 @@ \newcommand*{\fieldofstudy}[1]{\gdef\msu@fieldofstudy{#1}} % removed \MakeUppercase 6/5/12 \newcommand{\dedication}[1]{\gdef\msu@dedication{#1}} \newcommand*{\msu@titleintro}{A~} % this is the beginning to the title page phrase -\newcommand*{\msu@fieldseparator}{\textendash} % this is between the degree name and field of study - +\newcommand*{\msu@fieldseparator}{\textemdash} % this is between the degree name and field of study +\newcommand*{\dualmajor}[2]{\msu@dualmajortrue\gdef\msu@fieldofstudy{#1}\gdef\msu@dualmajor{#2}} +\newcommand*{\msu@DUALMAJOR}{Dual Major} \newcounter{msu@hchap} % global counter for chapters used by hyperref % This may also be solved by using \hypersetup{hypertexnames=false} % hard to tell whether this is a better solution. @@ -286,17 +309,18 @@ % Because the title is set to \MakeUppercase we need to \protect line % breaks within the title. This has now been documented in the user docs. % Using \onelineskip here instead of \baselineskip because thesis office doesn't know how to measure +% v4 now uses textpos to position these elements absolutely on the page \newcommand*\msu@thesistype{\ifmsu@dissertation{DISSERTATION}\else{THESIS}\fi} \pretitle{\begin{center}\MakeUppercase} -\posttitle{\\[\onelineskip]\end{center}} -\preauthor{\begin{center}By\\[\onelineskip]} -\postauthor{\end{center}} -\predate{\vfill\begin{center}\msu@titleintro\msu@thesistype\\[\onelineskip]Submitted to\\Michigan State University\\in partial fulfillment of the requirements\\for the degree of\\[\onelineskip]\msu@fieldofstudy~\msu@fieldseparator~\msu@degree\\[\onelineskip]} +\posttitle{\end{center}} +\preauthor{\begin{textblock}{6}(5.5,6.625)\begin{center}By\\[2\onelineskip]} +\postauthor{\end{center}\end{textblock}} +\predate{\begin{textblock}{6}(5.5,13.625)\begin{center}\msu@titleintro\msu@thesistype\\[\onelineskip]Submitted to\\Michigan State University\\in partial fulfillment of the requirements\\for the degree of\\[2\onelineskip]\msu@fieldofstudy\msu@fieldseparator\msu@degree\ifmsu@dualmajor\\\msu@dualmajor\msu@fieldseparator\msu@DUALMAJOR\\[\onelineskip]\else\\[2\onelineskip]\fi}\postdate{\end{center}\end{textblock}} % set up the chapter titles \chapterstyle{thatcher} \setlength{\beforechapskip}{-1sp}% changed 2020/12/17 Need negative value to suppress indentation -\setlength{\afterchapskip}{2\onelineskip} % changed 2017/05/03 because of thesis office complaints +\setlength{\afterchapskip}{0pt} % changed 2017/05/03 because of thesis office complaints; changed again for v4 since now they want "uniform" space \renewcommand*{\chapnamefont}{\centering\bfseries} \renewcommand*{\chapnumfont}{\bfseries} \renewcommand*{\chaptitlefont}{\SingleSpacing\bfseries} @@ -309,22 +333,35 @@ \renewcommand{\partnamefont}{\centering\bfseries} \renewcommand{\partnumfont}{\bfseries} \renewcommand{\parttitlefont}{\SingleSpacing\bfseries} -\renewcommand{\printpartname}{\partnamefont{\MakeUppercase{\partname}}} +\renewcommand{\printpartname}{\partnamefont{\partname}} \renewcommand{\printparttitle}[1]{\parttitlefont \MakeUppercase#1} % Set epigraph fonts to \normalsize \renewcommand{\epigraphsize}{\normalsize} % added 2/26/21 +% Set a fixed floatsep to appease 2023 idiocy +\setlength\textfloatsep{\onelineskip} % set up the section styles -\setbeforesecskip{-1sp} -\setsecheadstyle{\normalfont\SingleSpacing\large\bfseries} + +\setsecheadstyle{\normalfont\SingleSpacing\bfseries} % made uniform size v4 \setsubsecheadstyle{\normalfont\SingleSpacing\bfseries} \setsubsubsecheadstyle{\normalfont\SingleSpacing\bfseries} +% 2023 requirements seem to want "uniform" spacing even after headings, even though this +% is not stated explicitly anywhere. After skips must be positive not zero to avoid runin formatting +% Before skips can be 0 +% This is another insane decision typographically... +\setbeforesecskip{0pt} +\setbeforesubsecskip{0pt} +\setbeforesubsubsecskip{0pt} +\setaftersecskip{.1pt} +\setaftersubsecskip{.1pt} +\setaftersubsubsecskip{.1pt} % set up TOC -\maxtocdepth{subsubsection} +\settocdepth{section} \setsecnumdepth{subsubsection} +\setlength{\cftsectionindent}{.5in} \renewcommand*{\printtoctitle}[1]{\centering\bfseries\msu@contentsname} \renewcommand*{\cftchaptername}{Chapter\space} \renewcommand*{\cftappendixname}{Appendix\space} @@ -333,6 +370,8 @@ \renewcommand*{\cfttableaftersnum}{\msucaptiondelim} % per thesis office punctuation idiocy \renewcommand*{\cftfigurename}{Figure\space} \renewcommand*{\cfttablename}{Table\space} +\renewcommand*{\cftchapteraftersnum}{\msutocdelim} +\renewcommand*{\cftsectionaftersnum}{\msutocdelim} %\setlength{\cftbeforetableskip}{0pt} %\setlength{\cftbeforefigureskip}{0pt} \renewcommand{\insertchapterspace}{} @@ -367,12 +406,42 @@ % Importantly you MUST load float after defining any new lists since it clobbers % the memoir float methods - -\newlistof{listofalgorithms}{loa}{List of Algorithms} +\newcommand{\listalgorithmname}{List of Algorithms} % added v3.7 for hyperref +\newlistof{listofalgorithms}{loa}{\listalgorithmname} \newfloat[chapter]{algorithm}{loa}{Algorithm} \newlistentry{algorithm}{loa}{0} \renewcommand*{\cftalgorithmname}{Algorithm\space} \renewcommand*{\cftalgorithmaftersnum}{\msucaptiondelim} + +% After complaints about the spacing in the key to abbreviations not matching the list +% of figures, we now supply a \listofabbreviations which is formatted using regular LoF +% methods along with a helper macro \abbrev which puts an abbreviation into the list. +% The list is not sorted, so the \abbrev commands must be in the order that they will appear. +% Since the abbreviations are just listed, this list doesn't require a new float command. +% We use lob here, since loa will be used by list of algorithms. Added v3.6 +% For ease of use, the list is wrapped into an environment. +% +\newcommand{\listabbreviationsname}{List of Abbreviations} % added v3.7 for hyperref; name changed v4 +\newlistof{listofabbreviations}{lob}{\listabbreviationsname} +\newlistentry{abbrev}{lob}{0} + +\newcommand*\msuabbrevfont{\bfseries} % font for the abbreviation itself +\renewcommand*\cftabbrevleader{} % no leaders +\renewcommand*\cftabbrevformatpnum[1]{} % no page numbers +\renewcommand*{\cftabbrevafterpnum}{\cftparfillskip} % fix horrible interword spacing +\newlength{\msu@abbrevwidth} % maximum width of the abbreviations +\newcommand*\msuabbrevwidth[1]{\setlength{\msu@abbrevwidth}{#1}} % helper macro to set width +\msuabbrevwidth{.75in} % a reasonable minimum +\cftsetindents{abbrev}{0em}{\msu@abbrevwidth} % sets the indents so that the entries themselves can wrap if long +\newcommand*{\msuabbrevdelim}{} % in case you want a colon or something after each abbreviation +\newcommand{\abbrev}[2]{% +\addcontentsline{lob}{abbrev}{\makebox[\msu@abbrevwidth][l]{\msuabbrevfont#1\msuabbrevdelim}\normalfont#2}} +\newenvironment{abbreviations} +{} +{\clearpage +\listofabbreviations} + + % % This code technique from http://tex.stackexchange.com/q/232121/ % Makes appendices formatted as sections not chapters in the TOC @@ -390,16 +459,20 @@ \cftinsertcode{APP}{ \renewcommand\cftsectionfont{\msu@tocfont} % fixed 12/13/17 \renewcommand\cftchapterpagefont{\msu@tocfont} -% \renewcommand*{\cftappendixname}{APPENDIX\space} -} -% This code removes the before chapter spaces for in-chapter apps -\cftinsertcode{CHAPAPP}{ - \setlength\cftbeforechapterskip{0pt} - \renewcommand\cftsectionfont{\msu@tocfont} % fixed 12/13/17 - \renewcommand\cftchapterpagefont{\msu@tocfont} \renewcommand*{\cftappendixname}{APPENDIX\space} } +\cftinsertcode{SINGAPP}{\renewcommand{\cftchapteraftersnum}{}} +% This code removes the before chapter spaces for in-chapter apps +% removed v4 not needed +%\cftinsertcode{CHAPAPP}{ +% \setlength\cftbeforechapterskip{0pt} +% \renewcommand\cftsectionfont{\msu@tocfont} % fixed 12/13/17 +% \renewcommand\cftchapterpagefont{\msu@tocfont} +% \renewcommand\cftchapteraftersnum{\msutocdelim} +% \renewcommand*{\cftappendixname}{APPENDIX\space} +%} + % This code adds extra space in the TOC margin for the APPENDIX name, and % makes the appendices formatted like sections even though they are % chapters in the source @@ -413,30 +486,33 @@ \renewcommand\cftsectionfont{\msu@tocfont} % fixed 12/13/17 \renewcommand\cftchapterpagefont{\msu@tocfont} \renewcommand*{\cftappendixname}{APPENDIX\space} + \renewcommand\cftchapteraftersnum{\msutocdelim} + } % This code resets the TOC back to normal section spacing if appendices have been used \cftinsertcode{CHAPAPPR}{ -\cftsetindents{section}{1.5em}{2.3em} +\cftsetindents{section}{.5in}{2.3em} \setlength{\cftchapterindent}{0em} \setlength{\cftchapternumwidth}{3em} % added 6/24/2022 \setlength{\cftbeforechapterskip}{1.0em \@plus\p@} - \renewcommand\cftchapterfont{\msu@chapfont} + \renewcommand\cftchapterfont{\msu@chapfont\MakeUppercase} \renewcommand\cftchapterpagefont{\msu@chapfont} - \settocdepth{subsubsection} % added 6/24/2022 + \settocdepth{section} % added 6/24/2022 } % This code resets the changes made in the APP code back to normal % so that the bibliography will appear correctly in the TOC \cftinsertcode{BIB}{ \setlength{\cftchapterindent}{0em} \setlength{\cftbeforechapterskip}{1.0em \@plus\p@} - \renewcommand\cftchapterfont{\msu@chapfont} + \renewcommand\cftchapterfont{\msu@chapfont\MakeUppercase} \renewcommand\cftchapterpagefont{\msu@chapfont} + \settocdepth{section} } \cftinsertcode{CHAPBIB}{ - \setlength\cftchapterindent{0em} + \setlength\cftchapterindent{\cftsectionindent} \setlength\cftbeforechapterskip{0pt} \renewcommand\cftsectionfont{\msu@tocfont} % fixed 12/13/17 \renewcommand\cftchapterpagefont{\msu@tocfont} @@ -444,7 +520,7 @@ % Set up all the font styles for the TOC -\renewcommand*{\cftchapterfont}{\msu@chapfont} +\renewcommand*{\cftchapterfont}{\msu@chapfont\MakeUppercase} \renewcommand*{\cftchapterpagefont}{\msu@chapfont} \renewcommand*{\cftsectionfont}{\msu@tocfont} \renewcommand*{\cftsubsectionfont}{\msu@tocfont} @@ -453,14 +529,16 @@ \renewcommand*{\cftsubsectionpagefont}{\msu@tocfont} \renewcommand*{\cftsubsubsectionpagefont}{\msu@tocfont} +% Removed v3.7 to accommodate more hyperref options +%\renewcommand*{\l@chapter}[2]{% +% \renewcommand{\cftchapterpagefont}{\msu@chapfont} +% \l@chapapp{\MakeUppercase{#1}}{#2}{\cftchaptername}} % Format chapter names +%\renewcommand*{\l@appendix}[2]{% +% \renewcommand{\cftchapterpagefont}{\msu@tocfont} +% \setlength{\cftchapternumwidth}{2em} +% \l@chapapp{\msu@tocfont\MakeUppercase{#1}}{#2}{\cftappendixname}} % Format appendix names +% -\renewcommand*{\l@chapter}[2]{% - \renewcommand{\cftchapterpagefont}{\msu@chapfont} - \l@chapapp{\MakeUppercase{#1}}{#2}{\cftchaptername}} % Format chapter names -\renewcommand*{\l@appendix}[2]{% - \renewcommand{\cftchapterpagefont}{\msu@tocfont} - \setlength{\cftchapternumwidth}{2em} - \l@chapapp{\msu@tocfont\MakeUppercase{#1}}{#2}{\cftappendixname}} % Format appendix names \setlength{\cftchapternumwidth}{3em} \setrmarg{3.5em} % better wrapping of long titles @@ -510,20 +588,21 @@ % set up abstract and public abstract % The thesis office is inconsistent in how they measure what they call a "double space". % Adding a fudge factor that can be changed at the user level (v3.5 8/15/2022) -% We'll set it to 0 for the moment; 0 is what should be 1 double space, +% We'll set it to 0 for the moment; 0 is what should be 1 double space, % but depending on their mood and and whether Mars is in conjunction with Jupiter they seem to want more % or less. Nothing better than random application of useless rules to waste everyone’s time. -\newcommand\setabstractnamespace[1]{\gdef\msu@abstractnamespacefactor{#1}} -\setabstractnamespace{0} % this may be too big +%\newcommand\setabstractnamespace[1]{\gdef\msu@abstractnamespacefactor{#1}} +%\setabstractnamespace{0} % this may be too big +% Changed v4, as no name required any more \renewenvironment{abstract}{% - \setlength{\afterchapskip}{\onelineskip} % changed 2020/12/14 again removed manual spacing from 2016 +% \setlength{\afterchapskip}{\onelineskip} % changed 2020/12/14 again removed manual spacing from 2016 \chapter*{\abstractname} \thispagestyle{empty} % \plainbreak{-.5} % changed 2016/06/08 after complaints - \begin{center} - \MakeUppercase{\thetitle}\plainbreak{1}By\plainbreak{1}\theauthor - \end{center} - \plainbreak{\msu@abstractnamespacefactor} % changed 2016/06/08 after complaints +% \begin{center} +% \MakeUppercase{\thetitle}\plainbreak{1}By\plainbreak{1}\theauthor +% \end{center} +% \plainbreak{\msu@abstractnamespacefactor} % changed 2016/06/08 after complaints \DoubleSpacing }{\par} % @@ -533,23 +612,25 @@ % % this just stores the current page number and replaces it at the end -\newcounter{msu@pubabspages} -\newcommand{\publicabstractname}{\abstractname} -\newenvironment{publicabstract}{% - \phantomsection% added 6/30/2022 to remove spurious warning - \ClassWarningNoLine{msu-thesis}{You have provided a public abstract. Please make sure you ALSO have a regular abstract!} - \setcounter{msu@pubabspages}{\value{page}} - \setlength{\afterchapskip}{\onelineskip} % changed 2020/12/14 again removed manual spacing from 2016 - \chapter*{\publicabstractname} - \thispagestyle{empty} -% \plainbreak{-.5} % changed 2016/06/08 after complaints - \begin{center} - \MakeUppercase{\thetitle}\plainbreak{1}By\plainbreak{1}\theauthor - \end{center} -% \plainbreak{-.5} % changed 2016/06/08 after complaints - \plainbreak{\msu@abstractnamespacefactor} % changed 2016/06/08 after complaints - \DoubleSpacing - }{\clearpage\setcounter{page}{\value{msu@pubabspages}}} +% Removed v4 (no longer needed?) + +%\newcounter{msu@pubabspages} +%\newcommand{\publicabstractname}{\abstractname} +%\newenvironment{publicabstract}{% +% \phantomsection% added 6/30/2022 to remove spurious warning +% \ClassWarningNoLine{msu-thesis}{You have provided a public abstract. Please make sure you ALSO have a regular abstract!} +% \setcounter{msu@pubabspages}{\value{page}} +% \setlength{\afterchapskip}{\onelineskip} % changed 2020/12/14 again removed manual spacing from 2016 +% \chapter*{\publicabstractname} +% \thispagestyle{empty} +%% \plainbreak{-.5} % changed 2016/06/08 after complaints +% \begin{center} +% \MakeUppercase{\thetitle}\plainbreak{1}By\plainbreak{1}\theauthor +% \end{center} +%% \plainbreak{-.5} % changed 2016/06/08 after complaints +% \plainbreak{\msu@abstractnamespacefactor} % changed 2016/06/08 after complaints +% \DoubleSpacing +% }{\clearpage\setcounter{page}{\value{msu@pubabspages}}} % set up captions @@ -557,6 +638,7 @@ % Make the caption delimiter a space instead of colon space so that the % contents lists don't look so stupid. Can be changed if necessary. \newcommand*\msucaptiondelim{\space} +\newcommand*\msutocdelim{:} \captiondelim{\msucaptiondelim} \pagestyle{plain} @@ -575,13 +657,15 @@ % as requiring left aligned copyright mark, even though the guide says it can be % anywhere on the page as long as the text itself is left aligned. % * version will make things left aligned. Added v3.4 6/20/2022 +% In a tour de force of bad design the 2023 requirements now have this centred vertically Added v4 \newcommand*{\makecopyrightpage}{% - \@ifstar{\def\msu@copyrightalign{}}{\def\msu@copyrightalign{\raggedleft}} + \@ifstar{\def\msu@copyrightalign{}}{\def\msu@copyrightalign{}} \pagestyle{plain} \clearpage \thispagestyle{empty} - \vspace*{7in} - {\noindent\msu@copyrightalign Copyright by\\\MakeUppercase{\theauthor}\\\thedate\\}% Author now uppercase 6/5/12 + % Author now uppercase 6/5/12 + % Use vplace to centre vertically added v4 + {\begin{vplace}\noindent\msu@copyrightalign Copyright by\\\MakeUppercase{\theauthor}\\\thedate\end{vplace}} \clearpage} % make the dedication page @@ -613,19 +697,22 @@ % Modified 2021/06/10 to deal with both in-chapter and end of document appendices % \newcommand{\msu@apppage}{% - \@setuppart +% \@setuppart \cftinserthook{toc}{\msu@apptype} % extra space or not added 2021/06/10 - \mempreaddapppagetotochook - \addappheadtotoc - \mempostaddapppagetotochook - \partmark{\appendixpagename}% - \memapppageinfo{\appendixpagename}% - \cftinserthook{toc}{APPENDICES} % reset for subappendices added 2021/06/10 - {\centering - \interlinepenalty \@M - \normalfont - \printparttitle{\appendixpagename}\par}% - \@endpart} +% \mempreaddapppagetotochook +% \addappheadtotoc +% \mempostaddapppagetotochook +% \partmark{\appendixpagename}% +% \memapppageinfo{\appendixpagename}% +% reset for subappendices added 2021/06/10 +% {\centering +% \interlinepenalty \@M +% \normalfont +% \printparttitle{\appendixpagename}\par}% +% \@endpart} +} +%\let\msu@apppage\relax + % % Code for appendix/appendices @@ -637,20 +724,20 @@ % appendices. % \renewenvironment{appendix}% - {\renewcommand{\appendixname}{Appendix} - \renewcommand{\appendixtocname}{Appendix} - \renewcommand{\appendixpagename}{Appendix} + {\renewcommand{\appendixname}{\MakeUppercase{Appendix}} + \renewcommand{\appendixtocname}{\MakeUppercase{Appendix}} + \renewcommand{\appendixpagename}{\MakeUppercase{Appendix}} % It's not clear if this should apply to per-chapter appendices also % I think it probably should, even though it leads to ambiguity. % Changing this in 3.2 2022/04/16 % \ifmsu@chapterapp\else \msu@singleappendixtrue % \fi% make sure single appendix doesn't have a number if global 3.1b (always 3.2) - \msu@apppage\settocdepth{part}\@resets@pp\anappendixtrue}% + \msu@apppage\cftinserthook{toc}{SINGAPP}\settocdepth{chapter}\@resets@pp\anappendixtrue}% {\@ppsaveapp\@pprestoresec\anappendixfalse\cftinserthook{toc}{CHAPAPPR}} % reset aded 2022/04/16 \renewenvironment{appendices}% - {\msu@apppage\settocdepth{chapter} + {\msu@singleappendixfalse\msu@apppage\ifmsu@chapterapp\cftinserthook{toc}{APPENDICES}\fi\settocdepth{chapter} \@resets@pp\anappendixtrue}% {\@ppsaveapp\@pprestoresec\anappendixfalse\cftinserthook{toc}{CHAPAPPR}} % reset added 2022/04/16 @@ -659,7 +746,7 @@ % requires them to restart from A every chapter. In case they % ever allow a saner numbering system we provide the \msuappendixnumberformat hook % for modifying the numbering scheme if allowed. -% + \renewcommand{\@resets@pp}{% \par @@ -671,7 +758,6 @@ % \restoreapp % removed 6/24/2022 } - % Don't save the appendix counters even for per-chapter appendices %\let\restoreapp\relax % removed 6/24/2022 @@ -684,18 +770,18 @@ \let\bibtocname\bibname % moved inside this page to beat apacite \let\bibpagename\bibname \cftinserthook{toc}{\msu@bibtype} - \settocdepth{subsubsection} % changed v2.7 to allow for chapter bibs - \@setuppart - \msu@preaddbibpagetotochook + \settocdepth{section} % changed v2.7 to allow for chapter bibs +% \@setuppart +% \msu@preaddbibpagetotochook \msu@addbibheadtotoc - \msu@postaddbibpagetotochook - \partmark{\bibpagename}% - \msu@bibpageinfo{\bibpagename}% - {\centering - \interlinepenalty \@M - \normalfont - \printparttitle{\bibpagename}\par}% - \@endpart +% \msu@postaddbibpagetotochook +% \partmark{\bibpagename}% +% \msu@bibpageinfo{\bibpagename}% +% {\centering +% \interlinepenalty \@M +% \normalfont +% \printparttitle{\bibpagename}\par}% +% \@endpart \cftinserthook{toc}{BIB}} \newcommand\msu@preaddbibpagetotochook{} @@ -714,11 +800,11 @@ } % Since the bibliography page is the TOC entry we remove the bib in the TOC % when it's introduced -\nobibintoc +\nobibintoc % removed v4 as no longer neededd % Modified 8/7/14 to add the bibliography cover page to the TOC and not the actual bibliography page % This should also work for biblatex even though memoir doesn't check for it -\newcommand*{\makebibliographypage}{\msu@bibpage} +\newcommand*{\makebibliographypage}{} % will be removed soon %\let\makebibliographycover\makebibliographypage No longer needed for compatibility % Informational warnings @@ -734,8 +820,9 @@ % Make bibliography spacing more automatic for biblatex and natbib users 2021/06/10 % This should cover most cases. Otherwise just set single spacing \@ifpackageloaded{biblatex} - {\renewcommand{\bibsetup}{\SingleSpacing\setlength{\bibitemsep}{\baselineskip}}} % biblatex - {\@ifpackageloaded{natbib} + {\renewcommand{\bibsetup}{\msu@bibpage\SingleSpacing\setlength{\bibitemsep}{\baselineskip}}} % biblatex + {\pretocmd{\bibliography}{\msu@bibpage}{}{} + \@ifpackageloaded{natbib} {\AtBeginEnvironment{thebibliography}{\SingleSpacing\setlength{\bibsep}{\baselineskip}}} % natbib {\AtBeginEnvironment{thebibliography}{\SingleSpacing}}} % any other bib package %\topskip=0pt % setting this because the Grad School doesn’t know how to measure -changed back 6/15/17 @@ -749,20 +836,21 @@ %\DeclareMathSizes{10}{10}{10}{10} % % check for hyperref -% The hyperref code allows hyperref to be used. It is not guaranteed to -% work and has been lightly tested. -% Thanks to Florent Chervet for the code. +% The hyperref code allows hyperref to be used. Requires a very new 2022 or > kernel +% Code here from Ulrike Fischer % Added hypersetup to remove borders around links 5/9/16 \@ifpackageloaded{hyperref}% {\hypersetup{pdfborder= 0 0 0} -\msu@hyperloadedtrue - \def\MakeLinkUppercase \hyper@linkstart #1#2#3\hyper@linkend - {\hyper@linkstart {#1}{#2}{\MakeUppercase{#3}}\hyper@linkend } -\pdfstringdefDisableCommands{\let\MakeUppercase \@firstofone } -\renewcommand*{\l@chapter}[2]{% - \l@chapapp{\MakeLinkUppercase #1}{#2}{\cftchaptername}} % Format chapter names -\renewcommand*{\l@appendix}[2]{% - \l@chapapp{\MakeLinkUppercase #1}{#2}{\cftappendixname}} % Format appendix names (changed 13/12/17) +\robustify \hyper@linkend +\NewCommandCopy\ori@hyper@linkstart\hyper@linkstart +\RenewExpandableDocumentCommand\hyper@linkstart{mm} + {% + \CaseSwitch% + {\ori@hyper@linkstart{#1}{#2}}% remove spurious space v4 + {\ori@hyper@linkstart{#1}{#2}}% + {\ori@hyper@linkstart{#1}{#2}}% + {\ori@hyper@linkstart{#1}{#2}}% + } \apptocmd{\@resets@pp}{\gdef\theHchapter{\arabic{msu@hchap}}}{}{} % get hypertargets in appendices right (added v3.0; fixed v3.0b) } % if no hyperref diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.pdf b/macros/latex/contrib/msu-thesis/msu-thesis.pdf Binary files differindex 18ceda29d0..c48ab61034 100644 --- a/macros/latex/contrib/msu-thesis/msu-thesis.pdf +++ b/macros/latex/contrib/msu-thesis/msu-thesis.pdf diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf Binary files differnew file mode 100644 index 0000000000..dffeb0b1ac --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex new file mode 100644 index 0000000000..9f7948b3f3 --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex @@ -0,0 +1,51 @@ +% !TEX TS-program = pdfLaTeXmk +% Test file for per-chapter stuff using natbib+chapterbib +% +\documentclass[chapterbib,chapterapp]{msu-thesis} +\usepackage[T1]{fontenc} +\usepackage{newtxtext,newtxmath} +\usepackage[]{chapterbib} +\usepackage[]{natbib} +\usepackage{lipsum} + +\usepackage{hyperref} + + +\title{A thesis using per-chapter appendices and bibliographies} +\author{Joe Linguist} +\fieldofstudy{Linguistics} % This should be in sentence case +\date{2021} + +\begin{document} +\frontmatter +\maketitlepage +\begin{abstract} +\lipsum[1] +\end{abstract} +\clearpage +\makecopyrightpage +\clearpage +% Your Acknowledgements are formatted like a chapter, but with no number +\chapter*{Acknowledgements} +\DoubleSpacing % Acknowledgements should be double spaced + I would like to acknowledge lots of people...\lipsum +% + \clearpage + +% We need to turn single spacing back on for the contents/figures/tables lists +\SingleSpacing +\tableofcontents* % table of contents will not be listed in the TOC + +\clearpage +\listoftables % comment this out if you have no tables +\clearpage +\listoffigures % comment this out if you have no figures +\mainmatter + +\include{chap1bib} +\include{chap2bib} +\include{chap3bib} +\include{chap4bib} +\chapter{Conclusions} + +\end{document} diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf Binary files differnew file mode 100644 index 0000000000..6a6d87acd1 --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex index 268a3df64e..33580d3f0a 100644 --- a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex @@ -1,5 +1,5 @@ % This is a template for use with the MSU Thesis class -% Version 3.4 2022/06/30 +% Version 3.6 2022/08/23 % % Class options: %[PhD] Doctor of Philosophy (default) @@ -88,7 +88,7 @@ % to the right, even though that has been the format for more than a decade. % If they want the copyright mark aligned to the left, use \makecopyrightpage* instead. -\makecopyrightpage % use starred option to align on the left of the page +\makecopyrightpage % If you have a dedication page, uncomment the next command to print the dedication page % @@ -104,12 +104,22 @@ Your acknowledgements here. % We need to turn single spacing back on for the contents/figures/tables lists \SingleSpacing \tableofcontents* % table of contents will not be listed in the TOC +%\clearpage +%\listoftables % comment this out if you have no tables +%\clearpage +%\listoffigures % comment this out if you have no figures +% +% If you have a Key to Abbreviations/symbols you would add each abbreviation in its display order +% using as in the following examples: +\msuabbrev{ASU}{Arizona State University} +\msuabbrev{MIT}{Massachusetts Institute of Technology} +\msuabbrev{MSU}{Michigan State University} +% Then issue a \clearpage and print the list \clearpage -\listoftables % comment this out if you have no tables -\clearpage -\listoffigures % comment this out if you have no figures -% -% If you have a list of abbreviations/symbols it would go here preceded by a \clearpage +\listofabbreviations +% Comment out the code above if you have no abbreviations +% See the documentation if you need to change the width or format of the abbreviation column + % See the class documentation and the Memoir manual for how to create other lists % % If you are using an algorithm formatting package (e.g. algorithmicx or algorithm2e) @@ -138,6 +148,20 @@ Your acknowledgements here. %\pagestyle{plain} % remember to change the pagestyle back to plain % % +% Your bibliography command here +% e.g. \bibliography{your-bib-file}) if using natbib +% e.g. \printbibliography if using biblatex +% +% Remember that although the bibliography is single spaced, there needs to +% be a blank line between entries. This is set by your bibliography package +% If you are using natbib it is \bibsep; if using biblatex it's \bibitemsep +% These are set automatically by the class if you are using these packages +% +% If you need per-chapter bibliographies, you need to use the [chapterbib] +% class option and you would use \makebibliographypage before each +% chapter level bibliography and then the relevant bibliography command +% You should not use the \backmatter command +% % If you have appendices, they would go here. % If you only have one appendix it will look like this: (comment this out if you have no appendices) \begin{appendix} @@ -158,32 +182,6 @@ Your acknowledgements here. % Even though it is very unintuitive, per-chapter appendices are STILL \chapter commands % in your document! If you use \section it will not work properly. % -% You should not use the \backmatter command before per-chapter material! -% There should only be ONE \backmatter command in your document, -% and it should separate only the thesis from the bibliography -\backmatter -% The next lines add the dots back into the References/Bibliography heading -% of the TOC. Only uncomment this if you need to put the dots back in having removed them for Chapter headings. -% -%\addtocontents{toc}{% -% \protect\renewcommand{\protect\cftchapterdotsep} {\cftdotsep}} -% -\makebibliographypage % make the bibliography cover page -% -% -% Your bibliography command here -% e.g. \bibliography{your-bib-file}) if using natbib -% e.g. \printbibliography if using biblatex -% -% Remember that although the bibliography is single spaced, there needs to -% be a blank line between entries. This is set by your bibliography package -% If you are using natbib it is \bibsep; if using biblatex it's \bibitemsep -% These are set automatically by the class if you are using these packages -% -% If you need per-chapter bibliographies, you need to use the [chapterbib] -% class option and you would use \makebibliographypage before each -% chapter level bibliography and then the relevant bibliography command -% You should not use the \backmatter command before per-chapter material -% +% You should not use the \backmatter command \end{document} diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib index 3295073e92..4c158792a4 100644 --- a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib @@ -2,26 +2,44 @@ %% http://bibdesk.sourceforge.net/ -%% Created for Alan Munn at 2017-06-23 13:07:54 -0400 +%% Created for Alan Munn at 2022-12-14 14:34:58 -0500 %% Saved with string encoding Unicode (UTF-8) +@book{Chomsky1986, + address = {Cambridge Mass.}, + author = {Noam Chomsky}, + date-added = {2022-12-14 14:34:46 -0500}, + date-modified = {2022-12-14 14:34:46 -0500}, + publisher = {{MIT} Press}, + title = {Barriers}, + year = {1986}} + +@book{Chomsky1995, + address = {Cambridge, Mass.}, + author = {Noam Chomsky}, + date-added = {2022-12-14 14:34:46 -0500}, + date-modified = {2022-12-14 14:34:46 -0500}, + publisher = {MIT Press}, + title = {The Minimalist Program}, + year = {1995}} + @article{Munn1999, - Author = {Alan Munn}, - Date-Modified = {2017-06-22 21:40:46 +0000}, - Journal = {Linguistic Inquiry}, - Pages = {643-668}, - Title = {First Conjunct Agreement: Against a Clausal Analysis}, - Volume = {30}, - Year = {1999}} + author = {Alan Munn}, + date-modified = {2017-06-22 21:40:46 +0000}, + journal = {Linguistic Inquiry}, + pages = {643-668}, + title = {First Conjunct Agreement: Against a Clausal Analysis}, + volume = {30}, + year = {1999}} @article{Munn2005, - Author = {Alan Munn and Cristina Schmitt}, - Journal = {Lingua}, - Pages = {821-855}, - Title = {Number and Indefinites}, - Volume = {115}, - Year = {2005}} + author = {Alan Munn and Cristina Schmitt}, + journal = {Lingua}, + pages = {821-855}, + title = {Number and Indefinites}, + volume = {115}, + year = {2005}} diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf Binary files differindex a2f192bdda..7ec3fc86e9 100644 --- a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex index 7cc0d964cc..a8fb4fdd6c 100644 --- a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex +++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex @@ -3,7 +3,7 @@ \listfiles \documentclass[lscape]{msu-thesis} -\setabstractnamespace{0} + % lscape option is needed for this sample file to show correct placement % of page numbers on landscape pages. If you don't have any landscape pages % in your document, you don't need to load this option. @@ -13,21 +13,28 @@ % \usepackage{natbib} \bibliographystyle{apalike} - +\usepackage[labelfont=bf, + format=plain, + justification=raggedright, + singlelinecheck=off]{caption} % If you need newlines in your title, you must use \protect\\ \title{Topics in the Syntax and Semantics of Phonology} \author{Joe Linguist} -\fieldofstudy{Linguistics} +\dualmajor{Linguistics}{Computer Science} \dedication{This thesis is dedicated to someone.} \date{2021} \usepackage{listings} \lstset{language=TeX,basicstyle={\ttfamily}} \usepackage{lipsum} \usepackage{xcolor} +\usepackage{enumitem} +\usepackage[unit=in]{fgruler} \usepackage{gb4e} +\makeatletter +%\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} -\usepackage[bookmarksopenlevel=2,bookmarks=true]{hyperref} % not needed but here for testing +\makeatother \counterwithin{exx}{chapter} \singlegloss @@ -36,18 +43,21 @@ %\patchcommand{\exe}{\SingleSpacing}{} % This code is an example of how to set up a new list of -\newlistof{listoflistings}{lol}{List of Listings} +\newcommand{\listlistingsname}{List of Listings} +\newlistof{listoflistings}{lol}{\listlistingsname} \newfloat[chapter]{listing}{lol}{Listing} \newlistentry{listing}{lol}{0} \renewcommand*{\cftlistingname}{Listing\space} \renewcommand*{\cftlistingaftersnum}{\msucaptiondelim} +\usepackage[bookmarksopenlevel=2,bookmarks=true]{hyperref} % not needed but here for testing \begin{document} \frontmatter \maketitlepage -\begin{publicabstract} -\lipsum[1] -\end{publicabstract} +% public abstract removed v4 +%\begin{publicabstract} +%\lipsum[1] +%\end{publicabstract} \begin{abstract} \lipsum[1-6] \end{abstract} @@ -62,18 +72,18 @@ \SingleSpacing \tableofcontents* % ToC will not appear in the table of contents \clearpage -\listoftables +% removed other contents lists as per recommendations v4! +%\listoftables \clearpage -\listoffigures +%\listoffigures \clearpage -\listoflistings -\clearpage -\chapter{Key to Abbreviations} -\vspace{\cftparskip} % This is needed to make the list look like the other LoF/LoT/LoL etc. -\begin{description} -\item[foo] This is a foo -\item[bar] This is a bar -\end{description} +%\listoflistings +% Add all the abbreviations here in their sorted order using \msuabbrev +\begin{abbreviations} +\abbrev{ASA}{A small abbreviation} +\abbrev{ABA}{An abbreviation with an explanation so long that the explanation should wrap to the next line and align properly with the previous line} +\end{abbreviations} +% Then print the list \mainmatter % The next command changes chapters in the TOC to have no dotted leader %\addtocontents{toc}{\protect\renewcommand{\protect\cftchapterdotsep}{\cftnodots}} @@ -264,23 +274,24 @@ A & B & C & D & E & F & G \\ %\begin{appendices} ... \end{appendices} % use this if you have more than one appendix \clearpage +%\backmatter +\bibliography{MSU-thesis-testfile} %\begin{appendix} ... \end{appendix} % use this if you have only one appendix -\begin{appendix} -\chapter{A single appendix} -\lipsum[11] -\end{appendix} +%\begin{appendix} +%\chapter{A single appendix} +%\lipsum[11] +%\end{appendix} -%\begin{appendices} % use this if you have more than one appendix -%\chapter{An appendix} -%\section{An appendix section} -%\lipsum[9-15] -%\chapter{A second appendix} -%\section{An appendix section} -%\lipsum[16-17] -%\end{appendices} -\backmatter +\begin{appendices} % use this if you have more than one appendix +\chapter{An appendix} +\section{An appendix section} +\lipsum[9-15] +\chapter{A second appendix} +\section{An appendix section} +\lipsum[16-17] +\end{appendices} % This command creates the cover page for the bibliography -\makebibliographypage -\bibliography{MSU-thesis-testfile} +%\makebibliographypage + \end{document} diff --git a/macros/latex/contrib/msu-thesis/samples/chap1bib.tex b/macros/latex/contrib/msu-thesis/samples/chap1bib.tex new file mode 100644 index 0000000000..71f0d1c6db --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/chap1bib.tex @@ -0,0 +1,15 @@ +\chapter{Introduction} +Intro things \lipsum +\cite{Munn1999,Chomsky1981} +\section{A section} +\lipsum[1] +\subsection{A subsection} +\lipsum[2] + +\bibliographystyle{apalike} +\bibliography{MSU-thesis-testfile} + +\begin{appendix} +\chapter{An appendix} +This is some text +\end{appendix} diff --git a/macros/latex/contrib/msu-thesis/samples/chap2bib.tex b/macros/latex/contrib/msu-thesis/samples/chap2bib.tex new file mode 100644 index 0000000000..5f0fc7293d --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/chap2bib.tex @@ -0,0 +1,19 @@ +\chapter{One} +\section{A section} +\lipsum \cite{Chomsky1986,Chomsky1995} +\subsection{A subsection} +\lipsum[1] +\subsection{Another subsection} +\lipsum[2] +\section{Another section} +\lipsum[3] + +\bibliographystyle{apalike} +\bibliography{MSU-thesis-testfile} +\begin{appendices} + \chapter{An appendix} + \chapter{An appendix} +\end{appendices} +% Add before bibliography call + +%\makebibliographypage diff --git a/macros/latex/contrib/msu-thesis/samples/chap3bib.tex b/macros/latex/contrib/msu-thesis/samples/chap3bib.tex new file mode 100644 index 0000000000..99788108d0 --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/chap3bib.tex @@ -0,0 +1,13 @@ +\chapter{Two} +\section{A section} +\lipsum \cite{Chomsky1986,Chomsky1995,Munn2000} +\subsection{A subsection} +\lipsum + +\bibliographystyle{apalike} +\bibliography{MSU-thesis-testfile} +\begin{appendix} +\chapter{Tables and figures} +% \section{A subsection} % This is a problems +\end{appendix} +% Add before bibliography call diff --git a/macros/latex/contrib/msu-thesis/samples/chap4bib.tex b/macros/latex/contrib/msu-thesis/samples/chap4bib.tex new file mode 100644 index 0000000000..4c9f059c92 --- /dev/null +++ b/macros/latex/contrib/msu-thesis/samples/chap4bib.tex @@ -0,0 +1,16 @@ +\chapter{Three} +\section{A section} +\lipsum \cite{Chomsky1986,Chomsky1995} +\subsection{A subsection} +\lipsum[2] + +\bibliographystyle{apalike} +\bibliography{MSU-thesis-testfile} + +\begin{appendices} + \chapter{Tables and Figures} + \lipsum[1] + \chapter{Model Equations} +\lipsum[2] +\end{appendices} +% Add before bibliography call diff --git a/macros/latex/contrib/namedtensor/LICENSE.md b/macros/latex/contrib/namedtensor/LICENSE.md new file mode 100644 index 0000000000..c7c06527ca --- /dev/null +++ b/macros/latex/contrib/namedtensor/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2022 by the University of Notre Dame, Cornell University, and Harvard University. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/macros/latex/contrib/namedtensor/README.md b/macros/latex/contrib/namedtensor/README.md new file mode 100644 index 0000000000..f4443242a9 --- /dev/null +++ b/macros/latex/contrib/namedtensor/README.md @@ -0,0 +1,44 @@ +# Named tensor notation in LaTeX + +This style file provides macros for named tensor notation. Please see +the paper [Named Tensor Notation](https://arxiv.org/abs/2102.13196) +for background on this notation. + +To use the style file, put + + \usepackage{namedtensor} + +into the preamble of your LaTeX source file (after +`\documentclass{article}` but before `\begin{document}`). + +We write axis names in sans-serif font. To make this easier, +`\name{axis}` prints the axis name "axis", and `\ndef{\ax}{axis}` +defines a macro `\ax` that prints the axis name "axis". + +Binary operators + +- Use `A \ndot{\ax} B` for contractions. You can use `\\` to stack up + several names. + +- You can use `\nbin` to make new binary operators. For example, `A + \nbin{\ax}{\star} B` gives you a star operator with "axis" written + under it. + +Functions + +- Use `\nsum{\ax} A` for summation over a named axis. + +- You can use `\nfun` to make new functions. For example, + `\nfun{\ax}{qux} A` defines a function "qux" with "axis" written + under it. + +## Credits + +- David Chiang, University of Notre Dame, dchiang@nd.edu +- Alexander M. Rush, Cornell University, arush@cornell.edu +- Boaz Barak, Harvard University, b@boazbarak.org + +## License + +This software is licensed under the MIT License. Please see LICENSE.md +for copyright notice. diff --git a/macros/latex/contrib/namedtensor/namedtensor.sty b/macros/latex/contrib/namedtensor/namedtensor.sty new file mode 100644 index 0000000000..0f81f68971 --- /dev/null +++ b/macros/latex/contrib/namedtensor/namedtensor.sty @@ -0,0 +1,13 @@ +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{namedtensor}[2021/02/22 v0.4 Named tensors] +\RequirePackage{amsmath} + +\newcommand{\namedtensorstrut}{\vphantom{fg}} % milder than \mathstrut + +\newcommand{\name}[1]{\ensuremath{\mathsf{\namedtensorstrut #1}}} +\newcommand{\nbin}[2]{\mathbin{\underset{\substack{#1}}{\namedtensorstrut #2}}} +\newcommand{\ndot}[1]{\nbin{#1}{\odot}} +\newcommand{\ncat}[1]{\nbin{#1}{\oplus}} +\newcommand{\nsum}[1]{\sum\limits_{\substack{#1}}} +\newcommand{\nfun}[2]{\mathop{\underset{\substack{#1}}{\namedtensorstrut\mathrm{#2}}}} +\newcommand{\ndef}[2]{\newcommand{#1}{\name{#2}}} diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex 8c656653b0..ab2a1ab273 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex index a084d8c5e0..75756a5bb8 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex @@ -62,8 +62,8 @@ \setlength{\parindent}{0pt} \definecolor{LightGray}{gray}{0.9} -\def\PLversion{2.0.6} -\def\PLdate{30 Novembre 2022} +\def\PLversion{2.0.9} +\def\PLdate{15 Décembre 2022} \tcbset{vignettes/.style={% nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% @@ -263,6 +263,8 @@ Des commandes pour effectuer des calculs de probas (lois binomiale, exponentiell Une commande pour, en \TikZ, créer des arbres de probas \og classiques \fg. +Une commande pour générer des listes d'entiers aléatoires (avec ou sans répétitions). + \vspace{1.5cm} \hfill{}\textit{Merci à Anne pour ses retours et sa relecture !} @@ -1684,6 +1686,7 @@ Plusieurs \Cle{clés} sont disponibles : \begin{itemize} \item la clé booléenne \Cle{Lignes} pour afficher ou non les numéros de lignes ; \hfill{}défaut \Cle{true} \item la clé \Cle{Largeur} qui correspond à la largeur de la \ctex{tcbox} ; \hfill{}défaut \Cle{\textbackslash linewidth} + \item la clé \Cle{TaillePolice} pour la taille des caractères ; \hfill{}défaut \Cle{\textbackslash footnotesize} \item la clé \Cle{Alignement} qui paramètre l'alignement de la \ctex{tcbox}. \hfill{}défaut \Cle{center} \end{itemize} \end{codecles} @@ -1800,6 +1803,8 @@ Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} mo \begin{itemize} \item \Cle{Largeur} : largeur de la \textit{tcbox} ;\hfill{}défaut \Cle{\textbackslash linewidth} \item \Cle{Centre} : booléen pour centrer ou non la \textit{tcbox} ;\hfill{}défaut \Cle{true} + \item \Cle{TaillePolice} : taille des caractères ;\hfill{}défaut \Cle{\textbackslash footnotesize} + \item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1} \item \Cle{Lignes} : booléen pour afficher ou non les numéros de ligne.\hfill{}défaut \Cle{true} \end{itemize} \end{codecles} @@ -1914,6 +1919,8 @@ Les \Cle{Clés} disponibles sont : \begin{itemize} \item \Cle{Largeur} : largeur de la \textit{console} ;\hfill{}défaut \Cle{\textbackslash linewidth} \item \Cle{Centre} : booléen pour centrer ou non la \textit{console} ;\hfill{}défaut \Cle{true} + \item \Cle{TaillePolice} : taille des caractères ;\hfill{}défaut \Cle{\textbackslash footnotesize} + \item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1} \item \Cle{Label} : booléen pour afficher ou non le titre.\hfill{}défaut \Cle{true} \end{itemize} \end{codecles} @@ -4099,6 +4106,103 @@ Pour le moment, seules les lois (continues) exponentielles et normales sont disp \newpage +\section{Nombres aléatoires}\label{entiersaleatoires} + +\subsection{Idée} + +\begin{codeidee} +\cmaj{2.0.9} L'idée est de proposer des commandes pour générer des nombres aléatoires, pour exploitation ultérieure : + +\begin{itemize} + \item un entier ou un nombre décimal ; + \item des nombres entiers, avec ou sans répétitions. +\end{itemize} +\end{codeidee} + +\begin{codeinfo} +Pour chacune des commandes, le ou les résultats sont stockés dans une \textsf{macro} dont le nom est choisi par l'utilisateur. +\end{codeinfo} + +\begin{codetex}[listing only] +%entier aléatoire entre a et b +\NbAlea{a}{b}{<macro>} + +%nombre décimal (n chiffres après la virgule) aléatoire entre a et b+1 (exclus) +\NbAlea[n]{a}{b}{<macro>} + +%création d'un nombre aléatoire sous forme d'une macro +\VarNbAlea{<macro>}{<calculs>} + +%liste d'entiers aléatoires +\TirageAleatoireEntiers[<options>]{<macro>} +\end{codetex} + +\begin{codetex}[] +%nombre aléatoire entre 1 et 50, stocké dans \PremierNbAlea +Entier entre 1 et 50 : \NbAlea{1}{50}{\PremierNbAlea}\PremierNbAlea + +%nombre aléatoire créé à partir du 1er, stocké dans \DeuxiemeNbAlea +Entier à partir du précédent : \VarNbAlea{\DeuxiemeNbAlea}{\PremierNbAlea+randint(0,10)}\DeuxiemeNbAlea + +%nombre aléatoire décimal (au millième) entre 0 et 10+1 (exlus), stocké dans \PremierDecAlea +Décimal entre 0 et $10,999\ldots$ : \NbAlea[3]{0}{10}{\PremierDecAlea}\PremierDecAlea + +%liste de 6 nombres, sans répétitions, entre 1 et 50 +Liste par défaut (6 entre 1 et 50) : \TirageAleatoireEntiers{\PremiereListeAlea}\PremiereListeAlea +\end{codetex} + +\begin{codeinfo} +Les listes créées sont exploitables, \textit{a posteriori}, par le package \ctex{listofitems} par exemple ! +\end{codeinfo} + +\begin{codetex}[] +Liste générée : \TirageAleatoireEntiers{\TestListeA}\TestListeA + +Liste traitée : \readlist*\LISTEa{\TestListeA}\showitems{\LISTEa} +\end{codetex} + +\pagebreak + +\subsection{Clés et options} + +\begin{codecles} +Quelques clés sont disponibles pour la commande \ctex{TirageAleatoireEntiers} : + +\begin{itemize} + \item la clé \Cle{ValMin} pour préciser borne inférieure de l'intervalle ;\hfill{}défaut \Cle{1} + \item la clé \Cle{ValMax} pour préciser borne supérieure de l'intervalle ;\hfill{}défaut \Cle{50} + \item la clé \Cle{NbVal} qui est le nombre d'entiers à générer ;\hfill{}défaut \Cle{6} + \item la clé \Cle{Sep} pour spécifier le séparateur d'éléments ;\hfill{}défaut \Cle{,} + \item la clé \Cle{Tri} parmi \Cle{non/croissant/decroissant} pour trier les valeurs + ;\hfill{}défaut \Cle{non} + \item le booléen \Cle{Repetition} pour autoriser la répétition d'éléments.\hfill{}défaut \Cle{false} +\end{itemize} +\end{codecles} + +\begin{codetex}[] +Une liste de 15 valeurs (différentes), entre 10 et 100, stockée dans la macro MaListeA : \\ +Liste : \TirageAleatoireEntiers[ValMin=10,ValMax=100,NbVal=15]{\MaListeA}\MaListeA \\ + +Une liste de 12 valeurs (différentes), entre 1 et 50, ordre croissant : \\ +Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=croissant]{\MaListeB}\MaListeB \\ + +Une liste de 12 valeurs (différentes), entre 1 et 50, ordre décroissant : \\ +Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=decroissant]{\MaListeC}\MaListeC \\ + +15 tirages de dé à 6 faces : \\ \TirageAleatoireEntiers[ValMin=1,ValMax=6,NbVal=15,Repetition]{\TestDes}\TestDes +\end{codetex} + +\begin{codetex}[] +Une liste (10) pour le Keno\textcopyright, ordonnée, et séparée par des \texttt{-} : + +\TirageAleatoireEntiers[ValMin=1,ValMax=70,NbVal=10,Tri=croissant,Sep={-}]{\ListeKeno} +$\ListeKeno$ + +\setsepchar{-}\readlist*\KENO{\ListeKeno}\showitems{\KENO} +\end{codetex} + +\newpage + \part{Outils pour l'arithmétique} \section{Conversions binaire/hexadécimal/décimal}\label{conversions} @@ -5469,9 +5573,13 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0 \part{Historique} -{\small \bverb|v 2.0.6|~:~~~~Changement de taille de la police des codes Python (page \pageref{pythonsimple}) +{\small \bverb|v 2.0.9|~:~~~~Nombres aléatoires, tirages aléatoires d'entiers (page \pageref{entiersaleatoires}) -{\small \bverb| |~:~~~~Ajout d'un environnement pour présenter du code \LaTeX{} (page \pageref{prescode}) +{\small \bverb|v 2.0.8|~:~~~~Ajout d'un environnement pour présenter du code \LaTeX{} (page \pageref{prescode}) + +{\small \bverb|v 2.0.7|~:~~~~Ajout d'options pour stretch et fonte env python(s) (pas tous...) + +{\small \bverb|v 2.0.6|~:~~~~Changement de taille de la police des codes Python (page \pageref{pythonsimple}) {\small \bverb|v 2.0.5|~:~~~~Correction d'un bug avec les calculs de suites récurrentes (page \pageref{calcrecurr}) diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index fbd1a83b54..6cc5b21e24 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,9 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2022/11/30 2.0.6 Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2022/12/15 2.0.9 Aide pour l'utilisation de LaTeX en lycee] +% 2.0.9 Ajouts de commandes pour générer des nombres et listes aléatoires +% 2.0.8 Ajout d'options pour stretch et fonte env python(s) (pas tous...) % 2.0.6 Quelques modifications sur les codes python (taille police et marges)... % 2.0.5 Correction d'un bug avec les calculs en valeurx exactes avec les suites récurrentes... % 2.0.4 Ajout d'une commande pour présenter un balayage (TVI) + calculs suites récurrentes @@ -75,6 +77,8 @@ \RequirePackage{xstring} \RequirePackage{xintexpr} \RequirePackage{xintbinhex} +\RequirePackage{xinttools} +\RequirePackage{randomlist} \RequirePackage{simplekv} \RequirePackage{listofitems} \RequirePackage{tabularray} @@ -308,11 +312,11 @@ \xintifboolexpr{\CFL == 1}%si c'est la première ligne {\coordinate (A0\CFL) at (0,0);} {\coordinate (A0\CFL) at ($(A2\CFLA) + (0,{-\CFesplg})$);} - \coordinate (A1\CFL) at ($(A0\CFL) + (0,{-\CFhle})$); - \coordinate (A2\CFL) at ($(A1\CFL) + (0,{-\CFhlr})$); - \coordinate (A3\CFL) at ($(A0\CFL) + ({\CFlarg},0)$); - \coordinate (A4\CFL) at ($(A1\CFL) + ({\CFlarg},0)$); - \coordinate (A5\CFL) at ($(A2\CFL) + ({\CFlarg},0)$); + \coordinate (A1\CFL) at ($(A0\CFL) + (0,{-\CFhle})$); + \coordinate (A2\CFL) at ($(A1\CFL) + (0,{-\CFhlr})$); + \coordinate (A3\CFL) at ($(A0\CFL) + ({\CFlarg},0)$); + \coordinate (A4\CFL) at ($(A1\CFL) + ({\CFlarg},0)$); + \coordinate (A5\CFL) at ($(A2\CFL) + ({\CFlarg},0)$); %DÉCLARATION DES NŒUDS INTERMÉDIAIRES (pour les commandes et les résultats) \coordinate (C1\CFL) at ($(A0\CFL) + (0,{-0.5*\CFhle})$); \coordinate (C2\CFL) at ($(A0\CFL) + ({0.5*\CFlarg},{-0.5*\CFhle})$); @@ -366,13 +370,17 @@ Largeur=\def\CSPYlargeur{#1},% Centre=\testboolKV{#1} {\def\hookcenterpre{\begin{center}}\def\hookcenterpost{\end{center}}} - {\def\hookcenterpre{\begin{flushleft}}\def\hookcenterpost{\end{flushleft}}} + {\def\hookcenterpre{\begin{flushleft}}\def\hookcenterpost{\end{flushleft}}},% + TaillePolice=\def\CSPYfonte{#1},% + EspacementVertical=\def\CSPYstretch{#1} } \setKVdefault[envpythonconsole]{% Largeur=\linewidth,% Centre=true,% - Label=true + Label=true,% + TaillePolice=\footnotesize,% + EspacementVertical=1 } \newenvironment{ConsolePythontex}[1][]{% @@ -383,9 +391,9 @@ \begin{minipage}{\CSPYlargeur} \ifboolKV[envpythonconsole]{Label}%si label {\begin{pyconsole}[][% - framesep=3mm,frame=single,fontsize=\footnotesize,framerule=1pt,rulecolor=\color{ForestGreen},label={[\scriptsize Début de la console python]\scriptsize Fin de la console python}]}% + framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},label={[\scriptsize Début de la console python]\scriptsize Fin de la console python},baselinestretch=\CSPYstretch]}% {\begin{pyconsole}[][% - framesep=3mm,frame=single,fontsize=\footnotesize,framerule=1pt,rulecolor=\color{ForestGreen}]} + framesep=3mm,frame=single,fontsize=\CSPYfonte,framerule=1pt,rulecolor=\color{ForestGreen},baselinestretch=\CSPYstretch]} } { \end{pyconsole} @@ -396,6 +404,8 @@ %=========CODEPYTHONTEX=========== OK!! \defKV[envpythonverb]{% Largeur=\def\CODPYlargeur{#1},% + TaillePolice=\def\CODPYfonte{#1},% + EspacementVertical=\def\CODPYstretch{#1},% Centre=\testboolKV{#1} {\def\verbcenterpre{\begin{center}}\def\verbcenterpost{\end{center}}} {\def\verbcenterpre{}\def\verbcenterpost{}} @@ -404,7 +414,9 @@ \setKVdefault[envpythonverb]{% Largeur=\linewidth,% Centre=true,% - Lignes=true + Lignes=true,% + TaillePolice=\footnotesize,% + EspacementVertical=1 } \tcbset{stylepythontex/.style={% @@ -429,16 +441,16 @@ \tcbset{stylepythonnolineos/.style={% stylepythontex,leftupper=10pt, colframe=Green,colback=ForestGreen!5,% - fontlower=\small,% - before upper = \renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} +% fontlower=\small,% + before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} } } \tcbset{stylepythonlineos/.style={% stylepythontex,leftupper=25pt, colframe=Green,colback=ForestGreen!5,% - fontlower=\small,% - before upper = \renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} +% fontlower=\small,% + before upper=\renewcommand\theFancyVerbLine{\scriptsize\ttfamily\color{Gray}\arabic{FancyVerbLine}} } } @@ -459,8 +471,8 @@ {\begin{tcpythontexcode}[\CODPYlargeur]} {\begin{tcpythontexcodeno}[\CODPYlargeur]} \ifboolKV[envpythonverb]{Lignes}%si lignes=true - {\begin{pyverbatim}[][fontsize=\footnotesize,numbers=left,numbersep=10pt,commandchars=\\\{\},mathescape]} - {\begin{pyverbatim}[][numbers=none,numbersep=0pt,fontsize=\footnotesize,commandchars=\\\{\},mathescape]} + {\begin{pyverbatim}[][fontsize=\CODPYfonte,numbers=left,numbersep=10pt,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} + {\begin{pyverbatim}[][numbers=none,numbersep=0pt,fontsize=\CODPYfonte,commandchars=\\\{\},mathescape,baselinestretch=\CODPYstretch]} } { \end{pyverbatim} @@ -472,20 +484,20 @@ %=========PYTHONMINTED========= OK !! \tcbset{pytmintedno/.style={% - listing engine=minted,minted style=colorful, - minted language=python,listing only, - minted options={tabsize=4,fontsize=\footnotesize,autogobble}, + listing engine=minted,minted style=colorful, + minted language=python,listing only, + minted options={tabsize=4,fontsize=\footnotesize,autogobble}, } } \tcbset{pytminted/.style={% - listing engine=minted,minted style=colorful, - minted language=python,listing only, - minted options={tabsize=4,fontsize=\footnotesize,autogobble,xleftmargin=16pt,linenos,numbersep=10pt}, + listing engine=minted,minted style=colorful, + minted language=python,listing only, + minted options={tabsize=4,fontsize=\footnotesize,autogobble,xleftmargin=16pt,linenos,numbersep=10pt}, } } -\DeclareTCBListing{CodePythonMinted}{ s O{12cm} O{} }{% étoilée sans numéro, taille puis option... +\DeclareTCBListing{CodePythonMinted}{ s D<>{12cm} O{} }{% étoilée sans numéro, taille puis options... \IfBooleanTF{#1}{pytmintedno}{pytminted}, enhanced,width=#2,#3, colframe=Green,colback=ForestGreen!5,% @@ -504,7 +516,7 @@ fonttitle=\color{ForestGreen}\itshape\ttfamily\footnotesize, title={\scriptsize\faPython}\:Code Python\vphantom{y}, watermark text={\faPython},watermark opacity=0.175,watermark zoom=0.50, - before upper = \renewcommand{\theFancyVerbLine}{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} + before upper=\renewcommand{\theFancyVerbLine}{\scriptsize\ttfamily\color{Green}\arabic{FancyVerbLine}} } %=======STYLE ALGO LST========= OK ! @@ -606,13 +618,15 @@ %=========PYTHONPITON========== OK !! \defKV[envpiton]{% Largeur=\def\CODPITlargeur{#1},% - Alignement=\def\CODPITalign{#1} + Alignement=\def\CODPITalign{#1},% + TaillePolice=\def\CODPITfonte{#1} } \setKVdefault[envpiton]{% Largeur=\linewidth,% Alignement=center,% - Lignes=true + Lignes=true,% + TaillePolice=\footnotesize } \ifluatex \RequirePackage{piton} @@ -623,7 +637,7 @@ \ifboolKV[envpiton]{Lignes}%si lignes=true {\PitonOptions{left-margin=auto,line-numbers}}% {\PitonOptions{}}% - \begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontupper=\footnotesize,fontlower=\footnotesize,\CODPITalign] + \begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontupper=\CODPITfonte,fontlower=\CODPITfonte,\CODPITalign] }% {% \end{tcolorbox}% @@ -688,7 +702,7 @@ \newcommand\algomathttPL[1]{\mathtt{#1}} \fi -\DeclareTCBListing{PseudoCode}{ s O{12cm} !O{} }{% étoilée sans numéro, taille puis option... +\DeclareTCBListing{PseudoCode}{ s D<>{12cm} O{} }{% étoilée sans numéro, <taille> puis option... width=#2,#3, stylepseudocodePL, listing only,listing engine=listings, @@ -749,7 +763,7 @@ \end{tblr} } -\DeclareTCBListing{TerminalWin}{ O{\linewidth} m !O{} }{%[taille] puis {Titre=...} puis [option] +\DeclareTCBListing{TerminalWin}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option] PLfaketermwin,title={\termwintitre[#2]},% listing only,listing engine=listings,% listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},% @@ -800,7 +814,7 @@ \end{tblr} } -\DeclareTCBListing{TerminalUnix}{ O{\linewidth} m !O{} }{%[taille] puis {Titre=...} puis [option] +\DeclareTCBListing{TerminalUnix}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option] PLtermlinux,title={\termnuxtitre[#2]},% listing only,listing engine=listings,% listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},% @@ -850,7 +864,7 @@ \end{tblr} } -\DeclareTCBListing{TerminalOSX}{ O{\linewidth} m !O{} }{%[taille] puis {Titre=...} puis [option] +\DeclareTCBListing{TerminalOSX}{ D<>{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option] PLfaketermosx,title={\termosxtitre[#2]},% listing only,listing engine=listings,% listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},% @@ -1367,9 +1381,9 @@ %#4 = décalage %\shorthandoff{:}\shorthandoff{!} %bizzzzzzzzare %\NoAutoSpacing - \coordinate (Z) at ($(T2#2)!.5!(T2\the\numexpr#2+1\relax)$) ; + \coordinate (ZZZ) at ($(T2#2)!.5!(T2\the\numexpr#2+1\relax)$) ; %\shorthandon{:}\shorthandon{!} - \path (Z.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\MiniSchemaSignes[#1]}} ; + \path (ZZZ.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\MiniSchemaSignes[#1]}} ; } %=============RegressionLinéaire======= OK !! @@ -1538,7 +1552,7 @@ \xintBinToHex{\chbrut}\ifboolKV[CONVBINHEX]{AffBase}{_{16}}{} } -%bin/hexa/bin->dec avec écriture polynomiale +%hexa/bin->dec avec écriture polynomiale \defKV[CONVTODEC]{% BaseDep=\def\basedepart{#1} } @@ -1615,7 +1629,7 @@ {} \num{\xintBinToDec{\nbdepart}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{} }% - {} + {}% } \newcommand\ConversionBaseDix[3][]{%1=options,%2=nb,%3=basedep ?? @@ -1645,14 +1659,14 @@ \advance\cpt by 1 \repeat = - } - {} - \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{} + }% + {}% + \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}% } %==============MainLevée TikZ========== OK !! \tikzset{% - mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}}, + mainlevee/.style args={#1et#2}{decorate,decoration={random steps,segment length=#1,amplitude=#2}}, mainlevee/.default={5mm et 0.6pt} } @@ -1681,7 +1695,7 @@ \foreach \l [count=\n] in \csvline {% \StrDel{\l}{ }[\l] \setsepchar{,} - \readlist\LCPA\PATcouleurs + \readlist*\LCPA\PATcouleurs \StrPosition{\PATlettres}{\l}[\pixcnt]% \xintifboolexpr{\pixcnt>0}% {% @@ -1703,7 +1717,7 @@ \foreach \l [count=\n] in \csvline {% \StrDel{\l}{ }[\l] \setsepchar{,} - \readlist\LCNA\PATchiffres + \readlist*\LCNA\PATchiffres \StrPosition{\PATlettres}{\l}[\pixpos]% \xintifboolexpr{\pixpos>0}% {% @@ -1955,14 +1969,14 @@ \StrBetween{\point}{(}{,}[\XPT] \StrBetween{\point}{,}{)}[\YPT] \IfStrEq{\ptsstyle}{o}% - {\filldraw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) circle[radius=\ptstaille] ;} - {} + {\filldraw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) circle[radius=\ptstaille] ;} + {} \IfStrEq{\ptsstyle}{x}% - {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} - {} + {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} + {} \IfStrEq{\ptsstyle}{+}% - {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} - {} + {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} + {} } } @@ -1977,18 +1991,18 @@ \def\LNB{\inteval{\LXlen}} \foreach \i in {1,2,...,\LNB} { \IfStrEq{\ptsstyle}{o}% - { - \IfSubStr{\ptscouleur}{/} - {\StrCut{\ptscouleur}{/}{\ptscouleurA}{\ptscouleurB}\draw[thick,\ptscouleurA,fill=\ptscouleurB] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} - {\draw[\ptscouleur,fill=\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} - } - {} + { + \IfSubStr{\ptscouleur}{/} + {\StrCut{\ptscouleur}{/}{\ptscouleurA}{\ptscouleurB}\draw[thick,\ptscouleurA,fill=\ptscouleurB] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} + {\draw[\ptscouleur,fill=\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;} + } + {} \IfStrEq{\ptsstyle}{x}% - {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} - {} + {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;} + {} \IfStrEq{\ptsstyle}{+}% - {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} - {} + {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;} + {} } } @@ -2001,7 +2015,7 @@ yg=\def\ptmoyy{#1},% Nom=\def\ptmoynom{#1},% Pos=\def\ptmoypos{#1},% - Decal=\def\ptmoydecal{#1},% + Decal=\def\ptmoydecal{#1}% } \setKVdefault[PLptmoy]{% @@ -2021,12 +2035,12 @@ \useKVdefault[PLptmoy] \setKV[PLptmoy]{#1}% on paramètres les nouvelles clés et on les simplifie \IfStrEq{\ptmoystyle}{o}% - { - \IfSubStr{\ptmoycouleur}{/} - {\StrCut{\ptmoycouleur}{/}{\ptmoycouleurA}{\ptmoycouleurB}\draw[thick,\ptmoycouleurA,fill=\ptmoycouleurB] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} - {\draw[\ptmoycouleur,fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} - } - {} + { + \IfSubStr{\ptmoycouleur}{/} + {\StrCut{\ptmoycouleur}{/}{\ptmoycouleurA}{\ptmoycouleurB}\draw[thick,\ptmoycouleurA,fill=\ptmoycouleurB] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} + {\draw[\ptmoycouleur,fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;} + } + {} \IfStrEq{\ptmoystyle}{x}% {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/45} ;} {} @@ -2136,26 +2150,26 @@ \draw[\BaMEpaisseur,\BaMCouleur] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmin,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmax,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmax,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmed,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmed,{\BaMElevation+0.5*\BaMHauteur}); \draw[\BaMEpaisseur,\BaMCouleur] ({\BaMmin},{\BaMElevation})--({\BaMqu},{\BaMElevation}) ({\BaMqt},{\BaMElevation})--({\BaMmax},{\BaMElevation}) ; \ifboolKV[boiteamoustaches]{AffMoyenne} - {\filldraw[\BaMCouleur] ({\BaMMoyenne},{\BaMElevation}) circle[radius=2.5pt] ;} - {} + {\filldraw[\BaMCouleur] ({\BaMMoyenne},{\BaMElevation}) circle[radius=2.5pt] ;} + {} \ifboolKV[boiteamoustaches]{Pointilles} - { - \draw[\BaMEpaisseur,densely dashed] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmin,0) ; - \draw[\BaMEpaisseur,densely dashed] (\BaMqu,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqu,0) ; - \draw[\BaMEpaisseur,densely dashed] (\BaMmed,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmed,0) ; - \draw[\BaMEpaisseur,densely dashed] (\BaMqt,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqt,0) ; - \draw[\BaMEpaisseur,densely dashed] (\BaMmax,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmax,0) ; - } - {} + { + \draw[\BaMEpaisseur,densely dashed] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmin,0) ; + \draw[\BaMEpaisseur,densely dashed] (\BaMqu,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqu,0) ; + \draw[\BaMEpaisseur,densely dashed] (\BaMmed,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmed,0) ; + \draw[\BaMEpaisseur,densely dashed] (\BaMqt,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqt,0) ; + \draw[\BaMEpaisseur,densely dashed] (\BaMmax,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmax,0) ; + } + {} \ifboolKV[boiteamoustaches]{Valeurs} - { - \filldraw (\BaMmin,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmin}} ; - \filldraw (\BaMqu,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqu}} ; - \filldraw (\BaMmed,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmed}} ; - \filldraw (\BaMqt,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqt}} ; - \filldraw (\BaMmax,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmax}} ; - } - {} + { + \filldraw (\BaMmin,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmin}} ; + \filldraw (\BaMqu,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqu}} ; + \filldraw (\BaMmed,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmed}} ; + \filldraw (\BaMqt,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqt}} ; + \filldraw (\BaMmax,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmax}} ; + } + {} } %================SUDOMATHS============= OK !! @@ -3274,4 +3288,83 @@ }% } +%=================ALEATOIRES============= OK! +\ExplSyntaxOn +\NewDocumentCommand\TriListeCroiss{m} +{ + \clist_sort:Nn #1 + { + \fp_compare:nNnTF {##1} > {##2} + { \sort_return_swapped: } + { \sort_return_same: } + } +} +\NewDocumentCommand\TriListeDecroiss{m} +{ + \clist_sort:Nn #1 + { + \fp_compare:nNnTF {##1} < {##2} + { \sort_return_swapped: } + { \sort_return_same: } + } +} +\ExplSyntaxOff + +\newcommand\NbAlea[4][0]{%entier ou décimal + \xintifboolexpr{#1 == 0}% + {\xdef#4{\fpeval{randint(#2,#3)}}}% + {\xdef#4{\fpeval{round(randint(#2,#3)+rand(),#1)}}}% +} +\newcommand\VarNbAlea[2]{% + \xdef#1{\fpeval{#2}}% +} + +\defKV[TirageAleatoireEntiersEntre]{% + ValMin=\def\TAEEmin{#1},% + ValMax=\def\TAEEmax{#1},% + NbVal=\def\TAEEnb{#1},% + Sep=\def\TAEEsep{#1},% + Tri=\def\TAEEtri{#1} +} + +\setKVdefault[TirageAleatoireEntiersEntre]{% + ValMin=1,% + ValMax=50,% + NbVal=6,% + Sep={,},% + Tri=non,% + Repetition=false +} + +\NewList{TirageEntiersAleatoires} +\NewDocumentCommand\TirageAleatoireEntiers{ O{} m }{%1=options,2=nomliste triée ou non + \useKVdefault[TirageAleatoireEntiersEntre]% + \setKV[TirageAleatoireEntiersEntre]{#1}% + \ifboolKV[TirageAleatoireEntiersEntre]{Repetition}%suivant la possibilité de répéter + {%répétitions autorisées + %création de la liste (le 1er puis les autres) + \xdef#2{\fpeval{randint(\TAEEmin,\TAEEmax)}}% + \foreach \i in {2,3,...,\TAEEnb}% + {\xdef#2{#2,\fpeval{randint(\TAEEmin,\TAEEmax)}}}% + }% + {%pas de répétitions + %melange des nombres + \ClearList{TirageEntiersAleatoires}%on vide la liste aléatoire + \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}% + \do{\InsertRandomItem{TirageEntiersAleatoires}{##1}}% + %création de la liste (le 1er puis les autres) + \xdef#2{\TirageEntiersAleatoires[0]}% + \foreach \i in {1,2,...,{\inteval{\TAEEnb-1}}}% + {\xdef#2{#2,\TirageEntiersAleatoires[\i]}}% + }% + %on trie si besoin + \IfStrEq{\TAEEtri}{croissant}%si tri croissant + {\TriListeCroiss{#2}}% + {}% + \IfStrEq{\TAEEtri}{decroissant}%si tri décroissant + {\TriListeDecroiss{#2}}% + {}% + \StrSubstitute{#2}{,}{\TAEEsep}[#2]%on change le séparateur si besoin +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md index d2c4c6511a..1c7de77929 100644 --- a/macros/latex/contrib/ufrgscca/README.md +++ b/macros/latex/contrib/ufrgscca/README.md @@ -119,7 +119,14 @@ The Current Maintainer of this work is Alceu Frigeri ## Changelog -* Version 1.0.2 (this) +* Version 1.0.4 (this) + - added some package options: pretextontoc and timesroman + - changed default included elements in the Table of Contents (related to the new options, see documentation) + +* Version 1.0.3 + - ufrgscca-cover typo correction + +* Version 1.0.2 - ufrgscca-coord code cleanup - documentation cleanup (typos) - adding class hooks (in case an emergency workaround is needed) diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf index 7ab02e0677..2c8ceac41e 100644 --- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf @@ -263,28 +263,30 @@ endobj endobj 236 0 obj << -/Length 4366 +/Length 4391 /Filter /FlateDecode >> stream -x]K6W(U4c{J$$YCUëGl/@P3эnVv8Cb
4? - - -o]qU[]'!IpXРDQ%*`<$y!`2I0P&:}qm8FId0k* үJ0v -w*쑠7F"Ggi̓p6 [0Um,qJB+@^0)aspM=6Ԕ)N+1?BBT*ͫ-rjPwoF<=ƪhhtPB*U>}ՙCձnh-â1*29Zno=r 111f3xHy@BUm*<$VFΓPsWp$8`m -CV+>N1p`Ž#+u` -LJ)BpwViQ\ -'|:kHBat,$90yj`z+AB"8X) aQsXS,"w%gYTӇV,L0]0$ -JvַAȶJs5N]t -Qz+ U`!0&%@XTqr-F%F -`SՑ̚X\P9a$ɝ0Ubt'"TGO*Ȥ?k=1g2g Ƕ|,z -eVhhkyh{*<z9:*|.R)Yon_g8 !ZB4^m#] |b
!5~i.j]m " -0&]5``o` A1mV] : ]\ EUP-E!$(>]"yN@9A!H. -4'(2CK.T9AQ&'(RH9$GTRM[P=2 yA1 ,dE0#WtZ!d)H~/2h1 <ڧYɈ5qfHS10mBNdqIn!#丢dEoğEAT4.MW̦k~zO'.M73^¦۫%}~x2x`%hƿfHWuxM喡uu+˴reˌ®lat -2B -.)B o1䂐®.)_ ‐A.FԌV~rAH%!]vVsAH`ʮBJ ꂐ\} -S^gNI r"">HԛsJ83dx|՜s;]#*8 |NqRr`^ٝ.5?A9gZ`/`e k0uu_go_c715~UXoWGR*c7rP6l\A4oeP@|~V+]ٝ^ROE!)1)zo9 e1.HYxA#R#z?`"Hdcrj|O86 *#&!4`Sc"]!!1Tb`/p!2 !@ Ad1yȁ 28""EAi&FW`i `'m*bpt?}`Q@2.3ON8$UL -2drK"ՄH:K(RDĖ ESH? /TB^"- :L{
ܕ)gCpgdܵԂE)wG,Crװ%,"Eij-d<!/wg@m'-J`z`A婿KVfsrnK!˵>2_ãq&">#oWEc4Fǩҍ&~Q4Fc4ͣ +x]K6W訮2ez&[x\=+#/)vψ@@];xF +Zّ(ǵCQt鋃><{u|l6chEoLO{X7J:6)(G
!(NHưdz3z5\ݤۣLeQߞsgՃo/+z4fDf̿K.w)=E;?hl),s˱<^Fٸ%R0қB?\(co(bXw=6=>|dO3e}K]^}<LI7rg>yW3]4ƥmֶuVOIeL">d<SJnX7VUCB2Ssi}ȪkRkR.^i5hx +Yx"|})( sS\sM{=etW]sByP09`f9T9)&&8.YE+A@nY)&8js J8'fk.cYs#p} +T\G^90 + P +&M[4\ 5;ӣ}^u:7'9R/ᑐt Rkpܐ(Dn +.Y62^#Laqkkk*Fi( +:A8 +3%r;-!qo/6/vd(aJ֩ak.&]Vk'V=M(.d;%Qᜪe:ĩ6*˻Yo])9]5'Wy`e(݊,F Xq %' 0Jw +0 +?9ZݗR|ugNʲQ:Fi +$8(P
5킳6ʡ. +a=ÂeeYee{ +&/]Bdl"=Bz(rgp NN1`K'P`"mV30v܅hp+p `KO{}Zd3bkҘ /Cg]QRWs,c94?&#l4~:''N0a*xb]}p5[$xF3q$K=]&'0 ++v@jW6Y[PoJ]g`>̮B.>pLs.^ $‐A3. $e䀰BY.ɉ 8`<BR~.N:,
邐.|TBu +a\DP
:P2Pȝ-A5wF\dF +&'@m .He%@ۢMLM,>rxFcLh$'!Iv8{$g1A2~A{gQ|qLc8GTv ly> +X]dvU߽Q6y_N^$oFa9r;[j<|U/NDa՜'iX?+b}TlArcB&1IÎ!p:w@c_ADd$u> 9K!I6 #vk28cHAB0Nli +CS30x0ӄXЫ k0 ī!S0\0lE0LN0,7tBy%vӁp0 +tN 3O^:!H3ma։snKİT4yx-{6pe{J RX~w{MBCVkziţqr:2DH@Q&Qx(($]3no endstream endobj 177 0 obj @@ -302,7 +304,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 418.178 269.145 434.616] +/Rect [203.098 416.198 269.145 432.636] /A << /S /GoTo /D (section.1) >> >> endobj @@ -311,7 +313,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 403.732 286.768 420.17] +/Rect [203.098 401.752 286.768 418.19] /A << /S /GoTo /D (subsection.2) >> >> endobj @@ -320,7 +322,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 386.451 277.148 402.89] +/Rect [203.098 385.18 277.148 401.618] /A << /S /GoTo /D (section.3) >> >> endobj @@ -329,7 +331,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 372.006 276.173 388.444] +/Rect [203.098 370.734 276.173 387.173] /A << /S /GoTo /D (subsection.4) >> >> endobj @@ -338,7 +340,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 357.56 341.693 373.998] +/Rect [203.098 356.288 341.693 372.727] /A << /S /GoTo /D (subsection.5) >> >> endobj @@ -347,7 +349,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 343.114 307.381 359.552] +/Rect [203.098 341.843 307.381 358.281] /A << /S /GoTo /D (subsection.6) >> >> endobj @@ -356,7 +358,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 325.834 318.8 342.272] +/Rect [203.098 325.271 318.8 341.709] /A << /S /GoTo /D (section.7) >> >> endobj @@ -365,7 +367,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 311.388 290.836 327.826] +/Rect [203.098 310.825 290.836 327.263] /A << /S /GoTo /D (subsection.8) >> >> endobj @@ -374,7 +376,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 296.942 275.879 313.38] +/Rect [203.098 296.379 275.879 312.817] /A << /S /GoTo /D (subsection.17) >> >> endobj @@ -383,7 +385,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 282.496 320.262 298.934] +/Rect [203.098 281.933 320.262 298.372] /A << /S /GoTo /D (subsection.26) >> >> endobj @@ -392,7 +394,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 268.05 317.496 284.489] +/Rect [203.098 267.487 317.496 283.926] /A << /S /GoTo /D (subsection.27) >> >> endobj @@ -401,7 +403,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 250.77 316.523 267.208] +/Rect [203.098 250.916 316.523 267.354] /A << /S /GoTo /D (section.126) >> >> endobj @@ -410,7 +412,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 236.324 325.694 252.762] +/Rect [203.098 236.47 325.694 252.908] /A << /S /GoTo /D (subsection.127) >> >> endobj @@ -419,7 +421,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 221.878 328.15 238.316] +/Rect [203.098 222.024 328.15 238.462] /A << /S /GoTo /D (subsection.128) >> >> endobj @@ -428,7 +430,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 207.432 332.948 223.871] +/Rect [203.098 207.578 332.948 224.016] /A << /S /GoTo /D (subsection.129) >> >> endobj @@ -437,7 +439,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 190.152 322.051 206.59] +/Rect [203.098 191.006 322.051 207.445] /A << /S /GoTo /D (section.130) >> >> endobj @@ -446,7 +448,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 175.706 290.836 192.144] +/Rect [203.098 176.56 290.836 192.999] /A << /S /GoTo /D (subsection.131) >> >> endobj @@ -455,7 +457,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 161.26 305.145 177.698] +/Rect [203.098 162.115 305.145 178.553] /A << /S /GoTo /D (subsection.132) >> >> endobj @@ -464,7 +466,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 143.98 324.067 160.418] +/Rect [203.098 145.543 324.067 161.981] /A << /S /GoTo /D (section.133) >> >> endobj @@ -473,7 +475,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 129.534 340.489 145.972] +/Rect [203.098 131.097 340.489 147.535] /A << /S /GoTo /D (subsection.134) >> >> endobj @@ -482,7 +484,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 112.253 316.003 128.692] +/Rect [203.098 114.525 316.003 130.964] /A << /S /GoTo /D (section.135) >> >> endobj @@ -491,7 +493,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 97.808 271.261 114.246] +/Rect [203.098 100.079 271.261 116.518] /A << /S /GoTo /D (subsection.136) >> >> endobj @@ -500,7 +502,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 83.362 310.997 99.8] +/Rect [203.098 85.634 310.997 102.072] /A << /S /GoTo /D (subsection.150) >> >> endobj @@ -509,7 +511,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 66.081 452.119 82.52] +/Rect [203.098 69.062 452.119 85.5] /A << /S /GoTo /D (section.159) >> >> endobj @@ -518,7 +520,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 51.635 290.836 68.074] +/Rect [203.098 54.616 290.836 71.054] /A << /S /GoTo /D (subsection.160) >> >> endobj @@ -527,7 +529,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 37.19 305.145 53.628] +/Rect [203.098 40.17 305.145 56.608] /A << /S /GoTo /D (subsection.161) >> >> endobj @@ -544,34 +546,33 @@ endobj 235 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F44 239 0 R /F47 240 0 R /F68 241 0 R /F65 242 0 R /F72 243 0 R /F77 244 0 R >> +/Font << /F45 239 0 R /F48 240 0 R /F69 241 0 R /F66 242 0 R /F73 243 0 R /F78 244 0 R >> /ProcSet [ /PDF /Text ] >> endobj 277 0 obj << -/Length 5466 +/Length 5454 /Filter /FlateDecode >> stream -x]Y~_7k, -%eQgmCZt/o_&,Y% -Y.d⇟d&y+ǤY^YZkM㗻4ds!LVuɋ*!'qdi2Yc 8k$8dqQkd|<# 8ݹ馈Yq"qCwwƋ8s2C"> C"Nwj/H3">F#
YGTd-PE"x`8/"d$w08!^.#hH:9A78o4%##P>)QI&XB <A(O\ 9B&X VXe^'koacUYTL7^8VcLֆi ز,@ -mi2ì,qK-ahEjAk+3OK.F4ր3^dl?7c^s{ضUU; -d'iCP4QFgU,@
6pb$,/Gŭm, X&@"%l%&_#z,)`MP&AX#45 -V`&E|!&9D:L0:Rnbj#-wg!-8v(n9iyGùGoL"$:%)so<ȅ (} A"_c=kZ"7fhf:iD\+Qzt˃ZuC)$^µ?ȊK[4ˬf4,d묚k7m:!1w&xOc|'1ij`|Gc<2w}bbd9+FK-Ƙ坿1&11M#4Hb@5}1*#& !
m: 1,p>"uhy(1DU-(?C[.([.Ƴb*jLuӞö2Ʃ| -x$vsT;>D/MtLTO^\%Qj2NP!nF!uҜ,b$ .g["ŘQAHBpoMpı%U -=@+\#sx^@!~\~gRq|w |=vT_tmsͨ*Pc`@itD@n'XwV2idy|=/QdR$#̳RT%ωgrqFL4".U]-r\ :@bE[\ qБġ\ 1,u`ǰPdq.tpcyPb5ܺ1)9yHDs] VV< V VĢ.up(@NE~] D"..v3/ -HPQY9!Aq?Z<e}OSDf $6U8MJSӿ J"S28&b,h# -1λcgd&I&d3 -N6`ׯCN@eo_Zw3Qd{|l7i,˥0m~vj)D
TN[E;ޢ7voRn'm1;9^ZgJ@:[J0cW`zgqA-R -k}iL>W8)ߵ~Ի%0ڌsQjtPr#0ĸyM9wHReU4Zdq/@CM{5r}zv#+H\jT.1gc1HN -3 --"Ԉ
L+#%`&a5, dZÊ~atoܝRIS
A)9&PvvI5LI -u!KyIzQP J,~>3ʩ? UgYP)iBT_ M.4bZ,=&pq)KyCXLmf)6YczDe)|ŋdŌI~
<$J#0Ci&=KϠmݞQC eb;36uZ.
k_?[ DK"BF+L}H!IIXFW{@GW~%@F*7.HD˩^$R{seLB9~<$I-$&N2ȏIR6赔'AAJBbh=BYPJB -IP$!E$N2\̒gއU{**P'Hᙸ>[|+ zA
rUZwXCI`vТѫ*YtI\AMƔڀCx*@8 -
lѻV}emB-'s:4pg#k0=bLܾq -.Mq?JMix64ݬ\̀rfR[:bT?]tu*۫D;o[zl~SE%)
k`S)ڮkNP!m>*x1WEnt>\bTQG!9hG]SVYJ +x]Y6~_7"4q$'b=Î Ϭ]<U*UR
%~)$Ysx]G"A"U}78ϛ}+)lB]}Wn,2B*Wtyz_ϊ\:{oOY4^' +6(?wf6&ա3ӁA)xY9N#C6T$'̳t*)@*\5^r+rHnA2Mw馩DnUH]n2͜L/ѨLӝ4-LhHez8PڢRN~FR6b +ԏFؙE2f5Fe]2"gdѭFFldח!5iQ5J2R_fK2";ӸY*!*Ȉ,`v*ˈQKjq*WpMXѐ:[Sylr"%`Ib^8%,d=@V-dmE4%h}!&!pq +Y>B|](éߵvgnWS{W{?O<gJʃF+7E.^qp*W9唼_>{alx!+%O Ȝ^zu/K_ +̈́+y%=bÚ~Qշn9Jk#TLG0LSRxmt7@z}|w '1h7[lpWD ƫ+qyY +,Qièf +¬*M**@U#1cTɨ*U:F9j*2Eb8MX +m%˹%bhҼxk94_6XOtF!M,Wl,h8T,i5W.-Y,0njh&qi@A Ĵ
-R֗ƚDF'
QRMTDC`bou5Q
.bQtxyֶȆ"5IIJ$BCz8H"T]=["H`ϵxm$fRڇ\t-E6^G뎯nk8~%xmG)rś }kΑpQRЮᚘ?uT7(wa|l +3I5y{D^ԞLyӄ)C1UGIHRF$yBpNJRIq$ W8q*-!<'bWIApH9H~aqNj)xW$. +)H1:
8$)f6
^9LIMt4KsBFxg4ΏIM$ 6U4MI!éߌϑD%mkH0$>9P`
#n?ωc"щrCCTw VOVx^pؑxrvNr$a/yTCި9}^w=k^oă70(%T$|Pɺ̹*'aj1oojZ=}k T ߵ:SHLM.W4M^kTyl#)"1"D"N"P"_,b] +Ų!tSS(:4PKlNX"kTnI fR?.)gDüPegLf,0S<T: PLSxF
XifňH,86t#N>D`Cb!vT11ivXYBKdՒH<L^)D"h}xj0ezPpeaC +s^_\}T᳨tW`dXDp?&W. DT»6^ƿe= &9$^$rg\+;Ԩ\*M^:?4;֜S~L1aIoT)r]wNn#y}UJ7v]kbY?zkI +x<<ʜv}8OOˏˮga<Ȕsa\kϢR̆9!ɝK<uݷ}Ït֧S6zvb@vdfo߷bj预̫_鱅}94} +!R7AoXo}.jmߥ)\qMs6,AlrKKo~4 R
r8>;Һ%f{lU8\as<t1)vj5b8ܛ|ΐ4hE=Gޞw;.WSh
}}r[J)r#,FaETˢӻl"e-Nck3aY1Jx14볩*o"X0YQ
~2OLtG2-*^W{:5}p'lc.UU>ƶm߃u|ByI2uRceú:nGSemk8i`G/uG}ux#:" E*'mXBD9t-uJ,s%ϟ&£Szv9k7 *L ӑde4=%phɜ=qp'X^Ȅ^cT[gIrfcS뼂OyexryJCwGf襁UU='U1^z~ސ@)'T]rlA685?ors,q!kߵeg`7\w<˲1Hx,q<5UAYY.*/Gs0N!9ǘg_l}_]Oc7Pd`Zk||K!^ =辻lkw砌.;헳[
wq8%x%ɢ4@|8F鰳w7LIQ}}_<OߞݜE00d¥}͖h3/@K,ᵛ8p`ks㭛!te2=cp]}ʼd!nwX7vT775F +Y;~8;Kh K! 8{M0l+*ߘ;aGڿpe8=o]3y1k|?G;Onʛ^g[.a:yQ^5O +4/֓ebe䙂ȾS^,]'eoX%>&]-Mtd;|ݳwDpwd~3n?t(H,1;Xܥ\fhG%%<FiFaTKT=.eq5J%t5K?P,}=KFmD]0ʨ+̋nKmjdO;gH3RUf eϨK[neTB[yaڏ۪ͨ,*Yd1՝nw_@ČNۈ +ǯ>$$%:|j+mNϐ*9f#AZ_+W20{wQ>tNkzl}E7p\ FwF~+G TbU_i:/0 ywMo_<Y~}NE endstream endobj 276 0 obj @@ -643,7 +644,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 664.229 488.538 680.667] +/Rect [203.098 664.937 488.538 681.376] /A << /S /GoTo /D (section.227) >> >> endobj @@ -652,7 +653,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 649.783 290.836 666.221] +/Rect [203.098 650.492 290.836 666.93] /A << /S /GoTo /D (subsection.228) >> >> endobj @@ -661,7 +662,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 635.337 305.145 651.775] +/Rect [203.098 636.046 305.145 652.484] /A << /S /GoTo /D (subsection.229) >> >> endobj @@ -670,7 +671,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 620.891 275.879 637.33] +/Rect [203.098 621.6 275.879 638.038] /A << /S /GoTo /D (subsection.232) >> >> endobj @@ -679,7 +680,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 603.611 490.814 620.049] +/Rect [203.098 605.028 490.814 621.467] /A << /S /GoTo /D (section.233) >> >> endobj @@ -688,7 +689,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 589.165 386.731 605.603] +/Rect [203.098 590.582 386.731 607.021] /A << /S /GoTo /D (subsection.234) >> >> endobj @@ -697,7 +698,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 574.719 343.869 591.158] +/Rect [203.098 576.137 343.869 592.575] /A << /S /GoTo /D (subsection.235) >> >> endobj @@ -706,7 +707,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 557.439 516.523 573.877] +/Rect [203.098 559.565 516.523 576.003] /A << /S /GoTo /D (section.236) >> >> endobj @@ -715,7 +716,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 542.993 374.47 559.431] +/Rect [203.098 545.119 374.47 561.557] /A << /S /GoTo /D (subsection.237) >> >> endobj @@ -724,7 +725,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 525.712 539.579 542.151] +/Rect [203.098 528.547 539.579 544.985] /A << /S /GoTo /D (section.238) >> >> endobj @@ -733,7 +734,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [140.736 511.267 229.804 527.705] +/Rect [140.736 514.101 229.804 530.54] /A << /S /GoTo /D (section.238) >> >> endobj @@ -742,7 +743,7 @@ endobj /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] -/Rect [203.098 496.821 362.454 513.259] +/Rect [203.098 499.655 362.454 516.094] /A << /S /GoTo /D (subsection.239) >> >> endobj @@ -753,49 +754,47 @@ endobj endobj 5 0 obj << -/D [276 0 R /XYZ 141.732 485.862 null] +/D [276 0 R /XYZ 141.732 488.697 null] >> endobj 9 0 obj << -/D [276 0 R /XYZ 141.732 291.109 null] +/D [276 0 R /XYZ 141.732 293.944 null] >> endobj 13 0 obj << -/D [276 0 R /XYZ 141.732 184.409 null] +/D [276 0 R /XYZ 141.732 187.244 null] >> endobj 275 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F82 280 0 R /F72 243 0 R /F96 281 0 R /F71 282 0 R /F103 283 0 R /F106 284 0 R >> +/Font << /F48 240 0 R /F83 280 0 R /F73 243 0 R /F97 281 0 R /F72 282 0 R /F104 283 0 R /F107 284 0 R >> /ProcSet [ /PDF /Text ] >> endobj 287 0 obj << -/Length 3920 +/Length 4115 /Filter /FlateDecode >> stream -x[Ksm*C$HnUN9dSr&!Tj=_ntYK*U;+x7G*Z>|Q",T+0*K0RZPcկwIj7wT/Z?|LQXJd4,Dpk~P=v_}fr%nھ?Q"
]Y]GX"3/{6VB\Ei/[l˫P[BU{#Yps7WGPFbGYQ[87~mXaBߴ8Ņˍ"TXHmUz0=l
>Ƞ2f3c*D+jy0<57/f)$K|*z'җ߄E!dpCPy(Թ]L6X[FU| \wByʉT.-_w$ބI$"#TZqRn~ HfQF2~] uҖm͍*z+%{KoLҸ|Yq$Oe]V0_[h]n'XC3Po4r$YBi.i1!j%I`5;r8<gH%B<p-ż
\gעkhu9p]\\߲\\-ײp)؏"'REV*U1.z_C/`.M
-aHPN9D·!nT,T 2$\) -<%s)&ʀ̥Uu7o^w -'QWg#@$ -oN$5L4(ǖҶ`T[HAĦsɤUSij
4Y)!AN簁Q
]FaKZʝ'lctle}ae*3
xtܵܲ92Tޘʮ]C[h0\ \&N&"e{u
t: -pkR[z0M]C?qZ -!x[z-͡X -Pb!>Х -|z1L=2~}Y;p}[jNkS"Ң]fo 'I.#.L;5A -2ۙue;oT2<y=5\`ett! @,e%10ኆ;W>Q}`~M,1 -%@eR֘f"7kvPؓ3&P:Дzǁ`>sTXW"ڻLJ!f1ӎ7
P - 8j<9-K}G/<0o'g1)uE *P!`?(]d>yDUb?Lf*='ME3Fx.XbURj~}|fE -<h?pПZpF~QU$>Ê>ٷ3cPss?\bs|qc/NxTu_wMzkz|)l>濷低{"& -z; --P_]P{2Mhʧ/qq¬rV;FL~5E[6@aӒd3*R7Eyn?5vn1D]mgcd\BJdr\߄51NUv"u$v~dGydǥ̩ pښj~/.Y#Β^xG_AaoTyk/<nJu]8g*kf]+&&.0]ĉΘkPe@|z&~P%`J(p<@%j? -!O'ZWJBO&~315;fk22뾛G7rЕ#V5*wF*_y6};<W$XP+G' g>fyt5މ{6B?wEJ2`܊Y'>}V +) -11N5ճn +x[ݏ_h]u@rAӦh"]I6m'K(gwg +ܝ)"9~3f!F~Rq$jq^H#LEHj[byۿ
.~1KnJ_}6n*!D\jBp*Yd:Y,nw0ܓaWW3 =Bi<Flv~Y)Y ?r/"/^^AkeW͕ʣJe
kώX 9zu,kKl>7VylLqXՙ,WgEEjVղ#łVa&yd]OU.QfZ9L(!}E;xN__eZL:*{ZsjRH^T߮Wߵ6mƿDjxG櫸CXvUNfr{bETGi%s+i +T马KmrߓVf"ʩuۡ*ȨchtJF+zZK$7W|Hc'Xk<ˆZmbMhP䏫$`q.<ޘEZ8A<ɠ_9aUrK=|o4cӋ?m5$}q2p;z#p8f_\K
u_W +Q\@"9i㴘 +(0g0_@v%zBlvD/x;E/x(9~e@T}ٕoO;#TvɈ5G+ mD+NW&
PK/-Wm:{̩rԼ %-u;[5wN&Fn6uM" +mÍeCe/c}䏓r*@m]}ܳTLl&^kjݢWlT"8| +<ʜd\$PB嚞~lR/
. Fk+-ϲȕٮWoy" rqx;[7 ÛCc}J! +W=i5vmIT*,s-GUR#mKD?T{UKrE> +N +"6p16n,o(79*pipbGܿ~cj<"{L/;?dR$t6ehS!/L<uP 0pHB{$0a*JcF2:7D@'86&-#Ar4 5`paBr +ba,_B|'ٗbIjƌBBj~c dd? "5|0Rno_"d:\4ޛ Ppc?܂I'`r"y1+i>|H9tPjWu%?m^a;<U}qϜ!߹ 3=$)>i&(<em=/_ #KX^aː(k4B4!#ch_6FEvUVN=4^ nBM<{bD(|QBh6>Cn7 P,إs +Zd< +յ'e
+<`vW} +PotXV|`2tKn9fso('r >|HuLaHgK^K%t٥A` +J83w4exK:
tv3d
|m5N!tj.vb5)?r<z,y/}Tdܠi\HKRc;a??iӶ@3Uo3 endstream endobj 286 0 obj @@ -820,1220 +819,1202 @@ endobj 285 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F103 283 0 R /F47 240 0 R /F72 243 0 R /F32 289 0 R /F38 290 0 R /F71 282 0 R /F106 284 0 R >> +/Font << /F104 283 0 R /F48 240 0 R /F73 243 0 R /F33 289 0 R /F39 290 0 R /F72 282 0 R /F36 291 0 R /F107 284 0 R >> /ProcSet [ /PDF /Text ] >> endobj -293 0 obj +294 0 obj << -/Length 3557 +/Length 3650 /Filter /FlateDecode >> stream -x\oosI2oMKmh -3Rnr;M֝l$^#dIsW^2<o-tp03OTb@\n{awtYawk:ƈD,\__@T'Kg姴kEazjL;F* -_ -"S)rL!w 1N`[HBN ^ʞt ?<(m b2/ӟv2I -)_V<iT]TLm?c`+'T -_$uU݅)r=3p4Ne
xh1ؗ+^עN*矢wvvpgvp<(^C.XKk>SKcC]{s_Vw)|'-W$*y -A%>Qc\wBIA"
DL^)wr|ߩY `)x{fѤyOʝb=)V$,potχ{Xiיs03,fٕﰪjT(M{uv^bp 3SvfL -Mwz%lfq}HYz=PKQ^մ9.vv -0C.H0&!Qj夏Ι}7vu&<noL.,BH!gw|\~cY8@Z߉0pv3ԭ1%wmE\Mܥ=+z҇\Z#ʿH gT3y(rQ)2hoporpo$\AGOܬ7WY3a{-*ER -9a`,FBpWd; e`2wM`fgOgptDAJLޏkqlad<w7f0<%z4<лG -@h
D0"A),\4S6?lA+xxQus4:Ʊt" -=<STkwW?4m;ؕ2vʍ;iåUG*LfDR5K<`
-<0v]zfY
љ^~pZ{lO{~kr7rNpB෩fhBnNdkj@S}22F2ohȐ<+&Ec'šbGccM[y7p_Wb8yY +xr]_7SUY=[x}q=jU@B4 +ǦY_3UsvE +3L%(!,uI'.j][vNfSWte۲>>7궭T!.<$Cv.o/).3e~r@fqcMyjmkNY;W5;Շt:u{]Mu֚ګ\cU/
Źa$dfܯ <|)J9uVX2f~JtHHlNS̷k'()oi4 aUK
ޔ0G+M^Ҋi-KVE41fŜ1ژte}u|N a{$^*ﴽO<ˍcWy+c`uތ1зoK&J/d +IJ (&~>($ &gr76:>]$>]K&μo0!{bs4YZd*58Nu^S'(Xw +10C\pX~"|XfNh.ǒM$@qD)5D #gSTm{:e`RQ,ZXT}eCgsȶLv[T+.1<[9p9] + z&ddgSW7clbڔ_=L%<TQi<+g䀝ڨ[nFg)Ooakr
{Fvj +Ң_icB.\&ۂvc%{j@xa20$nZ.%*\蔍Z=lq Vv95FC8쿢lNcv%Zo(c +S1E Rz4qPNĨ qg(BKӃG5pX*L8RQm:"a|j7VTeֹgXIk" +!}Ґ2VT5tN͟?C[`e?S̖B
E]"gWtf`9X"q`.|QdU^vNW}2#W5t!]D뼶/NJO +ŋVk6mk`pg!:buk,"Bj=D䉺'w}1ہQp1w}pC}HIzmZvp-= +§aҖ]ʠ%h%i[oO}7ױ94}4CM+k!8 zw@C\컲PR7l=s6\Y}5t{d*`&$Jikv}Ir5UjS'l-*T"wi˰ ]َcK,?+%jN y*Di@}}[u
Úc<S@+qK;q^v&Bf6wisD/@XygI훯ϗq:Ϧ"]G=@rwns78y:ɇ+Eb<0yEUޏsi~
+B-u,XhTfymJyhT&`Εg!8bBeQG,y"c7jhXly,B<_HD[N +'1I#+rGi +A$&JH8
G1l#"LhXUxc +[чEÝbXpbυrY)>#X͕&yi[Ф~c"IH +PL"5B3t=oN;wPk'IYr췫S&"*ZWcǬij]gU%\f][.ɯO +n'HلB*K6jQtޮ$j=wt]Uwo,[F=\\ ѕ`-4o8z.ֽt"]VTE-&+{Hw&Nb[&Gt8!͘;Z4۾ٷ +lhgвu$I164iHl0>VW5Sg>.qfrzr?s endstream endobj -292 0 obj +293 0 obj << /Type /Page -/Contents 293 0 R -/Resources 291 0 R +/Contents 294 0 R +/Resources 292 0 R /MediaBox [0 0 595.276 841.89] /Parent 245 0 R >> endobj -294 0 obj +295 0 obj << -/D [292 0 R /XYZ 140.732 808.885 null] +/D [293 0 R /XYZ 140.732 808.885 null] >> endobj 21 0 obj << -/D [292 0 R /XYZ 141.732 715.897 null] +/D [293 0 R /XYZ 141.732 614.776 null] >> endobj 25 0 obj << -/D [292 0 R /XYZ 141.732 519.762 null] +/D [293 0 R /XYZ 141.732 418.641 null] >> endobj 29 0 obj << -/D [292 0 R /XYZ 141.732 355.648 null] +/D [293 0 R /XYZ 141.732 254.527 null] >> endobj 33 0 obj << -/D [292 0 R /XYZ 141.732 199.899 null] +/D [293 0 R /XYZ 141.732 98.778 null] >> endobj -291 0 obj +292 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F72 243 0 R /F103 283 0 R /F71 282 0 R /F38 290 0 R /F106 284 0 R /F135 295 0 R >> +/Font << /F48 240 0 R /F73 243 0 R /F104 283 0 R /F72 282 0 R /F39 290 0 R /F107 284 0 R /F137 296 0 R >> /ProcSet [ /PDF /Text ] >> endobj -298 0 obj +299 0 obj << -/Length 4301 +/Length 4279 /Filter /FlateDecode >> stream -x<ێ㸱z953Ub<,6,$@XVFI"*%Kn_D{r;YU,֕T}wɉߪ4YEt%ZG\qrڲd:>.7w)xGwSݴt\vOZ߉4U]<vP˼+M=eCM.NZw7Ŗ.XѭǺ 9䗿MEārd%e"ah,U{q@bgza)T)f1|y$!$
^t]&cvPJg5l$x́t-|8xf}K*[zܔ]WMo?$R5mR iڠ8:Df=;dEml/i>
7zn*vY7$AqF
%T-s4c3ң.-SPH{JmL$0o|q/ -z3%fBHr˶}_Y=Ó@صw<U^Y)ygv\|o2hgSr%tťY#WL -J+``C&Isab08Ԕ2.2'8A0AtoNMi+eG{iUzyǦz9-5ݰ>&eB -.{"sgE,&/;i-C^Jx;&[l$=KQ8rpbN'Qp$NcTp1?pO+>3a6Yg/uӑ<``]-u=7ɒa -" :H\L&rڏǓ
4ںw̦G~0Faç;y?J9W_Ȁ5dPxBw;voS20n!Wv+Ό\iƽ̳[cvku1n[Av3Vݚ@-m-Qq
5[0ѡaۑW5t,t=I{ho12H;=v}AB
6!bAsCiv>="!`V'$kC\R>G8_1y ,(&X_ -҂t%y0_pA/0h) J0QZCofӭA$"=: ?26t)zg\5ML؝CԬeU)*=l?hEيn]˛-˙IceWյ Z?%Y!80&E pL-x*X<j* -/(I%K+,$R55QTΦXm7q@.˼9%^Ou۫߶54۔_SR϶o7Q˛z=q:.زe<p,֕]uT;%ȵRIHTf6eF҂|3U2PJ/ef5j;Xg$j;N#Fʠ^=;+ <ө&>"M3̬_QZnsB[XqY,Xld%5c+)pVuJN:ߠערtTgG~ ȋ~?7m.s7|$+xQH/'42q
+)L6wV?] CZȦGy>VczNC;evW8V4w^YQB^{{;!ER2{E>+wCrJe1_OQWm=g`I!HM>;_2P -oN.8mp !RfݜzH!%(Quo&$C6%E|2ֵsoϡI<2%{/70Ɖ7-oEܲrsZ6ݝ >oĴe7u$Őy-DOdM>d8sePx? qoF%Qŧbvw`d vĽMzB -E@|y%pd.2<xmp0nџ5ؗz~IM@˃.i6l1:'о>툉_rѕ+#;U)yj:%$P'~S}="5 Pyi(!~?BX - -Yn쥆rZĈ JtDgXJ1"%=Jx0@ -eBgQFB -]* -U" -BFNQUE!02p- -<4p)Al q|e~ ->*?6:(={~/`v(B>b@7bC:ʏŅc10ѿ3rY?8;S#1hm]Ol;4KNȼnˆsD_Xt)6 Nz^3o^_aϦe|=s`dxVv^Ȍ3aSI֗H<T
S#tX5?N'}t6[%clngmx_O -t;Ý%<VMkf +x\~bU|,m-mh@vW=r%6 {xO $g͐J=EIͻ~}_K1[xt8,X$ST8&D.ǻlQ_`abc}z7[-zWm.xŖgUmv6Yyi<k*6_<Psr4s~߾E)cuux1ۗtm[lE(Xf5oK%*iMWm}/ؑ/N-8Ild2RGkw:oqo'jy><Gqe6H.U9_"bIl˜З,a21ĬDFV~z[9@٦~f5d)aƠ2ƫ`~W%B>Atfen)%_duz/4b4kV9"oh?3 +v+w:oX&ڋCQ|qπFKѢ}>WMͲh(Ro`dtC
VG*[ӈy'ׅ[=b<[EAHa.
IH<:Xe(CE%^ؕa(Uk(P܂)KlaE2k-nqZĉ{fmq;us9WzU[I+Y1ӝ2l;C֜\Տ_yOE-K]mNWے_nxL㠣vNxR +2r._lɖ +Sb^kˣ +!nTЪsc4wM3utKs +F!Ep3Ņә6ŪO|Bzpg4@"t1֑^fMٻ8Fg%gt]͙8MMjq`FsH;kkK%]]-"%UF:NJ"T}D}Y&P`Gy!Ww[qMƖ½mnts'y^n$NBY'1${0>LUfAD˒ur +=O+&ٮﮘ$Q0w(ҥG,eHke'"7wk$HʱbA`F㾉$)- +Fd1uHjUfMC4_0zeF8["ѱ`Bc$8-"oT]o1J>)oO8TSq_bG7i<R1LNפf.&`yx<`5e^ƽ
\1q+W} +>pMz;. [uT_(%i!S1D.8RLD}.$
+"7{c4P{85T~< XywĜ_bڼIGu 7vFpL~xJ1qK=O. +(eg2o +4WޱlT:yn#Z_yyh_dسk?aٙLI]-mf2q*)N.6>8i$NQV$I?ߞW2uDdOp?k+q:ndWgN&ďKQw"d$
Jr\ݥ,AeH'J= NE]iHOj/C8ȹj,ʦTvv܁a;n2J9XWv{;a]څI^P)ޡHpW..uuˬl93vhgIu9[ڇO3qJ#;Pa4(C^1eīk~t+3p_t@{s98-Ro<N̸`*CTѣ3&cs8fzdxč
fTRvxz +pj!^[-N~쫱*BXοØx!^Oe]շrf3yO31_>97ł6f}qdtR?&_y: +r,iY~ }L=<ëY%w +1O`-$,;qoSPCa`?68$J*:t2Xu_p]?̤&C`JYlS6 <Ӂk mnGY{fr:%p}S}=L,`X5T\JBuH }'V"1= +@~8U?<%8䜌v(C + +Gjn7Vϵӡ}0UgzW+MOР]ҋc^}/Rmv:dv9)Kܡ[8ry)>r)8r-s\#ʥFFf_I'^A{u}=oy\BWg}Ӑ?zl[_ad + +T*9':̷
DQj>([552x6=xP]tx$e˸TESH =K:B9!6y +o- +,4Q Hlpc`|;aOpPq,diHx9`2,C4%G8`RS ,`[CQ&GiH3t >NT~|~W4Wۏ{|oN}Gw:e"Z?.]}:E}`\yUE:feۍ3·yOUb endstream endobj -297 0 obj +298 0 obj << /Type /Page -/Contents 298 0 R -/Resources 296 0 R +/Contents 299 0 R +/Resources 297 0 R /MediaBox [0 0 595.276 841.89] /Parent 245 0 R >> endobj -299 0 obj -<< -/D [297 0 R /XYZ 140.732 808.885 null] ->> -endobj 300 0 obj << -/D [297 0 R /XYZ 141.732 283.801 null] +/D [298 0 R /XYZ 140.732 808.885 null] >> endobj 301 0 obj << -/D [297 0 R /XYZ 141.732 283.801 null] +/D [298 0 R /XYZ 141.732 197.126 null] >> endobj 302 0 obj << -/D [297 0 R /XYZ 141.732 271.846 null] +/D [298 0 R /XYZ 141.732 197.126 null] >> endobj -304 0 obj +303 0 obj << -/D [297 0 R /XYZ 141.732 175.565 null] +/D [298 0 R /XYZ 141.732 185.171 null] >> endobj 305 0 obj << -/D [297 0 R /XYZ 141.732 179.152 null] +/D [298 0 R /XYZ 141.732 88.89 null] >> endobj -296 0 obj +306 0 obj +<< +/D [298 0 R /XYZ 141.732 92.477 null] +>> +endobj +297 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F72 243 0 R /F32 289 0 R /F38 290 0 R /F71 282 0 R /F82 280 0 R /F96 281 0 R /F135 295 0 R /F141 303 0 R >> +/Font << /F48 240 0 R /F73 243 0 R /F33 289 0 R /F39 290 0 R /F72 282 0 R /F83 280 0 R /F97 281 0 R /F137 296 0 R /F144 304 0 R >> /ProcSet [ /PDF /Text ] >> endobj -308 0 obj +309 0 obj << -/Length 3313 +/Length 3543 /Filter /FlateDecode >> stream -x[[۸~_ wq2Ah]e*][JrfA{!)[R48@ -pV{=ˈ!e d?x˱5}7>qƾ뎮0+&I,I<jD/"G%3@2<H25|ܴEx5\Ή2flX֧%:>=| ؉z҇yD1 /A?Q;XOK -T8nr#+LpU9apWևC&۵d
-OܝDXwfۢc)(x
tb!)9 ;p= <3p;})0tYIS4!r_KdI{ - -peNaj]VgKĘ"i&"ul@Ƽi',x5,v
-Df -aTxR0nNN>VaL/Vciy=/=IV -֛F4(#_9 \r}_ҷeP!`1/dHwiNYyrvP -8DQ lo|#/b).rԭKv_-bzt]K/ǪzUa1u)$JbWLOc4 -gT}ͅ1G-{Peab?n6 ,p-,Zd=ϫ|LSh)801[hsh錊;wEv^荈~'`x$-Zp&( -%IF1xe,SOF,4tc8 +'Udk!3aCKK{'6YW|zW1' -l+E@CGbp
\7-*v9t -$ճ=A?X#fnQU6>MO1 +x\ݏ۸_@ǽ%Azhs^\mڍ-o%9{ {gHJ-;
pyXI4?fo&ɏh|ziƈS'W %o4a &W]z5_T\?%My +*+fYVCigu~Ҧ|W{ 'Z. yv[%CA>$D:d9,qm: ~ +$VM껡 h.k Yp `Q6-7 +:gBR +ʢ~dw~\@^Us%/\@X1D#3<mnIj5ct{[D='JE-Vv)COτg ʪBtJ{nVgܤy+h)7(MGU\
uyPlQ.dh6rnTP:%yc{J*RڿZ3O:F;:jSro2]nyujWrq[/`ATHG5ߵ!eUgŇ*T#O^41Ȭ#ڈ6ENJ(n FߴSBhktXk/lٔK}VXZlv
B<|fh:wH#A"Yr$,
@3!D) W!%Q&;ծ(i(W&-^j_=3_ +O=zg=Ak
|dBuIf yrcksT6ο;&qiv`'tF,m;vc>ɤnh +,H?_N#XMU,@%e>zQu8n%,(2s~?r 尾|nhck;LPK/?Tﱳ;oo]67`t=IٔYrbyi(SЦlԬ✽m˛j:F \Mzl]2bUC/j ]
tkwo
^d̨Pa&G +Ë>W8 +t4}S4fS +x̊s קq>wrV
Z(PO/~z* +]n'!(Z9@':SF2;; :ƹK<zD?78(}|RN,PxY!OfX3rXܞZNjvujzTCO`xYQ٦h}#\?ź77yսpL!e5>x~UEU:3IN?j<i#G.cm +9L | ~?v
a!lC,觽i'5]|+bbTESd7I@C>b+ +UCr#҇:]=1;Lе`:d%N`7>X.sһ"YOtsFfaV=-oڂ``IDí8"2t "L2Nܡ'˸j-!#,9wwѦ{װ4W +ͷ~\0&qt<\'c8hNJX_/x'@WayL\
Wou'=E3{.h~v>9k `-~`q.dbڧHazxIF,pE!_WϢ{qМƼZI]\ft4fK,r(0ᢌx<=v|[܃mjL$MO~/W +S[K͢<GۘI_6D/P^]X4e[dF9&}^nV 4v1^sr/D1@d?+Ih9pТ!| x?m0dN endstream endobj -307 0 obj +308 0 obj << /Type /Page -/Contents 308 0 R -/Resources 306 0 R +/Contents 309 0 R +/Resources 307 0 R /MediaBox [0 0 595.276 841.89] /Parent 245 0 R >> endobj -309 0 obj -<< -/D [307 0 R /XYZ 140.732 808.885 null] ->> -endobj 310 0 obj << -/D [307 0 R /XYZ 141.732 740.123 null] +/D [308 0 R /XYZ 140.732 808.885 null] >> endobj 311 0 obj << -/D [307 0 R /XYZ 141.732 740.123 null] +/D [308 0 R /XYZ 141.732 682.34 null] >> endobj 312 0 obj << -/D [307 0 R /XYZ 141.732 728.168 null] +/D [308 0 R /XYZ 141.732 682.34 null] >> endobj -37 0 obj +313 0 obj << -/D [307 0 R /XYZ 141.732 584.999 null] +/D [308 0 R /XYZ 141.732 670.385 null] >> endobj -313 0 obj +37 0 obj << -/D [307 0 R /XYZ 141.732 482.168 null] +/D [308 0 R /XYZ 141.732 527.216 null] >> endobj 314 0 obj << -/D [307 0 R /XYZ 141.732 482.168 null] +/D [308 0 R /XYZ 141.732 424.385 null] >> endobj 315 0 obj << -/D [307 0 R /XYZ 141.732 470.213 null] +/D [308 0 R /XYZ 141.732 424.385 null] >> endobj 316 0 obj << -/D [307 0 R /XYZ 141.732 458.258 null] +/D [308 0 R /XYZ 141.732 412.43 null] >> endobj 317 0 obj << -/D [307 0 R /XYZ 141.732 446.303 null] +/D [308 0 R /XYZ 141.732 400.474 null] >> endobj 318 0 obj << -/D [307 0 R /XYZ 141.732 338.186 null] +/D [308 0 R /XYZ 141.732 388.519 null] >> endobj 319 0 obj << -/D [307 0 R /XYZ 141.732 338.186 null] +/D [308 0 R /XYZ 141.732 280.403 null] >> endobj 320 0 obj << -/D [307 0 R /XYZ 141.732 314.276 null] +/D [308 0 R /XYZ 141.732 280.403 null] +>> +endobj +321 0 obj +<< +/D [308 0 R /XYZ 141.732 256.492 null] >> endobj 41 0 obj << -/D [307 0 R /XYZ 141.732 146.931 null] +/D [308 0 R /XYZ 141.732 89.147 null] >> endobj -306 0 obj +307 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F96 281 0 R /F135 295 0 R /F71 282 0 R /F38 290 0 R /F82 280 0 R /F103 283 0 R /F65 242 0 R /F72 243 0 R >> +/Font << /F48 240 0 R /F83 280 0 R /F39 290 0 R /F72 282 0 R /F73 243 0 R /F97 281 0 R /F137 296 0 R /F104 283 0 R /F66 242 0 R >> /ProcSet [ /PDF /Text ] >> endobj -323 0 obj +324 0 obj << -/Length 2540 +/Length 2344 /Filter /FlateDecode >> stream -x[Ks8W6[*;ah8DI'55}eɒ&!
4'4ywFR?~{wvusvymx(qԱ.aR-xb#Tf|r%)Βcfo|qy-l BK保.].p)"-E7}x0̽m -ՀD}WA骞OUhK<|gIsgr` -!:><LutDkXkXN}Bdց0]rp *@e)QtyVᱸׂ(ȋy9
[bSUZ,#|9͖HN7L*?EU}W*Eˋ|k$ڦW*]'(zHa-ӇflTQtLJ,6ay")F"0 -/YQ(o.r2D&opa(/i%4Ah$|DqBPh\lBXG -is_8K$W̒Y -Zd#8u5c&Ą喑`F7AY?aY -/gd0)* `PhG>U.ozFs"
QQUa
KI`cbaNh80̪gh31/sF"}{}kP4D~07fXl%\p>anu?I"|/#!lX#-'ٓs=Rc,@)NH:/L=9QzXh$lRE? yDHxj]=s=Ds~zy%<) -^%%X -QQ6Ǡm;V|m -.+ -6Wl棺9Y/mS>QEExXT{U@ŝiK R) ۱*{ّQpH!2T6Zk$;,i@8EGbxf<6XjrlN@j֔ߠeQjjce'xX+D"$ќ!(VuMhϲG
_{$XڇEMn}uO1cDp`vGpBt -EYZ>^^C+o&3yKwЦ +x[[o۸~ϯ:@~ٷh +,nAX;CRڱʑӇ +I͐\8hr K Jlh҈Qc$aR-xb#Tj|z %)oOCfo8EB%pNÐ6I͈|\O7a6BO6_J0FR8k/y:; +uW}fP7784ϲIMvֳ1P)aN +ͣb3# ye?Vۋ| ,YS12v(d[GKXK4sX_Oﰕmrdց0mrhp *Po[)QvYV᱘kVY0Z4#|1AaZ /xfyfV_k]qS]RXx>z*鵱J# +])lez;Ma:ΕҰI-'8O@,I)fP?2%UYTq(-nGyZ~ y\&Mr#0 /0Q=:ܯЯhfZ:"0ێEKG2,(yri՚҈,tWQCroG_b33|12ګM{$aW8,DQͲ.|] +bU%N䏓RAHaHFi2w %~<EϒO~XX
|1 +g?I%Y=ȨGɐ2q!sp.MX327midcitx6KiM? +tSx|pעpgAXW)|(IVbl?mΊr .ޞ?2cdWn!xݍu.L\{ +,LMΚҲ7:;)Lo\'X]gMÚq"/ZY4Ҹ he: endstream endobj -322 0 obj +323 0 obj << /Type /Page -/Contents 323 0 R -/Resources 321 0 R +/Contents 324 0 R +/Resources 322 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R +/Parent 372 0 R >> endobj -324 0 obj +325 0 obj << -/D [322 0 R /XYZ 140.732 808.885 null] +/D [323 0 R /XYZ 140.732 808.885 null] >> endobj 45 0 obj << -/D [322 0 R /XYZ 141.732 732.745 null] ->> -endobj -325 0 obj -<< -/D [322 0 R /XYZ 141.732 598.363 null] +/D [323 0 R /XYZ 141.732 674.962 null] >> endobj 326 0 obj << -/D [322 0 R /XYZ 141.732 601.95 null] +/D [323 0 R /XYZ 141.732 540.58 null] >> endobj 327 0 obj << -/D [322 0 R /XYZ 141.732 589.995 null] +/D [323 0 R /XYZ 141.732 544.167 null] >> endobj 328 0 obj << -/D [322 0 R /XYZ 141.732 578.04 null] +/D [323 0 R /XYZ 141.732 532.211 null] >> endobj 329 0 obj << -/D [322 0 R /XYZ 141.732 566.084 null] +/D [323 0 R /XYZ 141.732 520.256 null] >> endobj 330 0 obj << -/D [322 0 R /XYZ 141.732 554.129 null] +/D [323 0 R /XYZ 141.732 508.301 null] >> endobj 331 0 obj << -/D [322 0 R /XYZ 141.732 542.174 null] +/D [323 0 R /XYZ 141.732 496.346 null] >> endobj 332 0 obj << -/D [322 0 R /XYZ 141.732 530.219 null] +/D [323 0 R /XYZ 141.732 484.391 null] >> endobj 333 0 obj << -/D [322 0 R /XYZ 141.732 518.264 null] +/D [323 0 R /XYZ 141.732 472.436 null] >> endobj 334 0 obj << -/D [322 0 R /XYZ 141.732 506.309 null] +/D [323 0 R /XYZ 141.732 460.48 null] >> endobj 335 0 obj << -/D [322 0 R /XYZ 141.732 494.353 null] +/D [323 0 R /XYZ 141.732 448.525 null] >> endobj 336 0 obj << -/D [322 0 R /XYZ 141.732 482.398 null] +/D [323 0 R /XYZ 141.732 436.57 null] >> endobj 337 0 obj << -/D [322 0 R /XYZ 141.732 470.443 null] +/D [323 0 R /XYZ 141.732 424.615 null] >> endobj 338 0 obj << -/D [322 0 R /XYZ 141.732 458.488 null] +/D [323 0 R /XYZ 141.732 412.66 null] >> endobj 339 0 obj << -/D [322 0 R /XYZ 141.732 446.533 null] +/D [323 0 R /XYZ 141.732 400.705 null] >> endobj 340 0 obj << -/D [322 0 R /XYZ 141.732 434.578 null] +/D [323 0 R /XYZ 141.732 388.749 null] >> endobj 341 0 obj << -/D [322 0 R /XYZ 141.732 422.622 null] +/D [323 0 R /XYZ 141.732 376.794 null] >> endobj 342 0 obj << -/D [322 0 R /XYZ 141.732 410.667 null] +/D [323 0 R /XYZ 141.732 364.839 null] >> endobj 343 0 obj << -/D [322 0 R /XYZ 141.732 398.712 null] +/D [323 0 R /XYZ 141.732 352.884 null] >> endobj 344 0 obj << -/D [322 0 R /XYZ 340.157 596.6 null] +/D [323 0 R /XYZ 141.732 340.929 null] >> endobj 345 0 obj << -/D [322 0 R /XYZ 340.157 578.402 null] +/D [323 0 R /XYZ 340.157 538.817 null] >> endobj 346 0 obj << -/D [322 0 R /XYZ 340.157 553.994 null] +/D [323 0 R /XYZ 340.157 520.619 null] >> endobj 347 0 obj << -/D [322 0 R /XYZ 340.157 529.585 null] +/D [323 0 R /XYZ 340.157 496.21 null] >> endobj 348 0 obj << -/D [322 0 R /XYZ 340.157 505.177 null] +/D [323 0 R /XYZ 340.157 471.802 null] >> endobj 349 0 obj << -/D [322 0 R /XYZ 340.157 480.768 null] +/D [323 0 R /XYZ 340.157 447.393 null] >> endobj 350 0 obj << -/D [322 0 R /XYZ 340.157 456.36 null] +/D [323 0 R /XYZ 340.157 422.985 null] >> endobj 351 0 obj << -/D [322 0 R /XYZ 340.157 431.951 null] +/D [323 0 R /XYZ 340.157 398.576 null] >> endobj 352 0 obj << -/D [322 0 R /XYZ 141.732 278.142 null] +/D [323 0 R /XYZ 340.157 374.168 null] >> endobj 353 0 obj << -/D [322 0 R /XYZ 141.732 281.728 null] +/D [323 0 R /XYZ 141.732 220.358 null] >> endobj 354 0 obj << -/D [322 0 R /XYZ 141.732 269.773 null] +/D [323 0 R /XYZ 141.732 223.945 null] >> endobj 355 0 obj << -/D [322 0 R /XYZ 141.732 257.818 null] +/D [323 0 R /XYZ 141.732 211.99 null] >> endobj 356 0 obj << -/D [322 0 R /XYZ 141.732 245.863 null] +/D [323 0 R /XYZ 141.732 200.035 null] >> endobj 357 0 obj << -/D [322 0 R /XYZ 141.732 233.908 null] +/D [323 0 R /XYZ 141.732 188.08 null] >> endobj 358 0 obj << -/D [322 0 R /XYZ 141.732 221.953 null] +/D [323 0 R /XYZ 141.732 176.124 null] >> endobj 359 0 obj << -/D [322 0 R /XYZ 141.732 209.997 null] +/D [323 0 R /XYZ 141.732 164.169 null] >> endobj 360 0 obj << -/D [322 0 R /XYZ 141.732 198.042 null] +/D [323 0 R /XYZ 141.732 152.214 null] >> endobj 361 0 obj << -/D [322 0 R /XYZ 141.732 186.087 null] +/D [323 0 R /XYZ 141.732 140.259 null] >> endobj 362 0 obj << -/D [322 0 R /XYZ 141.732 174.132 null] +/D [323 0 R /XYZ 141.732 128.304 null] >> endobj 363 0 obj << -/D [322 0 R /XYZ 141.732 162.177 null] +/D [323 0 R /XYZ 141.732 116.349 null] >> endobj 364 0 obj << -/D [322 0 R /XYZ 141.732 150.222 null] +/D [323 0 R /XYZ 141.732 104.393 null] >> endobj 365 0 obj << -/D [322 0 R /XYZ 340.157 265.536 null] +/D [323 0 R /XYZ 141.732 92.438 null] >> endobj 366 0 obj << -/D [322 0 R /XYZ 340.157 247.338 null] +/D [323 0 R /XYZ 340.157 207.753 null] >> endobj 367 0 obj << -/D [322 0 R /XYZ 340.157 217.948 null] +/D [323 0 R /XYZ 340.157 189.555 null] >> endobj 368 0 obj << -/D [322 0 R /XYZ 340.157 201.443 null] +/D [323 0 R /XYZ 340.157 160.165 null] >> endobj 369 0 obj << -/D [322 0 R /XYZ 340.157 177.035 null] +/D [323 0 R /XYZ 340.157 143.66 null] >> endobj 370 0 obj << -/D [322 0 R /XYZ 340.157 162.589 null] +/D [323 0 R /XYZ 340.157 119.252 null] >> endobj -321 0 obj +371 0 obj +<< +/D [323 0 R /XYZ 340.157 104.806 null] +>> +endobj +322 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F72 243 0 R /F38 290 0 R /F47 240 0 R /F103 283 0 R /F82 280 0 R /F96 281 0 R /F135 295 0 R /F71 282 0 R >> +/Font << /F73 243 0 R /F39 290 0 R /F48 240 0 R /F104 283 0 R /F83 280 0 R /F97 281 0 R /F137 296 0 R /F72 282 0 R >> /ProcSet [ /PDF /Text ] >> endobj -374 0 obj +375 0 obj << -/Length 1023 +/Length 1128 /Filter /FlateDecode >> stream -xYo0~_'o1$S$CfP6U -vdtc@:
u[\Wvم4sd~MuKN(Gd&KuYMfU7iҤXM
ou17ǪWhI DTE3IDQoQ%EQ9&3~*`WTͨ?0rva -sk(s1Ԧi&wwWT)OtKj5!t -{\MYÊST -oncڿ? -rá6*`܂wR拻/,⃖jXnP*ۦ镻E{ -j- -3Jp -&T`(ڽv -+oA]Twaew~<1z}A21E0/z1?n-ѷR;@)#+Gѷ%\&wg̋Rпj1DL/>b0"
.wbQe!TmnDSR+wvO'__OiwR2SMly~7? m +xYn:+ѝ{@{Fm˰lHƽY$Hj<s8ghKFwWͭc)ų]$#(Gd}Cnr1 +3yljUo7鶜ޢ<얃6Z,*lkÏp_˺ؔkYk2o/,60~wֈQcޡ:
B|*[7q!g'AZNx06 +7*_hf@ۖ~fOZnF_q`lj23^"@bꑁ8JG-X-\f'*䪈Ujb遧6^ +5:PBU''l}qsî{H4}z@xhÉpDu(LreU7/!?
Fʨ2hel*☦y{HjUQm]=_} eiQQA endstream endobj -373 0 obj +374 0 obj << /Type /Page -/Contents 374 0 R -/Resources 372 0 R +/Contents 375 0 R +/Resources 373 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R +/Parent 372 0 R >> endobj -375 0 obj +376 0 obj << -/D [373 0 R /XYZ 140.732 808.885 null] +/D [374 0 R /XYZ 140.732 808.885 null] >> endobj -372 0 obj +373 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F72 243 0 R /F96 281 0 R >> +/Font << /F48 240 0 R /F73 243 0 R /F97 281 0 R >> /ProcSet [ /PDF /Text ] >> endobj -378 0 obj +379 0 obj << -/Length 2570 +/Length 2571 /Filter /FlateDecode >> stream x\IsܸWjʄ}ncGTٮ -MI{QzǙv7n-M\Ƿ|x@H4Oh㿮i&--a$ՇO4Jɗtpx:Kv+J?/ȓ#rɭXCȄ1bLVEr_HGDOo^\|øL, +MI{QzǙv7n-M\Ƿ|x@H4Oh㿮i&--a$ՇO4Jɗtpx:Kv+J?/ȓ#rɭXCȄ1bLVEr_HGDOo^\|øN, Trs0 h G -i!ȸ-v<_M7OW(y7?l&<_|?_oĐIQR -00br^\gdeQTrXl(oՅ1(6(4ʺ4Fọ! b1A(ؑsahau;$e%)B^R27D;,6j|Y4._!-91:Pl/F`rXbClt%~234 -"]#%As4x[#&Taє(1B~|ІPJMF`3,2B.r|ߖr2Dk;R.% -3GM$UB#vn%ؠ0~1i}D3:t1`l)>"IT'2DPw."<LͣcCΛ<ޝi Rئ)3НZ XK(?S'e$îS@yJa,Q8&yHg?Yz%X6K熺<;(1E`gY;?Z(#NDQNBai{lCivV`3a63r -Yެ_sO/,-g3*g$y'i,r4`e}y/QX>Û̱)K T}F`0ZVe -!|;d-BJ%n)x -C`MS?;^/Xh5/땮_<I9؞Ƒ% -[ ;^ଆgL"s838l{_A~>\+B'KLW8#S~=/z]<^xͅĨv݄sNvv:M9 -v`n̉c\
~' -3:\@$vJ>QJ_(/fŅa2.SHêz -6,8w+3a~ - -cDDiEQ -+4(vWe=1;]!DXBTX3Fԕ `\) -Y|?^n֭NWI0DKYh).鱕6tFQOGWֲ[] -Lҙ@&ݩ3LL&ݳ4t;H:ҥpwE{MMWsWZ"v;f=bwj푠{rq?2$:>2()+9XU}G(4}),ZN -$F&TNEv"u';,|1
T~ηlw; ^fL))O/q)s'&-EQ_M*fnI3! }enO=o|̫Mx;@Ɉr,L#nә=~M+*89*@AdSl߸C5_MG<X-8"+uWvUwͥCtʩ++n_}$MQ$!<ň%Ҏv]1 OvqzeKO\mj$%~+<QI&یh0,CF_xWrs\Nz`v/Tk[%Wj%T:rܧH̎Wwn7<Th.(\jP]Ɗ9_NHI
V$GC>'ML!fASEfMZKUVU(7e>-g
8bCn01XP3t
$ߔ˅%<yȝſݫ
3 +i!ȸ-v<_p&g'+X6ɋr/>ү7pbH +()PA{M1z9/3 2(C*9,6]I·cEe]QC7lQlMƠH04n0 +RXR~h!
/)l|Yk5
G`|t +g$?O]OUnӹ1psΉ8U7 7D7ݭ69qTaD<wT'5N)'Jel0LFU=a +{u0^v0>S`|Țp gzӌ_3uxpkPtKH1Lu[Nި: O +f!Y.e*p1IaZ|JYh)#=Iಝ[iIg +?X$Z|tEkYh-Օ$dҝ:dҙ=KAIgjN.] +{^W$~(!t57]~=||*ޱuQ+}lWۑAPl#)v G.3|!cqMj +kЩ}q.rr%[n'q N#יȢ91@Hbhz< +MHXkw)]r>@A|yXvZ,hn͔"nrr78wb\E>/$bopQ.:wOXSf +<̗˼ڤWnn
(Β;v1yico*פ}T"^aۧPٿqKjQxdZ0<pD,5W76,KSW:1-?<V2u)dBIrIj3CW5Yy)Z+KQbTn(O^l):cI,J:VxݣLM +}`2Y͍V2y:We 5!wE4#I=ݕ})՝ +'0l1^=j_ֶJղKuȅ ++O:o|yv!v].QRJʍsm(I| ++6|NB#֧͚U% ~#闪`>rQn|/[kϰp(4v!`NcRwg?MI)wKx;Wf$s endstream endobj -377 0 obj +378 0 obj << /Type /Page -/Contents 378 0 R -/Resources 376 0 R +/Contents 379 0 R +/Resources 377 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R ->> -endobj -379 0 obj -<< -/D [377 0 R /XYZ 140.732 808.885 null] +/Parent 372 0 R >> endobj 380 0 obj << -/D [377 0 R /XYZ 141.732 734.43 null] +/D [378 0 R /XYZ 140.732 808.885 null] >> endobj 381 0 obj << -/D [377 0 R /XYZ 141.732 738.017 null] +/D [378 0 R /XYZ 141.732 734.43 null] >> endobj 382 0 obj << -/D [377 0 R /XYZ 141.732 726.062 null] +/D [378 0 R /XYZ 141.732 738.017 null] >> endobj 383 0 obj << -/D [377 0 R /XYZ 141.732 714.107 null] +/D [378 0 R /XYZ 141.732 726.062 null] >> endobj 384 0 obj << -/D [377 0 R /XYZ 141.732 702.152 null] +/D [378 0 R /XYZ 141.732 714.107 null] >> endobj 385 0 obj << -/D [377 0 R /XYZ 141.732 690.196 null] +/D [378 0 R /XYZ 141.732 702.152 null] >> endobj 386 0 obj << -/D [377 0 R /XYZ 141.732 678.241 null] +/D [378 0 R /XYZ 141.732 690.196 null] >> endobj 387 0 obj << -/D [377 0 R /XYZ 141.732 666.286 null] +/D [378 0 R /XYZ 141.732 678.241 null] >> endobj 388 0 obj << -/D [377 0 R /XYZ 141.732 654.331 null] +/D [378 0 R /XYZ 141.732 666.286 null] >> endobj 389 0 obj << -/D [377 0 R /XYZ 141.732 642.376 null] +/D [378 0 R /XYZ 141.732 654.331 null] >> endobj 390 0 obj << -/D [377 0 R /XYZ 141.732 630.421 null] +/D [378 0 R /XYZ 141.732 642.376 null] >> endobj 391 0 obj << -/D [377 0 R /XYZ 141.732 618.465 null] +/D [378 0 R /XYZ 141.732 630.421 null] >> endobj 392 0 obj << -/D [377 0 R /XYZ 141.732 606.51 null] +/D [378 0 R /XYZ 141.732 618.465 null] >> endobj 393 0 obj << -/D [377 0 R /XYZ 141.732 594.555 null] +/D [378 0 R /XYZ 141.732 606.51 null] >> endobj 394 0 obj << -/D [377 0 R /XYZ 141.732 582.6 null] +/D [378 0 R /XYZ 141.732 594.555 null] >> endobj 395 0 obj << -/D [377 0 R /XYZ 141.732 570.645 null] +/D [378 0 R /XYZ 141.732 582.6 null] >> endobj 396 0 obj << -/D [377 0 R /XYZ 141.732 558.69 null] +/D [378 0 R /XYZ 141.732 570.645 null] >> endobj 397 0 obj << -/D [377 0 R /XYZ 141.732 546.734 null] +/D [378 0 R /XYZ 141.732 558.69 null] >> endobj 398 0 obj << -/D [377 0 R /XYZ 141.732 534.779 null] +/D [378 0 R /XYZ 141.732 546.734 null] >> endobj 399 0 obj << -/D [377 0 R /XYZ 141.732 522.824 null] +/D [378 0 R /XYZ 141.732 534.779 null] >> endobj 400 0 obj << -/D [377 0 R /XYZ 141.732 510.869 null] +/D [378 0 R /XYZ 141.732 522.824 null] >> endobj 401 0 obj << -/D [377 0 R /XYZ 141.732 498.914 null] +/D [378 0 R /XYZ 141.732 510.869 null] >> endobj 402 0 obj << -/D [377 0 R /XYZ 141.732 486.958 null] +/D [378 0 R /XYZ 141.732 498.914 null] >> endobj 403 0 obj << -/D [377 0 R /XYZ 141.732 475.003 null] +/D [378 0 R /XYZ 141.732 486.958 null] >> endobj 404 0 obj << -/D [377 0 R /XYZ 141.732 463.048 null] +/D [378 0 R /XYZ 141.732 475.003 null] >> endobj 405 0 obj << -/D [377 0 R /XYZ 141.732 451.093 null] +/D [378 0 R /XYZ 141.732 463.048 null] >> endobj 406 0 obj << -/D [377 0 R /XYZ 340.157 752.925 null] +/D [378 0 R /XYZ 141.732 451.093 null] >> endobj 407 0 obj << -/D [377 0 R /XYZ 340.157 734.727 null] +/D [378 0 R /XYZ 340.157 752.925 null] >> endobj 408 0 obj << -/D [377 0 R /XYZ 340.157 710.318 null] +/D [378 0 R /XYZ 340.157 734.727 null] >> endobj 409 0 obj << -/D [377 0 R /XYZ 340.157 685.91 null] +/D [378 0 R /XYZ 340.157 710.318 null] >> endobj 410 0 obj << -/D [377 0 R /XYZ 340.157 661.501 null] +/D [378 0 R /XYZ 340.157 685.91 null] >> endobj 411 0 obj << -/D [377 0 R /XYZ 340.157 634.602 null] +/D [378 0 R /XYZ 340.157 661.501 null] >> endobj 412 0 obj << -/D [377 0 R /XYZ 340.157 615.175 null] +/D [378 0 R /XYZ 340.157 634.602 null] >> endobj 413 0 obj << -/D [377 0 R /XYZ 340.157 595.748 null] +/D [378 0 R /XYZ 340.157 615.175 null] >> endobj 414 0 obj << -/D [377 0 R /XYZ 340.157 573.83 null] +/D [378 0 R /XYZ 340.157 595.748 null] >> endobj 415 0 obj << -/D [377 0 R /XYZ 340.157 549.421 null] +/D [378 0 R /XYZ 340.157 573.83 null] >> endobj 416 0 obj << -/D [377 0 R /XYZ 340.157 525.013 null] +/D [378 0 R /XYZ 340.157 549.421 null] >> endobj 417 0 obj << -/D [377 0 R /XYZ 340.157 498.114 null] +/D [378 0 R /XYZ 340.157 525.013 null] >> endobj 418 0 obj << -/D [377 0 R /XYZ 340.157 475.698 null] +/D [378 0 R /XYZ 340.157 498.114 null] >> endobj 419 0 obj << -/D [377 0 R /XYZ 340.157 456.271 null] +/D [378 0 R /XYZ 340.157 475.698 null] >> endobj 420 0 obj << -/D [377 0 R /XYZ 340.157 434.353 null] +/D [378 0 R /XYZ 340.157 456.271 null] >> endobj 421 0 obj << -/D [377 0 R /XYZ 141.732 369.812 null] +/D [378 0 R /XYZ 340.157 434.353 null] >> endobj 422 0 obj << -/D [377 0 R /XYZ 141.732 373.398 null] +/D [378 0 R /XYZ 141.732 369.812 null] >> endobj 423 0 obj << -/D [377 0 R /XYZ 141.732 361.443 null] +/D [378 0 R /XYZ 141.732 373.398 null] >> endobj 424 0 obj << -/D [377 0 R /XYZ 141.732 349.488 null] +/D [378 0 R /XYZ 141.732 361.443 null] >> endobj 425 0 obj << -/D [377 0 R /XYZ 141.732 337.533 null] +/D [378 0 R /XYZ 141.732 349.488 null] >> endobj 426 0 obj << -/D [377 0 R /XYZ 141.732 325.578 null] +/D [378 0 R /XYZ 141.732 337.533 null] >> endobj 427 0 obj << -/D [377 0 R /XYZ 141.732 313.622 null] +/D [378 0 R /XYZ 141.732 325.578 null] >> endobj 428 0 obj << -/D [377 0 R /XYZ 141.732 289.712 null] +/D [378 0 R /XYZ 141.732 313.622 null] >> endobj 429 0 obj << -/D [377 0 R /XYZ 141.732 277.757 null] +/D [378 0 R /XYZ 141.732 289.712 null] >> endobj 430 0 obj << -/D [377 0 R /XYZ 141.732 265.802 null] +/D [378 0 R /XYZ 141.732 277.757 null] >> endobj 431 0 obj << -/D [377 0 R /XYZ 141.732 253.847 null] +/D [378 0 R /XYZ 141.732 265.802 null] +>> +endobj +432 0 obj +<< +/D [378 0 R /XYZ 141.732 253.847 null] >> endobj 49 0 obj << -/D [377 0 R /XYZ 141.732 220.865 null] +/D [378 0 R /XYZ 141.732 220.865 null] >> endobj 53 0 obj << -/D [377 0 R /XYZ 141.732 137.344 null] +/D [378 0 R /XYZ 141.732 137.344 null] >> endobj -376 0 obj +377 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F135 295 0 R /F71 282 0 R /F47 240 0 R /F72 243 0 R /F96 281 0 R /F148 432 0 R /F103 283 0 R /F38 290 0 R >> +/Font << /F137 296 0 R /F72 282 0 R /F48 240 0 R /F73 243 0 R /F97 281 0 R /F151 433 0 R /F104 283 0 R /F39 290 0 R >> /ProcSet [ /PDF /Text ] >> endobj -435 0 obj +436 0 obj << -/Length 3205 +/Length 3208 /Filter /FlateDecode >> stream -xrFM`0Ƽ{u6.簛Mts|@HPBHZQ߷_
*e 4z{9tFiM~o(%,FTP9HLt3>(L&'_E^>|hQkFM#,ͨŨQZ}'r<xm,6OE"Y;b, -{*{R>քjIʢ)"R¶>&"Kw͈{_5?畟]3d1@IJdW)JՌe[+-o#բu2 ob
1.0f/;$>Z W$5_b/[\$"W:r%\ͯo[7j4Te4)&p;\f{8(DJ+*6j3mLJNe8No -xS=8 UGfdXx+hISE]lY'4_UKe$eWbnF4zz3dzu>gBv`'ZhQ*זS*GV{Uܶa%,N?qRLi4J8F3o7M;.eUXGd2_l83
ޅ?)oeBn/f涨'E}L!nAJ2P1%5ڜRXA$W$Nq.1,;+ORSA -UL3 z׃w"q"E
nd!N
dC M1e֤ -"z&c OP24
wg,6@GaV^=b֧UnGExa -UXj6 -F !+| Pl s8H#x8%6))GOg{zlDgl7W˻}R#4 -OV9-67م1ރJ۱eJFe{K5GQjQ||X(~.)'/SKABCfi7Ҿ)VL=>A'*A*k.PB]E[0$.65YQ^B8AOx?l -b{8o7<Qf|wtEzgJ=׳UX -} -qzKs;
&xrb]CYYO.w~_z<{rWF.hعϕv&
<em®
QWh^$ꊌd\hF]Fk}Q\{/4w^
y|fExf~f~9\$_sET@gp(. YEw\_w_w_ҎsNaB97J{Nzȭg,JI$j$<6U%hgFG7T -h`Rpbd؉ZMx'fNگӝgiR{ZA0C -Xy,pW -1Hܲ `_$+{/B-
Q uHr҃68h57dH;=8`8R8 -ɠ -pD= -TGT6*5]yeSRDǁMȢ_3c#P; oγ;ec;9-fζ3% 7; K-"?,yE7#Bw7P"; oq
Ǔb-{WKm\wmq_&]{8ڷ-Bvy5J!b76_2J4@l2Ai?z5_
<%ve+"2Uk[]cVSCw2hhE@}(kumWo=|܉k - ԐnhkU|fҷ8x@;@M
L(x!"
$KUڎrgar?0Em=+JP$(_X?W#n3(O4ѸIY9a;olaLOXɩIASXvǻM
]Z`frYVyߕW<r6wjm^Ս)i薒߂xpڴ[RFY0e^~+mZzSzcٚ ]h]9߱Fb[1WF۷k88h9Y^
f 4'_l,\ys -,2m?^J<\É+5>hec?hvl/ghgvwn_Ycm6=bу>}W hq1X0Jf!ɈIC0ͫΰCr0Km=$`lzQo^Wn6a[C2˫'V`A2^uqUyMٳǺ>\_w(VU5 -t1q
@P +x\KsFW&Jcރ:s&9> $(!$R߷_
*e N(Iܼy0$E7ӈ +J4gIn&8%x$Khѧ
#"j-7{YDS!J+XDXǁϢ-}ڑ(U$x`Q,^]at]'yĔ5Z(az悰ۢ]3bǽ?]3d1@IJdxRj˲H G Bǿ[fΓl?&rc*Op%NJe,Iq!qW?oyJ#M1\FٛhLtgeHiUE?φ^Kp-I c"ҩ aMxpSQEznFō?\Ŗ7xRLUT_FRy*fDTVv0C18c#>)%0NJJR~?jm߫
3aÏ@IbJCQ9<m,ݻqӴ\VH&骪Q3Ӏ. gz0E=)}s:dB_ƔԄjsXrn +0:8_1j`}\Y˦1)ffO8k\<QM# z1mܬE<U߳O#Eӟ>$)t"I + +UL3C =>A23" BQԠF&۩"A=lrTY',.eV! +(L6A,dh Ev4{0aʔGip{أ"ܭ0SòMZ~i~Y3+fҎ j +%΄|}~0Bf␦%
]B;1uüQSk,5D5
~zMGb\ښnqRQ^l&+MUGݗm*+WfMwXEQMy;~_}KpC1u$4|Krx^,WV]˫z$'1F|ZbK¢ϰ3yی +N !D>\BC +b{8o7<ѠT
X[/3>?]d6"_卥zW3nWD_ou18x7
®CI +C} +d́-9x),ЕW+:+Et,536" bf?{@(q}_V>>Ł=v$Fu{d)e=#w7'K7uѝd*OmTscI1@+ϥk6v_&]{8۷-Bvy5J&bmQm,&dhJ~{a-S;w6d,'׳lGQmWi""a/,o[Eх\_o?0t;AX6[Ї⮨j]iѶy6ϝpN
vI
[#)[G1wJHU<m
`)&mr{arb\p
zVhP0nձ(F&y@Mz.; s\y6gxj
N> +aon4ehwax au6.F\@wg⯕Ϣ+gYۆWuvF䷠"06-רTQbJp}=!glh
BlR⮜M#+۵ 889Y^
f 4'_l,\ys +,2m?^J<S\É+5>dec?hvlhZ\ۿ136=bӃ>}W َ3xp-~]B*5'&#&
>|:,Wᅝ`(ں1I:<*mduWmO*32dhCos)},r%\ÿH҅k +t1q
a endstream endobj -434 0 obj +435 0 obj << /Type /Page -/Contents 435 0 R -/Resources 433 0 R +/Contents 436 0 R +/Resources 434 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R +/Parent 372 0 R >> endobj -436 0 obj +437 0 obj << -/D [434 0 R /XYZ 140.732 808.885 null] +/D [435 0 R /XYZ 140.732 808.885 null] >> endobj 57 0 obj << -/D [434 0 R /XYZ 141.732 744.789 null] +/D [435 0 R /XYZ 141.732 744.789 null] >> endobj 61 0 obj << -/D [434 0 R /XYZ 141.732 569.044 null] +/D [435 0 R /XYZ 141.732 569.044 null] >> endobj 65 0 obj << -/D [434 0 R /XYZ 141.732 303.008 null] +/D [435 0 R /XYZ 141.732 303.008 null] >> endobj 69 0 obj << -/D [434 0 R /XYZ 141.732 221.551 null] +/D [435 0 R /XYZ 141.732 221.551 null] >> endobj 73 0 obj << -/D [434 0 R /XYZ 141.732 127.487 null] +/D [435 0 R /XYZ 141.732 127.487 null] >> endobj -433 0 obj +434 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F71 282 0 R /F103 283 0 R /F38 290 0 R /F72 243 0 R /F82 280 0 R >> +/Font << /F48 240 0 R /F72 282 0 R /F104 283 0 R /F39 290 0 R /F73 243 0 R /F83 280 0 R >> /ProcSet [ /PDF /Text ] >> endobj -439 0 obj +440 0 obj << -/Length 2930 +/Length 2931 /Filter /FlateDecode >> stream -x[KsFW*c6Yەv"! * +x[KsFW*c6Yەv"! * Rh]96Տʴ<>j.D"sF?]r k%(uvVf)a HLDn.Hƈq%5PtվnPNȹC]=M[uOQ)]b.sTUf^,4A!8Fs6Ct[moBΤ.vA,V; -i7(@d4-#X288RgŹNT($^8-sD$y\h9a(K)h"ׯ-Da)sg2urR͙1`^6nj LyTWX6cºm@&RS0簅b]VMWoT{ȜsMڪIJ"SW 2^p^+v]XP]r-ai^~ݗ+5h0X:Q;Һo@,.5FMdܖqoEyu: iʴѯ[^zc/9 E"Vt{5zuFy"YW_2D"Are =?gp&2(0mX%RIwHᶹk"ZO( -/) %I
L -ΪZ=(Nm1\%(3CJY]9tyܩ?*|uhKuzӻ->V8.):+}X%p{k{{}9rj{m&㻜?cؐM <i2e/띍ps\ck(2Ua|. qQ~i[ݬ0۾,H´{I3g1ݢ!/4#Is[i.TnD/2&|s KmL//)ctWC6rp"(VLi Y5@uW;2T4@|Hyj>qYwَMU0c?CjWNTc1V1 Z)~r>Ĉ4on<Q~dtvqE]7<Is͞9Tն.(}O2|.
);a2f<Bx\
{77WߘeL%,+-ðۆXelZ~1Q+哹UQ_B]QKG;+\~Em1lXL06G^?ZD}bӺoɾ !O7ʭ~LԦM79>l9ޕwhE:TM+Gf>_a= bXU~U6f86ϥͰ}l? 3 tx;-&l9pmuej"YޫOr1G7庬s9h>S<Çy+wF[Ӛ<T~*vvnOob3PTh߀ێ\l?5L#"UO}6,<eyaFG٘^؋\?B~QK$`36$ sG 7ǘa=oVf 1fIfc1haȲ1hwz -ϩ8#C9 -,Ip̳POˢH_sF!ϫyi'U_4,y*Y6ϭ-8-:@SN@|d!!yv:`N9VkYCevgi'{5V͛(`.-wG<Nw?2x -2K;VҲ(gI(KΚ$\v_^nGGyGG=6C2M雑՚g{uiN`ɞ()!|_tKn}Jvvjޫ85d -m1ܠ_"["M(}/u7WNX"'zipa$M{NEgI\֏U}Zǥ%U-Lj3?NeiwR9A>U\{$Ŷ2Spf>~C!,_~RJ۷"&?P6mnh.˲c69$HTJR6~@?PZE?MyW_?)c9|㯻 {E]GQZfA%%T?E#ў0^ l? +i7(@d4-#X288RgŹNT($^8-sD$y\h9a(,_MFA~%m\ +K?CPEhΌ</<fa#]B'TdfƲտdg6/lMP69-o\TܾnRz9DKC)BUD" hwPJe.W<n;}%w15,7[xx_7X/W8Ek>42*atDw3$`ߥuߔaہ4qY\lekȸ--vߘ+8HWu~Z{q +$'AHY֬ + +u;ɧMSMrom|r.TB&ґۧ>kFc 荼0#xZ#lJ/OKIie!%kbh|WN칣 endstream endobj -438 0 obj +439 0 obj << /Type /Page -/Contents 439 0 R -/Resources 437 0 R +/Contents 440 0 R +/Resources 438 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R +/Parent 372 0 R >> endobj -440 0 obj +441 0 obj << -/D [438 0 R /XYZ 140.732 808.885 null] +/D [439 0 R /XYZ 140.732 808.885 null] >> endobj 77 0 obj << -/D [438 0 R /XYZ 141.732 579.741 null] +/D [439 0 R /XYZ 141.732 579.741 null] >> endobj 81 0 obj << -/D [438 0 R /XYZ 141.732 512.991 null] +/D [439 0 R /XYZ 141.732 512.991 null] >> endobj 85 0 obj << -/D [438 0 R /XYZ 141.732 285.523 null] +/D [439 0 R /XYZ 141.732 285.523 null] >> endobj 89 0 obj << -/D [438 0 R /XYZ 141.732 204.365 null] +/D [439 0 R /XYZ 141.732 204.365 null] >> endobj -437 0 obj +438 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F38 290 0 R /F47 240 0 R /F82 280 0 R /F103 283 0 R /F153 441 0 R /F106 284 0 R /F72 243 0 R /F65 242 0 R >> +/Font << /F72 282 0 R /F39 290 0 R /F48 240 0 R /F83 280 0 R /F104 283 0 R /F156 442 0 R /F107 284 0 R /F73 243 0 R /F66 242 0 R >> /ProcSet [ /PDF /Text ] >> endobj -444 0 obj +445 0 obj << -/Length 3503 +/Length 3501 /Filter /FlateDecode >> stream xko ~) -k{7i8hi.'6JrEɾJ$%-)>~hwv3;4Jhue.O߽H#sk>ŋs#"j]\FaE$FP,z)f7b~;9HsNwF,' %"~7Isw]ꥹ/)O'8k̮9<%0<f*J0CR37ٹ]E8"H2@q TW0TN"OyΥs3?^/f9#<8.ۋ~-g値$ rjkVytC'LyDX!aMАwUѕ7)FTmet9K#d} 3@A iH+F$M _CiHHJ"!Le./OL.>'a&ZVVҙ7eڀ둵MHSjӠۍ90%E]^^mk:F^`HӬL(DǑV[=21,lxDg_gbg^MW٭ldJ)Hb̮F^c|>Rv6UROom.Hi&4)G>)k -'
f5ͧ:31}߯Alu&!iߏl)J%{XÜB<X"n;OC!@iHDZDo I?2@rc>CZq7KLB|Q܈9zE4sG*mxm -\&*.;NTw2뒞ZS'Xr圝S[kDvkҞKmbJb)jX1 -6ˢF>/;pg.2Vv&Oj,ਕaM|k$RLh1"/;s_R
B+oR! G+{,iɍǁB`)R-h鲹 -cVslU5734IkW}@=߉Ban -s, -G<BJүoICkC}`0GQ2%bo[ GBQQрzQEG=FOF2i -Q1*mԧM3£^Ṿ^+{ARK{ icx\U0 Ͻ -f~}S|fS۱p`;UH{Дk)6OD$צ3;4r Iʼfq\sߜhjE!+37-h//z_ --žu`W0;nMW]j
(d -x0QsEK.H%\e_Mփf.̘!DȚrjw[:}iHkk>ao6K6],7 djuQJ`(?+b_fr+Vnu(Iܼi[bvvg -m=B{pܚq &4!_`)X|Ax2ɟvsXY`9GOPA'{1({?LyBrߏ|~ 鉄%YyeGF( -9z6I5/ynwi4xS51._&ז&ӔM͛m`7w\Y}Q$^\2[C02|9L*;2Iy$ڗMխ[qrr͜tJN]p7;dT0uV+&Vm1LHטּf.)|.ٝLݥ!e&f}D$!!r;S@AT>r42.aAѮٵI0t44܃ -Emn;ٶKi
Otڻ?s! -(~01EsS5T6wVUUb]B@BSNuA|XMKZTy|w팗!D4[Xx ON!a(Vsѯ=4hyla+
?d
i|;M=Z_;6O -yjoH~Qh8f &Fai\3lbhl^KեW0Aى6ί: -Ƚ? +k{7i8hi.'6JrEɾJ$%-)>~hwv3;4Jhue.O߽H#sk>ŋsI""j]\FaE$FP,z)f7b~;9SHsNwF0XtW$D& Qqn<˗?պX\42%px
U>Y0aY~0ε$2KGI7* +j]I)5Ϲ3|}nF>[],ttAܐ'{|{/D$q4[Q-~
*._cdB4҂+ )@R.*2 +ԣJ6 +9ZKghKn<Kj4GK͕P`(ڞc[ՔIqI_"Pu+fNL";wFP[1t?<Dh@24pO|e{^&d:'f<urbB1,Qa]yDaN Ϣ&y.:c6Y5IH- x,xEDi{ZtSu<A"ٵxSAz2lf,0=㫦[3d[gw@˼-& +[HlAu}yMՇ~·U Dh(&;BwlZVX}Tk@![P@ 쇉J]<.]vA/je.:/oƴ4<pYf_&@SM@][[
{i-^2o9Tgbi|HP5 #UREawX2۔k\^nwsCIRLD]OwH۸ݶC=
G,@lc9BFK{LprWf|2Hڱ=QId"f1C-{Ԅ*ĵaR%k]9-Z1Zt>Sd͡ `RCfݢ{xx۾?'u+EWȒ
$
ʤ.ԎCR#6}Vhau߃K0ৡ'XOB}hIuϢ=8z*}zO?ޓޏAak ~3#O OO$.ʃ>,>2rD9Č^Ot e4&W#,1vX\Sȑ֛tIy13u[-Lśyv"54m2mkSY/6´z7V&ٚ\C1 +B8Pw&
vfȮ5M#Ԏ<7iW.jv̶ۡ]:Mm`}:ceU
ySP@ Y -Ҝ0zi*[b؟rGjZԢ̝sUEog\! +6yr +9<>GG~MM]e@csU_yl%=$Hm0M _nrЊ؞~R(ȋUk~GD
BD011:,sL +`IfCce].=ZIpNp~
뮈wWĕDO>ԍn endstream endobj -443 0 obj +444 0 obj << /Type /Page -/Contents 444 0 R -/Resources 442 0 R +/Contents 445 0 R +/Resources 443 0 R /MediaBox [0 0 595.276 841.89] -/Parent 371 0 R ->> -endobj -445 0 obj -<< -/D [443 0 R /XYZ 140.732 808.885 null] +/Parent 372 0 R >> endobj 446 0 obj << -/D [443 0 R /XYZ 141.732 740.123 null] +/D [444 0 R /XYZ 140.732 808.885 null] >> endobj 447 0 obj << -/D [443 0 R /XYZ 141.732 740.123 null] +/D [444 0 R /XYZ 141.732 740.123 null] >> endobj 448 0 obj << -/D [443 0 R /XYZ 141.732 728.168 null] +/D [444 0 R /XYZ 141.732 740.123 null] >> endobj 449 0 obj << -/D [443 0 R /XYZ 141.732 716.213 null] +/D [444 0 R /XYZ 141.732 728.168 null] >> endobj 450 0 obj << -/D [443 0 R /XYZ 141.732 704.258 null] +/D [444 0 R /XYZ 141.732 716.213 null] >> endobj 451 0 obj << -/D [443 0 R /XYZ 141.732 692.302 null] +/D [444 0 R /XYZ 141.732 704.258 null] >> endobj 452 0 obj << -/D [443 0 R /XYZ 141.732 680.347 null] +/D [444 0 R /XYZ 141.732 692.302 null] >> endobj 453 0 obj << -/D [443 0 R /XYZ 141.732 668.392 null] +/D [444 0 R /XYZ 141.732 680.347 null] >> endobj 454 0 obj << -/D [443 0 R /XYZ 141.732 656.437 null] +/D [444 0 R /XYZ 141.732 668.392 null] >> endobj 455 0 obj << -/D [443 0 R /XYZ 141.732 644.482 null] +/D [444 0 R /XYZ 141.732 656.437 null] >> endobj 456 0 obj << -/D [443 0 R /XYZ 141.732 632.527 null] +/D [444 0 R /XYZ 141.732 644.482 null] >> endobj 457 0 obj << -/D [443 0 R /XYZ 141.732 620.571 null] +/D [444 0 R /XYZ 141.732 632.527 null] >> endobj 458 0 obj << -/D [443 0 R /XYZ 141.732 608.616 null] +/D [444 0 R /XYZ 141.732 620.571 null] >> endobj -93 0 obj +459 0 obj << -/D [443 0 R /XYZ 141.732 583.013 null] +/D [444 0 R /XYZ 141.732 608.616 null] >> endobj -459 0 obj +93 0 obj << -/D [443 0 R /XYZ 141.732 448.091 null] +/D [444 0 R /XYZ 141.732 583.013 null] >> endobj 460 0 obj << -/D [443 0 R /XYZ 141.732 448.091 null] +/D [444 0 R /XYZ 141.732 448.091 null] >> endobj 461 0 obj << -/D [443 0 R /XYZ 141.732 436.136 null] +/D [444 0 R /XYZ 141.732 448.091 null] >> endobj 462 0 obj << -/D [443 0 R /XYZ 141.732 424.18 null] +/D [444 0 R /XYZ 141.732 436.136 null] >> endobj 463 0 obj << -/D [443 0 R /XYZ 141.732 412.225 null] +/D [444 0 R /XYZ 141.732 424.18 null] >> endobj 464 0 obj << -/D [443 0 R /XYZ 141.732 400.27 null] +/D [444 0 R /XYZ 141.732 412.225 null] >> endobj 465 0 obj << -/D [443 0 R /XYZ 141.732 388.315 null] +/D [444 0 R /XYZ 141.732 400.27 null] >> endobj 466 0 obj << -/D [443 0 R /XYZ 141.732 376.36 null] +/D [444 0 R /XYZ 141.732 388.315 null] +>> +endobj +467 0 obj +<< +/D [444 0 R /XYZ 141.732 376.36 null] >> endobj 97 0 obj << -/D [443 0 R /XYZ 141.732 350.756 null] +/D [444 0 R /XYZ 141.732 350.756 null] >> endobj 101 0 obj << -/D [443 0 R /XYZ 141.732 272.947 null] +/D [444 0 R /XYZ 141.732 272.947 null] >> endobj 105 0 obj << -/D [443 0 R /XYZ 141.732 208.073 null] +/D [444 0 R /XYZ 141.732 208.073 null] >> endobj -442 0 obj +443 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F47 240 0 R /F96 281 0 R /F135 295 0 R /F103 283 0 R /F38 290 0 R /F72 243 0 R /F77 244 0 R /F82 280 0 R >> +/Font << /F72 282 0 R /F48 240 0 R /F97 281 0 R /F137 296 0 R /F104 283 0 R /F39 290 0 R /F73 243 0 R /F78 244 0 R /F83 280 0 R >> /ProcSet [ /PDF /Text ] >> endobj -473 0 obj +474 0 obj << -/Length 3285 +/Length 3286 /Filter /FlateDecode >> stream -xrH_*Ӧ4lک٬*I^@vR!h%$έϵ9AĈ:Їo\ā:Ucw~ -Vr(Gv("Ϛ,e}K]$bϠ0Y=Ҵus1G)N'9ߗ|u{@D41&̣>t C ،$&%>UM0afꇸ,x%(Rn3/sY='4:CCaT*'WhCEA]QKyT vޜ:FH -q-B!Z]kr~IC&Çz{Jl.7w6lsy{r-nA8CVf*CKL"Du `ժ^S]k} -S|SGOcpB`@oo>ş?ϬZm}, +xrH_*Ӧ4lک٬*I^@vR!h%$έϵ9AĈ:Їo\ā:Ucw~ +¤KO;QmC<չ<!xfs`39$[([ +q(Oh/9$T>JYKTu8:\0Ϳ3FX@d,u^7 ᷅5UIF7/4ǯ*4zXG.J /c:E=^ Su'\]WX6̽T2Jht_}?oNt # oe"X]\(@DzjBqkN?-XLyOb^9(1t)>ꍎD`iGOcpB`@oo>ş?ϬZm}, Q"<Lr$YgWsa%ӊcC[ݘ'՟;FqΦȿV_g RL[1ZAbZtŴڱ9-58Hc'!3AGBEvEDt$E=g`/@DA/YGxG?5D&Oa^u=nB?y_WQ"T>|VxZ9sx
<reOWfI0뭳3QC; h{ DHpt y!<bxC#E[o
u:.*N~mk.봾Q;F*MwM"i;&nK~B|~9ﳻb?[|h.̛|.6pfmݸqֱ!BAD2a^ެx0q7Tz6EkK>U
Hׅyon -Ht͕%GpN%,ˢiR[n@CzڄаiwF}ԐH
3aiJQ/5H' -)0$m2 eҗ$57"Fs͉;);z -Xoε-ֶطN4ǝppTtE:E#.r}?rʎ~оYJ`YGmw:7Jĵ} -+A' +Ht͕%GpN%,ˢiR[n@CzڄаiwF}ԐH
3aiJQ/5H' +'\#D5p&-z%k{9-rZn%L 7,y_Lr:"->dk8_Ȓط[E;gz*ە9ZAN\^):H0yU!D8Vaj&O4bW~lI:
m>9f
Y]E1j
2zs demBQ@_.Ϛy/US.UEkBϡA{,WEݖǷ*}k}>]'3/U_=T][ղ<zQWFF%"cEseH2v7=FMgǪZ&bNE;F,9L=oB{&\zzIM +W,Pf\8TL$ޓT/mѡ8jC endstream endobj -472 0 obj +473 0 obj << /Type /Page -/Contents 473 0 R -/Resources 471 0 R +/Contents 474 0 R +/Resources 472 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R -/Annots [ 467 0 R 468 0 R ] +/Parent 489 0 R +/Annots [ 468 0 R 469 0 R ] >> endobj -467 0 obj +468 0 obj << /Type /Annot /Subtype /Link @@ -2042,7 +2023,7 @@ endobj /A << /S /GoTo /D (subsection.134) >> >> endobj -468 0 obj +469 0 obj << /Type /Annot /Subtype /Link @@ -2051,130 +2032,138 @@ endobj /A << /S /GoTo /D (subsection.134) >> >> endobj -474 0 obj -<< -/D [472 0 R /XYZ 140.732 808.885 null] ->> -endobj 475 0 obj << -/D [472 0 R /XYZ 141.732 624.191 null] +/D [473 0 R /XYZ 140.732 808.885 null] >> endobj 476 0 obj << -/D [472 0 R /XYZ 141.732 624.191 null] +/D [473 0 R /XYZ 141.732 624.191 null] >> endobj 477 0 obj << -/D [472 0 R /XYZ 141.732 612.236 null] +/D [473 0 R /XYZ 141.732 624.191 null] >> endobj 478 0 obj << -/D [472 0 R /XYZ 141.732 600.281 null] +/D [473 0 R /XYZ 141.732 612.236 null] >> endobj 479 0 obj << -/D [472 0 R /XYZ 141.732 588.326 null] +/D [473 0 R /XYZ 141.732 600.281 null] >> endobj 480 0 obj << -/D [472 0 R /XYZ 141.732 576.37 null] +/D [473 0 R /XYZ 141.732 588.326 null] >> endobj 481 0 obj << -/D [472 0 R /XYZ 141.732 564.415 null] +/D [473 0 R /XYZ 141.732 576.37 null] >> endobj 482 0 obj << -/D [472 0 R /XYZ 141.732 552.46 null] +/D [473 0 R /XYZ 141.732 564.415 null] >> endobj -109 0 obj +483 0 obj << -/D [472 0 R /XYZ 141.732 524.825 null] +/D [473 0 R /XYZ 141.732 552.46 null] >> endobj -113 0 obj +109 0 obj << -/D [472 0 R /XYZ 141.732 400.292 null] +/D [473 0 R /XYZ 141.732 524.825 null] >> endobj -117 0 obj +113 0 obj << -/D [472 0 R /XYZ 141.732 215.9 null] +/D [473 0 R /XYZ 141.732 400.292 null] >> endobj -483 0 obj +117 0 obj << -/D [472 0 R /XYZ 141.732 169.74 null] +/D [473 0 R /XYZ 141.732 215.9 null] >> endobj 484 0 obj << -/D [472 0 R /XYZ 141.732 150.312 null] +/D [473 0 R /XYZ 141.732 169.74 null] >> endobj 485 0 obj << -/D [472 0 R /XYZ 141.732 135.202 null] +/D [473 0 R /XYZ 141.732 150.312 null] >> endobj 486 0 obj << -/D [472 0 R /XYZ 141.732 121.421 null] +/D [473 0 R /XYZ 141.732 135.202 null] >> endobj 487 0 obj << -/D [472 0 R /XYZ 141.732 104.318 null] +/D [473 0 R /XYZ 141.732 121.421 null] >> endobj -471 0 obj +488 0 obj +<< +/D [473 0 R /XYZ 141.732 104.318 null] +>> +endobj +472 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F47 240 0 R /F38 290 0 R /F82 280 0 R /F96 281 0 R /F135 295 0 R /F72 243 0 R /F103 283 0 R >> +/Font << /F72 282 0 R /F48 240 0 R /F39 290 0 R /F83 280 0 R /F97 281 0 R /F137 296 0 R /F73 243 0 R /F104 283 0 R >> /ProcSet [ /PDF /Text ] >> endobj -495 0 obj +496 0 obj << /Length 3677 /Filter /FlateDecode >> stream -xko8{ -n2/j6nϻƧI^ϲamo}Ά,|A -'7-+ʗW!<|Ci)#\h8}I4W?ଉS7)I?X~ -4hx -QFt9Z8z8DAZ6# -%ƴNo!?vvnʥ㚌(Cve1*p©e!w GŤprC$C#XNTrmE\w\x_M"oP`A( >2H,xh4n3) -ćrE8ۮnv Ό26tڣ,q:2&crSfwf:!Bi/-k*Mɍjw?Psw5znQ;`T{leUCi^psUv&d\0
\;>>Ḏ*unz>'PQx+k*C%oN\Ͽd٧L[l'h -Exdka˅NIw5Tl~{0<\.Ap=1E8-,8%|v~[p@ga5Yba%igHC4{Fez5d2Whûxô7 -TG1mb&V9Xt;K0E -'4F%32:pAx3p9}Z#Q23ލX6k].DLPX{45M*^/]WDz&%Oj#?;S< I.,eӷ,z]0NNfEz=u(@=~v7ʊO+AWmI>s -?]}~wO&sFaiKvELxoY ->`gV:(!{יէ#Xɏ.>M+_}Zyl_Gc6,덤Oo(lvHMD5u w/.ouvia^<;&'Dv7[/{[Z\nQE6 F}yq/xaV4
(>42$+~_#.ϑQ[,aiArCwU4/>QbXk#wÕ2cN|հ8@pyղȋ.y0U=Ӆ8Oӝ˗SmqVQkqoɚV(>21.C4fe'k -C>K%K0l^%7DRs +xko8{ +(x&j^\GRKɂۀ +J4g1 GoaL_4m (|7)n3^i*|Oi +I]u \GY7`/jC +;"y4LlDx/;[fxqSm\)<D
fڐIJ)r,?\6(B*ZJE CJ_Uz~X'1^
PV]2jGMMm1Xضu5{>jLsW{֏wvڠ_@BEބtt,$ԡkj>!vn + +F*a6/B/}2kwEp^?N
+yzȼSDͩa4tiW
`l6Zmv#OF +f-0 TKq8Np0vZ-ˍz9\ou +}ȳé*1Q| +Es +7l6v%x;PqnXl$k +le_J<!0kLoR +OhE-a.7mVVhQuFsu:OZٺ]bw^bܣ$:Y@ZR' e`W>)mϣ4;yr#|kp
f_DeD#+Pp1E~{8/E8YR?MŰGh [S^Pl=>l;.0Ml~jₘq`HK+Vt]cR5Lcj.|8E\z
ƀy +/lSWns6;{<ќ-RLKQ#irp+TBFlV8:ȅp,2uuJU<kGߟ5J&Lw:1[7W]FfHJY#DP>1r.Ay,Dc{7v'4Es:tTO3o#SDŽܣ}ԪR +*u|*i(Yp$_ 9(63I8I +^g?6VeȳcrQM$mvRe]0.+/E>/̊tEeFe +RLRgx_=bKNAՏ"f͑$;t{[K%K>O_::l)9l +W-M,;SU3]<*݉j +-^Y*?w@aX<e]vhAF,wMgͯ%b$!gKW<i~eז[/;51т +Yä6k|TeV3TX/maz-ѸY&G\Vuj{CLBXs endstream endobj -494 0 obj +495 0 obj << /Type /Page -/Contents 495 0 R -/Resources 493 0 R +/Contents 496 0 R +/Resources 494 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R -/Annots [ 469 0 R 470 0 R 497 0 R 489 0 R 512 0 R 490 0 R 491 0 R 492 0 R 513 0 R ] +/Parent 489 0 R +/Annots [ 470 0 R 471 0 R 498 0 R 490 0 R 513 0 R 491 0 R 492 0 R 493 0 R 514 0 R ] >> endobj -469 0 obj +470 0 obj << /Type /Annot /Subtype /Link @@ -2183,7 +2172,7 @@ endobj /A << /S /GoTo /D (subsection.128) >> >> endobj -470 0 obj +471 0 obj << /Type /Annot /Subtype /Link @@ -2192,7 +2181,7 @@ endobj /A << /S /GoTo /D (subsection.128) >> >> endobj -497 0 obj +498 0 obj << /Type /Annot /Subtype /Link @@ -2201,7 +2190,7 @@ endobj /A << /S /GoTo /D (subsection.128) >> >> endobj -489 0 obj +490 0 obj << /Type /Annot /Subtype /Link @@ -2210,7 +2199,7 @@ endobj /A << /S /GoTo /D (subsection.129) >> >> endobj -512 0 obj +513 0 obj << /Type /Annot /Subtype /Link @@ -2219,7 +2208,7 @@ endobj /A << /S /GoTo /D (subsection.129) >> >> endobj -490 0 obj +491 0 obj << /Type /Annot /Subtype /Link @@ -2228,7 +2217,7 @@ endobj /A << /S /GoTo /D (subsection.129) >> >> endobj -491 0 obj +492 0 obj << /Type /Annot /Subtype /Link @@ -2237,7 +2226,7 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -492 0 obj +493 0 obj << /Type /Annot /Subtype /Link @@ -2246,7 +2235,7 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -513 0 obj +514 0 obj << /Type /Annot /Subtype /Link @@ -2255,134 +2244,128 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -496 0 obj +497 0 obj << -/D [494 0 R /XYZ 140.732 808.885 null] +/D [495 0 R /XYZ 140.732 808.885 null] >> endobj 121 0 obj << -/D [494 0 R /XYZ 141.732 771.024 null] ->> -endobj -498 0 obj -<< -/D [494 0 R /XYZ 141.732 422.082 null] +/D [495 0 R /XYZ 141.732 771.024 null] >> endobj 499 0 obj << -/D [494 0 R /XYZ 141.732 422.082 null] +/D [495 0 R /XYZ 141.732 422.082 null] >> endobj 500 0 obj << -/D [494 0 R /XYZ 141.732 386.217 null] +/D [495 0 R /XYZ 141.732 422.082 null] >> endobj 501 0 obj << -/D [494 0 R /XYZ 141.732 362.306 null] +/D [495 0 R /XYZ 141.732 386.217 null] >> endobj 502 0 obj << -/D [494 0 R /XYZ 141.732 350.351 null] +/D [495 0 R /XYZ 141.732 362.306 null] >> endobj 503 0 obj << -/D [494 0 R /XYZ 141.732 338.396 null] +/D [495 0 R /XYZ 141.732 350.351 null] >> endobj 504 0 obj << -/D [494 0 R /XYZ 141.732 314.486 null] +/D [495 0 R /XYZ 141.732 338.396 null] >> endobj 505 0 obj << -/D [494 0 R /XYZ 141.732 302.531 null] +/D [495 0 R /XYZ 141.732 314.486 null] >> endobj 506 0 obj << -/D [494 0 R /XYZ 141.732 290.575 null] +/D [495 0 R /XYZ 141.732 302.531 null] >> endobj 507 0 obj << -/D [494 0 R /XYZ 141.732 278.62 null] +/D [495 0 R /XYZ 141.732 290.575 null] >> endobj 508 0 obj << -/D [494 0 R /XYZ 141.732 254.71 null] +/D [495 0 R /XYZ 141.732 278.62 null] >> endobj 509 0 obj << -/D [494 0 R /XYZ 141.732 242.755 null] +/D [495 0 R /XYZ 141.732 254.71 null] >> endobj 510 0 obj << -/D [494 0 R /XYZ 141.732 230.8 null] +/D [495 0 R /XYZ 141.732 242.755 null] >> endobj 511 0 obj << -/D [494 0 R /XYZ 141.732 218.844 null] +/D [495 0 R /XYZ 141.732 230.8 null] +>> +endobj +512 0 obj +<< +/D [495 0 R /XYZ 141.732 218.844 null] >> endobj 125 0 obj << -/D [494 0 R /XYZ 141.732 132.928 null] +/D [495 0 R /XYZ 141.732 132.928 null] >> endobj -493 0 obj +494 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F103 283 0 R /F47 240 0 R /F71 282 0 R /F38 290 0 R /F82 280 0 R /F96 281 0 R /F141 303 0 R /F135 295 0 R >> +/Font << /F104 283 0 R /F48 240 0 R /F72 282 0 R /F39 290 0 R /F83 280 0 R /F97 281 0 R /F144 304 0 R /F137 296 0 R >> /ProcSet [ /PDF /Text ] >> endobj -516 0 obj +517 0 obj << -/Length 3197 +/Length 3198 /Filter /FlateDecode >> stream -xnF=_!,0ӹٗn4inilHv33DY)-̹v@o_7o0FfIFBu<
Wljxa>QEi=)淓ᅐ:*rG4ͫ0D$:T"Jxx}Sbb#aA#rSTڴK6DQ?C;P
/4`8JيRp"wWtl<u\Ѩ^p9k}9IKJ2,e^ErHLtM~[
Ǒݎuy7?>8(v\~xJt0J"R.Nm/h>yRc2dUx#0ը̐*b}zNPpz>Nek -j[`\@Oy- 597Kz4*f~bK< dL!W=ط*r&Qy2'[dfUQ.:e/?2?> ŞaqNB: ɊQ*m }Zt- -\_H_;.`'!<o" !n$[SHl5-KΪ0\0 TAtLa4 -A;QE;&>Y7o ( - yN$Kb p* ob1ԾrOQm<N":BCF" -<XȗaѨϰj)|?ә?)]
as#ؾ+8iu`ciQ!OU̿1_PN'&Iehny3PCLCȤKKSF`qQp U?iN -W.U .E!l -α%HnB&4jt-ΗG'*䨩fOF^fBk{l*MT;fTt*:dOhѪ]raθ Km/Y.86\4 0O
$.1<z{7q6`J!G+\NBLR<(LOAyKp \ -vTim(8Lv=| X홿AvS3$q5Sxc|ndcɤrGJE&a
pj6^;
O'<`ؖ;%#:e7̉'4>^ط"a4w')jWg0?Ϫ 7=״;t<nYx6
jkfW.#"?='zvڱlL -j)xT!v{`ӓ4v*z/V -KQSGP -\2{0~BUFt{A_ہs "!*\6!0NH"-ǁ֧EYF05FrH49Fuw/edKHw8Qd5Tp 뢁t@nzRݏ -EtIP;a20YAzsp&>=¤ˌV! -%ZVq$1DjAEB!: -#GaE"S>K -y"<YY,F@hΪ:G˸qxޅ+N -
L/\!k_>v ,)!2ZC}Q6q!U -#efgu}C0StՍYr<TW +xnF=_!,0ӹٗn4inilHv33DY)-̹v@o_7od<`$J̀F%xp9\E,P}zRo'!uT.Fi2WayIuDN$"pgFb$2|A6H=ÔDfp6
4QT2Ў#v_&M=p;k"b9 +Ħ坠V|l +-oBEBrl鮎L'PI褒$yH'ui9heNBJ B(JRG& +>\-mvZ +dqEY$`Ҩx +[Y`5ˉDiUey-C8pNǻ[`6N|k +lhd#UM6
"$m
fʶlHk7O<w&SRGJo[%l@ a`Ⱓl(7 +ɸ>VA|`2Q-vym0|ݖsbe-<?k4
tXPX:8V\ +6a]4כMO*QH.>jg#L&k9]_4N§G0U4twW*$0?A` +pڶi <;.C`YsOMDFLs71IB[JF[ Ve
熶Ϫ.&VL!ObZDݟ3:+Aߒ"YUgv!Nϻp)XTv=0"x܇">E@xBb{3D@x蹽/ʙ?AݦR<4.j +@
uY"![kH`p5lD?4u%B۫.E8)DTMtpV:Awܿiu`M텂.o=©y NpW6~ҭǚ`oay endstream endobj -515 0 obj +516 0 obj << /Type /Page -/Contents 516 0 R -/Resources 514 0 R +/Contents 517 0 R +/Resources 515 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R -/Annots [ 517 0 R 519 0 R 520 0 R ] +/Parent 489 0 R +/Annots [ 518 0 R 520 0 R 521 0 R ] >> endobj -517 0 obj +518 0 obj << /Type /Annot /Subtype /Link @@ -2391,7 +2374,7 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -519 0 obj +520 0 obj << /Type /Annot /Subtype /Link @@ -2400,7 +2383,7 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -520 0 obj +521 0 obj << /Type /Annot /Subtype /Link @@ -2409,120 +2392,120 @@ endobj /A << /S /GoTo /D (subsubsection.214) >> >> endobj -518 0 obj +519 0 obj << -/D [515 0 R /XYZ 140.732 808.885 null] +/D [516 0 R /XYZ 140.732 808.885 null] >> endobj 522 0 obj << -/D [515 0 R /XYZ 141.732 711.896 null] +/D [516 0 R /XYZ 141.732 711.896 null] >> endobj 523 0 obj << -/D [515 0 R /XYZ 141.732 711.896 null] +/D [516 0 R /XYZ 141.732 711.896 null] >> endobj 524 0 obj << -/D [515 0 R /XYZ 141.732 699.94 null] +/D [516 0 R /XYZ 141.732 699.94 null] >> endobj 525 0 obj << -/D [515 0 R /XYZ 141.732 687.985 null] +/D [516 0 R /XYZ 141.732 687.985 null] >> endobj 526 0 obj << -/D [515 0 R /XYZ 141.732 676.03 null] +/D [516 0 R /XYZ 141.732 676.03 null] >> endobj 527 0 obj << -/D [515 0 R /XYZ 141.732 664.075 null] +/D [516 0 R /XYZ 141.732 664.075 null] >> endobj 528 0 obj << -/D [515 0 R /XYZ 141.732 652.12 null] +/D [516 0 R /XYZ 141.732 652.12 null] >> endobj 529 0 obj << -/D [515 0 R /XYZ 141.732 640.165 null] +/D [516 0 R /XYZ 141.732 640.165 null] >> endobj 530 0 obj << -/D [515 0 R /XYZ 141.732 628.209 null] +/D [516 0 R /XYZ 141.732 628.209 null] >> endobj 531 0 obj << -/D [515 0 R /XYZ 141.732 616.254 null] +/D [516 0 R /XYZ 141.732 616.254 null] >> endobj 532 0 obj << -/D [515 0 R /XYZ 141.732 604.299 null] +/D [516 0 R /XYZ 141.732 604.299 null] >> endobj 533 0 obj << -/D [515 0 R /XYZ 141.732 592.344 null] +/D [516 0 R /XYZ 141.732 592.344 null] >> endobj 534 0 obj << -/D [515 0 R /XYZ 141.732 580.389 null] +/D [516 0 R /XYZ 141.732 580.389 null] >> endobj 535 0 obj << -/D [515 0 R /XYZ 141.732 568.434 null] +/D [516 0 R /XYZ 141.732 568.434 null] >> endobj 536 0 obj << -/D [515 0 R /XYZ 141.732 556.478 null] +/D [516 0 R /XYZ 141.732 556.478 null] >> endobj 537 0 obj << -/D [515 0 R /XYZ 141.732 544.523 null] +/D [516 0 R /XYZ 141.732 544.523 null] >> endobj 538 0 obj << -/D [515 0 R /XYZ 141.732 532.568 null] +/D [516 0 R /XYZ 141.732 532.568 null] >> endobj 539 0 obj << -/D [515 0 R /XYZ 141.732 520.613 null] +/D [516 0 R /XYZ 141.732 520.613 null] >> endobj 540 0 obj << -/D [515 0 R /XYZ 141.732 508.658 null] +/D [516 0 R /XYZ 141.732 508.658 null] >> endobj 541 0 obj << -/D [515 0 R /XYZ 141.732 496.703 null] +/D [516 0 R /XYZ 141.732 496.703 null] >> endobj 129 0 obj << -/D [515 0 R /XYZ 141.732 437.187 null] +/D [516 0 R /XYZ 141.732 437.187 null] >> endobj -514 0 obj +515 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F96 281 0 R /F35 521 0 R /F71 282 0 R /F82 280 0 R /F103 283 0 R /F38 290 0 R >> +/Font << /F48 240 0 R /F97 281 0 R /F36 291 0 R /F72 282 0 R /F83 280 0 R /F104 283 0 R /F39 290 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -2532,20 +2515,19 @@ endobj /Filter /FlateDecode >> stream -x\ݓ۶_u3oyjĮ4MO3x$^Hg Et"H?\,],@2ɫ';" -/WO{KFIJSHdĨPm=n|՜}xcKiHwKGIjPΦl5;9?\U+8_pԞ6*wW2+TdA]ݼ dp*ζ-EvVjN(;KΦRgOzW7jܷ($H'F -+#ow1DYL{do,DQ#Qr=yQh}uCj^y'?OBdtC(RM -}H<xklcaZNIvUT@[,g?7yj;8AN90AѤ緷nn/ -CJ6CD/FE:DP~Of>r)@|2ʫ&F鰥D -Ӟ$6ehP=nvS,w~T隫cQ`&٣7$$<y` d*@ud.cJxr_묪i?eUOvw&E -PϪ"xˋzZN9gMQ<yJ x6&'y_G#0zc$ -eB,_.:(DCFITjg*B -?KKbdK}D0q& lE%Tɯx0*?z`?!4\]HQRŻ)6]pnş]4I=@>F-S(fQ&_hT2k -!x!h"жБ|)陯]{b稇@R[%> UdWv:rgH>(P>FTP`zKA1QJ-%b8`&'5$.epp&)mDY̚^Da$fMHfM3"i!#&Xfk<ϧ -rZm4?Zd
Q0y1;$kʪ~mXNlahv gǹ"*Cv^WGJQ?P͘`Xǂɀ>7͆_=^.EyynO?묘?M -?J-6xE+cR>wU/e7m/@^ao6d-| 62WIUxaYdXEnbJM>W٢{mJ/e}o]¯PUU.yIm\y -*T{8@ ->Y|qb"Tk#hDKb3ű -Tl>/
]ǟ QCrud<~˟d<;DÈ|z~+v vO<B0-fCE4T}5Hj.*~"Ro/qLpޛŻ]&,hc)ęElLKHڥ 2T$m&H[^Ϣ2HuopQ
좩}S适[*ʚɼ^MHG/ 2`@n,hj}yt-EJ,_yCV2!Km,*o> +x\ݓ۶_u3oyjĮ4MO3x$^Hg Et"H?\,?.@2ɫ';" +/WO{KFIJSHdĨPm=n|՜}xcKiHwKسYMRc7|ȇ*v6<d9䢬rXX]˦SQʖ
\">!%ӄS%$tm)RsB9Yr6"<|лVʹG(%Fz?7R-u]%H}$d#{d& +Cwvɋ
GP;?X.jϓ>ɽ~r%BjbUCRœ_c՚vJR͵ӭ℥ڲ`=9[Un9 p j&=]dusw{QTpxpRJ9"}4()'{G4{KˬX.U^wm41=N-%BM߾x")gS]ZKQM6pȄumH{c}Q@Ϛʬu˪Y {a>w*[KDz~/;>hIM0JsH^ݾz/n{wrO3T0'y7)/C{xz9pC%-?&b8&J\b^7q;! IQ0p%S+ rI8PBr_묪i?eUOvw&E +kn")2eN$ԗU6- 'He5ɹH|8Wdؼ$<?]\@@ 6hQ.wAYըQdUBsxXl>d~Ğ6q˄qC:"
]kyR.`>T7ݝ_jmډU"o#JICu`OIy~SQgx'l,j5݃=^|B +/ır{]W;N*TUL6<c!dzS,<⥴J\,+"]AmU;]_;Hŕ[^8gv$黐i<OS"˲R,?s{ +R[e#F1OXAHVtK@VS0R|Džӆiq4w 4mhqY߫+lN;0-Y
Ga,.!8haϵ%.Ye55Գ>z}YS+O?ɫEy-+/Q<P@q +~<2E!#]x_v
\,d#}@Hk7`WW~N; +R_ƀ直.ֵOqhf:Zj\R௱28j2"'gS&"t215ʰP#n&
mk0ɗbaڵG(61G=- +rZm4V<Zd
Q0y1;$kʪ~mXNlahv gǹ"*Cv^WGJQ?P͘`Xǂɀ>7͆_=^.EyynO?묘?M +?J-6xE+cR>wU/e7m/@^ao6d-| 62WIUxaYdXEnbJM>W٢{mJ/e}o]¯PUU.yIm\y +~n*WOvԙx'*EUܲ2o7 +p@Z|DF0Ffc7,[S@S34bwYD
/e/-ci#V!_}Jr~Qm6TDHca"0[ʺϣFI>4`EuUoQVD-?){3x2ՄW7| +̢aW&@_@%@$eCn*SA6k$ӭ~^wgQbH$:7[좩}S适[*ʚɼ^MHG/ dpmR|.FKVͣlY,Tݿ`9ͫ=O
3CMmݭ!O endstream endobj 549 0 obj @@ -2554,7 +2536,7 @@ endobj /Contents 550 0 R /Resources 548 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R +/Parent 489 0 R /Annots [ 542 0 R 543 0 R 564 0 R 544 0 R 545 0 R 565 0 R 546 0 R 547 0 R ] >> endobj @@ -2708,7 +2690,7 @@ endobj 548 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F47 240 0 R /F96 281 0 R /F135 295 0 R /F38 290 0 R /F82 280 0 R /F72 243 0 R /F103 283 0 R >> +/Font << /F72 282 0 R /F48 240 0 R /F97 281 0 R /F137 296 0 R /F39 290 0 R /F83 280 0 R /F73 243 0 R /F104 283 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -2718,28 +2700,31 @@ endobj /Filter /FlateDecode >> stream -xr؛@{٦r81o.H\0Uyhjrr0z{{~zC7酪1Frv$#Q9ή7YѬg)àjjQ@>%tR2W3#%\̮`ߩl.nn1-r#-qY Z՝WjE[OXq'|\7Uշx8!U-8bYiE?yrМ9nVh;NHn='R~;#w|WD 33f̀ ߥ1ټ~x -AfO.zD. ,f
҆pf4[y>4u'ʨH,k")<yX4*BP m(մ6aAe[r fʉoV^jo<+ -%zrfT76lmN[5VVhK"陖</^6Ӵo\wd,6Ν7~:+ZDN&!F+:4ɶ)CW-1N߮dx2ݖO8Pъ6~?~PDպ\f uơ &t5AYkڢ4죐Dh1ހ|}5?d>:rїz7pD/Se춢Lpw7Q,>l8><Aٱ]e1[ -Ԧl߆dP6@ + 6hV;<ݫmwzx>\B8=Dn,E - 7=k7 W?X1 CrEc(!WU%GdZK6ex|=CivE ; sL8 { n(s*HO[F2Ói] +xr؛@{٦r81o.H\0Uyhjrr0z{{~zC7欄1Frv$#Q9ή7YѬg)àjjQ@>%tR2W3#%\̮`ߩl.nn1-r#-qY Z՝WjE[OXq'|\7Uշx8!U-8bYiE?yrΈМ9nVh;NHn='R~;#w|WD 33f̀ ߥ1ټ~x +^q"}理K¥3MT?dl4D{)D̞\\AXW]ՁH
B.h|h6O|QXDRyivUN\%[3A.(Q:wim¦=˶j@̔3M'@gxWJ&>7DooSm:ۜ"Jk!T(hᙞiiaɃBe#;MkFEMN<Obl^yz+k*jK4_ +oi4Cl28|Brv0g&[Ɠ|V_'2Hl4X41 BZf$B@$<l'X4el%+' +~/eeJ'l$pC#Yr4@daYp|U>ΎE",ii GúTwAuK"h[0:_rwΝj[% 8#jy +enS:ӷEnqStVur]esJ~j:J\wqLZ;˲X 9)"Nмެu=rT-yyb]˗L'"W!(oͲSb}uV.rᨖh,y?[%bH9z`<y%] +q0f|8*Hdvn`a$َ%?_mߣf=-p8Ds1ȱL*5߭sC#:,fE@: We3qvb4C`T^!*(G52;^L1C
aIՇgQ,uUG'v9T@b1J^f^Ȥ"LxzTm u38*]ZD˺T-`e_Oe:DCυOL،N)(@0G#zʳtLF"DWȧ6e6$ٖJ@XI)@Z~ޑ^mN_[כ| +a.9t&rάd)U`HXI.CiA
bPB,9" +8X9<.sAJ+jL%dI-͘1Kp@Sa4Ezz0L0 +38Cf}*ekbP'70sxhGABBjB +Od؇'׆f +m8pN +~b +>kDm§HRj)D΅YM +cԇ$#z/XN88 &mpl.az&+wM|6XSn`|SYۜdFL,{o6G^k/p'߇)I.kD\Q0Rcl~5<d3exJ|讫,70%SJ/ߪ399f@pA. +ֵDtD_=OWH.HV6c=||S:Ub Za|;ރ+h';f4zx -9Gs
>To"BE^IFPR@'wpF$sX@&c^Uui\Z,cQx1^ۙ% OPv -w2ǯ3(d{
̊8'fȏo 281ݮQƃH3u`&ݙE!ghMI*Q
<4HԹ0ˢ @jHa|p` -~umۯ,b&bO!Q -pVi[u07.hEˡ^?)q -! -sT$ٛf^K8DLj4>lk -l؞q -fwȖÚv1@{Flm̪!jy#tuL -̼bs&mq$} -vS26 -ED2( -JeIF[HLQ2 }#YT>TZ!/ރ -^#J[BZ قh74y=kSZl|E'H,lٲxrO?v8GN4x}^a"O }'IBĘHNFOX8SX#1-9f>q|%)\^3<uky]ٯozR4&'fg͎9Qw\vG'?u
YA]#CtP(zߴ'4I x'=,O}b'RL#v[^\æacȜE=K -BquVfg-uXa>ШN7N]=vjgrʼn_,Aʆ/e&X6!CO -`#OeAw;OGָOǃ&~ -*{L
T(M"jgeȳp:>sIZvăjKo06x2?/ +@y=,mp{W$4t_|6l@=˝vD٦28 4WM訋&;a߁9C\6mZ:<⣏th0Nr +4RaC ǝŤWU~`&̗@Zv'&3PxxĤ",470XA h>F|wѝ`[S +gI89,u\>A}Ҳ﨏ye#dJ06rK܈ST7ղj} }%W +|2_ИuJmT,[Rw;S;\,7R.sh<{o߮WwKix:* ,n#WqGpو|R: +~5' +eJ +1zs32AZ^W{-ۥ}ٙ`4|Fi&Fv ‴Ə{]CVjH +7-4&v8G=3 c˓(~dp؉ȃ?v*2to풂P\iYKueO%4}SWsO\qbKEz
uГ=~Ea5 8o[DKzETw!"{[8p +,]b\GäS#JSF8ágBqr'|f=,+tGaҧւpRLcy?' O endstream endobj 567 0 obj @@ -2748,7 +2733,7 @@ endobj /Contents 568 0 R /Resources 566 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R +/Parent 489 0 R >> endobj 569 0 obj @@ -2764,32 +2749,37 @@ endobj 566 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F72 243 0 R /F71 282 0 R /F38 290 0 R /F103 283 0 R /F82 280 0 R /F153 441 0 R /F77 244 0 R >> +/Font << /F48 240 0 R /F73 243 0 R /F72 282 0 R /F39 290 0 R /F104 283 0 R /F83 280 0 R /F156 442 0 R /F78 244 0 R >> /ProcSet [ /PDF /Text ] >> endobj 572 0 obj << -/Length 4197 +/Length 4200 /Filter /FlateDecode >> stream -x]۶ݿBKx;"%Lӏ{-Q'֒L{wQ]N|Ap7g,djVa5Ww^5|C1.g\qƣ1#;]T)mnI7_Uf9Y7
1:6 -ЖB "ek2ЏVL˝mU")8$w] -K9Q2U4-?bʤfeO;ZElD*XAF\uRYU}%2d#R;6h0ȷi]qq[ηw`/ݼLvGLǦ?8OGt,
@5fP6z&"GMAJT4Dp@<~]vi^~Ɔql%d~L5rB +q#,t=(=<>PaJ@}|@uM@wM*WyQc~Ñs/GאƐ3a5јl@ -'r^d*˷Wq}Em^0*ATǂ^;e;]G#@ٚꣵ 1汼1ԂG7ܲ}wٸvҥՏ(6zC8[Qi_ϷJ3TG'D,KvU',kUB^˕j
_ lb±NďI' -f:m]")GɞՌEsdF4m0qp>UϩgK,ݱM8"fz"
: `n{/e@6IY|K]dޡcGn'"8/Kݲ7bUnD-V5E}BVz`Ǎ@0Gē̮Oz֏]S+ьhu3c~I*u^jiO<Z|20b{̴"|HnQnrz-*$*REq!;|qT:YU08EaLN@ -"{`2r튴맂v_hKq"S7 ?!7C [*9,5;t|\yrVImwPxw~=YF⇠0}gJIdɈg`Ġ+`*7Q
x{hN9L˗T3ijvc4/aܙ,9 52$*n$hˮf11(ƺ1Pȡ<؈Qog>srL --nC^$8uԈLs`ꗪHEcISS0)f8M?D_@Ȃ}|%6j hTUp'.QkZ x! -[ćdWMG3}Q`5JTa5ksvd'/TQ;*`8S8n#`vI{~" -Ga]i3K~(?!,2h~vEvq;Dѣ,R{h?<!t& -f&zEu2}\~IvT -̕S (Aj`.qՃ.2aE5In7Џ'QF71"`ҝn 4e^ݹ9PTio酯0.28)nr[l$UO@R:~!6'\KK Z<_e$qN5JkXxN{4-u-K]a?Y<`qՐek FM)~%z]\N2+yH-I.peCzƻ0 -pt{B/%]<>*Vc**Jp&U'm'
]b#+TZ覀?r9˩
X*JIFē?뫋M^ydߝy6Yn|CI杗;ᒴ@HM @9PdrwxNY_zdXT8 A1LI)iHz.״ٶ2X'uyu6z-,Zޱ5d/m6ݓ7),(.6sgz}JGo.}^/\?4yM*/er(ѓ<5{ -/M@ofsJPAԿKO
T^A3@en31/6ud)ަOQ<N>k^/r[P=.1&0H}zy#E>5|-TS5AcKJfW #?$7'{AW~:t7Ȏ,4f@[gޕ:*(t<o8uxbXع),vdkjm2-tڀgX#zašNfuмK+_ޫkrs`FWWa&V?JRծ hc9E:-}詈_z7 -:^{4YoUė$-Qos/qO$ )o {%OF`{?ylt4t_YΖ̦uZEs1#}p TH-zf mOcCݚzo&o:a$+6bL$ -z -Ǧɶ'~Ͱ؞<rID,AKn +x\KW0a^ovYJɕJ屇T$ \"" +3Ԛ>Zh +=axtN4p-78R06Pao࣓toZ~Ğ/-㱑8b:6W$A+zd2;qۼM=,3&AJTc8`dKWnZy/l-N*ee,-Q̭$+|5x<"hXLP]x@eyov>GgYD}4[*/*/uQ5cșƘlÑD +`r^d*˷dW.yEVA2@Wt,3m0̘ț>[@YoH-t-@Wzi]ܾUc|ŠX`Wgx="{fƅaZgFЕI6G"˸VvBze` +?G\12'A14 7cDn:k3p|`]/wov14U&[D=#&c&O̻@ttW&>~y/*-JX ERw + jnZ@
Vj
( "XEA?O*SFIJU:%<ti|LJZ + +:kG>Og Xޤ-YUl[Fi%0M_r}hd8C"Mh}A!?o&7CSC~Rpq#ynW?D+ ] +nSm +GYNt>LS]] lTUp.QkZ x! +[ćdWMG*j(\j(% +g!G{-g`]90`حr)vga]_=O
f@|g.MrX8ɀv,<50I>Yi3ܗt3M`)H*ل¥J{]L/|mqANqb#T}R~jsZ࢟sRŒrX|+ϭ~W +nRqB~4rQōw~Fyml6<JeNWmzgyr4áHAu)w4P2.-)L + +#W*>!LpWJ +Vl*CIK]pIVxUbL w%@9wB3nZ= +/a-S` IX_0
*v }=>p/Z]0 W嚖7[.oÕ&8PoE+;{B>_Opcf,]/Ce?ϫg&>=ɾZSLNI\ + z'q~u$@g9>!b2ʢ;+
ZmztqǸ/ +u%qN2"ā㴑9qǦҗ')y1X6iB'sLPuzx}P6H +~pg㬒]7Zxvzt301Ce:f.ۣENYdNKl`9DG>Ts}L"HtIMTSGt^c +&g| r9% %sOŧ*o2Hen=3v_g:eoӧ(Z'5xO/r9@-(ACd>="d
q
_y1~AQwZ3 Р\eP'?Xe>MPMͼl݁ ܘ;Ja endstream endobj 571 0 obj @@ -2798,7 +2788,7 @@ endobj /Contents 572 0 R /Resources 570 0 R /MediaBox [0 0 595.276 841.89] -/Parent 488 0 R +/Parent 489 0 R >> endobj 573 0 obj @@ -2819,34 +2809,37 @@ endobj 570 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F47 240 0 R /F38 290 0 R /F96 281 0 R /F35 521 0 R /F72 243 0 R /F135 295 0 R /F65 242 0 R >> +/Font << /F72 282 0 R /F48 240 0 R /F39 290 0 R /F97 281 0 R /F36 291 0 R /F73 243 0 R /F137 296 0 R /F66 242 0 R >> /ProcSet [ /PDF /Text ] >> endobj 578 0 obj << -/Length 3873 +/Length 3871 /Filter /FlateDecode >> stream -xr_#T%1A*TxSI吇R>}HHDh -EL=)h%S V"1E)U)^ᶽ]$,@YN%?r[~N]6,,?uw
'%Y2?2o3]S7GS+NyϫcܞT"h@/STlr+W0F)DK6b )2wۺoVDqָ⼃/VuP$fk#rDR!Ci -$x|QROBug]%vVp'Mb
s+O(7z$%1PzƽAa8:'8쿃 MQ -0rSv[7Z -XܯmC^)5ScBn/q HNJ''D!ϑ, -QvdьS$DXKDYK+"n )dJ4u"6T:Msfx⇺,k}<cZxoϵ7?~]f6gMՍv9[ -mJkU.#)2_ e3JE2}:7mnV\}Qee|O0zY1wFN<n¦Yc\M4Tot2] >ccw2P;@0[ѐ2b.S+16{NKњCG`>C g6: -{dT4^3qR0V -d(@˔]" ,B39}|* P\&cDA}#rl -D=]~{w}<@'e*TCm(hEH5ew<-@8-S{=ekz>)'9Dl/',k3eXN3L*M:зUrW^^AymoyLb)=gּ,`}~kst^8c:()h0 I1:5՞5(zav\^T 6DvVCӸj7 -ѽ,\xFZ>#,9̲̂E-L:c@RJqι[j Ufn)f8'?fsKYq1Bp]j
Z!!1'@bAb1'?le.'a -q -qAT @ɼ\@0*Z^%Ѣy$ZW-*WѢ.j,5?Z f8+?Xc٢E@
O]QѢ#,ZvѢ"Zx&QH -xh+ `+1$-H˖lnG@M@f?ttgsj"_/7
--*}^f'Y3?t2*W;km.6]
jN -D|V!AP& jgeKg}i*E.o;w[xxkf?LyDYt=:e\8A
LL4\DA]iyyU{I;.Įݾ!fPndJ O<zv#wmav̲v1ӷOwvl0S4A2`[O
jHFOz7 Uea@g"iMal!%Xٮ'@g~n$dp08S6}Ӷ)
.h3B)G1sbD!AE -
<ec2 -AsMSq.(zm3Uf;lN%/*
S`98~h&N:6s}DI}\t\l^q6lY$ׁX"Tc ! c`TӞ IfiW[ZiCp`m2X53vm}z#\vn!yS]0(z*Xez/Nslb1DŽE)BG.D%}7N+(FHPv9|r3>+I0DY4~Bf1'8_c\7SGX-nt)]~9( -eKuijܥ?e/]W^XN]E#fǯH9iB23渪MEr{ OBF$hh'dh9Vm5w"ɾκ<~'cpp}mE4j4i_%dڙy3BiwyvOU_a W~m]o^%$k;7p
C}Yӗ#!!Re~M6R{:GeOWL
0u+-cVv"dH2mLdBK"nko +xr_#T%1A*TxSI吇R>}HHDh +/)oq$@Jnom6YY.o[6ojtOwpCxqJU^<G (f?EMH< IMuyqXYl4a7̍>,赧DB@%s&/Tา҃4Ec:xA֍)@<bhJ6XTRDU~,)g˃DŽdoy-5p%1-U<T 'X&D_Q'olfH%FF1 9398%$nzCͻ݆ ֶ=(kkېWAԘK'$/Iu>Qs$˰B-kk4 6'8R/Qn*Rsy +pkEl|iu1;BuYy=>,<bko~hřX-mϚ/r۔.(]GR1e5@b(gduloݬF%ٟaw/c&ry݄Mc?zi$e>'}>>bud6 +\w%%`L!e\(Vcl.
) !N5 +| @"ZmtȨGif`.P +)ѻD@\?dͧYfrPhUT@ڹ$M^t& +#`Ȣa[y]{&YBy,Ǣe_3E$p +ʼ#6Qo@ġLֻw~H
<ҵ-|2 5aQԵ{j"¾b
Y/V'$-da3OqmzBk7i)[['־ꢖAVqYڋ}+(퀂#OIP#̚wEt=6omsN+gLXV">b<ms1 :FƠET4pӎk +"WxCyll>4vm0e`s0̒,,[¤s0-ŭt9jRlabVscv)>3 +ɏڥbbs$dn)l)sV~r&0W +@A,ӴY1-i*DW +gżkp;1 +p«gD +ev5S9CWz*㏮r{2;i.6鴩
5s醖yTIθ3'{$t]>{쩵_["u.ևrs%bʊPvEq;#zf~ nVL?ַ[_<R7vk Imuk07)ח +yYގZ幗p1CBb&6H"s0xя+߯g:|'_{&n,kSq8}tgn +S6&C<b*=cQcVB۳i +i&uQ3s.x~]m(Po\qow9̅`6g0eo"z_
? +nu]M9Kp/sL(YΞb op䂀@[RW~ᄰb8aegp7N!7#NDaPKSx,ܸoa{>{^ b%QMVPw[#,זZ7Dqp c:tjǮbLnG%e}{{4gRbہԟ2+k +sN/,f3B͈Ds\&"9='J!# c^4CU42s;om \zQcNd_g\Sp1pr8aoy6vdâfZ{/uu ]f<ڙ
]Zm +<w;/+fnF涮7KCo^چ>KUd;O-sT/1xńѰ
Srق01O}o%l'!N,SdL.Tt-Q/bai&Pf>ܘ~ RH('D_"&НF7_N&!3^Z%+@I@co38tC̾}_Tmn3&xg>
HNhPFR߮rjkߤms^s_߆&|gj2=[
U˿x^& 7T{:=J_5AaىKPCICB'44.k>#5!oE5-}R^)s)csO3s +?&z endstream endobj 577 0 obj @@ -2881,7 +2874,7 @@ endobj 576 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F38 290 0 R /F47 240 0 R /F72 243 0 R /F103 283 0 R /F65 242 0 R >> +/Font << /F72 282 0 R /F39 290 0 R /F48 240 0 R /F73 243 0 R /F104 283 0 R /F66 242 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -2891,25 +2884,24 @@ endobj /Filter /FlateDecode >> stream -x<rH -V(f1d=1Yߺ@KIԐTWWL̿/AILrŢI -͇d;5T`2_2=6aȼz˿-L7ΏSݖܶS[Iay/eDAX1[}mɜnw2·;7j݃szK³ -J@Y,0KZngSE7wVq468K1f.oMd}qc<&Oh*oJ0iZv<#TKt۶>usAqBE>P_rp)ɉ#%WmCmuD@#un35`~u߸uOgdl2&>>6}cΗکh6Ln5x<.`ЯhGkY:V? %cCXq@RZ&Rઙ!q_u+BdzK*Zhu6BU;cE|ޚIHk 317N:ރ-q)W\@Y*W$煣j-&͈TE&Y]ή:ͧ0Hk))rwD3700>(6O/TNQz&cQbGo Q*h?h1c"xϟdd<$A _ RH|]{qUJlr_:`"a=9NI܋ub_T!R2:s -ZSRm=(ryHsE:&'NiLo -RfI - x;db= 6;lu@ljZ -|`stC,zWBJs(wn &I4{.=IÒmOʺA9p/LfChx?wﯲ\/l@f֘)?T'tD1*{ӹ []
bU@9}~<QW7`uWR`9X y[Go4Cv,]z%jt -%65E%"sİWKB]DU -[]R0e@S6O[;8ctL^o·pINɧk?c?adJFdd! c5;C]Qo ]ٗ?W۾ռ_n%.VUH-zd`# .L&i
oH -9ڒo߁k_]]]6vԣr}]}kOZ篩\HXJ1֖"ᚓBS&$9NIƬì&3ZzXcϯwCErFYMZk8[h -qAG7FrM! R9C7Lcި~4 RR$)+`:|`Laޤ t_ Z[` -4{! 3;<:ŬfJbp88JcpES.Jp`Qt18cJ'=Id' <G\lXpذNRE,bpn:4JŨc<2s`aBdL\Fe [^:̣q`EG#;w)V҉r(֨1ڟbWS\)vTqsETa/-Gi8p҉cH,.c9'-'D-Ա4A)'ՔVBYe5nݸe6n.Y/ Π'(AULdN;2j)P`$/_)(bD#
n@D -a/5qZ[:Ԏ.OP<7/mɚYv6mUV>mcٟK2ު~Mw|bLޗSqsޅ~*~Ma{u -Sy6c!%ylLyND)0)W$5L!o;EL%k]\Nkr%[CHR!WPh&BȵrG -\ -cȦEQe([iL@Q&Ż4adֈt\I"/AxZIs _N/J`dPpH}^d\-<Kkyp3\)
Ҏ.ޮҮ<1$HgV9rXGj<tA8 - 9zъCU\Z]X#1*1nP44,b6=JW`Ě-aקj?N#aa,*_Uvu) -gE[tI.f)#ɴ̻R +x<nH +VY7 ,0n`uׁh3!.7AI̐e`gbd02222,ɒ}2/?~]z~,)& PhYL.yb/nW=}ӈ"O(%̼hr&gD@~ɸ8V]۔ǢBlઁ|˾>>9/uWY 7_C/ x8,hl^OY&c7z\Yd\y iR2$#z + 4@ݩ閦@5+ ,fK&Ǧ8$2/^/SRb&nt{n-OX<{Y q,辍qdSJ`wpN7;ӛzSAyܹ@|=-T +J@NY`>uNR.Nyt۶}ךHngin&ܾ4:Oh*o-g(H|6##|jP+m1 @m|:뀍dPuNIN)j[o#j,+w;)`=[ߖf={ +$c& G -suNDͶ9`q;//qy~D[=Z/`{<;Mo`$%X)he +^AJe0%#U][°TBC<ar7-R/,xJ\x.Oea1рPdoaaO◷2 +:Ç?gL/Pރ4˻OOct(Ce.Å2r_TAEB=g՝ƹľ<SAXK>u8 7-pUm}6d22wa8:wqCx;`stG7yP +SX7ïiLjQ:Q
O20}CnTU]Dt6Q
Pyć- +hC:vkr~,ܕquPY.7?חzwG~,LɈ\L3$`|dFgg+י+"=gpjP? +X_aF$)"@\O1Pgh5i*BAgwxfu,Y3"3rqpഃҧ,\<踃cpdž{<,LO@Q'x:ذ19ᆕaq<Yܰ1tIQy*dbR71ukbi$o{0j$a*: +^صKNFFوRL=(#Ϣ}iD, +=J#@XN,Cfqx8<
l(78j%8Y Jd%<;er0N{$(m\ڍ%e")e Jp2`,hG]F. +\4EtBܖ(W7ZaP]<ś6odMSv6mUV>mcٟK2ު~Mw|bLޗSqsޅ~*~Ma{u +m)5z@Cz,TDb
X_Ѯ!fsBy_pfZ'|b;=r]o7wu6(ޣ!QzWWWEޢG2".H2(=˴Vh=5tݿq.>S:%lS
M;[!q +ηUQC=Wdɱ,5`뢦P+Cʞu +|Os6]l[|Kp3+0πw+TNe+ی/19o<^ä\L0MXG1)Wb?wKb)r-k>
!r!J:\|%B$Za3\Mk +!*Qjq+\+ +D^Di%=|9m(QbB@#yq.Ap4WdH=VR8}VHXÐ Z,bͲN PFs($ UDFb?wUq*j?wvb@##(HH:i%\iYt+h0KyO?Sy~mE~Un]BYVo2]$`˰YfH>o2-鏔 "FrGˉn(yOms;7/5Ou\~Wu-^"`CFǒWĸ*"@qLٹ9]>NoD}M50Ypdtȉԣ>Z?G endstream endobj 582 0 obj @@ -2954,18 +2946,19 @@ endobj 581 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F71 282 0 R /F47 240 0 R /F38 290 0 R /F72 243 0 R /F82 280 0 R /F103 283 0 R /F65 242 0 R >> +/Font << /F72 282 0 R /F48 240 0 R /F39 290 0 R /F73 243 0 R /F83 280 0 R /F104 283 0 R /F66 242 0 R >> /ProcSet [ /PDF /Text ] >> endobj 587 0 obj << -/Length 724 +/Length 723 /Filter /FlateDecode >> stream -xڝUMs@Wff`L[OrLߜXL08q;բ%1ԉӞVzjYF3WW 4 CA+hNTKAtPd%K/͟@)H{Uݡ5'8˾)+$*Mۢ|R硪1.*LS%2/;gk7eI-.]p!A>fZ/bw :Ah|;̡Z]c J*-r_56 71a4c!Fl52j"Mh -MQ(eI;Ai쀶
A'wǺ rФ4pd)yw%m6/6nNUfHu +xڝUMs@Wff`L[OrLߜXL08q;բ%1ԉӞVzjYF3WWi,V$#pũ0,bK^??Rk?"CkNp}3StVH}UECUgdcP]TVۙJK4e_h/wnʒZ\һh/-{C|hʹ^>-V) uۃ4F%6w(C$n)MT`[`jmAo[?šc*h8wB^jdmDPM[c]*oVW +Ҭ4'T*?x dJ`WVmD)kLYXWMSemmh_
+]<;}4MM&a,GO&wHAFϿ+= endstream endobj 586 0 obj @@ -2985,7 +2978,7 @@ endobj 585 0 obj << /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R -/Font << /F47 240 0 R /F72 243 0 R /F71 282 0 R /F38 290 0 R >> +/Font << /F48 240 0 R /F73 243 0 R /F72 282 0 R /F39 290 0 R >> /ProcSet [ /PDF /Text ] >> endobj @@ -2999,20 +2992,20 @@ endobj << /pgfprgb [/Pattern /DeviceRGB] >> endobj 590 0 obj -[458.2] -endobj -592 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj -594 0 obj +592 0 obj [761.6 924.6 598 435.2 299.2 707.2 1006 734 768.2 666.2 734 720.6 462.4 462.4 544 962.7 1430 462.2 693.4 892 489.5 658.1 761.6] endobj -595 0 obj +593 0 obj [525] endobj -596 0 obj +594 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj +596 0 obj +[458.2 577.1 808.9 505 354.2 641.4 979.2 979.2 979.2 979.2 272 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272] +endobj 598 0 obj [277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 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 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 761.9 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] endobj @@ -3285,26 +3278,27 @@ endobj endobj 616 0 obj << -/Length1 1686 -/Length2 1354 +/Length1 1705 +/Length2 1417 /Length3 0 -/Length 2391 +/Length 2465 /Filter /FlateDecode >> stream -xڵTiXzQr) -Bv"UV)$(!9I 3a2 h+^*z^TZds㺡mQPp -LЪ<}Lf~{~nzd4[$#a Il>1ZLcj\B(x<1' J+A40!R - -r˲˦Ʌ?ʗXr>㖔B})
/-lĪD-Ϛt!dL儶ϕ{'0vh"๙)k<䐣{[#K;V ˊVyw)Nu{VMX'̟C'9BqnΫc2g6 U)\lz/1痜+-]n^3r5u%S$V3Z|$Iwqlu'm&Τ;
r4 ZP0t4ﺜ^aC꘠;ʢuTTmi -5n_N=1]ʢWHEf>]Ώ7/|(kۊ39ۇ__ǝojzdo,gHvO1F;SFɮ{to/&+Wet-0+dmק=a֨zV}|JmG;cӮ+6 xխ{.W4Sh%Nm,~
U/}^fYxӫ]tnW)vԭmY/Fw//چ
+_Mry\e춨=A%^1Xz`ç⣶bc_Mev>f{Zfmi*;5s]
>щЪyB6xRWbđ/ǘ*j;Ζγ&Z?2m8zݎ-,gRiwˁj/RMN5jz}wTĬ\|*OYܰ|m+r**Bc̭e?=,{~SƴXlnwΛIȹו4rWe_fouPy)vþDUX֍.8Vw: ,@wI#gkcyy3 -fJt{ߜ}ⓥNK8NczVh(jwճ7
ֵw/?l۷^\JVyO^Z㬒knu4-nٿ_E#"n'n>wmwGϻj'OeK3wJl-!sηh}gF߿x6:LM&˶1ݭǯ6XѴj6u+fcw0NRxjɥ 5֫9`K;;'V?ϐg/ه"q8n6p +xڵTy\TUw#()0,33q E +4LpC,r!V+D4_w><]&aH4H4ṃpӘh((1 +9ekGAI;rU4LO@.Y BepHc,;Lj N@{G(\&Nl6L j0BB8Ajv$ҠSJ)" +TB}c4é0\ 5d)0!;1ɩrj+#00c8AC#ȑhm聒S!PS# DU u_,YO#4gz$մz*#R\ jpBoÐv8CpLZs +bB..@GL +*
$bY\RJD!z+ yvBfxZ=VӯchTx\g\(<3Gv{\ۧ3L/c#lO +\x9EQWfB1
R쑷~ouAƀ92_Rmu
:\GȰl,LK3SN>$Qw-\=ljr 'd@ȡuǝ;Xث~w ~AMɚ6fJ)f̷`vahXW;SK̯R]lXw5B͌gʌO[PݖZ/pcIi1[nͪ8嵤¡ũ|^=Rز`GSGNGNkbkL2{c}~foV G}p<w:T[h鍢9G[VZZxw;6^IC#Cɧ54>xo=,h9>iwtf}WKSۥ AJo+FSeۆyٞ[:+.7N{w_4#{vb$L|AO8{fMF\pq5<opcDb;ЄoN>\>(^0uMa=oc<{aSJHʺ?6lrNwҰ[c^(ix2nS5>^z { /{mӢ6/ͶH>>sIjkG2}yu
zs*\Qst~W1ʭ/r|ex{GwIޡƄAC.vG
nخ=pݤ؎U9ĉ%_tCV,:ztj/yd@V^;`\O+JGhgh6xgӕWX9<3ˡ=]\ͣ7Exk1ķ+pUj/m0+HՉImjl`_vqݶPDO)3ح?"1ަ/_|Ⱥ~m?6ȅ[kT8iqְcMؑwwNtKZW%}fg{ʤ탫j%zS>{ԉ×:8tǭF9ZEPV+hkV~ѳ6-z%7w6"X˿١j}p]zsVTE'֟o22%/m⦯ɵoI'8m3-(ND7&~U\hU;sNqwnrbZEc˫\jG/uo +L}ڰ]{p;YćWǏw
yn#nWg'zb9ŔDds]Ty$nqb*f6\MUNl5h52u>ߨ`Ŧ1r&_ɧwAO8 endstream endobj 617 0 obj << /Type /FontDescriptor -/FontName /AHKBFZ+LMMathItalic12-Regular +/FontName /PTIFWQ+LMMathItalic12-Regular /Flags 4 /FontBBox [-31 -250 1026 750] /Ascent 694 @@ -3313,7 +3307,7 @@ endobj /ItalicAngle -14 /StemV 59 /XHeight 431 -/CharSet (/epsilon) +/CharSet (/epsilon/period) /FontFile 616 0 R >> endobj @@ -3457,146 +3451,136 @@ endobj endobj 620 0 obj << -/Length1 2853 -/Length2 31846 +/Length1 2867 +/Length2 32049 /Length3 0 -/Length 33454 +/Length 33608 /Filter /FlateDecode >> stream -xڴuT>SJIK
]2ݍtw )!Hwt9Gõw5Td*Lv );3+;>-Ƥ2w:ؘ߽@w-@glX{NjDA)rjxX31 - :LL#cMܜ-@)@YdZh -8;|V7BbZ8CF].6Kao
?[OM6 -6A-e]c0rs2&`҈ao -vӤׂpB̝,dt+$ӟ8[8FHrpBjsBx!=ECT}t~>s/shg
Ҷ4)2Q:;Z뽃\j9W?_bbv^LLlBυ -9/ -gOc=cF22t
c-%4r_ć`v'0X@
bEE -K*gyJ,4Hφ;V<"/_fRomqu^:S+I0^6w!q!fDZ`c2P2HW}Tr0NUApI . HGנ`J,)ͼ~BuIߘ)0||i*
>Z숾7^m,Mj^JgL>Sln%$״ -jhY|D>y+kLL~g[
eCYgCk٩-Al\Bߊ+jh9:/.|+<uu걯~O=;M9lJH2>Q:;c.}X_vZ9mҖ /Ol>xzMbYU7t6G$lX,{T$"QbB
iJ*b<jܨƩ6f`:}~B^W}Z=!pd!:V~a ^RnPƪ
NpYt^|bMQUyi3p<4EImI3&&v.&ILѫ -Bu:@H (g( p)њza8vmo}xuK| G"TEb[@emBuȤEW'ũ!̣J,\l!\&LC_^Z3ȅA[{5,*Nׇh"q١zr\a\1rNa0(_ʛ%W*NgC*(q
cq16oRGp2w}mf35J͟P"CN4mp\>uq1 {+1eCC;:W7~~z:ub+ջPzp}ѭ9{T^ן,S=\T-y&߰]bP~ѭ 4MĆh!JM8~'7(553Z#Ʌ!XXQb8:<28(fĭ "//y99=X;GY=#>XHy쁦|&\%nK vW38$vJ~uȻ~=Pm -f*^v*2Nr=C2( $gLѯgAg<#'e<2to\9]HrZaDmMǵ"+2^FxH?yhү3>R3l$]gTde[-ƺ/O+`{qR×ٺiD:aCVRY:u/I40Ҧ$mFUa HՔ\zYz%a^pN]f/Ϝ˧YnF?Bt5/_84^mРHGd'l,B+`N)}&+I8ZC*l]b1-h[= Zٴo]W6QIuᩤHȍ;3|$/HԴa/gwE?6oZ0}w#eZ k0>9oWjPgU |;}+2r
Jj -_2m -I(ś@ĉC6&upHє{|(}/Ud2Ek_QZطѾ%^<R.:0R<?[8y[=8˯ -ZpWy8LtAx }*U&$ uC=eVIjkE;\2'p+ -]KI2-bst˚/b8W\t;B+9>0v"k ܬvqP2TQh!!BtR-|]DQSI~,'`BVQ߫<{j(>ԣ_/<ԛHa gQ2Kw0銲" 3Mi-XY╅3F=~I0nZ -̜ZP<LBOqb,>jA1}̈iJ!]%6rm~'N -`$S=+pU$7[MEUlY,m<;}Cu{5_,?:߆+SIij@_^ܮ"6|lS
ڄ_uS,ʝ.x!M=icx+L<O1s%Y럡fZNf䭔%0;1 er3)k(Tkn6߮ϼ?aHEoBGK{Rx-٠if|D3exka|r1AT8bB U+d}mE8. \j$LurW-$XH8@PyDё"L0/f`43%uZܴ" v(:c$UuvT#pܚx#iW"i<^$hG+6\xʟ'Ou;7~μ^3aO -G"BVXf0<.w@ӈ0qEπ_yZi9"7ʧ2-W
fw?R;4̶ёsĦ=x4.̴p]-wd?^#f_(JB#U^A7V]mlD@Iy:bqqVu=.`@<&wp[Vt_UØ_{ՀYXoG?ؠ~(I*Z=>q`b<ƒwI)&iScD07f>7iӠ>zuz).a$ailYlEndxak&k6-Ɛ#cf|?2&,QNcl="e*37&OFc֮WXx<cSxŠVL8i\HZajZj
n| -DcxqnV_fg[b"px&Qw.֞IK]EׅN/ՏV-||o_QGaɓru!r3y6zC-y|Si;@k٬ zxzv])Zk(5]XZ0bź>oY|RZԏ( -dǤoWJzjϵ:)6k9w(/sm:1rߪ\IYI] -SI ThoO]6cnOKyK\NR;e233e -՟Rs+^O -#Ne'?x``MqbR;Xo_ -G}%CE_5hБVTEMz` -Fg+{A%(wxHvĝ?2}IafjFj}rY%$pTZ=E+=4etzOH-] s4߸@m=8te7f9m,ESṈ֭҉d!eGG*<pYHqֻk2e,$NK8 -DpӇytgɹ,t~wIJyLvySpgPt|^w95ty+H]Ƿ.W=5p4O6' -}tuQ -- R|5:[KF7VXHlGW)g1&YA-*hTi!/kM̺Uޓh"=hJ-{?feDxZoyiq8/pBC:_XCf`tU^[O>o!3ë蕖+K*a%SP*J\`i;#Z jFIy"Q)J3ĶAvΓY#9.0&eZfhfⰆNt] -\%8Ο)}U,*"@;6KfpLH~G$핾o rnSO*V!}/<G)xW]nr~p=< -YR&"`"3>3@+f~N R区ӱ\Cp"TbL}Bd,v -sJ邩5DpE)^05V| -5|gGlNsJm_g<BOlQ |jGv'@5uZ6?HGJǧīݼ`A¡WK"͏$Z$_/F_R+0Bc8_S],
ի kv|ANBmZ .CS-_Ho --I#A@asuT9l|xU"9{u@-*c-0B?ynȠfv7.bJtm:LcP${]ܖ%6ٖ"a^d0ps%2@kK}SЗmdmٌD?}Ik\[EESbBN
-DıNfG{JPDp/,=Y/x5CI|hCD$lz
tUAns (ð`[
t\2^\.p6*07}9(0Ygh9-g -ތ=5o7>7{yꖱ*>Tu7*|RfxmQr_+̻݅8zh?m'Ͳ>w-qJAT;NC| hP?6 -7ї2$9:9BW$}C<&=f碧ؕEP -ɘɖ]`c,719mjZþ[繇y-}=奬mj=xTeAϏ|
0 -"<'.d.YƑ,ubf$LoUyYM38umhBBb^mNAO ⠚S2S,-dH/L^>Y>Qғ'ǑB$fWZwQ̀b8~jj($BSEKζX_l:u
Ծ^hAS©áJ=~h۞SdOBPp; -,HW@]:a2m2H0Qiwq
Scxm!1BmӖ텐K*ra.()G4 -Keʊ]eGazptqnBV0Wq[k;c)lЈE -&k -唬6q+]1jSBEB9܇SCYenN<?1]FArf&d@*^WȖ9Z(Ph1Mo -eSa/o&4*oP@~e;Nq2tgܤkhsB2Bgh+EM0yb!)sKN:%!`A;~/;)Kdc[gMf*LCQ`YfEg#G=RIn]w{VAv]a*%yDFBw%1ƞAj|Mr4.鍖 -H9OO/<%\J`g(Ut(D7QDp*ډD&-˻\뿖i$51F#uϕjVZ%t\ 2Kt('oBC"X+_c?NeK1 -> -f<C?4S/݆ת*{ĺ2nl*gxc^7Qg۹#IAr儈0I l[ھD=ԗr_
h=s+j}Di_EWm]tMX>GX_@W䰅KX&ZuѸ&5Txw
~ Ť?kWjpa,t\֚<Sm`#!Vݻqz^wXò\xnMmoh`i\H/jo*ʧ0f/(ab<*laLä -cn8ĭWv +:k!Q8cVh|EaIv#c -&\ґ[}XhyKiG܂Lfk\N4:W^b~ʓzA_Q]Jd.S-hx:f)P`oD-uEG N7HªK}u5T-OʍSFh85 --)tuBs7D_tgpݒM<oq*A䛏nznrnz?1|x9ccFs{ mH=y^Ґ Y[]8mj,ǘȄ90kԥ4l&{[Rc_,'(QjF+{\Ȇ]X|ZSOHo!aIק~ݯ -ABfz*ij4^@D0f R/`$4qIU2%IY̹_F븡W4|/Nv;)6uVGVB7vq__z4䤺]
;NFfb
T3Vl"O*} -t>lC7bԁ#V͖.ь]Xǿ- -mxL?VĹqvʣz5'<C +2GvC $v
3J j0O'/|4hz0szEtɻ+7DHZ%גÓgej4>]XKb](5UYR?'R1Ysnw?Pv:.1ݻt+1k!$RRdAa!<`t5j?~;NzD4P^kApfi@NOQWB\jٛ'ݾ∫7a5O+3F~n{CՁes6ҌY:pRS)ު1cM?S-|qAs"2'iɚ5]$Q+/6[K(4z3HIB.g<P
^Mm~d.#Om=;U&]oaQ -(gC9gfCc?LYgq7_>J)/tMGۃs>>M>a?HԽǐu(}ad+(UNlh+;JOIf0n$Ŵkhǭ:c -~;4>b䠱nJI؆~,Y9|c02c6'd\':χd M*ȑ639-G8fpƤop.ORA+*#}hA;%\c^ŮYo -nZ!>(Lz]8(gH@ݹO*(D, ->RDeO8q40 r+E;0̗$+uas/P~歰OUi+V(-ZGsɼ@
k1]:kb
$q]#Lc(v8)tM.ͭJ5
v,}FNAْ^-=ı2hWo1Pmp,?gSM=0Zdeb"w?=aZ]SBVjCsʅJԏybtWey~:\uXdn?[<2*)1Dj!=vT)v%b Yq'w=mf*[Q^gw1)_.j<Pgf^B䒭hmgdojVfZvna;Wr{Ŋ')3`B&Lv%nQtx#q#nˮ@wvEyы1{k7<Wʝ
zQ;@+pyo͆
9'~F5MhCy9
|8fzH^O&"xwjrǶܐtmK(<Yx -fiMw8ԂϼwVdKs8aY#*;b tskbpm7[!Z/4|kTf2N'OЋy0k54QjYzF?,|t>\̡u4c6?[mDDE]q3MZ [6}π$miY(5FU65omJ6%/,ssdݒY)ZEE[}-KZ8[kr%x|j2#jv@
oi5n,qH1憇JÚMT}SBgSuM_ -|me[w@oiegij&k>h+s
}.^G$CTXn/%Ϸ6ΞSՌ'' -\{:MO+z(V[Хx*˗'tGEx%ࢣZa?9;J%f5>U@E^W&YE{1[I>Idd%jXh~-GS6!
π<m:pT´!Z^9ck0 -[xP떃 -ѝuس?o1y -DLR:y-˦ZWe4r͠tL |L=ڴ8np2fG{ e#O#49L;exkg9k9_Y?H?7@`*[x>DuO@툪oT\g{a=U.jP'Y'V(bU^T23;r+6)ޮ"A);dBgj/8[rЛG'nycԸQ1g/:q|g=^'P4~dC{{8#alWIJ[J!~*-°m0=&3C,Q'<Nb|oq4~t#We~W)quZp畱'ßllFz}O"x.@i\40!elbwk&w϶z%'kVxUqwKhE[%'/oY^ȳ)iduEuNK&4v
X;IIԳ(eA(V[*狋==&+WUNVY0aGu?(lm_
LFQNx;XϥEaӊNG4̵++FQ,_F`('PMfѿrlP^f+[̪A7*E:*>kRM=BYw 1¦__UN}P+95L e߽囆z̯=g975kMݧ -V]u
ix7Q~4jIXZ]$7Uhߴ+ތ\Ȭ;HuN1xHwNix̖$qly
#&%E;=R3o>NQx^(ܦYS]7u -J f6_o-0Oxg -R?>;찉E e=\lwEq|Uz1&cН^Uw7/HX.^a\Pel}e<N&=a%+xE4/8_m5Ȇ7N+ -۪xôn
O/:SUip:VGepHztnh<};Զ>||>*XT#MFu0
9
l,LS=KX\h᷈s4"qMQ,E21Nk8N -GIX)Y$YHW -[{4H2鞊SO͞Rf_R<iGtm8ŗYdbLJs/ߞdOciM50:6H4߱Z/SRCkUgI
nƼW?k5)k(YJ1j$ة晠JURTHgxXn-HPy.\&Ӻ - -9, Hmk۶m۶m۶m۶m۶sOTdEdWHeokY_.A4;xU˔|dt+{~c
'ϣ".7P*ՋE ܁7DB+Op"D[5C[R -a/pSTV}BI5x$~>hdvk1v;"fc d/8o @[B-ݲ"fQRƦ7M1˕Dv
VQS)pm7hggK=V1bcB 6hp-Uu/ҨB>D5S*YŅIuZ/Ǚĩx'7OӪ.>+ԩo2W!9Ml^P:A*] T`;iěîq%<-)Xv*"čKFU]Cf1`@ZՎK7\[CkN.>2;!>{(WA7U+1ǻ\JAЮsC[uԒK3xa}:d9"^;]$z
*:="ҭg
:*r-.6 -8F_ -~GMw rK#qAHOײ
y*;ǁ/eGlIUHU FrT%OlB#Yc4$3GGExR7q#ً -0'Q簸1J52n7 ^l`ߦ|Q;ְG]> J㶽gM1$jul7 - }ov/ߙ4E>._d51u p??wn҄g} MZ<:H1q[IOm9"CAq?y=-ԏ/7zD%>DS
{(dIQ#bG5iǪ1L]Zl?uZQPk<13{4wdܨڟ6}!ςk&\$_Y( [┐| -~WUE59VuW"䩖6Z8`K\К]9BP}WLn9m+!<7! }L%wW[e# ]&T9S} XiԑЖH.B:]2|fo~cu=I98d_`/h5[ ]t0n|\>)C|7v\
쨖R@h"XCaݴ<wqBL~Pf#B"ޅ8vBN(Y
>BH(%p_+=&POxø4\%/M<{x@NR`fNЋe;~W`P^ !_=
UW/$.A ]LF-0zosGH><KO5# -W1Ohx'%i/BDZ~A8ON=U)o^b f]?]`Y!NJMףDwn}h-)}Ax-ecAG#;hҲ5'GpYF]l(m8OԐJgkkhRҋlKT4V0tzA*}=l -
2bD.llh-YsS9]?|ԟ?Tkj^w35rJ#8}!7YxIFk?2&+a&TQv?zE?N4\Qƍ.98\iTǿ@ZO$6џilE -ZR)49d;K)R`HySK}՛Y$|;AĀ;>]>7OǙPV&>пNՀkLЃ,s_e.*`tj/HE7RLbEyU$x mEEdO_귦.MIUî}|x* bϼ@ϒytPKG$^e)eTt],ɀkįOɆAkz<Ψ!V.s?
¨lV{V -3D1?.egVLږ*p\,B垟W -:6*SU#,=,^:1$4+<孍CbD)(Z`tg,ɳ;N͑b9,dqXDqqJ?1Ш9͚93,p"-8Ŀ~$ -g)L]xE -c)ҵkʚU[zutjk~2Sįmu2Z!0maDO\b`Lư92hVj -LJ)w|V̐/)h<̿4c5m\KX[6R -{alcy6ҵԯҜ~{WUWwb^%;ʴ4{?T -vRqi#A5ؚ#M!N{rP^z. xٽN~X}2ʈk_拿)V/@ѱاZ*-8<![.g5Xq:a^mοI=..s):ͣk~>ͽt9n -,<_VzD~Rjpi?SG#VuMYQRchpxb6Tkl< -d|?L@
nhB:q4{}p&16B 1h'=W+I4B.
Ue}7nE-%4clfǘI<b!h_Q
St
#7-0ZTVYix5Up. -8Ew^ĸ<Vӹx AYVth(<=^%$ֿ`\,|E6wHNzj]#W -Y{4! -wK
mٺ:w9YsM$u]\0ľZ̿d"61C9nCY<m9mZmIw`tv<|U2m.T lg:Ba7-%˄:H5J~8y-*ܩaYfjpOWVf1Kr cفi\8W{=*Zm{~TLsScF$,S8 I={l7 p@3's/MmG;飯&[gIYۣ9~Z!Ĭ KL2+ɻReV0b<=;Щ!ɨ`iIf!˳g}D@*XJZ@(jMi*8KE_3"5I1UTLf;:ũ Sx% wt74R!u}bfiȴb1{} -`%}WD '7ncHcC2iE.´H#
Ԡ<O
ti~7+~t>+ʕ H.N!?vCzy#ҔBm -H.E?NAËbFJ3M*FWIueFY -?;٧$QIpѹfv,5qI-C:D'U˼ɖU۬5CHoiK3ɰt#飵WAnGCȔ
: -?m.roxҶoW\` Biܑb+&|$0b7GQxFj@be -T+*%)R&֙2U<vUCG檍xB9t#0:Xӏ`eǝ1~~e"+ItȾx2!k -6rXƀ +xڴuT>ӥ(Cwww4:0%%%HtHwt9Gõw,&W`7dvfv6:h2w:8XظШ%A@%N + +@k% +P`Qf]BK +Z]w{_P_ AhlP-JOdnt_jb{d\'ubsAYۃ-5Z ?AN
&m+;b]T1gC7n۟A): +'7$G_-4_6 /
69h$RA1-dW?XXB_(!nl+*~7J@v[Be=9`zɿ<\+k +Jr>vźA6O+IUo6>>įGrY2;)rJ2HZ#]ߞ1R(ۖ]f؛qm0:&:`!Ϸ8QCFtaVY`fM~ag4^Ji
¯sο +Ay%T*ȊB$8ρ?d|HQ: +И! L͞G jОE!JB#qЃ/ZDH O$jE57u)`>S y>F@G9~4!5tNaWDPغ'#+M88yjEf's19ꢯzu؝f=q~ĉ"韤4Ӌ$$Dm2F Dt/$xmNZumhgDdaVU
zI[ +[ @?UdxF8LfB˷"qW.- /=%KnT>6/>7mxVp-G,.-Nu*քD[Ywr2w>6GfXl-ni==& +"\ւj@||!{j +#My[U}haY[Ng*'J?4 +Eέ4=)l^Ð).,dZP +eyr$8ۺmaYѵ?$X'fl3ܪOlnq>PQ&}7=t'ikU +n
)PMޫ;P(}ɰysXD@%M#I@I5 !;^A@@}zg 6@FƾgdŝP@(r!($EW70ŜXv/ ;d\AЫPxeSJ/nCQumwwE
U: <{zja>6Ot=ױA #²R'Cb=\̽9}OȒֳƥʚg3}e$X<&UDszM*Ikg(p
QY`yyf{sI)7suIʦx$dZ[8E̵W#3_#Z|1Zh)'%E1l3KH +ɿ Dӥ(r2-:|6zg8 +)ocӁ'ZPmN 7*2|6K&첋fAtռ>TN~P$<|oX=#TV
:՚&t<hQzSx.a\Բ$Ga&-Cpn
CmO#nLF!d䪘g&`m*^Nf쥷 +S9txͭU#ee>[riݰ?˹t)+ +Io"=
'bL"GTߐC7;rt(_4+QW#,(SNy2f<13,gy.win%jl12׃P,Dq|9\?*>0|Og@6o#aej>+
S&I'ǤoU1hvuzxfH%S?=GaS[Bz-uh=;.fZw+fޘiJ7o)4{Gqa/dy%/1ElfPƄvo5^|d +PbXϷ,j5夌bb`9qA0lGkj&٦ƋDw>-sE3y|ՆfKmy؋ۄ2Fld4˨Yo&[?JHxO|ai;z\%}0Xt)¸nܑZ|zEVcJ +cp(
5X)|nF?^\rP>Q\9 +o5JCA/0iCsD ?n>'ið>j}v-.ekMq<!fe)-:A_GnOpAU<-x[vbǘF;T +z%ywi欥Pjs?RC[?ud]=2v/a{>?Zߵ l\ 2"qDb+Rqv̌2riF|/~xY1fKoβY]IQ-]NA/_WJ@O<7A)}J9нDW O;"9[.| UF8ꤜAᬂ=滾^+r5[no|pKRo.'bN2i>݁`t-Qs_*sydǩPJ(J>U!Nd%`NqcP:XojF<葿z%|-g:I+Uz@;H\h(B2K+'Lj>`;@?YqzrNfcbI98`DV#E;sH-FOM=ް@N>qطjƞw h]Yft3]FYN7W3FKG=}'^*];.wu'ZguդEz'XpHr>g`JTp^BډsNHyHrzWwcTpzZ5pۿ1rfj8L>iRK[]Q|Tq|@Ӿ'}44~\O.zoС!~hۍ k/yFdMƝ49GSawn]ܺӷKhSւ|˂bielSaOHxkO41' /
Fqa(g*=L`b %+ +lx+2u-YN}^r9>kݷ +QEU_Q,rmHɯR#G]Iz1CQ~w4#w'EALP2iR$*`<o@A,-[7ZdL")WAK<j!l>rq,9~^(%A4ZMx_7`)R{+BepLH14H{C1OhB^Xsdw&w u,l#~+8(BzKuP[Fس(x#`^ʡG[*F,i*iȳLr}hTg9<*(EZ]zS/R{|kž~ɫC]vγQ N*R]p:~ӕ92B!v +r5#LIZ-4?ގɲ2Cs߶N_f{ÍyjˌoXh7/h2ﻈa[]ݮ`a/rq?pde41MVs[eӛ>d~.*&[^
GFQbqæ1L +k2>X̝7ˉi+j_l<i 2^$@8{FiUʑf}\2dSҨ)/%ڛ#+1m3y>WéORUq/KNέ&/ͽ.[Ebwbl:?|$.&ZI!ۉ>sTKE_լ<z9łD2M%, -2K1{v%@zmߔB
tl%\4Z&_]3McjWE* 5WPZ-"~؈+.8iy.}A3<mÕ5kz. -|.)u!ӷ鞚bˏyǴD̹_2L>6^h -b!Ԏbɼ5OJP_٪B3]UlW@[Fhh%GgnZx0\%W -pLXYi6ʆKStt&/0w6tHQzH
!e(X0DW@:vh23-s Q.ԙ<O%;+woDbie/g_BD۪}B!V0d"u6@ -,rpSO8Aoq7qRi*wJvoa@,CislӲ;zԻ'ot@oZt|qg3WELgH!16@$䱖[Of;C=Iji)m""@}gB4%Qf5ɩP9WԘb8j#(TڍMq/uʌ\@nZ;w?f313'C$9>!XH|V
Q}T?R[uhvͥCҠ 3\6J߅Y$FߌF4XB[}MMtb|tI'ܐmBAbfHHہV/I!
KyJS\u4U@16 -dD^FM_^1n^([ѫF%"/!{`r4&| ߵu&Is
`WHS/ 44McЅDcj;*%C4N-ש67~gYuQR<R.`+dS*(il7iCxIJYkrժ;):G<B*'<,IYw> -MY2RS!r g,FP"hV̉zD4LtSmŌIBKuR74uLRrl[; -|>KݧK;X#ӗ(oSY#HQ`^,r -G`]MXlJP1'^ugrv-P5d,P4vKY|2^kC4Ҙb+fN =6P줨iW/V% 1H3t"(hW[y]Yz aWMr2ޫ]RL6M:
igXhmF֦3x:d5:bL'i)` }dQ[sBJ[+}-eLCI!S#2 -qI>'0K?R^_Dk#nijro&q.`&f=옩oǶr%aEIx㣻IaD4o`vl
Am9S$XRkrX!KE"Gk@"E9F*fg@E:44JK&ll "ta2:qR^4\⹅3kaӽ<5s4gBtO]~Dh6yʽ<5)K^"ɓ.+ߣik<%Lҫ`mk`3MbkA .Y8ޓ 1$1\6w_6KmK=8ڇ)Is`t\P -[ƁSO uN&]U/"Qsz=z BGQ-%[*Jqπ'"LbQ0N[W߭ 7Rϲ3Ay14-5|f`!YE#[ZaS?F9M]3s
Rge_H -~!I4N=RW#)X>0hrh* -9j1z{w_>1hdE0R9#2xAU-u<R[VNWiYw1>M62L\{]<Vht<zZ{#c=15: -|xL}
Aǩd`UG0mCNZ%ƘҼ5emѾ}P$J3$~4 -z1SΌRrmi$8V%lh39V;P76} *dPy -{J5\ dhY;Bw⏲opk&<JM!`ʷdc϶ -|1zwYN**[0V:ZlK6(0>e''Krs98lX\.< -9j{yǖ
5;J`Z/zWIѻƲі<qڭQ겾Ǵ;S,KP -z똤30_ -\{tuT~P@٘O(A:
`B4"^Upm,M(n1ISfEӗ9qB - -pm=O8r_4|yh*zIH1b -g )5Off{+LdgV&z9h|ᩨH0re_y%/
PZM uHD7=XDisq ĢaK~9Omn0jڷS5F%4"<ŤB?su؉V4@-QI}6^1*wXN_K/yfLWe;;),p9 A]Vٷ <|[H 8 -[o"0x#A@/O:_!=k,* 5^Hw#U/r S&%).[j\qq\5N
Pxo_\-e~pGz) -ǟW.+h$v$xN#44<ky -RC>vt%ki( -1Ӂ·NR-D YX4fB@:N?8#I*erͨm@zf=XQTU,3+T{7'j{0c]`S5lv}:$z.c^pxk -YƜ,,L7Ӵj9A͢ļ7!af@AJ il}LVʎvˉk(5QI(A`,rU` -!g!yolD`Έ|k;ܥ".P_ڎ(&5g+DZک(%>!\+':7YZf*&k*/^fۻ?5$==s3(>&֗jtfIjNo}53џ.][n: Ba_"}Q̸fkq}9[XY`4?}6L)X S,cx! -=aY
MH?msl38bW-c`XuoΔ,}t +0r00AtjWѾ
RoSύN*;ŢaTc&
9,&sG>Pb,hxL3o&Yt1n3f+Iת ˀ=g+yNX1,GIA_i@u^5!<TnGxh87<5<iM{oX +RG憴9kh5B$>]bعCtVQU,uAW6aRVm.I
^A]}-F_Cr~EV!.Mx#LgUX886snֱ?8faK!0_rmoAS0tq"m:gDp;-e8/,[(wmp5c*Ջ3M</:k!n% ~υ<˴^6(W(~/3zGlg$!^ oԺvVj!q'4ZP+kIZ0Tm̓*ţ>(RߍMxpX=vmЫ }:j(;^7)V;^dypsO0lyԮMЯphUjLyKoQט.0rfK$W$ _L.y۳[-)恾5ߏR1/s1_ƺJ*UΛpt4{s=M5-_ډW'LF3mC9w !:"a`Ǝ=JBIzd̘W<+7{TZQm6se 4?~7$,y3̱ +.(&fan|(CYjJD@L⒆$.J٥7!ΣRK=ȝ绌yF!~"N'Ŧᡕ58SSAhH#|\3-${Ҝ*@noh\UBLK:h;()}99;/,~7gڇzFO#M*~aqپz +U.5g)v5î3ϳBD 2DT9-vV/NrE,!pl]HGC'6EH<]%ۣ~e^kwO]_ʟ'Gw?$zfпR1JĦw*[?G=NwuF,hr# 1M
KZgA1s9S"\>ăcv|hnLVt,pJ^L +ϰuvfK.^`hvf]2Fr%aka51qș~ʽv
/W:NC1ܻ$N
z +!ޣdi';?jᮁjͯ|8#J毖lz=Z- + +5i^{4qg;4~KX$o+W?߱#:lo#;v.{:xLPBg&DXޗ1ժ.~J5ۇ +t-|L}ج9mAs"\w*
9i/]DD1*VXޝl}v>[; +>t{N]"]f(n""ggd=u>d#4E۔*HPL Zjs +Lq
3n:&ZvTJ輿uI:RPbS̱
7̝A#L1
;Md\Kn{Bgeo"zIEb
o*O^ŅEi9َsgӮr/1g,-
Gd +5+zBB28P&B +؟&ň5@iY^NvI4*s"K(Iy|13.IM5WYGXE'O^QgW[cia
5Mz\d\.pj-,W:ꅶv?5m5èsۋkjywL7jspD<- +>Zb|[BMP
]M[yTԷl|'*0T+}.3Kpu$t~K=hmQ_Mz +zV5|fp0O]QC|rfWYa>ʝ]2y6v&C3TĢb+$od)7\jK RkC+%99!/^YcMكGGiK+KQC"ߜyykqf}R<rPg*9}wjwi;aP<)X4!]av鋵4UUE[al5(m *c i +fQIyW*ht ~)V쁌! + A9eB$}[♼EQ%VX@DAW~I$_EƁ
VM]ռ?-wXZVSJ1OgTL'?L/ޢҒAX~<J*`մ *9Ivޙ+HTͩSR*:ʼnf$$P|5J/{9[ůrZ\ɔgS<T2yq!z4$ t;6q/\>8$m@]7 '`$W[v4YT$
]JɕhzalLT)|5dQ9 +Hu@M|aeVC( +Eߛ!.?ް.'nk(K̰`'#ŀBR,n @do,QOV缫Hv29#{鳜?su*r7Ic(hV1{`v=_8W|9!9lg@U1yX=&uWqG{Ugj3EhҭiߜK4&tQ-Epˑ*zQLz`[YN#(F2+|ogHMwe7DxODzJ#?ǭ2no~|[(n֦ |yXw9"7!\iLlZLY壖npKsHϸ(6 '&zp=bWIG +s+.0J{7Mʏk'8lCvKإ +N +AʸdҡrkU!p~'@yz2p-]LŖ^
k,A;5aSC'X~%b^DB4\O'/[ȑwgG*?/#9K[b?A_ pTjo-g/`&Xג/^/ Zf1>},_
1j-p,䣀RrcM*k=8\w 0bS`_goZOIxexhLL|M+BAKJlhMߔ^݈02.ػ85Wש`%[uÔm"N5:Lq7"lJxExч3QJoDh-/cC)UQ{hcsVfb.!<{psX@m۶m۶m[g۶m۶mÏ\%+i/dsq}ԄhIɽ\mk}|F/nWu2?#jjGk{&C0vh? +Msó)=5yx*zi +&+^EtA5jn;BGo\&> +H-yJ!^K&utieH%5GأMӬ$ĦR⫝G;=&q6.r3ce"y^.K3bJqUyaxcJ56|7<9nK[]?(t<;3V9wV` +9v+!yFYd;-|| +Q٭[M*4C=35Νڷ1#3Q
z n>1=h̖Ez31 naJ)tȄ
UB!]meӮ5Z~ µ{Y_Hfy~v*PdǓmH?y=q +8'b=~^16` !@^I6 +h.}'h2 +BM$xސ&tvx`'FEuQg-m '.Eye铰Kŧ:gc +2taApϒ$qAY5Bʟ +v3#zިhI2a͐b4oH_-R
uRCkֿ=ȧ<?sE'Y:fQzNcgaQEx?L+Eƃ\q;$G҂u + DmPM7r$M~Ґ87ꆖ gϵl&[ctɽYSsЩ9""n5% q F<9iERXlDxc?aI צ@#4?28798)$-868҄! +9r֓j:B#IL`>\T\< H2NP +l*".㧑 %iDiKM^ b 21%ӕU hM|ü@S>, bVO8c)2{Xw4
6{˵v{O$z͜e%3fMAZ6EUnf+l-.dXћF*"u̗nm"ntM0N\}aPiާv:NIWp<R.^'͛<̌(~upV+6-fFn}p.tVߺsmNYBӍjgbhS3b=}q.NI2ϡN`{RHl)xA +Z5N<& 4zp{Z$=bM?@NgO1a$<mQi^ӏRjblޚU ԕP(GR?s,^/ב|HYZ?iyWP5SlڭWےLm>z(bN"7 "Qs(\XwflS[!&xX*;IX:wܓ8QgdS#r8Oˀ8Cԫ r' #9e~>MM"ʬ#r.c@bnS=%qO=@`^jˠ]S8Y;_;(F{V#/2`W`X*.\zP H +y۸
+R=H9'4 6F{Bp1(|s=_B}Fd4C3CIoEudtq;zhi<84;fKjF1eY@I̓%X~/`[%-^^:cQr\3ǃs2%BhßD"ίOr @'r.Z]6?f)fh!o'eyCٌpd7HNg4L)L}X]U-.@JRi9}u:$a'V9MUx\?xJ{)2d<qlq
$)BȋL֫Ci'>/qYCHt$xZGWw
A'!=3#Y_>ufȣ`sޒ RgADmoPh
:{T{ExMF5":^7<xz{c-AwcWcǎjJ;D/FHBi&Q47/ <,9,{9B;k^ӶiYTc{i{kIﱸ_+J܊k@3u..#źގw(sx:t =]
U<}h!^4-UǀfsZn2Rl#;̟s'2}1;[X fD$*eeJ1$Wk<(VzI$ v5A^6:x:̌>x8i`G*K-R%lϣ9u{=Kh!q6Fe<'oCPZRo6gV=_N=T
$R#.a~,Nк2*bhpÕ:<ecg!'f Dzv.T=!4bZ4yΰX;shu2в?~m1,ڿXF-X@.jepᾉ
[럐p!qc9!vxZv
h~˘6L{P `Gq?Y +4d`ˁgBEqR{Ōz%b.+e9/.$|!SNr>O>GܙK$<SE}9Q.bv$HӍmlM̯$,r.lP9CفCW;S?rG]P>RB?+ +*j7FyyS4fMIȣpSޜ B*-9 JqUlnl_ܤ=Fn5Oʥf Mi|_hzD5eVcdݱVC4$
\6s9~@-hŗhÕHt7
^"I}OGUw +b`;vhL lSH˚Zo@0JCNt?71 +қm^6LU4٤8g!}s ,ʃ%8aaEtk^RBnRpS
q)˚o>L=zU@5TrC2#D{Ï 9z__掃?ӧ{ڱFeFUWo<MDÛq,ňJJ}ڿր,R^tgb`j7+\iHr=豕:[@ISx)_>xEW\B
<o++ f`UI4aLw"qӨu +yt]̖>)ڤ@KuU̓~?sAVyu:W@]iMdYa}/$H +Jgsh=3{y/ +^|S虛|8fMALScщr;zPGΘýn:/npũ
E_quj,PZ^wN6=4'@V5]ct:
Di_fٿvrl`Z]b̯4%.`gI2Ҽ7U QvS>JjB%}HD_C|%2:sB?C@UE
B)EKw.lV
4T&zS͚i㋢C4R|.[{Rj\mo-rY-Ήb,=G`(W+b[q\fY|? +a&tc +^K<8a>j-9FۭbX^6K;3e㷬[+0]W=ǾdauO{gBDWKN.?!뢕em[rrf*)@D̛[0UI=aP-dY?;
JPiJuB]]`;K/ϳT1G'0ޑ$z饿Dʍ;ZsC5a5wCG_w/w̆Yرr,+#N@0"'Ƀ홽eCuIev{%W=x`$ +Zrq2$&&$fAQ{0:%3|b~^7#YӎeMXO`(mn + +S~[>1/ԬjͪQNBqo=B/38kM Oo\ZY,`yс3K@hkt^a8@[^]sr3(VSht4:+AQ;A#u@, #HYs +p;7iTjª +NQRdd<ϗSͷVW-ҡĄ}yNyse$0:Dy[ V^GBI]I/ײ?Z|][OOJ;
\7?F$"!I@*q(0hkok@OO +7I蹩 + +h>wM10J玗ALZ^m3:^mmnoS[6*9l;Ӎϫҽ6/j +,rbQ$j +M;A^#[겒?|ᇤ5%}+d}~bٴF$xϩбEK}M(u`)7}=7d^_B +>Np:[Q4W H1< +PU4h "?gLi-Gmyh"4:D}k&Hb3D3\4y, :-@wgrďͲHa&ޅbɷ$QM'*J<ٳ~$&+cyE)2b37YJ֝>eOqeˆ-,KDu`Zԧlŕ<&p/Lj"GQ(AR?&<;.w,@V(y]Xz3!JWƸ"s<W0,JvG=ڛ$02&+Z?9>;3F>4DAڹA},)n5>7P1BtgJ71m-zaor +=zċ^D1mPc)j yt6khk"<a=5b +VIMW&LxKɭj%1I
h*HEB?|q;c<{VHCG +!仄'pKS\d1j#ھ譩7rɤzww vk/7VGU"p+!\~P+Yw;PDCɡ~VWANGG,ߚ@ʃy_qNSҽ7X w>VO-b4<b*]خ5r1g!aa:ϗ4Źpc)iP_K穅¸yl̰n^8ʠ࿂j̛VeaS]3/$v_ƴdCcM48ֈנm5پ.x.s=Fc +s1tD+1/SqTLSRm(^>V"SZFOvcAƅFe +84tĪ!?
Weq͑wz1-y| ƶޑ+lݹ`QSʶRA۬hp)F<|9[NrpWQ8K紬Ń_̇nlUƕ,Zp_CSJĤk?v
|<:G,Bհy;_?쬐ڦ0WnJ"SGu\i7Ѿ@ +_S.,\I|kjI$)W$ߩ>@%fz]/͎@5b躭%! +,.sPA\ iKH&ǙΓ5G_.Tcт{en%7yjP/ZY-.&S|:dm'emsJ-Uۻe|7ro>t@QNN}KS[Ymi=y-gMe!s~ +ݱ34ʞ1qüPn3q\yLAZ}C`L쓭 d5&( +!^=i8g-`#KOz 7~FO_
vG#ù!M^@HLEMԮ햮7aGEGY] ;<ؙs3U5]C`U '^G4饮G +#NͶ_Rqm +їUy9А +AҎTm%Jף-zFX
V{i +EE^ȥq +_dDT|2n@aϊnYܯU +'uwt=p#MIqQ'cZf:7k~o˫
Md VS|tl305<d8вa1h[.\kK++B:M{? + +y\65W+8HEJZHl oSK,:=6YxQ"m`2II@"ƻ|VKD(8'Cܘ$USٙ_,S`D'[cv 4{4MY~2Ul`kC1Dӌ60b'ڍ9<LLH3ow ~NAg>EkCu< (Z|?n,6"?o|'"l=ZbTf+OgC-{Ym*EF23+yۘ!pxU"%0(!;1JJiA;EX +/1tu+ƆzV^!ZN6fvѕ4 i~=v:/b|'>Y2V4a+\̺M>Ā4ů`)`9qT[K_*{t CŘral˳MxaczqP`lVq]76ȎxpdJ3KmYWWbLyѤOX걉@>0v1%dx}1X(rV@UΨL{Dpd+mКcC/뭨PgZqg].^6eU5ϻ'M +%A4d +=%2f#<Z?<ٺ_K>'*RN2mn#ʎ#o*H\4Z~,2Rv +s@$7%*)O7jjHM*xcFf2!\͕V4Q*C.t'`yBplQRdA;*t3(HaLD5bхE=8g.Жe\.ڟp8O+gg>4v;oHj%K,[(AoC?-sBƈ$X@2
ơ-DL@a}gXv +unbaaxxuJ1Nޯ8
q +LBX~DpFHS<!8krv#u5Q <]Qd*~=J%D@v K 1UF"d>D8l*_Zr;iiO3J4u*e}IJޠc&e7flYy!u²̾gKn +,#R:."o撗n?3go؟z6rm~#1h
M| +Q^<>s9inCSdS"Ao=G +8iCkAIꈭhn<[l4-'M.#I[u4xi|O;>!vPUMޓmsX6%&\*p&D/-@tAd aKa`hO-nh^YU~l,Wf,잟QfLRFlǰ/!Da4R1\%eo +z^ӏ|NC(ɑK;2JYA}#it#V@tx*G kdcs'64)GzG"nq$=Y~cgQTG)f`"+SgQXtpU.5m@'aoJ̫nb&v2M5ӟH"zli +n0J}"! 1uHcDق!d¥zQ*[堳LVF +%>;g4PTUw\.|"G+Ҙcu2z:&(,2<' +tl* +[*qPs''%t ^%(6=Y]BNJlJYHدSvIEk&O&&M.rK:/$ףH\ +w^ݰ endstream endobj 621 0 obj << /Type /FontDescriptor -/FontName /JFOBVR+LMRoman12-Regular +/FontName /XLXVYF+LMRoman12-Regular /Flags 4 /FontBBox [-422 -280 1394 1127] /Ascent 0 @@ -3605,129 +3589,126 @@ endobj /ItalicAngle 0 /StemV 65 /XHeight 431 -/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/N/O/P/Q/R/S/T/U/V/W/X/a/b/bullet/c/colon/comma/d/e/eight/equal/exclam/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/openbullet/p/parenleft/parenright/period/q/question/quotedblleft/quotedblright/quoteleft/quoteright/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/a/b/bullet/c/colon/comma/d/e/eight/equal/exclam/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/openbullet/p/parenleft/parenright/period/q/question/quotedblleft/quotedblright/quoteleft/quoteright/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 620 0 R >> endobj 622 0 obj << -/Length1 2053 -/Length2 24223 +/Length1 2054 +/Length2 24192 /Length3 0 -/Length 25498 +/Length 25418 /Filter /FlateDecode >> stream -xڴeT˺5ӸCpw74$ -@$moIov{OM܀hccW t2sx -@u3 -& NuwpP1swW.[zldmj`_vyٛ%oIϑrxcppMN@77 -.B.Iޤ#%-GtR
My<\ m[#I^g_v(kH5m*h -!]`d}t{inŀR5n)=-E43Ad/Ш4#۵ -U9L1([G>IFln{ɫd7'0[^p:s; ꛊ5-=OU4juԉFvtC7M[6\ -UQ
DVr\!8?8?7UxɟJgt(K"P6c<a>p~j!}X$<O,\ug@|yȈ+OG[9{5CPUt69T~8E*W6-EǀSX0KG 9oyErD2#hAnVi8v^r*%,Yh
IPl7C?b~ W,$u.Py z`ۃÝoۙX>@=8*.1!|1;XSF/j o`[&YX!1OnI&^/1}$ÂGgr_T+6R3_Vu+JB3ϼ@ZH븂$39$?ûƟ%QZ7S"s2=c
u@̆
FgZbZ-%{IzVk&%vb[F{>~Jsr&nĨV.Y܋rILXV?\%Dѵ`^S/VSN`xL&5o-EB}A>J,1CI-qt#ɽm~&=v&n?10fl`vBF<\[[SXE;`{b5S/y
X%rza;;;;f=nE12%uva; --҉#6RzFc84og<I|K?<Mz -$ -l9N*#,&QɉgIL5j*籟렶(`2v:lGgtriivƐxNg:|D2ܔ鶼ޢKlü^;=~aőò'Z5!"Wю h`q9Orی}O4W*~S# T]ޛ)M|SDī^ -b6# dլ%rÚ0nm@/ڋ 6Ycyh֏g&{=Ʋ -~j.2!g
:e(uHRV*WuCB -"Ll8$sh4]egřqFHuN(uz0pSDGmMDEOpAIEe%RkMrP_¨)cVʥU~_!tS?v~Z=B2|A3t/22_;,qyceu!Ir7t"$gDQp|cO*=r,K^h7z̓!( ^(u0Qoes$gJ~Xx-KCFc1c6g8")8]3/R% -hܴnTm9:zݷ̒d}ћs%mcrNEd,#I!V ֎.-7A$Qncf_zW*,hmF6,x}0ɴ<420NnV|$t%LVT {l/<ۗxOe̸5$ʧ3`bs]hT>Aީ5#bZ˃kR<CXN;l^X+rox?q?G>|oxi_$
>*>=[JBbe_#dˀ29Q7T Y [S5۳+V7:{\(0PMg#lsTbD[='_9-^$dmk>gwwDld'j8\/_f/~0/}QvrEDǵa%4 -XX0uvPN;{}m[Bjo")EQoĬG2_5OvO3IUR;-sH540hZy٢>7ת)_ -̲n,)gش8xu4QYԡmFQuxm>2I1E=xJ)X;HU}D#Q5c&aP灸כ\\Ѽ~]N\Kˡcꔠɪz^5*qWHtt
Nِ̳;fw<lC.V^Iqjo>-ˊ.eVhOPi-Tndʔ0r2}=r}3)h -5=T~^TV-~Bu=0# *0 -aFBirٜAY%EXC>UDg1C
z7`To*C)aH @O߁NaN/j9xQ)7Ww-}0HHd&+D^Sq9ƚIKمK -6e% -wISepwؓ,[d6zVʇ* -=t9uBߐ[?WYC\1V60Ǖ_H+HMB/dFb*H& /NdYHehފ5^1U}a\1}jzյ%曄|~rjY{7dm.? WT*ѐA.l.-P.)0;h/0:kG4)=bŰQ8G:{pQcہ?0\iad yV3q$Uм'h_u9eS=Lb1pmqx\h40l|n]J6m@ńݳ K-@b}7;B!up6c]1k1YƧظyMݷL"g/\͎vXY]Oq
$ľT>ḿrM -
] -omyT>JA%Xmu%K-CM -7i4$>!rCh.ED];?{0}sE%DJ -2_nΦ@JSX5a&>~U!W)˸ucXGݸ,kϳx -)*Wq9ǾAp -Yclo(l_:X({41<?03=19D" Ohl߽'hz$ͣ!y}dWII5C03t:VONͫ..UyLb][LYCK[(t=Zzd5J.MYz3Z-2=rQ]'Cn4'~Y5AWME>-Mʼn|\1Lmv>?<|x7i/HB3fU|>%0ܮ[="7?0BȐkXC0^@":f~Ѩu(cZF|wڅq,@"yDAb2d3pƴ90qLxxɀn -3LZuYqu'!ycdY2ݱp^mp2nVKrgJ^,Cbu{WR -N'Q,J&2@uK#'no#}TZ}0_U`uzLlP?[z{o6Vl?
@i5ޢISDz[/U"Ő9YG&ZTjޒbv<:ܜS]iyZݴε8% 'p\oלjx[>xI7~ɬ.<Be^)&F]|, -b=Km)1 oa+
_B=#˅Pth9т-zЫfśp}GӘ'R,?ȁ٫0EV8|iClur
/ j \!qJ2!Y&Pd #HΏ]jbY<ZOψ[W&fM]t?aSETt<;1jR/A.ۂ^1m-',u|6-n,eH-n6$<2~8UoCXqp~B&}-gn(vb.QC=?3-mE{Z01{|
SR#>ueՒ'f,sʾ t"x*Yy$qsػӬa/Gj{@('kmN۷
9(4/\eܷECǁ=lyNHYu{^DR; \9{C;^ؽ_X+eKi>)#-l4*p]m G=5ȴ:K7,֜ìYCZ:uq`eܝ>Cz@.rk>D2[Nt<s {vjvKyH;ox{hJ<ʻOQegzj6[M,7=TH&6"3,*O$V_ lzG2m5ƌ -* -RmˎFm`>ň*1`5xܔ6kLEi0OY-C8[SS`檚#4ɯsaDS -t RR%"7++&*+AtCn/ -%rp/fc!БMjnОdxl:1-g*!Z3FTZWhh%mo] hb Z56x25q`ϓwyڷx -Bv٬A K! ɂĔl@CsvUvb*td\L3t5ҍ}}Kvi ˞`,z#7sB&0kHi'cȪ$+Tewp՝,/rn309N/CY
V,j^ڃO,Yei, -`qMŦ -i >`GG*,gȏYM[v00ȭcBLda0x ~"4}kLBs3"^Vr"^s6&ExNbs^)I<ĺfIԃyb<ўݸ Mퟲ9VRoόl{!?(,83wuǍ7Sz,[tkL^][IW"iZ _>s:_2>{I~?IM4$z}ۂwGrNJned+VaFkAz#r>-nZ5S}sޛ`=KFq -|;s[CEb ?|&Ʀ/pOOcw&)H$-y.(`pAeI^N64G Ј;v|ʼ=0g9%rn9GR0GGrA`%kk1hon8}TFV)>ݡXxny4I.Z]*|cNȏ14 -$Jgl~6/Xw=By.l;jx脤4i5l4܉ZyYe-Bq -!31~|w#p&*}dVBc`雼GÝP-"4-:kx[)ºTӑ/H{0t
@_&bp5tNOCciӆ)6
vTQO;-"[+R5&z1 -0p$1-VZՃQ̳ӎ<t++} -^Eógc?$|! xIeݫE٨*!1TarR2e
rrh9mۊNn or_Ky
hf.]Kr
r#\f%US)`Y1cmQ5if l!ZZjWd\|,9/"Q -moL4ʔdGdONtVs9mI5@UbZeZAvj#u}dQa͋΅] {AtDNc`:ѳ' -@guq -I-
,?ͅbQ]~^BZ0+ݭ[
Pe`'HNp~c$O=LqrM#v6aγPeD8gʩmNOXsb*<$)3VW+ZmGڑ 0Z2ߴZH+;tDQ\'W"v]*n[+s<
0'Jg([)gC,C~\=_5aa;҄ nVXTM~bFr_)sR
CP=5Z"8a5%4MJL[d:k-Fa30z=e<_59ELD(l7rol
lEjA.۩JQw|<}z;
C=")ր2A|+
ٍ\IܢBT
`&c5}h1g]i&!5qT^|pFlNlAMeL.D2/#weuNqFS4yZ! -N]6љ3nMZeUvha?ơJj'=YJZ5fvڠwpPd3mbpFg8Rٵ_5K7y-gL,,\:1v6̖fWCϻ'w5EzEaShΟ\ -|Hᨓd/_"Q(pӁóm8sèQv@"&}7
L}REbidwKܒʴqQ#2e*(nPt!'Dү^b65Vw89u<R6u@ ɫQqB$:1VR)Aމ*qC
:{w1ؼto?}
qL`l9rL\?Ćy$Xip`H$|s2} ^H%Vd,G}r.Z;
,.Ch!U9*+%wo"ΧZ!QWRJF/}7Պ;}BBpD4V¦+@nfWaD{ȬX*u݇dS?Ӕ8ՏJaOLfmId9O*Sq_˿galt *6|+DZ|,%;a{1 -b32 nZ\GS-1\b9d)ɬ/|< J4~c -?4n^*^VyIt_Q>g ^NƼG&:-f$( 7;G3I쵪+PZjIuYI3x"_rRN`(?Atm KR.$jGF -ZQ./6!CtA$hy|,:&Ar:c|II{PwO#07`ˏRYN`|ۣw2YkлyўpޤD99فOr<LD@O؟Edګ̍HnX^q)9-˪%в05q_=Uw:=4R9ҺQ0Z -%c8*WꝾa;Szu}3ҋ Wp_X/W*:%xnbrTn}nˁ!Ã ȲqYG\'x0b0zٝH @ڏSaf@0!dnj̘Q|2^J~`F -oRdrbr܂>v+2wڕe7n$~42ken4Ə}_#yZ&HzuTL{!Z[bSJdzRTEC[U]Z=u3TAG$TnQ]ڒ*m8Vmܺ)"7EG7C`6x<L& -$^
?ko{k*nYIj&̉6 -9X{2s/N5Ik3e0){1{/J=m[F
4 aSLev¨]><Ĺ\_CK|dm_0c>8!UʋTʹ13/! Dz7,su}:˔1/}m3m,S.*d>_e=wW$lM)<_1ը`9G;yE)faN}tR#sg)N_IzV3(Dzb'3@Ҕ%hO戇B:Wo+ -1NprJO<{Fq;T8Z5nl=;g2B~rםZ.Tp -{ܕ#h[/Œ/Ɇվ~VWޚd:Aj(H9)g 1D=zX -Rs716," -)';n=L&p >I㝖fX-PY_$ՙS.im.Ǫ!H+`w;s[C+B/Gr*$q<agߌ/!fxzs>i>l_i6 ױ<UUn_Vȭщ#]:y:72ѽVGYOyKmG1wW&]e36(dN0|i*nYʐܷK`aӳsm;qc-MJV p@{LW?R2FAj-3WQ}KX95oX<ȐWϽԇ$EO3BZD$TG]V@%:wu9/!9B0SWvW촾6gD )qj!z 4>jη)ĿG=M9K}['-YĠZA -Tax\ȑy T@k`[[[^bJEx/> -Oo,Ru@?|)4=`Z+!nJWVMi$F'(0TN4<ZJ) -59qnq]jKEmlř鵍Z5C [ȏ9yL(#;`(;X,%:-蘾U 9m(,I):?YL[9zŧO:Y"";'OqV=œ$dfK0# -u=j>1wғCjŘ|&RG݁R, -@yI2VGab/
!!^eY:b;P28(Z|մlP#SE u;ߍʺT{nQY R6Q$k1|@4$`f1*8-Q@t}XAAeK6R@b4G+&MʣVɲl},~vZbs d2b6[):^ zY4.`g!76'D iDmK&,ZAq9°}Tuf}xՙ!Q/Us0o~=/e`"8k}U÷Tħ -!.7 l<`OO`] -ͨuiW2]N_3UYn/AZ(9`+ֹsT6ߓH#`LcEFgS>|#߯-֓6>Eo,s`Z -He_4BDWYZQgnkC HOCh99X]@+ӁGs"c[rI]~CexަD -oܝYىǞVfk7.tHRYj$t+}} 5ήwWYjz,B/ʌwQb 8Su݀ZҀ{эh*++/N߳Z
P2O, -_ybEOZG|<w>+u*'~yhY܅,^gr],pFjtޑh>.L|i\t11Y$N@9DU2IF]ԹN^n_BRQ*nR)]*!+^my,W $)<{8#JQ96p@[x8W|yH:lf~
NЄs^k(+=o
+pj:눈ƪ -77x#
7P{NkTa,mIS(ECT8Ŵ='Vӥ߇:y>+{ _ŐSꔋַbjKP;P{ưOX3kIWojFO$ᨙT~DŷV+S@rvyD{\r\,ɱ/ %QHp`j=I-2NX4@j7N=;Rz;X%Q|@.k"ewZQ MXg^bӣJۈ
}3pB9λӶ,%kr=<53, -%6RG-i.|k?Mߪ59vԮ:j{f!A̖\ҫpӅOv[:8;)Sɳ$_/q{Zr,'08/(ޟ.ZhJuخ Sm|3%o;dWO]9s >_15n%60<D"_!!}wpq[^[ElRa.ϕ#A䙀[2hޑҤpay.eb݈]*PH8PyJ'LgfD2Vr9V1iB۟̈́-nPs? -GڨH;H#rؕJk9(B"%5|g,WK<TU^w#k/Mv\m5 Rw -\d>3eߍjS"%Su -Hs nC¼{:E$1+0Txc2}b&f3`˥AfՉj2X` ODYU_5x$;卬QV3^d}GAYc9^jHN&8_jALpp+@t3!mǯ[LۀcؤA8^Ik'ݮj;#'5s IN*w*Tce\xK)y|D c$gȉZ%ʌA] - -c V?06֗zuABǺނys0N#lTȽN/^hGwG,ŕ -FBK9etuY??VjVs+㑁yDTs臟;MSG -^@"_#puC6D=ѭ{.C -(f(ptݶ97xYM6;vXM{C2AaǪH9Cg v+[F -3rpKk - - -MMVZ؇[bKc-Zጣ~7gP?88SɵOhRs+v$`KĠ}>0|4Dj@S3V@{yf1tVcS -,W'맺G$]+\e/|ѻu`ae -7AEBtUlzZՊvy?ezbl/r[86PMXV,^*@ E_V<6LK5'*Hsdkb;^m;pZt~ -?8 -2[D$A-ft5eH]sՍ~T9Z@NK9!A۹я*#SS۪pz>c+&ZOqd4IGRo:V-z3_Tr.q/,ѠL7_tjUq2&]D4d̘I7pOiT?X׆*oX7}Mm?*@Azrm'Q<6cb:SBb⭺Q8&ϻ_c98u &N(׃} -*tBvI+ن_ys_3=j 3UQ{fx4.Ft7>ԡ9yNs+C6<O&hvŷ߅$ -k|>/2n]_aW%P@`Gk쿫RE軂O.ŞJtz&'ݛp׳zއ:-W3,@xUb2`zCmjYb@J1j19hW< -$5ϹI@uK5|יB]u.|<]լJW
Eh]k7&Q+$iƖ)^lOMdoܰ4YiF4Z!#GKuۂ7+H; Pjl3O`W HZ}ٖYI앇pjSBDrnu:w쩞[7VwMQ -qe@Z.)Gz`%qA1_*%g>VI^{s<4<6u -Ȃ%A-AQ}
O1q4I-ڧEr%W]{g'"/u -xXbO|&('WZ:SD|_'o4^226W-@ -{ -^*8`].Jզyj @O$M6[#{,aim|ȁY~FY4Ǩꬊ -m6nTX6ʃ -@ 1Hr --0
<2Q.USf2bdy -{gA)b&Mء.qV>5(k -
⦆hM&B;r7oܾU[ˊuZ8"0%1o# B-
l瞋ORQVܭKIũk-|H53\7H¥EW]C/VPؾFHѥmAT7 -8B՞G[}xG}~ݰx,n97:A=k,Sm@ޅhTG=V)~]DYQgUEl`S*WDQ4A-Dm"砼K);$匮rABy"P`;m!AC&e1<jM|N9H"hEE g%>CEq%JtͲlad0=*"`6=I'~rIoZY؏K@/6巹~J'맆ޣ͑4y
*X3P+|EH@#%ҞuS?}SWқBVq )ҭ$ʼnG}%=`ѽ*ΤWwxBtBECVVu|\ `8E^GO,o ~Ay -]#͍YuJه Bf)/䙻J!Y7.fAnHT6\-rLāR1|&Tu,;J |&G>@ŻaPzN9Z'
>QW1O"u։ݕA8[
]ի-2{{jJ_peLR{d(E7#6YYI_b<.&aW70)jiPL-W
t7o6L`d;qM`JZ7TJF +|XnJE;C7L̯fpM{P0҉M7hoa"e 0rSrS%o5xP̈
$4IX@_Ԛp~j*-Cen_X+Z*ٍoHH~pS&)z\hw;Eܟ90"k2ޜ?Pe*ʂ6 -a dI\p~ab9]:=H^6-=adKkrCw.vot{ܧjmWD>M\Υ1ICq욧0<8,NFWHÞ@
ޤF'/ƙEOaoF
<#Yw|` -,2HLKA,ol~L~9`έSKr(iw[5yc -oL
e5}dY: +xڴeT˺5J[44 'Cpwwww
uk/YOͪ)IEA@) +7q`fTZڙ8ؘXX8()ŝ&`k [oo,, +80=E'*!arXD*`.cg|os=m@şٛ:2k8X;e$'̈́o%` + +~(#LAJhe3st +9764Fy[;_/KWgY0<>,NcEGt.8vuhb&knS* +VwV ^X8+(}*0(%RRO`g&lݘ'c&d-o&!"{旮:jocjyBrm<|fU]N!Nyl;|aȏ!;dN J`C~}I +mk!$Ù3}OF!WoTʪrdF"+˯xŵ3k
Pֲm/Q_AvK`O">sKbh[O/W{uUnz1 쀬ס/${}Շޞo(hJ +ԕxiZKEor2֖
Gkc:JM{f`UȠ$&4RNmv3Hϋ>ͻH;yoܵȱnV2bG7$.4"\H{2l䳟:{YB]#ҨM
V +2y!W"n~Q1*ߤfV)-1ؿ5ٮK=-h*Q +&Mn
~Zb3+$(`6C{ )XAh;S3F=_kӈQ_4R4Iߓ?\fNςR'<2gIIqF_8q!h%g\\*&IY=41ͭ>=ֿ6qç5
@YYLEZN*a?MTymx܃|lDQ0$qp8xNEU>5hj{KGTf'c:Qs}Aq>hQ%7:m"]mMukBb5S6_n^?yq:UWunubόA(-wOƍRVMx^h3~pqƕlg~G-K˰1?/,ccb}7L v8k&5z|\x;)FY*d\c8j;栢֥aqj1C`:d4L݉ƗGk#O=nBMɉ$ORzQ"fjcNS{>(Tjla|:mQq(bag詆DbU)~x~`ʂW^IRy
7E7*x|>po|a`GX1vMl;:·>
/PLXf-EȦؚ, +0M +,Lh+"8uSg05Q;i5G<-!1:1%'MLC2Fl|,L;/,nC7Qbuv-
39>I,+S +N5h_C=ɖqJWgl|*4Q@eͭ%e)|cënѮm@}!TV7x{{/2KܗFF>/e>0,bTOr~Y9p^g4Y]ׁ]jPvS--<ӛ"NRO,j}u"{$ھ>Nw cow"5ᓟg?6oX j*)4uOI>[VZeR)S!;vHŘ6{MULB`;Lmb~ڼc5RgAPd.ǘTn'o[VbUͽ87b(VcIW^DO{ū*q;"H1fwPTܫ6'eR +@d}Xd37 4/TpR6 TS=D1|3+%k60vuIݐqD4H[.hSZ۰r>15`\ Sz;RȺ}J@.KΈTwsVC +\r_kf=~UN|5ڞ[ \>M?4~NT7[u֜5:ع,}GshL
32[8kq"l6T1LV :f筵K~Լfq{Uf*K-MLנ[왉!SNo8<+r$L( 5V>\2K\{34=< u"EC1 +±1Qpjtۖ{eRy6 +Gb|V%)\1[
e#
_~%B:LcV +@E$tE(1#RuBL9μχ/<<q
%
% 36G)/ 5}z^K\tD
$SVICKg {=]'䠝lC!N<<Ota`d^+ұ2Kh~(+ႝFrc(WӺdYЈEPNX + +I|j0ܰH
.-
Jz1R!m,j&d#ZyHItP +ݫd{_Gm_jyf.~-8OSd#!{ѭ6ČJH[%79.=|Xh[{^̱Wڣv)g_Ǧ|n@ CkкpUaӣH77@䦓C11/7wbpL#˽ER';p/ %oaPZ+SnoӯaaΘ{nv#dGK0GZjB5uQV,B|q4t'+&W,q#2 A?%;<š+dLlDz1T<?4\'BK~iy5{b}aEStb O +HOe!%ڦf:Jm<Lث-kr>GWMN-( ` vu3H`vq0M$|л j}ʄ<rUQ)1ltmX$ȑs-@\mg*h
Y)9KiXb&)
jt!O(ͤڻXuJAkln5ԓ9'tq~z(l7`1&M}F[K4{-(9%0,A\Vj.1=alz@AE[n; +F^ϔN$ + \"%9,ϥ;}|+^gziڤ5R 8n7~=Hv9x-CA[]#ƥSMY{9yXoJvvh|G$3R#QO*1}2=~bȽedi~=ia9UDxZ;O%BԷA)CLHwۖ:U?!(T2ЂcFXm
S[b~4({#~Xܷ)*<@Z[Z٣*&QaLhYY@V5 +
{E#\t)y?/+wz6֯1}ڦM2kTkI0$8XfJ%Q{D(_ +֜$FqIvqWu4XlNQ(GW/ܼ-8#.EN`0PƽĿ^X?IbB;R%)F}jy
gE>ӒU~R+8 Ho%.'C 4;}O?*Yq7#0Rk~=5Y~F1l4 +E +`w5:&K+vz_rRYnH87"dwhCc4l)8X$:FM)*Rt!$=php>.L#] +nsAZKe2)
UɚҮh+` aYت + +'*wdC1UAջ$,XrBL{>pXrT`/@\~ +N4 +m3ZRe_){D&/lyy)ÏJIԂ8CSx8΅S_[L!/h@͇M351:fH/%:p<?:TT)s<?n4mn5RϵByex{H}$ГWU@]Vgk6>JSǤ@h/
cq]ק]&gR$&N:۲KߢqThlՁ(=YpLavctt4Z +ChHq1}A>yfqlIQ|8!iϼ4
2 S\9~
E$#냉{`c:2կ]-qd"<C +MYTi#DHM[KQ?c +Jom<EU e>>x026 +!xsgsh3=i*!e;W8<Qjx?KɇK0o_-a
ƠAuޡ|3}}[V@Mh(ŭ*o}hugILt_%a*_*i:ZG[9wD57M;z{Ѕ4(KLYm8qXRlCZyP 8T@#GgWY<Db +?Sll4X(㥯*tu?.;hLv2?qJ])x'Y^'J$]l;5%ue)s̰ЏH>ngKו{>5'y؏q\1@'CoZ6985qug䐆vg^H.O{-Ǐna$b_~Cr̆`m.*yV)?Z"/4Ws +ޘ~EFBmhj:K(]Rs$4L䔬]P{e4+ږ66E5 p]]*M`k^VuAPTm5H"yZO^%ZI* MP8Afde>zW^9Uw|tb(rcvU!e+?>Pg7{z\vu{#]xWp[}=U;RVCǻDבA;] sX1xlBul-pRm@g-IEQH +Q*e&Xbe`.ǻd~Oc*%8 +:]Na-dNd;5{uAvz}wE%` + +I2%<1|72C7Jgзv)F.XŤY4\Eb,in9tx<<P*6" O~5d`54۹Xזn?MT#@weY +A/Y%hhiOw)5kC$1(c-"(Fak~zb!P8B3汗 +>frc:ӧ҂kӪV:9V6fi
8
]_ζD;-8aou-_3XQ' BeM.4X8M,\sctq_b*1o`geT4D?5PD 6TUMLm+#?DIݽU.z@n_:!mᵤ%hJLwfsݒҋ(0%~v<Ҡՠ(h#U\2zAgD>tr\agm&tq;W#rdV~IKFHQz7Oiܾu; +ŬT_I<X5 +>BC0i|}EOgv sGm`=2߆z!D1E ,ě|ƓڂuL?H^a<"Pwh8Eo5CE FG^0ds+ԭhuF"[n) +阴3;`}9gP|ic+)sȩs@a +7;[.0^ђy}dXCFO/@tfhS܋dUtYԯ6[3\p.~<ph&iY7cʐ-AHO7r$_<`P#)qқq=>FLN'~<JR1mmW"m$j&~K%KxhB"t6ПsL^@Ŵ|W@n7 +(;0Wkqn偙0'DSd+rdMb}K'?i1]u#9w +{*լgB(]SW.T-M~H;ղA§; ;ZVQff~13dSک@-]7+sjc08ZÊ#+6l|eHPѝ?ʔܦ:A|U`+iQȹi_#7vT\}CRzQ>VyzM!$E0-W!0
*Y$)>+7܆s jHbyܹQlAv=|
y9 ifK0/i)i8#;߃MIvisNpK ^G通;\Mk)Wݨ
#DrL !\Î$>k\aD$iN<mr{O}Gо¨av=d9wdb^omHeyaCV8ӕ4 +W
oE8XHDE>=!t'MXZ{i>}+<lP +VtEß&qSȥr
%Sp(OY*' Q%?
IIjaHߙ/p0UV0H#7berny^g+i$2lD</Ր~[6Jƥ +n^ +L?6W^|@F8Vc~+w'SGfS"K.ϒ;QH(+=- [+NHQMXy9ԷԒIs];p]'I1!Nq> +W.irDdagT=j~HVHc:G뛏ye|neK
\UQx{1b߁k[1lS}h<_Uc>?
|n/qL=%;?0~,#|xsG<&bvIwJ-b-y4OU֝YӮ;Rh',BEhO1Y턺Э
`kyhup@Cv0%۽T&Z* -d8 蝾8@ҥc;?9AR&@vp +=5K- Myn.nϒ˘o]E)nҗ{+[`pnȋ۩NTKİ({)ki|щDp^٧!h<Sٯsv2Mr`P@u#< {)VFaoc8/p~ +[}XDæxlj
5/nno6PZ#H`5ReSK?1&)@{]0fh]A".ЕE.R$hk +@[./)#Y*K:s19keV`*=VWTs$f)la]iqLjv&/mqvzڙ4A +פ@FN_y75+iN`=Sf-QJ 2\Cc(wMaQ}hr83.ŬQi/"ؒx>yC*43_*azxZ{)/vLn2ax +y dfR* ZC)WĪ})6;
8 uCh%+vU\eLB![O|u-FH":Pg\)ÃP]@>V@Bu7AH9ȴeGUDL +4HKQ_$~itԶuE]@J +&|ek9-<;R^J*4-xHxQh&(9'["7rk~zk\b(.@+>}Z[B![&HCPB'᳙CaC:?~./u&bz_` R`Zq0Î0]V̈\RN-TR>;ȓ@n4lo^DQ ѴI^]wx3)Z[ڨ+TVIFS8Vy5=K?9bb9.S!QUJM+:'+W'nC{G+.S tޥ4}6]n3WE`Rbw}
#=ЍcdJ1UJѪrIddVTg+r\I)u0h1HҗSy^̽2WļyY͋v7X2fCXl`&?|c"$(T 0xK6m\Z5ηLg*YʒFfUJo`Wl*q=äwgNuF<'X嶇l4di6KaRLz9xcCT2b.OEN/G +،t vѧ}
!!BU(OW&n̢ǘ\|{eHz}G4Y|\z}$/i<hUiSI ߬z@;k pv:RP<>0O˺H;[p.ɠ/V!Mp-Ce"8V +]) +4f+Y>ذ(_TL[ڎmŢg>Lp|ٜjPA$ +>j[EˈQx3ɢf)(XzCUGj=; F̭>ڌ0W.kۓoY ${=CQ4Rv] KRtWDPaAmҿSU& u"3SJ|(%oxjb͒2ͻͰb""aC_}ghϪ)F(FLkJYyH!Zչ0}2<&4<:#<0BUeٍ0E&%Mt+IqevL/WAFmb8)=Ȯ_<ƀS|dMU]Vn>Q$c"UE +0nhNLcuZ +#l-\mcν>Xl
7rH&~[[DW'Z==}ly}(܁EZx55h++m
~\㖣<XPQt\)`Y;?0+,̖>g*$R6GOKwoMSmpǞh3 +_zVhL~+msV/䘁Xd +nr-r2*Ē'M&'Mbj%!ˮ^<JYvb]՛B42^!})>
SshЁoe<M[~>~g,(x[(:ã/u
ӂB^a21QHR +0K!b=rc(+MVt5)Φp1`!E͐,]pznz2|M.#_\Tﷇ0-GڅA̦ݏÖE*wVruqxf{\qZ_,m>WeShXN;i_/>fqhJјFcYprb[BgblK%<:K<}ywvH^T=[[rxI?SI%rTiT&J/+*˘b+Tnk"az@꼇T6ǎ!z.Z.}2=Ie[ 3et
\;c"bOKGs@g\TWH7TYY% =2m,nr\lfs?)?-cYS*K uOE[cFȞPc4糃417,}{ mMrE!hna>+ސg
Kkf֭oѠ6tЀ%(vf~ÈD +'XGQcq^M~9Or5%e@#9xVC[[Uéj5}+7==3- +X0KP^zH6fwo2Mr>[#Eġ1fzUpIdI$^Cc{<g-G#D"SuXOL9^t:ab +(;~Z̓+.áeOζYr!xi0,8OoT`%]~#qWouŽNV.d4l=Jy!_?u#d=*5rrT/adkbW¼E0?Ur<6oaJ;5,A
G0u+z.jj)m.kq1ͼ쁟_
y,P(Fח}3E.{yfT +?a ȶgL8yŔ$h/yGnxxk5dFODPa M&L']$m7\1y
ᠯa>Oٜ2or:d+J +./D +w*VQtAekd|9`G +:˞9LԽKX'z6EtX4mi撔mB?)W~ݨ}~IͤByK?e.6p7! +~6p+RCB#~%`>J5ĵ$&^"XVSf\osUYҵJ$ݑ^u&ɑC-p5ʱ1~dizk&.+̣(c\1u1F~,K +* +%CIV7 +,n>KxO-x +3(|ҍ2{7Wlv0`Vgܤ0`+.(ۏվ~8=ZE.NŻF,ĠBQK
LV/ خ?MYIQa /NH'jt fOG?PԱ-':-гIWcN'b7^_g70T+^U@臝2ÛarߴBu2Fv.RxjOPF!8r6J;jVIrRAx +|ڪ#(dX[5>̐2Pn jwCC&'ũ$!!;T -pE2St*71{ELUB!+识gK-i}¥Xȿ|cnJ7{0P*3붎 +xMov!L>ts +^0k嚥Yu֭/S1uzp8ps}Q迅X& +`2Ӡq?"ccU_U.fx1bf-XZ >H kh/Kc +tC ?&Z3_:vn**-D0CiGo3RtTτؔ%GxG)VblYX6+ɮR(cVJlqtXUW%Bm] eڃr);.n8蝉ElN)Xءj2kbU݅Ğ0ԅ;P;wW +~eK +>ю +(W 9_Fӯ3:$'x-.PX%Ck5^WUYh0&ZtKqmIL!em:]Azi!&U69nO4XB=/Bh_V)I +. +p45un-y;^1pޒό
XpMRiE:P<DžOdf$m'dYv$\*YcG+u]݅k<%qaHHC![*Dư҆TpFa_4=H4 +::]JZp /@J.WɛSSVJl,501Iz2_MHiqC^%
E?i?p敆~58WBKFE
0u-8Vg67"b +RC* +PAQu@?M{(t41Nyh
`*؟FߚEaw>20tHF4q(a1f.h`C!AiW_;xu¸]kwEt^R:f)AP#ǔAܐ(3BLx:̞OLN<I4k[+:9Џ]kc +c$crzBC:eLҙ2ɃVrҸ)fM᰾ iPxŖ,B!*#UnV3e<[6p?RfϒJFxڡ6QӰ!0j|I*8妪[OymC99Qܭ lo{)KdjqL鋁}`c=:bQڻv#;m\=
'mKwƽ8T+C\pӔR$;[<m'~j +ܨ0jHnlr9/f Xa'g~YI17Lx\ _S mڙBH'4Lē§;3]ߡaѫ^\'Qܫ5T~ͅ3>!"_,P!mn:o-=
1hjKQ?bJz+{LZEs+ԄnW*ALX>ƶmߖϤ[?-MˢxSmZ TE\Hޮvc:S QN-#KzwY?!|^yeqn48T=ò.yPitD3(-ůR+M
ZtwK= `16^/i?J_W|)זWlPO.HcE.$*n9dQ]*w|.lr,Ckxw;.q5yE~7ح +l*((\,G3*#-=s:-{g~ϢWHp%N"l\hTc;`mHdza8up2T7he*ywt&Xvc \ڟ̄)F{;mern"5f˿,va%qW>\LWxc~Y>.%%fݭ[kXөОqnzΌ*ChF1Y!l1$isj&ʝFsPCBG][{59bW}X" ~?/oSL4jc:hߕqˡ,DfC0 +-)Njo*_y3dIS<0vxzky'~lϓc ZFߣ]zuWBRu7dBw0K"Əm1y( endstream endobj 623 0 obj << /Type /FontDescriptor -/FontName /BOPPEM+LMRoman17-Regular +/FontName /SAJDGU+LMRoman17-Regular /Flags 4 /FontBBox [-400 -286 1338 1125] /Ascent 683 @@ -3736,7 +3717,7 @@ endobj /ItalicAngle 0 /StemV 18 /XHeight 430 -/CharSet (/P/T/V/a/c/comma/d/e/f/g/h/i/k/m/n/o/one/parenleft/parenright/period/r/s/t/two/u/x/zero) +/CharSet (/P/T/V/a/c/comma/d/e/f/four/g/h/i/k/m/n/o/one/parenleft/parenright/period/r/s/t/u/x/zero) /FontFile 622 0 R >> endobj @@ -4797,16 +4778,16 @@ endobj /FontFile 640 0 R >> endobj -591 0 obj +589 0 obj << /Type /Encoding /Differences [16/quotedblleft/quotedblright 27/ff/fi/fl/ffi 33/exclam 37/percent 39/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 95/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 125/braceright 227/atilde 231/ccedilla 233/eacute 237/iacute 244/ocircumflex/otilde/odieresis] >> endobj -589 0 obj +595 0 obj << /Type /Encoding -/Differences [34/epsilon] +/Differences [34/epsilon 58/period] >> endobj 597 0 obj @@ -4821,7 +4802,7 @@ endobj /Differences [61/equal] >> endobj -593 0 obj +591 0 obj << /Type /Encoding /Differences [39/quotesingle.ts1 136/bullet 158/openbullet] @@ -4850,7 +4831,7 @@ endobj /FirstChar 65 /LastChar 116 /Widths 609 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 642 0 R >> endobj @@ -4874,7 +4855,7 @@ endobj /FirstChar 42 /LastChar 117 /Widths 606 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 643 0 R >> endobj @@ -4897,7 +4878,7 @@ endobj /FirstChar 28 /LastChar 122 /Widths 608 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 644 0 R >> endobj @@ -4917,12 +4898,12 @@ endobj << /Type /Font /Subtype /Type1 -/BaseFont /JFOBVR+LMRoman12-Regular +/BaseFont /XLXVYF+LMRoman12-Regular /FontDescriptor 621 0 R /FirstChar 16 /LastChar 122 /Widths 610 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 645 0 R >> endobj @@ -4942,12 +4923,12 @@ endobj << /Type /Font /Subtype /Type1 -/BaseFont /BOPPEM+LMRoman17-Regular +/BaseFont /SAJDGU+LMRoman17-Regular /FontDescriptor 623 0 R /FirstChar 40 /LastChar 120 /Widths 611 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 646 0 R >> endobj @@ -4971,7 +4952,7 @@ endobj /FirstChar 65 /LastChar 65 /Widths 604 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 647 0 R >> endobj @@ -4998,7 +4979,7 @@ endobj /FirstChar 28 /LastChar 122 /Widths 605 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 648 0 R >> endobj @@ -5024,7 +5005,7 @@ endobj /FirstChar 28 /LastChar 122 /Widths 601 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 649 0 R >> endobj @@ -5048,7 +5029,7 @@ endobj /FirstChar 28 /LastChar 121 /Widths 602 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 650 0 R >> endobj @@ -5064,7 +5045,7 @@ xmUMo@+H.Ȳ|h%Qիۇ6웙7X=<l;Ytգ;
q a!SM~W,:?8C8
I^U E'b|828ϻYtїkZbu_G4 endstream endobj -295 0 obj +296 0 obj << /Type /Font /Subtype /Type1 @@ -5072,8 +5053,8 @@ endobj /FontDescriptor 635 0 R /FirstChar 66 /LastChar 120 -/Widths 596 0 R -/Encoding 591 0 R +/Widths 594 0 R +/Encoding 589 0 R /ToUnicode 651 0 R >> endobj @@ -5088,7 +5069,7 @@ xuUMo@+H.Ȳ|hQիԪ
73$mof<`zbM[ܩ a!SMV,鸞:?8C8
I{U-;H؈qte@w{?Yt5X=[_ endstream endobj -441 0 obj +442 0 obj << /Type /Font /Subtype /Type1 @@ -5096,8 +5077,8 @@ endobj /FontDescriptor 637 0 R /FirstChar 65 /LastChar 121 -/Widths 592 0 R -/Encoding 591 0 R +/Widths 590 0 R +/Encoding 589 0 R /ToUnicode 652 0 R >> endobj @@ -5122,7 +5103,7 @@ endobj /FirstChar 37 /LastChar 246 /Widths 603 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 653 0 R >> endobj @@ -5147,7 +5128,7 @@ endobj /FirstChar 40 /LastChar 125 /Widths 607 0 R -/Encoding 591 0 R +/Encoding 589 0 R /ToUnicode 654 0 R >> endobj @@ -5162,16 +5143,16 @@ xuTn@+fH@!BHMV{5@,lsw m6n냝g)>mW_Ni Mg:]fMR2IV;e8p<_9"*G(dS>sQ DDr "qX+&Gha:$r5PHi@S91jU|s(V8>l;JۈYDIaoykrA)ς1R;JS΄U!ar.Qsy4M纑9Ҍi~h7!cD<`1 ySMgg>2 cs(>ZC@ f
fP7Fo?],}/Kۺ=/mS7m'{LD endstream endobj -521 0 obj +291 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /AHKBFZ+LMMathItalic12-Regular +/BaseFont /PTIFWQ+LMMathItalic12-Regular /FontDescriptor 617 0 R /FirstChar 34 -/LastChar 34 -/Widths 590 0 R -/Encoding 589 0 R +/LastChar 58 +/Widths 596 0 R +/Encoding 595 0 R /ToUnicode 655 0 R >> endobj @@ -5216,7 +5197,7 @@ endobj << /Type /Font /Subtype /Type1 -/BaseFont /JFOBVR+LMRoman12-Regular +/BaseFont /XLXVYF+LMRoman12-Regular /FontDescriptor 621 0 R /FirstChar 61 /LastChar 61 @@ -5237,16 +5218,16 @@ zoZZgbTU |_ endstream endobj -432 0 obj +433 0 obj << /Type /Font /Subtype /Type1 -/BaseFont /JFOBVR+LMRoman12-Regular +/BaseFont /XLXVYF+LMRoman12-Regular /FontDescriptor 621 0 R /FirstChar 136 /LastChar 158 -/Widths 594 0 R -/Encoding 593 0 R +/Widths 592 0 R +/Encoding 591 0 R /ToUnicode 658 0 R >> endobj @@ -5260,7 +5241,7 @@ xuTn0+Cl m8(zu$:`K$Q4pufn}f)ɻ|tùA<]u6m;O\+$ޚv}qff8*h$iƃ}E>.>ttPRJ(:X/rߴu&^!3PZM5^F$o߇7V+1ؿһ`o7qIݞO!Znz/~N̿Z䄦buUWᴫ\k\r-Ve\[3sB
A
`ehHiJ}*>`! endstream endobj -303 0 obj +304 0 obj << /Type /Font /Subtype /Type1 @@ -5268,8 +5249,8 @@ endobj /FontDescriptor 639 0 R /FirstChar 39 /LastChar 39 -/Widths 595 0 R -/Encoding 593 0 R +/Widths 593 0 R +/Encoding 591 0 R /ToUnicode 659 0 R >> endobj @@ -5278,23 +5259,23 @@ endobj /Type /Pages /Count 6 /Parent 660 0 R -/Kids [177 0 R 276 0 R 286 0 R 292 0 R 297 0 R 307 0 R] +/Kids [177 0 R 276 0 R 286 0 R 293 0 R 298 0 R 308 0 R] >> endobj -371 0 obj +372 0 obj << /Type /Pages /Count 6 /Parent 660 0 R -/Kids [322 0 R 373 0 R 377 0 R 434 0 R 438 0 R 443 0 R] +/Kids [323 0 R 374 0 R 378 0 R 435 0 R 439 0 R 444 0 R] >> endobj -488 0 obj +489 0 obj << /Type /Pages /Count 6 /Parent 660 0 R -/Kids [472 0 R 494 0 R 515 0 R 549 0 R 567 0 R 571 0 R] +/Kids [473 0 R 495 0 R 516 0 R 549 0 R 567 0 R 571 0 R] >> endobj 580 0 obj @@ -5309,7 +5290,7 @@ endobj << /Type /Pages /Count 21 -/Kids [245 0 R 371 0 R 488 0 R 580 0 R] +/Kids [245 0 R 372 0 R 489 0 R 580 0 R] >> endobj 661 0 obj @@ -5721,115 +5702,115 @@ endobj endobj 662 0 obj << -/Names [(Doc-Start) 238 0 R (Item.100) 406 0 R (Item.101) 407 0 R (Item.102) 408 0 R (Item.103) 409 0 R (Item.104) 410 0 R] +/Names [(Doc-Start) 238 0 R (Item.100) 407 0 R (Item.101) 408 0 R (Item.102) 409 0 R (Item.103) 410 0 R (Item.104) 411 0 R] /Limits [(Doc-Start) (Item.104)] >> endobj 663 0 obj << -/Names [(Item.105) 411 0 R (Item.106) 412 0 R (Item.107) 413 0 R (Item.108) 414 0 R (Item.109) 415 0 R (Item.110) 416 0 R] +/Names [(Item.105) 412 0 R (Item.106) 413 0 R (Item.107) 414 0 R (Item.108) 415 0 R (Item.109) 416 0 R (Item.110) 417 0 R] /Limits [(Item.105) (Item.110)] >> endobj 664 0 obj << -/Names [(Item.111) 417 0 R (Item.112) 418 0 R (Item.113) 419 0 R (Item.114) 420 0 R (Item.173) 483 0 R (Item.174) 484 0 R] +/Names [(Item.111) 418 0 R (Item.112) 419 0 R (Item.113) 420 0 R (Item.114) 421 0 R (Item.173) 484 0 R (Item.174) 485 0 R] /Limits [(Item.111) (Item.174)] >> endobj 665 0 obj << -/Names [(Item.175) 485 0 R (Item.176) 486 0 R (Item.177) 487 0 R (Item.47) 344 0 R (Item.48) 345 0 R (Item.49) 346 0 R] +/Names [(Item.175) 486 0 R (Item.176) 487 0 R (Item.177) 488 0 R (Item.47) 345 0 R (Item.48) 346 0 R (Item.49) 347 0 R] /Limits [(Item.175) (Item.49)] >> endobj 666 0 obj << -/Names [(Item.50) 347 0 R (Item.51) 348 0 R (Item.52) 349 0 R (Item.53) 350 0 R (Item.54) 351 0 R (Item.68) 365 0 R] +/Names [(Item.50) 348 0 R (Item.51) 349 0 R (Item.52) 350 0 R (Item.53) 351 0 R (Item.54) 352 0 R (Item.68) 366 0 R] /Limits [(Item.50) (Item.68)] >> endobj 667 0 obj << -/Names [(Item.69) 366 0 R (Item.70) 367 0 R (Item.71) 368 0 R (Item.72) 369 0 R (Item.73) 370 0 R (lstlisting.115) 421 0 R] +/Names [(Item.69) 367 0 R (Item.70) 368 0 R (Item.71) 369 0 R (Item.72) 370 0 R (Item.73) 371 0 R (lstlisting.115) 422 0 R] /Limits [(Item.69) (lstlisting.115)] >> endobj 668 0 obj << -/Names [(lstlisting.12) 304 0 R (lstlisting.137) 446 0 R (lstlisting.14) 310 0 R (lstlisting.151) 459 0 R (lstlisting.162) 475 0 R (lstlisting.179) 498 0 R] +/Names [(lstlisting.12) 305 0 R (lstlisting.137) 447 0 R (lstlisting.14) 311 0 R (lstlisting.151) 460 0 R (lstlisting.162) 476 0 R (lstlisting.179) 499 0 R] /Limits [(lstlisting.12) (lstlisting.179)] >> endobj 669 0 obj << -/Names [(lstlisting.18) 313 0 R (lstlisting.194) 522 0 R (lstlisting.215) 552 0 R (lstlisting.23) 318 0 R (lstlisting.230) 574 0 R (lstlisting.28) 325 0 R] +/Names [(lstlisting.18) 314 0 R (lstlisting.194) 522 0 R (lstlisting.215) 552 0 R (lstlisting.23) 319 0 R (lstlisting.230) 574 0 R (lstlisting.28) 326 0 R] /Limits [(lstlisting.18) (lstlisting.28)] >> endobj 670 0 obj << -/Names [(lstlisting.55) 352 0 R (lstlisting.74) 380 0 R (lstlisting.9) 300 0 R (lstnumber.10) 301 0 R (lstnumber.11) 302 0 R (lstnumber.116) 422 0 R] +/Names [(lstlisting.55) 353 0 R (lstlisting.74) 381 0 R (lstlisting.9) 301 0 R (lstnumber.10) 302 0 R (lstnumber.11) 303 0 R (lstnumber.116) 423 0 R] /Limits [(lstlisting.55) (lstnumber.116)] >> endobj 671 0 obj << -/Names [(lstnumber.117) 423 0 R (lstnumber.118) 424 0 R (lstnumber.119) 425 0 R (lstnumber.120) 426 0 R (lstnumber.121) 427 0 R (lstnumber.122) 428 0 R] +/Names [(lstnumber.117) 424 0 R (lstnumber.118) 425 0 R (lstnumber.119) 426 0 R (lstnumber.120) 427 0 R (lstnumber.121) 428 0 R (lstnumber.122) 429 0 R] /Limits [(lstnumber.117) (lstnumber.122)] >> endobj 672 0 obj << -/Names [(lstnumber.123) 429 0 R (lstnumber.124) 430 0 R (lstnumber.125) 431 0 R (lstnumber.13) 305 0 R (lstnumber.138) 447 0 R (lstnumber.139) 448 0 R] +/Names [(lstnumber.123) 430 0 R (lstnumber.124) 431 0 R (lstnumber.125) 432 0 R (lstnumber.13) 306 0 R (lstnumber.138) 448 0 R (lstnumber.139) 449 0 R] /Limits [(lstnumber.123) (lstnumber.139)] >> endobj 673 0 obj << -/Names [(lstnumber.140) 449 0 R (lstnumber.141) 450 0 R (lstnumber.142) 451 0 R (lstnumber.143) 452 0 R (lstnumber.144) 453 0 R (lstnumber.145) 454 0 R] +/Names [(lstnumber.140) 450 0 R (lstnumber.141) 451 0 R (lstnumber.142) 452 0 R (lstnumber.143) 453 0 R (lstnumber.144) 454 0 R (lstnumber.145) 455 0 R] /Limits [(lstnumber.140) (lstnumber.145)] >> endobj 674 0 obj << -/Names [(lstnumber.146) 455 0 R (lstnumber.147) 456 0 R (lstnumber.148) 457 0 R (lstnumber.149) 458 0 R (lstnumber.15) 311 0 R (lstnumber.152) 460 0 R] +/Names [(lstnumber.146) 456 0 R (lstnumber.147) 457 0 R (lstnumber.148) 458 0 R (lstnumber.149) 459 0 R (lstnumber.15) 312 0 R (lstnumber.152) 461 0 R] /Limits [(lstnumber.146) (lstnumber.152)] >> endobj 675 0 obj << -/Names [(lstnumber.153) 461 0 R (lstnumber.154) 462 0 R (lstnumber.155) 463 0 R (lstnumber.156) 464 0 R (lstnumber.157) 465 0 R (lstnumber.158) 466 0 R] +/Names [(lstnumber.153) 462 0 R (lstnumber.154) 463 0 R (lstnumber.155) 464 0 R (lstnumber.156) 465 0 R (lstnumber.157) 466 0 R (lstnumber.158) 467 0 R] /Limits [(lstnumber.153) (lstnumber.158)] >> endobj 676 0 obj << -/Names [(lstnumber.16) 312 0 R (lstnumber.163) 476 0 R (lstnumber.164) 477 0 R (lstnumber.165) 478 0 R (lstnumber.166) 479 0 R (lstnumber.167) 480 0 R] +/Names [(lstnumber.16) 313 0 R (lstnumber.163) 477 0 R (lstnumber.164) 478 0 R (lstnumber.165) 479 0 R (lstnumber.166) 480 0 R (lstnumber.167) 481 0 R] /Limits [(lstnumber.16) (lstnumber.167)] >> endobj 677 0 obj << -/Names [(lstnumber.168) 481 0 R (lstnumber.169) 482 0 R (lstnumber.180) 499 0 R (lstnumber.181) 500 0 R (lstnumber.182) 501 0 R (lstnumber.183) 502 0 R] +/Names [(lstnumber.168) 482 0 R (lstnumber.169) 483 0 R (lstnumber.180) 500 0 R (lstnumber.181) 501 0 R (lstnumber.182) 502 0 R (lstnumber.183) 503 0 R] /Limits [(lstnumber.168) (lstnumber.183)] >> endobj 678 0 obj << -/Names [(lstnumber.184) 503 0 R (lstnumber.185) 504 0 R (lstnumber.186) 505 0 R (lstnumber.187) 506 0 R (lstnumber.188) 507 0 R (lstnumber.189) 508 0 R] +/Names [(lstnumber.184) 504 0 R (lstnumber.185) 505 0 R (lstnumber.186) 506 0 R (lstnumber.187) 507 0 R (lstnumber.188) 508 0 R (lstnumber.189) 509 0 R] /Limits [(lstnumber.184) (lstnumber.189)] >> endobj 679 0 obj << -/Names [(lstnumber.19) 314 0 R (lstnumber.190) 509 0 R (lstnumber.191) 510 0 R (lstnumber.192) 511 0 R (lstnumber.195) 523 0 R (lstnumber.196) 524 0 R] +/Names [(lstnumber.19) 315 0 R (lstnumber.190) 510 0 R (lstnumber.191) 511 0 R (lstnumber.192) 512 0 R (lstnumber.195) 523 0 R (lstnumber.196) 524 0 R] /Limits [(lstnumber.19) (lstnumber.196)] >> endobj 680 0 obj << -/Names [(lstnumber.197) 525 0 R (lstnumber.198) 526 0 R (lstnumber.199) 527 0 R (lstnumber.20) 315 0 R (lstnumber.200) 528 0 R (lstnumber.201) 529 0 R] +/Names [(lstnumber.197) 525 0 R (lstnumber.198) 526 0 R (lstnumber.199) 527 0 R (lstnumber.20) 316 0 R (lstnumber.200) 528 0 R (lstnumber.201) 529 0 R] /Limits [(lstnumber.197) (lstnumber.201)] >> endobj @@ -5841,13 +5822,13 @@ endobj endobj 682 0 obj << -/Names [(lstnumber.208) 536 0 R (lstnumber.209) 537 0 R (lstnumber.21) 316 0 R (lstnumber.210) 538 0 R (lstnumber.211) 539 0 R (lstnumber.212) 540 0 R] +/Names [(lstnumber.208) 536 0 R (lstnumber.209) 537 0 R (lstnumber.21) 317 0 R (lstnumber.210) 538 0 R (lstnumber.211) 539 0 R (lstnumber.212) 540 0 R] /Limits [(lstnumber.208) (lstnumber.212)] >> endobj 683 0 obj << -/Names [(lstnumber.213) 541 0 R (lstnumber.216) 553 0 R (lstnumber.217) 554 0 R (lstnumber.218) 555 0 R (lstnumber.219) 556 0 R (lstnumber.22) 317 0 R] +/Names [(lstnumber.213) 541 0 R (lstnumber.216) 553 0 R (lstnumber.217) 554 0 R (lstnumber.218) 555 0 R (lstnumber.219) 556 0 R (lstnumber.22) 318 0 R] /Limits [(lstnumber.213) (lstnumber.22)] >> endobj @@ -5859,67 +5840,67 @@ endobj endobj 685 0 obj << -/Names [(lstnumber.226) 563 0 R (lstnumber.231) 575 0 R (lstnumber.24) 319 0 R (lstnumber.25) 320 0 R (lstnumber.29) 326 0 R (lstnumber.30) 327 0 R] +/Names [(lstnumber.226) 563 0 R (lstnumber.231) 575 0 R (lstnumber.24) 320 0 R (lstnumber.25) 321 0 R (lstnumber.29) 327 0 R (lstnumber.30) 328 0 R] /Limits [(lstnumber.226) (lstnumber.30)] >> endobj 686 0 obj << -/Names [(lstnumber.31) 328 0 R (lstnumber.32) 329 0 R (lstnumber.33) 330 0 R (lstnumber.34) 331 0 R (lstnumber.35) 332 0 R (lstnumber.36) 333 0 R] +/Names [(lstnumber.31) 329 0 R (lstnumber.32) 330 0 R (lstnumber.33) 331 0 R (lstnumber.34) 332 0 R (lstnumber.35) 333 0 R (lstnumber.36) 334 0 R] /Limits [(lstnumber.31) (lstnumber.36)] >> endobj 687 0 obj << -/Names [(lstnumber.37) 334 0 R (lstnumber.38) 335 0 R (lstnumber.39) 336 0 R (lstnumber.40) 337 0 R (lstnumber.41) 338 0 R (lstnumber.42) 339 0 R] +/Names [(lstnumber.37) 335 0 R (lstnumber.38) 336 0 R (lstnumber.39) 337 0 R (lstnumber.40) 338 0 R (lstnumber.41) 339 0 R (lstnumber.42) 340 0 R] /Limits [(lstnumber.37) (lstnumber.42)] >> endobj 688 0 obj << -/Names [(lstnumber.43) 340 0 R (lstnumber.44) 341 0 R (lstnumber.45) 342 0 R (lstnumber.46) 343 0 R (lstnumber.56) 353 0 R (lstnumber.57) 354 0 R] +/Names [(lstnumber.43) 341 0 R (lstnumber.44) 342 0 R (lstnumber.45) 343 0 R (lstnumber.46) 344 0 R (lstnumber.56) 354 0 R (lstnumber.57) 355 0 R] /Limits [(lstnumber.43) (lstnumber.57)] >> endobj 689 0 obj << -/Names [(lstnumber.58) 355 0 R (lstnumber.59) 356 0 R (lstnumber.60) 357 0 R (lstnumber.61) 358 0 R (lstnumber.62) 359 0 R (lstnumber.63) 360 0 R] +/Names [(lstnumber.58) 356 0 R (lstnumber.59) 357 0 R (lstnumber.60) 358 0 R (lstnumber.61) 359 0 R (lstnumber.62) 360 0 R (lstnumber.63) 361 0 R] /Limits [(lstnumber.58) (lstnumber.63)] >> endobj 690 0 obj << -/Names [(lstnumber.64) 361 0 R (lstnumber.65) 362 0 R (lstnumber.66) 363 0 R (lstnumber.67) 364 0 R (lstnumber.75) 381 0 R (lstnumber.76) 382 0 R] +/Names [(lstnumber.64) 362 0 R (lstnumber.65) 363 0 R (lstnumber.66) 364 0 R (lstnumber.67) 365 0 R (lstnumber.75) 382 0 R (lstnumber.76) 383 0 R] /Limits [(lstnumber.64) (lstnumber.76)] >> endobj 691 0 obj << -/Names [(lstnumber.77) 383 0 R (lstnumber.78) 384 0 R (lstnumber.79) 385 0 R (lstnumber.80) 386 0 R (lstnumber.81) 387 0 R (lstnumber.82) 388 0 R] +/Names [(lstnumber.77) 384 0 R (lstnumber.78) 385 0 R (lstnumber.79) 386 0 R (lstnumber.80) 387 0 R (lstnumber.81) 388 0 R (lstnumber.82) 389 0 R] /Limits [(lstnumber.77) (lstnumber.82)] >> endobj 692 0 obj << -/Names [(lstnumber.83) 389 0 R (lstnumber.84) 390 0 R (lstnumber.85) 391 0 R (lstnumber.86) 392 0 R (lstnumber.87) 393 0 R (lstnumber.88) 394 0 R] +/Names [(lstnumber.83) 390 0 R (lstnumber.84) 391 0 R (lstnumber.85) 392 0 R (lstnumber.86) 393 0 R (lstnumber.87) 394 0 R (lstnumber.88) 395 0 R] /Limits [(lstnumber.83) (lstnumber.88)] >> endobj 693 0 obj << -/Names [(lstnumber.89) 395 0 R (lstnumber.90) 396 0 R (lstnumber.91) 397 0 R (lstnumber.92) 398 0 R (lstnumber.93) 399 0 R (lstnumber.94) 400 0 R] +/Names [(lstnumber.89) 396 0 R (lstnumber.90) 397 0 R (lstnumber.91) 398 0 R (lstnumber.92) 399 0 R (lstnumber.93) 400 0 R (lstnumber.94) 401 0 R] /Limits [(lstnumber.89) (lstnumber.94)] >> endobj 694 0 obj << -/Names [(lstnumber.95) 401 0 R (lstnumber.96) 402 0 R (lstnumber.97) 403 0 R (lstnumber.98) 404 0 R (lstnumber.99) 405 0 R (page.1) 237 0 R] +/Names [(lstnumber.95) 402 0 R (lstnumber.96) 403 0 R (lstnumber.97) 404 0 R (lstnumber.98) 405 0 R (lstnumber.99) 406 0 R (page.1) 237 0 R] /Limits [(lstnumber.95) (page.1)] >> endobj 695 0 obj << -/Names [(page.10) 436 0 R (page.11) 440 0 R (page.12) 445 0 R (page.13) 474 0 R (page.14) 496 0 R (page.15) 518 0 R] +/Names [(page.10) 437 0 R (page.11) 441 0 R (page.12) 446 0 R (page.13) 475 0 R (page.14) 497 0 R (page.15) 519 0 R] /Limits [(page.10) (page.15)] >> endobj @@ -5931,13 +5912,13 @@ endobj endobj 697 0 obj << -/Names [(page.21) 588 0 R (page.3) 288 0 R (page.4) 294 0 R (page.5) 299 0 R (page.6) 309 0 R (page.7) 324 0 R] +/Names [(page.21) 588 0 R (page.3) 288 0 R (page.4) 295 0 R (page.5) 300 0 R (page.6) 310 0 R (page.7) 325 0 R] /Limits [(page.21) (page.7)] >> endobj 698 0 obj << -/Names [(page.8) 375 0 R (page.9) 379 0 R (section.1) 5 0 R (section.126) 49 0 R (section.130) 65 0 R (section.133) 77 0 R] +/Names [(page.8) 376 0 R (page.9) 380 0 R (section.1) 5 0 R (section.126) 49 0 R (section.130) 65 0 R (section.133) 77 0 R] /Limits [(page.8) (section.133)] >> endobj @@ -6068,739 +6049,739 @@ endobj << /Producer (MiKTeX pdfTeX-1.40.24) /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() -/CreationDate (D:20221118105438-03'00') -/ModDate (D:20221118105438-03'00') +/CreationDate (D:20221215105701-03'00') +/ModDate (D:20221215105701-03'00') /Trapped /False -/PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.11.0 (1.40.24)) +/PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.13.0 (1.40.24)) >> endobj xref 0 720 0000000178 65535 f -0000115455 00000 n -0000115475 00000 n -0000115495 00000 n +0000115884 00000 n +0000115904 00000 n +0000115924 00000 n 0000000015 00000 n -0000026526 00000 n -0000494279 00000 n +0000026544 00000 n +0000495012 00000 n 0000000060 00000 n 0000000146 00000 n -0000026586 00000 n -0000494220 00000 n +0000026604 00000 n +0000494953 00000 n 0000000194 00000 n 0000000299 00000 n -0000026646 00000 n -0000494096 00000 n +0000026664 00000 n +0000494829 00000 n 0000000345 00000 n 0000000445 00000 n -0000031093 00000 n -0000494022 00000 n +0000031306 00000 n +0000494755 00000 n 0000000494 00000 n 0000000589 00000 n -0000035177 00000 n -0000493935 00000 n +0000035496 00000 n +0000494668 00000 n 0000000638 00000 n 0000000786 00000 n -0000035238 00000 n -0000493861 00000 n +0000035557 00000 n +0000494594 00000 n 0000000835 00000 n 0000000953 00000 n -0000035299 00000 n -0000493736 00000 n +0000035618 00000 n +0000494469 00000 n 0000000999 00000 n 0000001134 00000 n -0000035360 00000 n -0000493662 00000 n +0000035679 00000 n +0000494395 00000 n 0000001183 00000 n 0000001288 00000 n -0000044490 00000 n -0000493575 00000 n +0000045011 00000 n +0000494308 00000 n 0000001338 00000 n 0000001425 00000 n -0000045047 00000 n -0000493488 00000 n +0000045567 00000 n +0000494221 00000 n 0000001475 00000 n 0000001603 00000 n -0000048140 00000 n -0000493414 00000 n +0000048463 00000 n +0000494147 00000 n 0000001653 00000 n 0000001781 00000 n -0000058749 00000 n -0000493289 00000 n +0000059174 00000 n +0000494022 00000 n 0000001829 00000 n 0000001964 00000 n -0000058810 00000 n -0000493215 00000 n +0000059235 00000 n +0000493948 00000 n 0000002015 00000 n 0000002143 00000 n -0000062556 00000 n -0000493128 00000 n +0000062984 00000 n +0000493861 00000 n 0000002194 00000 n 0000002327 00000 n -0000062617 00000 n -0000493054 00000 n +0000063045 00000 n +0000493787 00000 n 0000002378 00000 n 0000002521 00000 n -0000062678 00000 n -0000492929 00000 n +0000063106 00000 n +0000493662 00000 n 0000002569 00000 n 0000002709 00000 n -0000062739 00000 n -0000492855 00000 n +0000063167 00000 n +0000493588 00000 n 0000002760 00000 n 0000002865 00000 n -0000062800 00000 n -0000492781 00000 n +0000063228 00000 n +0000493514 00000 n 0000002916 00000 n 0000003026 00000 n -0000066243 00000 n -0000492656 00000 n +0000066672 00000 n +0000493389 00000 n 0000003074 00000 n 0000003214 00000 n -0000066304 00000 n -0000492595 00000 n +0000066733 00000 n +0000493328 00000 n 0000003265 00000 n 0000003408 00000 n -0000066365 00000 n -0000492470 00000 n +0000066794 00000 n +0000493203 00000 n 0000003456 00000 n 0000003596 00000 n -0000066426 00000 n -0000492396 00000 n +0000066855 00000 n +0000493129 00000 n 0000003647 00000 n 0000003729 00000 n -0000071289 00000 n -0000492322 00000 n +0000071716 00000 n +0000493055 00000 n 0000003780 00000 n 0000003895 00000 n -0000071843 00000 n -0000492194 00000 n +0000072270 00000 n +0000492927 00000 n 0000003943 00000 n 0000004210 00000 n -0000071904 00000 n -0000492116 00000 n +0000072331 00000 n +0000492849 00000 n 0000004262 00000 n 0000004368 00000 n -0000071966 00000 n -0000492038 00000 n +0000072393 00000 n +0000492771 00000 n 0000004420 00000 n 0000004531 00000 n -0000076641 00000 n -0000491907 00000 n +0000077069 00000 n +0000492640 00000 n 0000004580 00000 n 0000004858 00000 n -0000076703 00000 n -0000491828 00000 n +0000077131 00000 n +0000492561 00000 n 0000004910 00000 n 0000005051 00000 n -0000076765 00000 n -0000491710 00000 n +0000077193 00000 n +0000492443 00000 n 0000005103 00000 n 0000005214 00000 n -0000082784 00000 n -0000491631 00000 n +0000083212 00000 n +0000492364 00000 n 0000005269 00000 n 0000005388 00000 n -0000083710 00000 n -0000491538 00000 n +0000084138 00000 n +0000492271 00000 n 0000005443 00000 n 0000005567 00000 n -0000089198 00000 n -0000491459 00000 n +0000089627 00000 n +0000492192 00000 n 0000005622 00000 n 0000005781 00000 n -0000095699 00000 n -0000491327 00000 n +0000096128 00000 n +0000492060 00000 n 0000005830 00000 n 0000006142 00000 n -0000095761 00000 n -0000491248 00000 n +0000096190 00000 n +0000491981 00000 n 0000006194 00000 n 0000006300 00000 n -0000099797 00000 n -0000491155 00000 n +0000100226 00000 n +0000491888 00000 n 0000006352 00000 n 0000006463 00000 n -0000109008 00000 n -0000491076 00000 n +0000109438 00000 n +0000491809 00000 n 0000006515 00000 n 0000006603 00000 n -0000109070 00000 n -0000490944 00000 n +0000109500 00000 n +0000491677 00000 n 0000006652 00000 n 0000006969 00000 n -0000109132 00000 n -0000490865 00000 n +0000109562 00000 n +0000491598 00000 n 0000007021 00000 n 0000007221 00000 n -0000113793 00000 n -0000490786 00000 n +0000114223 00000 n +0000491519 00000 n 0000007273 00000 n 0000007427 00000 n -0000113855 00000 n -0000490654 00000 n +0000114285 00000 n +0000491387 00000 n 0000007476 00000 n 0000007818 00000 n -0000113917 00000 n -0000490589 00000 n +0000114347 00000 n +0000491322 00000 n 0000007870 00000 n 0000008049 00000 n -0000113979 00000 n -0000490471 00000 n +0000114409 00000 n +0000491204 00000 n 0000008098 00000 n 0000008450 00000 n -0000114041 00000 n -0000490406 00000 n +0000114471 00000 n +0000491139 00000 n 0000008502 00000 n 0000008666 00000 n -0000013163 00000 n +0000013188 00000 n 0000000180 00000 f -0000013502 00000 n +0000013527 00000 n 0000000182 00000 f -0000013654 00000 n +0000013679 00000 n 0000000184 00000 f -0000013808 00000 n +0000013833 00000 n 0000000186 00000 f -0000013959 00000 n +0000013984 00000 n 0000000188 00000 f -0000014114 00000 n +0000014139 00000 n 0000000190 00000 f -0000014268 00000 n +0000014294 00000 n 0000000192 00000 f -0000014423 00000 n +0000014449 00000 n 0000000194 00000 f -0000014573 00000 n +0000014599 00000 n 0000000196 00000 f -0000014728 00000 n +0000014754 00000 n 0000000198 00000 f -0000014883 00000 n +0000014910 00000 n 0000000200 00000 f -0000015039 00000 n +0000015066 00000 n 0000000202 00000 f -0000015194 00000 n +0000015222 00000 n 0000000204 00000 f -0000015347 00000 n +0000015376 00000 n 0000000206 00000 f -0000015504 00000 n +0000015532 00000 n 0000000208 00000 f -0000015660 00000 n +0000015688 00000 n 0000000210 00000 f -0000015817 00000 n +0000015845 00000 n 0000000212 00000 f -0000015970 00000 n +0000015999 00000 n 0000000214 00000 f -0000016127 00000 n +0000016155 00000 n 0000000216 00000 f -0000016283 00000 n +0000016312 00000 n 0000000218 00000 f -0000016436 00000 n +0000016466 00000 n 0000000220 00000 f -0000016593 00000 n +0000016623 00000 n 0000000222 00000 f -0000016747 00000 n +0000016777 00000 n 0000000224 00000 f -0000016903 00000 n +0000016934 00000 n 0000000226 00000 f -0000017056 00000 n +0000017090 00000 n 0000000228 00000 f -0000017207 00000 n +0000017240 00000 n 0000000230 00000 f -0000017362 00000 n +0000017395 00000 n 0000000232 00000 f -0000023651 00000 n +0000023672 00000 n 0000000234 00000 f -0000023804 00000 n +0000023825 00000 n 0000000247 00000 f -0000017640 00000 n +0000017673 00000 n 0000008716 00000 n -0000017516 00000 n -0000017578 00000 n -0000475547 00000 n -0000474433 00000 n -0000471094 00000 n -0000473319 00000 n -0000484479 00000 n -0000472208 00000 n -0000489800 00000 n -0000023961 00000 n +0000017549 00000 n +0000017611 00000 n +0000476280 00000 n +0000475166 00000 n +0000471827 00000 n +0000474052 00000 n +0000485212 00000 n +0000472941 00000 n +0000490533 00000 n +0000023982 00000 n 0000000249 00000 f -0000024118 00000 n +0000024139 00000 n 0000000251 00000 f -0000024278 00000 n +0000024299 00000 n 0000000253 00000 f -0000024437 00000 n +0000024458 00000 n 0000000255 00000 f -0000024597 00000 n +0000024618 00000 n 0000000257 00000 f -0000024751 00000 n +0000024772 00000 n 0000000259 00000 f -0000024908 00000 n +0000024928 00000 n 0000000261 00000 f -0000025065 00000 n +0000025085 00000 n 0000000263 00000 f -0000025221 00000 n +0000025240 00000 n 0000000265 00000 f -0000025375 00000 n +0000025394 00000 n 0000000267 00000 f -0000025532 00000 n +0000025551 00000 n 0000000269 00000 f -0000025689 00000 n +0000025708 00000 n 0000000271 00000 f -0000025843 00000 n +0000025862 00000 n 0000000273 00000 f -0000025999 00000 n +0000026018 00000 n 0000000000 00000 f -0000026307 00000 n -0000026707 00000 n -0000023376 00000 n -0000017829 00000 n -0000026464 00000 n -0000026153 00000 n -0000477775 00000 n -0000476661 00000 n -0000483362 00000 n -0000480009 00000 n -0000478892 00000 n -0000031154 00000 n -0000030912 00000 n -0000026911 00000 n -0000031031 00000 n -0000487663 00000 n -0000486423 00000 n -0000035421 00000 n -0000034996 00000 n -0000031358 00000 n -0000035115 00000 n -0000481125 00000 n -0000040499 00000 n -0000040008 00000 n -0000035626 00000 n -0000040127 00000 n -0000040189 00000 n -0000040251 00000 n -0000040313 00000 n -0000489610 00000 n -0000040375 00000 n -0000040437 00000 n -0000045108 00000 n -0000044123 00000 n -0000040729 00000 n -0000044242 00000 n -0000044304 00000 n -0000044366 00000 n -0000044428 00000 n -0000044551 00000 n -0000044613 00000 n -0000044675 00000 n -0000044737 00000 n -0000044799 00000 n -0000044861 00000 n -0000044923 00000 n -0000044985 00000 n -0000051048 00000 n -0000047959 00000 n -0000045338 00000 n -0000048078 00000 n -0000048201 00000 n -0000048263 00000 n -0000048324 00000 n -0000048386 00000 n -0000048447 00000 n -0000048509 00000 n -0000048571 00000 n -0000048633 00000 n -0000048695 00000 n -0000048757 00000 n -0000048819 00000 n -0000048881 00000 n -0000048943 00000 n -0000049005 00000 n -0000049067 00000 n -0000049129 00000 n -0000049191 00000 n -0000049253 00000 n -0000049315 00000 n -0000049377 00000 n -0000049437 00000 n -0000049499 00000 n -0000049561 00000 n -0000049623 00000 n -0000049685 00000 n -0000049747 00000 n -0000049808 00000 n -0000049870 00000 n -0000049932 00000 n -0000049994 00000 n -0000050056 00000 n -0000050118 00000 n -0000050180 00000 n -0000050242 00000 n -0000050304 00000 n -0000050366 00000 n -0000050428 00000 n -0000050490 00000 n -0000050552 00000 n -0000050614 00000 n -0000050676 00000 n -0000050738 00000 n -0000050800 00000 n -0000050862 00000 n -0000050924 00000 n -0000050986 00000 n -0000489917 00000 n -0000052550 00000 n -0000052369 00000 n -0000051265 00000 n -0000052488 00000 n -0000058871 00000 n -0000055351 00000 n -0000052700 00000 n -0000055470 00000 n -0000055532 00000 n -0000055593 00000 n -0000055655 00000 n -0000055717 00000 n -0000055779 00000 n -0000055841 00000 n -0000055903 00000 n -0000055965 00000 n -0000056027 00000 n -0000056089 00000 n -0000056151 00000 n -0000056213 00000 n -0000056275 00000 n -0000056336 00000 n -0000056398 00000 n -0000056458 00000 n -0000056520 00000 n -0000056581 00000 n -0000056643 00000 n -0000056705 00000 n -0000056767 00000 n -0000056829 00000 n -0000056891 00000 n -0000056953 00000 n -0000057015 00000 n -0000057077 00000 n -0000057139 00000 n -0000057201 00000 n -0000057263 00000 n -0000057325 00000 n -0000057386 00000 n -0000057448 00000 n -0000057510 00000 n -0000057572 00000 n -0000057634 00000 n -0000057695 00000 n -0000057757 00000 n -0000057819 00000 n -0000057881 00000 n -0000057943 00000 n -0000058005 00000 n -0000058067 00000 n -0000058129 00000 n -0000058191 00000 n -0000058253 00000 n -0000058315 00000 n -0000058377 00000 n -0000058439 00000 n -0000058501 00000 n -0000058563 00000 n -0000058625 00000 n -0000058687 00000 n -0000488635 00000 n -0000062861 00000 n -0000062375 00000 n -0000059089 00000 n -0000062494 00000 n -0000066487 00000 n -0000066062 00000 n -0000063051 00000 n -0000066181 00000 n -0000482241 00000 n -0000072028 00000 n -0000070302 00000 n -0000066718 00000 n -0000070421 00000 n -0000070483 00000 n -0000070545 00000 n -0000070607 00000 n -0000070669 00000 n -0000070731 00000 n -0000070793 00000 n -0000070855 00000 n -0000070917 00000 n -0000070979 00000 n -0000071041 00000 n -0000071103 00000 n -0000071165 00000 n -0000071227 00000 n -0000071350 00000 n -0000071412 00000 n -0000071474 00000 n -0000071536 00000 n -0000071597 00000 n -0000071659 00000 n -0000071720 00000 n -0000071782 00000 n -0000075771 00000 n -0000075928 00000 n -0000081312 00000 n -0000081469 00000 n -0000077134 00000 n -0000075624 00000 n -0000072258 00000 n -0000076085 00000 n -0000076147 00000 n -0000076209 00000 n -0000076271 00000 n -0000076333 00000 n -0000076395 00000 n -0000076457 00000 n -0000076518 00000 n -0000076580 00000 n -0000076825 00000 n -0000076886 00000 n -0000076948 00000 n -0000077010 00000 n -0000077072 00000 n -0000490034 00000 n -0000081783 00000 n -0000082093 00000 n -0000082248 00000 n -0000082406 00000 n -0000083772 00000 n -0000081109 00000 n -0000077351 00000 n -0000082722 00000 n -0000081626 00000 n -0000082846 00000 n -0000082908 00000 n -0000082970 00000 n -0000083032 00000 n -0000083094 00000 n -0000083156 00000 n -0000083218 00000 n -0000083280 00000 n -0000083342 00000 n -0000083404 00000 n -0000083465 00000 n -0000083526 00000 n -0000083588 00000 n -0000083648 00000 n -0000081938 00000 n -0000082564 00000 n -0000089260 00000 n -0000087268 00000 n -0000083990 00000 n -0000087423 00000 n -0000087899 00000 n -0000087580 00000 n -0000087740 00000 n -0000485356 00000 n -0000087961 00000 n -0000088023 00000 n -0000088085 00000 n -0000088146 00000 n -0000088208 00000 n -0000088269 00000 n -0000088331 00000 n -0000088392 00000 n -0000088454 00000 n -0000088516 00000 n -0000088578 00000 n -0000088640 00000 n -0000088702 00000 n -0000088764 00000 n -0000088826 00000 n -0000088888 00000 n -0000088950 00000 n -0000089012 00000 n -0000089074 00000 n -0000089136 00000 n -0000093636 00000 n -0000093796 00000 n -0000094114 00000 n -0000094269 00000 n -0000094581 00000 n -0000094737 00000 n -0000095822 00000 n -0000093441 00000 n -0000089463 00000 n -0000094893 00000 n -0000094955 00000 n -0000095017 00000 n -0000095079 00000 n -0000095141 00000 n -0000095203 00000 n -0000095265 00000 n -0000095327 00000 n -0000095389 00000 n -0000095451 00000 n -0000095513 00000 n -0000095575 00000 n -0000095637 00000 n -0000093956 00000 n -0000094424 00000 n -0000099859 00000 n -0000099616 00000 n -0000096039 00000 n -0000099735 00000 n -0000104657 00000 n -0000104354 00000 n -0000100076 00000 n -0000104473 00000 n -0000104535 00000 n -0000104596 00000 n -0000109194 00000 n -0000108827 00000 n -0000104873 00000 n -0000108946 00000 n -0000490151 00000 n -0000114103 00000 n -0000113612 00000 n -0000109384 00000 n -0000113731 00000 n -0000115292 00000 n -0000115111 00000 n -0000114306 00000 n -0000115230 00000 n -0000469836 00000 n -0000115548 00000 n -0000469276 00000 n -0000115573 00000 n -0000470070 00000 n -0000115820 00000 n -0000115965 00000 n -0000115988 00000 n -0000469901 00000 n -0000116227 00000 n -0000470007 00000 n -0000116835 00000 n -0000116860 00000 n -0000117413 00000 n -0000117958 00000 n -0000118811 00000 n -0000118836 00000 n -0000119289 00000 n -0000119734 00000 n -0000120097 00000 n -0000120633 00000 n -0000120946 00000 n -0000121520 00000 n -0000122019 00000 n -0000143525 00000 n -0000143768 00000 n -0000165303 00000 n -0000165568 00000 n -0000168079 00000 n -0000168323 00000 n -0000197282 00000 n -0000197633 00000 n -0000231208 00000 n -0000231734 00000 n -0000257353 00000 n -0000257671 00000 n -0000272220 00000 n -0000272452 00000 n -0000291427 00000 n -0000291743 00000 n -0000316039 00000 n -0000316386 00000 n -0000342368 00000 n -0000342742 00000 n -0000345413 00000 n -0000345696 00000 n -0000371594 00000 n -0000371882 00000 n -0000405596 00000 n -0000405890 00000 n -0000438797 00000 n -0000439421 00000 n -0000468904 00000 n -0000470169 00000 n -0000471283 00000 n -0000472397 00000 n -0000473511 00000 n -0000474625 00000 n -0000475739 00000 n -0000476851 00000 n -0000477966 00000 n -0000479083 00000 n -0000480200 00000 n -0000481315 00000 n -0000482438 00000 n -0000483553 00000 n -0000484675 00000 n -0000485552 00000 n -0000486620 00000 n -0000487854 00000 n -0000488828 00000 n -0000490244 00000 n -0000490330 00000 n -0000494388 00000 n -0000494568 00000 n -0000494746 00000 n -0000494924 00000 n -0000495098 00000 n -0000495268 00000 n -0000495452 00000 n -0000495675 00000 n -0000495896 00000 n -0000496111 00000 n -0000496329 00000 n -0000496546 00000 n -0000496764 00000 n -0000496981 00000 n -0000497199 00000 n -0000497415 00000 n -0000497633 00000 n -0000497851 00000 n -0000498067 00000 n -0000498284 00000 n -0000498502 00000 n -0000498719 00000 n -0000498935 00000 n -0000499153 00000 n -0000499366 00000 n -0000499576 00000 n -0000499786 00000 n -0000499996 00000 n -0000500206 00000 n -0000500416 00000 n -0000500626 00000 n -0000500836 00000 n -0000501046 00000 n -0000501244 00000 n -0000501414 00000 n -0000501583 00000 n -0000501747 00000 n -0000501927 00000 n -0000502127 00000 n -0000502332 00000 n -0000502553 00000 n -0000502773 00000 n -0000502999 00000 n -0000503206 00000 n -0000503372 00000 n -0000503490 00000 n -0000503611 00000 n +0000026325 00000 n +0000026725 00000 n +0000023397 00000 n +0000017862 00000 n +0000026482 00000 n +0000026172 00000 n +0000478508 00000 n +0000477394 00000 n +0000484095 00000 n +0000480742 00000 n +0000479625 00000 n +0000031367 00000 n +0000031125 00000 n +0000026929 00000 n +0000031244 00000 n +0000488396 00000 n +0000487156 00000 n +0000486089 00000 n +0000035739 00000 n +0000035315 00000 n +0000031584 00000 n +0000035434 00000 n +0000481858 00000 n +0000040792 00000 n +0000040304 00000 n +0000035944 00000 n +0000040423 00000 n +0000040485 00000 n +0000040547 00000 n +0000040609 00000 n +0000490343 00000 n +0000040671 00000 n +0000040731 00000 n +0000045627 00000 n +0000044646 00000 n +0000041022 00000 n +0000044765 00000 n +0000044827 00000 n +0000044888 00000 n +0000044949 00000 n +0000045072 00000 n +0000045134 00000 n +0000045196 00000 n +0000045257 00000 n +0000045319 00000 n +0000045381 00000 n +0000045443 00000 n +0000045505 00000 n +0000051367 00000 n +0000048282 00000 n +0000045857 00000 n +0000048401 00000 n +0000048524 00000 n +0000048585 00000 n +0000048647 00000 n +0000048709 00000 n +0000048771 00000 n +0000048833 00000 n +0000048895 00000 n +0000048957 00000 n +0000049019 00000 n +0000049080 00000 n +0000049142 00000 n +0000049203 00000 n +0000049265 00000 n +0000049326 00000 n +0000049388 00000 n +0000049450 00000 n +0000049512 00000 n +0000049574 00000 n +0000049636 00000 n +0000049698 00000 n +0000049760 00000 n +0000049822 00000 n +0000049883 00000 n +0000049945 00000 n +0000050007 00000 n +0000050069 00000 n +0000050131 00000 n +0000050193 00000 n +0000050255 00000 n +0000050317 00000 n +0000050378 00000 n +0000050440 00000 n +0000050501 00000 n +0000050563 00000 n +0000050625 00000 n +0000050687 00000 n +0000050749 00000 n +0000050811 00000 n +0000050873 00000 n +0000050935 00000 n +0000050996 00000 n +0000051058 00000 n +0000051120 00000 n +0000051182 00000 n +0000051243 00000 n +0000051305 00000 n +0000490650 00000 n +0000052974 00000 n +0000052793 00000 n +0000051584 00000 n +0000052912 00000 n +0000059296 00000 n +0000055776 00000 n +0000053124 00000 n +0000055895 00000 n +0000055957 00000 n +0000056018 00000 n +0000056080 00000 n +0000056142 00000 n +0000056204 00000 n +0000056266 00000 n +0000056328 00000 n +0000056390 00000 n +0000056452 00000 n +0000056514 00000 n +0000056576 00000 n +0000056638 00000 n +0000056700 00000 n +0000056761 00000 n +0000056823 00000 n +0000056883 00000 n +0000056945 00000 n +0000057006 00000 n +0000057068 00000 n +0000057130 00000 n +0000057192 00000 n +0000057254 00000 n +0000057316 00000 n +0000057378 00000 n +0000057440 00000 n +0000057502 00000 n +0000057564 00000 n +0000057626 00000 n +0000057688 00000 n +0000057750 00000 n +0000057811 00000 n +0000057873 00000 n +0000057935 00000 n +0000057997 00000 n +0000058059 00000 n +0000058120 00000 n +0000058182 00000 n +0000058244 00000 n +0000058306 00000 n +0000058368 00000 n +0000058430 00000 n +0000058492 00000 n +0000058554 00000 n +0000058616 00000 n +0000058678 00000 n +0000058740 00000 n +0000058802 00000 n +0000058864 00000 n +0000058926 00000 n +0000058988 00000 n +0000059050 00000 n +0000059112 00000 n +0000489368 00000 n +0000063289 00000 n +0000062803 00000 n +0000059514 00000 n +0000062922 00000 n +0000066916 00000 n +0000066491 00000 n +0000063479 00000 n +0000066610 00000 n +0000482974 00000 n +0000072455 00000 n +0000070729 00000 n +0000067147 00000 n +0000070848 00000 n +0000070910 00000 n +0000070972 00000 n +0000071034 00000 n +0000071096 00000 n +0000071158 00000 n +0000071220 00000 n +0000071282 00000 n +0000071344 00000 n +0000071406 00000 n +0000071468 00000 n +0000071530 00000 n +0000071592 00000 n +0000071654 00000 n +0000071777 00000 n +0000071839 00000 n +0000071901 00000 n +0000071963 00000 n +0000072024 00000 n +0000072086 00000 n +0000072147 00000 n +0000072209 00000 n +0000076199 00000 n +0000076356 00000 n +0000081740 00000 n +0000081897 00000 n +0000077562 00000 n +0000076052 00000 n +0000072685 00000 n +0000076513 00000 n +0000076575 00000 n +0000076637 00000 n +0000076699 00000 n +0000076761 00000 n +0000076823 00000 n +0000076885 00000 n +0000076946 00000 n +0000077008 00000 n +0000077253 00000 n +0000077314 00000 n +0000077376 00000 n +0000077438 00000 n +0000077500 00000 n +0000490767 00000 n +0000082211 00000 n +0000082521 00000 n +0000082676 00000 n +0000082834 00000 n +0000084200 00000 n +0000081537 00000 n +0000077779 00000 n +0000083150 00000 n +0000082054 00000 n +0000083274 00000 n +0000083336 00000 n +0000083398 00000 n +0000083460 00000 n +0000083522 00000 n +0000083584 00000 n +0000083646 00000 n +0000083708 00000 n +0000083770 00000 n +0000083832 00000 n +0000083893 00000 n +0000083954 00000 n +0000084016 00000 n +0000084076 00000 n +0000082366 00000 n +0000082992 00000 n +0000089689 00000 n +0000087697 00000 n +0000084418 00000 n +0000087852 00000 n +0000088328 00000 n +0000088009 00000 n +0000088169 00000 n +0000088390 00000 n +0000088452 00000 n +0000088514 00000 n +0000088575 00000 n +0000088637 00000 n +0000088698 00000 n +0000088760 00000 n +0000088821 00000 n +0000088883 00000 n +0000088945 00000 n +0000089007 00000 n +0000089069 00000 n +0000089131 00000 n +0000089193 00000 n +0000089255 00000 n +0000089317 00000 n +0000089379 00000 n +0000089441 00000 n +0000089503 00000 n +0000089565 00000 n +0000094065 00000 n +0000094225 00000 n +0000094543 00000 n +0000094698 00000 n +0000095010 00000 n +0000095166 00000 n +0000096251 00000 n +0000093870 00000 n +0000089892 00000 n +0000095322 00000 n +0000095384 00000 n +0000095446 00000 n +0000095508 00000 n +0000095570 00000 n +0000095632 00000 n +0000095694 00000 n +0000095756 00000 n +0000095818 00000 n +0000095880 00000 n +0000095942 00000 n +0000096004 00000 n +0000096066 00000 n +0000094385 00000 n +0000094853 00000 n +0000100288 00000 n +0000100045 00000 n +0000096468 00000 n +0000100164 00000 n +0000105089 00000 n +0000104786 00000 n +0000100505 00000 n +0000104905 00000 n +0000104967 00000 n +0000105028 00000 n +0000109624 00000 n +0000109257 00000 n +0000105305 00000 n +0000109376 00000 n +0000490884 00000 n +0000114533 00000 n +0000114042 00000 n +0000109814 00000 n +0000114161 00000 n +0000115721 00000 n +0000115540 00000 n +0000114736 00000 n +0000115659 00000 n +0000469999 00000 n +0000115977 00000 n +0000470803 00000 n +0000116224 00000 n +0000116369 00000 n +0000116392 00000 n +0000470559 00000 n +0000116631 00000 n +0000470634 00000 n +0000116792 00000 n +0000470740 00000 n +0000117400 00000 n +0000117425 00000 n +0000117978 00000 n +0000118523 00000 n +0000119376 00000 n +0000119401 00000 n +0000119854 00000 n +0000120299 00000 n +0000120662 00000 n +0000121198 00000 n +0000121511 00000 n +0000122085 00000 n +0000122584 00000 n +0000144090 00000 n +0000144333 00000 n +0000165868 00000 n +0000166133 00000 n +0000168718 00000 n +0000168969 00000 n +0000197928 00000 n +0000198279 00000 n +0000232008 00000 n +0000232536 00000 n +0000258075 00000 n +0000258394 00000 n +0000272943 00000 n +0000273175 00000 n +0000292150 00000 n +0000292466 00000 n +0000316762 00000 n +0000317109 00000 n +0000343091 00000 n +0000343465 00000 n +0000346136 00000 n +0000346419 00000 n +0000372317 00000 n +0000372605 00000 n +0000406319 00000 n +0000406613 00000 n +0000439520 00000 n +0000440144 00000 n +0000469627 00000 n +0000470902 00000 n +0000472016 00000 n +0000473130 00000 n +0000474244 00000 n +0000475358 00000 n +0000476472 00000 n +0000477584 00000 n +0000478699 00000 n +0000479816 00000 n +0000480933 00000 n +0000482048 00000 n +0000483171 00000 n +0000484286 00000 n +0000485408 00000 n +0000486285 00000 n +0000487353 00000 n +0000488587 00000 n +0000489561 00000 n +0000490977 00000 n +0000491063 00000 n +0000495121 00000 n +0000495301 00000 n +0000495479 00000 n +0000495657 00000 n +0000495831 00000 n +0000496001 00000 n +0000496185 00000 n +0000496408 00000 n +0000496629 00000 n +0000496844 00000 n +0000497062 00000 n +0000497279 00000 n +0000497497 00000 n +0000497714 00000 n +0000497932 00000 n +0000498148 00000 n +0000498366 00000 n +0000498584 00000 n +0000498800 00000 n +0000499017 00000 n +0000499235 00000 n +0000499452 00000 n +0000499668 00000 n +0000499886 00000 n +0000500099 00000 n +0000500309 00000 n +0000500519 00000 n +0000500729 00000 n +0000500939 00000 n +0000501149 00000 n +0000501359 00000 n +0000501569 00000 n +0000501779 00000 n +0000501977 00000 n +0000502147 00000 n +0000502316 00000 n +0000502480 00000 n +0000502660 00000 n +0000502860 00000 n +0000503065 00000 n +0000503286 00000 n +0000503506 00000 n 0000503732 00000 n -0000503852 00000 n -0000503971 00000 n -0000504084 00000 n -0000504199 00000 n -0000504292 00000 n -0000504402 00000 n -0000504488 00000 n -0000504577 00000 n -0000504615 00000 n -0000504743 00000 n +0000503939 00000 n +0000504105 00000 n +0000504223 00000 n +0000504344 00000 n +0000504465 00000 n +0000504585 00000 n +0000504704 00000 n +0000504817 00000 n +0000504932 00000 n +0000505025 00000 n +0000505135 00000 n +0000505221 00000 n +0000505310 00000 n +0000505348 00000 n +0000505476 00000 n trailer << /Size 720 /Root 718 0 R /Info 719 0 R -/ID [<F6081592D4BC9E12F81D0BF43D78AB28> <F6081592D4BC9E12F81D0BF43D78AB28>] >> +/ID [<112288B100F7E539C2ADBD7D58D222AB> <112288B100F7E539C2ADBD7D58D222AB>] >> startxref -505017 +505750 %%EOF diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex index 437a06da95..b4166b1970 100644 --- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,7 +26,7 @@ \usepackage{democodetools} \usepackage{ufrgscca-curr} -\maxdeadcycles=500 %%the many marginpar statements are actually a pain. +\maxdeadcycles=500 %% the many marginpar statements are actually a pain. \newif\iffulldoc %\fulldocfalse @@ -39,7 +39,7 @@ \fi \dcAuthor{Alceu Frigeri} -\dcDate{November 2022} +\dcDate{December 2022} \makeatletter @@ -82,6 +82,8 @@ Being based on the report class, one can use all class options one would with a \DescribeOption{openright} in case of printed material, this will assure that a \Macro{\chapter}{} always starts at an odd page, which is relevant in case of printing out (double sided) the document. \DescribeOption{oneside} in case the document will be printed in single side sheets, otherwise it's assumed a two-sided printing. \DescribeOption{strict-abnt} to assure asymmetric margins, as defined by ABNT: inner ones greater than outer ones, which matters if you are going to print the doc and make a book of it, but makes it odd to look at in a computer screen, reason by which the current default setting is for symmetric margins (same text width). + \DescribeOption{pretextontoc} “pre-text” elements, like “list of$\dots$” will be inserted in the “table of contents”. + \DescribeOption{timesroman} will set the default font to Roman (using the obsolete mathptmx package, based on a free replacement of the proprietary Times New Roman (by Microsoft) and Times Roman (By Adobe)) instead of the default Latin Modern Roman font. As a side effect, the package \Pack{microtype} isn't loaded (can't be used), resulting in a worst overall layout. NB. The alternative (newer and maintained) packages newtxtext/newtxmath can't be used due to some packages incompatibilities. \DescribeOption{repeatfields} in case of authors with multiple publications, their names will be repeated for each entry. In the default setting the author's name is written only in the first entry, and replaced by underscores in the other entries. \DescribeOption{xlists} this will load the {\MetaFmt[Pack]\sffamily ufrgscca-lists} package, for the definition of new floats/lists. \DescribeOption{xpacks} this will load a series of packages, which can be handy when writing Engineering reports: {\MetaFmt[Pack]\sffamily relsize, keyval, graphicx, mathtools, mathrsfs, amsfonts, amssymb, empheq, amsthm, ext\-arrows, mathfixs, bigdelim, circuitikz, steimenz} and tikz libraries: {\MetaFmt[Pack]\sffamily fit, math, calc, shapes.geometry, shapes.misc, shapes.multipart, graphs, 3d, positioning, shadows, babel}. One is advised to look after each package documentation (ctan.org) for further information. diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty index 9a728af921..4b924fdf18 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-abnt} \def\tc@tmp@altpackname{ufrgsccaabnt} \def\tc@tmp@packdesc{UFRGS/CCA ABNT layout} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] @@ -39,6 +39,9 @@ strict-abnt.usage = load, strict-abnt.if = tcif@strictabnt, + pretextontoc.usage = load, + pretextontoc.if = tcif@pretextontoc, + chapternopagenum.usage = load, chapternopagenum.if = tcif@chapternopagenum, @@ -72,7 +75,7 @@ %%%%%%%%%%%%%%%%%%%%% %%% Packages Loading %%%%%%%%%%%%%%%%%%%%% -\RequirePackage[english,brazilian]{babel}% +\RequirePackage[english,brazilian]{babel}% see ufrgscca.cls in case of newtx* being loaded! \RequirePackage{csquotes}% \iftcif@strictabnt @@ -148,7 +151,10 @@ %%% %%% typeset adjusting {package microtype} %%% +\iftcif@timesroman\else% \iftcif@nomicrotype\else\RequirePackage[tracking,kerning,spacing,babel]{microtype}\fi% +\fi +%\iftcif@nomicrotype\else\RequirePackage[babel]{microtype}\fi% % % pdftex native protruding % @@ -197,8 +203,8 @@ \def\tc@lblmargin{22mm} \contentsmargin{2.2em} \def\tc@dotspacing{0.5pc} -\titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\normalfont\scshape\selectfont}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} -\titlecontents{section}[\tc@lblmargin]{\vspace{1mm}}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\contentspage} +\titlecontents{chapter}[\tc@lblmargin]{\vspace{2.5mm}\normalfont\scshape\selectfont}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} +\titlecontents{section}[\tc@lblmargin]{\vspace{0.75mm}}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\contentspage} \dottedcontents{subsection}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} @@ -284,11 +290,14 @@ \defbibheading{bibliography}[\refname]{\nonum\chapter{#1}\pagestyle{bibliography}} -\let\tc@temp@listoffigures\listoffigures -\def\listoffigures{\tc@temp@listoffigures\addcontentsline{toc}{chapter}{\MakeUppercase\listfigurename}} +\iftcif@pretextontoc + \let\tc@temp@listoffigures\listoffigures + \def\listoffigures{\tc@temp@listoffigures\addcontentsline{toc}{chapter}{\textsc\listfigurename}} %% -\let\tc@temp@listoftables\listoftables -\def\listoftables{\tc@temp@listoftables\addcontentsline{toc}{chapter}{\MakeUppercase\listtablename}} + \let\tc@temp@listoftables\listoftables + \def\listoftables{\tc@temp@listoftables\addcontentsline{toc}{chapter}{\textsc\listtablename}} +\fi + %% @@ -296,7 +305,11 @@ \NewDocumentCommand{\NewChapListEnv}{mm}{ \NewDocumentEnvironment{#1}{O{}m}{% \settowidth{\tc@lblwidth}{##2***}% - \nonum\chapter{\MakeUppercase{#2}}% + \iftcif@pretextontoc + \nonum\chapter{\textsc{#2}}% + \else + \notoc\chapter{\textsc{#2}}% + \fi \begin{description}[tcc,noindent,leftmargin=\tc@lblwidth,labelwidth=!,##1]% }{\end{description}} } diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty index 8f1c49e3c5..4ff48a8c3b 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-coord} \def\tc@tmp@altpackname{ufrgsccacoord} \def\tc@tmp@packdesc{UFRGS/CCA coord commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty index ab05fba392..45c3d5f916 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-core} \def\tc@tmp@altpackname{ufrgsccacore} \def\tc@tmp@packdesc{UFRGS/CCA core commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty index 1d58060edc..1198dd6479 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-cover} \def\tc@tmp@altpackname{ufrgsccacover} \def\tc@tmp@packdesc{UFRGS/CCA cover commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] @@ -100,12 +100,12 @@ \NewDocumentCommand{\tccover@coveradvisorinfo}{}{%% \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\tcdef@cover@advisorname}:\\\null\hfill\tc@studentA@advisor}% - \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\tcdef@core@coadvisorname}:\\\null\hfill\tc@studentA@coadvisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\tcdef@cover@coadvisorname}:\\\null\hfill\tc@studentA@coadvisor}% }% % \NewDocumentCommand{\tccover@reportadvisorinfo}{}{%% \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\iftcif@internship\tcdef@cover@advisorname\else\tcdef@cover@profname\fi}:\\\null\hfill\tc@studentA@advisor}% - \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\iftcif@internship\tcdef@core@coadvisorname\else\tcdef@cover@coprofname\fi}:\\\null\hfill\tc@studentA@coadvisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\iftcif@internship\tcdef@cover@coadvisorname\else\tcdef@cover@coprofname\fi}:\\\null\hfill\tc@studentA@coadvisor}% }% % diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty index 0d7fdcf6a0..98c63ed039 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr-graph} \def\tc@tmp@altpackname{tccurrgraph} \def\tc@tmp@packdesc{UFRGS/CCA graph curricula commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2alpha} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4alpha} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty index f0c822af4c..5bcbc05fd5 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr-tab} \def\tc@tmp@altpackname{ufrgsccacurrtab} \def\tc@tmp@packdesc{UFRGS/CCA curricula tabular commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2alpha} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4alpha} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty index fa0939c05c..cc1f31bf48 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-curr} \def\tc@tmp@altpackname{ufrgsccacurr} \def\tc@tmp@packdesc{UFRGS/CCA curricula commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2beta} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4beta} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def index 40e7f84ea7..eba056fedc 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-en-base} \def\tc@tmp@altpackname{ufrgsccaenbase} \def\tc@tmp@packdesc{UFRGS/CCA English base defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def index 2677e2f9db..087ecce1f2 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-en-coord} \def\tc@tmp@altpackname{ufrgsccaencoord} \def\tc@tmp@packdesc{UFRGS/CCA English coord defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def index 2dfabb11ed..82d6b69d08 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-en-core} \def\tc@tmp@altpackname{ufrgsccaencore} \def\tc@tmp@packdesc{UFRGS/CCA English core defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def index 419bd8690f..adaddb6b39 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-en-forms} \def\tc@tmp@altpackname{ufrgsccaenforms} \def\tc@tmp@packdesc{UFRGS/CCA English forms defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty index 99c02778af..1d650e5d7a 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-forms} \def\tc@tmp@altpackname{ufrgsccaforms} \def\tc@tmp@packdesc{UFRGS/CCA forms commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty index e0e1744678..812f2c1a87 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-gen} \def\tc@tmp@altpackname{ufrgsccagen} \def\tc@tmp@packdesc{UFRGS/CCA generic/miscellany commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty index bd488db086..f79fef8aa5 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-lists} \def\tc@tmp@altpackname{ufrgsccalists} \def\tc@tmp@packdesc{UFRGS/CCA auxiliary lists commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty index 4be2a54db5..1718b72085 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca-ppc} \def\tc@tmp@altpackname{ufrgsccappc} \def\tc@tmp@packdesc{UFRGS/CCA PPC commands} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def index c1a429bdc2..abab7357b1 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-ptBR-base} \def\tc@tmp@altpackname{ufrgsccaptbrbase} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese base defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def index 47221805b8..cdbc1562b5 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-ptBR-coord} \def\tc@tmp@altpackname{ufrgsccaptbrcoord} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese coord defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def index 75494b502a..49e8774c9d 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-ptBR-core} \def\tc@tmp@altpackname{ufrgsccaptbrcore} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese core defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def index c686708cc1..6f3d976504 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \def\tc@tmp@packname{ufrgscca-ptBR-forms} \def\tc@tmp@altpackname{ufrgsccaptbrforms} \def\tc@tmp@packdesc{UFRGS/CCA Portuguese forms defs} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls index d2cf0361eb..651fa38e7d 100644 --- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version 1.0.2 (2022/11/18) +%% This is version 1.0.4 (2022/12/15) %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -26,8 +26,8 @@ \def\tc@tmp@packname{ufrgscca} \def\tc@tmp@altpackname{ufrgscca} \def\tc@tmp@packdesc{UFRGS/CCA class} -\def\tc@tmp@packdate{2022/11/18} -\def\tc@tmp@packversion{1.0.2} +\def\tc@tmp@packdate{2022/12/15} +\def\tc@tmp@packversion{1.0.4} \let\@exp\expandafter \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] @@ -35,7 +35,6 @@ \RequirePackage{etex} \RequirePackage{etoolbox} -\RequirePackage{lmodern}% \RequirePackage[T1]{fontenc} \RequirePackage[utf8]{inputenc} @@ -55,6 +54,12 @@ english.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\OptionNotUsed}, relnum.usage = load, relnum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\PassOptionsToPackage{\CurrentOption}{ufrgscca-lists}\OptionNotUsed}, + + pretextontoc.usage = load, + pretextontoc.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + timesroman.usage = load, + timesroman.if = tcif@timesroman, + oneside.usage = load, oneside.code = {\AtEndOfClass{\@twosidefalse}\OptionNotUsed}, strict-abnt.usage = load, @@ -102,10 +107,25 @@ \DeclareUnknownKeyHandler[tc]{\PassOptionsToClass{\CurrentOption}{report}} \ProcessKeyOptions[tc]\relax +\iftcif@timesroman + \RequirePackage[english,brazilian]{babel}% babel has to be loaded BEFORE newtx* + \RequirePackage{mathptmx} +% \RequirePackage[scale=1.05,looser]{newtxtext}% +% \RequirePackage[scale=1.05]{newtxmath}% +% \PackageWarning{ufrgscca}{Fonts newtxtext and newtxmath loaded. Those are free 'implementantion/interpletation' of the proprietary Times Roman (by Adobe) and Times New Roman (by Microsoft)} +% \PackageWarning{ufrgscca}{newtxtext and newtxmath are based on URW Nimbus Roman with some extra math support. Again, those are not real Times Roman nor Times New Roman} + \PackageWarning{ufrgscca}{(obsolete) package mathptmx loaded. It loads a free 'implementantion/interpletation' of the proprietary Times Roman (by Adobe) and Times New Roman (by Microsoft)} + \PackageWarning{ufrgscca}{package microtype is suppressed, resulting in a subpar layout. Again, the “Roman” font used isn't a true Times Roman nor Times New Roman} + +\else + \RequirePackage{lmodern}% +\fi + \iftcif@dctools \LoadClass[12pt]{article} \else \LoadClass[12pt,twoside,openright]{report} +% \LoadClass[12pt]{report} \fi \iftcif@miktex |